// Copyright 2016 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 safe_browsing;

// See //chrome/browser/resources/safe_browsing/README.md for guidelines
// on how to set fields in this file.

// Next id: 5
message DownloadFileType {
  optional string extension = 1;  // required, except in default_file_type.
  optional int64 uma_value = 2;   // required
  optional bool is_archive = 3 [default = false];

  enum PingSetting {
    SAMPLED_PING = 0;
    NO_PING = 1;
    FULL_PING = 2;
  }
  optional PingSetting ping_setting = 4;  // required

  enum DangerLevel {
    NOT_DANGEROUS = 0;
    ALLOW_ON_USER_GESTURE = 1;
    DANGEROUS = 2;
  }

  enum AutoOpenHint {
    DISALLOW_AUTO_OPEN = 0;
    ALLOW_AUTO_OPEN = 1;
  }

  enum PlatformType {
    PLATFORM_ANY = 0;
    PLATFORM_ANDROID = 1;
    PLATFORM_CHROME_OS = 2;
    PLATFORM_LINUX = 3;
    PLATFORM_MAC = 4;
    PLATFORM_WINDOWS = 5;
  }

  // Next id: 5
  message PlatformSettings {
    optional PlatformType platform = 1 [default = PLATFORM_ANY];
    optional DangerLevel danger_level = 2;     // required
    optional AutoOpenHint auto_open_hint = 3;  // required
    optional uint64 max_file_size_to_analyze = 4
        [default = 18446744073709551615];  // (2^64)-1]
  };

  // Protos parsed by Chrome should have exactly one entry here.
  repeated PlatformSettings platform_settings = 5;

  // The type of file content inspection we should do, if any.
  enum InspectionType {
    NONE = 0;
    ZIP = 1;
    RAR = 2;
    DMG = 3;
  }
  optional InspectionType inspection_type = 6;
};

// Next id: 6
message DownloadFileTypeConfig {
  // All required
  optional uint32 version_id = 1;
  optional float sampled_ping_probability = 2;
  repeated DownloadFileType file_types = 3;
  optional DownloadFileType default_file_type = 4;

  // Limits on repeated fields in the ClientDownloadRequest (i.e. the
  // download ping). Limits are per-ping.
  optional uint64 max_archived_binaries_to_report = 5;
}
