diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 19:27:54 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 19:27:54 +0000 |
commit | 261a71d7d8ffc820734273b1596c9b15eb9fc25f (patch) | |
tree | 287c96611afb7e18254cb161a12200d6a8c1b613 | |
parent | b0169967ef7b6540c2ea189542648bdddb5a837d (diff) | |
download | chromium_src-261a71d7d8ffc820734273b1596c9b15eb9fc25f.zip chromium_src-261a71d7d8ffc820734273b1596c9b15eb9fc25f.tar.gz chromium_src-261a71d7d8ffc820734273b1596c9b15eb9fc25f.tar.bz2 |
Move the tts and ttsEngine APIs out of experimental, and give
them new explicit permissions and install warning messages.
Also change the hidden event ttsEngine.onEvent to tts.onEvent, which is
where it belongs because it's sent to clients who call tts.speak and has
nothing to do with engines.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7258007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93232 0039d316-1c4b-4281-b951-d872f2087c98
44 files changed, 227 insertions, 272 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 9d9de08..bef7c5a 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -3720,6 +3720,9 @@ are declared in build/common.gypi. <message name="IDS_EXTENSION_PROMPT_WARNING_CLIPBOARD" desc="Permission string for access to clipboard."> Data you copy and paste </message> + <message name="IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE" desc="Permission string for access to clipboard."> + Any text spoken using synthesized speech + </message> <!-- Extension/App error messages --> <message name="IDS_EXTENSION_CANT_GET_ABSOLUTE_PATH" desc="Warning displayed in pack dialog when the absolute path to the extension directory can not be found."> diff --git a/chrome/browser/extensions/extension_tts_api.h b/chrome/browser/extensions/extension_tts_api.h index 28329a2..a651bca 100644 --- a/chrome/browser/extensions/extension_tts_api.h +++ b/chrome/browser/extensions/extension_tts_api.h @@ -15,28 +15,28 @@ class ExtensionTtsSpeakFunction private: virtual ~ExtensionTtsSpeakFunction() {} virtual bool RunImpl() OVERRIDE; - DECLARE_EXTENSION_FUNCTION_NAME("experimental.tts.speak") + DECLARE_EXTENSION_FUNCTION_NAME("tts.speak") }; class ExtensionTtsStopSpeakingFunction : public SyncExtensionFunction { private: virtual ~ExtensionTtsStopSpeakingFunction() {} virtual bool RunImpl() OVERRIDE; - DECLARE_EXTENSION_FUNCTION_NAME("experimental.tts.stop") + DECLARE_EXTENSION_FUNCTION_NAME("tts.stop") }; class ExtensionTtsIsSpeakingFunction : public SyncExtensionFunction { private: virtual ~ExtensionTtsIsSpeakingFunction() {} virtual bool RunImpl() OVERRIDE; - DECLARE_EXTENSION_FUNCTION_NAME("experimental.tts.isSpeaking") + DECLARE_EXTENSION_FUNCTION_NAME("tts.isSpeaking") }; class ExtensionTtsGetVoicesFunction : public SyncExtensionFunction { private: virtual ~ExtensionTtsGetVoicesFunction() {} virtual bool RunImpl() OVERRIDE; - DECLARE_EXTENSION_FUNCTION_NAME("experimental.tts.getVoices") + DECLARE_EXTENSION_FUNCTION_NAME("tts.getVoices") }; #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_API_H_ diff --git a/chrome/browser/extensions/extension_tts_api_controller.cc b/chrome/browser/extensions/extension_tts_api_controller.cc index 8ebda0c..0c7210b 100644 --- a/chrome/browser/extensions/extension_tts_api_controller.cc +++ b/chrome/browser/extensions/extension_tts_api_controller.cc @@ -21,7 +21,7 @@ namespace constants = extension_tts_api_constants; namespace events { -const char kOnEvent[] = "experimental.ttsEngine.onEvent"; +const char kOnEvent[] = "tts.onEvent"; }; // namespace events std::string TtsEventTypeToString(TtsEventType event_type) { diff --git a/chrome/browser/extensions/extension_tts_engine_api.cc b/chrome/browser/extensions/extension_tts_engine_api.cc index 077c49c..fe845932 100644 --- a/chrome/browser/extensions/extension_tts_engine_api.cc +++ b/chrome/browser/extensions/extension_tts_engine_api.cc @@ -18,8 +18,8 @@ namespace constants = extension_tts_api_constants; namespace events { -const char kOnSpeak[] = "experimental.ttsEngine.onSpeak"; -const char kOnStop[] = "experimental.ttsEngine.onStop"; +const char kOnSpeak[] = "ttsEngine.onSpeak"; +const char kOnStop[] = "ttsEngine.onStop"; }; // namespace events void GetExtensionVoices(Profile* profile, ListValue* result_voices) { diff --git a/chrome/browser/extensions/extension_tts_engine_api.h b/chrome/browser/extensions/extension_tts_engine_api.h index 35e2c69..d8609bb 100644 --- a/chrome/browser/extensions/extension_tts_engine_api.h +++ b/chrome/browser/extensions/extension_tts_engine_api.h @@ -43,7 +43,7 @@ class ExtensionTtsEngineSendTtsEventFunction : public SyncExtensionFunction { private: virtual ~ExtensionTtsEngineSendTtsEventFunction() {} virtual bool RunImpl() OVERRIDE; - DECLARE_EXTENSION_FUNCTION_NAME("experimental.ttsEngine.sendTtsEvent") + DECLARE_EXTENSION_FUNCTION_NAME("ttsEngine.sendTtsEvent") }; #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_ENGINE_API_H_ diff --git a/chrome/browser/resources/access_chromevox/manifest.json b/chrome/browser/resources/access_chromevox/manifest.json index a679615..1bfc8af 100644 --- a/chrome/browser/resources/access_chromevox/manifest.json +++ b/chrome/browser/resources/access_chromevox/manifest.json @@ -8,6 +8,7 @@ "bookmarks", "tabs", "experimental", + "tts", "<all_urls>" ], "content_scripts": [ @@ -21,6 +22,5 @@ "common/extension_bridge.js" ] } - ], - "options_page": "chromevox/background/options.html" + ] } diff --git a/chrome/common/extensions/api/extension_api.json b/chrome/common/extensions/api/extension_api.json index b7cef60..0599ee6 100644 --- a/chrome/common/extensions/api/extension_api.json +++ b/chrome/common/extensions/api/extension_api.json @@ -507,7 +507,7 @@ ] }, { - "namespace": "experimental.tts", + "namespace": "tts", "types": [ { "id": "TtsEvent", @@ -722,10 +722,25 @@ } ] } + ], + "events": [ + { + "name": "onEvent", + "type": "function", + "nodoc": true, + "parameters": [ + { + "name": "event", + "$ref": "TtsEvent", + "description": "The event from the text-to-speech engine indicating the status of this utterance." + } + ], + "description": "Used to pass events back to the function calling speak()." + } ] }, { - "namespace": "experimental.ttsEngine", + "namespace": "ttsEngine", "functions": [ { "name": "sendTtsEvent", @@ -818,19 +833,6 @@ "name": "onStop", "type": "function", "description": "Fired when a call is made to tts.stop and this extension may be in the middle of speaking. If an extension receives a call to onStop and speech is already stopped, it should do nothing (not raise an error)." - }, - { - "name": "onEvent", - "type": "function", - "nodoc": true, - "parameters": [ - { - "name": "event", - "$ref": "TtsEvent", - "description": "The event from the text-to-speech engine indicating the status of this utterance." - } - ], - "description": "Used to pass events back to the function calling speak()." } ] }, diff --git a/chrome/common/extensions/docs/api_index.html b/chrome/common/extensions/docs/api_index.html index fff7bdf..2ce43e4 100644 --- a/chrome/common/extensions/docs/api_index.html +++ b/chrome/common/extensions/docs/api_index.html @@ -342,7 +342,7 @@ Here are the supported chrome.* APIs: </p> <ul> - <li><a href="bookmarks.html" js="">bookmarks</a></li><li><a href="browserAction.html" js="">browserAction</a></li><li><a href="contextMenus.html" js="">contextMenus</a></li><li><a href="cookies.html" js="">cookies</a></li><li><a href="extension.html" js="">extension</a></li><li><a href="fileBrowserHandler.html" js="">fileBrowserHandler</a></li><li><a href="history.html" js="">history</a></li><li><a href="i18n.html" js="">i18n</a></li><li><a href="idle.html" js="">idle</a></li><li><a href="management.html" js="">management</a></li><li><a href="omnibox.html" js="">omnibox</a></li><li><a href="pageAction.html" js="">pageAction</a></li><li><a href="proxy.html" js="">proxy</a></li><li><a href="tabs.html" js="">tabs</a></li><li><a href="types.html" js="">types</a></li><li><a href="windows.html" js="">windows</a></li> + <li><a href="bookmarks.html" js="">bookmarks</a></li><li><a href="browserAction.html" js="">browserAction</a></li><li><a href="contextMenus.html" js="">contextMenus</a></li><li><a href="cookies.html" js="">cookies</a></li><li><a href="extension.html" js="">extension</a></li><li><a href="fileBrowserHandler.html" js="">fileBrowserHandler</a></li><li><a href="history.html" js="">history</a></li><li><a href="i18n.html" js="">i18n</a></li><li><a href="idle.html" js="">idle</a></li><li><a href="management.html" js="">management</a></li><li><a href="omnibox.html" js="">omnibox</a></li><li><a href="pageAction.html" js="">pageAction</a></li><li><a href="proxy.html" js="">proxy</a></li><li><a href="tabs.html" js="">tabs</a></li><li><a href="tts.html" js="">tts</a></li><li><a href="ttsEngine.html" js="">ttsEngine</a></li><li><a href="types.html" js="">types</a></li><li><a href="windows.html" js="">windows</a></li> </ul> <h2 id="experimental">Experimental APIs</h2> diff --git a/chrome/common/extensions/docs/experimental.html b/chrome/common/extensions/docs/experimental.html index cd536c5..49aa374 100644 --- a/chrome/common/extensions/docs/experimental.html +++ b/chrome/common/extensions/docs/experimental.html @@ -330,8 +330,6 @@ on the following experimental APIs: <a href="experimental.infobars.html">experimental.infobars</a></li><li> <a href="experimental.processes.html">experimental.processes</a></li><li> <a href="experimental.sidebar.html">experimental.sidebar</a></li><li> - <a href="experimental.tts.html">experimental.tts</a></li><li> - <a href="experimental.ttsEngine.html">experimental.ttsEngine</a></li><li> <a href="experimental.webNavigation.html">experimental.webNavigation</a></li><li> <a href="experimental.webRequest.html">experimental.webRequest</a></li> </ul> diff --git a/chrome/common/extensions/docs/manifest.html b/chrome/common/extensions/docs/manifest.html index ce653a1..2338a0c 100644 --- a/chrome/common/extensions/docs/manifest.html +++ b/chrome/common/extensions/docs/manifest.html @@ -808,6 +808,16 @@ table. <a href="windows.html">chrome.windows</a> module. </td> </tr> <tr> + <td> "tts" </td> + <td> Required if the extension uses the + <a href="tts.html">chrome.tts</a> module. </td> +</tr> +<tr> + <td> "ttsEngine" </td> + <td> Required if the extension uses the + <a href="ttsEngine.html">chrome.ttsEngine</a> module. </td> +</tr> +<tr> <td> "unlimitedStorage"</td> <td> Provides an unlimited quota for storing HTML5 client-side data, such as databases and local storage files. diff --git a/chrome/common/extensions/docs/samples.html b/chrome/common/extensions/docs/samples.html index 01bacd2..80bab91 100644 --- a/chrome/common/extensions/docs/samples.html +++ b/chrome/common/extensions/docs/samples.html @@ -313,7 +313,7 @@ <!-- STATIC CONTENT PLACEHOLDER --> <div id="static"><link rel="stylesheet" href="css/samples.css"> -<script>var search_data = {"0262260daf0c8f7b28feff2ef23b05e7abf9d1e0":"A BROWSER ACTION WHICH CHANGES ITS ICON WHEN CLICKED. BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETICON","ea2894c41cb8e80a4433a3e6c5772dadce9be90d":"A BROWSER ACTION WITH A POPUP THAT CHANGES THE PAGE COLOR. BROWSER_ACTION POPUP TABS CHROME.TABS.EXECUTESCRIPT","ede3c47b7757245be42ec33fd5ca63df4b490066":"A BROWSER ACTION WITH NO ICON THAT MAKES THE PAGE RED BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.TABS.EXECUTESCRIPT","fbf0aa1a09a15ff8cc4fc7de4fd176d6c663d07a":"ACCEPTLANGUAGE RETURNS ACCEPT LANGUAGES OF THE BROWSER BROWSER_ACTION POPUP CHROME.I18N.GETACCEPTLANGUAGES CHROME.I18N.GETMESSAGE","9a6e4ec46997fb92b324974afa08a3d007e2537f":"ANIMATED PAGE ACTION THIS EXTENSION ADDS AN ANIMATED BROWSER ACTION TO THE TOOLBAR. BACKGROUND_PAGE PAGE_ACTION TABS CHROME.PAGEACTION.HIDE CHROME.PAGEACTION.ONCLICKED CHROME.PAGEACTION.SETICON CHROME.PAGEACTION.SETTITLE CHROME.PAGEACTION.SHOW CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONSELECTIONCHANGED","a1f7cf79dd555b04fa8d603247a040e644996293":"APP LAUNCHER BROWSER_ACTION MANAGEMENT CHROME.EXTENSION.GETURL CHROME.MANAGEMENT.GET CHROME.MANAGEMENT.GETALL CHROME.MANAGEMENT.LAUNCHAPP CHROME.TABS.CREATE","9747e3d6a3eab39bc7c17f11a80573c62d44c7e5":"BLANK NEW TAB PAGE CHROME_URL_OVERRIDES","7da105f28e200d42510aff3591dfa5aeb0b82605":"BLOCK/ALLOW THIRD-PARTY COOKIES API EXAMPLE EXTENSION SAMPLE EXTENSION WHICH DEMONSTRATES HOW TO ACCESS A PREFERENCE. BROWSER_ACTION CONTENTSETTINGS EXPERIMENTAL POPUP CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS","9004d1a1b975859d07bdff94ea0a4baa106c4fd1":"BROKEN LINKS EXTENDS THE DEVELOPER TOOLS, ADDING AN AUDIT CATEGORY THAT FINDS BROKEN LINKS ON THE INSPECTED PAGE. BACKGROUND_PAGE DEVTOOLS_PAGE EXPERIMENTAL TABS CHROME.EXPERIMENTAL.DEVTOOLS.AUDITS.ADDCATEGORY CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.EXECUTESCRIPT CHROME.TABS.SENDREQUEST","924f75a201bb0ec8d6c0b1c9c88c679ea211c93d":"CHROME QUERY EXTENDS THE DEVELOPER TOOLS, ADDING A SIDEBAR THAT DISPLAYS THE JQUERY DATA ASSOCIATED WITH THE SELECTED DOM ELEMENT. DEVTOOLS_PAGE EXPERIMENTAL","903e7277139e1e6caec123d3319cab295d8d1b3a":"CHROME SOUNDS ENJOY A MORE MAGICAL AND IMMERSIVE EXPERIENCE WHEN BROWSING THE WEB USING THE POWER OF SOUND. BACKGROUND_PAGE BOOKMARKS OPTIONS_PAGE TABS CHROME.BOOKMARKS.ONCREATED CHROME.BOOKMARKS.ONMOVED CHROME.BOOKMARKS.ONREMOVED CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.GET CHROME.TABS.ONATTACHED CHROME.TABS.ONCREATED CHROME.TABS.ONDETACHED CHROME.TABS.ONMOVED CHROME.TABS.ONREMOVED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED CHROME.WINDOWS.ONCREATED CHROME.WINDOWS.ONFOCUSCHANGED CHROME.WINDOWS.ONREMOVED","0e790e035a4a00b6f1def5ef9a7d7be1bce95ab5":"CHROMIUM BUILDBOT MONITOR DISPLAYS THE STATUS OF THE CHROMIUM BUILDBOT IN THE TOOLBAR. CLICK TO SEE MORE DETAILED STATUS IN A POPUP. BACKGROUND_PAGE BROWSER_ACTION NOTIFICATIONS OPTIONS_PAGE POPUP CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.GETURL","ac31228200b41a87982e386cc90d3a6eee4ad885":"CHROMIUM SEARCH ADD SUPPORT TO THE OMNIBOX TO SEARCH THE CHROMIUM SOURCE CODE. BACKGROUND_PAGE TABS CHROME.OMNIBOX.ONINPUTCANCELLED CHROME.OMNIBOX.ONINPUTCHANGED CHROME.OMNIBOX.ONINPUTENTERED CHROME.OMNIBOX.ONINPUTSTARTED CHROME.OMNIBOX.SETDEFAULTSUGGESTION CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.UPDATE","7d5d6cf195bc25480256618e360aa38c6e6fba82":"CLD DISPLAYS THE LANGUAGE OF A TAB BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.SETBADGETEXT CHROME.TABS.DETECTLANGUAGE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED","6871d09f4a96bf9d4b6cc724d00e909cee0f3902":"CONTENT SCRIPT CROSS-DOMAIN XMLHTTPREQUEST EXAMPLE DEMONSTRATES MAKING CROSS DOMAIN REQUESTS FROM A CONTENT SCRIPT BY PUTTING TWITTER TRENDS ON GOOGLE NEWS. CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST","e1f97e61e28ff33131d66dd28a4ed70a77874a51":"CONTENT SETTINGS SHOWS THE CONTENT SETTINGS FOR THE CURRENT SITE. BROWSER_ACTION CONTENTSETTINGS EXPERIMENTAL POPUP TABS CHROME.TABS.GET CHROME.TABS.GETSELECTED","5d81304a17cf7ac2887484f730fbd2b01e51e166":"CONTEXT MENUS SAMPLE SHOWS SOME OF THE FEATURES OF THE CONTEXT MENUS API BACKGROUND_PAGE CONTEXTMENUS CHROME.CONTEXTMENUS.CREATE","4daa6becd0899a54776d9cf7f09613ed1a9f4d77":"COOKIE API TEST EXTENSION TESTING COOKIE API BACKGROUND_PAGE BROWSER_ACTION COOKIES TABS CHROME.BROWSERACTION.ONCLICKED CHROME.COOKIES.GET CHROME.COOKIES.GETALL CHROME.COOKIES.ONCHANGED CHROME.COOKIES.REMOVE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.UPDATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL","028eb5364924344029bcbe1d527f132fc72b34e5":"EMAIL THIS PAGE (BY GOOGLE) THIS EXTENSION ADDS AN EMAIL BUTTON TO THE TOOLBAR WHICH ALLOWS YOU TO EMAIL THE PAGE LINK USING YOUR DEFAULT MAIL CLIENT OR GMAIL. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.CONNECT CHROME.EXTENSION.ONCONNECT CHROME.TABS.CREATE CHROME.TABS.EXECUTESCRIPT CHROME.TABS.UPDATE","0bf0930a32829dfb77170535ecb27adc2de3998a":"ENABLE/DISABLE REFERRERS API EXAMPLE EXTENSION SAMPLE EXTENSION WHICH DEMONSTRATES HOW TO ACCESS A PREFERENCE. BROWSER_ACTION CONTENTSETTINGS EXPERIMENTAL POPUP CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS","763a08e9b06595d785568a8d392b95a2f3700258":"EVENT TRACKING WITH GOOGLE ANALYTICS A SAMPLE EXTENSION WHICH USES GOOGLE ANALYTICS TO TRACK USAGE. BACKGROUND_PAGE BROWSER_ACTION POPUP","e3df888a89e35bdeb9c8bc8d03be5e1851b97c68":"EXTENSION DOCS SEARCH SEARCH THE CHROME EXTENSIONS DOCUMENTATION. TO USE, TYPE CRDOC PLUS A SEARCH TERM INTO THE OMNIBOX. BACKGROUND_PAGE TABS CHROME.OMNIBOX.ONINPUTCHANGED CHROME.OMNIBOX.ONINPUTENTERED CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.ONREMOVED CHROME.TABS.UPDATE","81c9aeb77827013f15a8fdff0cf6e07332816614":"FIREPHP FOR CHROME EXTENDS THE DEVELOPER TOOLS, ADDING SUPPORT FOR PARSING FIREPHP MESSAGES FROM SERVER BACKGROUND_PAGE DEVTOOLS_PAGE EXPERIMENTAL TABS CHROME.EXPERIMENTAL.DEVTOOLS.RESOURCES.GETHAR CHROME.EXPERIMENTAL.DEVTOOLS.RESOURCES.ONFINISHED CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.EXECUTESCRIPT","8b0dd31216235941bdd8eb33fda915ef5cf79a82":"GOOGLE CALENDAR CHECKER (BY GOOGLE) QUICKLY SEE THE TIME UNTIL YOUR NEXT MEETING FROM ANY OF YOUR CALENDARS. CLICK ON THE BUTTON TO BE TAKEN TO YOUR CALENDAR. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETICON CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.ONUPDATED CHROME.TABS.UPDATE","4e35caa9742fb82dbd628892d23a781614f6eff6":"GOOGLE DOCUMENT LIST VIEWER DEMONSTRATES HOW TO USE OAUTH TO CONNECT THE GOOGLE DOCUMENTS LIST DATA API. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE POPUP TABS CHROME.BROWSERACTION.SETBADGETEXT CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE","bb57f7a0132cbeb36ad7e7bb0ab75c21704234ca":"GOOGLE MAIL CHECKER DISPLAYS THE NUMBER OF UNREAD MESSAGES IN YOUR GOOGLE MAIL INBOX. YOU CAN ALSO CLICK THE BUTTON TO OPEN YOUR INBOX. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETICON CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.ONUPDATED CHROME.TABS.UPDATE","1682e05ea9a1bde985123b04f6f8ac50a8a64033":"GOOGLE WAVE NOTIFIER FIND OUT WHEN YOU HAVE NEW WAVES AND PREVIEW THEM FAST. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE POPUP TABS CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE","14b9651fda4e57b2a5914ba73a779812201b750a":"HELLO WORLD THE FIRST EXTENSION THAT I MADE. BROWSER_ACTION POPUP","2020d72f2577f53caf8e94e3dbac0fb849ceaa4d":"IDLE - SIMPLE EXAMPLE DEMONSTRATES THE IDLE API BACKGROUND_PAGE BROWSER_ACTION IDLE CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.IDLE.ONSTATECHANGED CHROME.IDLE.QUERYSTATE","0ea1588bd07b20338fc21f725de1542a5fdf9726":"IGOOGLE NEW TAB PAGE CHROME_URL_OVERRIDES","646325c25f572a1d15edc73d057f821d847a4fbe":"IMAGEINFO GET IMAGE INFO FOR IMAGES, INCLUDING EXIF DATA BACKGROUND_PAGE CONTEXTMENUS TABS CHROME.CONTEXTMENUS.CREATE CHROME.TABS.GET CHROME.TABS.GETCURRENT CHROME.WINDOWS.CREATE CHROME.WINDOWS.UPDATE","65b2fe595b7ac38dddd89cca50f5efd0017b0bd4":"KEYBOARD PIN CREATES A KEYBOARD SHORTCUT (C + SHIFT + P) TO TOGGLE THE PINNED STATE OF THE CURRENTLY SELECTED TAB BACKGROUND_PAGE TABS CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.UPDATE","ec97ec20ca2f095d081e39f1565fc12af09ef067":"MAPPY FINDS ADDRESSES IN THE WEB PAGE YOURE ON AND POPS UP A MAP WINDOW. BACKGROUND_PAGE PAGE_ACTION POPUP TABS CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.ONREQUEST CHROME.PAGEACTION.HIDE CHROME.PAGEACTION.SETTITLE CHROME.PAGEACTION.SHOW CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED CHROME.TABS.SENDREQUEST","b2f5f8a790e16f091a7e4e0a39b2d0a6d32e3a6d":"MERGE WINDOWS MERGES ALL OF THE BROWSERS WINDOWS INTO THE CURRENT WINDOW BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.MOVE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL CHROME.WINDOWS.GETCURRENT","51a83d2ba3a32e3ff1bdb624d4e18ccec4c4038e":"MESSAGE TIMER TIMES HOW LONG IT TAKES TO SEND A MESSAGE TO A CONTENT SCRIPT AND BACK. BROWSER_ACTION POPUP TABS CHROME.EXTENSION.ONCONNECT CHROME.EXTENSION.ONREQUEST CHROME.TABS.CONNECT CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.SENDREQUEST","4f6785ec4f937add6728615682dd37c9a42d9548":"MY BOOKMARKS A BROWSER ACTION WITH A POPUP DUMP OF ALL BOOKMARKS, INCLUDING SEARCH, ADD, EDIT AND DELETE. BOOKMARKS BROWSER_ACTION POPUP TABS CHROME.BOOKMARKS.CREATE CHROME.BOOKMARKS.GET CHROME.BOOKMARKS.GETTREE CHROME.BOOKMARKS.REMOVE CHROME.BOOKMARKS.UPDATE CHROME.TABS.CREATE","597015d3bcce3da693b02314afd607bec4f55291":"NEWS READER DISPLAYS THE FIRST 5 ITEMS FROM THE GOOGLE NEWS - TOP NEWS RSS FEED IN A POPUP. BROWSER_ACTION POPUP TABS CHROME.TABS.CREATE","6444e5c8ae112a6a433909c5e770669cd16e2e5f":"NEWS READER DISPLAYS THE FIRST 5 ITEMS FROM THE GOOGLE NEWS - TOP NEWS RSS FEED IN A POPUP. BROWSER_ACTION POPUP TABS CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE","3aea027164cb9b732ba4a8c51cb93708891726ef":"NEWS READER (BY GOOGLE) DISPLAYS THE LATEST STORIES FROM GOOGLE NEWS IN A POPUP. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE POPUP TABS CHROME.EXTENSION.GETURL CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE","f799e26ceef2367cf836f24bcb47df4398b0df58":"NOTIFICATION DEMO SHOWS OFF DESKTOP NOTIFICATIONS, WHICH ARE TOAST WINDOWS THAT POP UP ON THE DESKTOP. BACKGROUND_PAGE NOTIFICATIONS OPTIONS_PAGE TABS CHROME.TABS.CREATE","e787b322bddbc6289bb31b7d7550b1bf6456a80b":"OMNIBOX EXAMPLE TO USE, TYPE OMNIX PLUS A SEARCH TERM INTO THE OMNIBOX. BACKGROUND_PAGE CHROME.OMNIBOX.ONINPUTCHANGED CHROME.OMNIBOX.ONINPUTENTERED","8d0a50b57c26bb498be592e871001ffed91541b4":"PAGE ACTION BY CONTENT SHOWS A PAGE ACTION FOR HTML PAGES CONTAINING THE WORD SANDWICH BACKGROUND_PAGE PAGE_ACTION CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.PAGEACTION.SHOW","80b86ccc6e8520660fa591caa565826f0ed1b12c":"PAGE ACTION BY URL SHOWS A PAGE ACTION FOR URLS WHICH HAVE THE LETTER G IN THEM. BACKGROUND_PAGE PAGE_ACTION TABS CHROME.PAGEACTION.SHOW CHROME.TABS.ONUPDATED","d74c3c18a1c1dd18b035149105a306f837c8823e":"PAGE BENCHMARKER CHROMIUM PAGE BENCHMARKER. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.CONNECT CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETEXTENSIONTABS CHROME.EXTENSION.GETURL CHROME.EXTENSION.ONCONNECT CHROME.TABS.CREATE CHROME.TABS.EXECUTESCRIPT CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.GETSELECTED CHROME.TABS.REMOVE CHROME.TABS.UPDATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETCURRENT","e6ae17ab4ccfd7e059c8c01f25760ca5d894c7fd":"PRINT THIS PAGE ADDS A PRINT BUTTON TO THE BROWSER. BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.TABS.UPDATE","beff6ecd9677dea0a7c648c5042165b48bb66f09":"PROCESS MONITOR ADDS A BROWSER ACTION THAT MONITORS RESOURCE USAGE OF ALL BROWSER PROCESSES. BROWSER_ACTION EXPERIMENTAL POPUP TABS CHROME.EXPERIMENTAL.PROCESSES.ONUPDATED","3e8e226d87e431296bb110b4f6eb7eec2ca7a826":"PROXY SETTINGS SET CHROME-SPECIFIC PROXIES; A DEMONSTRATION OF CHROMES PROXY API BACKGROUND_PAGE BROWSER_ACTION POPUP PROXY CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.I18N.GETMESSAGE CHROME.PROXY.ONPROXYERROR","56a8d2ac24ca7bba78fd88ad57f43fc13c784497":"SAMPLE - OAUTH CONTACTS USES OAUTH TO CONNECT TO GOOGLES CONTACTS SERVICE AND DISPLAY A LIST OF YOUR CONTACTS. BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETICON CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE","38f6e1e17756ede38b1364c7114a738ca717dcbb":"SANDWICHBAR SHOWS AN INFOBAR ON PAGES WHICH CONTAIN THE WORD SANDWICH BACKGROUND_PAGE EXPERIMENTAL CHROME.EXPERIMENTAL.INFOBARS.SHOW CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST","fc89b35755483af30b66cd72cefa34a43a3e8312":"SHOW TABS IN PROCESS ADDS A BROWSER ACTION SHOWING WHICH TABS SHARE THE CURRENT TABS PROCESS. BROWSER_ACTION EXPERIMENTAL POPUP TABS CHROME.EXPERIMENTAL.PROCESSES.GETPROCESSIDFORTAB CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.UPDATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL CHROME.WINDOWS.GETCURRENT CHROME.WINDOWS.UPDATE","230463f2d5c3d4d0ca13c230e1f00f2aae0a8a64":"TAB INSPECTOR UTILITY FOR WORKING WITH THE EXTENSION TABS API BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.GETSELECTED CHROME.TABS.MOVE CHROME.TABS.ONATTACHED CHROME.TABS.ONCREATED CHROME.TABS.ONDETACHED CHROME.TABS.ONMOVED CHROME.TABS.ONREMOVED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE CHROME.TABS.UPDATE CHROME.WINDOWS.CREATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL CHROME.WINDOWS.GETCURRENT CHROME.WINDOWS.GETLASTFOCUSED CHROME.WINDOWS.ONCREATED CHROME.WINDOWS.ONFOCUSCHANGED CHROME.WINDOWS.ONREMOVED CHROME.WINDOWS.REMOVE CHROME.WINDOWS.UPDATE","e1697cacebad05218798bf3e8a0f724517f0e8c3":"TEST SCREENSHOT EXTENSION DEMONSTRATE SCREENSHOT FUNCTIONALITY IN THE CHROME.TABS API. NOTE: ONLY WORKS FOR CODE.GOOGLE.COM BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETURL CHROME.EXTENSION.GETVIEWS CHROME.TABS.CAPTUREVISIBLETAB CHROME.TABS.CREATE CHROME.TABS.ONUPDATED","b3de91ab04b7d7a2670ca7ee9d740eb42cead0b6":"TYPED URL HISTORY READS YOUR HISTORY, AND SHOWS THE TOP TEN PAGES YOU GO TO BY TYPING THE URL. BROWSER_ACTION HISTORY TABS CHROME.HISTORY.GETVISITS CHROME.HISTORY.SEARCH CHROME.TABS.CREATE","a3c674f7eb93621c590562ad3fa04de4f03f53a0":"WEBNAVIGATION TECH DEMO DEMONSTRATION OF THE WEBNAVIGATION EXTENSION API. BACKGROUND_PAGE BROWSER_ACTION EXPERIMENTAL EXTENSION POPUP WEBNAVIGATION CHROME.EXPERIMENTAL.WEBNAVIGATION.ONBEFORENAVIGATE CHROME.EXPERIMENTAL.WEBNAVIGATION.ONBEFORERETARGET CHROME.EXPERIMENTAL.WEBNAVIGATION.ONCOMMITTED CHROME.EXPERIMENTAL.WEBNAVIGATION.ONCOMPLETED CHROME.EXPERIMENTAL.WEBNAVIGATION.ONERROROCCURRED CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.I18N.GETMESSAGE","0fa4abe6545f0316fea7cfa07c53aa48c4f3d018":"`EXTENSION.ISALLOWED???ACCESS` EXAMPLE DEMONSTRATES THE `EXTENSION.ISALLOWED???ACCESS` APIS BROWSER_ACTION CHROME.EXTENSION.ISALLOWEDFILESCHEMEACCESS CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS"}</script> +<script>var search_data = {"0262260daf0c8f7b28feff2ef23b05e7abf9d1e0":"A BROWSER ACTION WHICH CHANGES ITS ICON WHEN CLICKED. BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETICON","ea2894c41cb8e80a4433a3e6c5772dadce9be90d":"A BROWSER ACTION WITH A POPUP THAT CHANGES THE PAGE COLOR. BROWSER_ACTION POPUP TABS CHROME.TABS.EXECUTESCRIPT","ede3c47b7757245be42ec33fd5ca63df4b490066":"A BROWSER ACTION WITH NO ICON THAT MAKES THE PAGE RED BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.TABS.EXECUTESCRIPT","fbf0aa1a09a15ff8cc4fc7de4fd176d6c663d07a":"ACCEPTLANGUAGE RETURNS ACCEPT LANGUAGES OF THE BROWSER BROWSER_ACTION POPUP CHROME.I18N.GETACCEPTLANGUAGES CHROME.I18N.GETMESSAGE","9a6e4ec46997fb92b324974afa08a3d007e2537f":"ANIMATED PAGE ACTION THIS EXTENSION ADDS AN ANIMATED BROWSER ACTION TO THE TOOLBAR. BACKGROUND_PAGE PAGE_ACTION TABS CHROME.PAGEACTION.HIDE CHROME.PAGEACTION.ONCLICKED CHROME.PAGEACTION.SETICON CHROME.PAGEACTION.SETTITLE CHROME.PAGEACTION.SHOW CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONSELECTIONCHANGED","a1f7cf79dd555b04fa8d603247a040e644996293":"APP LAUNCHER BROWSER_ACTION MANAGEMENT CHROME.EXTENSION.GETURL CHROME.MANAGEMENT.GET CHROME.MANAGEMENT.GETALL CHROME.MANAGEMENT.LAUNCHAPP CHROME.TABS.CREATE","9747e3d6a3eab39bc7c17f11a80573c62d44c7e5":"BLANK NEW TAB PAGE CHROME_URL_OVERRIDES","7da105f28e200d42510aff3591dfa5aeb0b82605":"BLOCK/ALLOW THIRD-PARTY COOKIES API EXAMPLE EXTENSION SAMPLE EXTENSION WHICH DEMONSTRATES HOW TO ACCESS A PREFERENCE. BROWSER_ACTION CONTENTSETTINGS EXPERIMENTAL POPUP CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS","9004d1a1b975859d07bdff94ea0a4baa106c4fd1":"BROKEN LINKS EXTENDS THE DEVELOPER TOOLS, ADDING AN AUDIT CATEGORY THAT FINDS BROKEN LINKS ON THE INSPECTED PAGE. BACKGROUND_PAGE DEVTOOLS_PAGE EXPERIMENTAL TABS CHROME.EXPERIMENTAL.DEVTOOLS.AUDITS.ADDCATEGORY CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.EXECUTESCRIPT CHROME.TABS.SENDREQUEST","924f75a201bb0ec8d6c0b1c9c88c679ea211c93d":"CHROME QUERY EXTENDS THE DEVELOPER TOOLS, ADDING A SIDEBAR THAT DISPLAYS THE JQUERY DATA ASSOCIATED WITH THE SELECTED DOM ELEMENT. DEVTOOLS_PAGE EXPERIMENTAL","903e7277139e1e6caec123d3319cab295d8d1b3a":"CHROME SOUNDS ENJOY A MORE MAGICAL AND IMMERSIVE EXPERIENCE WHEN BROWSING THE WEB USING THE POWER OF SOUND. BACKGROUND_PAGE BOOKMARKS OPTIONS_PAGE TABS CHROME.BOOKMARKS.ONCREATED CHROME.BOOKMARKS.ONMOVED CHROME.BOOKMARKS.ONREMOVED CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.GET CHROME.TABS.ONATTACHED CHROME.TABS.ONCREATED CHROME.TABS.ONDETACHED CHROME.TABS.ONMOVED CHROME.TABS.ONREMOVED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED CHROME.WINDOWS.ONCREATED CHROME.WINDOWS.ONFOCUSCHANGED CHROME.WINDOWS.ONREMOVED","0e790e035a4a00b6f1def5ef9a7d7be1bce95ab5":"CHROMIUM BUILDBOT MONITOR DISPLAYS THE STATUS OF THE CHROMIUM BUILDBOT IN THE TOOLBAR. CLICK TO SEE MORE DETAILED STATUS IN A POPUP. BACKGROUND_PAGE BROWSER_ACTION NOTIFICATIONS OPTIONS_PAGE POPUP CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.GETURL","ac31228200b41a87982e386cc90d3a6eee4ad885":"CHROMIUM SEARCH ADD SUPPORT TO THE OMNIBOX TO SEARCH THE CHROMIUM SOURCE CODE. BACKGROUND_PAGE TABS CHROME.OMNIBOX.ONINPUTCANCELLED CHROME.OMNIBOX.ONINPUTCHANGED CHROME.OMNIBOX.ONINPUTENTERED CHROME.OMNIBOX.ONINPUTSTARTED CHROME.OMNIBOX.SETDEFAULTSUGGESTION CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.UPDATE","7d5d6cf195bc25480256618e360aa38c6e6fba82":"CLD DISPLAYS THE LANGUAGE OF A TAB BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.SETBADGETEXT CHROME.TABS.DETECTLANGUAGE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED","6871d09f4a96bf9d4b6cc724d00e909cee0f3902":"CONTENT SCRIPT CROSS-DOMAIN XMLHTTPREQUEST EXAMPLE DEMONSTRATES MAKING CROSS DOMAIN REQUESTS FROM A CONTENT SCRIPT BY PUTTING TWITTER TRENDS ON GOOGLE NEWS.","e1f97e61e28ff33131d66dd28a4ed70a77874a51":"CONTENT SETTINGS SHOWS THE CONTENT SETTINGS FOR THE CURRENT SITE. BROWSER_ACTION CONTENTSETTINGS EXPERIMENTAL POPUP TABS CHROME.TABS.GET CHROME.TABS.GETSELECTED","5d81304a17cf7ac2887484f730fbd2b01e51e166":"CONTEXT MENUS SAMPLE SHOWS SOME OF THE FEATURES OF THE CONTEXT MENUS API BACKGROUND_PAGE CONTEXTMENUS CHROME.CONTEXTMENUS.CREATE","4daa6becd0899a54776d9cf7f09613ed1a9f4d77":"COOKIE API TEST EXTENSION TESTING COOKIE API BACKGROUND_PAGE BROWSER_ACTION COOKIES TABS CHROME.BROWSERACTION.ONCLICKED CHROME.COOKIES.GET CHROME.COOKIES.GETALL CHROME.COOKIES.ONCHANGED CHROME.COOKIES.REMOVE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.UPDATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL","028eb5364924344029bcbe1d527f132fc72b34e5":"EMAIL THIS PAGE (BY GOOGLE) THIS EXTENSION ADDS AN EMAIL BUTTON TO THE TOOLBAR WHICH ALLOWS YOU TO EMAIL THE PAGE LINK USING YOUR DEFAULT MAIL CLIENT OR GMAIL. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.CONNECT CHROME.EXTENSION.ONCONNECT CHROME.TABS.CREATE CHROME.TABS.EXECUTESCRIPT CHROME.TABS.UPDATE","0bf0930a32829dfb77170535ecb27adc2de3998a":"ENABLE/DISABLE REFERRERS API EXAMPLE EXTENSION SAMPLE EXTENSION WHICH DEMONSTRATES HOW TO ACCESS A PREFERENCE. BROWSER_ACTION CONTENTSETTINGS EXPERIMENTAL POPUP CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS","763a08e9b06595d785568a8d392b95a2f3700258":"EVENT TRACKING WITH GOOGLE ANALYTICS A SAMPLE EXTENSION WHICH USES GOOGLE ANALYTICS TO TRACK USAGE. BACKGROUND_PAGE BROWSER_ACTION POPUP","e3df888a89e35bdeb9c8bc8d03be5e1851b97c68":"EXTENSION DOCS SEARCH SEARCH THE CHROME EXTENSIONS DOCUMENTATION. TO USE, TYPE CRDOC PLUS A SEARCH TERM INTO THE OMNIBOX. BACKGROUND_PAGE TABS CHROME.OMNIBOX.ONINPUTCHANGED CHROME.OMNIBOX.ONINPUTENTERED CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.ONREMOVED CHROME.TABS.UPDATE","81c9aeb77827013f15a8fdff0cf6e07332816614":"FIREPHP FOR CHROME EXTENDS THE DEVELOPER TOOLS, ADDING SUPPORT FOR PARSING FIREPHP MESSAGES FROM SERVER BACKGROUND_PAGE DEVTOOLS_PAGE EXPERIMENTAL TABS CHROME.EXPERIMENTAL.DEVTOOLS.RESOURCES.GETHAR CHROME.EXPERIMENTAL.DEVTOOLS.RESOURCES.ONFINISHED CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.EXECUTESCRIPT","8b0dd31216235941bdd8eb33fda915ef5cf79a82":"GOOGLE CALENDAR CHECKER (BY GOOGLE) QUICKLY SEE THE TIME UNTIL YOUR NEXT MEETING FROM ANY OF YOUR CALENDARS. CLICK ON THE BUTTON TO BE TAKEN TO YOUR CALENDAR. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETICON CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.ONUPDATED CHROME.TABS.UPDATE","4e35caa9742fb82dbd628892d23a781614f6eff6":"GOOGLE DOCUMENT LIST VIEWER DEMONSTRATES HOW TO USE OAUTH TO CONNECT THE GOOGLE DOCUMENTS LIST DATA API. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE POPUP TABS CHROME.BROWSERACTION.SETBADGETEXT CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE","bb57f7a0132cbeb36ad7e7bb0ab75c21704234ca":"GOOGLE MAIL CHECKER DISPLAYS THE NUMBER OF UNREAD MESSAGES IN YOUR GOOGLE MAIL INBOX. YOU CAN ALSO CLICK THE BUTTON TO OPEN YOUR INBOX. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETICON CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.ONUPDATED CHROME.TABS.UPDATE","1682e05ea9a1bde985123b04f6f8ac50a8a64033":"GOOGLE WAVE NOTIFIER FIND OUT WHEN YOU HAVE NEW WAVES AND PREVIEW THEM FAST. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE POPUP TABS CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE","14b9651fda4e57b2a5914ba73a779812201b750a":"HELLO WORLD THE FIRST EXTENSION THAT I MADE. BROWSER_ACTION POPUP","2020d72f2577f53caf8e94e3dbac0fb849ceaa4d":"IDLE - SIMPLE EXAMPLE DEMONSTRATES THE IDLE API BACKGROUND_PAGE BROWSER_ACTION IDLE CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.IDLE.ONSTATECHANGED CHROME.IDLE.QUERYSTATE","0ea1588bd07b20338fc21f725de1542a5fdf9726":"IGOOGLE NEW TAB PAGE CHROME_URL_OVERRIDES","646325c25f572a1d15edc73d057f821d847a4fbe":"IMAGEINFO GET IMAGE INFO FOR IMAGES, INCLUDING EXIF DATA BACKGROUND_PAGE CONTEXTMENUS TABS CHROME.CONTEXTMENUS.CREATE CHROME.TABS.GET CHROME.TABS.GETCURRENT CHROME.WINDOWS.CREATE CHROME.WINDOWS.UPDATE","65b2fe595b7ac38dddd89cca50f5efd0017b0bd4":"KEYBOARD PIN CREATES A KEYBOARD SHORTCUT (C + SHIFT + P) TO TOGGLE THE PINNED STATE OF THE CURRENTLY SELECTED TAB BACKGROUND_PAGE TABS CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.UPDATE","ec97ec20ca2f095d081e39f1565fc12af09ef067":"MAPPY FINDS ADDRESSES IN THE WEB PAGE YOURE ON AND POPS UP A MAP WINDOW. BACKGROUND_PAGE PAGE_ACTION POPUP TABS CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.ONREQUEST CHROME.PAGEACTION.HIDE CHROME.PAGEACTION.SETTITLE CHROME.PAGEACTION.SHOW CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED CHROME.TABS.SENDREQUEST","b2f5f8a790e16f091a7e4e0a39b2d0a6d32e3a6d":"MERGE WINDOWS MERGES ALL OF THE BROWSERS WINDOWS INTO THE CURRENT WINDOW BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.MOVE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL CHROME.WINDOWS.GETCURRENT","51a83d2ba3a32e3ff1bdb624d4e18ccec4c4038e":"MESSAGE TIMER TIMES HOW LONG IT TAKES TO SEND A MESSAGE TO A CONTENT SCRIPT AND BACK. BROWSER_ACTION POPUP TABS CHROME.EXTENSION.ONCONNECT CHROME.EXTENSION.ONREQUEST CHROME.TABS.CONNECT CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.SENDREQUEST","4f6785ec4f937add6728615682dd37c9a42d9548":"MY BOOKMARKS A BROWSER ACTION WITH A POPUP DUMP OF ALL BOOKMARKS, INCLUDING SEARCH, ADD, EDIT AND DELETE. BOOKMARKS BROWSER_ACTION POPUP TABS CHROME.BOOKMARKS.CREATE CHROME.BOOKMARKS.GET CHROME.BOOKMARKS.GETTREE CHROME.BOOKMARKS.REMOVE CHROME.BOOKMARKS.UPDATE CHROME.TABS.CREATE","597015d3bcce3da693b02314afd607bec4f55291":"NEWS READER DISPLAYS THE FIRST 5 ITEMS FROM THE GOOGLE NEWS - TOP NEWS RSS FEED IN A POPUP. BROWSER_ACTION POPUP TABS CHROME.TABS.CREATE","6444e5c8ae112a6a433909c5e770669cd16e2e5f":"NEWS READER DISPLAYS THE FIRST 5 ITEMS FROM THE GOOGLE NEWS - TOP NEWS RSS FEED IN A POPUP. BROWSER_ACTION POPUP TABS CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE","3aea027164cb9b732ba4a8c51cb93708891726ef":"NEWS READER (BY GOOGLE) DISPLAYS THE LATEST STORIES FROM GOOGLE NEWS IN A POPUP. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE POPUP TABS CHROME.EXTENSION.GETURL CHROME.I18N.GETMESSAGE CHROME.TABS.CREATE","f799e26ceef2367cf836f24bcb47df4398b0df58":"NOTIFICATION DEMO SHOWS OFF DESKTOP NOTIFICATIONS, WHICH ARE TOAST WINDOWS THAT POP UP ON THE DESKTOP. BACKGROUND_PAGE NOTIFICATIONS OPTIONS_PAGE TABS CHROME.TABS.CREATE","e787b322bddbc6289bb31b7d7550b1bf6456a80b":"OMNIBOX EXAMPLE TO USE, TYPE OMNIX PLUS A SEARCH TERM INTO THE OMNIBOX. BACKGROUND_PAGE CHROME.OMNIBOX.ONINPUTCHANGED CHROME.OMNIBOX.ONINPUTENTERED","8d0a50b57c26bb498be592e871001ffed91541b4":"PAGE ACTION BY CONTENT SHOWS A PAGE ACTION FOR HTML PAGES CONTAINING THE WORD SANDWICH BACKGROUND_PAGE PAGE_ACTION CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.PAGEACTION.SHOW","80b86ccc6e8520660fa591caa565826f0ed1b12c":"PAGE ACTION BY URL SHOWS A PAGE ACTION FOR URLS WHICH HAVE THE LETTER G IN THEM. BACKGROUND_PAGE PAGE_ACTION TABS CHROME.PAGEACTION.SHOW CHROME.TABS.ONUPDATED","d74c3c18a1c1dd18b035149105a306f837c8823e":"PAGE BENCHMARKER CHROMIUM PAGE BENCHMARKER. BACKGROUND_PAGE BROWSER_ACTION OPTIONS_PAGE TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.CONNECT CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETEXTENSIONTABS CHROME.EXTENSION.GETURL CHROME.EXTENSION.ONCONNECT CHROME.TABS.CREATE CHROME.TABS.EXECUTESCRIPT CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.GETSELECTED CHROME.TABS.REMOVE CHROME.TABS.UPDATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETCURRENT","e6ae17ab4ccfd7e059c8c01f25760ca5d894c7fd":"PRINT THIS PAGE ADDS A PRINT BUTTON TO THE BROWSER. BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.TABS.UPDATE","beff6ecd9677dea0a7c648c5042165b48bb66f09":"PROCESS MONITOR ADDS A BROWSER ACTION THAT MONITORS RESOURCE USAGE OF ALL BROWSER PROCESSES. BROWSER_ACTION EXPERIMENTAL POPUP TABS CHROME.EXPERIMENTAL.PROCESSES.ONUPDATED","3e8e226d87e431296bb110b4f6eb7eec2ca7a826":"PROXY SETTINGS SET CHROME-SPECIFIC PROXIES; A DEMONSTRATION OF CHROMES PROXY API BACKGROUND_PAGE BROWSER_ACTION POPUP PROXY CHROME.BROWSERACTION.SETBADGEBACKGROUNDCOLOR CHROME.BROWSERACTION.SETBADGETEXT CHROME.BROWSERACTION.SETTITLE CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.I18N.GETMESSAGE CHROME.PROXY.ONPROXYERROR","56a8d2ac24ca7bba78fd88ad57f43fc13c784497":"SAMPLE - OAUTH CONTACTS USES OAUTH TO CONNECT TO GOOGLES CONTACTS SERVICE AND DISPLAY A LIST OF YOUR CONTACTS. BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.BROWSERACTION.SETICON CHROME.EXTENSION.GETBACKGROUNDPAGE CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE","38f6e1e17756ede38b1364c7114a738ca717dcbb":"SANDWICHBAR SHOWS AN INFOBAR ON PAGES WHICH CONTAIN THE WORD SANDWICH BACKGROUND_PAGE EXPERIMENTAL CHROME.EXPERIMENTAL.INFOBARS.SHOW CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST","fc89b35755483af30b66cd72cefa34a43a3e8312":"SHOW TABS IN PROCESS ADDS A BROWSER ACTION SHOWING WHICH TABS SHARE THE CURRENT TABS PROCESS. BROWSER_ACTION EXPERIMENTAL POPUP TABS CHROME.EXPERIMENTAL.PROCESSES.GETPROCESSIDFORTAB CHROME.TABS.GET CHROME.TABS.GETSELECTED CHROME.TABS.UPDATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL CHROME.WINDOWS.GETCURRENT CHROME.WINDOWS.UPDATE","230463f2d5c3d4d0ca13c230e1f00f2aae0a8a64":"TAB INSPECTOR UTILITY FOR WORKING WITH THE EXTENSION TABS API BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.GETSELECTED CHROME.TABS.MOVE CHROME.TABS.ONATTACHED CHROME.TABS.ONCREATED CHROME.TABS.ONDETACHED CHROME.TABS.ONMOVED CHROME.TABS.ONREMOVED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE CHROME.TABS.UPDATE CHROME.WINDOWS.CREATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL CHROME.WINDOWS.GETCURRENT CHROME.WINDOWS.GETLASTFOCUSED CHROME.WINDOWS.ONCREATED CHROME.WINDOWS.ONFOCUSCHANGED CHROME.WINDOWS.ONREMOVED CHROME.WINDOWS.REMOVE CHROME.WINDOWS.UPDATE","e1697cacebad05218798bf3e8a0f724517f0e8c3":"TEST SCREENSHOT EXTENSION DEMONSTRATE SCREENSHOT FUNCTIONALITY IN THE CHROME.TABS API. NOTE: ONLY WORKS FOR CODE.GOOGLE.COM BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETURL CHROME.EXTENSION.GETVIEWS CHROME.TABS.CAPTUREVISIBLETAB CHROME.TABS.CREATE CHROME.TABS.ONUPDATED","b3de91ab04b7d7a2670ca7ee9d740eb42cead0b6":"TYPED URL HISTORY READS YOUR HISTORY, AND SHOWS THE TOP TEN PAGES YOU GO TO BY TYPING THE URL. BROWSER_ACTION HISTORY TABS CHROME.HISTORY.GETVISITS CHROME.HISTORY.SEARCH CHROME.TABS.CREATE","a3c674f7eb93621c590562ad3fa04de4f03f53a0":"WEBNAVIGATION TECH DEMO DEMONSTRATION OF THE WEBNAVIGATION EXTENSION API. BACKGROUND_PAGE BROWSER_ACTION EXPERIMENTAL EXTENSION POPUP WEBNAVIGATION CHROME.EXPERIMENTAL.WEBNAVIGATION.ONBEFORENAVIGATE CHROME.EXPERIMENTAL.WEBNAVIGATION.ONBEFORERETARGET CHROME.EXPERIMENTAL.WEBNAVIGATION.ONCOMMITTED CHROME.EXPERIMENTAL.WEBNAVIGATION.ONCOMPLETED CHROME.EXPERIMENTAL.WEBNAVIGATION.ONERROROCCURRED CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST CHROME.I18N.GETMESSAGE","0fa4abe6545f0316fea7cfa07c53aa48c4f3d018":"`EXTENSION.ISALLOWED???ACCESS` EXAMPLE DEMONSTRATES THE `EXTENSION.ISALLOWED???ACCESS` APIS BROWSER_ACTION CHROME.EXTENSION.ISALLOWEDFILESCHEMEACCESS CHROME.EXTENSION.ISALLOWEDINCOGNITOACCESS"}</script> <script src="js/sample_search.js"></script> @@ -359,6 +359,10 @@ </span><span> <a href="javascript:void(0);" onclick="setFilter('chrome.tabs', this)">chrome.tabs</a><span>, </span> </span><span> + <a href="javascript:void(0);" onclick="setFilter('chrome.tts', this)">chrome.tts</a><span>, </span> + </span><span> + <a href="javascript:void(0);" onclick="setFilter('chrome.ttsEngine', this)">chrome.ttsEngine</a><span>, </span> + </span><span> <a href="javascript:void(0);" onclick="setFilter('chrome.types', this)">chrome.types</a><span>, </span> </span><span> <a href="javascript:void(0);" onclick="setFilter('chrome.windows', this)">chrome.windows</a><span style="display: none; ">, </span> @@ -1049,20 +1053,16 @@ </span> </p> <p>Demonstrates making cross domain requests from a content script by putting Twitter trends on Google News.</p> - <div class="apicalls"><strong>Calls:</strong> + <div class="apicalls" style="display: none; "><strong>Calls:</strong> <ul> <li> - <code><a href="extension.html#event-onRequest">chrome.extension.onRequest</a></code> - </li><li> - <code><a href="extension.html#method-sendRequest">chrome.extension.sendRequest</a></code> + <code><a></a></code> </li> </ul> </div> <div class="sourcefiles"><strong>Source files:</strong> <ul> <li> - <code><a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/howto/contentscript_xhr/background.html?content-type=text/plain">background.html</a></code> - </li><li> <code><a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/howto/contentscript_xhr/contentscript.js?content-type=text/plain">contentscript.js</a></code> </li><li> <code><a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/howto/contentscript_xhr/manifest.json?content-type=text/plain">manifest.json</a></code> diff --git a/chrome/common/extensions/docs/samples.json b/chrome/common/extensions/docs/samples.json index 23f318a..0c1fa86 100644 --- a/chrome/common/extensions/docs/samples.json +++ b/chrome/common/extensions/docs/samples.json @@ -63,14 +63,6 @@ "chrome.experimental.sidebar.setIcon": "experimental.sidebar.html#method-setIcon", "chrome.experimental.sidebar.setTitle": "experimental.sidebar.html#method-setTitle", "chrome.experimental.sidebar.show": "experimental.sidebar.html#method-show", - "chrome.experimental.tts.getVoices": "experimental.tts.html#method-getVoices", - "chrome.experimental.tts.isSpeaking": "experimental.tts.html#method-isSpeaking", - "chrome.experimental.tts.speak": "experimental.tts.html#method-speak", - "chrome.experimental.tts.stop": "experimental.tts.html#method-stop", - "chrome.experimental.ttsEngine.onEvent": "experimental.ttsEngine.html#event-onEvent", - "chrome.experimental.ttsEngine.onSpeak": "experimental.ttsEngine.html#event-onSpeak", - "chrome.experimental.ttsEngine.onStop": "experimental.ttsEngine.html#event-onStop", - "chrome.experimental.ttsEngine.sendTtsEvent": "experimental.ttsEngine.html#method-sendTtsEvent", "chrome.experimental.webNavigation.onBeforeNavigate": "experimental.webNavigation.html#event-onBeforeNavigate", "chrome.experimental.webNavigation.onBeforeRetarget": "experimental.webNavigation.html#event-onBeforeRetarget", "chrome.experimental.webNavigation.onCommitted": "experimental.webNavigation.html#event-onCommitted", @@ -156,6 +148,14 @@ "chrome.tabs.remove": "tabs.html#method-remove", "chrome.tabs.sendRequest": "tabs.html#method-sendRequest", "chrome.tabs.update": "tabs.html#method-update", + "chrome.tts.getVoices": "tts.html#method-getVoices", + "chrome.tts.isSpeaking": "tts.html#method-isSpeaking", + "chrome.tts.onEvent": "tts.html#event-onEvent", + "chrome.tts.speak": "tts.html#method-speak", + "chrome.tts.stop": "tts.html#method-stop", + "chrome.ttsEngine.onSpeak": "ttsEngine.html#event-onSpeak", + "chrome.ttsEngine.onStop": "ttsEngine.html#event-onStop", + "chrome.ttsEngine.sendTtsEvent": "ttsEngine.html#method-sendTtsEvent", "chrome.windows.create": "windows.html#method-create", "chrome.windows.get": "windows.html#method-get", "chrome.windows.getAll": "windows.html#method-getAll", @@ -567,10 +567,7 @@ "zip_path": "examples\/api\/i18n\/cld.zip" }, { - "api_calls": [ - "chrome.extension.onRequest", - "chrome.extension.sendRequest" - ], + "api_calls": [], "description": "Demonstrates making cross domain requests from a content script by putting Twitter trends on Google News.", "features": [], "icon": "sample-128.png", @@ -580,13 +577,12 @@ "protocols": [ "https:\/\/" ], - "search_string": "CONTENT SCRIPT CROSS-DOMAIN XMLHTTPREQUEST EXAMPLE DEMONSTRATES MAKING CROSS DOMAIN REQUESTS FROM A CONTENT SCRIPT BY PUTTING TWITTER TRENDS ON GOOGLE NEWS. CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST", + "search_string": "CONTENT SCRIPT CROSS-DOMAIN XMLHTTPREQUEST EXAMPLE DEMONSTRATES MAKING CROSS DOMAIN REQUESTS FROM A CONTENT SCRIPT BY PUTTING TWITTER TRENDS ON GOOGLE NEWS.", "source_files": [ - "background.html", "contentscript.js", "manifest.json" ], - "source_hash": "afb208775dc8842def6ade41a83957ccffa7be1c", + "source_hash": "749314ae399dfc5f6759358b384bc55997fed455", "zip_path": "examples\/howto\/contentscript_xhr.zip" }, { @@ -815,7 +811,7 @@ "devtools.js", "manifest.json" ], - "source_hash": "46b426df9ae054648e56756d19e15094f63a0776", + "source_hash": "fa560de6c20aa58332872918a330b4df00ab55cd", "zip_path": "examples\/api\/devtools\/resources\/chrome-firephp.zip" }, { @@ -1125,7 +1121,7 @@ "info.html", "manifest.json" ], - "source_hash": "c746d9114348f4b414c1ec05e988e2807feb963a", + "source_hash": "672f49ed8edbe0829c7ba5a1d890b4440b157991", "zip_path": "examples\/extensions\/imageinfo.zip" }, { diff --git a/chrome/common/extensions/docs/static/manifest.html b/chrome/common/extensions/docs/static/manifest.html index 816ac5c..3e9efae 100644 --- a/chrome/common/extensions/docs/static/manifest.html +++ b/chrome/common/extensions/docs/static/manifest.html @@ -468,6 +468,16 @@ table. <a href="windows.html">chrome.windows</a> module. </td> </tr> <tr> + <td> "tts" </td> + <td> Required if the extension uses the + <a href="tts.html">chrome.tts</a> module. </td> +</tr> +<tr> + <td> "ttsEngine" </td> + <td> Required if the extension uses the + <a href="ttsEngine.html">chrome.ttsEngine</a> module. </td> +</tr> +<tr> <td> "unlimitedStorage"</td> <td> Provides an unlimited quota for storing HTML5 client-side data, such as databases and local storage files. diff --git a/chrome/common/extensions/docs/static/experimental.tts.html b/chrome/common/extensions/docs/static/tts.html index 285c598..ee6fd97 100644 --- a/chrome/common/extensions/docs/static/experimental.tts.html +++ b/chrome/common/extensions/docs/static/tts.html @@ -1,8 +1,8 @@ <p id="classSummary"> -Use the <code>chrome.experimental.tts</code> module to play synthesized +Use the <code>chrome.tts</code> module to play synthesized text-to-speech (TTS) from your extension or packaged app. See also the related -<a href="experimental.ttsEngine.html">experimental.ttsEngine</a> +<a href="ttsEngine.html">ttsEngine</a> module, which allows an extension to implement a speech engine. </p> @@ -14,8 +14,9 @@ group.</p> <h2 id="overview">Overview</h2> -<p>To enable this experimental API, visit -<b>chrome://flags</b> and enable <b>Experimental Extension APIs</b>. +<p>You must declare the "tts" permission +in your extension's manifest to use this API. +</p> <p>Chrome provides native support for speech on Windows (using SAPI 5), Mac OS X, and Chrome OS, using speech synthesis capabilities @@ -28,21 +29,21 @@ engines.</p> <p>Call <code>speak()</code> from your extension or packaged app to speak. For example:</p> -<pre>chrome.experimental.tts.speak('Hello, world.');</pre> +<pre>chrome.tts.speak('Hello, world.');</pre> <p>To stop speaking immediately, just call <code>stop()</code>: -<pre>chrome.experimental.tts.stop();</pre> +<pre>chrome.tts.stop();</pre> <p>You can provide options that control various properties of the speech, such as its rate, pitch, and more. For example:</p> -<pre>chrome.experimental.tts.speak('Hello, world.', {'rate': 2.0});</pre> +<pre>chrome.tts.speak('Hello, world.', {'rate': 2.0});</pre> <p>It's also a good idea to specify the language so that a synthesizer supporting that language (and regional dialect, if applicable) is chosen.</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( 'Hello, world.', {'lang': 'en-US', 'rate': 2.0});</pre> <p>By default, each call to <code>speak()</code> interrupts any @@ -52,9 +53,9 @@ addition, you can use the <code>enqueue</code> option to cause this utterance to be added to a queue of utterances that will be spoken when the current utterance has finished.</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( 'Speak this first.'); -chrome.experimental.tts.speak( +chrome.tts.speak( 'Speak this next, when the first sentence is done.', {'enqueue': true}); </pre> @@ -68,7 +69,7 @@ the callback, check <a href="extension.html#property-lastError">chrome.extension.lastError</a> to see if there were any errors.</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( utterance, options, function() { @@ -89,7 +90,7 @@ described below.</p> <p>To get more real-time information about the status of synthesized speech, pass an event listener in the options to <code>speak()</code>, like this:</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( utterance, { onEvent: function(event) { @@ -151,7 +152,7 @@ fragment.</p> <p>For example:</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( '<?xml version="1.0"?>' + '<speak>' + ' The <emphasis>second</emphasis> ' + @@ -177,7 +178,7 @@ the appropriate voice, or to present the user with a list of choices.</p> a function that receives an array of <code>TtsVoice</code> objects as its argument:</p> -<pre>chrome.experimental.tts.getVoices( +<pre>chrome.tts.getVoices( function(voices) { for (var i = 0; i < voices.length; i++) { console.log('Voice ' + i + ':'); diff --git a/chrome/common/extensions/docs/static/experimental.ttsEngine.html b/chrome/common/extensions/docs/static/ttsEngine.html index 16ad832..f1b0cb6 100644 --- a/chrome/common/extensions/docs/static/experimental.ttsEngine.html +++ b/chrome/common/extensions/docs/static/ttsEngine.html @@ -1,10 +1,10 @@ <p id="classSummary"> -Use the <code>chrome.experimental.ttsEngine</code> module to +Use the <code>chrome.ttsEngine</code> module to implement a text-to-speech (TTS) engine using an extension. If your extension registers using this API, it will receive events containing an utterance to be spoken and other parameters when any extension or packaged app uses the -<a href="experimental.tts.html">experimental.tts</a> +<a href="tts.html">tts</a> module to generate speech. Your extension can then use any available web technology to synthesize and output the speech, and send events back to the calling function to report the status. @@ -18,13 +18,10 @@ group.</p> <h2 id="overview">Overview</h2> -<p>To enable this experimental API, visit -<b>chrome://flags</b> and enable <b>Experimental Extension APIs</b>. - <p>An extension can register itself as a speech engine. By doing so, it can intercept some or all calls to functions such as -<a href="experimental.tts.html#method-speak"><code>speak()</code></a> and -<a href="experimental.tts.html#method-stop"><code>stop()</code></a> +<a href="tts.html#method-speak"><code>speak()</code></a> and +<a href="tts.html#method-stop"><code>stop()</code></a> and provide an alternate implementation. Extensions are free to use any available web technology to provide speech, including streaming audio from a server, HTML5 audio, @@ -34,13 +31,14 @@ send them as log messages to a remote server.</p> <h2 id="manifest">Manifest</h2> -<p>To implement a TTS engine, an extension must first declare all voices +<p>To implement a TTS engine, an extension must +declare the "ttsEngine" permission and then declare all voices it provides in the extension manifest, like this:</p> <pre>{ "name": "My TTS Engine", "version": "1.0", - <b>"permissions": ["experimental"], + <b>"permissions": ["ttsEngine"], "tts_engine": { "voices": [ { @@ -121,7 +119,7 @@ not sent by the speech engine; they are generated automatically by Chrome.</p> <p>Text-to-speech clients can get the voice information from your extension's manifest by calling -<a href="experimental.tts.html#method-getVoices">getVoices()</a>, +<a href="tts.html#method-getVoices">getVoices()</a>, assuming you've registered speech event listeners as described below.</p> <h2 id="handling_speech_events">Handling speech events</h2> @@ -142,8 +140,8 @@ var stopListener = function() { // (stop all speech) }; -chrome.experimental.ttsEngine.onSpeak.addListener(speakListener); -chrome.experimental.ttsEngine.onStop.addListener(stopListener);</pre> +chrome.ttsEngine.onSpeak.addListener(speakListener); +chrome.ttsEngine.onStop.addListener(stopListener);</pre> <p class="warning"> <b>Important:</b> diff --git a/chrome/common/extensions/docs/experimental.tts.html b/chrome/common/extensions/docs/tts.html index e50344f..30c780f 100644 --- a/chrome/common/extensions/docs/experimental.tts.html +++ b/chrome/common/extensions/docs/tts.html @@ -16,7 +16,7 @@ <script type="text/javascript" src="js/api_page_generator.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> <script type="text/javascript" src="js/sidebar.js"></script> - <title>chrome.experimental.tts - Google Chrome Extensions - Google Code</title></head> + <title>chrome.tts - Google Chrome Extensions - Google Code</title></head> <body> <div id="gc-container" class="labs"> <div id="devModeWarning"> You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files. @@ -251,7 +251,7 @@ <div class="g-unit" id="gc-pagecontent"> <div id="pageTitle"> - <h1 class="page_title">chrome.experimental.tts</h1> + <h1 class="page_title">chrome.tts</h1> </div> <!-- TABLE OF CONTENTS --> <div id="toc"> @@ -294,7 +294,7 @@ </ol> </li> <li> - <a href="#apiReference">API reference: chrome.experimental.tts</a> + <a href="#apiReference">API reference: chrome.tts</a> <ol> <li style="display: none; "> <a href="#properties">Properties</a> @@ -318,10 +318,10 @@ </li> </ol> </li> - <li style="display: none; "> - <a>Events</a> + <li> + <a href="#global-events">Events</a> <ol> - <li> + <li style="display: none; "> <a href="#event-anchor">eventName</a> </li> </ol> @@ -343,16 +343,16 @@ <!-- /TABLE OF CONTENTS --> <!-- Standard content lead-in for experimental API pages --> - <p id="classSummary"> + <p id="classSummary" style="display: none; "> For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page. </p> <!-- STATIC CONTENT PLACEHOLDER --> <div id="static"><p id="classSummary"> -Use the <code>chrome.experimental.tts</code> module to play synthesized +Use the <code>chrome.tts</code> module to play synthesized text-to-speech (TTS) from your extension or packaged app. See also the related -<a href="experimental.ttsEngine.html">experimental.ttsEngine</a> +<a href="ttsEngine.html">ttsEngine</a> module, which allows an extension to implement a speech engine. </p> @@ -364,10 +364,11 @@ group.</p> <h2 id="overview">Overview</h2> -<p>To enable this experimental API, visit -<b>chrome://flags</b> and enable <b>Experimental Extension APIs</b>. +<p>You must declare the "tts" permission +in your extension's manifest to use this API. +</p> -</p><p>Chrome provides native support for speech on Windows (using SAPI +<p>Chrome provides native support for speech on Windows (using SAPI 5), Mac OS X, and Chrome OS, using speech synthesis capabilities provided by the operating system. On all platforms, the user can install extensions that register themselves as alternative speech @@ -378,21 +379,21 @@ engines.</p> <p>Call <code>speak()</code> from your extension or packaged app to speak. For example:</p> -<pre>chrome.experimental.tts.speak('Hello, world.');</pre> +<pre>chrome.tts.speak('Hello, world.');</pre> <p>To stop speaking immediately, just call <code>stop()</code>: -</p><pre>chrome.experimental.tts.stop();</pre> +</p><pre>chrome.tts.stop();</pre> <p>You can provide options that control various properties of the speech, such as its rate, pitch, and more. For example:</p> -<pre>chrome.experimental.tts.speak('Hello, world.', {'rate': 2.0});</pre> +<pre>chrome.tts.speak('Hello, world.', {'rate': 2.0});</pre> <p>It's also a good idea to specify the language so that a synthesizer supporting that language (and regional dialect, if applicable) is chosen.</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( 'Hello, world.', {'lang': 'en-US', 'rate': 2.0});</pre> <p>By default, each call to <code>speak()</code> interrupts any @@ -402,9 +403,9 @@ addition, you can use the <code>enqueue</code> option to cause this utterance to be added to a queue of utterances that will be spoken when the current utterance has finished.</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( 'Speak this first.'); -chrome.experimental.tts.speak( +chrome.tts.speak( 'Speak this next, when the first sentence is done.', {'enqueue': true}); </pre> @@ -418,7 +419,7 @@ the callback, check <a href="extension.html#property-lastError">chrome.extension.lastError</a> to see if there were any errors.</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( utterance, options, function() { @@ -439,7 +440,7 @@ described below.</p> <p>To get more real-time information about the status of synthesized speech, pass an event listener in the options to <code>speak()</code>, like this:</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( utterance, { onEvent: function(event) { @@ -501,7 +502,7 @@ fragment.</p> <p>For example:</p> -<pre>chrome.experimental.tts.speak( +<pre>chrome.tts.speak( '<?xml version="1.0"?>' + '<speak>' + ' The <emphasis>second</emphasis> ' + @@ -527,7 +528,7 @@ the appropriate voice, or to present the user with a list of choices.</p> a function that receives an array of <code>TtsVoice</code> objects as its argument:</p> -<pre>chrome.experimental.tts.getVoices( +<pre>chrome.tts.getVoices( function(voices) { for (var i = 0; i < voices.length; i++) { console.log('Voice ' + i + ':'); @@ -543,7 +544,7 @@ argument:</p> <!-- API PAGE --> <div class="apiPage"> <a name="apiReference"></a> - <h2>API reference: chrome.experimental.tts</h2> + <h2>API reference: chrome.tts</h2> <!-- PROPERTIES --> <div class="apiGroup" style="display: none; "> @@ -575,7 +576,7 @@ argument:</p> <div class="summary"><span style="display: none; ">void</span> <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.tts.getVoices</span>(<span class="optional"><span style="display: none; ">, </span><span>function</span> + <span>chrome.tts.getVoices</span>(<span class="optional"><span style="display: none; ">, </span><span>function</span> <var><span>callback</span></var></span>)</div> <div class="description"> @@ -702,7 +703,7 @@ argument:</p> <span> array of <span><span> <span> - <a href="experimental.tts.html#type-TtsVoice">TtsVoice</a> + <a href="tts.html#type-TtsVoice">TtsVoice</a> </span> <span style="display: none; "> <span> @@ -725,7 +726,7 @@ argument:</p> <dd class="todo" style="display: none; "> Undocumented. </dd> - <dd>Array of <a href="experimental.tts.html#type-TtsVoice">TtsVoice</a> objects representing the available voices for speech synthesis.</dd> + <dd>Array of <a href="tts.html#type-TtsVoice">TtsVoice</a> objects representing the available voices for speech synthesis.</dd> <dd style="display: none; "> This parameter was added in version <b><span></span></b>. @@ -782,7 +783,7 @@ argument:</p> <div class="summary"><span style="display: none; ">void</span> <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.tts.isSpeaking</span>(<span class="optional"><span style="display: none; ">, </span><span>function</span> + <span>chrome.tts.isSpeaking</span>(<span class="optional"><span style="display: none; ">, </span><span>function</span> <var><span>callback</span></var></span>)</div> <div class="description"> @@ -978,7 +979,7 @@ argument:</p> <div class="summary"><span style="display: none; ">void</span> <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.tts.speak</span>(<span class="null"><span style="display: none; ">, </span><span>string</span> + <span>chrome.tts.speak</span>(<span class="null"><span style="display: none; ">, </span><span>string</span> <var><span>utterance</span></var></span><span class="optional"><span>, </span><span>object</span> <var><span>options</span></var></span><span class="optional"><span>, </span><span>function</span> <var><span>callback</span></var></span>)</div> @@ -1885,7 +1886,7 @@ argument:</p> <span class="enum" style="display: none; ">enumerated</span> <span id="typeTemplate"> <span> - <a href="experimental.tts.html#type-TtsEvent">TtsEvent</a> + <a href="tts.html#type-TtsEvent">TtsEvent</a> </span> <span style="display: none; "> <span> @@ -2085,7 +2086,7 @@ argument:</p> <div class="summary"><span style="display: none; ">void</span> <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.tts.stop</span>(<span style="display: none; "><span>, </span><span></span> + <span>chrome.tts.stop</span>(<span style="display: none; "><span>, </span><span></span> <var><span></span></var></span>)</div> <div class="description"> @@ -2148,11 +2149,11 @@ argument:</p> </div> <!-- /apiGroup --> <!-- EVENTS --> - <div id="eventsTemplate" class="apiGroup" style="display: none; "> - <a></a> + <div id="eventsTemplate" class="apiGroup"> + <a name="global-events"></a> <h3>Events</h3> <!-- iterates over all events --> - <div class="apiItem"> + <div class="apiItem" style="display: none; "> <a></a> <h4>event name</h4> diff --git a/chrome/common/extensions/docs/experimental.ttsEngine.html b/chrome/common/extensions/docs/ttsEngine.html index 106f7e0..ff510bb 100644 --- a/chrome/common/extensions/docs/experimental.ttsEngine.html +++ b/chrome/common/extensions/docs/ttsEngine.html @@ -16,7 +16,7 @@ <script type="text/javascript" src="js/api_page_generator.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> <script type="text/javascript" src="js/sidebar.js"></script> - <title>chrome.experimental.ttsEngine - Google Chrome Extensions - Google Code</title></head> + <title>chrome.ttsEngine - Google Chrome Extensions - Google Code</title></head> <body> <div id="gc-container" class="labs"> <div id="devModeWarning"> You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files. @@ -251,7 +251,7 @@ <div class="g-unit" id="gc-pagecontent"> <div id="pageTitle"> - <h1 class="page_title">chrome.experimental.ttsEngine</h1> + <h1 class="page_title">chrome.ttsEngine</h1> </div> <!-- TABLE OF CONTENTS --> <div id="toc"> @@ -280,7 +280,7 @@ </ol> </li> <li> - <a href="#apiReference">API reference: chrome.experimental.ttsEngine</a> + <a href="#apiReference">API reference: chrome.ttsEngine</a> <ol> <li style="display: none; "> <a href="#properties">Properties</a> @@ -301,9 +301,7 @@ <li> <a href="#global-events">Events</a> <ol> - <li style="display: none; "> - <a href="#event-anchor">eventName</a> - </li><li> + <li> <a href="#event-onSpeak">onSpeak</a> </li><li> <a href="#event-onStop">onStop</a> @@ -325,18 +323,18 @@ <!-- /TABLE OF CONTENTS --> <!-- Standard content lead-in for experimental API pages --> - <p id="classSummary"> + <p id="classSummary" style="display: none; "> For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page. </p> <!-- STATIC CONTENT PLACEHOLDER --> <div id="static"><p id="classSummary"> -Use the <code>chrome.experimental.ttsEngine</code> module to +Use the <code>chrome.ttsEngine</code> module to implement a text-to-speech (TTS) engine using an extension. If your extension registers using this API, it will receive events containing an utterance to be spoken and other parameters when any extension or packaged app uses the -<a href="experimental.tts.html">experimental.tts</a> +<a href="tts.html">tts</a> module to generate speech. Your extension can then use any available web technology to synthesize and output the speech, and send events back to the calling function to report the status. @@ -350,13 +348,10 @@ group.</p> <h2 id="overview">Overview</h2> -<p>To enable this experimental API, visit -<b>chrome://flags</b> and enable <b>Experimental Extension APIs</b>. - -</p><p>An extension can register itself as a speech engine. By doing so, it +<p>An extension can register itself as a speech engine. By doing so, it can intercept some or all calls to functions such as -<a href="experimental.tts.html#method-speak"><code>speak()</code></a> and -<a href="experimental.tts.html#method-stop"><code>stop()</code></a> +<a href="tts.html#method-speak"><code>speak()</code></a> and +<a href="tts.html#method-stop"><code>stop()</code></a> and provide an alternate implementation. Extensions are free to use any available web technology to provide speech, including streaming audio from a server, HTML5 audio, @@ -366,13 +361,14 @@ send them as log messages to a remote server.</p> <h2 id="manifest">Manifest</h2> -<p>To implement a TTS engine, an extension must first declare all voices +<p>To implement a TTS engine, an extension must +declare the "ttsEngine" permission and then declare all voices it provides in the extension manifest, like this:</p> <pre>{ "name": "My TTS Engine", "version": "1.0", - <b>"permissions": ["experimental"], + <b>"permissions": ["ttsEngine"], "tts_engine": { "voices": [ { @@ -453,7 +449,7 @@ not sent by the speech engine; they are generated automatically by Chrome.</p> <p>Text-to-speech clients can get the voice information from your extension's manifest by calling -<a href="experimental.tts.html#method-getVoices">getVoices()</a>, +<a href="tts.html#method-getVoices">getVoices()</a>, assuming you've registered speech event listeners as described below.</p> <h2 id="handling_speech_events">Handling speech events</h2> @@ -474,8 +470,8 @@ var stopListener = function() { // (stop all speech) }; -chrome.experimental.ttsEngine.onSpeak.addListener(speakListener); -chrome.experimental.ttsEngine.onStop.addListener(stopListener);</pre> +chrome.ttsEngine.onSpeak.addListener(speakListener); +chrome.ttsEngine.onStop.addListener(stopListener);</pre> <p class="warning"> <b>Important:</b> @@ -494,7 +490,7 @@ dynamically decide whether to handle it.</p> <!-- API PAGE --> <div class="apiPage"> <a name="apiReference"></a> - <h2>API reference: chrome.experimental.ttsEngine</h2> + <h2>API reference: chrome.ttsEngine</h2> <!-- PROPERTIES --> <div class="apiGroup" style="display: none; "> @@ -595,60 +591,13 @@ dynamically decide whether to handle it.</p> <a name="global-events"></a> <h3>Events</h3> <!-- iterates over all events --> - <div class="apiItem" style="display: none; "> - <a></a> - <h4>event name</h4> - - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span class="subdued">chrome.bookmarks</span><span>onEvent</span><span class="subdued">.addListener</span>(function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span><span>, Type opt_param1, Type opt_param2</span>)); - </div> - - <div class="description"> - <p class="todo">Undocumented.</p> - <p> - A description from the json schema def of the event goes here. - </p> - - <!-- LISTENER PARAMETERS --> - <div> - <h4>Listener parameters</h4> - <dl> - <div> - <div> - </div> - </div> - </dl> - </div> - - <!-- EXTRA PARAMETERS --> - <div> - <h4>Extra parameters to addListener</h4> - <dl> - <div> - <div> - </div> - </div> - </dl> - </div> - - <!-- LISTENER RETURN VALUE --> - <h4>Listener returns</h4> - <dl> - <div> - <div> - </div> - </div> - </dl> - - </div> <!-- /description --> - </div><div class="apiItem"> + <div class="apiItem"> <a name="event-onSpeak"></a> <h4>onSpeak</h4> <div class="summary"> <!-- Note: intentionally longer 80 columns --> - <span class="subdued">chrome.experimental.ttsEngine.</span><span>onSpeak</span><span class="subdued">.addListener</span>(function(<span>string utterance, object options, function sendTtsEvent</span>) <span class="subdued">{...}</span><span></span>)); + <span class="subdued">chrome.ttsEngine.</span><span>onSpeak</span><span class="subdued">.addListener</span>(function(<span>string utterance, object options, function sendTtsEvent</span>) <span class="subdued">{...}</span><span></span>)); </div> <div class="description"> @@ -1280,7 +1229,7 @@ dynamically decide whether to handle it.</p> <span class="enum" style="display: none; ">enumerated</span> <span id="typeTemplate"> <span> - <a href="experimental.tts.html#type-TtsEvent">TtsEvent</a> + <a href="tts.html#type-TtsEvent">TtsEvent</a> </span> <span style="display: none; "> <span> @@ -1372,7 +1321,7 @@ dynamically decide whether to handle it.</p> <div class="summary"> <!-- Note: intentionally longer 80 columns --> - <span class="subdued">chrome.experimental.ttsEngine.</span><span>onStop</span><span class="subdued">.addListener</span>(function(<span></span>) <span class="subdued">{...}</span><span></span>)); + <span class="subdued">chrome.ttsEngine.</span><span>onStop</span><span class="subdued">.addListener</span>(function(<span></span>) <span class="subdued">{...}</span><span></span>)); </div> <div class="description"> diff --git a/chrome/common/extensions/extension_permission_set.cc b/chrome/common/extensions/extension_permission_set.cc index 8d27abd..0fbf2cd 100644 --- a/chrome/common/extensions/extension_permission_set.cc +++ b/chrome/common/extensions/extension_permission_set.cc @@ -299,6 +299,13 @@ ExtensionPermissionsInfo::ExtensionPermissionsInfo() IDS_EXTENSION_PROMPT_WARNING_TABS, ExtensionPermissionMessage::kTabs); RegisterExtensionPermission( + ExtensionAPIPermission::kTts, "tts", 0, + ExtensionPermissionMessage::kNone); + RegisterExtensionPermission( + ExtensionAPIPermission::kTtsEngine, "ttsEngine", + IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE, + ExtensionPermissionMessage::kTtsEngine); + RegisterExtensionPermission( ExtensionAPIPermission::kWebSocketProxyPrivate, "webSocketProxyPrivate", 0, ExtensionPermissionMessage::kNone); diff --git a/chrome/common/extensions/extension_permission_set.h b/chrome/common/extensions/extension_permission_set.h index d3884e4..c9a67e9 100644 --- a/chrome/common/extensions/extension_permission_set.h +++ b/chrome/common/extensions/extension_permission_set.h @@ -44,6 +44,7 @@ class ExtensionPermissionMessage { kHostsAll, kFullAccess, kClipboard, + kTtsEngine, kEnumBoundary }; @@ -113,6 +114,8 @@ class ExtensionAPIPermission { kNotification, kProxy, kTab, + kTts, + kTtsEngine, kUnlimitedStorage, kWebSocketProxyPrivate, kWebstorePrivate, diff --git a/chrome/common/extensions/extension_permission_set_unittest.cc b/chrome/common/extensions/extension_permission_set_unittest.cc index ebfb419..b1a08a3 100644 --- a/chrome/common/extensions/extension_permission_set_unittest.cc +++ b/chrome/common/extensions/extension_permission_set_unittest.cc @@ -457,6 +457,7 @@ TEST(ExtensionPermissionSetTest, PermissionMessages) { skip.insert(ExtensionAPIPermission::kNotification); skip.insert(ExtensionAPIPermission::kUnlimitedStorage); skip.insert(ExtensionAPIPermission::kContentSettings); + skip.insert(ExtensionAPIPermission::kTts); // TODO(erikkay) add a string for this permission. skip.insert(ExtensionAPIPermission::kBackground); diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js index 29ae9a5..741d2fd 100644 --- a/chrome/renderer/resources/extension_process_bindings.js +++ b/chrome/renderer/resources/extension_process_bindings.js @@ -532,16 +532,16 @@ var chrome = chrome || {}; function setupTtsEvents() { chromeHidden.tts = {}; chromeHidden.tts.handlers = {}; - chrome.experimental.ttsEngine.onSpeak.dispatch = + chrome.ttsEngine.onSpeak.dispatch = function(text, options, requestId) { var sendTtsEvent = function(event) { - chrome.experimental.ttsEngine.sendTtsEvent(requestId, event); + chrome.ttsEngine.sendTtsEvent(requestId, event); }; chrome.Event.prototype.dispatch.apply( this, [text, options, sendTtsEvent]); }; try { - chrome.experimental.ttsEngine.onEvent.addListener( + chrome.tts.onEvent.addListener( function(event) { var eventHandler = chromeHidden.tts.handlers[event.srcId]; if (eventHandler) { @@ -1008,7 +1008,7 @@ var chrome = chrome || {}; return [requestId, suggestions]; }; - apiFunctions["experimental.tts.speak"].handleRequest = function() { + apiFunctions["tts.speak"].handleRequest = function() { var args = arguments; if (args.length > 1 && args[1] && args[1].onEvent) { var id = GetNextTtsEventId(); @@ -1036,9 +1036,9 @@ var chrome = chrome || {}; if (!chrome.experimental.accessibility) chrome.experimental.accessibility = {}; - if (!chrome.experimental.tts) - chrome.experimental.tts = {}; + if (!chrome.tts) + chrome.tts = {}; - if (!chrome.experimental.ttsEngine) - chrome.experimental.ttsEngine = {}; + if (!chrome.ttsEngine) + chrome.ttsEngine = {}; })(); diff --git a/chrome/renderer/resources/renderer_extension_bindings.js b/chrome/renderer/resources/renderer_extension_bindings.js index 8f78ff5..6935c1d 100644 --- a/chrome/renderer/resources/renderer_extension_bindings.js +++ b/chrome/renderer/resources/renderer_extension_bindings.js @@ -314,8 +314,6 @@ var chrome = chrome || {}; "experimental.processes", "experimental.rlz", "experimental.sidebar", - "experimental.tts", - "experimental.ttsEngine", "experimental.webNavigation", "experimental.webRequest", "fileBrowserHandler", @@ -333,6 +331,8 @@ var chrome = chrome || {}; "tabs", "test", "toolstrip", + "tts", + "ttsEngine", "types", "webSocketProxyPrivate", "webstorePrivate", diff --git a/chrome/test/data/extensions/api_test/tts/chromeos/manifest.json b/chrome/test/data/extensions/api_test/tts/chromeos/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/chromeos/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/chromeos/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/chromeos/test.js b/chrome/test/data/extensions/api_test/tts/chromeos/test.js index fabccfe..e46f968 100644 --- a/chrome/test/data/extensions/api_test/tts/chromeos/test.js +++ b/chrome/test/data/extensions/api_test/tts/chromeos/test.js @@ -8,7 +8,7 @@ chrome.test.runTests([ function testChromeOsSpeech() { var callbacks = 0; - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 1', { 'onEvent': function(event) { @@ -19,7 +19,7 @@ chrome.test.runTests([ function() { chrome.test.assertNoLastError(); }); - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 2', { 'onEvent': function(event) { diff --git a/chrome/test/data/extensions/api_test/tts/enqueue/manifest.json b/chrome/test/data/extensions/api_test/tts/enqueue/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/enqueue/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/enqueue/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/enqueue/test.js b/chrome/test/data/extensions/api_test/tts/enqueue/test.js index 8ea4a8e..1fb1ce3 100644 --- a/chrome/test/data/extensions/api_test/tts/enqueue/test.js +++ b/chrome/test/data/extensions/api_test/tts/enqueue/test.js @@ -8,7 +8,7 @@ chrome.test.runTests([ function testEnqueue() { var callbacks = 0; - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 1', { 'enqueue': true, @@ -21,7 +21,7 @@ chrome.test.runTests([ chrome.test.assertNoLastError(); callbacks++; }); - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 2', { 'enqueue': true, diff --git a/chrome/test/data/extensions/api_test/tts/interrupt/manifest.json b/chrome/test/data/extensions/api_test/tts/interrupt/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/interrupt/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/interrupt/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/interrupt/test.js b/chrome/test/data/extensions/api_test/tts/interrupt/test.js index ec27186..2590907 100644 --- a/chrome/test/data/extensions/api_test/tts/interrupt/test.js +++ b/chrome/test/data/extensions/api_test/tts/interrupt/test.js @@ -8,7 +8,7 @@ chrome.test.runTests([ function testInterrupt() { var callbacks = 0; - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 1', { 'enqueue': false, @@ -21,7 +21,7 @@ chrome.test.runTests([ chrome.test.assertNoLastError(); callbacks++; }); - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 2', { 'enqueue': false, diff --git a/chrome/test/data/extensions/api_test/tts/optional_args/manifest.json b/chrome/test/data/extensions/api_test/tts/optional_args/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/optional_args/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/optional_args/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/optional_args/test.js b/chrome/test/data/extensions/api_test/tts/optional_args/test.js index 6759796..c18a44e 100644 --- a/chrome/test/data/extensions/api_test/tts/optional_args/test.js +++ b/chrome/test/data/extensions/api_test/tts/optional_args/test.js @@ -8,43 +8,43 @@ chrome.test.runTests([ function testSpeakWithOptionalArgs() { // This will fail. try { - chrome.experimental.tts.speak(); + chrome.tts.speak(); chrome.test.fail(); } catch (e) { } // This will succeed but nothing will be spoken. - chrome.experimental.tts.speak(''); + chrome.tts.speak(''); // This will succeed. - chrome.experimental.tts.speak('Alpha'); + chrome.tts.speak('Alpha'); // This will fail. try { - chrome.experimental.tts.speak(null); + chrome.tts.speak(null); chrome.test.fail(); } catch (e) { } // This will succeed. - chrome.experimental.tts.speak('Bravo', {}); + chrome.tts.speak('Bravo', {}); // This will succeed. - chrome.experimental.tts.speak('Charlie', null); + chrome.tts.speak('Charlie', null); // This will fail. try { - chrome.experimental.tts.speak('Delta', 'foo'); + chrome.tts.speak('Delta', 'foo'); chrome.test.fail(); } catch (e) { } // This will succeed. - chrome.experimental.tts.speak('Echo', {}, function() {}); + chrome.tts.speak('Echo', {}, function() {}); // This will fail. try { - chrome.experimental.tts.speak('Foxtrot', {}, 'foo'); + chrome.tts.speak('Foxtrot', {}, 'foo'); chrome.test.fail(); } catch (e) { } diff --git a/chrome/test/data/extensions/api_test/tts/queue_interrupt/manifest.json b/chrome/test/data/extensions/api_test/tts/queue_interrupt/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/queue_interrupt/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/queue_interrupt/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/queue_interrupt/test.js b/chrome/test/data/extensions/api_test/tts/queue_interrupt/test.js index 606b88b..c63c4b0 100644 --- a/chrome/test/data/extensions/api_test/tts/queue_interrupt/test.js +++ b/chrome/test/data/extensions/api_test/tts/queue_interrupt/test.js @@ -12,7 +12,7 @@ chrome.test.runTests([ // at all. The test expectations in extension_tts_apitest.cc ensure that // the first call to tts.speak keeps going until it's interrupted. var callbacks = 0; - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 1', { 'enqueue': true, @@ -25,7 +25,7 @@ chrome.test.runTests([ chrome.test.assertNoLastError(); callbacks++; }); - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 2', { 'enqueue': true, @@ -37,7 +37,7 @@ chrome.test.runTests([ chrome.test.assertNoLastError(); callbacks++; }); - chrome.experimental.tts.speak( + chrome.tts.speak( 'text 3', { 'enqueue': false, diff --git a/chrome/test/data/extensions/api_test/tts/speak_error/manifest.json b/chrome/test/data/extensions/api_test/tts/speak_error/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/speak_error/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/speak_error/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/speak_error/test.js b/chrome/test/data/extensions/api_test/tts/speak_error/test.js index 07b21e2..8ab9165 100644 --- a/chrome/test/data/extensions/api_test/tts/speak_error/test.js +++ b/chrome/test/data/extensions/api_test/tts/speak_error/test.js @@ -8,7 +8,7 @@ chrome.test.runTests([ function testSpeakError() { var callbacks = 0; - chrome.experimental.tts.speak( + chrome.tts.speak( 'first try', { 'enqueue': true, @@ -21,7 +21,7 @@ chrome.test.runTests([ function() { chrome.test.assertNoLastError(); }); - chrome.experimental.tts.speak( + chrome.tts.speak( 'second try', { 'enqueue': true, diff --git a/chrome/test/data/extensions/api_test/tts/speak_once/manifest.json b/chrome/test/data/extensions/api_test/tts/speak_once/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/speak_once/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/speak_once/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/speak_once/test.js b/chrome/test/data/extensions/api_test/tts/speak_once/test.js index d0f0ee4..9546ea8 100644 --- a/chrome/test/data/extensions/api_test/tts/speak_once/test.js +++ b/chrome/test/data/extensions/api_test/tts/speak_once/test.js @@ -11,7 +11,7 @@ chrome.test.runTests([ chrome.test.assertEq(11, event.charIndex); chrome.test.succeed(); } - chrome.experimental.tts.speak( + chrome.tts.speak( 'hello world', {'onEvent': eventListener}, function() { diff --git a/chrome/test/data/extensions/api_test/tts/word_callbacks/manifest.json b/chrome/test/data/extensions/api_test/tts/word_callbacks/manifest.json index a43bc3d..1d82150 100644 --- a/chrome/test/data/extensions/api_test/tts/word_callbacks/manifest.json +++ b/chrome/test/data/extensions/api_test/tts/word_callbacks/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.tts", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.tts API", "background_page": "test.html", - "permissions": ["experimental"] + "permissions": ["tts"] } diff --git a/chrome/test/data/extensions/api_test/tts/word_callbacks/test.js b/chrome/test/data/extensions/api_test/tts/word_callbacks/test.js index e2aafef..e4cea54 100644 --- a/chrome/test/data/extensions/api_test/tts/word_callbacks/test.js +++ b/chrome/test/data/extensions/api_test/tts/word_callbacks/test.js @@ -8,7 +8,7 @@ chrome.test.runTests([ function testWordCallbacks() { var callbacks = 0; - chrome.experimental.tts.speak( + chrome.tts.speak( 'one two three', { 'onEvent': function(event) { diff --git a/chrome/test/data/extensions/api_test/tts_engine/engine_error/manifest.json b/chrome/test/data/extensions/api_test/tts_engine/engine_error/manifest.json index 39ac616..12733686 100644 --- a/chrome/test/data/extensions/api_test/tts_engine/engine_error/manifest.json +++ b/chrome/test/data/extensions/api_test/tts_engine/engine_error/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.ttsEngine", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.ttsEngine API", "background_page": "test.html", "tts_engine": { "voices": [ @@ -12,5 +12,5 @@ } ] }, - "permissions": ["experimental"] + "permissions": ["tts", "ttsEngine"] } diff --git a/chrome/test/data/extensions/api_test/tts_engine/engine_error/test.js b/chrome/test/data/extensions/api_test/tts_engine/engine_error/test.js index 2d0e894..95eb001 100644 --- a/chrome/test/data/extensions/api_test/tts_engine/engine_error/test.js +++ b/chrome/test/data/extensions/api_test/tts_engine/engine_error/test.js @@ -5,14 +5,6 @@ // TTS api test for Chrome on ChromeOS. // browser_tests.exe --gtest_filter="TtsApiTest.*" -if (!chrome.tts) { - chrome.tts = chrome.experimental.tts; -} - -if (!chrome.ttsEngine) { - chrome.ttsEngine = chrome.experimental.ttsEngine; -} - chrome.test.runTests([ function testTtsEngineError() { // Register listeners for speech functions, but have speak return an diff --git a/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/manifest.json b/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/manifest.json index 7d28357..77276ed 100644 --- a/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/manifest.json +++ b/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.ttsEngine", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.ttsEngine API", "background_page": "test.html", "tts_engine": { "voices": [ @@ -12,5 +12,5 @@ } ] }, - "permissions": ["experimental"] + "permissions": ["tts", "ttsEngine"] } diff --git a/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/test.js b/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/test.js index 55fafd7..023e102 100644 --- a/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/test.js +++ b/chrome/test/data/extensions/api_test/tts_engine/engine_word_callbacks/test.js @@ -5,14 +5,6 @@ // TTS api test for Chrome on ChromeOS. // browser_tests.exe --gtest_filter="TtsApiTest.*" -if (!chrome.tts) { - chrome.tts = chrome.experimental.tts; -} - -if (!chrome.ttsEngine) { - chrome.ttsEngine = chrome.experimental.ttsEngine; -} - chrome.test.runTests([ function testWordCallbacks() { // Register listeners for speech functions, enabling this extension diff --git a/chrome/test/data/extensions/api_test/tts_engine/register_engine/manifest.json b/chrome/test/data/extensions/api_test/tts_engine/register_engine/manifest.json index 77b5f03..3c65b09 100644 --- a/chrome/test/data/extensions/api_test/tts_engine/register_engine/manifest.json +++ b/chrome/test/data/extensions/api_test/tts_engine/register_engine/manifest.json @@ -1,7 +1,7 @@ { - "name": "chrome.experimental.tts", + "name": "chrome.ttsEngine", "version": "0.1", - "description": "browser test for chrome.experimental.tts API", + "description": "browser test for chrome.ttsEngine API", "background_page": "test.html", "tts_engine": { "voices": [ @@ -18,5 +18,5 @@ } ] }, - "permissions": ["experimental"] + "permissions": ["tts", "ttsEngine"] } diff --git a/chrome/test/data/extensions/api_test/tts_engine/register_engine/test.js b/chrome/test/data/extensions/api_test/tts_engine/register_engine/test.js index 64bae24..03fb0345 100644 --- a/chrome/test/data/extensions/api_test/tts_engine/register_engine/test.js +++ b/chrome/test/data/extensions/api_test/tts_engine/register_engine/test.js @@ -5,14 +5,6 @@ // TTS api test for Chrome on ChromeOS. // browser_tests.exe --gtest_filter="TtsApiTest.*" -if (!chrome.tts) { - chrome.tts = chrome.experimental.tts; -} - -if (!chrome.ttsEngine) { - chrome.ttsEngine = chrome.experimental.ttsEngine; -} - chrome.test.runTests([ function testNoListeners() { // This call should go to native speech because we haven't registered |