blob: 06244558a9b709e07be98ef993d3440d553fcd75 [file] [log] [blame]
// 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": "declarativeContent",
"description": "Use the <code>chrome.declarativeContent</code> API to take actions depending on the content of a page, without requiring permission to read the page's content.",
"types": [
{
"id": "PageStateMatcher",
"type": "object",
"description": "Matches the state of a web page by various criteria.",
"properties": {
"pageUrl": {
"$ref": "events.UrlFilter",
"description": "Matches if the condition of the UrlFilter are fulfilled for the top-level URL of the page.",
"optional": true
},
"css": {
"type": "array",
"optional": true,
"description": "Matches if all of the CSS selectors in the array match displayed elements in a frame with the same origin as the page's main frame. All selectors in this array must be <a href=\"http://www.w3.org/TR/selectors4/#compound\">compound selectors</a> to speed up matching. Note that listing hundreds of CSS selectors or CSS selectors that match hundreds of times per page can still slow down web sites.",
// TODO(jyasskin): Figure out if we want to require all
// the selectors to match in the same frame, or allow several
// frames to contribute to a match.
"items": { "type": "string" }
// },
// TODO: "text": {
// "type": "array",
// "optional": true,
// "description": "Matches if all of the regular expressions in the array match text in the page. The regular expressions use the <a href=\"http://code.google.com/p/re2/wiki/Syntax\">RE2 syntax</a>.",
// "items": { "type": "string" }
},
"instanceType": {
"type": "string", "enum": ["declarativeContent.PageStateMatcher"],
"nodoc": true
}
}
},
{
"id": "ShowPageAction",
"description": "Declarative event action that shows the extension's $ref:[pageAction page action] while the corresponding conditions are met. This action can be used without <a href=\"declare_permissions.html#host-permission\">host permissions</a>, but the extension must have a page action. If the extension takes the <a href=\"activeTab.html\">activeTab</a> permission, a click on the page action will grant access to the active tab.",
"type": "object",
"properties": {
"instanceType": {
"type": "string", "enum": ["declarativeContent.ShowPageAction"],
"nodoc": true
}
}
}
],
"functions": [
],
"events": [
{
"name": "onPageChanged",
"options": {
"supportsListeners": false,
"supportsRules": true,
"conditions": ["declarativeContent.PageStateMatcher"],
"actions": [
"declarativeContent.ShowPageAction"
]
}
}
]
}
]