// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for Wi-Fi configuration items.
// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.
syntax = "proto2";
option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";
option optimize_for = LITE_RUNTIME;
package sync_pb;
message WifiConfigurationSpecifics {
// SSID encoded to hex, letters should be upper case and 0x prefix should be
// omitted. For example, ssid "network" would be provided as "6E6574776F726B".
optional bytes hex_ssid = 1;
enum SecurityType {
SECURITY_TYPE_UNSPECIFIED = 0;
SECURITY_TYPE_NONE = 1;
SECURITY_TYPE_WEP = 2;
SECURITY_TYPE_PSK = 3; // WPA-PSK or RSN-PSK
}
optional SecurityType security_type = 2;
// The passphrase can be ASCII, UTF-8, or a string of hex digits.
optional bytes passphrase = 3;
enum AutomaticallyConnectOption {
AUTOMATICALLY_CONNECT_UNSPECIFIED = 0;
AUTOMATICALLY_CONNECT_DISABLED = 1;
AUTOMATICALLY_CONNECT_ENABLED = 2;
}
optional AutomaticallyConnectOption automatically_connect = 4;
enum IsPreferredOption {
IS_PREFERRED_UNSPECIFIED = 0;
IS_PREFERRED_DISABLED = 1;
IS_PREFERRED_ENABLED = 2;
}
optional IsPreferredOption is_preferred = 5;
enum MeteredOption {
METERED_OPTION_UNSPECIFIED = 0;
METERED_OPTION_NO = 1;
METERED_OPTION_YES = 2;
// Allows the device to use heuristics to determine if network is metered.
METERED_OPTION_AUTO = 3;
}
optional MeteredOption metered = 6;
message ProxyConfiguration {
enum ProxyOption {
PROXY_OPTION_UNSPECIFIED = 0;
PROXY_OPTION_DISABLED = 1;
// Use a Proxy Auto-config(PAC) Url, set in proxy_url
PROXY_OPTION_AUTOMATIC = 2;
// Uses Web Proxy Auto-Discovery Protocol (WPAD) to discover the proxy
// settings using DHCP/DNS.
PROXY_OPTION_AUTODISCOVERY = 3;
// User sets details in manual_proxy_configuration.
PROXY_OPTION_MANUAL = 4;
}
optional ProxyOption proxy_option = 1;
// Only set if PROXY_OPTION_AUTOMATIC.
optional string autoconfiguration_url = 2;
message ManualProxyConfiguration {
optional string http_proxy_url = 1;
optional int32 http_proxy_port = 2;
optional string secure_http_proxy_url = 3;
optional int32 secure_http_proxy_port = 4;
optional string socks_host_url = 5;
optional int32 socks_host_port = 6;
repeated string excluded_domains = 7;
}
// Only set if PROXY_OPTION_MANUAL.
optional ManualProxyConfiguration manual_proxy_configuration = 3;
}
optional ProxyConfiguration proxy_configuration = 7;
enum DnsOption {
DNS_OPTION_UNSPECIFIED = 0;
DNS_OPTION_DEFAULT_DHCP = 1;
DNS_OPTION_CUSTOM = 2;
}
optional DnsOption dns_option = 10;
// List of DNS servers to be used when set to DNS_OPTION_CUSTOM. Up to 4.
repeated string custom_dns = 8;
// The last time this configuration was connected to before being synced. It
// will only be updated when the configuration is changed. This is represented
// with the UNIX timestamp, ms since epoch.
optional int64 last_connected_timestamp = 9;
}