// Copyright (c) 2012 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.

[
  {
    "namespace": "privacy",
    "dependencies": [ "types" ],
    "properties": {
      "network": {
        "type": "object",
        "value": {},
        "description": "Settings that influence Chrome's handling of network connections in general.",
        "properties": {
          "networkPredictionEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["networkPredictionEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome attempts to speed up your web browsing experience by pre-resolving DNS entries, prerendering sites (<code>&lt;link rel='prefetch' ...&gt;</code>), and preemptively opening TCP and SSL connections to servers.  This preference's value is a boolean, defaulting to <code>true</code>."
          }
        }
      },
      "services": {
        "type": "object",
        "value": {},
        "description": "Settings that enable or disable features that require third-party network services provided by Google and your default search provider.",
        "properties": {
          "alternateErrorPagesEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["alternateErrorPagesEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome uses a web service to help resolve navigation errors. This preference's value is a boolean, defaulting to <code>true</code>."
          },
          "autofillEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["autofillEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome offers to automatically fill in forms. This preference's value is a boolean, defaulting to <code>true</code>."
          },
          "instantEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["instantEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome automatically performs and displays search requests for text you type into the Omnibox as you type it. This preference's value is a boolean, defaulting to <code>true</code>."
          },
          "safeBrowsingEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["safeBrowsingEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome does its best to protect you from phishing and malware. This preference's value is a boolean, defaulting to <code>true</code>."
          },
          "searchSuggestEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["searchSuggestEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome sends the text you type into the Omnibox to your default search engine, which provides predictions of websites and searches that are likely completions of what you've typed so far. This preference's value is a boolean, defaulting to <code>true</code>."
          },
          "spellingServiceEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["spellingServiceEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome uses a web service to help correct spelling errors. This preference's value is a boolean, defaulting to <code>false</code>."
          },
          "translationServiceEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["translationServiceEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome offers to translate pages that aren't in a language you read. This preference's value is a boolean, defaulting to <code>true</code>."
          }
        }
      },
      "websites": {
        "type": "object",
        "value": {},
        "description": "Settings that determine what information Chrome makes available to websites.",
        "properties": {
          "thirdPartyCookiesAllowed": {
            "$ref": "types.ChromeSetting",
            "value": ["thirdPartyCookiesAllowed", {"type": "boolean"}],
            "description": "If disabled, Chrome blocks third-party sites from setting cookies. The value of this preference is of type boolean, and the default value is <code>true</code>."
          },
          "hyperlinkAuditingEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["hyperlinkAuditingEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome sends auditing pings when requested by a website (<code>&lt;a ping&gt;</code>). The value of this preference is of type boolean, and the default value is <code>true</code>."
          },
          "referrersEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["referrersEnabled", {"type":"boolean"}],
            "description": "If enabled, Chrome sends <code>referer</code> headers with your requests. Yes, the name of this preference doesn't match the misspelled header. No, we're not going to change it. The value of this preference is of type boolean, and the default value is <code>true</code>."
          },
          "protectedContentEnabled": {
            "$ref": "types.ChromeSetting",
            "value": ["protectedContentEnabled", {"type":"boolean"}],
            "description": "<strong>Available on ChromeOS only</strong>: If enabled, Chrome provides a unique ID to plugins in order to run protected content. The value of this preference is of type boolean, and the default value is <code>true</code>.",
            "platforms": ["cros", "cros touch"]
          }
        }
      }
    }
  }
]
