// 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 "chrome/chrome_cleaner/interfaces/windows_handle.mojom"; import "components/chrome_cleaner/public/interfaces/chrome_prompt.mojom"; import "mojo/public/mojom/base/process_id.mojom"; import "mojo/public/mojom/base/string16.mojom"; enum KnownFolder { kWindows = 0, kProgramFiles = 1, kProgramFilesX86 = 2, kAppData = 3, }; struct StringSid { mojo_base.mojom.String16 value; }; struct ScheduledTaskAction { FilePath path; FilePath working_dir; mojo_base.mojom.String16 arguments; }; struct ScheduledTask { mojo_base.mojom.String16 name; mojo_base.mojom.String16 description; array actions; }; struct UserInformation { mojo_base.mojom.String16 name; mojo_base.mojom.String16 domain; // User account type (SID_NAME_USE). See // https://msdn.microsoft.com/en-us/library/windows/desktop/aa379601(v=vs.85).aspx uint32 account_type; }; // Passes requests that do not mutate the system from the low-privilege sandbox // target process to the high-privilege broker process. It is implemented in // EngineRequestsImpl in engines/broker. // // This interface is used in scanning and cleaning mode. interface EngineRequests { // Converts the given KnownFolder Id to its folder path. SandboxGetKnownFolderPath(KnownFolder folder_id) => (bool result, FilePath folder_path); // Gets all of the processes currently running on the machine. SandboxGetProcesses() => (bool result, array processes); // Gets all the tasks on the system. SandboxGetTasks() => (bool result, array tasks); // Returns the path to the executable of the given process. SandboxGetProcessImagePath(mojo_base.mojom.ProcessId pid) => (bool result, FilePath image_path); // Gets all of the modules loaded into memory for the given process. SandboxGetLoadedModules(mojo_base.mojom.ProcessId pid) => (bool result, array modules); // Gets the command line for the given process. SandboxGetProcessCommandLine(mojo_base.mojom.ProcessId pid) => (bool result, mojo_base.mojom.String16 command_line); // Gets the given UserInformation values for |sid|. SandboxGetUserInfoFromSID(StringSid sid) => (bool result, UserInformation user_info); // Gets a read-only registry key handle to the given key. // |dw_access| may specify KEY_WOW64_32KEY or KEY_WOW64_64KEY. |root_key| must // be non-null, and |sub_key| can't have any null characters. SandboxOpenReadOnlyRegistry(WindowsHandle root_key, mojo_base.mojom.String16 sub_key, uint32 dw_access) => (uint32 result, WindowsHandle reg_handle); // Gets a read-only registry key handle to the given key. // |dw_access| may not specify KEY_WOW64_32KEY or KEY_WOW64_64KEY. // ||root_key| may be null, and |sub_key| may have null characters. SandboxNtOpenReadOnlyRegistry(WindowsHandle root_key, String16EmbeddedNulls sub_key, uint32 dw_access) => (uint32 result, WindowsHandle reg_handle); };