blob: 3b871c89ab847bbe0b671da08dcc1b7c2e2ff56d [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 "chrome/chrome_cleaner/interfaces/windows_handle.mojom";
import "components/chrome_cleaner/public/interfaces/chrome_prompt.mojom";
import "mojo/public/mojom/base/string16.mojom";
// Source:
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa384129.aspx
enum Wow64Access {
kNone = 0,
// KEY_WOW64_64KEY
k64Key = 0x0100,
// KEY_WOW64_32KEY
k32Key = 0x0200,
};
// Typemapped to chrome_cleaner::RegKeyPath.
struct RegKeyPath {
WindowsHandle rootkey;
// This is only sent by URZA, which currently doesn't support registry paths
// with embedded nulls.
mojo_base.mojom.String16 subkey;
Wow64Access wow64access;
};
// Used for reporting detected registry footprints.
// Typemapped to chrome_cleaner::PUPData::RegistryFootprint.
struct RegistryFootprint {
RegKeyPath key_path;
String16EmbeddedNulls value_name;
String16EmbeddedNulls value_substring;
// An enumerator of chrome_cleaner::RegistryMatchRule.
uint32 rule;
};
// Typemapped to chrome_cleaner::UwS::TraceLocation enumeration from
// chrome_cleaner/logging/proto/shared_data.proto.
// The struct is used here as a work-around to make Mojo check passed values
// without having to duplicate the enum definition.
struct TraceLocation {
int32 value;
};
// Typemapped to chrome_cleaner::PUPData::FileInfo.
struct FileInfo {
array<TraceLocation> found_in;
};
// Partially typemapped to chrome_cleaner::PUPData::PUP.
// UwS signatures are not included.
struct PUP {
array<FilePath> expanded_disk_footprints;
array<RegistryFootprint> expanded_registry_footprints;
array<mojo_base.mojom.String16> expanded_scheduled_tasks;
map<FilePath, FileInfo> disk_footprints_info;
};