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
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_CHROME_BROWSER_FIELD_TRIALS_H_
6#define CHROME_BROWSER_CHROME_BROWSER_FIELD_TRIALS_H_
7
8#include "base/basictypes.h"
9#include "base/command_line.h"
10
11class PrefService;
12
13namespace base {
14class Time;
15}
16
17class ChromeBrowserFieldTrials {
18 public:
19  explicit ChromeBrowserFieldTrials(const base::CommandLine& command_line);
20  ~ChromeBrowserFieldTrials();
21
22  // Called by the browser main sequence to set up Field Trials for this client.
23  // |local_state| is used to set browser-wide properties.
24  void SetupFieldTrials(const base::Time& install_time,
25                        PrefService* local_state);
26
27 private:
28  // Instantiates dynamic trials by querying their state, to ensure they get
29  // reported as used.
30  void InstantiateDynamicTrials();
31
32  const base::CommandLine& parsed_command_line_;
33
34  DISALLOW_COPY_AND_ASSIGN(ChromeBrowserFieldTrials);
35};
36
37#endif  // CHROME_BROWSER_CHROME_BROWSER_FIELD_TRIALS_H_
38