// Copyright 2013 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 extensions;

// This is used to request more information on blacklisted CRX packages. The
// client maintains a local cache of blacklisted ids, and makes requests to our
// server to get more information, such as the blacklist type.
message ClientCRXListInfoRequest {
  // ID of the CRX package.
  required string id = 1;

  // Locale of the device, eg en, en_US.
  optional string locale = 2;
}

message ClientCRXListInfoResponse {
  enum Verdict {
    NOT_IN_BLACKLIST = 0;
    MALWARE = 1;
    SECURITY_VULNERABILITY = 2;
    CWS_POLICY_VIOLATION = 3;
    POTENTIALLY_UNWANTED = 4;
  }
  // Although listed as optional, this is required.
  optional Verdict verdict = 1 [default=NOT_IN_BLACKLIST];

  message UserMessage {
    // If present, will be appended to disable reason in the details page. We
    // could use this to send a URL to a blogpost or help article.
    optional string detail_message = 1;
  }
  optional UserMessage user_message = 2;
}
