OLD | NEW |
---|---|
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 <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | |
10 #include "base/logging.h" | 9 #include "base/logging.h" |
11 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
12 #include "chrome/browser/prerender/prerender_manager.h" | 11 #include "chrome/browser/prerender/prerender_manager.h" |
13 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
13 #include "components/variations/variations_associated_data.h" | |
14 | 14 |
15 namespace prerender { | 15 namespace prerender { |
16 | 16 |
17 void ConfigurePrerender(const base::CommandLine& command_line) { | 17 const base::Feature kNoStatePrefetchFeature{"NoStatePrefetch", |
18 base::FEATURE_ENABLED_BY_DEFAULT}; | |
pasko
2016/12/01 16:47:58
maybe disabled by default?
droger
2016/12/01 17:17:40
No, it is enabled by default (but in "Prerender" m
pasko
2016/12/01 17:30:44
I think the general ideology of a Feature is to ha
droger
2016/12/01 17:39:49
I think it would be even more confusing, but that
droger
2016/12/01 17:48:27
Also in my mind, in the long term we would not rem
| |
19 | |
20 void ConfigurePrerender() { | |
18 PrerenderManager::PrerenderManagerMode mode = | 21 PrerenderManager::PrerenderManagerMode mode = |
19 PrerenderManager::PRERENDER_MODE_ENABLED; | 22 PrerenderManager::PRERENDER_MODE_ENABLED; |
20 if (command_line.HasSwitch(switches::kPrerenderMode)) { | 23 if (!base::FeatureList::IsEnabled(kNoStatePrefetchFeature)) { |
21 const std::string switch_value = | 24 mode = PrerenderManager::PRERENDER_MODE_DISABLED; |
22 command_line.GetSwitchValueASCII(switches::kPrerenderMode); | 25 } else { |
23 | 26 std::string mode_value = variations::GetVariationParamValueByFeature( |
24 if (switch_value == switches::kPrerenderModeSwitchValueDisabled) { | 27 kNoStatePrefetchFeature, "mode"); |
25 mode = PrerenderManager::PRERENDER_MODE_DISABLED; | 28 if (mode_value == "no_state_prefetch") { |
26 } else if (switch_value == switches::kPrerenderModeSwitchValuePrefetch) { | |
27 mode = PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH; | 29 mode = PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH; |
28 } else if (switch_value.empty() || | 30 } else if (mode_value.empty() || mode_value == "prerender") { |
29 switch_value == switches::kPrerenderModeSwitchValueEnabled) { | |
30 // The empty string means the option was provided with no value, and that | 31 // The empty string means the option was provided with no value, and that |
31 // means enable. | 32 // means enable. |
32 mode = PrerenderManager::PRERENDER_MODE_ENABLED; | 33 mode = PrerenderManager::PRERENDER_MODE_ENABLED; |
33 } else if (switch_value == switches::kPrerenderModeSwitchValueSimpleLoad) { | 34 } else if (mode_value == "simple_load") { |
34 mode = PrerenderManager::PRERENDER_MODE_SIMPLE_LOAD_EXPERIMENT; | 35 mode = PrerenderManager::PRERENDER_MODE_SIMPLE_LOAD_EXPERIMENT; |
35 } else { | 36 } else { |
37 LOG(ERROR) << "Invalid prerender mode: " << mode_value; | |
38 LOG(ERROR) << "Disabling prerendering!"; | |
36 mode = PrerenderManager::PRERENDER_MODE_DISABLED; | 39 mode = PrerenderManager::PRERENDER_MODE_DISABLED; |
37 LOG(ERROR) << "Invalid --prerender option received on command line: " | |
38 << switch_value; | |
39 LOG(ERROR) << "Disabling prerendering!"; | |
40 } | 40 } |
41 } | 41 } |
42 | 42 |
43 PrerenderManager::SetMode(mode); | 43 PrerenderManager::SetMode(mode); |
44 } | 44 } |
45 | 45 |
46 bool IsOmniboxEnabled(Profile* profile) { | 46 bool IsOmniboxEnabled(Profile* profile) { |
47 if (!profile) | 47 if (!profile) |
48 return false; | 48 return false; |
49 | 49 |
(...skipping 14 matching lines...) Expand all Loading... | |
64 return false; | 64 return false; |
65 | 65 |
66 DCHECK_EQ(switches::kPrerenderFromOmniboxSwitchValueAuto, switch_value); | 66 DCHECK_EQ(switches::kPrerenderFromOmniboxSwitchValueAuto, switch_value); |
67 } | 67 } |
68 | 68 |
69 return (base::FieldTrialList::FindFullName("PrerenderFromOmnibox") != | 69 return (base::FieldTrialList::FindFullName("PrerenderFromOmnibox") != |
70 "OmniboxPrerenderDisabled"); | 70 "OmniboxPrerenderDisabled"); |
71 } | 71 } |
72 | 72 |
73 } // namespace prerender | 73 } // namespace prerender |
OLD | NEW |