Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(445)

Side by Side Diff: chrome/browser/chrome_browser_field_trials.cc

Issue 1425533011: Support "shared" histograms between processes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@shmem-alloc
Patch Set: reorganized Factory class to be cleaner Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/chrome_browser_field_trials.h" 5 #include "chrome/browser/chrome_browser_field_trials.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/feature_list.h"
10 #include "base/metrics/field_trial.h" 11 #include "base/metrics/field_trial.h"
12 #include "base/metrics/histogram_base.h"
13 #include "base/metrics/histogram_persistence.h"
11 #include "base/strings/string_util.h" 14 #include "base/strings/string_util.h"
12 #include "base/time/time.h" 15 #include "base/time/time.h"
13 #include "chrome/common/chrome_switches.h" 16 #include "chrome/common/chrome_switches.h"
14 #include "components/metrics/metrics_pref_names.h" 17 #include "components/metrics/metrics_pref_names.h"
15 #include "components/omnibox/browser/omnibox_field_trial.h" 18 #include "components/omnibox/browser/omnibox_field_trial.h"
16 19
17 #if defined(OS_ANDROID) || defined(OS_IOS) 20 #if defined(OS_ANDROID) || defined(OS_IOS)
18 #include "chrome/browser/chrome_browser_field_trials_mobile.h" 21 #include "chrome/browser/chrome_browser_field_trials_mobile.h"
19 #else 22 #else
20 #include "chrome/browser/chrome_browser_field_trials_desktop.h" 23 #include "chrome/browser/chrome_browser_field_trials_desktop.h"
(...skipping 12 matching lines...) Expand all
33 InstantiateDynamicTrials(); 36 InstantiateDynamicTrials();
34 37
35 #if defined(OS_ANDROID) || defined(OS_IOS) 38 #if defined(OS_ANDROID) || defined(OS_IOS)
36 chrome::SetupMobileFieldTrials(parsed_command_line_); 39 chrome::SetupMobileFieldTrials(parsed_command_line_);
37 #else 40 #else
38 chrome::SetupDesktopFieldTrials(parsed_command_line_); 41 chrome::SetupDesktopFieldTrials(parsed_command_line_);
39 #endif 42 #endif
40 } 43 }
41 44
42 void ChromeBrowserFieldTrials::InstantiateDynamicTrials() { 45 void ChromeBrowserFieldTrials::InstantiateDynamicTrials() {
46 // Persistent histograms must be enabled as soon as possible.
47 if (base::FeatureList::IsEnabled(base::kPersistentHistogramsFeature)) {
48 const std::string allocator_name("BrowserMetricsAllocator");
49 // Create persistent/shared memory and allow histograms to be stored in it.
50 // TODO(bcwhite): Update this with correct allocator and memory size.
51 base::SetPersistentHistogramMemoryAllocator(
52 new base::LocalPersistentMemoryAllocator(1 << 20, // 1 MiB
53 0x4D5B9953, // SHA1(B..M..A..)
54 allocator_name));
55 base::GetPersistentHistogramMemoryAllocator()->CreateHistograms(
56 allocator_name);
57 }
43 // The following trials are used from renderer process. 58 // The following trials are used from renderer process.
44 // Mark here so they will be sync-ed. 59 // Mark here so they will be sync-ed.
45 base::FieldTrialList::FindValue("DisplayList2dCanvas"); 60 base::FieldTrialList::FindValue("DisplayList2dCanvas");
46 // Activate the autocomplete dynamic field trials. 61 // Activate the autocomplete dynamic field trials.
47 OmniboxFieldTrial::ActivateDynamicTrials(); 62 OmniboxFieldTrial::ActivateDynamicTrials();
48 } 63 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698