// 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. module chrome_cleaner.mojom; import "chrome/chrome_cleaner/interfaces/string16_embedded_nulls.mojom"; import "components/chrome_cleaner/public/interfaces/chrome_prompt.mojom"; import "mojo/public/mojom/base/string16.mojom"; // Passes requests that can mutate the system from the low-privilege sandbox // target process to the high-privilege broker process. It is implemented in // CleanerEngineRequestsImpl in engines/broker. // // This interface is only used when in cleaning mode, in which case the broker // process runs with administrator privileges, so the parameters of each method // must be carefully validated to ensure that the requests are safe. interface CleanerEngineRequests { // Attempts to deletes the given file, applying some basic checks to ensure // the file is safe to delete. SandboxDeleteFile(FilePath file_name) => (bool result); // Schedules the given file for post-reboot removal, applying some basic // checks to ensure the file is safe to delete. SandboxDeleteFilePostReboot(FilePath file_name) => (bool result); // Deletes the given registry key. |key| may contain null characters. SandboxNtDeleteRegistryKey(String16EmbeddedNulls key) => (bool result); // Deletes the given value for the given registry key. |key| and |key_name| // may contain null characters. SandboxNtDeleteRegistryValue(String16EmbeddedNulls key, String16EmbeddedNulls value_name) => (bool result); // Updates the value of the given key's value to |new_value|. // |new_value| must be a subset of the existing value. This is intended to be // used to delete parts of a value, not to set a new value. SandboxNtChangeRegistryValue(String16EmbeddedNulls key, String16EmbeddedNulls value_name, String16EmbeddedNulls new_value) => (bool result); // Deletes the given service. SandboxDeleteService(mojo_base.mojom.String16 name) => (bool result); // Deletes the given task. SandboxDeleteTask(mojo_base.mojom.String16 name) => (bool result); // Terminates the given process. // The broker process can't be terminated. SandboxTerminateProcess(uint32 process_id) => (bool result); };