summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorkurrik@chromium.org <kurrik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-08 21:48:41 +0000
committerkurrik@chromium.org <kurrik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-08 21:48:41 +0000
commitbafa0d5fd999993c5d106538c1dd9ea19d410de7 (patch)
tree754c2a534de2faef500c65425d2460b99673cf7b /chrome
parentea319e49d70136abf8c91a0688e48230f4fbd3d3 (diff)
downloadchromium_src-bafa0d5fd999993c5d106538c1dd9ea19d410de7.zip
chromium_src-bafa0d5fd999993c5d106538c1dd9ea19d410de7.tar.gz
chromium_src-bafa0d5fd999993c5d106538c1dd9ea19d410de7.tar.bz2
Adding a sample for searching through the Chrome extension docs using omnibox.
Moves the existing simple omnibox sample to its own directory. Regenerates samples.html samples.json and zips for the two moved samples. Removes the old omnibox.zip BUG=57886 TEST=Sample Exists Review URL: http://codereview.chromium.org/4508005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65432 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/extension-docs.zipbin0 -> 74406 bytes
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/extension-docs/background.html466
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-128.pngbin0 -> 8449 bytes
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-16.pngbin0 -> 47675 bytes
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/extension-docs/manifest.json16
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/simple-example.zip (renamed from chrome/common/extensions/docs/examples/api/omnibox.zip)bin1101 -> 1208 bytes
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/simple-example/background.html (renamed from chrome/common/extensions/docs/examples/api/omnibox/background.html)0
-rw-r--r--chrome/common/extensions/docs/examples/api/omnibox/simple-example/manifest.json (renamed from chrome/common/extensions/docs/examples/api/omnibox/manifest.json)1
-rw-r--r--chrome/common/extensions/docs/samples.html64
-rw-r--r--chrome/common/extensions/docs/samples.json46
10 files changed, 580 insertions, 13 deletions
diff --git a/chrome/common/extensions/docs/examples/api/omnibox/extension-docs.zip b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs.zip
new file mode 100644
index 0000000..7e81cea
--- /dev/null
+++ b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs.zip
Binary files differ
diff --git a/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/background.html b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/background.html
new file mode 100644
index 0000000..19fcc45
--- /dev/null
+++ b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/background.html
@@ -0,0 +1,466 @@
+<!DOCTYPE html>
+<!--
+ * Copyright (c) 2010 The Chromium Authors. All rights reserved. Use of this
+ * source code is governed by a BSD-style license that can be found in the
+ * LICENSE file.
+-->
+<html>
+ <head>
+ </head>
+ <body>
+ <script>
+ /**
+ * Allows for binding callbacks to a specific scope.
+ * @param {Object} scope Scope to bind to.
+ * @returns {Function} A wrapped call to this function.
+ */
+ Function.prototype.bind = function(scope) {
+ var func = this;
+ return function() {
+ return func.apply(scope, arguments);
+ };
+ };
+
+ //////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Holds the search index and exposes operations to search the API docs.
+ * @constructor
+ */
+ function APISearchCorpus() {
+ this.corpus_ = [];
+ };
+
+ /**
+ * Adds an entry to the index.
+ * @param {String} name Name of the function (e.g. chrome.tabs.get).
+ * @param {String} url Url to the documentation.
+ * @param {String} desc Description (optional).
+ * @param {String} type The type of entry (e.g. method, event).
+ */
+ APISearchCorpus.prototype.addEntry = function(name, url, desc, type) {
+ this.corpus_.push({
+ 'name' : name,
+ 'url' : url,
+ 'ranges' : [],
+ 'description' : desc,
+ 'type' : type
+ });
+ };
+
+ /**
+ * Locates a match from the supplied keywords against text.
+ *
+ * Keywords are matched in the order supplied, and a non-overlapping
+ * search is used. The ranges are returned in a way that is easily
+ * converted to the style array required by the omnibox API.
+ *
+ * @param {Array.<String>} keywords A list of keywords to check.
+ * @param {String} name The name to search against.
+ * @returns {Array.<Array.<number>>|null} A list of indexes corresponding
+ * to matches, or null if no match was found.
+ */
+ APISearchCorpus.prototype.findMatch_ = function(keywords, name) {
+ var ranges = [];
+ var indexFrom = 0;
+ for (var i = 0; i < keywords.length; i++) {
+ var keyword = keywords[i].toLowerCase();
+ var start = name.indexOf(keyword, indexFrom);
+ if (start == -1) {
+ return null;
+ }
+ var end = start + keyword.length;
+ ranges.push([start, end]);
+ indexFrom = end + 1;
+ }
+ return ranges;
+ };
+
+ /**
+ * Searches this corpus for the supplied text.
+ * @param {String} text Query text.
+ * @param {Number} limit Max results to return.
+ * @returns {Array.<Object>} A list of entries corresponding with
+ * matches (@see APISearchCorpus.findMatch_ for keyword search
+ * algorithm. Results are returned in a sorted order, first by
+ * length, then alphabetically by name. An exact match will be
+ * returned first.
+ */
+ APISearchCorpus.prototype.search = function(text, limit) {
+ var results = [];
+ var match = null;
+ if (!text || text.length == 0) {
+ return this.corpus_.slice(0, limit); // No text, start listing APIs.
+ }
+ var searchText = text.toLowerCase();
+ var keywords = searchText.split(' ');
+ for (var i = 0; i < this.corpus_.length; i++) {
+ var name = this.corpus_[i]['name'].toLowerCase();
+ if (results.length < limit) {
+ var result = this.findMatch_(keywords, name);
+ if (result) {
+ this.corpus_[i]['ranges'] = result;
+ results.push(this.corpus_[i]);
+ }
+ }
+ if (!match && searchText == name) {
+ match = this.corpus_[i]; // An exact match.
+ }
+ if (match && results.length >= limit) {
+ break; // Have an exact match and have reached the search limit.
+ }
+ }
+ if (match) {
+ results.unshift(match); // Add any exact match to the front.
+ }
+ return results;
+ };
+
+ /**
+ * Sorts the corpus according to name length, then name alphabetically.
+ */
+ APISearchCorpus.prototype.sort = function() {
+ function compareLength(a, b) {
+ return a['name'].length - b['name'].length;
+ };
+
+ function compareAlpha(a, b) {
+ if (a['name'] < b['name']) return -1;
+ if (a['name'] > b['name']) return 1;
+ return 0;
+ };
+
+ function compare(a, b) {
+ var result = compareLength(a, b);
+ if (result == 0) result = compareAlpha(a, b);
+ return result;
+ };
+
+ this.corpus_.sort(compare);
+ };
+
+ //////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Provides an interface to the Chrome Extensions documentation site.
+ * @param {APISearchCorpus} corpus The search corpus to populate.
+ * @constructor
+ */
+ function DocsManager(corpus) {
+ this.CODE_URL_PREFIX = 'http://code.google.com/chrome/extensions/';
+ this.API_MANIFEST_URL = [
+ 'http://src.chromium.org/viewvc/chrome/trunk/src/',
+ 'chrome/common/extensions/api/extension_api.json'
+ ].join('');
+ this.corpus_ = corpus;
+ };
+
+ /**
+ * Initiates a fetch of the docs and populates the corpus.
+ */
+ DocsManager.prototype.fetch = function() {
+ this.fetchApi_(this.onApi_.bind(this));
+ };
+
+ /**
+ * Retrieves the API manifest from cache or fetches a new one if none.
+ * @param {Function} callback The function to pass the parsed manifest
+ * data to.
+ */
+ DocsManager.prototype.fetchApi_ = function(callback) {
+ var currentCacheTime = this.getCacheTime_();
+ if (localStorage['cache-time'] && localStorage['cache']) {
+ var cacheTime = JSON.parse(localStorage['cache-time']);
+ if (cacheTime < currentCacheTime) {
+ callback(JSON.parse(localStorage['cache']));
+ return;
+ }
+ }
+ var xhr = new XMLHttpRequest();
+ xhr.addEventListener('readystatechange', function(evt) {
+ if (xhr.readyState == 4 && xhr.responseText) {
+ localStorage['cache-time'] = JSON.stringify(currentCacheTime);
+ localStorage['cache'] = xhr.responseText;
+ var json = JSON.parse(xhr.responseText);
+ callback(json);
+ }
+ });
+ xhr.open('GET', this.API_MANIFEST_URL, true);
+ xhr.send();
+ };
+
+ /**
+ * Returns a time which can be used to cache a manifest response.
+ * @returns {Number} A timestamp divided by the number of ms in a day,
+ * rounded to the nearest integer. This means the number should
+ * change only once per day, invalidating the cache that often.
+ */
+ DocsManager.prototype.getCacheTime_ = function() {
+ var time = new Date().getTime();
+ time = Math.round(time / (1000 * 60 * 60 * 24));
+ return time;
+ };
+
+ /**
+ * Returns an URL for the documentation given an API element.
+ * @param {String} namespace The namespace (e.g. tabs, windows).
+ * @param {String} type The type of element (e.g. event, method, type).
+ * @param {String} name The name of the element (e.g. onRemoved).
+ * @returns {String} An URL corresponding with the documentation for the
+ * given element.
+ */
+ DocsManager.prototype.getDocLink_ = function(namespace, type, name) {
+ var linkparts = [ this.CODE_URL_PREFIX, namespace, '.html' ];
+ if (type && name) {
+ linkparts.push('#', type, '-', name);
+ }
+ return linkparts.join('');
+ };
+
+ /**
+ * Returns a qualified name for an API element.
+ * @param {String} namespace The namespace (e.g. tabs, windows).
+ * @param {String} name The name of the element (e.g. onRemoved).
+ * @returns {String} A qualified API name (e.g. chrome.tabs.onRemoved).
+ */
+ DocsManager.prototype.getName_ = function(namespace, name) {
+ var nameparts = [ 'chrome', namespace ];
+ if (name) {
+ nameparts.push(name);
+ }
+ return nameparts.join('.');
+ };
+
+ /**
+ * Parses an API manifest data structure and populates the search index.
+ * @param {Object} api The api manifest, as a JSON-parsed object.
+ */
+ DocsManager.prototype.onApi_ = function(api) {
+ for (var i = 0; i < api.length; i++) {
+ var module = api[i];
+ if (module.nodoc) {
+ continue;
+ }
+ var ns = module.namespace;
+ var nsName = this.getName_(ns);
+ var nsUrl = this.getDocLink_(ns);
+ this.corpus_.addEntry(nsName, nsUrl, null, 'namespace');
+ this.parseAPIArray_('method', ns, module.functions);
+ this.parseAPIArray_('event', ns, module.events);
+ this.parseAPIArray_('type', ns, module.types);
+ this.parseAPIObject_('property', ns, module.properties);
+ this.corpus_.sort();
+ }
+ };
+
+ /**
+ * Parses an API manifest subsection which is formatted as an Array.
+ * @param {String} type The type of data (e.g. method, event, type).
+ * @param {String} ns The namespace (e.g. tabs, windows).
+ * @param {Array} list The list of API elements.
+ */
+ DocsManager.prototype.parseAPIArray_ = function(type, ns, list) {
+ if (!list) return;
+ for (var j = 0; j < list.length; j++) {
+ var item = list[j];
+ if (item.nodoc) continue;
+ var name = item.name || item.id;
+ var fullname = this.getName_(ns, name);
+ var url = this.getDocLink_(ns, type, name);
+ var description = item.description;
+ this.corpus_.addEntry(fullname, url, description, type);
+ }
+ };
+
+ /**
+ * Parses an API manifest subsection which is formatted as an Object.
+ * @param {String} type The type of data (e.g. property).
+ * @param {String} ns The namespace (e.g. tabs, windows).
+ * @param {Object} list The object containing API elements.
+ */
+ DocsManager.prototype.parseAPIObject_ = function(type, ns, list) {
+ for (var prop in list) {
+ if (list.hasOwnProperty(prop)) {
+ var name = this.getName_(ns, prop);
+ var url = this.getDocLink_(ns, type, prop);
+ var description = list[prop].description;
+ this.corpus_.addEntry(name, url, description, type);
+ }
+ }
+ };
+
+ //////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Manages text input into the omnibox and returns search results.
+ * @param {APISearchCorpus} Populated search corpus.
+ * @param {TabManager} Manager to use to open tabs.
+ * @constructor
+ */
+ function OmniboxManager(corpus, tabManager) {
+ this.SEPARATOR = ' - ';
+ this.corpus_ = corpus;
+ this.tabManager_ = tabManager;
+ chrome.experimental.omnibox.onInputChanged.addListener(
+ this.onChanged_.bind(this));
+ chrome.experimental.omnibox.onInputEntered.addListener(
+ this.onEntered_.bind(this));
+ };
+
+ /**
+ * Converts a corpus match to an object suitable for the omnibox API.
+ * @param {Object} match The match to convert.
+ * @returns {Object} A suggestion object formatted for the omnibox API.
+ */
+ OmniboxManager.prototype.matchToSuggestion_ = function(match) {
+ var styles = [ ];
+ var ranges = match['ranges'];
+ var desc = match['name'];
+ var name = match['name'];
+ var lastIndex = 0;
+ for (var i = 0; i < ranges.length; i++) {
+ styles.push(chrome.experimental.omnibox.styleMatch(ranges[i][0]));
+ styles.push(chrome.experimental.omnibox.styleNone(ranges[i][1]));
+ lastIndex = ranges[i][1];
+ }
+
+ if (match['type']) {
+ // Abusing the URL style a little, but want this to stand out.
+ desc = this.pushStyle_(styles, 'Url', desc, match['type']);
+ lastIndex = desc.length;
+ }
+ if (match['description']) {
+ desc = this.pushStyle_(styles, 'Dim', desc, match['description']);
+ lastIndex = desc.length;
+ }
+
+ if (lastIndex == desc.length) styles.pop();
+
+ return {
+ 'content' : name,
+ 'description' : desc,
+ 'descriptionStyles' : styles
+ };
+ };
+
+ /**
+ * Suggests a list of possible matches when omnibox text changes.
+ * @param {String} text Text input from the omnibox.
+ * @param {Function} suggest Callback to execute with a list of
+ * suggestion objects, if any matches were found.
+ */
+ OmniboxManager.prototype.onChanged_ = function(text, suggest) {
+ var matches = this.corpus_.search(text, 10);
+ var suggestions = [];
+ for (var i = 0; i < matches.length; i++) {
+ var suggestion = this.matchToSuggestion_(matches[i]);
+ suggestions.push(suggestion);
+ }
+ suggest(suggestions);
+ };
+
+ /**
+ * Opens the most appropriate URL when enter is pressed in the omnibox.
+ *
+ * Note that the entered text does not have to be exact - the first
+ * search result is automatically opened when enter is pressed.
+ *
+ * @param {String} text The text entered.
+ */
+ OmniboxManager.prototype.onEntered_ = function(text) {
+ var matches = this.corpus_.search(text, 1);
+ if (matches.length > 0) {
+ this.tabManager_.open(matches[0]['url']);
+ }
+ };
+
+ /**
+ * Helper function for constructing a suggestion style list.
+ *
+ * Adds a separator and text to a description, and modifies an array
+ * of styles so that the separator is not styled and the additional text
+ * obtains the requested style type.
+ *
+ * This method expects the list of styles to end with a styleNone style.
+ * It will modify the list so that the last element is a styleNone style.
+ * The last element will always be at the end of the returned string,
+ * which will throw an error unless it is removed before being passed
+ * to the API (this method is intended to be called a few times in a row).
+ * @see OmniboxManager.matchToSuggestion_ for code that removes this last
+ * entry.
+ *
+ * @param {Array.<Object>} styles An array of styles, in the format
+ * expected by the omnibox API.
+ * @param {String} type The style type to apply - must be one of
+ * "Dim", "Match", "None", and "Url".
+ * @param {String} desc The description text to append to and style.
+ * @param {String} text The text to append to the description.
+ * @returns {String} The description plus a separator and the supplied
+ * text, intended to overwrite the variable which was passed into
+ * this function as "desc".
+ */
+ OmniboxManager.prototype.pushStyle_ = function(styles, type, desc, text) {
+ desc += this.SEPARATOR;
+ styles.push(chrome.experimental.omnibox['style' + type](desc.length));
+ desc += text;
+ styles.push(chrome.experimental.omnibox.styleNone(desc.length));
+ return desc;
+ };
+
+ //////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Manages opening urls in tabs.
+ * @constructor
+ */
+ function TabManager() {
+ this.tab_ = null;
+ chrome.tabs.onRemoved.addListener(this.onRemoved_.bind(this));
+ };
+
+ /**
+ * When a tab is removed, see if it was opened by us and null out if yes.
+ * @param {Number} tabid ID of the removed tab.
+ */
+ TabManager.prototype.onRemoved_ = function(tabid) {
+ if (this.tab_ && tabid == this.tab_.id) this.tab_ = null;
+ };
+
+ /**
+ * When a tab opened by us is created, store it for future updates.
+ * @param {Tab} tab The tab which was just opened.
+ */
+ TabManager.prototype.onTab_ = function(tab) {
+ this.tab_ = tab;
+ };
+
+ /**
+ * Opens the supplied URL.
+ *
+ * The first time this method is called a new tab is created. Subsequent
+ * times this is called, the opened tab will be updated. If that tab
+ * is ever closed, then a new tab will be created for the next call.
+ *
+ * @param {String} url The URL to open.
+ */
+ TabManager.prototype.open = function(url) {
+ if (url) {
+ var args = { 'url' : url, 'selected' : true };
+ if (this.tab_) {
+ chrome.tabs.update(this.tab_.id, args);
+ } else {
+ chrome.tabs.create(args, this.onTab_.bind(this));
+ }
+ }
+ };
+
+ //////////////////////////////////////////////////////////////////////////
+
+ var corpus = new APISearchCorpus();
+ var docsManager = new DocsManager(corpus);
+ docsManager.fetch();
+ var tabManager = new TabManager();
+ var omnibox = new OmniboxManager(corpus, tabManager);
+ </script>
+ </body>
+</html>
diff --git a/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-128.png b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-128.png
new file mode 100644
index 0000000..c7e114f
--- /dev/null
+++ b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-128.png
Binary files differ
diff --git a/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-16.png b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-16.png
new file mode 100644
index 0000000..23b34a0
--- /dev/null
+++ b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/icon-16.png
Binary files differ
diff --git a/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/manifest.json b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/manifest.json
new file mode 100644
index 0000000..8e6b3b9
--- /dev/null
+++ b/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/manifest.json
@@ -0,0 +1,16 @@
+{
+ "name" : "Extension Docs Search",
+ "description" : "Search the Chrome Extensions documentation. To use, type 'crdoc' plus a search term into the Omnibox.",
+ "version" : "1.0.0",
+ "permissions" : [
+ "experimental",
+ "http://src.chromium.org/viewvc/*",
+ "tabs"
+ ],
+ "icons" : {
+ "16" : "icon-16.png",
+ "128" : "icon-128.png"
+ },
+ "omnibox_keyword" : "crdoc",
+ "background_page" : "background.html"
+}
diff --git a/chrome/common/extensions/docs/examples/api/omnibox.zip b/chrome/common/extensions/docs/examples/api/omnibox/simple-example.zip
index 58ba199..532eb00 100644
--- a/chrome/common/extensions/docs/examples/api/omnibox.zip
+++ b/chrome/common/extensions/docs/examples/api/omnibox/simple-example.zip
Binary files differ
diff --git a/chrome/common/extensions/docs/examples/api/omnibox/background.html b/chrome/common/extensions/docs/examples/api/omnibox/simple-example/background.html
index ff83ff2..ff83ff2 100644
--- a/chrome/common/extensions/docs/examples/api/omnibox/background.html
+++ b/chrome/common/extensions/docs/examples/api/omnibox/simple-example/background.html
diff --git a/chrome/common/extensions/docs/examples/api/omnibox/manifest.json b/chrome/common/extensions/docs/examples/api/omnibox/simple-example/manifest.json
index 2b63ca2..c48a345 100644
--- a/chrome/common/extensions/docs/examples/api/omnibox/manifest.json
+++ b/chrome/common/extensions/docs/examples/api/omnibox/simple-example/manifest.json
@@ -1,5 +1,6 @@
{
"name": "Omnibox Example",
+ "description" : "To use, type 'omnix' plus a search term into the Omnibox.",
"version": "1.0",
"permissions": [ "experimental" ],
"background_page": "background.html",
diff --git a/chrome/common/extensions/docs/samples.html b/chrome/common/extensions/docs/samples.html
index 8630bed..21ff76e 100644
--- a/chrome/common/extensions/docs/samples.html
+++ b/chrome/common/extensions/docs/samples.html
@@ -294,7 +294,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","9747e3d6a3eab39bc7c17f11a80573c62d44c7e5":"BLANK NEW TAB PAGE CHROME_URL_OVERRIDES","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 EXPERIMENTAL TABS CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTENTERED CHROME.EXPERIMENTAL.OMNIBOX.STYLEMATCH CHROME.EXPERIMENTAL.OMNIBOX.STYLENONE CHROME.EXPERIMENTAL.OMNIBOX.STYLEURL 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","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","6871d09f4a96bf9d4b6cc724d00e909cee0f3902":"CROSS-DOMAIN XMLHTTPREQUEST FROM A CONTENT SCRIPT DEMONSTRATES A METHOD TO MAKE A CROSS-DOMAIN XMLHTTPREQUEST FETCH FROM A CONTENT SCRIPT. THIS EXTENSION FETCHES THE CURRENT TRENDING TOPICS FROM TWITTER AND INSERTS THEM IN AN OVERLAY AT THE TOP OF GOOGLE NEWS. VISIT HTTP://NEWS.GOOGLE.COM TO TEST THIS EXTENSION. BACKGROUND_PAGE CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST","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","763a08e9b06595d785568a8d392b95a2f3700258":"EVENT TRACKING WITH GOOGLE ANALYTICS A SAMPLE EXTENSION WHICH USES GOOGLE ANALYTICS TO TRACK USAGE. BACKGROUND_PAGE BROWSER_ACTION POPUP","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","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","3aea027164cb9b732ba4a8c51cb93708891726ef":"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","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","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","a88ab12b0241ee3dac6e74bb04da7964fab0f57d":"OMNIBOX EXAMPLE BACKGROUND_PAGE EXPERIMENTAL CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.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","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. 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"}</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","9747e3d6a3eab39bc7c17f11a80573c62d44c7e5":"BLANK NEW TAB PAGE CHROME_URL_OVERRIDES","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 EXPERIMENTAL TABS CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTENTERED CHROME.EXPERIMENTAL.OMNIBOX.STYLEMATCH CHROME.EXPERIMENTAL.OMNIBOX.STYLENONE CHROME.EXPERIMENTAL.OMNIBOX.STYLEURL 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","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","6871d09f4a96bf9d4b6cc724d00e909cee0f3902":"CROSS-DOMAIN XMLHTTPREQUEST FROM A CONTENT SCRIPT DEMONSTRATES A METHOD TO MAKE A CROSS-DOMAIN XMLHTTPREQUEST FETCH FROM A CONTENT SCRIPT. THIS EXTENSION FETCHES THE CURRENT TRENDING TOPICS FROM TWITTER AND INSERTS THEM IN AN OVERLAY AT THE TOP OF GOOGLE NEWS. VISIT HTTP://NEWS.GOOGLE.COM TO TEST THIS EXTENSION. BACKGROUND_PAGE CHROME.EXTENSION.ONREQUEST CHROME.EXTENSION.SENDREQUEST","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","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 EXPERIMENTAL TABS CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTENTERED CHROME.EXPERIMENTAL.OMNIBOX.STYLEMATCH CHROME.EXPERIMENTAL.OMNIBOX.STYLENONE CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.ONREMOVED 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","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","3aea027164cb9b732ba4a8c51cb93708891726ef":"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","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","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 EXPERIMENTAL CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.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","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. 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"}</script>
<script src="js/sample_search.js"></script>
@@ -1023,6 +1023,56 @@
</ul>
</div>
<div><a href="examples/tutorials/analytics.zip">Download .zip</a></div>
+</div><div class="sample" id="e3df888a89e35bdeb9c8bc8d03be5e1851b97c68">
+ <img class="icon" src="examples/api/omnibox/extension-docs/icon-128.png">
+ <img class="icon" src="images/sample-default-icon.png" style="display: none; ">
+ <h2 class="name">
+ <a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/omnibox/extension-docs/">Extension Docs Search</a>
+ </h2>
+ <p class="metadata features">Uses
+ <span>
+ <strong>background_page</strong><span>, </span>
+ <span style="display: none; "> and</span>
+ </span><span>
+ <strong>experimental</strong><span style="display: none; ">, </span>
+ <span> and</span>
+ </span><span>
+ <strong>tabs</strong><span style="display: none; ">, </span>
+ <span style="display: none; "> and</span>
+ </span>
+ </p>
+ <p>Search the Chrome Extensions documentation. To use, type 'crdoc' plus a search term into the Omnibox.</p>
+ <div class="apicalls"><strong>Calls:</strong>
+ <ul>
+ <li>
+ <code><a href="experimental.omnibox.html#event-onInputChanged">chrome.experimental.omnibox.onInputChanged</a></code>
+ </li><li>
+ <code><a href="experimental.omnibox.html#event-onInputEntered">chrome.experimental.omnibox.onInputEntered</a></code>
+ </li><li>
+ <code><a href="experimental.omnibox.html#method-styleMatch">chrome.experimental.omnibox.styleMatch</a></code>
+ </li><li>
+ <code><a href="experimental.omnibox.html#method-styleNone">chrome.experimental.omnibox.styleNone</a></code>
+ </li><li>
+ <code><a href="tabs.html#method-create">chrome.tabs.create</a></code>
+ </li><li>
+ <code><a href="tabs.html#method-get">chrome.tabs.get</a></code>
+ </li><li>
+ <code><a href="tabs.html#event-onRemoved">chrome.tabs.onRemoved</a></code>
+ </li><li>
+ <code><a href="tabs.html#method-update">chrome.tabs.update</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/api/omnibox/extension-docs/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/api/omnibox/extension-docs/manifest.json?content-type=text/plain">manifest.json</a></code>
+ </li>
+ </ul>
+ </div>
+ <div><a href="examples/api/omnibox/extension-docs.zip">Download .zip</a></div>
</div><div class="sample" id="4e35caa9742fb82dbd628892d23a781614f6eff6">
<img class="icon" src="examples/extensions/gdocs/img/docs_spreadsheets-128.gif">
<img class="icon" src="images/sample-default-icon.png" style="display: none; ">
@@ -1826,11 +1876,11 @@
</ul>
</div>
<div><a href="examples/api/notifications.zip">Download .zip</a></div>
-</div><div class="sample" id="a88ab12b0241ee3dac6e74bb04da7964fab0f57d">
+</div><div class="sample" id="e787b322bddbc6289bb31b7d7550b1bf6456a80b">
<img class="icon" style="display: none; ">
<img class="icon" src="images/sample-default-icon.png">
<h2 class="name">
- <a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/omnibox/">Omnibox Example</a>
+ <a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/omnibox/simple-example/">Omnibox Example</a>
</h2>
<p class="metadata features">Uses
<span>
@@ -1841,7 +1891,7 @@
<span style="display: none; "> and</span>
</span>
</p>
- <p></p>
+ <p>To use, type 'omnix' plus a search term into the Omnibox.</p>
<div class="apicalls"><strong>Calls:</strong>
<ul>
<li>
@@ -1854,13 +1904,13 @@
<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/api/omnibox/background.html?content-type=text/plain">background.html</a></code>
+ <code><a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/omnibox/simple-example/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/api/omnibox/manifest.json?content-type=text/plain">manifest.json</a></code>
+ <code><a target="_blank" href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/omnibox/simple-example/manifest.json?content-type=text/plain">manifest.json</a></code>
</li>
</ul>
</div>
- <div><a href="examples/api/omnibox.zip">Download .zip</a></div>
+ <div><a href="examples/api/omnibox/simple-example.zip">Download .zip</a></div>
</div><div class="sample" id="8d0a50b57c26bb498be592e871001ffed91541b4">
<img class="icon" src="examples/api/pageAction/pageaction_by_content/sandwich-128.png">
<img class="icon" src="images/sample-default-icon.png" style="display: none; ">
diff --git a/chrome/common/extensions/docs/samples.json b/chrome/common/extensions/docs/samples.json
index 519d8e4..b0b92a9 100644
--- a/chrome/common/extensions/docs/samples.json
+++ b/chrome/common/extensions/docs/samples.json
@@ -567,6 +567,37 @@
{
"features": [
"background_page",
+ "experimental",
+ "tabs"
+ ],
+ "icon": "icon-128.png",
+ "description": "Search the Chrome Extensions documentation. To use, type 'crdoc' plus a search term into the Omnibox.",
+ "search_string": "EXTENSION DOCS SEARCH SEARCH THE CHROME EXTENSIONS DOCUMENTATION. TO USE, TYPE CRDOC PLUS A SEARCH TERM INTO THE OMNIBOX. BACKGROUND_PAGE EXPERIMENTAL TABS CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTENTERED CHROME.EXPERIMENTAL.OMNIBOX.STYLEMATCH CHROME.EXPERIMENTAL.OMNIBOX.STYLENONE CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.ONREMOVED CHROME.TABS.UPDATE",
+ "source_files": [
+ "background.html",
+ "manifest.json"
+ ],
+ "zip_path": "examples/api/omnibox/extension-docs.zip",
+ "path": "examples/api/omnibox/extension-docs/",
+ "api_calls": [
+ "chrome.experimental.omnibox.onInputChanged",
+ "chrome.experimental.omnibox.onInputEntered",
+ "chrome.experimental.omnibox.styleMatch",
+ "chrome.experimental.omnibox.styleNone",
+ "chrome.tabs.create",
+ "chrome.tabs.get",
+ "chrome.tabs.onRemoved",
+ "chrome.tabs.update"
+ ],
+ "id": "e3df888a89e35bdeb9c8bc8d03be5e1851b97c68",
+ "protocols": [
+ "http://"
+ ],
+ "name": "Extension Docs Search"
+ },
+ {
+ "features": [
+ "background_page",
"browser_action",
"options_page",
"popup",
@@ -1050,19 +1081,19 @@
"experimental"
],
"icon": null,
- "description": "",
- "search_string": "OMNIBOX EXAMPLE BACKGROUND_PAGE EXPERIMENTAL CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTENTERED",
+ "description": "To use, type 'omnix' plus a search term into the Omnibox.",
+ "search_string": "OMNIBOX EXAMPLE TO USE, TYPE OMNIX PLUS A SEARCH TERM INTO THE OMNIBOX. BACKGROUND_PAGE EXPERIMENTAL CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTCHANGED CHROME.EXPERIMENTAL.OMNIBOX.ONINPUTENTERED",
"source_files": [
"background.html",
"manifest.json"
],
- "zip_path": "examples/api/omnibox.zip",
- "path": "examples/api/omnibox/",
+ "zip_path": "examples/api/omnibox/simple-example.zip",
+ "path": "examples/api/omnibox/simple-example/",
"api_calls": [
"chrome.experimental.omnibox.onInputChanged",
"chrome.experimental.omnibox.onInputEntered"
],
- "id": "a88ab12b0241ee3dac6e74bb04da7964fab0f57d",
+ "id": "e787b322bddbc6289bb31b7d7550b1bf6456a80b",
"protocols": [],
"name": "Omnibox Example"
},
@@ -1130,6 +1161,7 @@
"jquery/jquery.client.js",
"jquery/jquery.flot.dashes.js",
"jquery/jquery.flot.js",
+ "jquery/jquery.flot.min.js",
"jquery/jquery.flot.navigate.js",
"jquery/jquery.flot.valuelabels.js",
"jst/jsevalcontext.js",
@@ -1138,7 +1170,9 @@
"jst/util.js",
"manifest.json",
"options.html",
- "script.js"
+ "script.js",
+ "util/sorttable.js",
+ "util/table2CSV.js"
],
"zip_path": "examples/extensions/benchmark.zip",
"path": "examples/extensions/benchmark/",