// 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": "contentSettings", "description": "Use the <code>chrome.contentSettings</code> API to change settings that control whether websites can use features such as cookies, JavaScript, and plug-ins. 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": "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": { "type": "string", "enum": ["regular", "incognito_session_only"], "optional": true, "description": "Where to clear the setting (default: regular). 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)." } } }, { "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": { "type": "string", "enum": ["regular", "incognito_session_only"], "optional": true, "description": "Where to set the setting (default: regular). 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)." } } }, { "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" } } ] } ] } ] } ], "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", {"type":"string", "enum": ["allow", "block", "session_only"]} ] }, "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 main-frame URL. The secondary URL is the URL of the image.", "value": [ "images", {"type":"string", "enum": ["allow", "block"]} ] }, "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 main-frame URL. The secondary URL is not used.", "value": [ "javascript", {"type":"string", "enum": ["allow", "block"]} ] }, "plugins": { "$ref": "ContentSetting", "description": "Whether to run plug-ins. One of<br><var>allow</var>: Run plug-ins automatically,<br><var>block</var>: Don't run plug-ins automatically. <br>Default is <var>allow</var>.<br>The primary URL is the main-frame URL. The secondary URL is not used.", "value": [ "plugins", {"type":"string", "enum": ["allow", "block"]} ] }, "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 main-frame URL. The secondary URL is not used.", "value": [ "popups", {"type":"string", "enum": ["allow", "block"]} ] }, "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 main-frame URL. The secondary URL is not used.", "value": [ "notifications", {"type":"string", "enum": ["allow", "block", "ask"]} ] } } } ]