| // Copyright 2017 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. |
| |
| module chrome_cleaner.mojom; |
| |
| // IMPORTANT NOTE: Avoid adding dependencies to typemapped .mojom files. |
| // Enabling typemaps currently (as of July 2017) requires indirectly depending |
| // on all existing typemap definitions. The Chrome Cleaner is built |
| // independently from Chromium and would like to avoid these dependencies. |
| |
| // Once it's possible to specify a limited subset of typemaps to use, be |
| // careful not to add dependencies to [Native] mojo structures. The wire format |
| // for [Native] structs is not guaranteed to be consistent between versions. |
| |
| [Extensible] |
| enum PromptAcceptance { |
| UNSPECIFIED = 0, |
| // The user explicitly accepted the cleanup operation and cleaner logs |
| // upload is allowed. |
| ACCEPTED_WITH_LOGS = 1, |
| // The user explicitly accepted the cleanup operation and cleaner logs |
| // upload is not allowed. |
| ACCEPTED_WITHOUT_LOGS = 2, |
| // The user explicitly denied the Chrome prompt. |
| DENIED = 3, |
| NUM_VALUES, |
| }; |
| |
| struct FilePath { |
| array<uint16> value; |
| }; |
| |
| struct RegistryKey { |
| // A string formatted for display to the user. |
| // Example: HKCU:32\software\unwanted_software |
| array<uint16> value; |
| }; |
| |
| struct ExtensionId { |
| // A 32-character extension ID. |
| array<uint16> value; |
| }; |
| |
| // Service provided by Chrome to prompt the user to start a cleanup if the |
| // Chrome Cleanup Tool detects unwanted software on the system. |
| interface ChromePrompt { |
| // Params: |
| // - files_to_delete: list of fully-qualified paths of the files that will |
| // be deleted by the Chrome Cleanup Tool. |
| // - registry_keys: list of fully-qualified paths of the registry keys that |
| // will be changed or deleted by the Chrome Cleanup Tool. |
| // - extension_ids: list of IDs of extensions that will be removed by the |
| // Chrome Cleanup Tool. |
| // Returns: |
| // - prompt_acceptance: indicates if the user accepted the prompt. |
| PromptUser(array<FilePath> files_to_delete, |
| [MinVersion=1] array<RegistryKey>? registry_keys, |
| [MinVersion=2] array<ExtensionId>? extension_ids) |
| => (PromptAcceptance prompt_acceptance); |
| |
| // Actually uninstalls the extensions. |
| // Params: |
| // - extension_ids: list of IDs of extensions that will be removed from |
| // Chrome. If there are any invalid IDs, none are removed and false is |
| // returned. |
| // Returns: |
| // - success: indicates if the extension removal was successful. |
| [MinVersion=3] DisableExtensions(array<ExtensionId> extension_ids) |
| => (bool success); |
| }; |