// 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.

// Note: Native renderer implementation: extensions/renderer/content_setting.*.
[
  {
    "namespace": "contentSettings",
    "description": "Use the <code>chrome.contentSettings</code> API to change settings that control whether websites can use features such as cookies, JavaScript, and plugins. More generally speaking, content settings allow you to customize Chrome's behavior on a per-site basis instead of globally.",
    "compiler_options": { "generate_type_functions": true },
    "types": [
      {
        "id": "ResourceIdentifier",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The resource identifier for the given content type."
          },
          "description": {
            "type": "string",
            "optional": true,
            "description": "A human readable description of the resource."
          }
        },
        "description": "The only content type using resource identifiers is $(ref:contentSettings.plugins). For more information, see <a href=\"contentSettings#resource-identifiers\">Resource Identifiers</a>."
      },
      {
        "id": "Scope",
        "type": "string",
        "enum": ["regular", "incognito_session_only"],
        "description": "The scope of the ContentSetting. One of<br><var>regular</var>: setting for regular profile (which is inherited by the incognito profile if not overridden elsewhere),<br><var>incognito_session_only</var>: setting for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular settings)."
      },
      {
        "id": "ContentSetting",
        "js_module": "ContentSetting",
        "type": "object",
        "functions": [
          {
            "name": "clear",
            "type": "function",
            "description": "Clear all content setting rules set by this extension.",
            "parameters": [
              {
                "name": "details",
                "type": "object",
                "properties": {
                  "scope": {
                    "$ref": "Scope",
                    "optional": true,
                    "description": "Where to clear the setting (default: regular)."
                  }
                }
              },
              {
                "type": "function",
                "name": "callback",
                "optional": true,
                "parameters": []
              }
            ]
          },
          {
            "name": "get",
            "type": "function",
            "description": "Gets the current content setting for a given pair of URLs.",
            "parameters": [
              {
                "name": "details",
                "type": "object",
                "properties": {
                  "primaryUrl": {
                    "type": "string",
                    "description": "The primary URL for which the content setting should be retrieved. Note that the meaning of a primary URL depends on the content type."
                  },
                  "secondaryUrl": {
                    "type": "string",
                    "description": "The secondary URL for which the content setting should be retrieved. Defaults to the primary URL. Note that the meaning of a secondary URL depends on the content type, and not all content types use secondary URLs.",
                    "optional": true
                  },
                  "resourceIdentifier": {
                    "$ref": "ResourceIdentifier",
                    "optional": true,
                    "description": "A more specific identifier of the type of content for which the settings should be retrieved."
                  },
                  "incognito": {
                    "type": "boolean",
                    "optional": true,
                    "description": "Whether to check the content settings for an incognito session. (default false)"
                  }
                }
              },
              {
                "type": "function",
                "name": "callback",
                "parameters": [
                  {
                    "name": "details",
                    "type": "object",
                    "properties": {
                      "setting": {
                        "type": "any",
                        "description": "The content setting. See the description of the individual ContentSetting objects for the possible values."
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "name": "set",
            "type": "function",
            "description": "Applies a new content setting rule.",
            "parameters": [
              {
                "name": "details",
                "type": "object",
                "properties": {
                  "primaryPattern": {
                    "type": "string",
                    "description": "The pattern for the primary URL. For details on the format of a pattern, see <a href='contentSettings#patterns'>Content Setting Patterns</a>."
                  },
                  "secondaryPattern": {
                    "type": "string",
                    "description": "The pattern for the secondary URL. Defaults to matching all URLs. For details on the format of a pattern, see <a href='contentSettings#patterns'>Content Setting Patterns</a>.",
                    "optional": true
                  },
                  "resourceIdentifier": {
                    "$ref": "ResourceIdentifier",
                    "optional": true,
                    "description": "The resource identifier for the content type."
                  },
                  "setting": {
                    "type": "any",
                    "description": "The setting applied by this rule. See the description of the individual ContentSetting objects for the possible values."
                  },
                  "scope": {
                    "$ref": "Scope",
                    "optional": true,
                    "description": "Where to set the setting (default: regular)."
                  }
                }
              },
              {
                "type": "function",
                "name": "callback",
                "optional": true,
                "parameters": []
              }
            ]
          },
          {
            "name": "getResourceIdentifiers",
            "type": "function",
            "description": "",
            "parameters": [
              {
                "name": "callback",
                "type": "function",
                "parameters": [
                  {
                    "name": "resourceIdentifiers",
                    "type": "array",
                    "description": "A list of resource identifiers for this content type, or <var>undefined</var> if this content type does not use resource identifiers.",
                    "optional": true,
                    "items": {
                      "$ref": "ResourceIdentifier"
                    }
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "CookiesContentSetting",
        "type": "string",
        "enum": ["allow", "block", "session_only"]
      },
      {
        "id": "ImagesContentSetting",
        "type": "string",
        "enum": ["allow", "block"]
      },
      {
        "id": "JavascriptContentSetting",
        "type": "string",
        "enum": ["allow", "block"]
      },
      {
        "id": "LocationContentSetting",
        "type": "string",
        "enum": ["allow", "block", "ask"]
      },
      {
        "id": "PluginsContentSetting",
        "type": "string",
        "enum": ["allow", "block", "detect_important_content"]
      },
      {
        "id": "PopupsContentSetting",
        "type": "string",
        "enum": ["allow", "block"]
      },
      {
        "id": "NotificationsContentSetting",
        "type": "string",
        "enum": ["allow", "block", "ask"]
      },
      {
        "id": "FullscreenContentSetting",
        "type": "string",
        "enum": ["allow"]
      },
      {
        "id": "MouselockContentSetting",
        "type": "string",
        "enum": ["allow"]
      },
      {
        "id": "MicrophoneContentSetting",
        "type": "string",
        "enum": ["allow", "block", "ask"]
      },
      {
        "id": "CameraContentSetting",
        "type": "string",
        "enum": ["allow", "block", "ask"]
      },
      {
        "id": "PpapiBrokerContentSetting",
        "type": "string",
        "enum": ["allow", "block", "ask"]
      },
      {
        "id": "MultipleAutomaticDownloadsContentSetting",
        "type": "string",
        "enum": ["allow", "block", "ask"]
      }
    ],
    "properties": {
      "cookies": {
        "$ref": "ContentSetting",
        "description": "Whether to allow cookies and other local data to be set by websites. One of<br><var>allow</var>: Accept cookies,<br><var>block</var>: Block cookies,<br><var>session_only</var>: Accept cookies only for the current session. <br>Default is <var>allow</var>.<br>The primary URL is the URL representing the cookie origin. The secondary URL is the URL of the top-level frame.",
        "value": [
          "cookies",
          {"$ref":"CookiesContentSetting"}
        ]
      },
      "images": {
        "$ref": "ContentSetting",
        "description": "Whether to show images. One of<br><var>allow</var>: Show images,<br><var>block</var>: Don't show images. <br>Default is <var>allow</var>.<br>The primary URL is the URL of the top-level frame. The secondary URL is the URL of the image.",
        "value": [
          "images",
          {"$ref":"ImagesContentSetting"}
        ]
      },
      "javascript": {
        "$ref": "ContentSetting",
        "description": "Whether to run JavaScript. One of<br><var>allow</var>: Run JavaScript,<br><var>block</var>: Don't run JavaScript. <br>Default is <var>allow</var>.<br>The primary URL is the URL of the top-level frame. The secondary URL is not used.",
        "value": [
          "javascript",
          {"$ref":"JavascriptContentSetting"}
        ]
      },
      "location": {
        "$ref": "ContentSetting",
        "description": "Whether to allow Geolocation. One of <br><var>allow</var>: Allow sites to track your physical location,<br><var>block</var>: Don't allow sites to track your physical location,<br><var>ask</var>: Ask before allowing sites to track your physical location. <br>Default is <var>ask</var>.<br>The primary URL is the URL of the document which requested location data. The secondary URL is the URL of the top-level frame (which may or may not differ from the requesting URL).",
        "value": [
          "geolocation",
          {"$ref":"LocationContentSetting"}
        ]
      },
      "plugins": {
        "$ref": "ContentSetting",
        "description": "Whether to run plugins. One of<br><var>allow</var>: Run plugins automatically,<br><var>block</var>: Don't run plugins automatically,<br><var>detect_important_content</var>: Only run automatically those plugins that are detected as the website's main content.<br>The primary URL is the URL of the top-level frame. The secondary URL is not used.",
        "value": [
          "plugins",
          {"$ref":"PluginsContentSetting"}
        ]
      },
      "popups": {
        "$ref": "ContentSetting",
        "description": "Whether to allow sites to show pop-ups. One of<br><var>allow</var>: Allow sites to show pop-ups,<br><var>block</var>: Don't allow sites to show pop-ups. <br>Default is <var>block</var>.<br>The primary URL is the URL of the top-level frame. The secondary URL is not used.",
        "value": [
          "popups",
          {"$ref":"PopupsContentSetting"}
        ]
      },
      "notifications": {
        "$ref": "ContentSetting",
        "description": "Whether to allow sites to show desktop notifications. One of<br><var>allow</var>: Allow sites to show desktop notifications,<br><var>block</var>: Don't allow sites to show desktop notifications,<br><var>ask</var>: Ask when a site wants to show desktop notifications. <br>Default is <var>ask</var>.<br>The primary URL is the URL of the document which wants to show the notification. The secondary URL is not used.",
        "value": [
          "notifications",
          {"$ref":"NotificationsContentSetting"}
        ]
      },
      "fullscreen": {
        "$ref": "ContentSetting",
        "description": "<i>Deprecated.</i> No longer has any effect. Fullscreen permission is now automatically granted for all sites. Value is always <var>allow</var>.",
        "value": [
          "fullscreen",
          {"$ref":"FullscreenContentSetting"}
        ]
      },
      "mouselock": {
        "$ref": "ContentSetting",
        "description": "<i>Deprecated.</i> No longer has any effect. Mouse lock permission is now automatically granted for all sites. Value is always <var>allow</var>.",
        "value": [
          "mouselock",
          {"$ref":"MouselockContentSetting"}
        ]
      },
      "microphone": {
        "$ref": "ContentSetting",
        "description": "Whether to allow sites to access the microphone. One of <br><var>allow</var>: Allow sites to access the microphone,<br><var>block</var>: Don't allow sites to access the microphone,<br><var>ask</var>: Ask when a site wants to access the microphone. <br>Default is <var>ask</var>.<br>The primary URL is the URL of the document which requested microphone access. The secondary URL is not used.<br>NOTE: The 'allow' setting is not valid if both patterns are '<all_urls>'.",
        "value": [
          "media-stream-mic",
          {"$ref":"MicrophoneContentSetting"}
        ]
      },
      "camera": {
        "$ref": "ContentSetting",
        "description": "Whether to allow sites to access the camera. One of <br><var>allow</var>: Allow sites to access the camera,<br><var>block</var>: Don't allow sites to access the camera,<br><var>ask</var>: Ask when a site wants to access the camera. <br>Default is <var>ask</var>.<br>The primary URL is the URL of the document which requested camera access. The secondary URL is not used.<br>NOTE: The 'allow' setting is not valid if both patterns are '<all_urls>'.",
        "value": [
          "media-stream-camera",
          {"$ref":"CameraContentSetting"}
        ]
      },
      "unsandboxedPlugins": {
        "$ref": "ContentSetting",
        "description": "Whether to allow sites to run plugins unsandboxed. One of <br><var>allow</var>: Allow sites to run plugins unsandboxed,<br><var>block</var>: Don't allow sites to run plugins unsandboxed,<br><var>ask</var>: Ask when a site wants to run a plugin unsandboxed. <br>Default is <var>ask</var>.<br>The primary URL is the URL of the top-level frame. The secondary URL is not used.",
        "value": [
          "ppapi-broker",
          {"$ref":"PpapiBrokerContentSetting"}
        ]
      },
      "automaticDownloads": {
        "$ref": "ContentSetting",
        "description": "Whether to allow sites to download multiple files automatically. One of <br><var>allow</var>: Allow sites to download multiple files automatically,<br><var>block</var>: Don't allow sites to download multiple files automatically,<br><var>ask</var>: Ask when a site wants to download files automatically after the first file. <br>Default is <var>ask</var>.<br>The primary URL is the URL of the top-level frame. The secondary URL is not used.",
        "value": [
          "automatic-downloads",
          {"$ref":"MultipleAutomaticDownloadsContentSetting"}
        ]
      }
    }
  }
]
