{
    "backgroundpages.to-be-non-persistent": {
        "type": "additionsToExistingApis",
        "description": "Background pages can optionally be non-persistent, using a feature we call <code>event pages</code>. Event pages run only while they're being used, and will unload when idle to save resources.",
        "version": 22
    },
    "chromeSetting.set-regular-only-scope": {
        "type": "additionsToExistingApis",
        "description": "The types.ChromeSetting.set method now has a <code>regular_only</code> scope.",
        "version": 21
    },
    "browsingData.RemovalOptions.set-originTypes-property": {
        "type": "additionsToExistingApis",
        "description": "The browsingData.RemovalOptions now has an <code>originTypes</code> property.",
        "version": 21
    },
    "management.uninstall.set-showConfirmDialog": {
        "type": "additionsToExistingApis",
        "description": "The management.uninstall method now has a <code>showConfirmDialog</code> parameter.",
        "version": 21
    },
    "contextMenus.create.set-unique-IDs": {
        "type": "additionsToExistingApis",
        "description": "The contextMenus.create method now allows you to specify unique IDs for each item. This is intended to be used with the new <code>contextMenus.onClicked</code> event, to distinguish the clicked item.",
        "version": 21
    },
    "browserAction.setIcon-and-pageAction.setIcon": {
        "type": "additionsToExistingApis",
        "description": "The browserAction.setIcon and pageAction.setIcon methods now accept optional callbacks.",
        "version": 21
    },
    "privacy.websites.has-protectedContentEnabled-property": {
        "type": "additionsToExistingApis",
        "description": "The privacy.websites namespace now has a <code>protectedContentEnabled</code> property.",
        "version": 21
    },
    "tabs.move.index.accept--1": {
        "type": "additionsToExistingApis",
        "description": "The <code>index</code> parameter to the tabs.move method now accepts -1 to indicate that the tab should be placed at the end.",
        "version": 21
    },
    "tabs.highlight.windowId.be-optional": {
        "type": "additionsToExistingApis",
        "description": "The <code>windowId</code> parameter to the tabs.highlight method is now optional.",
        "version": 21
    },    
    "manifest-v1-deprecated": {
        "type": "manifestChanges",
        "description": "Manifest version 1 was deprecated in Chrome 18 and will be phased out according to the Manifest version 1 support",
        "version": 20
    },
    "chrome.contextMenus.create-and-update-has-enabled-parameter": {
        "type": "additionsToExistingApis",
        "description": "The chrome.contextMenus contextMenus.create and contextMenus.update methods now have an <code>enabled</code> parameter.",
        "version": 20
    },
    " privacy.services.has-spellingServiceEnabled-setting": {
        "type": "additionsToExistingApis",
        "description": "The privacy API's privacy.services object now has a <code>spellingServiceEnabled</code> setting.",
        "version": 20
    },
    "chrome.tabs.executeScript-and-insertCSS-has-runAt-parameter": {
        "type": "additionsToExistingApis",
        "description": "The chrome.tabs tabs.executeScript and tabs.insertCSS now accept a runAt parameter.",
        "version": 20
    },
    "sendRequest.deprecated-for-runtime-and-sendMessage": {
        "type": "additionsToExistingApis",
        "description": "The <code>sendRequest()</code> method has been deprecated in favor of the <code>sendMessage()</code> method for both the runtime.sendMessage and tabs.sendMessage.",
        "version": 20
    },
    "window.window.support-fullscreen-state": {
        "type": "additionsToExistingApis",
        "description": "The window API's windows.Window object now has an <code>alwaysOnTop</code> property and supports the fullscreen state.",
        "version": 19
    },
    "chrome.tabs.query.has-currentWindow-and-lastFocusedWindow-parameter": {
        "type": "additionsToExistingApis",
        "description": "The <code>chrome.tabs</code> tabs.query method now has the <code>currentWindow</code> and <code>lastFocusedWindow</code> parameters.",
        "version": 19
    },
    "browser.action.api.has-new-getter-fucntions": {
        "type": "additionsToExistingApis",
        "description": "The browser action API has the following new getter functions: browserAction.getTitle, browserAction.getBadgeText, browserAction.getBadgeBackgroundColor, and browserAction.getPopup.",
        "version": 19
    },
    "page.action.has-new-getter-functions": {
        "type": "additionsToExistingApis",
        "description": "The page action API has the following new getter functions: pageAction.getTitle and pageAction.getPopup.",
        "version": 19
    },
    "chrome.tabs.create-update-methods-has-openerTabId-parameter": {
        "type": "additionsToExistingApis",
        "description": "The chrome.tabs tabs.create and tabs.update methods now have an <code>openerTabId</code> parameter",
        "version": 18
    },
    "new-manifest-version-field-specifies-the-version": {
        "type": "manifestChanges",
        "description": "The new manifest version field specifies the version of the manifest that your package requires. As of Chrome 18, you should use manifest version 2.",
        "version": 18
    },
    "new-CSP-field-define-extensions-policies": {
        "type": "manifestChanges",
        "description": "The new Content Security Policy (CSP) field is used to define an extension's policies towards the types of content that can be loaded and executed by the extension.",
        "version": 18
    },
    "background-pages-includes-scripts-property": {
        "type": "manifestChanges",
        "description": "Most background pages only include a list of script files. For these background pages, you can use the new background.scripts property and Chrome will generate a background page for you.",
        "version": 18
    },
    "new-web-accessible-resources-field": {
        "type": "manifestChanges",
        "description": "The new web_accessible_resources field specifies the paths of packaged resources that are expected to be usable in the context of a web page.",
        "version": 18
    },
    "permission-be-optional-for-some-apis": {
        "type": "manifestChanges",
        "description": "Permissions can be optional for the content setting API, the web navigation API, and the new web request API.",
        "version": 17
    },
    "management.ExtensionInfo.object.has-disabledReason-property": {
        "type": "additionsToExistingApis",
        "description": "The management API's management.ExtensionInfo object now has a <code>disabledReason</code> property.",
        "version": 17
    },
    "omnibox.api.works-in-split-incognito-mode": {
        "type": "additionsToExistingApis",
        "description": "The omnibox API now works in split incognito mode.",
        "version": 17
    },
    "new-requirements-field-declare-extension-requirements": {
        "type": "manifestChanges",
        "description": "The new requirements field allows you to declare extension requirements up front. For example, you can use this field to specify that your app requires 3D graphics support in order to use features such as CSS 3D Tranforms or WebGL.",
        "version": 16
    },
    "tabs.query.gets-all-tabs": {
        "type": "additionsToExistingApis",
        "description": "The new tabs.query method gets all tabs that have the specified properties or all tabs if no properties are specified.",
        "version": 16
    },
    "tabs.reload.preserve-local-cache": {
        "type": "additionsToExistingApis",
        "description": "The new tabs.reload method reloads a tab and includes the option to preserve the local cache of the reloaded tab.",
        "version": 16
    },
    "management.ExtensionInfo.has-updateURL-property": {
        "type": "additionsToExistingApis",
        "description": "The management API's management.ExtensionInfo object now has an <code>updateURL</code> property.",
        "version": 16
    },
    "external_extensions.json.limit-supported-locals": {
        "type": "additionsToExistingApis",
        "description": "You can now limit the supported locales for an external extension by adding the <code>supported_locales</code> attribute to the <code>external_extensions.json</code>.",
        "version": 16
    },
    "getAllInWindow-getSelected.deprecated": {
        "type": "additionsToExistingApis",
        "description": "The methods <code>getAllInWindow()</code> and <code>getSelected()</code> have been deprecated. To get details about all tabs in the specified window, use tabs.query with the argument {'windowId': windowId}. To get the tab that is selected in the specified window, use <code>chrome.tabs.query()</code> with the argument <code>{'active': true}</code>.",
        "version": 16
    },
    "tabs.upate-doesnot-need-tabId": {
        "type": "additionsToExistingApis",
        "description": "You are no longer required to specify the <code>tabId</code> for the tabs.update method. When not provided, the tabId defaults to the selected tab of the current window.",
        "version": 16
    },
    "external-files-be-owned-by-users-in-wheel-group": {
        "type": "additionsToExistingApis",
        "description": "External extension files on Mac OS can now be owned by users within a wheel group (or an admin group).",
        "version": 16
    },
    "experimental-permission-no-longer-required-for-panel-type": {
        "type": "additionsToExistingApis",
        "description": "Experimental permission for deprecated windows.create panel type.",
        "version": 16
    },
    "offline_enabled.field-specify-without-connection": {
        "type": "manifestChanges",
        "description": "The new offline_enabled field lets you specify that your app works well even without an internet connection.",
        "version": 15
    },
    "management.getPermissionWarningsById.retrieve-permission-warning": {
        "type": "additionsToExistingApis",
        "description": "You can retrieve permission warnings using the new management API methods management.getPermissionWarningsById and management.getPermissionWarningsByManifest.",
        "version": 15
    },
    "management.ExtensionInfo.has-offlineEnabled": {
        "type": "additionsToExistingApis",
        "description": "The management API’s management.ExtensionInfo object has a new field, offlineEnabled.",
        "version": 15
    },
    "internationalize.using-placeholders": {
        "type": "additionsToExistingApis",
        "description": "You can now internationalize content script CSS files by using __MSG_messagename__ placeholders.",
        "version": 15
    },
    "tabs.update.callback-passed-null": {
        "type": "additionsToExistingApis",
        "description": "The callback for the tabs.update method is passed null instead of the tab details if the extension does not have the tabs permission.",
        "version": 15
    },
    "content_security_policy-prevent-xss-attack": {
        "type": "manifestChanges",
        "description": "The new content_security_policy field can help prevent cross-site scripting vulnerabilities in your extension.",
        "version": 14
    },
    "nacl_modules.register-native-client-modules": {
        "type": "manifestChanges",
        "description": "The new nacl_modules field lets you register Native Client modules as content handlers for MIME types.",
        "version": 14
    },
    "context.menu.items-appear-in-documents": {
        "type": "additionsToExistingApis",
        "description": "Context menu items can now appear even in documents that have file:// or chrome:// URLs. Previously, they were restricted to documents with http:// or https:// URLs.",
        "version": 14
    },
    "drawAttention-field-specify-that-window": {
        "type": "additionsToExistingApis",
        "description": "An optional drawAttention field in windows.update's updateInfo object lets you specify that the window should entice the user to change focus to it.",
        "version": 14
    },
    "bookmarks.getSubTree-retrieve-bookmarks-hierarchy": {
        "type": "additionsToExistingApis",
        "description": "The new bookmarks.getSubTree function lets you retrieve just part of the Bookmarks hierarchy",
        "version": 14
    },
    "tabs.permission.no-longer-required-for-tabs-remove": {
        "type": "additionsToExistingApis",
        "description": "The tabs permission is no longer required for tabs.remove and tabs.onRemoved.",
        "version": 14
    },
    "exclude_matches-targets-content-script-precisely": {
        "type": "manifestChanges",
        "description": "A new <code>exclude_matches</code> item in the content_scripts field lets you target your content script more precisely. For details, see Match patterns and globs.",
        "version": 13
    },
    "new-clipboardRead-specify-capabilities-for-document.execCommand": {
        "type": "manifestChanges",
        "description": "New clipboardRead and clipboardWrite permissions specify capabilities for <code>document.execCommand()</code>.",
        "version": 13
    },
    "content-scripts-make-cross-origin-requests": {
        "type": "additionsToExistingApis",
        "description": "Content scripts can now make cross-origin XMLHttpRequests to the same sites that their parent extension can, eliminating the need to relay these requests through a background page.",
        "version": 13
    },
    "use-runat-in-greasemonkey-script": {
        "type": "additionsToExistingApis",
        "description": "You can now use <code>@run-at</code> in an imported Greasemonkey script to control when the script is injected. It works the same way as <code>run_at</code> in content scripts.",
        "version": 13
    },
    "two-new-chrome-extension-methods": {
        "type": "additionsToExistingApis",
        "description": "Two new <code>chrome.extension</code> methods—extension.isAllowedFileSchemeAccess and extension.isAllowedIncognitoAccess—let you determine whether your extension has increased access, which the user specifies using the extensions management page (chrome://extensions).",
        "version": 12
    },
    "window.create.takes-focused-value": {
        "type": "additionsToExistingApis",
        "description": "The windows.create method can now take a <code>focused</code> value. Previously, all new windows had the keyboard focus; now you can create windows without interrupting the user's typing.",
        "version": 12
    },
    "manifest-specifies-experimental-permission": {
        "type": "additionsToExistingApis",
        "description": "If the manifest specifies experimental permission, your extension can specify panel as the value of the <code>type</code> field in the windows.create method or the windows.Window type.",
        "version": 12
    },
    "cookies.onChanged.event-has-a-cause-parameter": {
        "type": "additionsToExistingApis",
        "description": "The cookies.onChanged event of <code>chrome.cookies</code> now has a <code>cause</code> parameter.",
        "version": 12
    },
    "chrome.contextMenus.create.specifies-frame-value": {
        "type": "additionsToExistingApis",
        "description": "The <code>chrome.contextMenus</code> contextMenus.create and contextMenus.update methods now let you specify a context value of frame",
        "version": 12
    },
    "host-permission-for-tabs-operation": {
        "type": "additionsToExistingApis",
        "description": "For security reasons, you can no longer call tabs.captureVisibleTab on just any tab. Instead, you now must have host permission for the URL displayed by that tab. To get the previous behavior, specify <code><all_urls></code> for the host permission.",
        "version": 11
    },
    "management.ExtensionInfo.has-homepageUrl-property": {
        "type": "additionsToExistingApis",
        "description": "The management API's management.ExtensionInfo object now has a <code>homepageUrl</code> property.",
        "version": 11
    },
    "management.has-homepageUrl-property": {
        "type": "additionsToExistingApis",
        "description": "The management API now lets you get the icons of disabled apps and extensions. Also, you can now modify the regular icon's URL to get its disabled equivalent. See management.IconInfo for details.",
        "version": 11
    },
    "cookies.set-take-callbacks": {
        "type": "additionsToExistingApis",
        "description": "The cookies API cookies.set and cookies.remove methods can now take callbacks.",
        "version": 11
    },
    "new.background-permission-extends-life-of-chrome": {
        "type": "manifestChanges",
        "description": "The new background permission extends the life of Chrome, allowing your extension or app to run even when Chrome has no windows open.",
        "version": 10
    },
    "windows.create.has-tabId-field": {
        "type": "additionsToExistingApis",
        "description": "The windows.create method now has a <code>tabId</code> field. You can use it to move a tab or panel into a new window.",
        "version": 10
    },
    "homepage-url-field-specify-extension-homepage": {
        "type": "manifestChanges",
        "description": "The homepage_url field lets you specify the extension or app's homepage.",
        "version": 9
    },
    "tabs.Tab.has-pinned-property": {
        "type": "additionsToExistingApis",
        "description": "The tabs.Tab object now has a <code>pinned</code> property that's reflected in various <code>chrome.tabs</code> methods. For example, you can tabs.create a pinned tab.",
        "version": 9
    },
    "windows.create.takes-urls": {
        "type": "additionsToExistingApis",
        "description": "The windows.create method can now take a list of URLs, letting you create multiple tabs in the new window.",
        "version": 9
    },
    "management.get.specified-apps": {
        "type": "additionsToExistingApis",
        "description": "The new management.get method lets you get information about the specified extension or app.",
        "version": 9
    },
    "introduce-split-incognito-mode": {
        "type": "manifestChanges",
        "description": "Introduced split incognito mode as the default for installable web apps (also available to extensions).",
        "version": 7
    },    
    "tabs.create-and-update-no-longer-require-tabs-permission": {
        "type": "manifestChanges",
        "description": "The tabs API <code>create()</code> and <code>update()</code> methods no longer require the tabs permission, removing one common cause of scary dialogs.",
        "version": 7
    },
    "geolocation-permission-access-users-location": {
        "type": "manifestChanges",
        "description": "The geolocation permission gives an extension access to the user's physical location.",
        "version": 6
    },
    "match-patterns-select-all-schemes": {
        "type": "manifestChanges",
        "description": "Match patterns can now select all schemes or all URLs.",
        "version": 6
    },
    "access-file-urls-triggers-access-warning": {
        "type": "manifestChanges",
        "description": "Access to file:/// URLs no longer triggers the access to your machine security warning, but now requires user opt-in from the extensions management page.",
        "version": 6
    },
    "extension.getViews.return-popup-views": {
        "type": "additionsToExistingApis",
        "description": "The extension.getViews method can now return popup views.",
        "version": 6
    },
    "windows.WINDOW_ID_NONE.identifies": {
        "type": "additionsToExistingApis",
        "description": "A new windows.WINDOW_ID_NONE constant identifies when focus shifts away from the browser.",
        "version": 6
    },
    "tabs.getCurrent-returns-tab": {
        "type": "additionsToExistingApis",
        "description": "The new tabs.getCurrent method returns the tab associated with the currently executing script.",
        "version": 6
    }
}
