Chromium Code Reviews| Index: chrome/common/extensions/api/tabs.json |
| diff --git a/chrome/common/extensions/api/tabs.json b/chrome/common/extensions/api/tabs.json |
| index 992535af637b7346338bea96cbb8b8ccad43ca33..931a293e34fcd81aa81efc01721191c206dd8c23 100644 |
| --- a/chrome/common/extensions/api/tabs.json |
| +++ b/chrome/common/extensions/api/tabs.json |
| @@ -46,6 +46,47 @@ |
| "description": "The soonest that the JavaScript or CSS will be injected into the tab. Defaults to \"document_idle\"." |
| } |
| } |
| + }, |
| + { |
| + "id": "ZoomSettings", |
| + "type": "object", |
| + "description": "Defines how zoom changes in a tab are handled and at what scope.", |
| + "properties": { |
| + "mode": { |
| + "type": "string", |
| + "description": "Defines how zoom changes are handled, i.e. which entity is responsible for the actual scaling of the page; defaults to <code>automatic</code>.", |
| + "optional": true, |
| + "enum": [ |
| + { |
| + "name": "automatic", |
| + "description": "Zoom changes are handled automatically by the browser." |
| + }, |
| + { |
| + "name": "manual", |
| + "description": "Overrides the automatic handling of zoom changes. The <code>onZoomChange</code> event will still be dispatched, and it is the responsibility of the extension to listen for this event and manually scale the page. This mode does not support <code>per-origin</code> zooming, and will thus ignore the <code>scope</code> zoom setting and assume <code>per-tab</code>." |
| + }, |
| + { |
| + "name": "disabled", |
| + "description": "Disables all zooming in the tab. The tab will revert to default (100%) zoom, and all attempted zoom changes will be ignored." |
|
Devlin
2014/06/16 19:04:50
Is this right? What if the user has the settings
wjmaclean
2014/06/18 19:03:55
Then in the current design the auto-zoom settings
|
| + } |
| + ] |
| + }, |
| + "scope": { |
| + "type": "string", |
| + "description": "Defines whether zoom changes will persist for the page's origin, or only take effect in this tab; defaults to <code>per-origin</code> when in <code>automatic</code> mode, and <code>per-tab</code> otherwise.", |
| + "optional": true, |
| + "enum": [ |
| + { |
| + "name": "per-origin", |
| + "description": "Zoom changes will persist in the zoomed page's origin, i.e. all other tabs navigated to that same origin will be zoomed as well. Moreover, <code>per-origin</code> zoom changes are saved with the origin, meaning that when navigating to other pages in the same origin, they will all be zoomed to the same zoom factor. The <code>per-origin</code> scope is only available in the <code>automatic</code> mode." |
| + }, |
| + { |
| + "name": "per-tab", |
| + "description": "Zoom changes only take effect in this tab, and zoom changes in other tabs will not affect the zooming of this tab. Also, <code>per-tab</code> zoom changes are reset on navigation; navigating a tab will always load pages with their <code>per-origin</code> zoom factors." |
| + } |
| + ] |
| + } |
| + } |
| } |
| ], |
| "functions": [ |
| @@ -671,6 +712,109 @@ |
| "parameters": [] |
| } |
| ] |
| + }, |
| + { |
| + "name": "setZoom", |
| + "type": "function", |
| + "description": "Zooms a specified tab.", |
| + "parameters": [ |
| + { |
| + "type": "integer", |
| + "name": "tabId", |
| + "minimum": 0, |
| + "optional": true, |
| + "description": "The ID of the tab to zoom; defaults to the active tab of the current window." |
| + }, |
| + { |
| + "type": "number", |
| + "name": "zoomFactor", |
| + "description": "The new zoom factor." |
| + }, |
| + { |
| + "type": "function", |
| + "name": "callback", |
| + "optional": true, |
| + "description": "Called after the zoom factor has been changed.", |
| + "parameters": [] |
| + } |
| + ] |
| + }, |
| + { |
| + "name": "getZoom", |
| + "type": "function", |
| + "description": "Gets the current zoom factor of a specified tab.", |
| + "parameters": [ |
| + { |
| + "type": "integer", |
| + "name": "tabId", |
| + "minimum": 0, |
| + "optional": true, |
| + "description": "The ID of the tab to get the current zoom factor from; defaults to the active tab of the current window." |
| + }, |
| + { |
| + "type": "function", |
| + "name": "callback", |
| + "description": "Called with the tab's current zoom factor after it has been fetched.", |
| + "parameters": [ |
| + { |
| + "type": "number", |
| + "name": "zoomFactor", |
| + "description": "The tab's current zoom factor." |
| + } |
| + ] |
| + } |
| + ] |
| + }, |
| + { |
| + "name": "setZoomSettings", |
| + "type": "function", |
| + "description": "Sets the zoom settings for a specified tab, which define how zoom changes are handled. These settings are reset to defaults upon navigating the tab.", |
| + "parameters": [ |
| + { |
| + "type": "integer", |
| + "name": "tabId", |
| + "optional": true, |
| + "minimum": 0, |
| + "description": "The ID of the tab to change the zoom settings for; defaults to the active tab of the current window." |
| + }, |
| + { |
| + "$ref": "ZoomSettings", |
| + "name": "zoomSettings", |
| + "description": "Defines how zoom changes are handled and at what scope." |
| + }, |
| + { |
| + "type": "function", |
| + "name": "callback", |
| + "description": "Called after the zoom settings have been changed.", |
| + "parameters": [] |
| + } |
| + ] |
| + }, |
| + { |
| + "name": "getZoomSettings", |
| + "type": "function", |
| + "description": "Gets the current zoom settings of a specified tab.", |
| + "parameters": [ |
| + { |
| + "type": "integer", |
| + "name": "tabId", |
| + "optional": true, |
| + "minimum": 0, |
| + "description": "The ID of the tab to get the current zoom settings from; defaults to the active tab of the current window." |
| + }, |
| + { |
| + "type": "function", |
| + "name": "callback", |
| + "description": "Called with the tab's current zoom settings.", |
| + "parameters": [ |
| + { |
| + "$ref": "ZoomSettings", |
| + "name": "zoomSettings", |
| + "description": "The tab's current zoom settings." |
| + } |
| + ] |
| + } |
| + ] |
| } |
| ], |
| "events": [ |
| @@ -921,6 +1065,21 @@ |
| {"type": "integer", "name": "addedTabId", "minimum": 0}, |
| {"type": "integer", "name": "removedTabId", "minimum": 0} |
| ] |
| + }, |
| + { |
| + "name": "onZoomChange", |
| + "type": "function", |
| + "description": "Fired when a tab is zoomed.", |
| + "parameters": [{ |
| + "type": "object", |
| + "name": "ZoomChangeInfo", |
| + "properties": { |
| + "tabId": {"type": "integer", "minimum": 0}, |
| + "oldZoomFactor": {"type": "number"}, |
| + "newZoomFactor": {"type": "number"}, |
| + "zoomSettings": {"$ref": "ZoomSettings"} |
| + } |
| + }] |
| } |
| ] |
| } |