1// Copyright 2018 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// Safe Browsing Reporter request protocol buffers. This protocol message should
6// be kept in sync with the server implementation in Google3.
7
8syntax = "proto2";
9
10import "shared_data.proto";
11
12option optimize_for = LITE_RUNTIME;
13
14package chrome_cleaner;
15
16// Reporter logs to be sent to the Safe Browsing API.
17//
18// FoilReporterLogs is a legacy name that must be kept because existing
19// analysis tools use it.
20//
21// Next tag: 13.
22message FoilReporterLogs {
23  // Corresponded to data related to reporter experiments.
24  reserved 7, 8, 12;
25
26  // Environmental data regarding the machine and the Reporter.
27  // Next tag: 9.
28  message EnvironmentData {
29    // The Windows version as an enum value from base::win::Version.
30    optional uint32 windows_version = 1;
31    // Reporter's version number (X.Y.Z).
32    optional string reporter_version = 2;
33
34    // The user's installed Chrome version.
35    optional string chrome_version = 3;
36
37    // The channel of the user's installed chrome. The possible values are:
38    // 0: unknown; 1: canary; 2: dev; 3: beta; 4: stable.
39    optional int32 chrome_channel = 4;
40
41    // The user's default locale. e.g. "en-US".
42    optional string default_locale = 5;
43
44    // The country of the client IP. e.g. "US". This field is set by the Safe
45    // Browsing server on receiving a report and should not be set in the
46    // reporter copy of this proto.
47    optional string client_country = 6;
48
49    // The bitness of the reporter process, 32 or 64.
50    optional int32 bitness = 7;
51
52    // The engine run by the reporter.
53    optional Engine engine = 8;
54  }
55  optional EnvironmentData environment = 1;
56
57  // The identifier of the current report, generated by the server and that
58  // cannot be linked to the user who sent this data.
59  optional string token = 2;
60
61  // The exit code of the Reporter run.
62  optional uint32 exit_code = 3;
63
64  // The list of UwS matched by the reporter with corresponding matching data.
65  repeated UwS detected_uws = 4;
66
67  // The timestamp when the server received this report, given as the number of
68  // micro-seconds since Unix Epoch.
69  optional int64 timestamp = 5;
70
71  // Identifier used to group all reports generated during the same run of the
72  // software reporter (which may include multiple invocations of the reporter
73  // binary, each generating a report).
74  optional string session_id = 6;
75
76  // Information about reporter processes and their resource usage.
77  repeated ProcessInformation process_information = 9;
78
79  // Flag to signal if we encountered a modified Chrome shortcut on the machine.
80  optional bool found_modified_chrome_shortcuts = 10;
81
82  // UwS trace locations scanned by the reporter.
83  repeated UwS.TraceLocation scanned_locations = 11;
84}
85