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." |
+ } |
+ ] |
+ }, |
+ "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"} |
+ } |
+ }] |
} |
] |
} |