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

Side by Side Diff: chrome/browser/safe_browsing/environment_data_collection.cc

Issue 470213002: Moving all the incident reporting stuff to a common folder (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@binsign
Patch Set: Created 6 years, 4 months 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
(Empty)
1 // Copyright 2014 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 #include "chrome/browser/safe_browsing/environment_data_collection.h"
6
7 #include <string>
8
9 #include "base/cpu.h"
10 #include "base/sys_info.h"
11 #include "chrome/common/chrome_version_info.h"
12 #include "chrome/common/safe_browsing/csd.pb.h"
13
14 namespace safe_browsing {
15
16 // Populates |process| with platform-specific data related to the chrome browser
17 // process.
18 void CollectPlatformProcessData(
19 ClientIncidentReport_EnvironmentData_Process* process);
20
21 namespace {
22
23 ClientIncidentReport_EnvironmentData_Process_Channel MapChannelToProtobuf(
24 chrome::VersionInfo::Channel channel) {
25 typedef chrome::VersionInfo VersionInfo;
26 typedef ClientIncidentReport_EnvironmentData_Process Process;
27 switch (channel) {
28 case VersionInfo::CHANNEL_CANARY:
29 return Process::CHANNEL_CANARY;
30 case VersionInfo::CHANNEL_DEV:
31 return Process::CHANNEL_DEV;
32 case VersionInfo::CHANNEL_BETA:
33 return Process::CHANNEL_BETA;
34 case VersionInfo::CHANNEL_STABLE:
35 return Process::CHANNEL_STABLE;
36 default:
37 return Process::CHANNEL_UNKNOWN;
38 }
39 }
40
41 // Populates |process| with data related to the chrome browser process.
42 void CollectProcessData(ClientIncidentReport_EnvironmentData_Process* process) {
43 chrome::VersionInfo version_info;
44 if (version_info.is_valid()) {
45 // TODO(grt): Move this logic into VersionInfo (it also appears in
46 // ChromeMetricsServiceClient).
47 std::string version(version_info.Version());
48 #if defined(ARCH_CPU_64_BITS)
49 version += "-64";
50 #endif // defined(ARCH_CPU_64_BITS)
51 if (!version_info.IsOfficialBuild())
52 version += "-devel";
53 process->set_version(version);
54 }
55
56 process->set_chrome_update_channel(
57 MapChannelToProtobuf(chrome::VersionInfo::GetChannel()));
58
59 CollectPlatformProcessData(process);
60 }
61
62 } // namespace
63
64 void CollectEnvironmentData(ClientIncidentReport_EnvironmentData* data) {
65 // OS
66 {
67 ClientIncidentReport_EnvironmentData_OS* os = data->mutable_os();
68 os->set_os_name(base::SysInfo::OperatingSystemName());
69 os->set_os_version(base::SysInfo::OperatingSystemVersion());
70 }
71
72 // Machine
73 {
74 base::CPU cpu_info;
75 ClientIncidentReport_EnvironmentData_Machine* machine =
76 data->mutable_machine();
77 machine->set_cpu_architecture(base::SysInfo::OperatingSystemArchitecture());
78 machine->set_cpu_vendor(cpu_info.vendor_name());
79 machine->set_cpuid(cpu_info.signature());
80 }
81
82 // Process
83 CollectProcessData(data->mutable_process());
84 }
85
86 #if !defined(OS_WIN)
87 void CollectPlatformProcessData(
88 ClientIncidentReport_EnvironmentData_Process* process) {
89 // Empty implementation for platforms that do not (yet) have their own
90 // implementations.
91 }
92 #endif
93
94 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698