// 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.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package chrome_cleaner;

// These enums are used by server-side code as well as in
// uws_spec_by_version.proto.

// Identify the registry root key for a StaticRegistryFootprint.
enum RegistryRoot {
  // An invalid value for the null entries terminating the
  // StaticRegistryFootprint arrays.
  REGISTRY_ROOT_INVALID = 0;
  // The root is HKEY_LOCAL_MACHINE.
  REGISTRY_ROOT_LOCAL_MACHINE = 1;
  // The root is HKEY_CURRENT_USER, and potentially other users' hives too.
  REGISTRY_ROOT_USERS = 2;
  // The root is HKEY_CLASSES_ROOT.
  REGISTRY_ROOT_CLASSES = 3;
  // The root is a Group Policy file for the whole machine.
  REGISTRY_ROOT_MACHINE_GROUP_POLICY = 4;
  // The root is a Group Policy file for the current user, and potentially the
  // other users on the same machine.
  REGISTRY_ROOT_USERS_GROUP_POLICY = 5;
}

// A matching rule describes how the content of a registry key is matched
// against |value_substring|.
enum RegistryMatchRule {
  // An invalid matching rule.
  REGISTRY_VALUE_MATCH_INVALID = 0;
  // Any key will match. So the key and subkeys are always removed.
  REGISTRY_VALUE_MATCH_KEY = 1;
  // Any value will match. So the value is always removed, whatever it's
  // content is.
  REGISTRY_VALUE_MATCH_VALUE_NAME = 2;
  // Match when value is exactly the same as |value_substring|. The whole
  // value is removed.
  REGISTRY_VALUE_MATCH_EXACT = 3;
  // Match when the value contains |value_substring|. The whole value is
  // removed.
  REGISTRY_VALUE_MATCH_CONTAINS = 4;
  // Match when the value contains |value_substring|. Only the match substring
  // is removed from the content.
  REGISTRY_VALUE_MATCH_PARTIAL = 5;
  // Match when an entry of a set separated by common delimiters (comma, space
  // and null characters) that is exactly the same as |value_substring|. The
  // matched entry of the set is removed.
  REGISTRY_VALUE_MATCH_COMMON_SEPARATED_SET_EXACT = 6;
  // Match when an entry of a set separated by common delimiters (comma, space
  // and null characters) contains the value |value_substring|. The matched
  // entry of the set is removed.
  REGISTRY_VALUE_MATCH_COMMON_SEPARATED_SET_CONTAINS = 7;
  // Match when an entry of a comma separated set is a path that contains
  // |value_substring|. Since these paths are most likely shortened (e.g., by
  // replacing the tail of the path components with ~N) when they contain one
  // of the characters used to separate the entries of the set, we must get
  // the long version of these shortened name to identify if they contain
  // |value_substring|. The matched entry of the set is removed.
  REGISTRY_VALUE_MATCH_COMMON_SEPARATED_SET_CONTAINS_PATH = 8;
  // Match when an entry of a comma separated set is exactly the same as
  // |value_substring|. The matched entry of the set is removed.
  REGISTRY_VALUE_MATCH_COMMA_SEPARATED_SET_EXACT = 9;
  // Match when an entry of a comma separated set contains |value_substring|.
  // The matched entry of the set is removed.
  REGISTRY_VALUE_MATCH_COMMA_SEPARATED_SET_CONTAINS = 10;
};
