| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // Safe Browsing Reporter request protocol buffers. Those protocol messages |
| // should be kept in sync with the server implementation. |
| |
| syntax = "proto2"; |
| |
| import "shared_data.proto"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package chrome_cleaner; |
| |
| // A report to be sent to the Safe Browsing API. |
| // Next tag: 21. |
| message ChromeCleanerReport { |
| // Deprecated client_id field that stopped being sent after 20.113. |
| reserved 2; |
| // Deprecated found_pup field that stopped being sent after 6.44. |
| reserved 3; |
| // Deprecated removed_uws field that stopped being sent after 16.88. |
| reserved 12; |
| |
| // Environmental data regarding the machine and the Cleaner. |
| // Next tag: 11. |
| message EnvironmentData { |
| // The Windows version as an enum value from base::win::Version. |
| optional uint32 windows_version = 1; |
| // Cleaner's version number (X.Y.Z). |
| optional string cleaner_version = 2; |
| // Next tag: 4. |
| message Machine { |
| optional string cpu_architecture = 1; |
| optional string cpu_vendor = 2; |
| optional uint32 cpuid = 3; |
| } |
| optional Machine machine = 3; |
| |
| // The user installed chrome version. |
| optional string chrome_version = 4; |
| |
| // The channel of the user's installed chrome. The possible values are: |
| // 0: unknown; 1: canary; 2: dev; 3: beta; 4: stable. |
| optional int32 chrome_channel = 8; |
| |
| // The user default locale. |
| optional string default_locale = 5; |
| |
| // To identify if this report contains a detailed system report. |
| optional bool detailed_system_report = 6; |
| |
| // The country of the client IP. e.g. "US". This field is set by the Safe |
| // Browsing server on receiving a report and should not be set in the |
| // Chrome Cleaner copy of this proto. |
| optional string client_country = 7; |
| |
| // The bitness of the cleaner process, 32 or 64. |
| optional int32 bitness = 9; |
| |
| // The engine run by the cleaner. |
| optional Engine engine = 10; |
| } |
| optional EnvironmentData environment = 1; |
| |
| // Identifier used to group all reports generated during the same run of the |
| // cleaner, including runs before and after a reboot. |
| optional string cleanup_id = 17; |
| |
| // The exit code of the Cleaner run. |
| optional uint32 exit_code = 4; |
| |
| // Each line as saved to the log file. |
| repeated string raw_log_line = 5; |
| |
| // The list of string identifiers for found UwS. |
| // Deprecated. Please use detected_uws instead. |
| repeated string found_uws = 6 [deprecated = true]; |
| |
| // All the information found by Chrome Cleaner about an UwS during a run. |
| repeated UwS detected_uws = 13; |
| |
| // All the information found by Chrome Cleaner about unknown UwS during a |
| // run. This is generally from cleanup calls made from the sandbox where we |
| // don't know what UwS was the reason for the call. Next tag: 2. |
| message UnknownUwS { repeated MatchedFile files = 1; } |
| optional UnknownUwS unknown_uws = 20; |
| |
| // To identify whether the user is enrolled in UMA or not. |
| optional bool uma_user = 7; |
| |
| // To identify whether the user is enrolled in SafeBrowsing extended |
| // reporting. |
| optional bool sber_enabled = 18; |
| |
| // To identify whether the run was executed post-reboot or not. |
| optional bool post_reboot = 8; |
| |
| // To identify an intermediate log. |
| optional bool intermediate_log = 9; |
| |
| // The timestamp when the server received this report, given as the number of |
| // micro-seconds since Unix Epoch. |
| optional int64 timestamp = 10; |
| |
| // To identify whether the process is started by chrome. |
| // Deprecated. Please use cleaner_startup instead. |
| optional bool chrome_prompt = 11 [deprecated = true]; |
| |
| // To identify if and how the cleaner was started by Chrome as set by |
| // Chrome on the command line. |
| enum CleanerStartup { |
| // For organic users cleaner_startup will remain unset. |
| CLEANER_STARTUP_UNSPECIFIED = 0; |
| // No chrome-prompt flag was given on the command line. |
| CLEANER_STARTUP_NOT_PROMPTED = 1; |
| // Unknown value given on the command line for the chrome-prompt |
| // flag, including when the chrome-prompt flag was given no value. |
| CLEANER_STARTUP_UNKNOWN = 2; |
| // User accepted to run the cleaner when prompted from Chrome. |
| CLEANER_STARTUP_PROMPTED = 3; |
| // The prompt was shown from Chrome's menu and the user accepted to |
| // run the cleaner. |
| CLEANER_STARTUP_SHOWN_FROM_MENU = 4; |
| // User started the cleanup from Chrome's Settings page. |
| CLEANER_STARTUP_USER_INITIATED = 5; |
| } |
| optional CleanerStartup cleaner_startup = 16; |
| |
| // All the additional information gathered when performing a |
| // detailed system report. |
| // Next tag: 13. |
| message SystemReport { |
| // Deprecated preferences field that stopped being sent after 20.114. |
| reserved 10; |
| // Deprecated AntiVirusProduct field that stopped being sent after 29.157. |
| reserved 11; |
| |
| // Information about modules loaded into selected processes. |
| // Next tag: 4. |
| message LoadedModule { |
| // The file information for the loaded module. |
| optional FileInformation file_information = 1; |
| |
| // The name of the module. |
| optional bytes name = 2; |
| |
| // The host of the loaded module. |
| optional ModuleHost host = 3; |
| } |
| repeated LoadedModule loaded_modules = 1; |
| |
| // Information about running processes. |
| // Next tag: 3. |
| message Process { |
| // The file information for the process. |
| optional FileInformation file_information = 1; |
| |
| // The name of the process. |
| optional bytes name = 2; |
| } |
| repeated Process processes = 2; |
| |
| // Information about services. |
| // Next tag: 4. |
| message Service { |
| // The file information for the service. |
| optional FileInformation file_information = 1; |
| |
| // The display name of the service. |
| optional bytes display_name = 2; |
| |
| // The name of the service. |
| optional bytes service_name = 3; |
| } |
| repeated Service services = 3; |
| |
| // Information about installed programs. |
| // Next tag: 2. |
| message InstalledProgram { |
| optional FolderInformation folder_information = 1; |
| } |
| repeated InstalledProgram installed_programs = 4; |
| |
| // Reported registry values. Includes startup registry values, |
| // extension policies, name server values, and dll extensions. |
| repeated RegistryValue registry_values = 5; |
| |
| repeated ScheduledTask scheduled_tasks = 6; |
| |
| // Information about a layered service provider. |
| // Next tag: 3. |
| message LayeredServiceProvider { |
| repeated bytes guids = 1; |
| optional FileInformation file_information = 2; |
| } |
| repeated LayeredServiceProvider layered_service_providers = 7; |
| |
| // Information about proxy settings. |
| // Next tag: 5. |
| message SystemProxySettings { |
| optional bytes config = 1; |
| optional bytes bypass = 2; |
| optional bytes auto_config_url = 3; |
| optional bool autodetect = 4; |
| } |
| optional SystemProxySettings win_inet_proxy_settings = 8; |
| optional SystemProxySettings win_http_proxy_settings = 9; |
| |
| // Information about an extension that is installed. |
| // Next tag: 3. |
| message InstalledExtension { |
| // The ID of the extension that is installed. |
| optional string extension_id = 1; |
| |
| // The method used to install the extension. |
| optional ExtensionInstallMethod install_method = 2; |
| } |
| repeated InstalledExtension installed_extensions = 12; |
| } |
| optional SystemReport system_report = 14; |
| |
| // Information found by Chrome Cleaner while running custom UwS matchers |
| // with incomplete matching results. |
| repeated IncompleteUwSMatch incomplete_uws_matches = 15; |
| |
| // Information about Chrome Cleaner processes and their resource usage. |
| repeated ProcessInformation process_information = 19; |
| } |