[M120 Migration]Fix for crash during chrome exit
[platform/framework/web/chromium-efl.git] / chrome / browser / chrome_browser_field_trials.h
1 // Copyright 2012 The Chromium Authors
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/memory/raw_ptr.h"
9 #include "components/variations/platform_field_trials.h"
10
11 #if BUILDFLAG(IS_ANDROID)
12 #include "components/variations/variations_associated_data.h"
13 #endif
14
15 class PrefService;
16
17 namespace base {
18 class FeatureList;
19 }
20
21 class ChromeBrowserFieldTrials : public variations::PlatformFieldTrials {
22  public:
23   explicit ChromeBrowserFieldTrials(PrefService* local_state);
24
25   ChromeBrowserFieldTrials(const ChromeBrowserFieldTrials&) = delete;
26   ChromeBrowserFieldTrials& operator=(const ChromeBrowserFieldTrials&) = delete;
27
28   ~ChromeBrowserFieldTrials() override;
29
30   // variations::PlatformFieldTrials:
31   void OnVariationsSetupComplete() override;
32   void SetUpClientSideFieldTrials(
33       bool has_seed,
34       const variations::EntropyProviders& entropy_providers,
35       base::FeatureList* feature_list) override;
36   void RegisterSyntheticTrials() override;
37
38  private:
39   // Weak pointer to the local state prefs store.
40   const raw_ptr<PrefService, AcrossTasksDanglingUntriaged> local_state_;
41
42 #if BUILDFLAG(IS_ANDROID)
43   // VariationID to be used for FREMobileIdentityConsistencyFieldTrial.
44   // Set by SetUpClientSideTrials(...) and then used by
45   // RegisterSyntheticTrials().
46   variations::VariationID fre_consistency_trial_variation_id_ =
47       variations::EMPTY_ID;
48 #endif  // BUILDFLAG(IS_ANDROID)
49 };
50
51 #endif  // CHROME_BROWSER_CHROME_BROWSER_FIELD_TRIALS_H_