// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_FIELD_TRIAL_H_ #define CHROME_BROWSER_PRERENDER_PRERENDER_FIELD_TRIAL_H_ #include class CommandLine; class Profile; namespace prerender { // Parse the --prerender= command line switch, which controls both prerendering // and prefetching. If the switch is unset, or is set to "auto", then the user // is assigned to a field trial. void ConfigurePrefetchAndPrerender(const CommandLine& command_line); // Returns true if the user has opted in or has been opted in to the // prerendering from Omnibox experiment. bool IsOmniboxEnabled(Profile* profile); // Returns true iff the Prerender Local Predictor is enabled. bool IsLocalPredictorEnabled(); // Returns true iff the LoggedIn Predictor is enabled. bool IsLoggedInPredictorEnabled(); // Returns true iff the side-effect free whitelist is enabled. bool IsSideEffectFreeWhitelistEnabled(); // Returns true if the local predictor should actually launch prerenders. bool IsLocalPredictorPrerenderLaunchEnabled(); // Returns true if the local predictor should prerender, but only as control // group. If the local predictor never launches prerenders, then this setting // is irrelevant. bool IsLocalPredictorPrerenderAlwaysControlEnabled(); // Returns the TTL to be used for the local predictor. int GetLocalPredictorTTLSeconds(); // Returns the half-life time to use to decay local predictor prerender // priorities. int GetLocalPredictorPrerenderPriorityHalfLifeTimeSeconds(); // Returns the maximum number of concurrent prerenders the local predictor // may maintain. int GetLocalPredictorMaxConcurrentPrerenders(); } // namespace prerender #endif // CHROME_BROWSER_PRERENDER_PRERENDER_FIELD_TRIAL_H_