// 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",
    "description": "Use the <code>chrome.privacy</code> API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the <a href='types.html#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting Chrome's configuration.",
    "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>."
          },
          "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 Windows and 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": ["windows", "cros", "cros touch"]
          }
        }
      }
    }
  }
]
