Chromium Code Reviews| 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 |