Index: chrome/common/extensions/api/tabs.json |
diff --git a/chrome/common/extensions/api/tabs.json b/chrome/common/extensions/api/tabs.json |
index f187633f27275ca31d338ae9af7d07730fb73049..583ff92f33889cc10f73a8b9a9a90d7440b809ae 100644 |
--- a/chrome/common/extensions/api/tabs.json |
+++ b/chrome/common/extensions/api/tabs.json |
@@ -31,43 +31,53 @@ |
} |
}, |
{ |
+ "id": "ZoomSettingsMode", |
+ "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>.", |
+ "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 the default zoom level, and all attempted zoom changes will be ignored." |
+ } |
+ ] |
+ }, |
+ { |
+ "id": "ZoomSettingsScope", |
+ "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.", |
+ "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." |
+ } |
+ ] |
+ }, |
+ { |
"id": "ZoomSettings", |
"type": "object", |
"description": "Defines how zoom changes in a tab are handled and at what scope.", |
"properties": { |
"mode": { |
- "type": "string", |
+ "$ref": "ZoomSettingsMode", |
"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 the default zoom level, and all attempted zoom changes will be ignored." |
- } |
- ] |
+ "optional": true |
}, |
"scope": { |
- "type": "string", |
+ "$ref": "ZoomSettingsScope", |
"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." |
- } |
- ] |
+ "optional": true |
}, |
"default_zoom_factor": { |
"type": "number", |
@@ -76,6 +86,18 @@ |
"description": "Used to return the default zoom level for the current tab in calls to tabs.getZoomSettings." |
} |
} |
+ }, |
+ { |
+ "id": "TabStatus", |
+ "type": "string", |
+ "enum": ["loading", "complete"], |
+ "description": "Whether the tabs have completed loading." |
+ }, |
+ { |
+ "id": "WindowType", |
+ "type": "string", |
+ "enum": ["normal", "popup", "panel", "app"], |
+ "description": "The type of window." |
} |
], |
"functions": [ |
@@ -388,9 +410,8 @@ |
"description": "Whether the tabs are in the last focused window." |
}, |
"status": { |
- "type": "string", |
+ "$ref": "TabStatus", |
"optional": true, |
- "enum": ["loading", "complete"], |
"description": "Whether the tabs have completed loading." |
}, |
"title": { |
@@ -413,9 +434,8 @@ |
"description": "The ID of the parent window, or $(ref:windows.WINDOW_ID_CURRENT) for the <a href='windows#current-window'>current window</a>." |
}, |
"windowType": { |
- "type": "string", |
+ "$ref": "WindowType", |
"optional": true, |
- "enum": ["normal", "popup", "panel", "app"], |
"description": "The type of window the tabs are in." |
}, |
"index": { |