blob: 7eb77f146bdcc79c27ba2ff6e25b4b2f60a833ac [file] [log] [blame]
// 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);
};