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

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

Issue 330063004: Various Prerender Service / Prerender LocalPredictor related changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 26 matching lines...) Expand all
37 const char kDisabledGroup[] = "Disabled"; 37 const char kDisabledGroup[] = "Disabled";
38 const char kEnabledGroup[] = "Enabled"; 38 const char kEnabledGroup[] = "Enabled";
39 39
40 const char kLocalPredictorSpecTrialName[] = "PrerenderLocalPredictorSpec"; 40 const char kLocalPredictorSpecTrialName[] = "PrerenderLocalPredictorSpec";
41 const char kLocalPredictorKeyName[] = "LocalPredictor"; 41 const char kLocalPredictorKeyName[] = "LocalPredictor";
42 const char kLocalPredictorUnencryptedSyncOnlyKeyName[] = 42 const char kLocalPredictorUnencryptedSyncOnlyKeyName[] =
43 "LocalPredictorUnencryptedSyncOnly"; 43 "LocalPredictorUnencryptedSyncOnly";
44 const char kSideEffectFreeWhitelistKeyName[] = "SideEffectFreeWhitelist"; 44 const char kSideEffectFreeWhitelistKeyName[] = "SideEffectFreeWhitelist";
45 const char kPrerenderLaunchKeyName[] = "PrerenderLaunch"; 45 const char kPrerenderLaunchKeyName[] = "PrerenderLaunch";
46 const char kPrerenderAlwaysControlKeyName[] = "PrerenderAlwaysControl"; 46 const char kPrerenderAlwaysControlKeyName[] = "PrerenderAlwaysControl";
47 const char kPrerenderPrefetchKeyName[] = "PrerenderPrefetch";
47 const char kPrerenderQueryPrerenderServiceKeyName[] = 48 const char kPrerenderQueryPrerenderServiceKeyName[] =
48 "PrerenderQueryPrerenderService"; 49 "PrerenderQueryPrerenderService";
49 const char kPrerenderQueryPrerenderServiceCurrentURLKeyName[] = 50 const char kPrerenderQueryPrerenderServiceCurrentURLKeyName[] =
50 "PrerenderQueryPrerenderServiceCurrentURL"; 51 "PrerenderQueryPrerenderServiceCurrentURL";
51 const char kPrerenderQueryPrerenderServiceCandidateURLsKeyName[] = 52 const char kPrerenderQueryPrerenderServiceCandidateURLsKeyName[] =
52 "PrerenderQueryPrerenderServiceCandidateURLs"; 53 "PrerenderQueryPrerenderServiceCandidateURLs";
53 const char kPrerenderServiceBehaviorIDKeyName[] = "PrerenderServiceBehaviorID"; 54 const char kPrerenderServiceBehaviorIDKeyName[] = "PrerenderServiceBehaviorID";
54 const char kPrerenderServiceFetchTimeoutKeyName[] = 55 const char kPrerenderServiceFetchTimeoutKeyName[] =
55 "PrerenderServiceFetchTimeoutMs"; 56 "PrerenderServiceFetchTimeoutMs";
56 const char kPrerenderTTLKeyName[] = "PrerenderTTLSeconds"; 57 const char kPrerenderTTLKeyName[] = "PrerenderTTLSeconds";
57 const char kPrerenderPriorityHalfLifeTimeKeyName[] = 58 const char kPrerenderPriorityHalfLifeTimeKeyName[] =
58 "PrerenderPriorityHalfLifeTimeSeconds"; 59 "PrerenderPriorityHalfLifeTimeSeconds";
59 const char kMaxConcurrentPrerenderKeyName[] = "MaxConcurrentPrerenders"; 60 const char kMaxConcurrentPrerenderKeyName[] = "MaxConcurrentPrerenders";
61 const char kMaxLaunchPrerenderKeyName[] = "MaxLaunchPrerenders";
60 const char kSkipFragment[] = "SkipFragment"; 62 const char kSkipFragment[] = "SkipFragment";
61 const char kSkipHTTPS[] = "SkipHTTPS"; 63 const char kSkipHTTPS[] = "SkipHTTPS";
62 const char kSkipWhitelist[] = "SkipWhitelist"; 64 const char kSkipWhitelist[] = "SkipWhitelist";
63 const char kSkipServiceWhitelist[] = "SkipServiceWhitelist"; 65 const char kSkipServiceWhitelist[] = "SkipServiceWhitelist";
64 const char kSkipLoggedIn[] = "SkipLoggedIn"; 66 const char kSkipLoggedIn[] = "SkipLoggedIn";
65 const char kSkipDefaultNoPrerender[] = "SkipDefaultNoPrerender"; 67 const char kSkipDefaultNoPrerender[] = "SkipDefaultNoPrerender";
66 const char kPrerenderServiceURLPrefixParameterName[] = 68 const char kPrerenderServiceURLPrefixParameterName[] =
67 "PrerenderServiceURLPrefix"; 69 "PrerenderServiceURLPrefix";
68 const char kDefaultPrerenderServiceURLPrefix[] = 70 const char kDefaultPrerenderServiceURLPrefix[] =
69 "https://clients4.google.com/prerenderservice/?q="; 71 "https://clients4.google.com/prerenderservice/?q=";
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 return IsLocalPredictorEnabled() && 323 return IsLocalPredictorEnabled() &&
322 GetLocalPredictorSpecValue(kSideEffectFreeWhitelistKeyName) != 324 GetLocalPredictorSpecValue(kSideEffectFreeWhitelistKeyName) !=
323 kDisabledGroup; 325 kDisabledGroup;
324 } 326 }
325 327
326 bool IsLocalPredictorPrerenderLaunchEnabled() { 328 bool IsLocalPredictorPrerenderLaunchEnabled() {
327 return GetLocalPredictorSpecValue(kPrerenderLaunchKeyName) != kDisabledGroup; 329 return GetLocalPredictorSpecValue(kPrerenderLaunchKeyName) != kDisabledGroup;
328 } 330 }
329 331
330 bool IsLocalPredictorPrerenderAlwaysControlEnabled() { 332 bool IsLocalPredictorPrerenderAlwaysControlEnabled() {
331 return GetLocalPredictorSpecValue(kPrerenderAlwaysControlKeyName) == 333 // If we prefetch rather than prerender, we automatically also prerender
334 // as a control group only.
335 return (GetLocalPredictorSpecValue(kPrerenderAlwaysControlKeyName) ==
336 kEnabledGroup) || IsLocalPredictorPrerenderPrefetchEnabled();
337 }
338
339 bool IsLocalPredictorPrerenderPrefetchEnabled() {
340 return GetLocalPredictorSpecValue(kPrerenderPrefetchKeyName) ==
332 kEnabledGroup; 341 kEnabledGroup;
333 } 342 }
334 343
335 bool ShouldQueryPrerenderService(Profile* profile) { 344 bool ShouldQueryPrerenderService(Profile* profile) {
336 return IsUnencryptedSyncEnabled(profile) && 345 return IsUnencryptedSyncEnabled(profile) &&
337 GetLocalPredictorSpecValue(kPrerenderQueryPrerenderServiceKeyName) == 346 GetLocalPredictorSpecValue(kPrerenderQueryPrerenderServiceKeyName) ==
338 kEnabledGroup; 347 kEnabledGroup;
339 } 348 }
340 349
341 bool ShouldQueryPrerenderServiceForCurrentURL() { 350 bool ShouldQueryPrerenderServiceForCurrentURL() {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 } 398 }
390 399
391 int GetLocalPredictorMaxConcurrentPrerenders() { 400 int GetLocalPredictorMaxConcurrentPrerenders() {
392 int num_prerenders; 401 int num_prerenders;
393 StringToInt(GetLocalPredictorSpecValue(kMaxConcurrentPrerenderKeyName), 402 StringToInt(GetLocalPredictorSpecValue(kMaxConcurrentPrerenderKeyName),
394 &num_prerenders); 403 &num_prerenders);
395 // Sanity check: Ensure the number of prerenders is between 1 and 10. 404 // Sanity check: Ensure the number of prerenders is between 1 and 10.
396 return std::min(std::max(num_prerenders, 1), 10); 405 return std::min(std::max(num_prerenders, 1), 10);
397 } 406 }
398 407
408 int GetLocalPredictorMaxLaunchPrerenders() {
409 int num_prerenders;
410 StringToInt(GetLocalPredictorSpecValue(kMaxLaunchPrerenderKeyName),
411 &num_prerenders);
412 // Sanity check: Ensure the number of prerenders is between 1 and 10.
413 return std::min(std::max(num_prerenders, 1), 10);
414 }
415
399 bool SkipLocalPredictorFragment() { 416 bool SkipLocalPredictorFragment() {
400 return GetLocalPredictorSpecValue(kSkipFragment) == kEnabledGroup; 417 return GetLocalPredictorSpecValue(kSkipFragment) == kEnabledGroup;
401 } 418 }
402 419
403 bool SkipLocalPredictorHTTPS() { 420 bool SkipLocalPredictorHTTPS() {
404 return GetLocalPredictorSpecValue(kSkipHTTPS) == kEnabledGroup; 421 return GetLocalPredictorSpecValue(kSkipHTTPS) == kEnabledGroup;
405 } 422 }
406 423
407 bool SkipLocalPredictorWhitelist() { 424 bool SkipLocalPredictorWhitelist() {
408 return GetLocalPredictorSpecValue(kSkipWhitelist) == kEnabledGroup; 425 return GetLocalPredictorSpecValue(kSkipWhitelist) == kEnabledGroup;
(...skipping 25 matching lines...) Expand all
434 return GetLocalPredictorSpecValue(kDisableSessionStorageNamespaceMerging) != 451 return GetLocalPredictorSpecValue(kDisableSessionStorageNamespaceMerging) !=
435 kDisabledGroup; 452 kDisabledGroup;
436 } 453 }
437 454
438 bool IsPrerenderCookieStoreEnabled() { 455 bool IsPrerenderCookieStoreEnabled() {
439 return GetLocalPredictorSpecValue(kPrerenderCookieStore) != kDisabledGroup && 456 return GetLocalPredictorSpecValue(kPrerenderCookieStore) != kDisabledGroup &&
440 FieldTrialList::FindFullName(kPrerenderCookieStore) != kDisabledGroup; 457 FieldTrialList::FindFullName(kPrerenderCookieStore) != kDisabledGroup;
441 } 458 }
442 459
443 } // namespace prerender 460 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698