<div id="pageData-name" class="pageData">What's New in Extensions?</div>
<!-- <div id="pageData-showTOC" class="pageData">true</div> -->
<p>
This page lists the API and manifest changes
made in recent releases.
</p>
<ul>
<li> <a href="#12">Google Chrome 12</a> </li>
<li> <a href="#11">Google Chrome 11</a> </li>
<li> <a href="#10">Google Chrome 10</a> </li>
<li> <a href="#9">Google Chrome 9</a> </li>
<li> <a href="#8">Google Chrome 8</a> </li>
<li> <a href="#7">Google Chrome 7</a> </li>
<li> <a href="#6">Google Chrome 6</a> </li>
</ul>
<h2 id="12"> Google Chrome 12 </h2>
<h4> Additions to existing APIs </h4>
<ul>
<li> Two new <code>chrome.extension</code>
methods—<a href="extension.html#method-isAllowedFileSchemeAccess">isAllowedFileSchemeAccess()</a> and
<a href="extension.html#method-isAllowedIncognitoAccess">isAllowedIncognitoAccess()</a>—let you
determine whether your extension has increased access,
which the user specifies using the extensions management page
(<b>chrome://extensions</b>).
</li>
<li> The <a href="windows.html#method-create">chrome.windows.create()</a>
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.
</li>
<li> If the manifest specifies "experimental" permission,
your extension can specify "panel" as the value of
the <code>type</code> field in
the <a href="windows.html#method-create">chrome.windows.create()</a>
method
or the <a href="windows.html#type-Window">Window</a> type.
</li>
<li> The <a href="cookies.html#event-onChanged">onChanged</a>
event of <code>chrome.cookies</code>
now has a <code>cause</code> parameter. </li>
<li> The <code>chrome.contextMenus</code>
<a href="contextMenus.html#method-create">create()</a> and
<a href="contextMenus.html#method-update">update()</a>
methods now let you specify a context value of "frame".
</ul>
<h2 id="11"> Google Chrome 11 </h2>
<h4> Changes to existing APIs </h4>
<ul>
<li>
For security reasons, you can no longer call
<a href="tabs.html#method-captureVisibleTab">chrome.tab.captureVisibleTab()</a>
on just any tab.
Instead, you now must have
<a href="manifest.html#permissions">host permission</a>
for the URL displayed by that tab.
To get the previous behavior,
specify <code><all_urls></code> for the host permission.
</li>
</ul>
<h4> Additions to existing APIs </h4>
<ul>
<li>
The management API's
<a href="management.html#type-ExtensionInfo">ExtensionInfo</a> object
now has a <code>homepageUrl</code> property.
</li>
<li> 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 <a href="management.html#type-IconInfo">IconInfo</a> for details.
</li>
<li> The cookies API
<a href="cookies.html#method-set">set()</a>
and <a href="cookies.html#method-remove">remove()</a> methods
can now take callbacks.
</li>
</ul>
<h2 id="10"> Google Chrome 10 </h2>
<h4> Manifest changes </h4>
<ul>
<li>The new <a href="manifest.html#bg">background</a> permission
extends the life of Chrome,
allowing your extension or app
to run even when Chrome has no windows open.
</li>
</ul>
<h4> Additions to existing APIs </h4>
<ul>
<li> The <a href="windows.html#method-create">chrome.windows.create()</a>
method now has a <code>tabId</code> field.
You can use it to move a tab or panel into a new window.
<p class="note">
<b>Note:</b>
This change was incorrectly attributed to Chrome 9
in previous release notes.
</li>
</ul>
<h2 id="9"> Google Chrome 9 </h2>
<h4> New APIs </h4>
<ul>
<li>The <a href="omnibox.html">omnibox API</a> allows you to
register a keyword with Chrome's address bar. </li>
</ul>
<h4> Manifest changes </h4>
<ul>
<li> The <a href="manifest.html#homepage_url">homepage_url</a> field
lets you specify the extension or app's homepage. </li>
</ul>
<h4> Additions to existing APIs </h4>
<ul>
<li> The <a href="tabs.html#type-Tab">Tab</a> object
now has a <code>pinned</code> property
that's reflected in various <code>chrome.tabs</code> methods.
For example,
you can <a href="tabs.html#method-create">create</a>
a pinned tab. </li>
<li> The <a href="windows.html#method-create">chrome.windows.create()</a>
method can now take a list of URLs,
letting you create multiple tabs in the new window. </li>
<li> The new
<a href="management.html#method-get">chrome.management.get()</a> method
lets you get information about the specified extension or app. </li>
</ul>
<h2 id="8"> Google Chrome 8 </h2>
<p>
We took a break for Chrome 8.
No API or manifest changes worth noting.
</p>
<h2 id="7"> Google Chrome 7 </h2>
<h4> New APIs </h4>
<ul>
<li> All users can now install
<a href="http://code.google.com/chrome/apps/index.html">apps</a>;
packaged apps can use extension APIs.
</li>
<li> The <a href="management.html">management API</a>
lets you work with installed apps and extensions.
</li>
</ul>
<h4> Manifest changes </h4>
<ul>
<li> Introduced <a href="manifest.html#incognito">split incognito</a>
mode as the default for installable web apps
(also available to extensions).
</li>
<li> The <a href="tabs.html">tabs API</a>
<code>create()</code> and <code>update()</code> methods
no longer require the "tabs" permission, removing one common cause of
<a href="permission_warnings.html">scary dialogs</a>.
</li>
</ul>
<h2 id="6">Google Chrome 6</h2>
<h4> New APIs </h4>
<ul>
<li>The <a href="contextMenus.html">context menus API</a> allows you to
add context menus to pages or specific objects on a page. </li>
<li>The <a href="cookies.html">cookies API</a> allows you to manage the
browser's cookie system. </li>
<li>The <a href="idle.html">idle API</a> allows you to detect when the
machine's idle state changes. </li>
</ul>
<h4> Additions to existing APIs </h4>
<ul>
<li>The <a
href="extension.html#method-getViews">chrome.extension.getViews()</a>
method can now return popup views. </li>
<li>A new <a
href="windows.html#property-WINDOW_ID_NONE">WINDOW_ID_NONE</a> constant
identifies when focus shifts away from the browser. </li>
<li>The new <a
href="tabs.html#method-getCurrent">chrome.tabs.getCurrent()</a> method
returns the tab associated with the currently executing script. </li>
</ul>
<h4> Manifest changes </h4>
<ul>
<li>The <a href="manifest.html#geolocation">geolocation</a> permission
gives an extension access to the user's physical location. </li>
<li><a href="match_patterns.html">Match patterns</a> can now select all
schemes or all URLs. </li>
<li>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. </li>
</ul>