Index: chrome/browser/chrome_browser_main.cc |
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc |
index 245f860522411718aac24e6fc5e35542f0145838..80835639b48e0d48e8f4879071d89d1d9a2038d1 100644 |
--- a/chrome/browser/chrome_browser_main.cc |
+++ b/chrome/browser/chrome_browser_main.cc |
@@ -14,6 +14,7 @@ |
#include "base/at_exit.h" |
#include "base/bind.h" |
#include "base/command_line.h" |
+#include "base/cpu.h" |
#include "base/debug/trace_event.h" |
#include "base/file_path.h" |
#include "base/file_util.h" |
@@ -207,6 +208,13 @@ using content::BrowserThread; |
namespace { |
+void LogIntelMicroArchitecture() { |
+ base::CPU cpu; |
+ base::CPU::IntelMicroArchitecture arch = cpu.GetIntelMicroArchitecture(); |
+ UMA_HISTOGRAM_ENUMERATION("Platform.IntelMaxMicroArchitecture", arch, |
+ base::CPU::MAX_INTEL_MICRO_ARCHITECTURE); |
+} |
+ |
// This function provides some ways to test crash and assertion handling |
// behavior of the program. |
void HandleTestParameters(const CommandLine& command_line) { |
@@ -1029,6 +1037,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
StartMetricsRecording(); |
#endif |
+#if defined(ARCH_CPU_X86_FAMILY) |
+ LogIntelMicroArchitecture(); |
+#endif // defined(ARCH_CPU_X86_FAMILY) |
+ |
// Create watchdog thread after creating all other threads because it will |
// watch the other threads and they must be running. |
browser_process_->watchdog_thread(); |