summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorahernandez.miralles@gmail.com <ahernandez.miralles@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 06:35:52 +0000
committerahernandez.miralles@gmail.com <ahernandez.miralles@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 06:35:52 +0000
commit5e5f7a21c7c7fda9b08e5a0f35e2576e30bb6f29 (patch)
tree2817c2f816525d545a9c8e29db66d6093eae1dac
parentad378c0d30790df97ac8764443cc8da4e24a23cf (diff)
downloadchromium_src-5e5f7a21c7c7fda9b08e5a0f35e2576e30bb6f29.zip
chromium_src-5e5f7a21c7c7fda9b08e5a0f35e2576e30bb6f29.tar.gz
chromium_src-5e5f7a21c7c7fda9b08e5a0f35e2576e30bb6f29.tar.bz2
Remove .html extension from links
BUG=346315 Review URL: https://codereview.chromium.org/219213007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272123 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/common/extensions/api/accessibility_features.json2
-rw-r--r--chrome/common/extensions/api/bookmarks.json2
-rw-r--r--chrome/common/extensions/api/content_settings.json6
-rw-r--r--chrome/common/extensions/api/context_menus.json2
-rw-r--r--chrome/common/extensions/api/debugger.json8
-rw-r--r--chrome/common/extensions/api/declarative_content.json2
-rw-r--r--chrome/common/extensions/api/declarative_web_request.json2
-rw-r--r--chrome/common/extensions/api/extension.json2
-rw-r--r--chrome/common/extensions/api/gcm.json2
-rw-r--r--chrome/common/extensions/api/history.json2
-rw-r--r--chrome/common/extensions/api/i18n.json2
-rw-r--r--chrome/common/extensions/api/management.json10
-rw-r--r--chrome/common/extensions/api/privacy.json2
-rw-r--r--chrome/common/extensions/api/proxy.json2
-rw-r--r--chrome/common/extensions/api/tabs.json26
-rw-r--r--chrome/common/extensions/api/tts.json2
-rw-r--r--chrome/common/extensions/api/tts_engine.json2
-rw-r--r--chrome/common/extensions/api/web_navigation.json6
-rw-r--r--chrome/common/extensions/api/webview.json2
-rw-r--r--chrome/common/extensions/api/webview_request.json2
-rw-r--r--chrome/common/extensions/api/webview_tag.json2
-rw-r--r--chrome/common/extensions/api/windows.json2
-rw-r--r--chrome/common/extensions/docs/templates/articles/a11y.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/about_apps.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/activeTab.html18
-rw-r--r--chrome/common/extensions/docs/templates/articles/angular_framework.html12
-rw-r--r--chrome/common/extensions/docs/templates/articles/api_index.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/api_other.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_architecture.html12
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_bluetooth.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab.html22
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab1_setup.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab2_basic.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab3_mvc.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab5_data.html14
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab6_lifecycle.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab7_useridentification.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_codelab8_webresources.html14
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_csp.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_deprecated.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_external.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_frameworks.html12
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_identity.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_intents.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_lifecycle.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_manifestVersion.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_network.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_serial.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_storage.html16
-rw-r--r--chrome/common/extensions/docs/templates/articles/app_usb.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/apps.html14
-rw-r--r--chrome/common/extensions/docs/templates/articles/autoupdate.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/background_pages.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/cloudMessaging.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/cloudMessagingV2.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/contentSecurityPolicy.html14
-rw-r--r--chrome/common/extensions/docs/templates/articles/content_scripts.html30
-rw-r--r--chrome/common/extensions/docs/templates/articles/declare_permissions.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/desktop_notifications.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/develop_apps.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/devguide.html56
-rw-r--r--chrome/common/extensions/docs/templates/articles/event_pages.html22
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_browsingData.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_contentSettings.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_contextMenus.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_cookies.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_devtools.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_devtools_inspectedWindow.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_devtools_network.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_devtools_panels.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_devtools_resources.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_history.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_identity.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_inputUI.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_privacy.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_storage.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_webInspector.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_webInspector_audits.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_webInspector_panels.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_webInspector_resources.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/experimental_webRequest.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/extensions_index.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/external_extensions.html18
-rw-r--r--chrome/common/extensions/docs/templates/articles/faq.html30
-rw-r--r--chrome/common/extensions/docs/templates/articles/first_app.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/gcm_server.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/getstarted.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/google_wallet.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/hosting.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/hosting_changes.html38
-rw-r--r--chrome/common/extensions/docs/templates/articles/i18n-messages.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/app.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/default_locale.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/description.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/externally_connectable.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/file_handlers.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/homepage_url.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/icons.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/incognito.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/key.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/manifest_version.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/minimum_chrome_version.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/name.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/requirements.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/sandbox.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/storage.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/url_handlers.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/version.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest/web_accessible_resources.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifestVersion.html26
-rw-r--r--chrome/common/extensions/docs/templates/articles/match_patterns.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/messaging.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/npapi.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/offline_apps.html22
-rw-r--r--chrome/common/extensions/docs/templates/articles/override.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/overview.html58
-rw-r--r--chrome/common/extensions/docs/templates/articles/packaging.html6
-rw-r--r--chrome/common/extensions/docs/templates/articles/permission_warnings.html40
-rw-r--r--chrome/common/extensions/docs/templates/articles/sandboxingEval.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/sencha_framework.html14
-rw-r--r--chrome/common/extensions/docs/templates/articles/settings_override.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/themes.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/tut_analytics.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/tut_debugging.html8
-rw-r--r--chrome/common/extensions/docs/templates/articles/tut_migration_to_manifest_v2.html22
-rw-r--r--chrome/common/extensions/docs/templates/articles/tut_oauth.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/tutorials.html10
-rw-r--r--chrome/common/extensions/docs/templates/articles/ui_override.html2
-rw-r--r--chrome/common/extensions/docs/templates/articles/whats_new.html4
-rw-r--r--chrome/common/extensions/docs/templates/articles/xhr.html8
-rw-r--r--chrome/common/extensions/docs/templates/intros/bookmarks.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/browserAction.html10
-rw-r--r--chrome/common/extensions/docs/templates/intros/browsingData.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/contentSettings.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/contextMenus.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/cookies.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/debugger.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/declarativeContent.html16
-rw-r--r--chrome/common/extensions/docs/templates/intros/declarativeWebRequest.html14
-rw-r--r--chrome/common/extensions/docs/templates/intros/devtools_inspectedWindow.html6
-rw-r--r--chrome/common/extensions/docs/templates/intros/devtools_network.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/devtools_panels.html8
-rw-r--r--chrome/common/extensions/docs/templates/intros/downloads.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/events.html10
-rw-r--r--chrome/common/extensions/docs/templates/intros/experimental_devtools_audits.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/extension.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/fileBrowserHandler.html6
-rw-r--r--chrome/common/extensions/docs/templates/intros/fontSettings.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/history.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/i18n.html10
-rw-r--r--chrome/common/extensions/docs/templates/intros/infobars.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/input_ime.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/management.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/notifications.html6
-rw-r--r--chrome/common/extensions/docs/templates/intros/omnibox.html6
-rw-r--r--chrome/common/extensions/docs/templates/intros/pageAction.html10
-rw-r--r--chrome/common/extensions/docs/templates/intros/pageCapture.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/permissions.html8
-rw-r--r--chrome/common/extensions/docs/templates/intros/privacy.html6
-rw-r--r--chrome/common/extensions/docs/templates/intros/proxy.html6
-rw-r--r--chrome/common/extensions/docs/templates/intros/pushMessaging.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/storage.html6
-rw-r--r--chrome/common/extensions/docs/templates/intros/tabs.html4
-rw-r--r--chrome/common/extensions/docs/templates/intros/topSites.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/types.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/wallpaper.html2
-rw-r--r--chrome/common/extensions/docs/templates/intros/webNavigation.html10
-rw-r--r--chrome/common/extensions/docs/templates/intros/webRequest.html12
-rw-r--r--chrome/common/extensions/docs/templates/intros/windows.html6
-rw-r--r--chrome/common/extensions/docs/templates/json/apps_sidenav.json82
-rw-r--r--chrome/common/extensions/docs/templates/json/extensions_sidenav.json84
-rw-r--r--chrome/common/extensions/docs/templates/json/intro_tables.json48
-rw-r--r--chrome/common/extensions/docs/templates/private/api_reference.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/api_table.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/event.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/intro_tables/experimental_message.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/intro_tables/socket_permissions.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/intro_tables/windows_permissions.html8
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/active_tab.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/always_on_top_windows.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/background.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/experimental.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/fullscreen.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/generic_description.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/host_permissions.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/notifications.html4
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/pointer_lock.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/sync_file_system.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/web_request_blocking.html2
-rw-r--r--chrome/common/extensions/docs/templates/private/permissions/webview.html2
191 files changed, 770 insertions, 770 deletions
diff --git a/chrome/common/extensions/api/accessibility_features.json b/chrome/common/extensions/api/accessibility_features.json
index 495a0fb..9e14bb8 100644
--- a/chrome/common/extensions/api/accessibility_features.json
+++ b/chrome/common/extensions/api/accessibility_features.json
@@ -6,7 +6,7 @@
{
"namespace": "accessibilityFeatures",
"platforms": ["chromeos"],
- "description": "Use the <code>chrome.accessibilityFeatures</code> API to manage Chrome's accessibility features. This API relies on the <a href='types.html#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting individual accessibility features. In order to get feature states the extension must request <code>accessibilityFeatures.read</code> permission. For modifying feature state, the extension needs <code>accessibilityFeatures.modify</code> permission. Note that <code>accessibilityFeatures.modify</code> does not imply <code>accessibilityFeatures.read</code> permission.",
+ "description": "Use the <code>chrome.accessibilityFeatures</code> API to manage Chrome's accessibility features. This API relies on the <a href='types#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting individual accessibility features. In order to get feature states the extension must request <code>accessibilityFeatures.read</code> permission. For modifying feature state, the extension needs <code>accessibilityFeatures.modify</code> permission. Note that <code>accessibilityFeatures.modify</code> does not imply <code>accessibilityFeatures.read</code> permission.",
"properties": {
"spokenFeedback": {
"$ref": "types.ChromeSetting",
diff --git a/chrome/common/extensions/api/bookmarks.json b/chrome/common/extensions/api/bookmarks.json
index daa8baa..f697956 100644
--- a/chrome/common/extensions/api/bookmarks.json
+++ b/chrome/common/extensions/api/bookmarks.json
@@ -5,7 +5,7 @@
[
{
"namespace": "bookmarks",
- "description": "Use the <code>chrome.bookmarks</code> API to create, organize, and otherwise manipulate bookmarks. Also see <a href='override.html'>Override Pages</a>, which you can use to create a custom Bookmark Manager page.",
+ "description": "Use the <code>chrome.bookmarks</code> API to create, organize, and otherwise manipulate bookmarks. Also see <a href='override'>Override Pages</a>, which you can use to create a custom Bookmark Manager page.",
"properties": {
"MAX_WRITE_OPERATIONS_PER_HOUR": {
"value": 100,
diff --git a/chrome/common/extensions/api/content_settings.json b/chrome/common/extensions/api/content_settings.json
index 9fcfb28..5d21a70 100644
--- a/chrome/common/extensions/api/content_settings.json
+++ b/chrome/common/extensions/api/content_settings.json
@@ -24,7 +24,7 @@
"description": "A human readable description of the resource."
}
},
- "description": "The only content type using resource identifiers is $(ref:contentSettings.plugins). For more information, see <a href=\"contentSettings.html#resource-identifiers\">Resource Identifiers</a>."
+ "description": "The only content type using resource identifiers is $(ref:contentSettings.plugins). For more information, see <a href=\"contentSettings#resource-identifiers\">Resource Identifiers</a>."
},
{
"id": "ContentSetting",
@@ -115,11 +115,11 @@
"properties": {
"primaryPattern": {
"type": "string",
- "description": "The pattern for the primary URL. For details on the format of a pattern, see <a href='contentSettings.html#patterns'>Content Setting Patterns</a>."
+ "description": "The pattern for the primary URL. For details on the format of a pattern, see <a href='contentSettings#patterns'>Content Setting Patterns</a>."
},
"secondaryPattern": {
"type": "string",
- "description": "The pattern for the secondary URL. Defaults to matching all URLs. For details on the format of a pattern, see <a href='contentSettings.html#patterns'>Content Setting Patterns</a>.",
+ "description": "The pattern for the secondary URL. Defaults to matching all URLs. For details on the format of a pattern, see <a href='contentSettings#patterns'>Content Setting Patterns</a>.",
"optional": true
},
"resourceIdentifier": {
diff --git a/chrome/common/extensions/api/context_menus.json b/chrome/common/extensions/api/context_menus.json
index cb5f698..33279d8 100644
--- a/chrome/common/extensions/api/context_menus.json
+++ b/chrome/common/extensions/api/context_menus.json
@@ -83,7 +83,7 @@
"type": "array",
"items": {"type": "string"},
"optional": true,
- "description": "Lets you restrict the item to apply only to documents whose URL matches one of the given patterns. (This applies to frames as well.) For details on the format of a pattern, see <a href='match_patterns.html'>Match Patterns</a>."
+ "description": "Lets you restrict the item to apply only to documents whose URL matches one of the given patterns. (This applies to frames as well.) For details on the format of a pattern, see <a href='match_patterns'>Match Patterns</a>."
},
"targetUrlPatterns": {
"type": "array",
diff --git a/chrome/common/extensions/api/debugger.json b/chrome/common/extensions/api/debugger.json
index 4e4a49a..ae52944a 100644
--- a/chrome/common/extensions/api/debugger.json
+++ b/chrome/common/extensions/api/debugger.json
@@ -5,7 +5,7 @@
[
{
"namespace": "debugger",
- "description": "The <code>chrome.debugger</code> API serves as an alternate transport for Chrome's <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>remote debugging protocol</a>. Use <code>chrome.debugger</code> to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, etc. Use the Debuggee <code>tabId</code> to target tabs with sendCommand and route events by <code>tabId</code> from onEvent callbacks.",
+ "description": "The <code>chrome.debugger</code> API serves as an alternate transport for Chrome's <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>remote debugging protocol</a>. Use <code>chrome.debugger</code> to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, etc. Use the Debuggee <code>tabId</code> to target tabs with sendCommand and route events by <code>tabId</code> from onEvent callbacks.",
"types": [
{
"id": "Debuggee",
@@ -51,7 +51,7 @@
{
"type": "string",
"name": "requiredVersion",
- "description": "Required debugging protocol version (\"0.1\"). One can only attach to the debuggee with matching major version and greater or equal minor version. List of the protocol versions can be obtained <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>here</a>."
+ "description": "Required debugging protocol version (\"0.1\"). One can only attach to the debuggee with matching major version and greater or equal minor version. List of the protocol versions can be obtained <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>here</a>."
},
{
"type": "function",
@@ -94,7 +94,7 @@
{
"type": "string",
"name": "method",
- "description": "Method name. Should be one of the methods defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>remote debugging protocol</a>."
+ "description": "Method name. Should be one of the methods defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>remote debugging protocol</a>."
},
{
"type": "object",
@@ -154,7 +154,7 @@
{
"type": "string",
"name": "method",
- "description": "Method name. Should be one of the notifications defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>remote debugging protocol</a>."
+ "description": "Method name. Should be one of the notifications defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>remote debugging protocol</a>."
},
{
"type": "object",
diff --git a/chrome/common/extensions/api/declarative_content.json b/chrome/common/extensions/api/declarative_content.json
index cc74bec..7c383b5 100644
--- a/chrome/common/extensions/api/declarative_content.json
+++ b/chrome/common/extensions/api/declarative_content.json
@@ -40,7 +40,7 @@
},
{
"id": "ShowPageAction",
- "description": "Declarative event action that shows the extension's $(ref:pageAction page action) while the corresponding conditions are met. This action can be used without <a href=\"declare_permissions.html#host-permissions\">host permissions</a>, but the extension must have a page action. If the extension takes the <a href=\"activeTab.html\">activeTab</a> permission, a click on the page action will grant access to the active tab.",
+ "description": "Declarative event action that shows the extension's $(ref:pageAction page action) while the corresponding conditions are met. This action can be used without <a href=\"declare_permissions#host-permissions\">host permissions</a>, but the extension must have a page action. If the extension takes the <a href=\"activeTab.html\">activeTab</a> permission, a click on the page action will grant access to the active tab.",
"type": "object",
"properties": {
"instanceType": {
diff --git a/chrome/common/extensions/api/declarative_web_request.json b/chrome/common/extensions/api/declarative_web_request.json
index 8a306af..e9ea8a2 100644
--- a/chrome/common/extensions/api/declarative_web_request.json
+++ b/chrome/common/extensions/api/declarative_web_request.json
@@ -5,7 +5,7 @@
[
{
"namespace": "declarativeWebRequest",
- "description": "<em><strong>Note:</strong> this API is currently on hold, without concrete plans to move to stable.</em> Use the <code>chrome.declarativeWebRequest</code> API to intercept, block, or modify requests in-flight. It is significantly faster than the <a href='webRequest.html'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency.",
+ "description": "<em><strong>Note:</strong> this API is currently on hold, without concrete plans to move to stable.</em> Use the <code>chrome.declarativeWebRequest</code> API to intercept, block, or modify requests in-flight. It is significantly faster than the <a href='webRequest'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency.",
"types": [
{
"id": "HeaderFilter",
diff --git a/chrome/common/extensions/api/extension.json b/chrome/common/extensions/api/extension.json
index efb7f4b..03767fb 100644
--- a/chrome/common/extensions/api/extension.json
+++ b/chrome/common/extensions/api/extension.json
@@ -5,7 +5,7 @@
[
{
"namespace": "extension",
- "description": "The <code>chrome.extension</code> API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in <a href='messaging.html'>Message Passing</a>.",
+ "description": "The <code>chrome.extension</code> API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in <a href='messaging'>Message Passing</a>.",
"compiler_options": {
"implemented_in": "chrome/browser/extensions/api/module/module.h"
},
diff --git a/chrome/common/extensions/api/gcm.json b/chrome/common/extensions/api/gcm.json
index ca3dfd1..00112f7 100644
--- a/chrome/common/extensions/api/gcm.json
+++ b/chrome/common/extensions/api/gcm.json
@@ -5,7 +5,7 @@
[
{
"namespace": "gcm",
- "description": "Use <code>chrome.gcm</code> to enable apps and extensions to send and receive messages through <a href='http://developer.android.com/google/gcm/index.html'>Google Cloud Messaging</a>.",
+ "description": "Use <code>chrome.gcm</code> to enable apps and extensions to send and receive messages through <a href='http://developer.android.com/google/gcm/index'>Google Cloud Messaging</a>.",
"properties": {
"MAX_MESSAGE_SIZE": {
"value": 4096,
diff --git a/chrome/common/extensions/api/history.json b/chrome/common/extensions/api/history.json
index b73e3e3..c4e11cc 100644
--- a/chrome/common/extensions/api/history.json
+++ b/chrome/common/extensions/api/history.json
@@ -5,7 +5,7 @@
[
{
"namespace": "history",
- "description": "Use the <code>chrome.history</code> API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see <a href='override.html'>Override Pages</a>.",
+ "description": "Use the <code>chrome.history</code> API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see <a href='override'>Override Pages</a>.",
"types": [
{
"id": "HistoryItem",
diff --git a/chrome/common/extensions/api/i18n.json b/chrome/common/extensions/api/i18n.json
index ebea211..d29c0e6 100644
--- a/chrome/common/extensions/api/i18n.json
+++ b/chrome/common/extensions/api/i18n.json
@@ -31,7 +31,7 @@
{
"type": "string",
"name": "messageName",
- "description": "The name of the message, as specified in the <a href='i18n-messages.html'><code>messages.json</code></a> file."
+ "description": "The name of the message, as specified in the <a href='i18n-messages'><code>messages.json</code></a> file."
},
{
"type": "any",
diff --git a/chrome/common/extensions/api/management.json b/chrome/common/extensions/api/management.json
index d839278..150801c 100644
--- a/chrome/common/extensions/api/management.json
+++ b/chrome/common/extensions/api/management.json
@@ -5,7 +5,7 @@
[
{
"namespace":"management",
- "description": "The <code>chrome.management</code> API provides ways to manage the list of extensions/apps that are installed and running. It is particularly useful for extensions that <a href='override.html'>override</a> the built-in New Tab page.",
+ "description": "The <code>chrome.management</code> API provides ways to manage the list of extensions/apps that are installed and running. It is particularly useful for extensions that <a href='override'>override</a> the built-in New Tab page.",
"types": [
{
"id": "IconInfo",
@@ -38,7 +38,7 @@
"type": "string"
},
"version": {
- "description": "The <a href='manifest/version.html'>version</a> of this extension, app, or theme.",
+ "description": "The <a href='manifest/version'>version</a> of this extension, app, or theme.",
"type": "string"
},
"mayDisable": {
@@ -89,7 +89,7 @@
"type": "string"
},
"icons": {
- "description": "A list of icon information. Note that this just reflects what was declared in the manifest, and the actual image at that url may be larger or smaller than what was declared, so you might consider using explicit width and height attributes on img tags referencing these images. See the <a href='manifest/icons.html'>manifest documentation on icons</a> for more details.",
+ "description": "A list of icon information. Note that this just reflects what was declared in the manifest, and the actual image at that url may be larger or smaller than what was declared, so you might consider using explicit width and height attributes on img tags referencing these images. See the <a href='manifest/icons'>manifest documentation on icons</a> for more details.",
"type": "array",
"optional": true,
"items": {
@@ -163,7 +163,7 @@
},
{
"name": "getPermissionWarningsById",
- "description": "Returns a list of <a href='permission_warnings.html'>permission warnings</a> for the given extension id.",
+ "description": "Returns a list of <a href='permission_warnings'>permission warnings</a> for the given extension id.",
"parameters": [
{ "name": "id",
"type": "string",
@@ -185,7 +185,7 @@
},
{
"name": "getPermissionWarningsByManifest",
- "description": "Returns a list of <a href='permission_warnings.html'>permission warnings</a> for the given extension manifest string. Note: This function can be used without requesting the 'management' permission in the manifest.",
+ "description": "Returns a list of <a href='permission_warnings'>permission warnings</a> for the given extension manifest string. Note: This function can be used without requesting the 'management' permission in the manifest.",
"parameters": [
{
"name": "manifestStr",
diff --git a/chrome/common/extensions/api/privacy.json b/chrome/common/extensions/api/privacy.json
index 03845c9..f14a5f7 100644
--- a/chrome/common/extensions/api/privacy.json
+++ b/chrome/common/extensions/api/privacy.json
@@ -5,7 +5,7 @@
[
{
"namespace": "privacy",
- "description": "Use the <code>chrome.privacy</code> API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the <a href='types.html#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting Chrome's configuration.",
+ "description": "Use the <code>chrome.privacy</code> API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the <a href='types#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting Chrome's configuration.",
"properties": {
"network": {
"type": "object",
diff --git a/chrome/common/extensions/api/proxy.json b/chrome/common/extensions/api/proxy.json
index 24a5a7e..4604dc2 100644
--- a/chrome/common/extensions/api/proxy.json
+++ b/chrome/common/extensions/api/proxy.json
@@ -5,7 +5,7 @@
[
{
"namespace": "proxy",
- "description": "Use the <code>chrome.proxy</code> API to manage Chrome's proxy settings. This API relies on the <a href='types.html#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting the proxy configuration.",
+ "description": "Use the <code>chrome.proxy</code> API to manage Chrome's proxy settings. This API relies on the <a href='types#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting the proxy configuration.",
"types": [
{
"id": "ProxyServer",
diff --git a/chrome/common/extensions/api/tabs.json b/chrome/common/extensions/api/tabs.json
index e725cf0..992535a 100644
--- a/chrome/common/extensions/api/tabs.json
+++ b/chrome/common/extensions/api/tabs.json
@@ -90,7 +90,7 @@
"name": "connect",
"nocompile": true,
"type": "function",
- "description": "Connects to the content script(s) in the specified tab. The $(ref:runtime.onConnect) event is fired in each content script running in the specified tab for the current extension. For more details, see <a href='messaging.html'>Content Script Messaging</a>.",
+ "description": "Connects to the content script(s) in the specified tab. The $(ref:runtime.onConnect) event is fired in each content script running in the specified tab for the current extension. For more details, see <a href='messaging'>Content Script Messaging</a>.",
"parameters": [
{
"type": "integer",
@@ -181,7 +181,7 @@
"name": "windowId",
"minimum": -2,
"optional": true,
- "description": "Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the <a href='windows#current-window'>current window</a>."
},
{
"type": "function",
@@ -203,7 +203,7 @@
"name": "windowId",
"minimum": -2,
"optional": true,
- "description": "Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the <a href='windows#current-window'>current window</a>."
},
{
"type": "function",
@@ -227,7 +227,7 @@
"type": "integer",
"minimum": -2,
"optional": true,
- "description": "The window to create the new tab in. Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "The window to create the new tab in. Defaults to the <a href='windows#current-window'>current window</a>."
},
"index": {
"type": "integer",
@@ -331,7 +331,7 @@
"currentWindow": {
"type": "boolean",
"optional": true,
- "description": "Whether the tabs are in the <a href='windows.html#current-window'>current window</a>."
+ "description": "Whether the tabs are in the <a href='windows#current-window'>current window</a>."
},
"lastFocusedWindow": {
"type": "boolean",
@@ -352,13 +352,13 @@
"url": {
"type": "string",
"optional": true,
- "description": "Match tabs against a <a href='match_patterns.html'>URL pattern</a>. Note that fragment identifiers are not matched."
+ "description": "Match tabs against a <a href='match_patterns'>URL pattern</a>. Note that fragment identifiers are not matched."
},
"windowId": {
"type": "integer",
"optional": true,
"minimum": -2,
- "description": "The ID of the parent window, or $(ref:windows.WINDOW_ID_CURRENT) for the <a href='windows.html#current-window'>current window</a>."
+ "description": "The ID of the parent window, or $(ref:windows.WINDOW_ID_CURRENT) for the <a href='windows#current-window'>current window</a>."
},
"windowType": {
"type": "string",
@@ -436,7 +436,7 @@
"name": "tabId",
"minimum": 0,
"optional": true,
- "description": "Defaults to the selected tab of the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the selected tab of the <a href='windows#current-window'>current window</a>."
},
{
"type": "object",
@@ -585,7 +585,7 @@
"name": "tabId",
"minimum": 0,
"optional": true,
- "description": "Defaults to the active tab of the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the active tab of the <a href='windows#current-window'>current window</a>."
},
{
"type": "function",
@@ -603,14 +603,14 @@
{
"name": "captureVisibleTab",
"type": "function",
- "description": "Captures the visible area of the currently active tab in the specified window. You must have <a href='declare_permissions.html'>&lt;all_urls&gt;</a> permission to use this method.",
+ "description": "Captures the visible area of the currently active tab in the specified window. You must have <a href='declare_permissions'>&lt;all_urls&gt;</a> permission to use this method.",
"parameters": [
{
"type": "integer",
"name": "windowId",
"minimum": -2,
"optional": true,
- "description": "The target window. Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "The target window. Defaults to the <a href='windows#current-window'>current window</a>."
},
{
"$ref": "types.ImageDetails",
@@ -627,7 +627,7 @@
{
"name": "executeScript",
"type": "function",
- "description": "Injects JavaScript code into a page. For details, see the <a href='content_scripts.html#pi'>programmatic injection</a> section of the content scripts doc.",
+ "description": "Injects JavaScript code into a page. For details, see the <a href='content_scripts#pi'>programmatic injection</a> section of the content scripts doc.",
"parameters": [
{"type": "integer", "name": "tabId", "minimum": 0, "optional": true, "description": "The ID of the tab in which to run the script; defaults to the active tab of the current window."},
{
@@ -655,7 +655,7 @@
{
"name": "insertCSS",
"type": "function",
- "description": "Injects CSS into a page. For details, see the <a href='content_scripts.html#pi'>programmatic injection</a> section of the content scripts doc.",
+ "description": "Injects CSS into a page. For details, see the <a href='content_scripts#pi'>programmatic injection</a> section of the content scripts doc.",
"parameters": [
{"type": "integer", "name": "tabId", "minimum": 0, "optional": true, "description": "The ID of the tab in which to insert the CSS; defaults to the active tab of the current window."},
{
diff --git a/chrome/common/extensions/api/tts.json b/chrome/common/extensions/api/tts.json
index 8449be6..8bc8a08 100644
--- a/chrome/common/extensions/api/tts.json
+++ b/chrome/common/extensions/api/tts.json
@@ -5,7 +5,7 @@
[
{
"namespace": "tts",
- "description": "Use the <code>chrome.tts</code> API to play synthesized text-to-speech (TTS). See also the related <a href='http://developer.chrome.com/extensions/ttsEngine.html'>ttsEngine</a> API, which allows an extension to implement a speech engine.",
+ "description": "Use the <code>chrome.tts</code> API to play synthesized text-to-speech (TTS). See also the related <a href='http://developer.chrome.com/extensions/ttsEngine'>ttsEngine</a> API, which allows an extension to implement a speech engine.",
"types": [
{
"id": "TtsEvent",
diff --git a/chrome/common/extensions/api/tts_engine.json b/chrome/common/extensions/api/tts_engine.json
index ff8d7b0..7f0e24e 100644
--- a/chrome/common/extensions/api/tts_engine.json
+++ b/chrome/common/extensions/api/tts_engine.json
@@ -5,7 +5,7 @@
[
{
"namespace": "ttsEngine",
- "description": "Use the <code>chrome.ttsEngine</code> API 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 Chrome App uses the <a href='tts.html'>tts</a> API 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.",
+ "description": "Use the <code>chrome.ttsEngine</code> API 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 Chrome App uses the <a href='tts'>tts</a> API 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.",
"functions": [
{
"name": "sendTtsEvent",
diff --git a/chrome/common/extensions/api/web_navigation.json b/chrome/common/extensions/api/web_navigation.json
index 63f1d9c..e27fb7c 100644
--- a/chrome/common/extensions/api/web_navigation.json
+++ b/chrome/common/extensions/api/web_navigation.json
@@ -149,7 +149,7 @@
"url": {"type": "string"},
"processId": {"type": "integer", "description": "The ID of the process runs the renderer for this tab."},
"frameId": {"type": "integer", "description": "0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe. Frame IDs are unique within a tab."},
- "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history.html#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
+ "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
"transitionQualifiers": {"type": "array", "description": "A list of transition qualifiers.", "items": {"type": "string", "enum": ["client_redirect", "server_redirect", "forward_back", "from_address_bar"]}},
"timeStamp": {"type": "number", "description": "The time when the navigation was committed, in milliseconds since the epoch."}
}
@@ -283,7 +283,7 @@
"url": {"type": "string"},
"processId": {"type": "integer", "description": "The ID of the process runs the renderer for this tab."},
"frameId": {"type": "integer", "description": "0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe. Frame IDs are unique within a tab."},
- "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history.html#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
+ "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
"transitionQualifiers": {"type": "array", "description": "A list of transition qualifiers.", "items": {"type": "string", "enum": ["client_redirect", "server_redirect", "forward_back", "from_address_bar"]}},
"timeStamp": {"type": "number", "description": "The time when the navigation was committed, in milliseconds since the epoch."}
}
@@ -327,7 +327,7 @@
"url": {"type": "string"},
"processId": {"type": "integer", "description": "The ID of the process runs the renderer for this tab."},
"frameId": {"type": "integer", "description": "0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe. Frame IDs are unique within a tab."},
- "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history.html#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
+ "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
"transitionQualifiers": {"type": "array", "description": "A list of transition qualifiers.", "items": {"type": "string", "enum": ["client_redirect", "server_redirect", "forward_back", "from_address_bar"]}},
"timeStamp": {"type": "number", "description": "The time when the navigation was committed, in milliseconds since the epoch."}
}
diff --git a/chrome/common/extensions/api/webview.json b/chrome/common/extensions/api/webview.json
index 1e279b9..70085e0 100644
--- a/chrome/common/extensions/api/webview.json
+++ b/chrome/common/extensions/api/webview.json
@@ -151,7 +151,7 @@
"type": "array",
"items": {"type": "string"},
"optional": true,
- "description": "Lets you restrict the item to apply only to documents whose URL matches one of the given patterns. (This applies to frames as well.) For details on the format of a pattern, see <a href='match_patterns.html'>Match Patterns</a>."
+ "description": "Lets you restrict the item to apply only to documents whose URL matches one of the given patterns. (This applies to frames as well.) For details on the format of a pattern, see <a href='match_patterns'>Match Patterns</a>."
},
"targetUrlPatterns": {
"type": "array",
diff --git a/chrome/common/extensions/api/webview_request.json b/chrome/common/extensions/api/webview_request.json
index 9660142..653e195 100644
--- a/chrome/common/extensions/api/webview_request.json
+++ b/chrome/common/extensions/api/webview_request.json
@@ -5,6 +5,6 @@
[
{
"namespace": "webViewRequest",
- "description": "Use the <code>chrome.webViewRequest</code> API to intercept, block, or modify requests in-flight. It is potentially faster than the <a href='webRequest.html'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency."
+ "description": "Use the <code>chrome.webViewRequest</code> API to intercept, block, or modify requests in-flight. It is potentially faster than the <a href='webRequest'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency."
}
]
diff --git a/chrome/common/extensions/api/webview_tag.json b/chrome/common/extensions/api/webview_tag.json
index 96eca61..b3bceec 100644
--- a/chrome/common/extensions/api/webview_tag.json
+++ b/chrome/common/extensions/api/webview_tag.json
@@ -280,7 +280,7 @@
{
"id": "WebRequestEventInteface",
"type": "object",
- "description": "Interface which provides access to webRequest events on the guest page. See the <a href=\"http://developer.chrome.com/extensions/webRequest.html\">chrome.webRequest</a> extensions API for details on webRequest life cycle and related concepts.<p>To illustrate how usage differs from the extensions webRequest API, consider the following example code which blocks any guest requests for URLs which match <code>*://www.evil.com/*</code>:</p><pre>webview.request.onBeforeRequest.addListener(\r function(details) { return {cancel: true}; },\r {urls: [\"*://www.evil.com/*\"]},\r [\"blocking\"]);</pre><p>Additionally, this interface supports declarative webRequest rules through <code>onRequest</code> and <code>onMessage</code> events. See <a href=\"http://developer.chrome.com/extensions/declarativeWebRequest.html\">declarativeWebRequest</a> for API details.</p>Note that conditions and actions for declarative webview webRequests should be instantiated from their <code>chrome.webViewRequest.*</code> counterparts. The following example code declaratively blocks all requests to <code>\"example.com\"</code> on the webview <code>myWebview</code>:</p><pre>var rule = {\r conditions: [\r new chrome.webViewRequest.RequestMatcher({ url: { hostSuffix: 'example.com' } })\r ],\r actions: [ new chrome.webViewRequest.CancelRequest() ]\r};\rmyWebview.request.onRequest.addRules([rule]);</pre>",
+ "description": "Interface which provides access to webRequest events on the guest page. See the <a href=\"http://developer.chrome.com/extensions/webRequest\">chrome.webRequest</a> extensions API for details on webRequest life cycle and related concepts.<p>To illustrate how usage differs from the extensions webRequest API, consider the following example code which blocks any guest requests for URLs which match <code>*://www.evil.com/*</code>:</p><pre>webview.request.onBeforeRequest.addListener(\r function(details) { return {cancel: true}; },\r {urls: [\"*://www.evil.com/*\"]},\r [\"blocking\"]);</pre><p>Additionally, this interface supports declarative webRequest rules through <code>onRequest</code> and <code>onMessage</code> events. See <a href=\"http://developer.chrome.com/extensions/declarativeWebRequest.html\">declarativeWebRequest</a> for API details.</p>Note that conditions and actions for declarative webview webRequests should be instantiated from their <code>chrome.webViewRequest.*</code> counterparts. The following example code declaratively blocks all requests to <code>\"example.com\"</code> on the webview <code>myWebview</code>:</p><pre>var rule = {\r conditions: [\r new chrome.webViewRequest.RequestMatcher({ url: { hostSuffix: 'example.com' } })\r ],\r actions: [ new chrome.webViewRequest.CancelRequest() ]\r};\rmyWebview.request.onRequest.addRules([rule]);</pre>",
"properties": {}
}
],
diff --git a/chrome/common/extensions/api/windows.json b/chrome/common/extensions/api/windows.json
index 00ded38..9d8bab2 100644
--- a/chrome/common/extensions/api/windows.json
+++ b/chrome/common/extensions/api/windows.json
@@ -46,7 +46,7 @@
},
"WINDOW_ID_CURRENT": {
"value": -2,
- "description": "The windowId value that represents the <a href='windows.html#current-window'>current window</a>."
+ "description": "The windowId value that represents the <a href='windows#current-window'>current window</a>."
}
},
"functions": [
diff --git a/chrome/common/extensions/docs/templates/articles/a11y.html b/chrome/common/extensions/docs/templates/articles/a11y.html
index 50c6b47..e295a3e 100644
--- a/chrome/common/extensions/docs/templates/articles/a11y.html
+++ b/chrome/common/extensions/docs/templates/articles/a11y.html
@@ -303,7 +303,7 @@ is to list them somewhere.
Your application's options page
{{:is_apps}}
Your extension's
- <a href="options.html">Options page</a>
+ <a href="options">Options page</a>
{{/is_apps}}
might be a good place to do this.
</p>
@@ -467,4 +467,4 @@ For an example that implements keyboard navigation and ARIA properties, see
(compare it to
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/extensions/news/">examples/extensions/news</a>).
For more examples and for help in viewing the source code,
-see <a href="samples.html">Samples</a>.
+see <a href="sampleshtml">Samples</a>.
diff --git a/chrome/common/extensions/docs/templates/articles/about_apps.html b/chrome/common/extensions/docs/templates/articles/about_apps.html
index fcfa518..e2a5b1f2 100644
--- a/chrome/common/extensions/docs/templates/articles/about_apps.html
+++ b/chrome/common/extensions/docs/templates/articles/about_apps.html
@@ -72,7 +72,7 @@ Users can fully uninstall apps.
Without any effort on your part, your apps will launch offline.
But you will need to put some effort into making sure user data is stored locally while offline
and then synced back up to your data server once online
-(see <a href="offline_apps.html">Offline First</a>).
+(see <a href="offline_apps">Offline First</a>).
</p>
<h2 id="develop">How to develop them</h2>
@@ -97,20 +97,20 @@ To learn more about how to develop Chrome Apps:
<ul>
<li>
- <a href="app_architecture.html">Understanding the Architecture</a>
+ <a href="app_architecture">Understanding the Architecture</a>
introduces the app container, programming, and security models.
</li>
<li>
- <a href="app_lifecycle.html">The Fundamentals</a>
+ <a href="app_lifecycle">The Fundamentals</a>
shows how to use this architecture and how to build
for offline, manage data, and embed external content.
</li>
<li>
- <a href="app_network.html">Advanced Technologies</a>
+ <a href="app_network">Advanced Technologies</a>
shows how to use the powerful network and hardware APIs.
</li>
<li>
- <a href="app_deprecated.html">Disabled Features</a>
+ <a href="app_deprecated">Disabled Features</a>
describes the web features that have been disabled
and what to use in their place, where relevant.
</li>
diff --git a/chrome/common/extensions/docs/templates/articles/activeTab.html b/chrome/common/extensions/docs/templates/articles/activeTab.html
index c41eb84..1331a2e 100644
--- a/chrome/common/extensions/docs/templates/articles/activeTab.html
+++ b/chrome/common/extensions/docs/templates/articles/activeTab.html
@@ -19,7 +19,7 @@
<h1>The activeTab permission</h1>
<p>
-The <code>activeTab</code> permission gives an extension temporary access to the currently active tab when the user <em>invokes</em> the extension - for example by clicking its <a href="browserAction.html">browser action</a>. Access to the tab lasts until the tab is navigated or closed.
+The <code>activeTab</code> permission gives an extension temporary access to the currently active tab when the user <em>invokes</em> the extension - for example by clicking its <a href="browserAction">browser action</a>. Access to the tab lasts until the tab is navigated or closed.
</p>
<p>
@@ -42,7 +42,7 @@ This serves as an alternative for many uses of <code>&lt;all_urls&gt;</code>, bu
<h2 id="example">Example</h2>
<p>
-See the <a href="samples.html#page-redder">Page Redder</a> sample extension:
+See the <a href="samples#page-redder">Page Redder</a> sample extension:
</p>
<pre data-filename="manifest.json">
@@ -77,7 +77,7 @@ chrome.browserAction.onClicked.addListener(function(tab) {
<h2 id="motivation">Motivation</h2>
<p>
-Consider a web clipping extension that has a <a href="browserAction.html">browser action</a> and <a href="contextMenus.html">context menu item</a>. This extension may only really need to access tabs when its browser action is clicked, or when its context menu item is executed.
+Consider a web clipping extension that has a <a href="browserAction">browser action</a> and <a href="contextMenus">context menu item</a>. This extension may only really need to access tabs when its browser action is clicked, or when its context menu item is executed.
</p>
<p>
@@ -94,7 +94,7 @@ In contrast, an extension with the <code>activeTab</code> permission only obtain
While the <code>activeTab</code> permission is enabled for a tab, an extension can:
<ul>
<li>Call <code>$(ref:tabs.executeScript)</code> or <code>$(ref:tabs.insertCSS)</code> on that tab.
- <li>Get the URL, title, and favicon for that tab via an API that returns a <code>$(ref:tabs.Tab)</code> object (essentially, <code>activeTab</code> grants the <code><a href="tabs.html#manifest">tabs</a></code> permission temporarily).
+ <li>Get the URL, title, and favicon for that tab via an API that returns a <code>$(ref:tabs.Tab)</code> object (essentially, <code>activeTab</code> grants the <code><a href="tabs#manifest">tabs</a></code> permission temporarily).
</ul>
</p>
@@ -103,10 +103,10 @@ While the <code>activeTab</code> permission is enabled for a tab, an extension c
<p>
The following user gestures enable <code>activeTab</code>:
<ul>
- <li>Executing a <a href="browserAction.html">browser action</a>
- <li>Executing a <a href="pageAction.html">page action</a>
- <li>Executing a <a href="contextMenus.html">context menu item</a>
- <li>Executing a keyboard shortcut from the <a href="commands.html">commands API</a>
- <li>Accepting a suggestion from the <a href="omnibox.html">omnibox API</a>
+ <li>Executing a <a href="browserAction">browser action</a>
+ <li>Executing a <a href="pageAction">page action</a>
+ <li>Executing a <a href="contextMenus">context menu item</a>
+ <li>Executing a keyboard shortcut from the <a href="commands">commands API</a>
+ <li>Accepting a suggestion from the <a href="omnibox">omnibox API</a>
</ul>
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/angular_framework.html b/chrome/common/extensions/docs/templates/articles/angular_framework.html
index ff61c1b..62189d1 100644
--- a/chrome/common/extensions/docs/templates/articles/angular_framework.html
+++ b/chrome/common/extensions/docs/templates/articles/angular_framework.html
@@ -33,12 +33,12 @@ in this case, the Google Drive API.
<strong>Note: </strong>
You can also build apps which talk to 3rd party APIs/services
that are OAuth2-enabled.
-See <a href="app_identity.html#non">non-Google Account authentication</a>.
+See <a href="app_identity#non">non-Google Account authentication</a>.
</p>
<p>
The Uploader uses OAuth2 to access the user's data. The
-<a href="identity.html">chrome.identity API</a>
+<a href="identityhtml">chrome.identity API</a>
handles fetching an OAuth token for the logged-in user,
so the hard work is done for us!
Once we have a long-lived access token,
@@ -53,7 +53,7 @@ Key features this app uses:
<ul>
<li>AngularJS's autodetection for
- <a href="contentSecurityPolicy.html">CSP</a></li>
+ <a href="contentSecurityPolicyhtml">CSP</a></li>
<li>Render a list of files fetched from the
<a href="https://developers.google.com/drive/get-started">Google Drive API</a></li>
<li><a href="http://www.html5rocks.com/en/tutorials/file/filesystem/">HTML5 Filesystem API</a>
@@ -61,7 +61,7 @@ Key features this app uses:
<li><a href="http://www.html5rocks.com/en/tutorials/dnd/basics/">HTML5 Drag and Drop</a>
for importing/uploading new files from the desktop</li>
<li>XHR2 to load images, cross-domain</li>
- <li><a href="app_identity.html">chrome.identity API</a>
+ <li><a href="app_identityhtml">chrome.identity API</a>
for OAuth authorization</li>
<li>Chromeless frames to define the app's own navbar look and feel</li>
</ul>
@@ -108,7 +108,7 @@ The most important parts of this manifest are the "oauth2" and "permissions" sec
<p>
The "oauth2" section defines the required parameters by OAuth2 to do its magic.
To create a "client_id", follow the instructions in
-<a href="app_identity.html#client_id">Get your client id</a>.
+<a href="app_identityhtml#client_id">Get your client id</a>.
The "scopes" list the authorization scopes
that the OAuth token will be valid for (for example, the APIs the app wants to access).
</p>
@@ -330,7 +330,7 @@ The final product for <code>main.html</code> looks something like this:
<p>
Unlike many other JS MVC frameworks,
Angular v1.1.0+ requires no tweaks to work within a strict
-<a href="contentSecurityPolicy.html">CSP</a>.
+<a href="contentSecurityPolicyhtml">CSP</a>.
It just works, out of the box!
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/api_index.html b/chrome/common/extensions/docs/templates/articles/api_index.html
index f6a967a..72e3687 100644
--- a/chrome/common/extensions/docs/templates/articles/api_index.html
+++ b/chrome/common/extensions/docs/templates/articles/api_index.html
@@ -28,7 +28,7 @@ Chrome provides {{platform}}s with many special-purpose APIs like
<h2 id="experimental">Experimental APIs</h2>
<p>
Chrome also has
-<a href="experimental.html">experimental APIs</a>,
+<a href="experimental">experimental APIs</a>,
some of which will become supported APIs
in future releases of Chrome.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/api_other.html b/chrome/common/extensions/docs/templates/articles/api_other.html
index 34db3dc..c70c2c1 100644
--- a/chrome/common/extensions/docs/templates/articles/api_other.html
+++ b/chrome/common/extensions/docs/templates/articles/api_other.html
@@ -2,7 +2,7 @@
<p>
In addition to the
-<a href="api_index.html">chrome.* APIs</a>,
+<a href="api_index">chrome.* APIs</a>,
extensions can use all the APIs
that the browser provides
to web pages and apps.
@@ -23,9 +23,9 @@ you can bundle additional API libraries into your extension.
E.g. window.open(someUrl). --></dd>
<dt><strong> XMLHttpRequest </strong></dt>
<dd>
- Use <a href="xhr.html">XMLHttpRequest</a>
+ Use <a href="xhr">XMLHttpRequest</a>
to request data from one or more servers.
- The <a href="declare_permissions.html">permissions</a> field
+ The <a href="declare_permissions">permissions</a> field
of the manifest specifies
which hosts the extension can send requests to.
</dd>
diff --git a/chrome/common/extensions/docs/templates/articles/app_architecture.html b/chrome/common/extensions/docs/templates/articles/app_architecture.html
index 1dc2bde..c1016ff 100644
--- a/chrome/common/extensions/docs/templates/articles/app_architecture.html
+++ b/chrome/common/extensions/docs/templates/articles/app_architecture.html
@@ -74,7 +74,7 @@ There can only be one “event page” for a Chrome App.
<p>
For detailed instructions on how to use the programming model,
-see <a href="app_lifecycle.html">Manage App Lifecycle</a>.
+see <a href="app_lifecycle">Manage App Lifecycle</a>.
Here's a brief summary of the Chrome App lifecyle
to get you started:
</p>
@@ -89,7 +89,7 @@ to get you started:
<tr>
<td>Installation</td>
<td>User chooses to install the app and explicitly accepts the
- <a href="declare_permissions.html">permissions</a>.
+ <a href="declare_permissions">permissions</a>.
</td>
</tr>
<tr>
@@ -98,7 +98,7 @@ to get you started:
the 'launch' event fires,
and app pages open in windows.
You
- <a href="app_lifecycle.html#eventpage">create the windows</a>
+ <a href="app_lifecycle#eventpage">create the windows</a>
that your app requires,
how they look, and how they communicate
with the event page and with other windows.
@@ -108,7 +108,7 @@ to get you started:
<td>Termination</td>
<td>User can terminate apps at any time
and app can be quickly restored to previous state.
- <a href="app_lifecycle.html#local_settings">Stashing data</a>
+ <a href="app_lifecycle#local_settings">Stashing data</a>
protects against data loss.</td>
</tr>
<tr>
@@ -131,7 +131,7 @@ to get you started:
The Chrome Apps security model protects users
by ensuring their information is managed
in a safe and secure manner.
-<a href="contentSecurityPolicy.html">Comply with CSP</a>
+<a href="contentSecurityPolicy">Comply with CSP</a>
includes detailed information on how to comply with content security policy.
This policy blocks dangerous scripting
reducing cross-site scripting bugs
@@ -162,7 +162,7 @@ All external processes are isolated from the app.
Since iframes run in the same process as the surrounding page,
they can only be used to load other app pages.
You can use the <code>object</code> tag to
-<a href="app_external.html">embed external content</a>;
+<a href="app_external">embed external content</a>;
this content runs in a separate process from the app.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_bluetooth.html b/chrome/common/extensions/docs/templates/articles/app_bluetooth.html
index cbaa151..822e885 100644
--- a/chrome/common/extensions/docs/templates/articles/app_bluetooth.html
+++ b/chrome/common/extensions/docs/templates/articles/app_bluetooth.html
@@ -16,7 +16,7 @@
<p>
For Chrome Apps that use Bluetooth, add the
- <a href="manifest/bluetooth.html">bluetooth</a> entry to the manifest
+ <a href="manifest/bluetooth">bluetooth</a> entry to the manifest
and specify, if appropriate, the UUIDs of profiles, protocols or services
you wish to implement.
For example:
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab.html b/chrome/common/extensions/docs/templates/articles/app_codelab.html
index eac1e86..204053e 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab.html
@@ -16,7 +16,7 @@ Each lab builds upon the previous lab's sample code.
To see how the Todo app changes as you work through the lab,
upload the code from the extensions management page
and launch the app
-(see <a href="first_app.html#five">Create Your First App tutorial</a>).
+(see <a href="first_app#five">Create Your First App tutorial</a>).
</p>
<p class="note">
@@ -33,9 +33,9 @@ or by navigating to <code>chrome://extensions</code>.
<p>
You can choose to write your sample Todo app
using a preferred
-<a href="app_frameworks.html">MVC framework</a>.
+<a href="app_frameworks">MVC framework</a>.
Starting in
-<a href="app_codelab3_mvc.html">3 - Create MVC</a>,
+<a href="app_codelab3_mvc">3 - Create MVC</a>,
we've provided sample code in pure JavaScript
and using
<a href="http://angularjs.org">AngularJS</a>.
@@ -56,12 +56,12 @@ in the sample code repository.
<h2 id="tutorial_structure">Codelab structure</h2>
<ul>
-<li><a href="app_codelab1_setup.html">1 - Set Up Development Environment</a></li>
-<li><a href="app_codelab2_basic.html">2 - Create Basic App</a></li>
-<li><a href="app_codelab3_mvc.html">3 - Create MVC</a></li>
-<li><a href="app_codelab5_data.html">4 - Save and Feth Data</a></li>
-<li><a href="app_codelab6_lifecycle.html">5 - Manage App Lifecycle</a></li>
-<li><a href="app_codelab7_useridentification.html">6 - Access User's Data</a></li>
-<li><a href="app_codelab8_webresources.html">7 - Access Web Resources</a></li>
-<li><a href="app_codelab_10_publishing.html">8 - Publish App</a></li>
+<li><a href="app_codelab1_setup">1 - Set Up Development Environment</a></li>
+<li><a href="app_codelab2_basic">2 - Create Basic App</a></li>
+<li><a href="app_codelab3_mvc">3 - Create MVC</a></li>
+<li><a href="app_codelab5_data">4 - Save and Feth Data</a></li>
+<li><a href="app_codelab6_lifecycle">5 - Manage App Lifecycle</a></li>
+<li><a href="app_codelab7_useridentification">6 - Access User's Data</a></li>
+<li><a href="app_codelab8_webresources">7 - Access Web Resources</a></li>
+<li><a href="app_codelab_10_publishing">8 - Publish App</a></li>
</ul>
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab1_setup.html b/chrome/common/extensions/docs/templates/articles/app_codelab1_setup.html
index 55e966f..c5fe370 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab1_setup.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab1_setup.html
@@ -35,4 +35,4 @@ You will use this page quite a bit to load and reload the Todo app.</p>
<h2 id="what_39_s_next_">What's next?</h2>
-<p>In <a href="app_codelab2_basic.html">2 - Create Basic App</a>, you will create your first Chrome App!</p>
+<p>In <a href="app_codelab2_basic">2 - Create Basic App</a>, you will create your first Chrome App!</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab2_basic.html b/chrome/common/extensions/docs/templates/articles/app_codelab2_basic.html
index b8820bb..4ead662 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab2_basic.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab2_basic.html
@@ -124,14 +124,14 @@ a Reload App option has been added when you run in Developer mode.</li>
<h2 id="you_should_also_read">You should also read</h2>
<ul>
-<li><a href="first_app.html">Create Your First App</a> tutorial</li>
-<li><a href="app.runtime.html">chrome.app.runtime</a> reference</li>
-<li><a href="app.window.html">chrome.app.window</a> reference</li>
+<li><a href="first_app">Create Your First App</a> tutorial</li>
+<li><a href="app.runtime">chrome.app.runtime</a> reference</li>
+<li><a href="app.window">chrome.app.window</a> reference</li>
</ul>
<h2 id="what_39_s_next_">What's next?</h2>
-<p>In <a href="app_codelab3_mvc.html">3 - Create MVC</a>,
+<p>In <a href="app_codelab3_mvc">3 - Create MVC</a>,
you will use either pure JavaScript or
<a href="http://angularjs.org/">AngluarJS</a>
to build your app's model, view, and controller.</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab3_mvc.html b/chrome/common/extensions/docs/templates/articles/app_codelab3_mvc.html
index 6a22f9c..00212c9 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab3_mvc.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab3_mvc.html
@@ -9,7 +9,7 @@ is the Model-View-Controller (MVC) and its variants,
like Model-View-Presentation (MVP).</p>
<p>There are several frameworks to help apply
-<a href="app_frameworks.html">MVC concepts</a>
+<a href="app_frameworks">MVC concepts</a>
to a Javascript application, and most of them,
as long as they are CSP compliant, can be used in a Chrome App.
In this lab,
@@ -405,7 +405,7 @@ Check the results by reloading the app: open the app, right-click and select Rel
<ul>
<li><p>Chrome Apps are
-<a href="offline_apps.html">offline first</a>,
+<a href="offline_apps">offline first</a>,
so the recommended way to include third-party scripts is to download
and package them inside your app.</p></li>
<li><p>You can use any framework you want,
@@ -418,11 +418,11 @@ Use them, specially if you want to build a non-trivial application.</p></li>
<h2 id="you_should_also_read">You should also read</h2>
<ul>
-<li><p><a href="angular_framework.html">Build Apps with AngularJS</a> tutorial</p></li>
+<li><p><a href="angular_framework">Build Apps with AngularJS</a> tutorial</p></li>
<li><p><a href="http://angularjs.org/">AngularJS Todo</a> tutorial</p></li>
</ul>
<h2 id="what_39_s_next_">What's next?</h2>
-<p>In <a href="app_codelab5_data.html">4 - Save and Fetch Data</a>,
+<p>In <a href="app_codelab5_data">4 - Save and Fetch Data</a>,
you will modify your Todo list app so that Todo items are saved.</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab5_data.html b/chrome/common/extensions/docs/templates/articles/app_codelab5_data.html
index 73e0fea..684f6b1 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab5_data.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab5_data.html
@@ -1,11 +1,11 @@
<h1 id="lab_5_manage_data">Save and Fetch Data</h1>
-<p>The <a href="app_codelab3_mvc.html">sample from Lab 3</a>
+<p>The <a href="app_codelab3_mvc">sample from Lab 3</a>
uses a static array of Todos.
Every time your app restarts,
whatever you&#39;ve changed is lost.
In this section, we will save every change using
-<a href="storage.html">chrome.storage.sync</a>.
+<a href="storage">chrome.storage.sync</a>.
</p>
<p>
@@ -407,26 +407,26 @@ or <a href="https://github.com/GoogleChrome/chrome-app-codelab/tree/master/lab5_
<h2 id="challenge_">Challenge</h2>
-<p>The current code only saves the file reference, but it doesn&#39;t open the file. Using the <a href="http://www.html5rocks.com/en/tutorials/file/filesystem/">HTML5 Filesystem API</a>, save the file contents in a sandboxed filesystem. When the Todo item is archived, remove the corresponding file from the sandboxed filesystem. Add an &quot;open&quot; link on each Todo that has an associated file. When the item is clicked and the file exists in the sandboxed filesystem, use the Chrome App <a href="fileSystem.html">Filesystem API</a> to request a writable FileEntry from the user. Save the file data from the sandboxed filesystem into that entry.</p>
+<p>The current code only saves the file reference, but it doesn&#39;t open the file. Using the <a href="http://www.html5rocks.com/en/tutorials/file/filesystem/">HTML5 Filesystem API</a>, save the file contents in a sandboxed filesystem. When the Todo item is archived, remove the corresponding file from the sandboxed filesystem. Add an &quot;open&quot; link on each Todo that has an associated file. When the item is clicked and the file exists in the sandboxed filesystem, use the Chrome App <a href="fileSystem">Filesystem API</a> to request a writable FileEntry from the user. Save the file data from the sandboxed filesystem into that entry.</p>
<p class="note"><b>Tip:</b> managing file entries using the raw HTML5 Filesystem API is not trivial. You might want to use a wrapper library, like Eric Bidelman&#39;s <a href="https://github.com/ebidel/filer.js">filer.js</a>.</p>
<h2 id="takeaways_">Takeaways</h2>
<ul>
-<li><p>Use <a href="storage.html">chrome.storage.sync</a> to save small data that you need to be sync&#39;ed among devices, like configuration options, application state, etc. The sync is automatic, as long as the same user is logged into Chrome on all devices.</p></li>
+<li><p>Use <a href="storage">chrome.storage.sync</a> to save small data that you need to be sync&#39;ed among devices, like configuration options, application state, etc. The sync is automatic, as long as the same user is logged into Chrome on all devices.</p></li>
<li><p>Chrome Apps support almost all HTML5 APIs, such as drag and drop.
HTML Filesystem API is also supported, with extra features from the Chrome App&#39;s
-<a href="fileSystem.html">Filesystem API</a>,
+<a href="fileSystem">Filesystem API</a>,
like asking the user to pick files on her local disk for read and write.
The vanilla HTML5 Filesystem API only allows access to a sandboxed filesystem.</p></li>
</ul>
<h2 id="you_should_also_read">You should also read</h2>
-<p><a href="app_storage.html">Manage Data</a> tutorial</p>
+<p><a href="app_storage">Manage Data</a> tutorial</p>
<h2 id="what_39_s_next_">What's next?</h2>
-<p>In <a href="app_codelab6_lifecycle.html">5 - Manage App Lifecycle</a>,
+<p>In <a href="app_codelab6_lifecycle">5 - Manage App Lifecycle</a>,
you will learn the basics of the Chrome App lifecycle. </p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab6_lifecycle.html b/chrome/common/extensions/docs/templates/articles/app_codelab6_lifecycle.html
index 8e7000b..9b66fd1 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab6_lifecycle.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab6_lifecycle.html
@@ -61,7 +61,7 @@ only restoring it if the <code>onRestarted</code> event is triggered.</p>
<p class="note"><b>Note:</b>
We learned about <code>chrome.storage.sync</code> before, but
-<a href="storage.html#using-sync">chrome.storage.local</a>
+<a href="storage#using-sync">chrome.storage.local</a>
wasn&#39;t mentioned until now.
Both have exactly the same syntax,
but the semantics of <code>chrome.storage.local</code> is, as the name says, completely local.
@@ -201,11 +201,11 @@ you can move logic that is shared amoung windows to the event page.</li>
<h2 id="you_should_also_read">You should also read</h2>
-<p><a href="app_lifecycle.html">Manage App Lifecycle</a> tutorial</p>
+<p><a href="app_lifecycle">Manage App Lifecycle</a> tutorial</p>
<h2 id="what_39_s_next_">What's next?</h2>
-<p>In <a href="app_codelab7_useridentification.html">6 - Access User's Data</a>,
+<p>In <a href="app_codelab7_useridentification">6 - Access User's Data</a>,
you will learn how to identify users and use OAuth2.0 to access Google and other third party services.</p>
<p class="note"><b>Note:</b>
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab7_useridentification.html b/chrome/common/extensions/docs/templates/articles/app_codelab7_useridentification.html
index 3da1ee3..7f7f289 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab7_useridentification.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab7_useridentification.html
@@ -1,7 +1,7 @@
<h1 id="lab_7_user_identity">Access User's Data</h1>
<p>Most modern applications are attached to the web to synchronize data. When synchronizing data, you need to identify who the user is.
-Chrome Apps come with an <a href="experimental.identity.html">identity API</a> that makes it easy to integrate either with Google accounts or with any other service that supports OAuth.</p>
+Chrome Apps come with an <a href="experimental.identity">identity API</a> that makes it easy to integrate either with Google accounts or with any other service that supports OAuth.</p>
<ol>
<li> Built in - Google Authenticiation</li>
@@ -179,11 +179,11 @@ and launch the app from a new tab.</p>
<h2 id="you_should_also_read">You should also read</h2>
-<p><a href="app_identity.html">Identify User</a> tutorial</p>
+<p><a href="app_identity">Identify User</a> tutorial</p>
<h2 id="what_39_s_next_">What's next?</h2>
-<p>In <a href="app_codelab8_webresources.html">7 - Access Web Resources</a>,
+<p>In <a href="app_codelab8_webresources">7 - Access Web Resources</a>,
you will learn how to load and show images from a remote URL.</p>
<p class="note"><b>Note:</b> Up until now, the code in each lab builds upon the previous lab code sample.
diff --git a/chrome/common/extensions/docs/templates/articles/app_codelab8_webresources.html b/chrome/common/extensions/docs/templates/articles/app_codelab8_webresources.html
index b3cdf1c..4db8256 100644
--- a/chrome/common/extensions/docs/templates/articles/app_codelab8_webresources.html
+++ b/chrome/common/extensions/docs/templates/articles/app_codelab8_webresources.html
@@ -1,7 +1,7 @@
<h1 id="lab_8_web_resources">Access Web Resources</h1>
<p>Chrome Apps have a strict
-<a href="contentSecurityPolicy.html">Content Security Policy</a>
+<a href="contentSecurityPolicy">Content Security Policy</a>
which will not let the user execute code or load resources that are hosted remotely.</p>
<p>Many applications, however, need to be able to load and display content from a remote location. A News Reader, for example, needs to display remote content inline or load and show images from a remote URL.</p>
@@ -12,7 +12,7 @@ which will not let the user execute code or load resources that are hosted remot
<p>Chrome Apps offer developers the ability
to securely render third-party content in the <code>&lt;webview&gt;</code> tag.
-A <a href="webview_tag.html">webview</a>
+A <a href="webview_tag">webview</a>
is like an iframe that you can control with greater flexibility and added security.
It runs in a separate sandboxed process and can&#39;t communicate directly with the application.</p>
@@ -145,7 +145,7 @@ and launch the app from a new tab.</p>
<p class="note"><b></b> Refused to load the image &#39;http://angularjs.org/img/AngularJS-large.png&#39; because it violates the following Content Security Policy directive: &quot;img-src &#39;self&#39; data: chrome-extension-resource:&quot;.</p>
-<p>Chrome Apps cannot load any external resource directly in the DOM, because of the <a href="contentSecurityPolicy.html">CSP restrictions</a>.</p>
+<p>Chrome Apps cannot load any external resource directly in the DOM, because of the <a href="contentSecurityPolicy">CSP restrictions</a>.</p>
<p>To avoid this restriction, you can use XHR requests, grab the blob corresponding to the remote file and use it appropriately.
For example, <code>&lt;img&gt;</code> tags can use a blob URL.
@@ -447,7 +447,7 @@ that's much more robust.</p>
<ul>
<li><p>The <code>&lt;webview&gt;</code> tag allows you to have a controlled browser inside your app.
You can use it if you have part of your application that is not CSP compatible and you don&#39;t have resources to migrate it immediately, for example.
-One feature we didn&#39;t mention here is that webviews can communicate with your app and vice-versa using asynchronous <a href="app_external.html#postMessage">postMessages</a>.</p></li>
+One feature we didn&#39;t mention here is that webviews can communicate with your app and vice-versa using asynchronous <a href="app_external#postMessage">postMessages</a>.</p></li>
<li><p>Loading resources like images from the web is not straightforward compared to a standard web page.
But it&#39;s not too different from traditional native platforms, where you need to handle the resource download and, only when it is correctly downloaded, you can render it in the UI. We have also developed <a href="https://github.com/GoogleChrome/apps-resource-loader">a sample library</a> to asynchronously handle resource loading from XHR calls. Feel free to use it in your projects.</p></li>
</ul>
@@ -455,11 +455,11 @@ But it&#39;s not too different from traditional native platforms, where you need
<h2 id="you_should_also_read">You should also read</h2>
<ul>
-<li><a href="webview_tag.html">Webview Tag API</a> reference</li>
-<li><a href="app_external.html">Embed Content</a> tutorial</li>
+<li><a href="webview_tag">Webview Tag API</a> reference</li>
+<li><a href="app_external">Embed Content</a> tutorial</li>
</ul>
<h2 id="what_39_s_next_">What's next?</h2>
-<p>In <a href="app_codelab_10_publishing.html">8 - Publish App</a>,
+<p>In <a href="app_codelab_10_publishing">8 - Publish App</a>,
we finish off with instructions on how to publish your app in the Chrome Web Store.</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_csp.html b/chrome/common/extensions/docs/templates/articles/app_csp.html
index a5b7677..0ecce93 100644
--- a/chrome/common/extensions/docs/templates/articles/app_csp.html
+++ b/chrome/common/extensions/docs/templates/articles/app_csp.html
@@ -8,7 +8,7 @@ is a good starting point.
That document covers the broader web platform view of CSP;
Chrome App CSP isn't as flexible.
You should also read the
-<a href="/extensions/contentSecurityPolicy.html">Chrome extension Content Security Policy</a>,
+<a href="/extensions/contentSecurityPolicy">Chrome extension Content Security Policy</a>,
as it's the foundation for the Chrome App CSP.
For brevity's sake,
we don't repeat the same information here.
@@ -98,7 +98,7 @@ that you want to do ‘eval’ things to.
Sandboxing lifts CSP on the content that you specify.
If you want to use the very powerful Chrome APIs in your Chrome App,
your sandboxed content can't directly interact with these APIs
-(see <a href="app_external.html#sandboxing">Sandbox local content</a>).
+(see <a href="app_external#sandboxing">Sandbox local content</a>).
</p>
<h3 id="remote_resources">Access remote resources</h3>
@@ -107,7 +107,7 @@ your sandboxed content can't directly interact with these APIs
You can fetch remote resources via <code>XMLHttpRequest</code>
and serve them via <code>blob:</code>, <code>data:</code>,
or <code>filesystem:</code> URLs
-(see <a href="app_external.html#external">Referencing external resources</a>).
+(see <a href="app_external#external">Referencing external resources</a>).
</p>
<p>
@@ -120,7 +120,7 @@ because they have good fallback behavior when offline or under spotty connectivi
<p>
Instead of using an iframe,
you can call out to an external URL using an object tag
-(see <a href="app_external.html#webview">Embed external web pages</a>).
+(see <a href="app_external#webview">Embed external web pages</a>).
</p>
<p class="backtotop"><a href="#top">Back to top</a></p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_deprecated.html b/chrome/common/extensions/docs/templates/articles/app_deprecated.html
index bf670f7..a79e415 100644
--- a/chrome/common/extensions/docs/templates/articles/app_deprecated.html
+++ b/chrome/common/extensions/docs/templates/articles/app_deprecated.html
@@ -48,8 +48,8 @@ and potential work-arounds:
<tr>
<td>External resources</td>
<td>Use the <code>webview</code> tag for iframes.
- See <a href="app_external.html">Embed Content</a>
- and <a href="webview_tag.html">Webview Tag API</a>.
+ See <a href="app_external">Embed Content</a>
+ and <a href="webview_tag">Webview Tag API</a>.
Video and audio are allowed to have non-local URLs.</td>
</tr>
<tr>
@@ -100,7 +100,7 @@ and potential work-arounds:
<tr>
<td>webSql</td>
<td>Use IndexedDB or
- <a href="app_storage.html">Filesystem API</a>.</td>
+ <a href="app_storage">Filesystem API</a>.</td>
</tr>
</table>
diff --git a/chrome/common/extensions/docs/templates/articles/app_external.html b/chrome/common/extensions/docs/templates/articles/app_external.html
index 609b3b9..2a375fb 100644
--- a/chrome/common/extensions/docs/templates/articles/app_external.html
+++ b/chrome/common/extensions/docs/templates/articles/app_external.html
@@ -2,7 +2,7 @@
<p>
-The <a href="app_architecture.html#security">Chrome Apps security model</a> disallows
+The <a href="app_architecture#security">Chrome Apps security model</a> disallows
external content in iframes and
the use of inline scripting and <code>eval()</code>.
You can override these restrictions,
@@ -27,7 +27,7 @@ Check out the
<h2 id="external">Referencing external resources</h2>
<p>
-The <a href="contentSecurityPolicy.html">Content Security Policy</a> used by apps disallows
+The <a href="contentSecurityPolicy">Content Security Policy</a> used by apps disallows
the use of many kinds of remote URLs, so you can't directly reference external
images, stylesheets, or fonts from an app page. Instead, you can use use
cross-origin XMLHttpRequests to fetch these resources,
@@ -68,7 +68,7 @@ xhr.onload = function(e) {
xhr.send();
</pre>
-<p>You may want to <a href="offline_apps.html#saving-locally">save</a>
+<p>You may want to <a href="offline_apps#saving-locally">save</a>
these resources locally, so that they are available offline.</p>
<h2 id="webview">Embed external web pages</h2>
@@ -127,7 +127,7 @@ These pages are then exempt from their Content Security Policy.
Sandboxed pages can use iframes, inline scripting,
and <code>eval()</code>.
Check out the manifest field description for
-<a href="manifest/sandbox.html">sandbox</a>.
+<a href="manifest/sandbox">sandbox</a>.
</p>
<p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_frameworks.html b/chrome/common/extensions/docs/templates/articles/app_frameworks.html
index 88bd908..1aa383e 100644
--- a/chrome/common/extensions/docs/templates/articles/app_frameworks.html
+++ b/chrome/common/extensions/docs/templates/articles/app_frameworks.html
@@ -118,7 +118,7 @@ If the data needs to be persistent, it also makes an async save to the server.
In rich client-side web app development such as Chrome Apps,
keeping the data persistent in local storage is also crucial.
In this case, the controller also handles saving the data
-to the client-side storage such as <a href="app_storage.html">FileSystem API</a>.
+to the client-side storage such as <a href="app_storage">FileSystem API</a>.
</p>
<p>
@@ -197,8 +197,8 @@ This is interesting in the modern web app design
because you often interact with more than one persistent data layer
such as a remote server and browser’s local storage.
Chrome Apps provides both
-<a href="storage.html">Chrome Storage API</a> and
-<a href="fileSystem.html">HTML 5 fileSystem API</a> for client side storage.
+<a href="storage">Chrome Storage API</a> and
+<a href="fileSystem">HTML 5 fileSystem API</a> for client side storage.
</p>
<p>Pros:</p>
@@ -287,17 +287,17 @@ Cons:
<p>
MVC is crucial to designing Chrome Apps.
-We recommend the following <a href="contentSecurityPolicy.html">CSP&ndash;Compliant</a> MVC frameworks
+We recommend the following <a href="contentSecurityPolicy">CSP&ndash;Compliant</a> MVC frameworks
for writing secure and scalable Chrome Apps:
</p>
<ul>
<li><a href="http://angularjs.org/">AngularJS</a>
- (<a href="https://github.com/GoogleChrome/textdrive-app">Text Drive Reference App</a> and <a href="angular_framework.html">Build Apps with AngularJS tutorial</a>)</li>
+ (<a href="https://github.com/GoogleChrome/textdrive-app">Text Drive Reference App</a> and <a href="angular_framework">Build Apps with AngularJS tutorial</a>)</li>
<li><a href="http://www.kendoui.com/">Kendo UI</a>
(<a href="https://github.com/GoogleChrome/kendo-photo-booth-app">Photo Booth Reference App</a>)</li>
<li><a href="http://www.sencha.com/">Sencha</a>
- (<a href="https://github.com/GoogleChrome/sencha-video-player-app">Video Player Reference App</a> and <a href="sencha_framework.html">Build Apps with Sencha Ext JS tutorial</a>)</li>
+ (<a href="https://github.com/GoogleChrome/sencha-video-player-app">Video Player Reference App</a> and <a href="sencha_framework">Build Apps with Sencha Ext JS tutorial</a>)</li>
</ul>
<h2 id="resources">Useful resources</h2>
diff --git a/chrome/common/extensions/docs/templates/articles/app_identity.html b/chrome/common/extensions/docs/templates/articles/app_identity.html
index e17b9d5..dcfcc28 100644
--- a/chrome/common/extensions/docs/templates/articles/app_identity.html
+++ b/chrome/common/extensions/docs/templates/articles/app_identity.html
@@ -7,7 +7,7 @@ they don’t load over HTTP and can’t perform redirects or set cookies.
</p>
<p>
-Use the <a href="identity.html">Chrome Identity API</a>
+Use the <a href="identity">Chrome Identity API</a>
to authenticate users:
the <code>getAuthToken</code> for users logged into their Google Account and
the <code>launchWebAuthFlow</code> for users logged into a non-Google account.
@@ -60,7 +60,7 @@ Here are the five steps you need to complete:
<p>
You need to make sure the identity permission is in your manifest.
You can then upload your app to the apps and extensions management
-page (see <a href="publish_app.html">Publish</a>).
+page (see <a href="publish_app">Publish</a>).
</p>
<pre data-filename="manifest.json">
diff --git a/chrome/common/extensions/docs/templates/articles/app_intents.html b/chrome/common/extensions/docs/templates/articles/app_intents.html
index 2903999..63f1226 100644
--- a/chrome/common/extensions/docs/templates/articles/app_intents.html
+++ b/chrome/common/extensions/docs/templates/articles/app_intents.html
@@ -198,7 +198,7 @@ Web intents are no longer supported.
<p>
If your application or extension is localized
as per the guidelines in
-<a href="i18n.html">Internationalization (i18n)</a>,
+<a href="i18n">Internationalization (i18n)</a>,
you can localize the title of your intent in the picker
using the exact same infrastructure:
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_lifecycle.html b/chrome/common/extensions/docs/templates/articles/app_lifecycle.html
index b33a853..c5b9fc6 100644
--- a/chrome/common/extensions/docs/templates/articles/app_lifecycle.html
+++ b/chrome/common/extensions/docs/templates/articles/app_lifecycle.html
@@ -147,9 +147,9 @@ or when it has been updated.
Any time this function is called,
the <code>onInstalled</code> event is fired.
The event page can listen for this event and use the
-<a href="storage.html">Storage API</a>
+<a href="storage">Storage API</a>
to store and update local settings
-(see also <a href="app_storage.html#options">Storage options</a>).
+(see also <a href="app_storage#options">Storage options</a>).
</p>
<pre data-filename="background.js">
diff --git a/chrome/common/extensions/docs/templates/articles/app_manifestVersion.html b/chrome/common/extensions/docs/templates/articles/app_manifestVersion.html
index 26ce8b8..db874fa 100644
--- a/chrome/common/extensions/docs/templates/articles/app_manifestVersion.html
+++ b/chrome/common/extensions/docs/templates/articles/app_manifestVersion.html
@@ -2,7 +2,7 @@
<p>
Applications are simply bundles of resources, wrapped
- up with a <a href="manifest.html"><code>manifest.json</code></a> file that
+ up with a <a href="manifest"><code>manifest.json</code></a> file that
describes the package's contents. The format of this file is generally stable,
but occasionally breaking changes must be made to address important issues.
Developers should specify which version of the manifest specification their
@@ -28,6 +28,6 @@
<p>
Manifest version 1 only applied to extensions and hosted apps, not
Chrome Apps. It
- was <a href="../extensions/manifestVersion.html">deprecated</a> in
+ was <a href="../extensions/manifestVersion">deprecated</a> in
Chrome 18.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_network.html b/chrome/common/extensions/docs/templates/articles/app_network.html
index 9d66867..378ae21 100644
--- a/chrome/common/extensions/docs/templates/articles/app_network.html
+++ b/chrome/common/extensions/docs/templates/articles/app_network.html
@@ -7,9 +7,9 @@ This doc shows you how to use TCP and UDP
to send and receive data over the network.
For more information,
see the
-<a href="sockets_udp.html">Sockets UDP</a>,
-<a href="sockets_tcp.html">Sockets TCP</a> and
-<a href="sockets_tcp_server.html">Sockets TCP Server</a> APIs.
+<a href="sockets_udp">Sockets UDP</a>,
+<a href="sockets_tcp">Sockets TCP</a> and
+<a href="sockets_tcp_server">Sockets TCP Server</a> APIs.
</p>
<p class="note">
@@ -29,7 +29,7 @@ and <a href="https://github.com/GoogleChrome/chrome-app-samples/tree/master/udp"
<p>
For Chrome Apps that use TCP or UDP,
-add the <a href="manifest/sockets.html">sockets</a> entry to the manifest
+add the <a href="manifest/sockets">sockets</a> entry to the manifest
and specify the IP end point permission rules.
For example:
</p>
@@ -63,7 +63,7 @@ The syntax of socket "host-pattern" entries follows these rules:
</pre>
<p>
-See <a href="manifest/sockets.html">Sockets Manifest Key</a> for detailed
+See <a href="manifest/sockets">Sockets Manifest Key</a> for detailed
description of the syntax.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/app_serial.html b/chrome/common/extensions/docs/templates/articles/app_serial.html
index 2266472..05f5455 100644
--- a/chrome/common/extensions/docs/templates/articles/app_serial.html
+++ b/chrome/common/extensions/docs/templates/articles/app_serial.html
@@ -4,9 +4,9 @@
</p>
<p>
-This document describes how to use the <a href="serial.html">serial API</a> to read
+This document describes how to use the <a href="serial">serial API</a> to read
and write from serial devices. Chrome Apps can also connect to
-<a href="app_usb.html">USB</a> and <a href="app_bluetooth.html">Bluetooth</a> devices.
+<a href="app_usb">USB</a> and <a href="app_bluetooth">Bluetooth</a> devices.
</p>
<p class="note">
diff --git a/chrome/common/extensions/docs/templates/articles/app_storage.html b/chrome/common/extensions/docs/templates/articles/app_storage.html
index abb0170..a9c19f3 100644
--- a/chrome/common/extensions/docs/templates/articles/app_storage.html
+++ b/chrome/common/extensions/docs/templates/articles/app_storage.html
@@ -6,18 +6,18 @@ of sending or receiving data.
Starting with the basics,
you should use an MVC framework to help you design and implement your app
so that data is completely separate from the app's view on that data
-(see <a href="app_frameworks.html">MVC Architecture</a>).
+(see <a href="app_frameworks">MVC Architecture</a>).
</p>
<p>
You also need to think about how data is handled when your app is offline
-(see <a href="offline_apps.html">Offline First</a>).
+(see <a href="offline_apps">Offline First</a>).
This doc briefly introduces the storage options
for sending, receiving, and saving data locally;
the remainder of the doc shows you how
to use Chrome's File System and Sync File System APIs
-(see also <a href="fileSystem.html">fileSystem API</a> and
-<a href="syncFileSystem.html">syncFileSystem API</a>).
+(see also <a href="fileSystem">fileSystem API</a> and
+<a href="syncFileSystem">syncFileSystem API</a>).
</p>
<p class="note">
@@ -36,19 +36,19 @@ Packaged apps use many different mechanisms
to send and receive data.
For external data (resources, web pages),
you need to be aware of the
-<a href="contentSecurityPolicy.html">Content Security Policy (CSP)</a>.
+<a href="contentSecurityPolicy">Content Security Policy (CSP)</a>.
Similar to Chrome Extensions,
you can use
-<a href="app_external.html#external">cross-origin XMLHttpRequests</a>
+<a href="app_external#external">cross-origin XMLHttpRequests</a>
to communicate with remote servers.
You can also isolate external pages,
so that the rest of your app is secure
-(see <a href="app_external.html#webview">Embed external web pages</a>).
+(see <a href="app_external#webview">Embed external web pages</a>).
</p>
<p>
When saving data locally,
-you can use the <a href="storage.html">Chrome Storage API</a>
+you can use the <a href="storage">Chrome Storage API</a>
to save small amounts of string data and
IndexedDB to save structured data.
With IndexedDB, you can persist JavaScript objects
diff --git a/chrome/common/extensions/docs/templates/articles/app_usb.html b/chrome/common/extensions/docs/templates/articles/app_usb.html
index 75ce3e7..0a523d5 100644
--- a/chrome/common/extensions/docs/templates/articles/app_usb.html
+++ b/chrome/common/extensions/docs/templates/articles/app_usb.html
@@ -1,11 +1,11 @@
<h1>USB Devices</h1>
<p>
-This document describes how to use the <a href="usb.html">USB API</a> to communicate
+This document describes how to use the <a href="usb">USB API</a> to communicate
with USB devices. Some devices are not accessible through the USB API
(see the <a href="#caveats">Caveats</a> section below for details).
-Chrome Apps can also connect to <a href="serial.html">serial</a> and
-<a href="bluetooth.html">Bluetooth</a> devices.
+Chrome Apps can also connect to <a href="serial">serial</a> and
+<a href="bluetooth">Bluetooth</a> devices.
</p>
<p class="note">
diff --git a/chrome/common/extensions/docs/templates/articles/apps.html b/chrome/common/extensions/docs/templates/articles/apps.html
index de1eaaf..d2d045d 100644
--- a/chrome/common/extensions/docs/templates/articles/apps.html
+++ b/chrome/common/extensions/docs/templates/articles/apps.html
@@ -7,7 +7,7 @@ All content in this doc refers to the legacy version of packaged apps.
Your legacy packaged apps will still work,
but you won't have access to any of the new APIs.
Check out the new version of
-<a href="../apps/about_apps.html">Chrome Apps</a>;
+<a href="../apps/about_apps">Chrome Apps</a>;
otherwise, you're missing out!
</p>
@@ -26,8 +26,8 @@ that's bundled into a <code>.crx</code> file
and can use Chrome extension features.
You build a packaged app just like you build an extension,
except that a packaged app can't include a
-<a href="browserAction.html">browser action</a> or
-<a href="pageAction.html">page action</a>.
+<a href="browserAction">browser action</a> or
+<a href="pageAction">page action</a>.
Instead, a packaged app includes at least one HTML file
within its <code>.crx</code> file
that provides the app's user interface.
@@ -38,7 +38,7 @@ Packaged apps are a type of
<a href="http://code.google.com/chrome/apps/">installable web app</a>&mdash;a
web app that can be installed in Chrome.
The other type of installable web app is a
-<a href="http://code.google.com/chrome/apps/docs/developers_guide.html">hosted app</a>,
+<a href="http://code.google.com/chrome/apps/docs/developers_guide">hosted app</a>,
which is an ordinary web app with a bit of additional metadata.
</p>
@@ -158,19 +158,19 @@ tabs that contain app's pages.
They also should provide a 128x128 icon,
but not a 48x48 icon.
See the manifest documentation for the
-<a href="manifest/icons.html">"icons" field</a>
+<a href="manifest/icons">"icons" field</a>
for more information.
</p>
<p>
For further details on what a packaged app's manifest can contain, see the
-<a href="manifest.html">manifest documentation</a>.
+<a href="manifest">manifest documentation</a>.
</p>
<h2 id="next">What next?</h2>
<p>
-Read the <a href="overview.html">Overview</a> to learn
+Read the <a href="overview">Overview</a> to learn
basic concepts about extensions.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/autoupdate.html b/chrome/common/extensions/docs/templates/articles/autoupdate.html
index 763694d..09e658f 100644
--- a/chrome/common/extensions/docs/templates/articles/autoupdate.html
+++ b/chrome/common/extensions/docs/templates/articles/autoupdate.html
@@ -6,8 +6,8 @@
<p>If you publish using the <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Developer Dashboard</a>, you can <em>ignore this page</em>. You can use the dashboard to release updated versions to users, as well as to the Chrome Web Store.</p>
<p>If you want to host somewhere other than the store, keep reading.
-You should also read <a href="hosting.html">Hosting</a> and
-<a href="packaging.html">Packaging</a>.</p>
+You should also read <a href="hosting">Hosting</a> and
+<a href="packaging">Packaging</a>.</p>
<p class="warning"><b>Warning:</b>
As of M33,
@@ -23,7 +23,7 @@ However, extensions hosted on the Chrome Web Store are updated
via the Chrome update mechanism which developers do not control.
Extension developers should be careful about updating extensions
that have a dependency on the native binary
-(for example, legacy extensions using <a href="npapi.html">NPAPI</a>).
+(for example, legacy extensions using <a href="npapi">NPAPI</a>).
</p>
<h2 id="overview">Overview</h2>
@@ -34,7 +34,7 @@ that have a dependency on the native binary
<h2 id="update_url">Update URL</h2>
-<p>If you're hosting your own extension or app, you need to add the "update_url" field to your <a href="manifest.html"><code>manifest.json</code></a> file,
+<p>If you're hosting your own extension or app, you need to add the "update_url" field to your <a href="manifest"><code>manifest.json</code></a> file,
like this:</p>
<pre data-filename="manifest.json">
@@ -66,7 +66,7 @@ and <strong>&lt;updatecheck></strong> elements of the update manifest:
<p><b>appid</b><br>
The extension or app ID, generated based on a hash of the public key,
-as described in <a href="packaging.html">Packaging</a>. You can find the
+as described in <a href="packaging">Packaging</a>. You can find the
ID of an extension or Chrome App by going to the Extensions page (<b>chrome://extensions</b>).
</p>
{{?is_apps}}
diff --git a/chrome/common/extensions/docs/templates/articles/background_pages.html b/chrome/common/extensions/docs/templates/articles/background_pages.html
index a96bbc1..05ac760 100644
--- a/chrome/common/extensions/docs/templates/articles/background_pages.html
+++ b/chrome/common/extensions/docs/templates/articles/background_pages.html
@@ -3,7 +3,7 @@
<p id="eventPageWarning" class="warning">
<em>Caution:</em> Consider using event pages instead.
- <a href="event_pages.html">Learn more</a>.
+ <a href="event_pages">Learn more</a>.
</p>
<p>
@@ -13,11 +13,11 @@ Background pages to the rescue.
</p>
<p>
-As the <a href="overview.html#arch">architecture overview</a> explains,
+As the <a href="overview#arch">architecture overview</a> explains,
the background page is an HTML page that runs in the extension process.
It exists for the lifetime of your extension,
and only one instance of it at a time is active. (Exception: if your
-extension uses <a href="manifest/incognito.html">incognito</a>
+extension uses <a href="manifest/incognito">incognito</a>
"split" mode, a second instance is created for incognito windows.)
</p>
@@ -37,7 +37,7 @@ the background page tells the views to update.
<p>
Register your background page in the
-<a href="manifest.html">extension manifest</a>.
+<a href="manifest">extension manifest</a>.
In the common case, a background page
does not require any HTML markup.
These kind of background pages can be
@@ -83,7 +83,7 @@ property instead:
If you need the browser to start up early&mdash;so
you can display notifications, for example&mdash;then
you might also want to specify the
-<a href="declare_permissions.html#background">"background" permission</a>.
+<a href="declare_permissions#background">"background" permission</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/cloudMessaging.html b/chrome/common/extensions/docs/templates/articles/cloudMessaging.html
index 99e601b..ff6d032 100644
--- a/chrome/common/extensions/docs/templates/articles/cloudMessaging.html
+++ b/chrome/common/extensions/docs/templates/articles/cloudMessaging.html
@@ -19,8 +19,8 @@ even when their calendaring app isn't open.
<p>This document describes how to set up and use GCM.
For additional information see the reference documentation
-for the <a href="pushMessaging.html">pushMessaging Chrome API</a> and the
-<a href="gcm_server.html">GCM service</a>.
+for the <a href="pushMessaging">pushMessaging Chrome API</a> and the
+<a href="gcm_server">GCM service</a>.
To get help with GCM or to give us feedback, see <a href="#feedback">Feedback</a>.
</p>
@@ -410,7 +410,7 @@ function showPushMessage(message) {
You need to add the "notifications" permission
to <code>manifest.json</code>
to use text notifications
-(see <a href="desktop_notifications.html">Desktop Notifications</a>):
+(see <a href="desktop_notifications">Desktop Notifications</a>):
</p>
<pre data-filename="manifest.json">
@@ -455,7 +455,7 @@ To test push messaging locally:
</p>
<ol>
- <li><a href="packaging.html">Package</a> a test version of
+ <li><a href="packaging">Package</a> a test version of
your app or extension on the Extensions management page
(chrome://extensions).
Your app or extension doesn't need to be running; it just needs
@@ -490,7 +490,7 @@ HTTP status code 500 (Internal Server Error).
One circumstance in which the ownership check commonly fails is when you are
developing an app and you run the app without uploading it and re-downloading
it from the Chrome Web Store. In this situation your app may not have a
-<a href="manifest/key.html">key</a> field in its manifest.json file.
+<a href="manifest/key">key</a> field in its manifest.json file.
The <code>key</code> field gives an app its Chrome Web Store ID
(a 32 character alphabetic code, such as "bafimiidcfafikaonocgmmcpbbhfjjik").
If you run a version of your app without a key, the app will use a
diff --git a/chrome/common/extensions/docs/templates/articles/cloudMessagingV2.html b/chrome/common/extensions/docs/templates/articles/cloudMessagingV2.html
index 65f420d..a4f776c 100644
--- a/chrome/common/extensions/docs/templates/articles/cloudMessagingV2.html
+++ b/chrome/common/extensions/docs/templates/articles/cloudMessagingV2.html
@@ -2,7 +2,7 @@
<h1 id="gcm">Google Cloud Messaging</h1>
<p>Google Cloud Messaging (GCM) is a service for both Android-powered device and
-Chrome instances to send and receive message data from servers. <a href="gcm.html">GCM Chrome
+Chrome instances to send and receive message data from servers. <a href="gcm">GCM Chrome
API</a> allows the Chrome apps or extensions to access the GCM
service for the signed-in Chrome users. The service works even if an app or
extension isn't currently running. For example, calendar updates could be pushed
@@ -13,7 +13,7 @@ Service</a> and <a href="https://developers.google.com/cloud/terms/">Google Clou
of Service</a>.</p>
<p>This document describes how to set up and use GCM. For additional information
-see the reference documentation for the <a href="gcm.html">GCM Chrome API</a> and
+see the reference documentation for the <a href="gcm">GCM Chrome API</a> and
the <a href="http://developer.android.com/google/gcm/index.html">GCM Service</a>. To get
help with GCM or to give us feedback, please see
<a href="#feedback">Feedback</a>.</p>
@@ -121,7 +121,7 @@ Android</strong> toggle to ON.</li>
<p>Please note that the <code>storage</code> permission is also provided here because the
sample codes below needs to persist some data via the
-<a href="storage.html">chrome.storage</a> API.</p>
+<a href="storage">chrome.storage</a> API.</p>
<h2 id="write_chrome_app_or_extension">Write Chrome App or Extension</h2>
@@ -234,7 +234,7 @@ recommended to stay unique across the lifetime of your app or extension, even
after it restarts. If you use the same message ID, there may be a chance that
the previous message gets overridden. If an auto-increment counter is used to
create the message ID, your app or extension should persist the counter value
-via <a href="storage.html">chrome.storage</a> API and restore it when the app
+via <a href="storage">chrome.storage</a> API and restore it when the app
reloads.</li>
<li>Destination ID that identifies the server. This is the project number from the
Google Developers Console plus the suffix "@gcm.googleapis.com".</li>
diff --git a/chrome/common/extensions/docs/templates/articles/contentSecurityPolicy.html b/chrome/common/extensions/docs/templates/articles/contentSecurityPolicy.html
index 47283ce..494ce61 100644
--- a/chrome/common/extensions/docs/templates/articles/contentSecurityPolicy.html
+++ b/chrome/common/extensions/docs/templates/articles/contentSecurityPolicy.html
@@ -18,7 +18,7 @@
extension enables you to carefully consider the resources that your extension
requires, and to ask the browser to ensure that those are the only resources
your extension has access to. These policies provide security over and above
- the <a href="declare_permissions.html">host permissions</a> your extension
+ the <a href="declare_permissions">host permissions</a> your extension
requests; they're an additional layer of protection, not a replacement.
</p>
@@ -26,7 +26,7 @@
On the web, such a policy is defined via an HTTP header or <code>meta</code>
element. Inside Chrome's extension system, neither is an appropriate
mechanism. Instead, an extension's policy is defined via the extension's
- <a href="manifest.html"><code>manifest.json</code></a> file as follows:
+ <a href="manifest"><code>manifest.json</code></a> file as follows:
</p>
<pre data-filename="manifest.json">
@@ -49,7 +49,7 @@
<h2 id="restrictions">Default Policy Restrictions</h2>
<p>
- Packages that do not define a <a href="manifestVersion.html">
+ Packages that do not define a <a href="manifestVersion">
<code>manifest_version</code>
</a> have no default content security policy. Those that select
<code>manifest_version</code> 2, have a default content security policy
@@ -98,7 +98,7 @@ function() { return foo && foo.bar && foo.bar.baz };
malicious third-party. It does, however, require you to write your code with a
clean separation between content and behavior (which you should of course do
anyway, right?). An example might make this clearer. You might try to write a
- <a href="browserAction.html#popups">Browser Action's popup</a> as a single
+ <a href="browserAction#popups">Browser Action's popup</a> as a single
<code>popup.html</code> containing:
</p>
@@ -311,9 +311,9 @@ function main() {
<p>
Making use of Google Analytics is the canonical example for this sort of
policy definition. It's common enough that we've provided an Analytics
- boilerplate of sorts in the <a href="samples.html#event-tracking-with-google-analytics">Event Tracking
+ boilerplate of sorts in the <a href="samples#event-tracking-with-google-analytics">Event Tracking
with Google Analytics</a> sample extension, and a
-<a href="tut_analytics.html">brief tutorial</a> that goes into more detail.
+<a href="tut_analytics">brief tutorial</a> that goes into more detail.
</p>
<h3 id="relaxing-eval">Evaluated JavaScript</h3>
@@ -341,7 +341,7 @@ function main() {
allows in order to increase security at the expense of convenience. To specify
that your extension can only load resources of <em>any</em> type (images, etc)
from its own package, for example, a policy of <code>default-src 'self'</code>
- would be appropriate. The <a href="samples.html#mappy">Mappy</a> sample
+ would be appropriate. The <a href="samples#mappy">Mappy</a> sample
extension is a good example of an extension that's been locked down above and
beyond the defaults.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/content_scripts.html b/chrome/common/extensions/docs/templates/articles/content_scripts.html
index c1bb6a6..fcccef4 100644
--- a/chrome/common/extensions/docs/templates/articles/content_scripts.html
+++ b/chrome/common/extensions/docs/templates/articles/content_scripts.html
@@ -29,7 +29,7 @@ They <b>cannot</b>:
<li>
Use chrome.* APIs
(except for parts of
- <a href="extension.html"><code>chrome.extension</code></a>)
+ <a href="extension"><code>chrome.extension</code></a>)
</li>
<li>
Use variables or functions defined by their extension's pages
@@ -44,10 +44,10 @@ These limitations aren't as bad as they sound.
Content scripts can <em>indirectly</em> use the chrome.* APIs,
get access to extension data,
and request extension actions
-by exchanging <a href="messaging.html">messages</a>
+by exchanging <a href="messaging">messages</a>
with their parent extension.
Content scripts can also
-make <a href="xhr.html">cross-site XMLHttpRequests</a>
+make <a href="xhr">cross-site XMLHttpRequests</a>
to the same sites as their parent extensions,
and they can
<a href="#host-page-communication">communicate with web pages</a>
@@ -61,7 +61,7 @@ learn about the
<p>If your content script's code should always be injected,
register it in the
-<a href="manifest.html">extension manifest</a>
+<a href="manifest">extension manifest</a>
using the <code>content_scripts</code> field,
as in the following example.
</p>
@@ -84,7 +84,7 @@ as in the following example.
<p>
If you want to inject the code only sometimes,
use the
-<a href="declare_permissions.html"><code>permissions</code></a> field instead,
+<a href="declare_permissions"><code>permissions</code></a> field instead,
as described in <a href="#pi">Programmatic injection</a>.
</p>
@@ -117,7 +117,7 @@ can have the following properties:</p>
<td>array of strings</td>
<td><em>Required.</em>
Specifies which pages this content script will be injected into.
- See <a href="match_patterns.html">Match Patterns</a>
+ See <a href="match_patterns">Match Patterns</a>
for more details on the syntax of these strings
and <a href="#match-patterns-globs">Match patterns and globs</a>
for information on how to exclude URLs.</td>
@@ -128,7 +128,7 @@ can have the following properties:</p>
<td><em>Optional.</em>
Excludes pages that this content script would otherwise be
injected into.
- See <a href="match_patterns.html">Match Patterns</a>
+ See <a href="match_patterns">Match Patterns</a>
for more details on the syntax of these strings
and <a href="#match-patterns-globs">Match patterns and globs</a>
for information on how to exclude URLs.</td>
@@ -224,7 +224,7 @@ For example, assume <code>matches</code> is <code>["http://*.nytimes.com/*"]</co
<p>
<p>
-Glob properties follow a different, more flexible syntax than <a href="match_patterns.html">match patterns</a>. Acceptable glob strings are URLs that may contain "wildcard" asterisks and question marks. The asterisk (*) matches any string of any length (including the empty string); the question mark (?) matches any single character.
+Glob properties follow a different, more flexible syntax than <a href="match_patterns">match patterns</a>. Acceptable glob strings are URLs that may contain "wildcard" asterisks and question marks. The asterisk (*) matches any string of any length (including the empty string); the question mark (?) matches any single character.
</p>
<p>
@@ -257,12 +257,12 @@ only when the user clicks a browser action's icon.
<p>
To insert code into a page,
your extension must have
-<a href="xhr.html#requesting-permission">cross-origin permissions</a>
+<a href="xhr#requesting-permission">cross-origin permissions</a>
for the page.
It also must be able to use the <code>chrome.tabs</code> module.
You can get both kinds of permission
using the manifest file's
-<a href="declare_permissions.html">permissions</a> field.
+<a href="declare_permissions">permissions</a> field.
</p>
<p>
@@ -383,7 +383,7 @@ document.getElementById("theButton").addEventListener("click",
First, be careful not to introduce security vulnerabilities into the web site
your content script is injected into. For example, if your content script
receives content from another web site (for example, by making an <a
-href="xhr.html">XMLHttpRequest</a>),
+href="xhr">XMLHttpRequest</a>),
be careful to filter that content for <a
href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site
scripting</a> attacks before injecting the content into the current page.
@@ -442,11 +442,11 @@ document.getElementById("someImage").src = imgURL;
<p>
You can find many
-<a href="samples.html#script">examples that use content scripts</a>.
+<a href="samples#script">examples that use content scripts</a>.
A simple example of communication via messages is in the
-<a href="samples.html#message-timer">Message Timer</a>.
-See <a href="samples.html#page-redder">Page Redder</a> and
-<a href="samples.html#email-this-page-(by-google)">Email This Page</a>
+<a href="samples#message-timer">Message Timer</a>.
+See <a href="samples#page-redder">Page Redder</a> and
+<a href="samples#email-this-page-(by-google)">Email This Page</a>
for examples of programmatic injection.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/declare_permissions.html b/chrome/common/extensions/docs/templates/articles/declare_permissions.html
index a32a64f..5daabb9 100644
--- a/chrome/common/extensions/docs/templates/articles/declare_permissions.html
+++ b/chrome/common/extensions/docs/templates/articles/declare_permissions.html
@@ -4,23 +4,23 @@
To use most chrome.* APIs,
your extension or app must declare its intent in the
"permissions" field of the
-<a href="manifest.html">manifest</a>.
+<a href="manifest">manifest</a>.
Each permission can be either one of a list of known strings
(such as "geolocation")
-or a <a href="match_patterns.html">match pattern</a>
+or a <a href="match_patterns">match pattern</a>
that gives access to one or more hosts.
Permissions help to limit damage
if your extension or app is compromised by malware.
Some permissions are also displayed to users before installation,
as detailed in
-<a href="permission_warnings.html">Permission Warnings</a>.
+<a href="permission_warnings">Permission Warnings</a>.
</p>
<p>
If an API requires you to declare a permission in the manifest,
then its documentation tells you how to do so.
For example,
-the <a href="storage.html">Storage</a> page
+the <a href="storage">Storage</a> page
shows you how to
declare the "storage" permission.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/desktop_notifications.html b/chrome/common/extensions/docs/templates/articles/desktop_notifications.html
index 0dab45c..9372b57 100644
--- a/chrome/common/extensions/docs/templates/articles/desktop_notifications.html
+++ b/chrome/common/extensions/docs/templates/articles/desktop_notifications.html
@@ -4,7 +4,7 @@
<code>webKitNotifications.createHTMLNotification()</code> in the
<a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">web notifications API</a> has been deprecated.
The new <a href="http://www.w3.org/TR/notifications/">web notifications API</a> only allows text.
-<a href="notifications.html">Chrome notifications API</a>
+<a href="notifications">Chrome notifications API</a>
will be promoted to stable soon and
web notifications will be updated
to use the new rich notifications format.
@@ -112,7 +112,7 @@ of using notifications in the
directory.
For other examples
and for help in viewing the source code,
-see <a href="samples.html">Samples</a>.
+see <a href="samples">Samples</a>.
</p>
<p>
diff --git a/chrome/common/extensions/docs/templates/articles/develop_apps.html b/chrome/common/extensions/docs/templates/articles/develop_apps.html
index 3d0402e..8b58e05 100644
--- a/chrome/common/extensions/docs/templates/articles/develop_apps.html
+++ b/chrome/common/extensions/docs/templates/articles/develop_apps.html
@@ -12,7 +12,7 @@ Please keep up to date with the API reference and documentation.
<p class="caution">
<b>Note:</b>
If you've written packaged apps before,
-your <a href="/extensions/apps.html">legacy packaged apps</a>
+your <a href="/extensions/apps">legacy packaged apps</a>
will still work the way they always have,
but they won't have access to the new APIs.
</p>
@@ -24,7 +24,7 @@ Chrome Apps and extensions share a common platform.
They can access many of the same APIs and
they have the same manifest and permissions format.
If you're familiar with the
-<a href="/extensions/index.html">Chrome Extension docs</a>,
+<a href="/extensions/index">Chrome Extension docs</a>,
then the Reference docs should seem familiar.
Many of the reference docs are shared;
we've filtered accessibility to docs that aren't.
@@ -34,11 +34,11 @@ we've filtered accessibility to docs that aren't.
<ul>
<li>Read the
- <a href="about_apps.html">Getting Started</a> guide.</li>
+ <a href="about_apps">Getting Started</a> guide.</li>
<li>Follow the
- <a href="app_codelab.html">Todo App Codelab</a>.</li>
+ <a href="app_codelab">Todo App Codelab</a>.</li>
<li>Check out the
- <a href="api_index.html">Chrome JavaScript APIs</a>.</li>
+ <a href="api_index">Chrome JavaScript APIs</a>.</li>
<li>Fork any and all
<a href="https://github.com/GoogleChrome/chrome-app-samples">chrome-app-samples</a> and make something of your own.</li>
<li>Watch the
diff --git a/chrome/common/extensions/docs/templates/articles/devguide.html b/chrome/common/extensions/docs/templates/articles/devguide.html
index b7d0689..3ee5c3e 100644
--- a/chrome/common/extensions/docs/templates/articles/devguide.html
+++ b/chrome/common/extensions/docs/templates/articles/devguide.html
@@ -2,8 +2,8 @@
<p>
These pages assume you've completed
-the <a href="getstarted.html">Getting Started</a> tutorial
-and <a href="overview.html">Overview</a>.
+the <a href="getstarted">Getting Started</a> tutorial
+and <a href="overview">Overview</a>.
</p>
<table class="simple">
@@ -14,32 +14,32 @@ and <a href="overview.html">Overview</a>.
<td colspan="2"> &nbsp;</td>
</tr>
<tr>
- <td> <a href="browserAction.html">Browser&nbsp;Actions</a> </td>
+ <td> <a href="browserAction">Browser&nbsp;Actions</a> </td>
<td> Add icons to the toolbar <em>(extensions only)</em> </td>
</tr>
<tr>
- <td> <a href="desktop_notifications.html">Desktop&nbsp;Notifications</a> </td>
+ <td> <a href="desktop_notifications">Desktop&nbsp;Notifications</a> </td>
<td> Notify users of important events </td>
</tr>
<tr>
- <td> <a href="omnibox.html">Omnibox</a> </td>
+ <td> <a href="omnibox">Omnibox</a> </td>
<td> Add a keyword to the address bar </td>
</tr>
<tr>
- <td> <a href="options.html">Options&nbsp;Pages</a> </td>
+ <td> <a href="options">Options&nbsp;Pages</a> </td>
<td> Let users customize your extension </td>
</tr>
<tr>
- <td> <a href="override.html">Override&nbsp;Pages</a> </td>
+ <td> <a href="override">Override&nbsp;Pages</a> </td>
<td> Implement your own version of standard browser pages
such as the New Tab page</td>
</tr>
<tr>
- <td> <a href="pageAction.html">Page&nbsp;Actions</a> </td>
+ <td> <a href="pageAction">Page&nbsp;Actions</a> </td>
<td> Add temporary icons inside the address bar <em>(extensions only)</em> </td>
</tr>
<tr>
- <td> <a href="themes.html">Themes</a> </td>
+ <td> <a href="themes">Themes</a> </td>
<td> Change the overall appearance of the browser </td>
</tr>
@@ -50,31 +50,31 @@ and <a href="overview.html">Overview</a>.
<td colspan="2"> &nbsp;</td>
</tr>
<tr>
- <td> <a href="bookmarks.html">Bookmarks</a> </td>
+ <td> <a href="bookmarks">Bookmarks</a> </td>
<td> Create, organize, and otherwise manipulate the user's bookmarks </td>
</tr>
<tr>
- <td> <a href="cookies.html">Cookies</a> </td>
+ <td> <a href="cookies">Cookies</a> </td>
<td> Explore and modify the browser's cookie system </td>
</tr>
<tr>
- <td> <a href="devtools.html">Developer&nbsp;Tools</a> </td>
+ <td> <a href="devtools">Developer&nbsp;Tools</a> </td>
<td> Add features to Chrome Developer Tools </td>
</tr>
<tr>
- <td> <a href="events.html">Events</a> </td>
+ <td> <a href="events">Events</a> </td>
<td> Detect when something interesting happens </td>
</tr>
<tr>
- <td> <a href="history.html">History</a> </td>
+ <td> <a href="history">History</a> </td>
<td> Interact with the browser's record of visited pages </td>
</tr>
<tr>
- <td> <a href="tabs.html">Tabs</a> </td>
+ <td> <a href="tabs">Tabs</a> </td>
<td> Create, modify, and rearrange tabs in the browser </td>
</tr>
<tr>
- <td> <a href="windows.html">Windows</a> </td>
+ <td> <a href="windows">Windows</a> </td>
<td> Create, modify, and rearrange windows in the browser </td>
</tr>
@@ -85,36 +85,36 @@ and <a href="overview.html">Overview</a>.
<td colspan="2"> &nbsp;</td>
</tr>
<tr>
- <td> <a href="a11y.html">Accessibility (a11y)</a> </td>
+ <td> <a href="a11y">Accessibility (a11y)</a> </td>
<td> Make your extension accessible to people with disabilities </td>
</tr>
<tr>
- <td> <a href="event_pages.html">Event Pages</a> </td>
+ <td> <a href="event_pages">Event Pages</a> </td>
<td> Put all the common code for your extension in a single place </td>
</tr>
<tr>
- <td> <a href="content_scripts.html">Content&nbsp;Scripts</a> </td>
+ <td> <a href="content_scripts">Content&nbsp;Scripts</a> </td>
<td> Run JavaScript code in the context of web pages </td>
</tr>
<tr>
- <td> <a href="xhr.html">Cross-Origin&nbsp;XHR</a> </td>
+ <td> <a href="xhr">Cross-Origin&nbsp;XHR</a> </td>
<td> Use XMLHttpRequest to send and receive data from remote servers </td>
</tr>
<tr>
- <td> <a href="i18n.html">Internationalization</a> </td>
+ <td> <a href="i18n">Internationalization</a> </td>
<td> Deal with language and locale </td>
</tr>
<tr>
- <td> <a href="messaging.html">Message&nbsp;Passing</a> </td>
+ <td> <a href="messaging">Message&nbsp;Passing</a> </td>
<td> Communicate from a content script to its parent extension,
or vice versa</td>
</tr>
<tr>
- <td> <a href="permissions.html">Optional Permissions</a> </td>
+ <td> <a href="permissions">Optional Permissions</a> </td>
<td> Modify your extension's permissions </td>
</tr>
<tr>
- <td> <a href="npapi.html">NPAPI&nbsp;Plugins</a> </td>
+ <td> <a href="npapi">NPAPI&nbsp;Plugins</a> </td>
<td> Load native binary code </td>
</tr>
@@ -125,19 +125,19 @@ and <a href="overview.html">Overview</a>.
<td colspan="2"> &nbsp;</td>
</tr>
<tr>
- <td> <a href="autoupdate.html">Autoupdating</a> </td>
+ <td> <a href="autoupdate">Autoupdating</a> </td>
<td> Update extensions automatically </td>
</tr>
<tr>
- <td> <a href="hosting.html">Hosting</a> </td>
+ <td> <a href="hosting">Hosting</a> </td>
<td> Host extensions on Google servers or your own </td>
</tr>
<tr>
- <td> <a href="external_extensions.html">Other Deployment Options</a> </td>
+ <td> <a href="external_extensions">Other Deployment Options</a> </td>
<td> Distribute extensions on your network or with other software </td>
</tr>
<tr>
- <td> <a href="packaging.html">Packaging</a> </td>
+ <td> <a href="packaging">Packaging</a> </td>
<td> Create a <code>.crx</code> file so you can distribute your extension </td>
</tr>
</table>
diff --git a/chrome/common/extensions/docs/templates/articles/event_pages.html b/chrome/common/extensions/docs/templates/articles/event_pages.html
index 11a3eea..5aa3965 100644
--- a/chrome/common/extensions/docs/templates/articles/event_pages.html
+++ b/chrome/common/extensions/docs/templates/articles/event_pages.html
@@ -3,7 +3,7 @@
<p>
Event pages are very similar to
-<a href="background_pages.html">background pages</a>,
+<a href="background_pages">background pages</a>,
with one important difference:
event pages are loaded only when they are needed.
When the event page is not actively doing something,
@@ -29,7 +29,7 @@ new model.
<p>
Register your event page in the
-<a href="manifest.html">extension manifest</a>:
+<a href="manifest">extension manifest</a>:
</p>
{{^is_apps}}
@@ -78,7 +78,7 @@ that will cause the event page to load:
(in order to <a href="#registration">register for events</a>).
<li>The event page was listening for an event, and the event is dispatched.
<li>A content script or other extension
-<a href="messaging.html">sends a message.</a>
+<a href="messaging">sends a message.</a>
<li>Another view in the extension (for example, a popup) calls
<code>$(ref:runtime.getBackgroundPage)</code>.
</ul>
@@ -146,13 +146,13 @@ Follow this checklist to convert your extension's
<li>If your extension uses <code>window.setTimeout()</code> or
<code>window.setInterval()</code>, switch to using the
- <a href="alarms.html">alarms API</a> instead. DOM-based timers won't
+ <a href="alarms">alarms API</a> instead. DOM-based timers won't
be honored if the event page shuts down.
<li>Similarly, other asynchronous HTML5 APIs like notifications and
geolocation will not complete if the event page shuts down. Instead,
use equivalent extension APIs, like
- <a href="notifications.html">notifications</a>.
+ <a href="notifications">notifications</a>.
<li>If your extension uses,
<code>$(ref:extension.getBackgroundPage)</code>,
@@ -179,16 +179,16 @@ Keep these tips in mind when using event pages to avoid common subtle pitfalls.
installed or upgraded, listen to the
<code>$(ref:runtime.onInstalled)</code>
event. This is a good place to register for
- <a href="declarativeWebRequest.html">declarativeWebRequest</a> rules,
- <a href="contextMenus.html">contextMenu</a> entries, and other such
+ <a href="declarativeWebRequest">declarativeWebRequest</a> rules,
+ <a href="contextMenus">contextMenu</a> entries, and other such
one-time initialization.
<li>If you need to keep runtime state in memory throughout a browser
- session, use the <a href="storage.html">storage API</a> or
+ session, use the <a href="storage">storage API</a> or
IndexedDB. Since the event page does not stay loaded for long, you
can no longer rely on global variables for runtime state.
- <li>Use <a href="events.html#filtered">event filters</a> to restrict
+ <li>Use <a href="events#filtered">event filters</a> to restrict
your event notifications to the cases you care about. For example, if
you listen to the <code>$(ref:tabs.onUpdated)</code>
event, try using the
@@ -204,11 +204,11 @@ Keep these tips in mind when using event pages to avoid common subtle pitfalls.
That way if your extension crashes without receiving
<code>onSuspend</code>, no data will typically be lost.
- <li>If you're using <a href="messaging.html">message passing</a>, be sure
+ <li>If you're using <a href="messaging">message passing</a>, be sure
to close unused message ports. The event page will not shut down until all
message ports are closed.
- <li>If you're using the <a href="contextMenus.html">context menus</a> API,
+ <li>If you're using the <a href="contextMenus">context menus</a> API,
pass a string <code>id</code> parameter to
<code>$(ref:contextMenus.create)</code>,
and use the
diff --git a/chrome/common/extensions/docs/templates/articles/experimental.html b/chrome/common/extensions/docs/templates/articles/experimental.html
index 54ab09f..fc83eae 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental.html
@@ -20,7 +20,7 @@ which we expect to finalize soon:
<b>devtools</b>,
<b>permissions</b>,
For examples of using the experimental APIs, see
-<a href="samples.html#experimental">Samples</a>.
+<a href="samples#experimental">Samples</a>.
</p>
{{/is_apps}}
@@ -50,7 +50,7 @@ upload items that use experimental APIs.
{{/is_apps}}
<li>
Specify the "experimental"
- <a href="declare_permissions.html">permission</a>
+ <a href="declare_permissions">permission</a>
in your manifest, like this:
<pre data-filename="manifest.json">
"permissions": [
@@ -97,6 +97,6 @@ upload items that use experimental APIs.
<p>
For information on the standard APIs, see
-<a href="api_index.html">chrome.* APIs</a> and
-<a href="api_other.html">Other APIs</a>.
+<a href="api_index">chrome.* APIs</a> and
+<a href="api_other">Other APIs</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_browsingData.html b/chrome/common/extensions/docs/templates/articles/experimental_browsingData.html
index 26bd199..9144d83 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_browsingData.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_browsingData.html
@@ -6,5 +6,5 @@ it's supported! You can read all about it at its new home:
</p>
<blockquote>
-<a href="browsingData.html">chrome.browsingData</a>
-</blockquote> \ No newline at end of file
+<a href="browsingData">chrome.browsingData</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_contentSettings.html b/chrome/common/extensions/docs/templates/articles/experimental_contentSettings.html
index e89889b..2e2aef9 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_contentSettings.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_contentSettings.html
@@ -7,5 +7,5 @@ You can read all about it at its new home:
</p>
<blockquote>
-<a href="contentSettings.html">chrome.contentSettings</a>
-</blockquote> \ No newline at end of file
+<a href="contentSettings">chrome.contentSettings</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_contextMenus.html b/chrome/common/extensions/docs/templates/articles/experimental_contextMenus.html
index cc4f5c6..ec0b0cf 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_contextMenus.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_contextMenus.html
@@ -7,5 +7,5 @@ You can read all about it at its new home:
</p>
<blockquote>
-<a href="contextMenus.html">chrome.contextMenus</a>
-</blockquote> \ No newline at end of file
+<a href="contextMenus">chrome.contextMenus</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_cookies.html b/chrome/common/extensions/docs/templates/articles/experimental_cookies.html
index 3e060bd..90fe29a 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_cookies.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_cookies.html
@@ -7,5 +7,5 @@ You can read all about it at its new home:
</p>
<blockquote>
-<a href="cookies.html">chrome.cookies</a>
-</blockquote> \ No newline at end of file
+<a href="cookies">chrome.cookies</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_devtools.html b/chrome/common/extensions/docs/templates/articles/experimental_devtools.html
index 5f6cf1f..1195774 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_devtools.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_devtools.html
@@ -2,7 +2,7 @@
<p>
Some of the Developer Tools APIs are no longer experimental. Please see <a
-href="devtools.html">chrome.devtools.* APIs</a> for the guidelines on how to use
+href="devtools">chrome.devtools.* APIs</a> for the guidelines on how to use
these. For the list of Developer Tools APIs that are still experimental,
-please refer to <a href="experimental.html">chrome.experimental.* APIs</a>.
-</p> \ No newline at end of file
+please refer to <a href="experimental">chrome.experimental.* APIs</a>.
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_devtools_inspectedWindow.html b/chrome/common/extensions/docs/templates/articles/experimental_devtools_inspectedWindow.html
index b6ee688..49a09b6 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_devtools_inspectedWindow.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_devtools_inspectedWindow.html
@@ -6,5 +6,5 @@ it's supported! You can read all about it at its new home:
</p>
<blockquote>
-<a href="devtools.inspectedWindow.html">chrome.devtools.inspectedWindow</a>
-</blockquote> \ No newline at end of file
+<a href="devtools.inspectedWindow">chrome.devtools.inspectedWindow</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_devtools_network.html b/chrome/common/extensions/docs/templates/articles/experimental_devtools_network.html
index b8ff5f9..a5971b1 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_devtools_network.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_devtools_network.html
@@ -6,5 +6,5 @@ it's supported! You can read all about it at its new home:
</p>
<blockquote>
-<a href="devtools.network.html">chrome.devtools.network</a>
-</blockquote> \ No newline at end of file
+<a href="devtools.network">chrome.devtools.network</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_devtools_panels.html b/chrome/common/extensions/docs/templates/articles/experimental_devtools_panels.html
index 38fbe1e..9474ac2 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_devtools_panels.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_devtools_panels.html
@@ -6,5 +6,5 @@ it's supported! You can read all about it at its new home:
</p>
<blockquote>
-<a href="devtools.panels.html">chrome.devtools.panels</a>
-</blockquote> \ No newline at end of file
+<a href="devtools.panels">chrome.devtools.panels</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_devtools_resources.html b/chrome/common/extensions/docs/templates/articles/experimental_devtools_resources.html
index b8ad01ac..9e6c683 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_devtools_resources.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_devtools_resources.html
@@ -2,6 +2,6 @@
API</h1>
<p>
The <code>experimental.devtools.resources</code> module is deprecated, use
-<a href="experimental.devtools.network.html"
+<a href="experimental.devtools.network"
><code>experimental.devtools.network</code></a> instead.
-</p> \ No newline at end of file
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_history.html b/chrome/common/extensions/docs/templates/articles/experimental_history.html
index 5de0989..c8b915b 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_history.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_history.html
@@ -7,5 +7,5 @@ You can read all about it at its new home:
</p>
<blockquote>
-<a href="history.html">chrome.history</a>
-</blockquote> \ No newline at end of file
+<a href="history">chrome.history</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_identity.html b/chrome/common/extensions/docs/templates/articles/experimental_identity.html
index e48b374..d6d1aea 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_identity.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_identity.html
@@ -2,10 +2,10 @@
<p>
The <code>experimental.identity</code> API has moved
-to <a href="identity.html"><code>identity</code></a>. You can read
+to <a href="identity"><code>identity</code></a>. You can read
all about it at its new home:
</p>
<blockquote>
-<a href="identity.html">chrome.identity</a>
+<a href="identity">chrome.identity</a>
</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_inputUI.html b/chrome/common/extensions/docs/templates/articles/experimental_inputUI.html
index c8cd81c..0e87eaf 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_inputUI.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_inputUI.html
@@ -4,5 +4,5 @@
<p id="classSummary">
Use the <code>chrome.experimental.input.ui</code> module to implement
input method user interface. This module is for Chrome OS only.
-<a href="experimental.html">chrome.experimental.* APIs</a> page.
-</p> \ No newline at end of file
+<a href="experimental">chrome.experimental.* APIs</a> page.
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_privacy.html b/chrome/common/extensions/docs/templates/articles/experimental_privacy.html
index 09b080b..d7a5c60 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_privacy.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_privacy.html
@@ -6,5 +6,5 @@ it's supported! You can read all about it at its new home:
</p>
<blockquote>
-<a href="privacy.html">chrome.privacy</a>
-</blockquote> \ No newline at end of file
+<a href="privacy">chrome.privacy</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_storage.html b/chrome/common/extensions/docs/templates/articles/experimental_storage.html
index f85aa4b..27da21a 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_storage.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_storage.html
@@ -6,5 +6,5 @@ it's supported! You can read all about it at its new home:
</p>
<blockquote>
-<a href="storage.html">chrome.storage</a>
-</blockquote> \ No newline at end of file
+<a href="storage">chrome.storage</a>
+</blockquote>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_webInspector.html b/chrome/common/extensions/docs/templates/articles/experimental_webInspector.html
index 0fe405f..f3a2848 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_webInspector.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_webInspector.html
@@ -2,8 +2,8 @@
<p>
<code>experimental.webInspector.*</code> APIs have been renamed to
-<a href="experimental.devtools.html"><code>chrome.experimental.devtools.*</code>
+<a href="experimental.devtools"><code>chrome.experimental.devtools.*</code>
</a>.
The old namepsace is deprecated and will be removed from future versions of
Chrome.
-</p> \ No newline at end of file
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_webInspector_audits.html b/chrome/common/extensions/docs/templates/articles/experimental_webInspector_audits.html
index 85a42bc..ff040e5 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_webInspector_audits.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_webInspector_audits.html
@@ -1,8 +1,8 @@
<h1>experimental.webInspector.audits
API</h1>
<p>The <code>experimental.webInspector.audits</code> API has been renamed to
-<a href="experimental.devtools.audits.html"><code
+<a href="experimental.devtools.audits"><code
>chrome.experimental.devtools.audits</code></a>.
The old namepsace is deprecated and will be removed from future versions of
Chrome.
-</p> \ No newline at end of file
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_webInspector_panels.html b/chrome/common/extensions/docs/templates/articles/experimental_webInspector_panels.html
index 6f6ceb8..f4c4492 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_webInspector_panels.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_webInspector_panels.html
@@ -1,8 +1,8 @@
<h1>experimental.webInspector.panels
API</h1>
<p>The <code>experimental.webInspector.panels</code> API has been renamed to
-<a href="experimental.devtools.panels.html"><code
+<a href="experimental.devtools.panels"><code
>chrome.experimental.devtools.panels</code></a>.
The old namepsace is deprecated and will be removed from future versions of
Chrome.
-</p> \ No newline at end of file
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_webInspector_resources.html b/chrome/common/extensions/docs/templates/articles/experimental_webInspector_resources.html
index b4be42d..b1fdcc4 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_webInspector_resources.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_webInspector_resources.html
@@ -1,8 +1,8 @@
<h1>experimental.webInspector.resources
API</h1>
<p>The <code>experimental.webInspector.resources</code> API has been renamed to
-<a href="experimental.devtools.resources.html"><code
+<a href="experimental.devtools.resources"><code
>chrome.experimental.devtools.resources</code></a>.
The old namepsace is deprecated and will be removed from future versions of
Chrome.
-</p> \ No newline at end of file
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/experimental_webRequest.html b/chrome/common/extensions/docs/templates/articles/experimental_webRequest.html
index be95f8b..4439799 100644
--- a/chrome/common/extensions/docs/templates/articles/experimental_webRequest.html
+++ b/chrome/common/extensions/docs/templates/articles/experimental_webRequest.html
@@ -6,10 +6,10 @@ it's supported! You can read all about it at its new home:
</p>
<blockquote>
-<a href="webRequest.html">chrome.webRequest</a>
+<a href="webRequest">chrome.webRequest</a>
</blockquote>
<p>
What you see below are early outcomes of the plan to implement a declarative
version of the WebRequest API. Please ignore this until we give notice.
-</p> \ No newline at end of file
+</p>
diff --git a/chrome/common/extensions/docs/templates/articles/extensions_index.html b/chrome/common/extensions/docs/templates/articles/extensions_index.html
index 1dd218d..e812035 100644
--- a/chrome/common/extensions/docs/templates/articles/extensions_index.html
+++ b/chrome/common/extensions/docs/templates/articles/extensions_index.html
@@ -17,7 +17,7 @@
Extensions have little to no user interface.
For example, the image to the right shows the icon
that provides the UI for the
- <a href="samples.html#google-mail-checker">Google Mail Checker extension</a>.
+ <a href="samples#google-mail-checker">Google Mail Checker extension</a>.
</p>
<p>
@@ -41,11 +41,11 @@
<h2 id="How-do-I-start">How do I start?</h2>
<ol>
<li>
- Follow the <a href="getstarted.html">Getting Started tutorial</a>
+ Follow the <a href="getstarted">Getting Started tutorial</a>
</li>
<li>
Read the
- <a href="overview.html">Overview</a>
+ <a href="overview">Overview</a>
</li>
<li>
Keep up-to-date by reading the
diff --git a/chrome/common/extensions/docs/templates/articles/external_extensions.html b/chrome/common/extensions/docs/templates/articles/external_extensions.html
index 62e2244..ad1cb2b 100644
--- a/chrome/common/extensions/docs/templates/articles/external_extensions.html
+++ b/chrome/common/extensions/docs/templates/articles/external_extensions.html
@@ -44,11 +44,11 @@ where the extension is hosted.
<p>
In the preferences file,
it can point to your own server where you are hosting the extension
-(see <a href="autoupdate.html#update_url">autoupdating</a>).
+(see <a href="autoupdate#update_url">autoupdating</a>).
The preferences JSON file also supports installing
an extension from a <code>.crx</code> extension
file on the user's computer
-(see <a href="hosting.html">hosting</a>).
+(see <a href="hosting">hosting</a>).
</p>
@@ -64,9 +64,9 @@ publish it in the store, and link to the store install using
<h2 id="prereqs">Before you begin</h2>
<p>
-First, <a href="/webstore/publish.html">publish</a>
+First, <a href="/webstore/publish">publish</a>
the extension in the Chrome Web Store,
-or package a <a href="packaging.html"><code>.crx</code> file</a>
+or package a <a href="packaging"><code>.crx</code> file</a>
and make sure that it installs successfully.
</p>
@@ -80,8 +80,8 @@ no external installs are allowed from a path to a local <code>.crx</code>
<p>
If installing from an
- <a href="autoupdate.html#update_url">update URL</a>, ensure that the extension
-is properly <a href="hosting.html">hosted</a>.
+ <a href="autoupdate#update_url">update URL</a>, ensure that the extension
+is properly <a href="hosting">hosted</a>.
</p>
<p>
@@ -279,10 +279,10 @@ not from a local file path.</p>
<p>Yes, use the <a href="#preferences">preferences JSON</a> file
for Mac OS X and Linux; the <a href="#registry">registry</a> for Windows.
The extension must be hosted as explained in
-<a href="hosting.html">hosting</a>.
+<a href="hosting">hosting</a>.
In the preferences file,
use the "external_update_url" property to point to an
-<a href="autoupdate.html#update_manifest">update manifest</a> that has the URL for your
+<a href="autoupdate#update_manifest">update manifest</a> that has the URL for your
extension.
In the Windows registry,
use the "update_url" property.</p>
@@ -328,7 +328,7 @@ However, extensions hosted on the Chrome Web Store are updated
via the Chrome update mechanism which developers do not control.
Extension developers should be careful about updating extensions
that have a dependency on the native binary
-(for example, legacy extensions using <a href="npapi.html">NPAPI</a>).
+(for example, legacy extensions using <a href="npapi">NPAPI</a>).
</p>
<p><b>What if the user uninstalls the extension?</b> </p>
diff --git a/chrome/common/extensions/docs/templates/articles/faq.html b/chrome/common/extensions/docs/templates/articles/faq.html
index 5525301..1078096 100644
--- a/chrome/common/extensions/docs/templates/articles/faq.html
+++ b/chrome/common/extensions/docs/templates/articles/faq.html
@@ -6,7 +6,7 @@
<p>
If you don't find an answer to your question here,
try the
-<a href="http://code.google.com/chrome/webstore/faq.html">Chrome Web Store FAQ</a>, the
+<a href="http://code.google.com/chrome/webstore/faq">Chrome Web Store FAQ</a>, the
<a href="http://stackoverflow.com/questions/tagged/google-chrome-extension">[google-chrome-extension] tag on Stack Overflow</a>, the
<a href="http://groups.google.com/a/chromium.org/group/chromium-extensions">group</a>, or the
<a href="http://www.google.com/support/chrome_webstore/">store help</a>.
@@ -89,7 +89,7 @@ try the
Now you can reload extensions,
load an unpacked directory of files as if it were a packaged extension,
and more. For a complete tutorial, see
- <a href="/extensions/getstarted.html">Getting Started</a>.
+ <a href="/extensions/getstarted">Getting Started</a>.
</p>
{{/is_apps}}
@@ -101,7 +101,7 @@ try the
scripting. Because Chrome supports HTML5 and CSS3, developers can
use the latest open web technologies such as canvas and CSS animations in
their extensions. Extensions also have access to several
- <a href="/extensions/api_other.html">JavaScript APIs</a>
+ <a href="/extensions/api_other">JavaScript APIs</a>
that help perform functions like JSON encoding and interacting with the
browser.
</p>
@@ -162,7 +162,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<h3 id="faq-dev-02">Can extensions make cross-domain Ajax requests?</h3>
<p>
Yes. Extensions can make cross-domain requests. See
- <a href="/extensions/xhr.html">this page</a>
+ <a href="/extensions/xhr">this page</a>
for more information.
</p>
@@ -203,7 +203,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<h3 id="faq-dev-06">Can extensions load DLLs?</h3>
<p>
- Yes, using the <a href="npapi.html">NPAPI interface</a>.
+ Yes, using the <a href="npapi">NPAPI interface</a>.
Because of the possibility for abuse, though, we will review your extension
before hosting it in the Chrome Web Store.
</p>
@@ -211,12 +211,12 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<h3 id="faq-dev-05">Can extensions create UI outside of the rendered web page?</h3>
<p>
Yes, your extension may add buttons to the Chrome browser's user interface.
- See <a href="browserAction.html">browser actions</a> and
- <a href="pageAction.html">page actions</a> for more information.
+ See <a href="browserAction">browser actions</a> and
+ <a href="pageAction">page actions</a> for more information.
</p>
<p>
An extension may also create popup notifications, which exist outside of the
- browser window. See the <a href="desktop_notifications.html">desktop
+ browser window. See the <a href="desktop_notifications">desktop
notifications</a> documentation for more details.
</p>
@@ -224,13 +224,13 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
navigation buttons?</h3>
<p>
No. Extensions are limited to listening to the events described in the <a
- href="api_index.html">API documentation</a>.
+ href="api_index">API documentation</a>.
</p>
<h3 id="faq-dev-11">Can two extensions communicate with each other?</h3>
<p>
Yes, extensions may pass messages to other extensions. See the
- <a href="messaging.html#external">message passing documentation</a>
+ <a href="messaging#external">message passing documentation</a>
for more information.
</p>
@@ -241,7 +241,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<a href="http://www.google.com/analytics/">Google Analytics</a> to track
usage. However, you must modify the tracking code to pull
an HTTPS version of the Google Analytics library. See
- <a href="tut_analytics.html">this tutorial</a> for more information on doing
+ <a href="tut_analytics">this tutorial</a> for more information on doing
this.
</p>
{{/is_apps}}
@@ -261,7 +261,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
</p>
<p>
- The reason that <a href="override.html">replacing the content</a>
+ The reason that <a href="override">replacing the content</a>
hosted at these URLs entirely is
allowed is because it forces an extension developer to implement all of the
functionality they want without depending on the browser's internal implementation
@@ -315,7 +315,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<h3 id="faq-dev-10">How do I create an options menu for my application?</h3>
<p>
You can let users set options for your extension by creating an
- <a href="/extensions/options.html">options page</a>,
+ <a href="/extensions/options">options page</a>,
which is a simple HTML page that will be loaded when a user clicks the
"options" button for your extension. This page can read and write settings
to localStorage, or even send options to a web server so that they can be
@@ -327,7 +327,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<p>
Chrome's built-in developer tools can be used to debug extensions
as well as web pages. See this
- <a href="/extensions/tut_debugging.html ">tutorial on debugging extensions</a>
+ <a href="/extensions/tut_debugging ">tutorial on debugging extensions</a>
for more information.
</p>
@@ -358,7 +358,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<h3 id="faq-management">Why does the management API not fire events when my
extension is installed/uninstalled?</h3>
<p>
- The <a href="management.html">management API</a> was intended to help create
+ The <a href="management">management API</a> was intended to help create
new tab page replacement extensions. It was not intended to fire
install/uninstall events for the current extension.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/first_app.html b/chrome/common/extensions/docs/templates/articles/first_app.html
index 695a9df..6c4a6d6a 100644
--- a/chrome/common/extensions/docs/templates/articles/first_app.html
+++ b/chrome/common/extensions/docs/templates/articles/first_app.html
@@ -8,7 +8,7 @@ Chrome Apps are structured similarly to extensions
so current developers will recognize the manifest and packaging methods.
When you're done,
you'll just need to produce a zip file of your code and assets
-in order to <a href="publish_app.html">publish</a> your app.
+in order to <a href="publish_app">publish</a> your app.
</p>
<p>
@@ -38,7 +38,7 @@ sample.
<p>
First create your <code>manifest.json</code> file
-(<a href="manifest.html">Formats: Manifest Files</a>
+(<a href="manifest">Formats: Manifest Files</a>
describes this manifest in detail):
</p>
@@ -60,7 +60,7 @@ describes this manifest in detail):
<p class="note">
<b>Important:</b>
Chrome Apps <b>must</b> use
-<a href="manifestVersion.html">manifest version 2</a>.
+<a href="manifestVersion">manifest version 2</a>.
</p>
<h2 id="two">Step 2: Create the background script</h2>
@@ -83,7 +83,7 @@ chrome.app.runtime.onLaunched.addListener(function() {
<p>
In the above sample code,
-the <a href="app_lifecycle.html#lifecycle">onLaunched event</a>
+the <a href="app_lifecycle#lifecycle">onLaunched event</a>
will be fired when the user starts the app.
It then immediately opens a window for the app of the specified width and height.
Your background script may contain additional listeners,
diff --git a/chrome/common/extensions/docs/templates/articles/gcm_server.html b/chrome/common/extensions/docs/templates/articles/gcm_server.html
index 66b33f9..ef0e74f 100644
--- a/chrome/common/extensions/docs/templates/articles/gcm_server.html
+++ b/chrome/common/extensions/docs/templates/articles/gcm_server.html
@@ -2,12 +2,12 @@
<h1>API Reference for GCM service</h1>
<p>
-The <a href="cloudMessaging.html">Google Cloud Messaging for Chrome</a> service
+The <a href="cloudMessaging">Google Cloud Messaging for Chrome</a> service
sends messages to users of a Chrome App.
The service handles all aspects of queueing and delivering messages.
To use the service,
you must agree to the
-<a href="gcm_tos.html">Google Cloud Messaging for Chrome API Terms of Service</a>.
+<a href="gcm_tos">Google Cloud Messaging for Chrome API Terms of Service</a>.
</p>
<p>Messages must conform to these constraints:</p>
diff --git a/chrome/common/extensions/docs/templates/articles/getstarted.html b/chrome/common/extensions/docs/templates/articles/getstarted.html
index 23e577b..e1f0963 100644
--- a/chrome/common/extensions/docs/templates/articles/getstarted.html
+++ b/chrome/common/extensions/docs/templates/articles/getstarted.html
@@ -12,7 +12,7 @@
<p>
We'll do so by implementing a UI element we call a
- <a href="browserAction.html">browser action</a>, which allows us to place a
+ <a href="browserAction">browser action</a>, which allows us to place a
clickable icon right next to Chrome's Omnibox for easy access. Clicking that
icon will open a popup window filled with kittenish goodness, which will look
something like this:
@@ -253,7 +253,7 @@
<ul>
<li>
<p>
- The <a href="overview.html">Chrome Extension Overview</a> backs up a bit,
+ The <a href="overview">Chrome Extension Overview</a> backs up a bit,
and fills in a lot of detail about extensions' architecture in general,
and some specific concepts you'll want to be familiar with going forward.
It's the best next step on your journey towards extension mastery.
@@ -263,7 +263,7 @@
<p>
No one writes perfect code on the first try, which means that you'll need
to learn about the options available for debugging your creations. Our
- <a href="tut_debugging.html">debugging tutorial</a> is perfect for that,
+ <a href="tut_debugging">debugging tutorial</a> is perfect for that,
and is well worth carefully reading.
</p>
</li>
@@ -271,13 +271,13 @@
<p>
Chrome extensions have access to powerful APIs above and beyond what's
available on the open web: browser actions are just the tip of the
- iceburg. Our <a href="api_index.html">chrome.* APIs documentation</a> will
+ iceburg. Our <a href="api_index">chrome.* APIs documentation</a> will
walk you through each API in turn.
</p>
</li>
<li>
<p>
- Finally, the <a href="devguide.html">developer's guide</a> has dozens of
+ Finally, the <a href="devguide">developer's guide</a> has dozens of
additional links to pieces of documentation you might be interested in.
</p>
</li>
diff --git a/chrome/common/extensions/docs/templates/articles/google_wallet.html b/chrome/common/extensions/docs/templates/articles/google_wallet.html
index 714f9db..6c524d5 100644
--- a/chrome/common/extensions/docs/templates/articles/google_wallet.html
+++ b/chrome/common/extensions/docs/templates/articles/google_wallet.html
@@ -134,7 +134,7 @@ integration steps.
<li>Include <a href="https://raw.github.com/GoogleChrome/chrome-app-samples/master/in-app-payments/buy.js">buy.js</a> in your app.
<div class="indent-small">
Due to the security restrictions in the
- <a href="contentSecurityPolicy.html">Content Security Policy</a> for Chrome Apps,
+ <a href="contentSecurityPolicy">Content Security Policy</a> for Chrome Apps,
you cannot include the <a href="https://raw.github.com/GoogleChrome/chrome-app-samples/master/in-app-payments/buy.js">buy.js</a>
library from an external location. Instead, you must package the library with your app, and load it from the packaged location.
</div>
diff --git a/chrome/common/extensions/docs/templates/articles/hosting.html b/chrome/common/extensions/docs/templates/articles/hosting.html
index 683b1a8..eec00a0 100644
--- a/chrome/common/extensions/docs/templates/articles/hosting.html
+++ b/chrome/common/extensions/docs/templates/articles/hosting.html
@@ -7,7 +7,7 @@ hosted in the Chrome Web store,
except for installs via
<a href="https://support.google.com/chrome/a/answer/188453">enterprise policy</a>
or
-<a href="getstarted.html#unpacked">developer mode</a>
+<a href="getstarted#unpacked">developer mode</a>
(see
<a href="http://blog.chromium.org/2013/11/protecting-windows-users-from-malicious.html">Protecting Windows users from malicious extensions</a>).
You can still create your own <code>.crx</code> file and use it for testing in the dev channel,
@@ -22,7 +22,7 @@ If you distribute your extension, app, or theme solely through the
you don't need this page.
Instead, consult the
<a href="http://www.google.com/support/chrome_webstore/">store help</a> and
-<a href="http://code.google.com/chrome/webstore/index.html">developer documentation</a>.
+<a href="http://code.google.com/chrome/webstore/index">developer documentation</a>.
</p>
<p>
@@ -38,9 +38,9 @@ the dashboard creates the <code>.crx</code> file for you.
<p>
If you aren't publishing using the dashboard,
you need to create the <code>.crx</code> file yourself,
-as described in <a href="packaging.html">Packaging</a>.
+as described in <a href="packaging">Packaging</a>.
You can also specify
-<a href="autoupdate.html">autoupdate</a> information to ensure that
+<a href="autoupdate">autoupdate</a> information to ensure that
your users will have the latest copy of the <code>.crx</code> file.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/hosting_changes.html b/chrome/common/extensions/docs/templates/articles/hosting_changes.html
index 1c1872f..45e0844 100644
--- a/chrome/common/extensions/docs/templates/articles/hosting_changes.html
+++ b/chrome/common/extensions/docs/templates/articles/hosting_changes.html
@@ -7,19 +7,19 @@ we’re enforcing the following changes starting in Chrome 33 Beta and stable ch
<ul>
<li>Users can only install extensions hosted in the Chrome Web store, except for installs via
<a href="https://support.google.com/chrome/a/answer/188453">enterprise policy</a>
-or <a href="http://developer.chrome.com/extensions/getstarted.html#unpacked">developer mode</a>.</li>
+or <a href="http://developer.chrome.com/extensions/getstarted#unpacked">developer mode</a>.</li>
<li>Extensions that were previously installed, but not hosted on the Chrome Web Store will be
<a href="https://support.google.com/chrome/answer/2811969">hard-disabled</a>
(i.e the user cannot enable these extensions again), except for installs via
<a href="https://support.google.com/chrome/a/answer/188453">enterprise policy</a>
-or <a href="http://developer.chrome.com/extensions/getstarted.html#unpacked">developer mode</a>.</li>
+or <a href="http://developer.chrome.com/extensions/getstarted#unpacked">developer mode</a>.</li>
</ul>
-<h2>What’s the rationale for this measure?</h2>
+<h2 id="rationale">What’s the rationale for this measure?</h2>
<p>See <a href="http://blog.chromium.org/2013/11/protecting-windows-users-from-malicious.html">Protecting Windows users from malicious extensions</a>.</p>
-<h2>For extensions that are currently hosted outside the Chrome Web Store, what should be done and by when?</h2>
+<h2 id="externally_hosted">For extensions that are currently hosted outside the Chrome Web Store, what should be done and by when?</h2>
<p>If your extensions are currently hosted outside the Chrome Web Store,
you should migrate them to the Chrome Web Store as soon as possible.
@@ -33,53 +33,53 @@ you can make use of the existing
<a href="https://developers.google.com/chrome/web-store/docs/inline_installation">inline installs</a> feature.
If you’re migrating your extensions to the Chrome Web Store, start testing with Chrome 33 right away.</p>
-<h2>What will happen if I migrate the extension to the Chrome Web Store sometime in the future? Will I lose all my users?</h2>
+<h2 id="migration">What will happen if I migrate the extension to the Chrome Web Store sometime in the future? Will I lose all my users?</h2>
<p>Users will have their off-store extensions hard-disabled once the enforcement rolls out in Chrome 33 stable/beta for Windows.
However, if the extension is migrated to the Chrome Web Store after the rollout,
users would be able to manually to enable the migrated extension from extensions settings page (chrome://extensions)
or from the Chrome Web Store listing.</p>
-<h2>What if I want to restrict access to certain users or prevent my extension from being listed on the Chrome Web Store?</h2>
+<h2 id="access_restriction">What if I want to restrict access to certain users or prevent my extension from being listed on the Chrome Web Store?</h2>
<p>You can restrict access to your extension by limiting its visibility to Trusted Tester or
by unlisting the extension from the Chrome Web Store.</p>
-<h2>Which operating systems and Chrome channels are affected by this change?</h2>
+<h2 id="effective_changes">Which operating systems and Chrome channels are affected by this change?</h2>
<p>The changes are effective only for Windows stable and beta channels starting with Chrome 33.</p>
-<h2>Will this affect my ability to develop my extensions on Windows?</h2>
+<h2 id="unpacked">Will this affect my ability to develop my extensions on Windows?</h2>
<p>No. You can still load unpacked extensions in
-<a href="http://developer.chrome.com/extensions/getstarted.html#unpacked">developer mode</a>
+<a href="http://developer.chrome.com/extensions/getstarted#unpacked">developer mode</a>
on Windows.
Also, you can continue to develop extensions on Chrome Dev channel/Canary,
where these changes are not effective.</p>
-<h2>How can I distribute my extension if I cannot upload it to the Chrome Web Store for policy reasons?</h2>
+<h2 id="policies">How can I distribute my extension if I cannot upload it to the Chrome Web Store for policy reasons?</h2>
<p>These changes are effective only on Windows stable and beta channel.
Users who want to get extensions that are not hosted on the Chrome Web Store can do so on
<a href="http://www.chromium.org/getting-involved/dev-channel">Chrome dev/canary channels in Windows</a>
or on all Chrome channels in other operating systems.</p>
-<h2>Why couldn't this problem be solved by having a setting/option to load extensions that are not hosted in the Chrome Web Store?</h2>
+<h2 id="sandboxing">Why couldn't this problem be solved by having a setting/option to load extensions that are not hosted in the Chrome Web Store?</h2>
<p>Unlike modern mobile operating systems,
Windows does not sandbox applications.
Hence we wouldn’t be able to differentiate between a user opting in
to this setting versus a malicious native app overriding the user’s setting.</p>
-<h2>What are the supported deployment options for extensions after this change?</h2>
+<h2 id="deployment">What are the supported deployment options for extensions after this change?</h2>
<p>Apart from users installing extensions from the Chrome Web Store,
the following deployment options will be supported:</p>
<ul><li>For OSX and Linux, extensions can be installed via a
-<a href="http://developer.chrome.com/extensions/external_extensions.html#preferences">preferences JSON file</a>.</li>
+<a href="http://developer.chrome.com/extensions/external_extensions#preferences">preferences JSON file</a>.</li>
<li>For Windows, extensions can be installed via the
-<a href="http://developer.chrome.com/extensions/external_extensions.html#registry">Windows registry</a>.
+<a href="http://developer.chrome.com/extensions/external_extensions#registry">Windows registry</a>.
In the Windows registry,
ensure that the update_url registry key points to the following URL:
<a href="https://clients2.google.com/service/update2/crx">https://clients2.google.com/service/update2/crx</a>.
@@ -93,7 +93,7 @@ to install extensions, irrespective of where the extensions are hosted.
Note that the user's machine has to join a domain for GPO policy pushes to be effective.</li>
</ul>
-<h2>Are there any other considerations to be aware of for extensions that depend on a native application binary?</h2>
+<h2 id="other_considerations">Are there any other considerations to be aware of for extensions that depend on a native application binary?</h2>
<p>Previously when off-store extensions were supported,
it was possible to have the third party application binaries and the sideloaded extension be updated in lockstep.
@@ -101,17 +101,17 @@ However, extensions hosted on the Chrome Web Store are updated via the Chrome up
which developers do not control.
Extension developers should be careful about updating extensions that have a dependency on the native application binary
(for example, extensions using
-<a href="https://developer.chrome.com/extensions/messaging.html#native-messaging">native messaging</a>
+<a href="https://developer.chrome.com/extensions/messaging#native-messaging">native messaging</a>
or legacy extensions using
-<a href="http://developer.chrome.com/extensions/npapi.html">NPAPI</a>).</p>
+<a href="http://developer.chrome.com/extensions/npapi">NPAPI</a>).</p>
-<h2>What will users see when their off-store extension is disabled as a result of this rollout?</h2>
+<h2 id="disabled_extension">What will users see when their off-store extension is disabled as a result of this rollout?</h2>
<p>They will get a notification that says:
“Suspicious Extensions Disabled” with a link to the following
<a href="https://support.google.com/chrome/answer/2811969">support article</a>.</p>
-<h2>Why do I see a bubble about “Disable developer mode extensions” when loading an unpacked extension in Windows stable/beta channels?</h2>
+<h2 id="diable_developer_mode">Why do I see a bubble about “Disable developer mode extensions” when loading an unpacked extension in Windows stable/beta channels?</h2>
<p>We do not want the developer mode to be used as an attack vector for spreading malicious extensions.
Hence we’re informing users about developer mode extensions on Windows stable/beta channels and
diff --git a/chrome/common/extensions/docs/templates/articles/i18n-messages.html b/chrome/common/extensions/docs/templates/articles/i18n-messages.html
index e3ef7c6..6f3d23e 100644
--- a/chrome/common/extensions/docs/templates/articles/i18n-messages.html
+++ b/chrome/common/extensions/docs/templates/articles/i18n-messages.html
@@ -7,7 +7,7 @@ file named <code>messages.json</code>
that provides locale-specific strings.
This page describes the format of <code>messages.json</code> files.
For information on how to internationalize and localize,
-see the <a href="i18n.html">Internationalization</a> page.
+see the <a href="i18n">Internationalization</a> page.
</p>
<h2 id="overview"> Field summary </h2>
@@ -84,7 +84,7 @@ that can appear in a <code>messages.json</code> file.
For details on how the messages file is used &mdash;
for example, what happens when a locale doesn't define
all the messages &mdash;
-see <a href="i18n.html">Internationalization</a>.
+see <a href="i18n">Internationalization</a>.
</p>
@@ -116,7 +116,7 @@ The name can include the following characters:
<b>Note:</b>
Don't define names that begin with "@@".
Those names are reserved for
-<a href="i18n.html#overview-predefined">predefined messages</a>.
+<a href="i18n#overview-predefined">predefined messages</a>.
</p>
<p>
@@ -138,7 +138,7 @@ taken from the <a href="#example">Example</a> section:
<p>
For more examples of using names, see the
-<a href="i18n.html">Internationalization</a> page.
+<a href="i18n">Internationalization</a> page.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/app.html b/chrome/common/extensions/docs/templates/articles/manifest/app.html
index f72c0fd..f587070 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/app.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/app.html
@@ -1,7 +1,7 @@
<h1 id="app">Manifest - App</h1>
<p>
-Used by <a href="http://developer.chrome.com/trunk/apps/app_lifecycle.html#eventpage">packaged apps</a>
+Used by <a href="http://developer.chrome.com/trunk/apps/app_lifecycle#eventpage">packaged apps</a>
to specify the app's background scripts.
Also used by <a href="https://developers.google.com/chrome/apps/docs/developers_guide#live">hosted apps</a>
to specify the URLs that the app uses.
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/default_locale.html b/chrome/common/extensions/docs/templates/articles/manifest/default_locale.html
index ebf0ceb..af43183 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/default_locale.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/default_locale.html
@@ -8,5 +8,5 @@ that have a <code>_locales</code> directory;
it <b>must be absent</b> in extensions
that have no <code>_locales</code> directory.
For details, see
-<a href="http://developer.chrome.com/extensions/i18n.html">Internationalization</a>.
+<a href="http://developer.chrome.com/extensions/i18n">Internationalization</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/description.html b/chrome/common/extensions/docs/templates/articles/manifest/description.html
index 8bd199c..4698fe8 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/description.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/description.html
@@ -9,5 +9,5 @@ The description should be suitable for both
the browser's extension management UI
and the <a href="https://chrome.google.com/webstore">Chrome Web Store</a>.
You can specify locale-specific strings for this field;
-see <a href="http://developer.chrome.com/extensions/i18n.html">Internationalization</a> for details.
+see <a href="http://developer.chrome.com/extensions/i18n">Internationalization</a> for details.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/externally_connectable.html b/chrome/common/extensions/docs/templates/articles/manifest/externally_connectable.html
index fe02fa0..a6f0df4 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/externally_connectable.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/externally_connectable.html
@@ -1,11 +1,11 @@
<h1>externally_connectable</h1>
<p>
-The <code>externally_connectable</code> manifest property declares which extensions, apps, and web pages can connect to your {{platform}} via <a href="../runtime.html#method-connect">runtime.connect</a> and <a href="../runtime.html#method-sendMessage">runtime.sendMessage</a>.
+The <code>externally_connectable</code> manifest property declares which extensions, apps, and web pages can connect to your {{platform}} via <a href="../runtime#method-connect">runtime.connect</a> and <a href="../runtime#method-sendMessage">runtime.sendMessage</a>.
</p>
<p>
-For a tutorial on message passing see <a href="../messaging.html#external">cross-extension and app messaging</a> and <a href="../messaging.html#external-webpage">sending messages from web pages</a>.
+For a tutorial on message passing see <a href="../messaging#external">cross-extension and app messaging</a> and <a href="../messaging#external-webpage">sending messages from web pages</a>.
</p>
<h2 id="without-externally-connectable">Connecting without externally_connectable</h2>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/file_handlers.html b/chrome/common/extensions/docs/templates/articles/manifest/file_handlers.html
index b7cd44c..1e11fba 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/file_handlers.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/file_handlers.html
@@ -1,7 +1,7 @@
<h1 id="file_handlers">Manifest - File Handlers</h1>
<p>
-Used by <a href="../app_lifecycle.html#eventpage">packaged apps</a>
+Used by <a href="../app_lifecycle#eventpage">packaged apps</a>
to specify what types of files the app can handle. An app can have multiple <code>file_handlers</code>, with each one having an identifier, a list of MIME types and/or a list of file extensions that can be handled, and
a title. Here's an example of specifying file handlers:
</p>
@@ -38,5 +38,5 @@ To handle files, apps also need to declare the $(ref:fileSystem)
permission. Apps can then be passed files in the $(ref:app.runtime.onLaunched)
event - either from the system
file manager (currently supported on ChromeOS only) or by providing
-a path on the <a href="../first_app.html#open">command line</a>.
+a path on the <a href="../first_app#open">command line</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/homepage_url.html b/chrome/common/extensions/docs/templates/articles/manifest/homepage_url.html
index 6e60f3a..371e388 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/homepage_url.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/homepage_url.html
@@ -3,7 +3,7 @@
<p>
The URL of the homepage for this extension. The extensions management page (chrome://extensions)
will contain a link to this URL. This field is particularly useful if you
-<a href="http://developer.chrome.com/extensions/hosting.html">host the extension on your own site</a>. If you distribute your
+<a href="http://developer.chrome.com/extensions/hosting">host the extension on your own site</a>. If you distribute your
extension using the <a href="https://chrome.google.com/webstore">Chrome Web Store</a>,
the homepage URL defaults to the extension's own page.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/icons.html b/chrome/common/extensions/docs/templates/articles/manifest/icons.html
index 65eca50..eaaaecc 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/icons.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/icons.html
@@ -10,7 +10,7 @@ which is used in the extensions management page
You can also specify a 16x16 icon to be used as the favicon
for an extension's pages.
The 16x16 icon is also displayed in the experimental extension
-<a href="http://developer.chrome.com/extensions/infobars.html">infobar</a>
+<a href="http://developer.chrome.com/extensions/infobars">infobar</a>
feature.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/incognito.html b/chrome/common/extensions/docs/templates/articles/manifest/incognito.html
index 77ef631..967a208 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/incognito.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/incognito.html
@@ -44,8 +44,8 @@ behavior.
</p>
<p>
-<a href="/{{platform}}s/storage.html#property-sync">chrome.storage.sync</a> and
-<a href="/{{platform}}s/storage.html#property-local">chrome.storage.local</a>
+<a href="/{{platform}}s/storage#property-sync">chrome.storage.sync</a> and
+<a href="/{{platform}}s/storage#property-local">chrome.storage.local</a>
are <em>always</em> shared between regular and incognito processes. It is
recommended to use them for persisting your {{platform}}'s settings.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/key.html b/chrome/common/extensions/docs/templates/articles/manifest/key.html
index c08b02e..1683a43 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/key.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/key.html
@@ -10,8 +10,8 @@ it is loaded during development.
<b>Note:</b> You don't usually need to
use this value. Instead, write your
code so that the key value doesn't matter
-by using <a href="http://developer.chrome.com/extensions/overview.html#relative-urls">relative paths</a>
-and <a href="http://developer.chrome.com/extensions/extension.html#method-getURL">extension.getURL</a>.
+by using <a href="http://developer.chrome.com/extensions/overview#relative-urls">relative paths</a>
+and <a href="http://developer.chrome.com/extensions/extension#method-getURL">extension.getURL</a>.
</p>
<p>
@@ -19,7 +19,7 @@ To get a suitable key value, first
install your extension from a <code>.crx</code> file
(you may need to
<a href="https://chrome.google.com/webstore/developer/dashboard">upload your extension</a>
-or <a href="http://developer.chrome.com/extensions/packaging.html">package it manually</a>).
+or <a href="http://developer.chrome.com/extensions/packaging">package it manually</a>).
Then, in your
<a href="http://www.chromium.org/user-experience/user-data-directory">user
data directory</a>, look in the file
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/manifest_version.html b/chrome/common/extensions/docs/templates/articles/manifest/manifest_version.html
index aeca871..6599501 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/manifest_version.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/manifest_version.html
@@ -21,7 +21,7 @@ leave the key off entirely.
<p>
The changes between version 1 and version 2 of the manifest file format are
-described in detail in <a href="http://developer.chrome.com/extensions/manifestVersion.html">the
+described in detail in <a href="http://developer.chrome.com/extensions/manifestVersion">the
<code>manifest_version</code> documentation.</a>
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/minimum_chrome_version.html b/chrome/common/extensions/docs/templates/articles/manifest/minimum_chrome_version.html
index 7164987..c6d28ba 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/minimum_chrome_version.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/minimum_chrome_version.html
@@ -3,4 +3,4 @@
<p>
The version of Chrome that your extension, app, or theme requires, if any.
The format for this string is the same as for the
-<a href="http://developer.chrome.com/extensions/manifest.html#version">version</a> field.
+<a href="http://developer.chrome.com/extensions/manifest#version">version</a> field.
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/name.html b/chrome/common/extensions/docs/templates/articles/manifest/name.html
index 7db7f71..f2781f3 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/name.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/name.html
@@ -4,7 +4,7 @@
The <code>name</code> and <code>short_name</code> manifest properties are short,
plain text strings that identify the {{platform}}. You can specify
locale-specific strings for both fields; see
-<a href="http://developer.chrome.com/extensions/i18n.html">Internationalization</a>
+<a href="http://developer.chrome.com/extensions/i18n">Internationalization</a>
for details.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/requirements.html b/chrome/common/extensions/docs/templates/articles/manifest/requirements.html
index bcb391f..017e266 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/requirements.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/requirements.html
@@ -33,7 +33,7 @@ The "plugins" requirement indicates
if an app or extension requires NPAPI to run.
This requirement is enabled by default
when the manifest includes the
-<a href="http://developer.chrome.com/extensions/npapi.html">"plugins" field</a>.
+<a href="http://developer.chrome.com/extensions/npapi">"plugins" field</a>.
For apps and extensions that still work when plugins aren't available,
you can disable this requirement
by setting NPAPI to false.
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/sandbox.html b/chrome/common/extensions/docs/templates/articles/manifest/sandbox.html
index 495061d..39ac817 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/sandbox.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/sandbox.html
@@ -12,7 +12,7 @@ direct access to non-sandboxed pages (it may communicate with them via
<code>postMessage()</code>).</li>
<li>
<p>A sandboxed page is not subject to the
- <a href="http://developer.chrome.com/extensions/contentSecurityPolicy.html">Content Security Policy
+ <a href="http://developer.chrome.com/extensions/contentSecurityPolicy">Content Security Policy
(CSP)</a> used by the rest of the app or extension (it has its own separate
CSP value). This means that, for example, it can use inline script and
<code>eval</code>.</p>
@@ -56,14 +56,14 @@ that embeds them.
</p>
<p>
-<a href="http://developer.chrome.com/extensions/sandboxingEval.html">"Using eval in Chrome Extensions. Safely."</a>
+<a href="http://developer.chrome.com/extensions/sandboxingEval">"Using eval in Chrome Extensions. Safely."</a>
goes into more detail about implementing a sandboxing workflow that enables use
of libraries that would otherwise have issues executing under extension's
-<a href="http://developer.chrome.com/extensions/contentSecurityPolicy.html">default Content Security
+<a href="http://developer.chrome.com/extensions/contentSecurityPolicy">default Content Security
Policy</a>.
</p>
<p>
Sandboxed page may only be specified when using
-<a href="http://developer.chrome.com/extensions/manifest.html#manifest_version"><code>manifest_version</code></a> 2 or above.
+<a href="http://developer.chrome.com/extensions/manifest#manifest_version"><code>manifest_version</code></a> 2 or above.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/storage.html b/chrome/common/extensions/docs/templates/articles/manifest/storage.html
index a6787c0..d08e125 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/storage.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/storage.html
@@ -20,7 +20,7 @@ for examples from Chrome itself.
<p>
After declaring the policies they can be read from the
-<a href="../storage.html#property-managed">storage.managed</a> API.
+<a href="../storage#property-managed">storage.managed</a> API.
It's up to the {{platform}} to enforce the policies configured
by the administrator.
</p>
@@ -45,10 +45,10 @@ within the {{platform}} that contains the policy schema.
<p>
Chrome will then load these policies from the underlying operating system
and from Google Apps for signed-in users. The
-<a href="../storage.html#event-onChanged">storage.onChanged</a>
+<a href="../storage#event-onChanged">storage.onChanged</a>
event is fired whenever a policy change is detected, including while
the browser wasn't running if the {{platform}} uses
-<a href="../event_pages.html">event pages</a>.
+<a href="../event_pages">event pages</a>.
You can verify the policies that Chrome loaded at
<a href="chrome://policy">chrome://policy</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/url_handlers.html b/chrome/common/extensions/docs/templates/articles/manifest/url_handlers.html
index 1515063..87d564f 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/url_handlers.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/url_handlers.html
@@ -1,7 +1,7 @@
<h1 id="url_handlers">url_handlers</h1>
<p>
-Used by <a href="../app_lifecycle.html#eventpage">packaged apps</a>
+Used by <a href="../app_lifecycle#eventpage">packaged apps</a>
to specify URL patterns the app wants to intercept and handle. An app can
define multiple URL handlers under this manifest entry, each having an identifier,
a URL pattern, and a title.
@@ -47,7 +47,7 @@ cannot be verified).
Upon successful registration and installation, an app will be launched for all
matching navigations inside browser tabs as well as other apps. The app will
receive a new kind of the
-<a href="../app_runtime.html#event-onLaunched">app.runtime.onLaunched</a>
+<a href="../app_runtime#event-onLaunched">app.runtime.onLaunched</a>
event, with the launchData
object containing the matched handler's identifier (such as "view_foo_presentation"
above), the URL being navigated to, and the referrer's URL.
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/version.html b/chrome/common/extensions/docs/templates/articles/manifest/version.html
index 2b7406b..b3c0b47 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/version.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/version.html
@@ -44,5 +44,5 @@ For example, 1.1.9.9999 is newer than 1.1.
<p>
For more information, see
-<a href="http://developer.chrome.com/extensions/autoupdate.html">Autoupdating</a>.
+<a href="http://developer.chrome.com/extensions/autoupdate">Autoupdating</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifest/web_accessible_resources.html b/chrome/common/extensions/docs/templates/articles/manifest/web_accessible_resources.html
index c0861d1..418d7b8 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest/web_accessible_resources.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest/web_accessible_resources.html
@@ -27,7 +27,7 @@ etc.) as follows:
<p>
These resources would then be available in a webpage via the URL
<code>chrome-extension://[PACKAGE ID]/[PATH]</code>, which can be generated with
-the <a href="http://developer.chrome.com/extensions/extension.html#method-getURL">extension.getURL</a> method. Whitelisted resources are served with appropriate
+the <a href="http://developer.chrome.com/extensions/extension#method-getURL">extension.getURL</a> method. Whitelisted resources are served with appropriate
<a href="http://www.w3.org/TR/cors/">CORS</a> headers, so they're available via
mechanisms like XHR.
</p>
@@ -45,7 +45,7 @@ owned by the redirecting extension.</li>
</ul>
<p>
-<a href="http://developer.chrome.com/extensions/content_scripts.html">Content scripts</a> themselves do not need to be whitelisted.
+<a href="http://developer.chrome.com/extensions/content_scripts">Content scripts</a> themselves do not need to be whitelisted.
</p>
<p>
@@ -62,7 +62,7 @@ attack surface and protect the privacy of users.
<h2 id="availability">Default Availability</h2>
<p>
-Resources inside of packages using <a href="http://developer.chrome.com/extensions/manifest.html#manifest_version"><code>manifest_version</code></a>
+Resources inside of packages using <a href="http://developer.chrome.com/extensions/manifest#manifest_version"><code>manifest_version</code></a>
2 or above are <strong>blocked by default</strong>, and must be whitelisted
for use via this property.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/manifestVersion.html b/chrome/common/extensions/docs/templates/articles/manifestVersion.html
index 430fee3..6ea193b 100644
--- a/chrome/common/extensions/docs/templates/articles/manifestVersion.html
+++ b/chrome/common/extensions/docs/templates/articles/manifestVersion.html
@@ -13,7 +13,7 @@
<p>
Extensions, themes, and applications are simply bundles of resources, wrapped
- up with a <a href="manifest.html"><code>manifest.json</code></a> file that
+ up with a <a href="manifest"><code>manifest.json</code></a> file that
describes the package's contents. The format of this file is generally stable,
but occasionally breaking changes must be made to address important issues.
Developers should specify which version of the manifest specification their
@@ -93,7 +93,7 @@
A content security policy is set to <code>`script-src 'self'
chrome-extension-resource:; object-src 'self'</code> by default. This has
a variety of impacts on developers, described at length in the
- <a href="../extensions/contentSecurityPolicy.html">
+ <a href="../extensions/contentSecurityPolicy">
<code>content_security_policy</code></a> documentation.
</p>
</li>
@@ -103,7 +103,7 @@
websites (as the <code>src</code> of an image, or a <code>script</code>
tag). If you want a website to be able to load a resource contained in
your package, you'll need to explicitly whitelist it via the
- <a href="manifest/web_accessible_resources.html">
+ <a href="manifest/web_accessible_resources">
<code>web_accessible_resources</code>
</a> manifest attribute. This is particularly relevant for extensions that
build up an interface on a website via injected content scripts.
@@ -114,7 +114,7 @@
The <code>background_page</code> property has been replaced with a
<code>background</code> property that contains <em>either</em> a
<code>scripts</code> or <code>page</code> property. Details are available
- in the <a href="event_pages.html">Event Pages</a> documentation.
+ in the <a href="event_pages">Event Pages</a> documentation.
</p>
</li>
<li>
@@ -124,7 +124,7 @@
<p>
The <code>browser_actions</code> key in the manifest, and the
<code>chrome.browserActions</code> API are gone. Use the singular
- <a href="browserAction.html">
+ <a href="browserAction">
<code>browser_action</code> and <code>chrome.browserAction</code>
</a> instead.
</p>
@@ -132,7 +132,7 @@
<li>
<p>
The <code>icons</code> property of <code>browser_action</code> has
- been removed. Use <a href="browserAction.html#manifest">
+ been removed. Use <a href="browserAction#manifest">
the <code>default_icon</code> property
</a> or $(ref:browserAction.setIcon) instead.
</p>
@@ -140,7 +140,7 @@
<li>
<p>
The <code>name</code> property of <code>browser_action</code> has been
- removed. Use <a href="browserAction.html#manifest">
+ removed. Use <a href="browserAction#manifest">
the <code>default_title</code> property
</a> or $(ref:browserAction.setTitle) instead.
</p>
@@ -148,7 +148,7 @@
<li>
<p>
The <code>popup</code> property of <code>browser_action</code> has
- been removed. Use <a href="browserAction.html#manifest">
+ been removed. Use <a href="browserAction#manifest">
the <code>default_popup</code> property
</a> or $(ref:browserAction.setPopup) instead.
</p>
@@ -168,7 +168,7 @@
<p>
The <code>page_actions</code> key in the manifest, and the
<code>chrome.pageActions</code> API are gone. Use the singular
- <a href="pageAction.html">
+ <a href="pageAction">
<code>page_action</code> and <code>chrome.pageAction</code>
</a> instead.
</p>
@@ -176,7 +176,7 @@
<li>
<p>
The <code>icons</code> property of <code>page_action</code> has been
- removed. Use <a href="pageAction.html#manifest">
+ removed. Use <a href="pageAction#manifest">
the <code>default_icon</code> property
</a> or $(ref:pageAction.setIcon) instead.
</p>
@@ -184,7 +184,7 @@
<li>
<p>
The <code>name</code> property of <code>page_action</code> has been
- removed. Use <a href="pageAction.html#manifest">
+ removed. Use <a href="pageAction#manifest">
the <code>default_title</code> property
</a> or $(ref:pageAction.setTitle) instead.
</p>
@@ -192,7 +192,7 @@
<li>
<p>
The <code>popup</code> property of <code>page_action</code> has been
- removed. Use <a href="pageAction.html#manifest">
+ removed. Use <a href="pageAction#manifest">
the <code>default_popup</code> property
</a> or $(ref:pageAction.setPopup) instead.
</p>
@@ -208,7 +208,7 @@
<li>
<p>
The <code>chrome.self</code> API has been removed. Use
- <a href="extension.html"><code>chrome.extension</code></a> instead.
+ <a href="extension"><code>chrome.extension</code></a> instead.
</p>
</li>
<li>
diff --git a/chrome/common/extensions/docs/templates/articles/match_patterns.html b/chrome/common/extensions/docs/templates/articles/match_patterns.html
index 1abf3d5..145b76a 100644
--- a/chrome/common/extensions/docs/templates/articles/match_patterns.html
+++ b/chrome/common/extensions/docs/templates/articles/match_patterns.html
@@ -1,8 +1,8 @@
<h1>Match Patterns</h1>
<p>
-<a href="declare_permissions.html#host-permissions">Host
-permissions</a> and <a href="content_scripts.html">content
+<a href="declare_permissions#host-permissions">Host
+permissions</a> and <a href="content_scripts">content
script</a> matching are based on a set of URLs defined by
<dfn>match patterns</dfn>. A match pattern is essentially a
URL that begins with a permitted scheme (<code>http</code>,
diff --git a/chrome/common/extensions/docs/templates/articles/messaging.html b/chrome/common/extensions/docs/templates/articles/messaging.html
index 9aa7b66..c787165 100644
--- a/chrome/common/extensions/docs/templates/articles/messaging.html
+++ b/chrome/common/extensions/docs/templates/articles/messaging.html
@@ -458,5 +458,5 @@ in which a content script and its parent extension exchange messages,
so that the parent extension can perform
cross-site requests on behalf of the content script.
For more examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/npapi.html b/chrome/common/extensions/docs/templates/articles/npapi.html
index c623ed3..149c666 100644
--- a/chrome/common/extensions/docs/templates/articles/npapi.html
+++ b/chrome/common/extensions/docs/templates/articles/npapi.html
@@ -16,7 +16,7 @@ Consider using alternatives.</b></p>
<p align="center"><b>NPAPI is a really big hammer that should only be used when no other approach will work.</b>
-<p>Code running in an NPAPI plugin has the full permissions of the current user and is not sandboxed or shielded from malicious input by Google Chrome in any way. You should be especially cautious when processing input from untrusted sources, such as when working with <a href="content_scripts.html#security-considerations">content scripts</a> or XMLHttpRequest.
+<p>Code running in an NPAPI plugin has the full permissions of the current user and is not sandboxed or shielded from malicious input by Google Chrome in any way. You should be especially cautious when processing input from untrusted sources, such as when working with <a href="content_scripts#security-considerations">content scripts</a> or XMLHttpRequest.
<p>Because of the additional security risks NPAPI poses to users, extensions that use it will require manual review before being accepted in the
<a href="https://chrome.google.com/webstore">Chrome Web Store</a>.</p>
diff --git a/chrome/common/extensions/docs/templates/articles/offline_apps.html b/chrome/common/extensions/docs/templates/articles/offline_apps.html
index b6f4c13..d74d34c 100644
--- a/chrome/common/extensions/docs/templates/articles/offline_apps.html
+++ b/chrome/common/extensions/docs/templates/articles/offline_apps.html
@@ -23,7 +23,7 @@ Chrome Apps get the following for free:
(such as images)&mdash;are <b>already downloaded</b>. </li>
<li> Your app can <b>save and optionally sync</b>
small amounts of data using the
- <a href="storage.html">Chrome Storage API</a>. </li>
+ <a href="storage">Chrome Storage API</a>. </li>
<li> Your app can <b>detect changes in connectivity</b>
by listening for
<a href="https://developer.mozilla.org/en/Online_and_offline_events">online and offline events</a>. </li>
@@ -92,10 +92,10 @@ Your offline-enabled app should follow these rules:
If the resource is remote,
you can't specify it in your HTML.
Instead, get the data using <code>XMLHttpRequest</code>
- (see <a href="app_external.html#external">Referencing external resources</a>).
+ (see <a href="app_external#external">Referencing external resources</a>).
Then either refer to the data with a blob URL
or (better yet) save and then load the data using the
- <a href="app_storage.html">Filesystem API</a>.
+ <a href="app_storage">Filesystem API</a>.
<p class="note">
<b>Note:</b>
@@ -124,12 +124,12 @@ To provide a sandboxed iframe,
you can create an &lt;webview> tag.
Its contents can be remote,
but it has no direct access to the Chrome app APIs
-(see <a href="app_external.html#webview">Embed external web pages</a>).
+(see <a href="app_external#webview">Embed external web pages</a>).
</p>
<p>
Some of the restrictions on Chrome Apps are enforced by the
-<a href="contentSecurityPolicy.html">Content Security Policy (CSP)</a>
+<a href="contentSecurityPolicy">Content Security Policy (CSP)</a>
which is always the following and cannot be changed for Chrome Apps:
</p>
@@ -149,7 +149,7 @@ media-src *;
It is assumed that your app behaves well offline. If it doesn't, you should
advertise that fact, so that its launch icon is dimmed when the user is offline.
To do so, set <code>offline_enabled</code> to <code>false</code> in the
-<a href="manifest.html">app manifest file</a>:
+<a href="manifest">app manifest file</a>:
</p>
<pre data-filename="manifest.json">
@@ -165,7 +165,7 @@ To do so, set <code>offline_enabled</code> to <code>false</code> in the
<p>
The following table shows your options for saving data locally
-(see also <a href="app_storage.html">Manage Data</a>).
+(see also <a href="app_storage">Manage Data</a>).
</p>
<table class="simple">
@@ -186,14 +186,14 @@ The following table shows your options for saving data locally
<td> Structured data </td>
<td> Enables fast searches on data.
Use with the
- <a href="declare_permissions.html">unlimitedStorage permission</a>. </td>
+ <a href="declare_permissions">unlimitedStorage permission</a>. </td>
</tr>
<tr>
<td> Filesystem API </td>
<td> Anything else </td>
<td> Provides a sandboxed area where you can store files.
Use with the
- <a href="declare_permissions.html">unlimitedStorage permission</a>. </td>
+ <a href="declare_permissions">unlimitedStorage permission</a>. </td>
</tr>
</table>
@@ -212,7 +212,7 @@ The Storage API handles data asynchronously.
<p>
In general, how you save data remotely is up to you,
but some frameworks and APIs can help
-(see <a href="app_frameworks.html">MVC Architecture</a>).
+(see <a href="app_frameworks">MVC Architecture</a>).
If you use the Chrome Storage API,
then all syncable data
is automatically synced
@@ -241,7 +241,7 @@ if they reinstall your app.
Using an MVC framework can help you design and implement your app
so that the data is completely separate from the app's
view on the data.
-See <a href="app_frameworks.html">MVC Architecture</a>
+See <a href="app_frameworks">MVC Architecture</a>
for a list of MVC frameworks.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/override.html b/chrome/common/extensions/docs/templates/articles/override.html
index 5ecb1fc..730b7de 100644
--- a/chrome/common/extensions/docs/templates/articles/override.html
+++ b/chrome/common/extensions/docs/templates/articles/override.html
@@ -70,10 +70,10 @@ Incognito windows are treated specially.
New Tab pages cannot be overridden in incognito windows.
Other override pages work in incognito windows
as long as the
-<a href="manifest/incognito.html">incognito</a>
+<a href="manifest/incognito">incognito</a>
manifest property is set to "spanning"
(which is the default value).
-See <a href="overview.html#incognito">Saving data and incognito mode</a>
+See <a href="overview#incognito">Saving data and incognito mode</a>
in the Overview for more details on how you should treat
incognito windows.
</p>
@@ -106,7 +106,7 @@ next to a custom New Tab page.
<p>
Register an override page in the
-<a href="manifest.html">extension manifest</a> like this:
+<a href="manifest">extension manifest</a> like this:
</p>
<pre>{
@@ -182,5 +182,5 @@ For an effective override page, follow these guidelines:
<p>
See the
-<a href="samples.html#chrome_url_overrides">override samples</a>.
+<a href="samples#chrome_url_overrides">override samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/overview.html b/chrome/common/extensions/docs/templates/articles/overview.html
index 3d923cc..b26bfe0 100644
--- a/chrome/common/extensions/docs/templates/articles/overview.html
+++ b/chrome/common/extensions/docs/templates/articles/overview.html
@@ -4,7 +4,7 @@
<p>
Once you've finished this page
and the
-<a href="getstarted.html">Getting Started</a> tutorial,
+<a href="getstarted">Getting Started</a> tutorial,
you'll be all set to start writing extensions.
</p>
@@ -16,18 +16,18 @@ CSS, JavaScript, images, and anything else you need&mdash;that
adds functionality to the Google Chrome browser.
Extensions are essentially web pages,
and they can use all the
-<a href="api_other.html">APIs that the browser provides to web pages</a>,
+<a href="api_other">APIs that the browser provides to web pages</a>,
from XMLHttpRequest to JSON to HTML5.
</p>
<p>
Extensions can interact with web pages or servers using
-<a href="content_scripts.html">content scripts</a> or
-<a href="xhr.html">cross-origin XMLHttpRequests</a>.
+<a href="content_scripts">content scripts</a> or
+<a href="xhr">cross-origin XMLHttpRequests</a>.
Extensions can also interact programmatically
with browser features such as
-<a href="bookmarks.html">bookmarks</a>
-and <a href="tabs.html">tabs</a>.
+<a href="bookmarks">bookmarks</a>
+and <a href="tabs">tabs</a>.
</p>
<h3 id="extension-ui">Extension UIs</h3>
@@ -35,8 +35,8 @@ and <a href="tabs.html">tabs</a>.
<p>
Many extensions&mdash;but not Chrome Apps&mdash;add
UI to Google Chrome in the form of
-<a href="browserAction.html">browser actions</a>
-or <a href="pageAction.html">page actions</a>.
+<a href="browserAction">browser actions</a>
+or <a href="pageAction">page actions</a>.
Each extension can have at most one browser action or page action.
Choose a <b>browser action</b> when the extension is relevant to most pages.
Choose a <b>page action</b> when the extension's icon
@@ -65,19 +65,19 @@ depending on the page.
<tr>
<td>
- This <a href="samples.html#google-mail-checker">Google Mail Checker extension</a>
+ This <a href="samples#google-mail-checker">Google Mail Checker extension</a>
uses a <em>browser action</em>
(icon in the toolbar).
</td>
<td>
- This <a href="samples.html#mappy">Mappy extension</a>
+ This <a href="samples#mappy">Mappy extension</a>
uses a <em>page action</em>
(icon in the address bar)
and <em>content script</em>
(code injected into a web page).
</td>
<td>
- This <a href="samples.html#news-reader">News Reader extension</a>
+ This <a href="samples#news-reader">News Reader extension</a>
features a browser action that,
when clicked,
shows a <em>popup</em>.
@@ -90,7 +90,7 @@ Extensions (and Chrome Apps) can also present a UI in other ways,
such as adding to the Chrome context menu,
providing an options page,
or using a content script that changes how pages look.
-See the <a href="devguide.html">Developer's Guide</a>
+See the <a href="devguide">Developer's Guide</a>
for a complete list of extension features,
with links to implementation details
for each one.
@@ -120,7 +120,7 @@ If you upload your extension using the
<a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Developer Dashboard</a>,
the <code>.crx</code> file is created for you.
For details on distributing extensions,
-see <a href="hosting.html">Hosting</a>.
+see <a href="hosting">Hosting</a>.
</p>
@@ -170,7 +170,7 @@ the ID will change again when you package the extension.
If your extension's code
needs to specify the full path to a file within the extension,
you can use the <code>@@extension_id</code>
-<a href="i18n.html#overview-predefined">predefined message</a>
+<a href="i18n#overview-predefined">predefined message</a>
to avoid hardcoding the ID during development.
</p>
@@ -216,7 +216,7 @@ that uses information from google.com:
<p>
For details, see
-<a href="manifest.html">Manifest Files</a>.
+<a href="manifest">Manifest Files</a>.
</p>
<h2 id="arch">Architecture</h2>
@@ -254,8 +254,8 @@ the behavior of the browser action in both windows.
<p>
There are two types of background pages:
-<a href="background_pages.html">persistent background pages</a>,
-and <a href="event_pages.html">event pages</a>. Persistent
+<a href="background_pages">persistent background pages</a>,
+and <a href="event_pages">event pages</a>. Persistent
background pages, as the name suggests, are always open.
Event pages are opened and closed as needed. Unless you absolutely
need your background page to run all the time, prefer to use
@@ -266,8 +266,8 @@ an event page.
This could build on a figure that shows the process architecture. -->
<p>
-See <a href="event_pages.html">Event Pages</a>
-and <a href="background_pages.html">Background Pages</a>
+See <a href="event_pages">Event Pages</a>
+and <a href="background_pages">Background Pages</a>
for more details.
</p>
@@ -314,9 +314,9 @@ because the popup can invoke functions on the background page.
alt="A browser window containing a browser action that's displaying a popup. The popup's HTML file (popup.html) can communicate with the extension's background page (background.html)." />
<p>
-See <a href="browserAction.html">Browser Actions</a>,
-<a href="options.html">Options</a>,
-<a href="override.html">Override Pages</a>,
+See <a href="browserAction">Browser Actions</a>,
+<a href="options">Options</a>,
+<a href="override">Override Pages</a>,
and the <a href="#pageComm">Communication between pages</a> section
for more details.
</p>
@@ -376,7 +376,7 @@ asking a content script to change the appearance of its browser page.
<p>
For more information,
-see <a href="content_scripts.html">Content Scripts</a>.
+see <a href="content_scripts">Content Scripts</a>.
</p>
@@ -506,7 +506,7 @@ since we don't do anything about the results of the update.
<p>
For more information, see the
-<a href="api_index.html">chrome.* API docs</a>
+<a href="api_index">chrome.* API docs</a>
and watch this video:
</p>
@@ -526,7 +526,7 @@ the pages can make direct function calls to each other.
<p>
To find pages in the extension, use
-<a href="extension.html"><code>chrome.extension</code></a>
+<a href="extension"><code>chrome.extension</code></a>
methods such as
<code>getViews()</code> and
<code>getBackgroundPage()</code>.
@@ -600,10 +600,10 @@ Here are some ideas for where to go next:
</p>
<ul>
- <li> <a href="getstarted.html">Tutorial: Getting Started</a> </li>
- <li> <a href="tut_debugging.html">Tutorial: Debugging</a> </li>
- <li> <a href="devguide.html">Developer's Guide</a> </li>
- <li> <a href="samples.html">Samples</a> </li>
+ <li> <a href="getstarted">Tutorial: Getting Started</a> </li>
+ <li> <a href="tut_debugging">Tutorial: Debugging</a> </li>
+ <li> <a href="devguide">Developer's Guide</a> </li>
+ <li> <a href="samples">Samples</a> </li>
<li> <a href="http://www.youtube.com/view_play_list?p=CA101D6A85FE9D4B">Videos</a>,
such as
<a href="http://www.youtube.com/watch?v=B4M_a7xejYI&feature=PlayList&p=CA101D6A85FE9D4B&index=6">Extension Message Passing</a>
diff --git a/chrome/common/extensions/docs/templates/articles/packaging.html b/chrome/common/extensions/docs/templates/articles/packaging.html
index 49dbe16..c4e844d 100644
--- a/chrome/common/extensions/docs/templates/articles/packaging.html
+++ b/chrome/common/extensions/docs/templates/articles/packaging.html
@@ -3,7 +3,7 @@
<p>
This page describes how to package your extension.
-As the <a href="overview.html">Overview</a> explains,
+As the <a href="overview">Overview</a> explains,
extensions are packaged as signed ZIP files
with the file extension "crx"&mdash;for example,
<code>myextension.crx</code>.
@@ -19,7 +19,7 @@ would be to distribute a non-public version&mdash;for example,
to alpha testers.
You can find information on publishing extensions and apps in the
Chrome Web Store getting started tutorial, starting at
-<a href="http://code.google.com/chrome/webstore/docs/get_started_simple.html#step5">Step 5: Zip up your app</a>.
+<a href="http://code.google.com/chrome/webstore/docs/get_started_simple#step5">Step 5: Zip up your app</a>.
</p>
<p>
@@ -186,5 +186,5 @@ chrome.exe --pack-extension=C:\myext --pack-extension-key=C:\myext.pem
<h2 id="format">Package format and scripts</h2>
<p>
For more information on the format, as well as pointers to scripts you can use
-to create <code>.crx</code> files, see <a href="crx.html">CRX Package Format</a>.
+to create <code>.crx</code> files, see <a href="crx">CRX Package Format</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/permission_warnings.html b/chrome/common/extensions/docs/templates/articles/permission_warnings.html
index 942a669..913009f 100644
--- a/chrome/common/extensions/docs/templates/articles/permission_warnings.html
+++ b/chrome/common/extensions/docs/templates/articles/permission_warnings.html
@@ -15,7 +15,7 @@ IDS_EXTENSION_PROMPT_WARNING
<p>
To use most chrome.* APIs and extension capabilities,
your extension must declare its intent in the
-<a href="manifest.html">manifest</a>,
+<a href="manifest">manifest</a>,
often in the "permissions" field.
Some of these declarations
result in a warning when
@@ -150,7 +150,7 @@ that trigger them.
</td>
<td>
The "plugins" permission is required by
- <a href="npapi.html">NPAPI plugins</a>.
+ <a href="npapi">NPAPI plugins</a>.
</td>
</tr>
@@ -164,7 +164,7 @@ that trigger them.
</td>
<td>
The "bookmarks" permission is required by the
- <a href="bookmarks.html"><code>chrome.bookmarks</code></a> module.
+ <a href="bookmarks"><code>chrome.bookmarks</code></a> module.
</td>
</tr>
@@ -184,11 +184,11 @@ that trigger them.
<td>
<p>
The "history" permission is required by
- <a href="history.html"><code>chrome.history</code></a>.
+ <a href="history"><code>chrome.history</code></a>.
</p>
<p>
The "topSites" permission is required by
- <a href="topSites.html"><code>chrome.topSites</code></a>.
+ <a href="topSites"><code>chrome.topSites</code></a>.
</p>
</td>
</tr>
@@ -209,12 +209,12 @@ that trigger them.
<td>
<p>
The "tabs" permission is required by the
- <a href="tabs.html"><code>chrome.tabs</code></a> and
- <a href="windows.html"><code>chrome.windows</code></a> modules.
+ <a href="tabs"><code>chrome.tabs</code></a> and
+ <a href="windows"><code>chrome.windows</code></a> modules.
</p>
<p>
The "webNavigation" permission is required by the
- <a href="webNavigation.html"><code>chrome.webNavigation</code></a> module.
+ <a href="webNavigation"><code>chrome.webNavigation</code></a> module.
</p>
</td>
</tr>
@@ -231,7 +231,7 @@ that trigger them.
<td>
<p>
The "contentSettings" permission is required by
- <a href="contentSettings.html"><code>chrome.contentSettings</code></a>.
+ <a href="contentSettings"><code>chrome.contentSettings</code></a>.
</p>
</td>
</tr>
@@ -258,12 +258,12 @@ that trigger them.
<td>
<p>
The "debugger" permission is required by the
- <a href="debugger.html">debugger</a> module.
+ <a href="debugger">debugger</a> module.
</p>
<p>
The "proxy" permission is required by the
- <a href="proxy.html"><code>chrome.proxy</code></a> module.
+ <a href="proxy"><code>chrome.proxy</code></a> module.
</p>
<p>
@@ -275,7 +275,7 @@ that trigger them.
<li> <code>*://*/*</code> </li>
<li> <code>&lt;all_urls&gt;</code> </li>
</ul>
- <strong>Note that you may be able to avoid declaring all host permissions using the <code><a href="activeTab.html">activeTab</a></code> permission.</strong>
+ <strong>Note that you may be able to avoid declaring all host permissions using the <code><a href="activeTab">activeTab</a></code> permission.</strong>
</td>
</tr>
<tr>
@@ -322,7 +322,7 @@ that trigger them.
</td>
<td>
The "management" permission is required by the
- <a href="management.html"><code>chrome.management</code></a> module.
+ <a href="management"><code>chrome.management</code></a> module.
</td>
</tr>
@@ -369,7 +369,7 @@ that trigger them.
</td>
<td>
The "privacy" permission is required by the
- <a href="privacy.html"><code>chrome.privacy</code></a> module.
+ <a href="privacy"><code>chrome.privacy</code></a> module.
</td>
</tr>
@@ -383,7 +383,7 @@ that trigger them.
</td>
<td>
The "signedInDevices" permission is required by the
- <a href="signedInDevices.html"><code>chrome.signedInDevices</code></a>
+ <a href="signedInDevices"><code>chrome.signedInDevices</code></a>
module.
</td>
</tr>
@@ -398,7 +398,7 @@ that trigger them.
</td>
<td>
The "ttsEngine" permission is required by the
- <a href="ttsEngine.html"><code>chrome.ttsEngine</code></a> module.
+ <a href="ttsEngine"><code>chrome.ttsEngine</code></a> module.
</td>
</tr>
</table>
@@ -440,7 +440,7 @@ The following permissions don't result in a warning:
<p>
If you'd like to see exactly which warnings your users will get,
-<a href="packaging.html">package your extension</a>
+<a href="packaging">package your extension</a>
into a <code>.crx</code> file,
and install it.
</p>
@@ -452,12 +452,12 @@ and set up an autoupdate server.
To do this, first create an update manifest
and point to it from your extension,
using the "update_url" key
-(see <a href="autoupdate.html">Autoupdating</a>).
-Next, <a href="packaging.html">package the extension</a>
+(see <a href="autoupdate">Autoupdating</a>).
+Next, <a href="packaging">package the extension</a>
into a new <code>.crx</code> file,
and install the app from this <code>.crx</code> file.
Now, change the extension's manifest to contain the new permissions,
-and <a href="packaging.html#update">repackage the extension</a>.
+and <a href="packaging#update">repackage the extension</a>.
Finally, update the extension
(and all other extensions that have outstanding updates)
by clicking the <b>chrome://extensions</b> page's
diff --git a/chrome/common/extensions/docs/templates/articles/sandboxingEval.html b/chrome/common/extensions/docs/templates/articles/sandboxingEval.html
index d8746d1..bdb91c0 100644
--- a/chrome/common/extensions/docs/templates/articles/sandboxingEval.html
+++ b/chrome/common/extensions/docs/templates/articles/sandboxingEval.html
@@ -3,13 +3,13 @@
<p>
Chrome's extension system enforces a fairly strict default
- <a href='../extensions/contentSecurityPolicy.html'>
+ <a href='../extensions/contentSecurityPolicy'>
<strong>Content Security Policy (CSP)</strong>
</a>. The policy restrictions are straightforward: script must be moved
out-of-line into separate JavaScript files, inline event handlers must be
converted to use <code>addEventListener</code>, and <code>eval()</code> is
disabled. Chrome Apps have an
- <a href='contentSecurityPolicy.html'>even more strict
+ <a href='contentSecurityPolicy'>even more strict
policy</a>, and we're quite happy with the security properties these policies
provide.
</p>
@@ -60,7 +60,7 @@
<p>
If you'd like to dive straight into code, please grab the
- <a href='/extensions/samples.html#sandboxed-frame'>sandboxing
+ <a href='/extensions/samples#sandboxed-frame'>sandboxing
sample extension and take off</a>. It's a working example of a tiny messaging
API built on top of the <a href='http://handlebarsjs.com'>Handlebars</a>
templating library, and it should give you everything you need to get going.
@@ -94,7 +94,7 @@
In order to do something interesting with the sandboxed file, we need to load
it in a context where it can be addressed by the extension's code. Here,
<a href='/extensions/examples/howto/sandbox/sandbox.html'>sandbox.html</a>
- has been loaded into the extension's <a href='event_pages.html'>Event
+ has been loaded into the extension's <a href='event_pages'>Event
Page</a> (<a href='/extensions/examples/howto/sandbox/eventpage.html'>eventpage.html</a>)
via an <code>iframe</code>. <a href='/extensions/examples/howto/sandbox/eventpage.js'>eventpage.js</a>
contains code that sends a message into the sandbox whenever the browser
@@ -187,7 +187,7 @@ chrome.browserAction.onClicked.addListener(function() {
<p>
Back in the Event Page, we'll receive this message, and do something
interesting with the <code>html</code> data we've been passed. In this case,
- we'll just echo it out via a <a href='desktop_notifications.html'>Desktop
+ we'll just echo it out via a <a href='desktop_notifications'>Desktop
Notification</a>, but it's entirely possible to use this HTML safely as part
of the extension's UI. Inserting it via <code>innerHTML</code> doesn't pose a
significant security risk, as even a complete compromise of the sandboxed code
diff --git a/chrome/common/extensions/docs/templates/articles/sencha_framework.html b/chrome/common/extensions/docs/templates/articles/sencha_framework.html
index 7765e2e..3045560 100644
--- a/chrome/common/extensions/docs/templates/articles/sencha_framework.html
+++ b/chrome/common/extensions/docs/templates/articles/sencha_framework.html
@@ -25,9 +25,9 @@ to build a media player app using Sencha Ext JS:
<ul>
<li>Create manifest, <code>manifest.json</code>.</li>
- <li>Create <a href="app_lifecycle.html#eventpage">event page</a>,
+ <li>Create <a href="app_lifecycle#eventpage">event page</a>,
<code>background.js</code>.</li>
- <li><a href="app_external.html#sandboxing">Sandbox</a> app's logic.</li>
+ <li><a href="app_external#sandboxing">Sandbox</a> app's logic.</li>
<li>Communicate between Chrome App and sandboxed files.</li>
<li>Discover media servers.</li>
<li>Explore and play media.</li>
@@ -38,7 +38,7 @@ to build a media player app using Sencha Ext JS:
<p>
All Chrome Apps require a
-<a href="manifest.html">manifest file</a>
+<a href="manifest">manifest file</a>
which contains the information Chrome needs to launch apps.
As indicated in the manifest,
the media player app is "offline_enabled";
@@ -50,10 +50,10 @@ accessed and played regardless of connectivity.
The "sandbox" field is used
to sandbox the app's main logic in a unique origin.
All sandboxed content is exempt from the Chrome App
-<a href="contentSecurityPolicy.html">Content Security Policy</a>,
+<a href="contentSecurityPolicy">Content Security Policy</a>,
but cannot directly access the Chrome App APIs.
The manifest also includes the "socket" permission;
-the media player app uses the <a href="socket.html">socket API</a>
+the media player app uses the <a href="socket">socket API</a>
to connect to a media server over the network.
</p>
@@ -117,7 +117,7 @@ chrome.app.runtime.onLaunched.addListener(function(launchData) {
<h2 id="three">Sandbox app's logic</h2>
<p>Chrome Apps run in a controlled environment
-that enforces a strict <a href="contentSecurityPolicy.html">Content Security Policy (CSP)</a>.
+that enforces a strict <a href="contentSecurityPolicy">Content Security Policy (CSP)</a>.
The media player app needs some higher privileges to render the Ext JS components.
To comply with CSP and execute the app logic,
the app's main page, <code>index.html</code>, creates an iframe
@@ -253,7 +253,7 @@ calls <a href="https://github.com/GoogleChrome/sencha-video-player-app/blob/mast
<p>
The <code>Upnp library</code> uses the Chrome App
-<a href="app_network.html">socket API</a>
+<a href="app_network">socket API</a>
to connect the media player app with any discovered media servers
and receive media data from the media server.
<code>Upnp.js</code> also uses
diff --git a/chrome/common/extensions/docs/templates/articles/settings_override.html b/chrome/common/extensions/docs/templates/articles/settings_override.html
index f064e0e..2908481 100644
--- a/chrome/common/extensions/docs/templates/articles/settings_override.html
+++ b/chrome/common/extensions/docs/templates/articles/settings_override.html
@@ -8,7 +8,7 @@ Settings overrides are a way for extensions to override selected Chrome settings
<p>
Here is an example how <a href="#homepage">homepage</a>, <a
href="#search_provider">search provider</a> and <a href="#startup_pages">startup
-pages</a> can be modified in the <a href="manifest.html">extension
+pages</a> can be modified in the <a href="manifest">extension
manifest</a>.</p>
<pre>{
diff --git a/chrome/common/extensions/docs/templates/articles/themes.html b/chrome/common/extensions/docs/templates/articles/themes.html
index d456dbc..9c1ab65 100644
--- a/chrome/common/extensions/docs/templates/articles/themes.html
+++ b/chrome/common/extensions/docs/templates/articles/themes.html
@@ -1,7 +1,7 @@
<h1 class="page_title">Themes</h1><p>
A <em>theme</em> is a special kind of extension
that changes the way the browser looks.
-Themes are <a href="packaging.html">packaged</a> like regular extensions,
+Themes are <a href="packaging">packaged</a> like regular extensions,
but they don't contain JavaScript or HTML code.
</p>
@@ -22,7 +22,7 @@ You can find and try a bunch of themes at the
<h2 id="manifest"> Manifest </h2>
<p>
Here is an example
-<a href="manifest.html"><code>manifest.json</code></a>
+<a href="manifest"><code>manifest.json</code></a>
file for a theme:
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/tut_analytics.html b/chrome/common/extensions/docs/templates/articles/tut_analytics.html
index 0370f7a..6a84319 100644
--- a/chrome/common/extensions/docs/templates/articles/tut_analytics.html
+++ b/chrome/common/extensions/docs/templates/articles/tut_analytics.html
@@ -4,7 +4,7 @@
<p>
This tutorial demonstrates using Google Analytics to track the usage of your
extension. If you are developing a platform app, see <a
- href="/apps/analytics.html">Analytics for Apps</a> since apps have different
+ href="/apps/analytics">Analytics for Apps</a> since apps have different
restrictions from extensions.
</p>
@@ -12,7 +12,7 @@
<p>
This tutorial expects that you have some familiarity writing extensions for
Google Chrome. If you need information on how to write an extension, please
- read the <a href="getstarted.html">Getting Started tutorial</a>.
+ read the <a href="getstarted">Getting Started tutorial</a>.
</p>
<p>
@@ -36,7 +36,7 @@
was loaded using the <code>https://</code> protocol. <strong>Chrome
extensions and applications may <em>only</em> use the SSL-protected version of
<code>ga.js</code></strong>. Loading <code>ga.js</code> over insecure HTTP is
- disallowed by Chrome's default <a href="contentSecurityPolicy.html">Content
+ disallowed by Chrome's default <a href="contentSecurityPolicy">Content
Security Policy</a>. This, plus the fact that Chrome extensions are hosted
under the <code>chrome-extension://</code> schema, requires a slight
modification to the usual tracking snippet to pull <code>ga.js</code> directly
@@ -61,7 +61,7 @@
<p>
You'll also need to ensure that your extension has access to load the resource
by relaxing the default content security policy. The policy definition in your
- <a href="manifest.html"><code>manifest.json</code></a> might look like:
+ <a href="manifest"><code>manifest.json</code></a> might look like:
</p>
<pre data-filename="manifest.json">
@@ -136,7 +136,7 @@ _gaq.push(['_trackPageview']);
To ensure that tracking data from your extension is being sent to Google
Analytics, you can inspect the pages of your extension in the
Developer Tools window (see the
- <a href="tut_debugging.html">debugging tutorial</a> for more information).
+ <a href="tut_debugging">debugging tutorial</a> for more information).
As the following figure shows, you should see requests for a file named
<strong>__utm.gif</strong> if everything is set up correctly.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/tut_debugging.html b/chrome/common/extensions/docs/templates/articles/tut_debugging.html
index 3d6435c..08afd58 100644
--- a/chrome/common/extensions/docs/templates/articles/tut_debugging.html
+++ b/chrome/common/extensions/docs/templates/articles/tut_debugging.html
@@ -13,7 +13,7 @@ to interactively debug an extension.
<p>
To follow this tutorial, you need
the Hello World extension that was featured in
-<a href="getstarted.html">Getting Started</a>.
+<a href="getstarted">Getting Started</a>.
In this section,
you'll load the extension
and take a look at its information
@@ -40,7 +40,7 @@ in the Extensions page.
extract them from this
<a href="examples/tutorials/getstarted.zip" download="getstarted.zip">ZIP file</a>.
See Getting Started if you need
- <a href="getstarted.html#unpacked">instructions
+ <a href="getstarted#unpacked">instructions
for loading the extension</a>.
</p>
</li>
@@ -237,7 +237,7 @@ here are suggestions for what to do next:
<li>
Try installing and inspecting other extensions,
such as the
- <a href="samples.html">samples</a>.
+ <a href="samples">samples</a>.
</li>
<li>
Try using widely available debugging APIs such as
@@ -257,6 +257,6 @@ here are suggestions for what to do next:
<p>
For more ideas,
-see the <a href="getstarted.html#next-steps">Now what?</a> section
+see the <a href="getstarted#next-steps">Now what?</a> section
of Getting Started.
</p>
diff --git a/chrome/common/extensions/docs/templates/articles/tut_migration_to_manifest_v2.html b/chrome/common/extensions/docs/templates/articles/tut_migration_to_manifest_v2.html
index f628a7c..be3b1ae 100644
--- a/chrome/common/extensions/docs/templates/articles/tut_migration_to_manifest_v2.html
+++ b/chrome/common/extensions/docs/templates/articles/tut_migration_to_manifest_v2.html
@@ -3,7 +3,7 @@
<p>
Manifest version 1 was deprecated in Chrome 18,
and support will be phased out according to the
-<a href="manifestVersion.html#manifest-v1-support-schedule">manifest version 1 support schedule</a>.
+<a href="manifestVersion#manifest-v1-support-schedule">manifest version 1 support schedule</a>.
The changes from version 1 to version 2
fall under two broad categories:
API changes and Security changes.
@@ -61,7 +61,7 @@ followed by more detailed summaries of what these changes mean and why they were
property that contains the code for the page.</li>
<li>Add a <code>persistent</code> property and set it
to <code>false</code> to convert your background page
- to an <a href="event_pages.html">event page</a></li>
+ to an <a href="event_pages">event page</a></li>
</ul>
</ul>
@@ -83,13 +83,13 @@ followed by more detailed summaries of what these changes mean and why they were
that need to access resources (like images and scripts)
that are contained in the extension’s package?</li>
<ul>
- <li>Define the <a href="manifest/web_accessible_resources.html">web_accessible_resources</a>
+ <li>Define the <a href="manifest/web_accessible_resources">web_accessible_resources</a>
property and list the resources
(and optionally a separate Content Security Policy for those resources).</li>
</ul>
<li>Does your extension embed external Web pages?</li>
<ul>
- <li>Define the <a href="manifest/sandbox.html">sandbox</a> property.</li>
+ <li>Define the <a href="manifest/sandbox">sandbox</a> property.</li>
</ul>
<li>Is your code or library using <code>eval()</code>, new <code>Function()</code>,
<code>innerHTML</code>, <code>setTimeout()</code>, or otherwise passing strings
@@ -175,7 +175,7 @@ A few extension APIs have been removed and replaced with new counterparts:
<ul>
<li>The <code>background_page</code> property has been replaced
- by <a href="background_pages.html">background</a>.</li>
+ by <a href="background_pages">background</a>.</li>
<li>The <code>chrome.self</code> property has been removed,
use <code>chrome.extension</code>.</li>
<li>The <code>Port.tab</code> property has been replaced
@@ -191,14 +191,14 @@ A few extension APIs have been removed and replaced with new counterparts:
There are a number of security-related changes
that accompany the move from manifest version 1 to version 2.
Many of these changes stem from Chrome’s adoption of
-<a href="contentSecurityPolicy.html">Content Security Policy</a>;
+<a href="contentSecurityPolicy">Content Security Policy</a>;
you should read more about this policy to understand its implications.
</p>
<h3 id="inline_scripts">Inline scripts and event handlers disallowed</h3>
<p>
-Due to the use of <a href="contentSecurityPolicy.html">Content Security Policy</a>,
+Due to the use of <a href="contentSecurityPolicy">Content Security Policy</a>,
you can no longer use &lt;script> tags that are inline with the HTML content.
These must be moved to external JS files.
In addition, inline event handlers are also not supported.
@@ -264,7 +264,7 @@ that can be used externally or come from an external source.
If your extension embeds resources (like images, script, CSS styles, etc)
that are used in content scripts that are injected into web pages,
you need to use the
-<a href="manifest/web_accessible_resources.html">web_accessible_resources</a> property
+<a href="manifest/web_accessible_resources">web_accessible_resources</a> property
to whitelist these resources so that external Web pages can use them:
</p>
@@ -337,7 +337,7 @@ and the like under the new Content Security Policy:
<p>
For more details on how to do this,
-see the <a href="sandboxingEval.html">Sandboxing Eval</a> documentation.
+see the <a href="sandboxingEval">Sandboxing Eval</a> documentation.
</p>
<h2 id="further-reading">Further reading</h2>
@@ -346,9 +346,9 @@ see the <a href="sandboxingEval.html">Sandboxing Eval</a> documentation.
The changes in manifest version 2 are designed to guide developers
toward building more secure and robustly-architected extensions and apps.
To see a complete list of changes from manifest version 1 to version 2,
-see the <a href="manifestVersion.html">manifest file</a> documentation.
+see the <a href="manifestVersion">manifest file</a> documentation.
For more information about using sandboxing to isolate unsafe code,
-read the <a href="sandboxingEval.html">sandboxing eval</a> article.
+read the <a href="sandboxingEval">sandboxing eval</a> article.
You can learn more about Content Security Policy
by visiting our extensions-related tutorial and a
<a href="http://www.html5rocks.com/en/tutorials/security/content-security-policy/">good introduction on HTML5Rocks</a>.
diff --git a/chrome/common/extensions/docs/templates/articles/tut_oauth.html b/chrome/common/extensions/docs/templates/articles/tut_oauth.html
index b58c49c..c2fe0b9 100644
--- a/chrome/common/extensions/docs/templates/articles/tut_oauth.html
+++ b/chrome/common/extensions/docs/templates/articles/tut_oauth.html
@@ -92,7 +92,7 @@ var oauth = ChromeExOAuth.initBackgroundPage({
<p>
To use the OAuth library,
you must declare the "tabs" permision in the
-<a href="manifest.html">extension manifest</a>.
+<a href="manifest">extension manifest</a>.
You must also declare the sites you are using
including the request URL, the authorize URL, access URL,
and, if necessary, the scope URL.
diff --git a/chrome/common/extensions/docs/templates/articles/tutorials.html b/chrome/common/extensions/docs/templates/articles/tutorials.html
index 79fbf87..171e4ef 100644
--- a/chrome/common/extensions/docs/templates/articles/tutorials.html
+++ b/chrome/common/extensions/docs/templates/articles/tutorials.html
@@ -6,8 +6,8 @@ developing Google Chrome Extensions:
</p>
<ul>
- <li> <a href="getstarted.html">Getting Started</a> </li>
- <li> <a href="tut_debugging.html">Debugging</a> </li>
+ <li> <a href="getstarted">Getting Started</a> </li>
+ <li> <a href="tut_debugging">Debugging</a> </li>
</ul>
<p>
@@ -16,14 +16,14 @@ more specialized topics:
</p>
<ul>
- <li> <a href="tut_analytics.html">Google Analytics</a> -
+ <li> <a href="tut_analytics">Google Analytics</a> -
Track the usage of your extension.
</li>
- <li> <a href="tut_oauth.html">OAuth</a> -
+ <li> <a href="tut_oauth">OAuth</a> -
Learn how your extension can use APIs
(such as <a href="http://code.google.com/apis/gdata/">Google Data APIs</a>)
that support OAuth.
This tutorial features an OAuth library
that you can reuse in your extension.
</li>
-</ul> \ No newline at end of file
+</ul>
diff --git a/chrome/common/extensions/docs/templates/articles/ui_override.html b/chrome/common/extensions/docs/templates/articles/ui_override.html
index 1397772..d7d4cb4 100644
--- a/chrome/common/extensions/docs/templates/articles/ui_override.html
+++ b/chrome/common/extensions/docs/templates/articles/ui_override.html
@@ -8,7 +8,7 @@ user interface properties.
<h2 id="bookmarks">Bookmarks User Interface</h2>
<p>
Register the user interface properties you want to override in the
-<a href="manifest.html">extension manifest</a> like this:
+<a href="manifest">extension manifest</a> like this:
</p>
<pre>{
diff --git a/chrome/common/extensions/docs/templates/articles/whats_new.html b/chrome/common/extensions/docs/templates/articles/whats_new.html
index 9bbcd22..fd58ae4 100644
--- a/chrome/common/extensions/docs/templates/articles/whats_new.html
+++ b/chrome/common/extensions/docs/templates/articles/whats_new.html
@@ -10,7 +10,7 @@ made in recent releases.
<h4 id="{{c.version}}-new-apis">New APIs</h4>
<ul>
{{#api:c.apis}}
- <li id="{{api.name}}"><a href="{{api.name}}.html">{{api.name}}</a>: {{{api.description}}}</li>
+ <li id="{{api.name}}"><a href="{{api.name}}">{{api.name}}</a>: {{{api.description}}}</li>
{{/}}
</ul>
{{/}}
@@ -30,4 +30,4 @@ made in recent releases.
{{/}}
</ul>
{{/}}
-{{/}} \ No newline at end of file
+{{/}}
diff --git a/chrome/common/extensions/docs/templates/articles/xhr.html b/chrome/common/extensions/docs/templates/articles/xhr.html
index 12ecd1e..f5270b5 100644
--- a/chrome/common/extensions/docs/templates/articles/xhr.html
+++ b/chrome/common/extensions/docs/templates/articles/xhr.html
@@ -35,8 +35,8 @@ unless the extension has requested the appropriate cross-origin permissions.
<h2 id="requesting-permission">Requesting cross-origin permissions</h2>
<p>By adding hosts or host match patterns (or both) to the
-<a href="declare_permissions.html">permissions</a> section of the
-<a href="manifest.html">manifest</a> file, the extension can request access to
+<a href="declare_permissions">permissions</a> section of the
+<a href="manifest">manifest</a> file, the extension can request access to
remote servers outside of its origin.</p>
<pre data-filename="manifest.json">
@@ -68,7 +68,7 @@ like these:</p>
<p>
A match pattern of "http://*/" allows HTTP access to all reachable domains.
Note that here,
-match patterns are similar to <a href="match_patterns.html">content script
+match patterns are similar to <a href="match_patterns">content script
match patterns</a>,
but any path information following the host is ignored.</p>
@@ -151,7 +151,7 @@ prefer HTTPS whenever possible.
<h3 id="interaction-with-csp">Interaction with Content Security Policy</h3>
<p>
-If you modify the default <a href="contentSecurityPolicy.html">Content
+If you modify the default <a href="contentSecurityPolicy">Content
Security Policy</a> for apps or extensions by adding a
<code>content_security_policy</code> attribute to your manifest, you'll need to
ensure that any hosts to which you'd like to connect are allowed. While the
diff --git a/chrome/common/extensions/docs/templates/intros/bookmarks.html b/chrome/common/extensions/docs/templates/intros/bookmarks.html
index 78bdf42..f1d40b0 100644
--- a/chrome/common/extensions/docs/templates/intros/bookmarks.html
+++ b/chrome/common/extensions/docs/templates/intros/bookmarks.html
@@ -3,7 +3,7 @@
<h2 id="manifest">Manifest</h2>
<p>You must declare the "bookmarks" permission
-in the <a href="manifest.html">extension manifest</a>
+in the <a href="manifest">extension manifest</a>
to use the bookmarks API.
For example:</p>
<pre data-filename="manifest.json">
@@ -80,5 +80,5 @@ chrome.bookmarks.create({'parentId': extensionsFolderId,
For an example of using this API, see the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/bookmarks/basic/">basic bookmarks sample</a>.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/browserAction.html b/chrome/common/extensions/docs/templates/intros/browserAction.html
index 8b4db61..96c02dd 100644
--- a/chrome/common/extensions/docs/templates/intros/browserAction.html
+++ b/chrome/common/extensions/docs/templates/intros/browserAction.html
@@ -11,7 +11,7 @@ A popup is below the icon.
<p>
If you want to create an icon that isn't always visible,
-use a <a href="pageAction.html">page action</a>
+use a <a href="pageAction">page action</a>
instead of a browser action.
</p>
@@ -19,7 +19,7 @@ instead of a browser action.
<p>
Register your browser action in the
-<a href="manifest.html">extension manifest</a>
+<a href="manifest">extension manifest</a>
like this:
</p>
@@ -110,7 +110,7 @@ use the <b>default_title</b> field of <b>browser_action</b>
in the <a href="#manifest">manifest</a>,
or call the $(ref:browserAction.setTitle) method.
You can specify locale-specific strings for the <b>default_title</b> field;
-see <a href="i18n.html">Internationalization</a> for details.
+see <a href="i18n">Internationalization</a> for details.
</p>
<h3 id="badge">Badge</h3>
@@ -160,7 +160,7 @@ $(ref:browserAction.setPopup) method.
that make sense on most pages.
<li><b>Don't</b> use browser actions for features
that make sense for only a few pages.
- Use <a href="pageAction.html">page actions</a> instead.
+ Use <a href="pageAction">page actions</a> instead.
<li><b>Do</b> use big, colorful icons that make the most of
the 19x19-pixel space.
Browser action icons should seem a little bigger
@@ -185,5 +185,5 @@ You can find simple examples of using browser actions in the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/browserAction/">examples/api/browserAction</a>
directory.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/browsingData.html b/chrome/common/extensions/docs/templates/intros/browsingData.html
index e306b0f..104e3e6 100644
--- a/chrome/common/extensions/docs/templates/intros/browsingData.html
+++ b/chrome/common/extensions/docs/templates/intros/browsingData.html
@@ -2,7 +2,7 @@
<p>
You must declare the "browsingData" permission in the
- <a href="manifest.html">extension manifest</a> to use this API.
+ <a href="manifest">extension manifest</a> to use this API.
</p>
<pre data-filename="manifest.json">
@@ -151,5 +151,5 @@ chrome.browsingData.remove({
<h2 id="samples">Examples</h2>
<p>
Samples for the <code>browsingData</code> API are available
- <a href="samples.html#browsingData">on the samples page</a>.
+ <a href="samples#browsingData">on the samples page</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/contentSettings.html b/chrome/common/extensions/docs/templates/intros/contentSettings.html
index 152562a..343b0a7 100644
--- a/chrome/common/extensions/docs/templates/intros/contentSettings.html
+++ b/chrome/common/extensions/docs/templates/intros/contentSettings.html
@@ -19,7 +19,7 @@ For example:</p>
You can use patterns to specify the websites that each content setting affects.
For example, <code>http://*.youtube.com/*</code> specifies youtube.com and all
of its subdomains. The syntax for content setting patterns is the same as for
-<a href="match_patterns.html">match patterns</a>, with a few differences:
+<a href="match_patterns">match patterns</a>, with a few differences:
<ul><li>For <code>http</code>,
<code>https</code>, and <code>ftp</code> URLs, the path must be a wildcard
(<code>/*</code>). For <code>file</code> URLs, the path must be completely
@@ -137,5 +137,5 @@ tries to keep the identifiers stable across plug-in updates.
<p>
You can find samples of this API on the
-<a href="samples.html#contentSettings">sample page</a>.
+<a href="samples#contentSettings">sample page</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/contextMenus.html b/chrome/common/extensions/docs/templates/intros/contextMenus.html
index f460cf1..916d602 100644
--- a/chrome/common/extensions/docs/templates/intros/contextMenus.html
+++ b/chrome/common/extensions/docs/templates/intros/contextMenus.html
@@ -50,4 +50,4 @@ For example:
<p>
You can find samples of this API on the
-<a href="samples.html#contextMenus">sample page</a>.
+<a href="samples#contextMenus">sample page</a>.
diff --git a/chrome/common/extensions/docs/templates/intros/cookies.html b/chrome/common/extensions/docs/templates/intros/cookies.html
index 605debe..e91132a 100644
--- a/chrome/common/extensions/docs/templates/intros/cookies.html
+++ b/chrome/common/extensions/docs/templates/intros/cookies.html
@@ -2,7 +2,7 @@
<p>To use the cookies API,
you must declare the "cookies" permission in your manifest,
-along with <a href="declare_permissions.html">host permissions</a>
+along with <a href="declare_permissions">host permissions</a>
for any hosts whose cookies
you want to access.
For example:</p>
@@ -28,5 +28,5 @@ of using the cookies API in the
directory.
For other examples
and for help in viewing the source code,
-see <a href="samples.html">Samples</a>.
+see <a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/debugger.html b/chrome/common/extensions/docs/templates/intros/debugger.html
index 9ad5fbe..4b7da2c 100644
--- a/chrome/common/extensions/docs/templates/intros/debugger.html
+++ b/chrome/common/extensions/docs/templates/intros/debugger.html
@@ -30,5 +30,5 @@ to use this API.
<p>
You can find samples of this API in
-<a href="samples.html#debugger">Samples</a>.
+<a href="samples#debugger">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/declarativeContent.html b/chrome/common/extensions/docs/templates/intros/declarativeContent.html
index 17476cf..187e7a8 100644
--- a/chrome/common/extensions/docs/templates/intros/declarativeContent.html
+++ b/chrome/common/extensions/docs/templates/intros/declarativeContent.html
@@ -4,9 +4,9 @@
The Declarative Content API allows you to show your extension's
$(ref:pageAction page action) depending on the URL of a web page and
the CSS selectors its content matches, without needing to take a <a
-href="declare_permissions.html#host-permissions">host permission</a> or
-inject a <a href="content_scripts.html">content script</a>. Use the
-<a href="activeTab.html">activeTab</a> permission in order to be able
+href="declare_permissions#host-permissions">host permission</a> or
+inject a <a href="content_scripts">content script</a>. Use the
+<a href="activeTab">activeTab</a> permission in order to be able
to interact with a page after the user clicks on your page action.
</p>
@@ -18,7 +18,7 @@ user clicks on it, you'll have to keep using the $(ref:pageAction) API.
<h2 id="rules">Rules</h2>
-<p>As a <a href="events.html#declarative">declarative API</a>, this
+<p>As a <a href="events#declarative">declarative API</a>, this
API lets you register rules on the
<code>$(ref:onPageChanged)</code> $(ref:events.Event event) object which
take an action (currently just <code>$(ref:ShowPageAction)</code>) when
@@ -71,13 +71,13 @@ var rule2 = {
</pre>
<p>
-<a href="events.html#addingrules">Added rules</a> are saved across
+<a href="events#addingrules">Added rules</a> are saved across
browser restarts, so register them as follows:
</p>
<pre>
$(ref:runtime.onInstalled chrome.runtime.onInstalled).addListener(function(details) {
- $(ref:onPageChanged chrome.declarativeContent.onPageChanged).<a href="events.html#removingrules">removeRules</a>(undefined, function() {
- $(ref:onPageChanged chrome.declarativeContent.onPageChanged).<a href="events.html#addingrules">addRules</a>([rule2]);
+ $(ref:onPageChanged chrome.declarativeContent.onPageChanged).<a href="events#removingrules">removeRules</a>(undefined, function() {
+ $(ref:onPageChanged chrome.declarativeContent.onPageChanged).<a href="events#addingrules">addRules</a>([rule2]);
});
});
</pre>
@@ -90,7 +90,7 @@ a faster matching algorithm.
</p>
<p>
-Combine the above rule with the <a href="activeTab.html">activeTab</a>
+Combine the above rule with the <a href="activeTab">activeTab</a>
permission to create an extension that doesn't need any install-time
permissions but can invite the user to click its page action on
relevant pages and can run on those pages when the user clicks the
diff --git a/chrome/common/extensions/docs/templates/intros/declarativeWebRequest.html b/chrome/common/extensions/docs/templates/intros/declarativeWebRequest.html
index 7de1ce8..8dabcb3 100644
--- a/chrome/common/extensions/docs/templates/intros/declarativeWebRequest.html
+++ b/chrome/common/extensions/docs/templates/intros/declarativeWebRequest.html
@@ -2,8 +2,8 @@
<p>
You must declare the "declarativeWebRequest" permission in the
-<a href="manifest.html">extension manifest</a> to use this API,
-along with <a href="declare_permissions.html">host permissions</a>.
+<a href="manifest">extension manifest</a> to use this API,
+along with <a href="declare_permissions">host permissions</a>.
</p>
<pre data-filename="manifest.json">
@@ -51,7 +51,7 @@ The extension cannot set up a rule to redirect "http://www.google.com" to
<p>
The Declarative Web Request API follows the concepts of the <a
- href="events.html#declarative">Declarative API</a>. You can register rules to
+ href="events#declarative">Declarative API</a>. You can register rules to
the <code>chrome.declarativeWebRequest.onRequest</code> event object.
</p>
@@ -126,7 +126,7 @@ chrome.declarativeWebRequest.onRequest.addRules([rule2]);
individually because each of these operations recreates internal data
structures. This re-creation is computationally expensive but facilitates a
very fast URL matching algorithm for hundreds of thousands of URLs. The
-<a href="events.html#performance">Performance section</a> of the
+<a href="events#performance">Performance section</a> of the
$(ref:events Events) API provides further performance tips.
</p>
@@ -135,8 +135,8 @@ $(ref:events Events) API provides further performance tips.
<p>
The Declarative Web Request API follows the
-<a href="webRequest.html#life_cycle">Life cycle model for web requests</a> of
-the <a href="webRequest.html">Web Request API</a>. This means that conditions
+<a href="webRequest#life_cycle">Life cycle model for web requests</a> of
+the <a href="webRequest">Web Request API</a>. This means that conditions
can only be tested at specific stages of a web request and, likewise, actions
can also only be executed at specific stages. The following tables list the
request stages that are compatible with conditions and actions.
@@ -217,7 +217,7 @@ because request headers cannot be set any more by the time the content type has
<p>
Rules can be associated with priorities as described in the
-<a href="events.html#declarative">Events API</a>. This mechanism can be used
+<a href="events#declarative">Events API</a>. This mechanism can be used
to express exceptions. The following example will block all requests to
images named "evil.jpg" except on the server "myserver.com".
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/devtools_inspectedWindow.html b/chrome/common/extensions/docs/templates/intros/devtools_inspectedWindow.html
index 4611fe1..b89b83c 100644
--- a/chrome/common/extensions/docs/templates/intros/devtools_inspectedWindow.html
+++ b/chrome/common/extensions/docs/templates/intros/devtools_inspectedWindow.html
@@ -6,7 +6,7 @@ evaluate the code in the context of inspected window,
reload the page,
or obtain the list of resources within the page.
</p><p>
-See <a href="devtools.html">DevTools APIs summary</a> for
+See <a href="devtools">DevTools APIs summary</a> for
general introduction to using Developer Tools APIs.
</p>
@@ -14,7 +14,7 @@ general introduction to using Developer Tools APIs.
<p>
The <code>$(ref:devtools.inspectedWindow.tabId tabId)</code> property
provides the tab identifier that you can use with the
-<a href="tabs.html"><code>chrome.tabs.*</code></a> API calls.
+<a href="tabs"><code>chrome.tabs.*</code></a> API calls.
However, please note that <code>chrome.tabs.*</code> API is not
exposed to the Developer Tools extension pages due to security considerations
&mdash; you will need to pass the tab ID to the background page and invoke
@@ -119,5 +119,5 @@ chrome.devtools.inspectedWindow.eval(
<p>
You can find more examples that use Developer Tools APIs in
-<a href="samples.html#devtools">Samples</a>.
+<a href="samples#devtools">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/devtools_network.html b/chrome/common/extensions/docs/templates/intros/devtools_network.html
index a6a77e1..e322d5e 100644
--- a/chrome/common/extensions/docs/templates/intros/devtools_network.html
+++ b/chrome/common/extensions/docs/templates/intros/devtools_network.html
@@ -1,5 +1,5 @@
<p>
-See <a href="devtools.html">DevTools APIs summary</a> for
+See <a href="devtools">DevTools APIs summary</a> for
general introduction to using Developer Tools APIs</a>.
</p>
@@ -45,5 +45,5 @@ chrome.devtools.network.onRequestFinished.addListener(
<p>
You can find more examples that use this API in
-<a href="samples.html#devtools.network">Samples</a>.
+<a href="samples#devtools.network">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/devtools_panels.html b/chrome/common/extensions/docs/templates/intros/devtools_panels.html
index 4389eb1..a332b30 100644
--- a/chrome/common/extensions/docs/templates/intros/devtools_panels.html
+++ b/chrome/common/extensions/docs/templates/intros/devtools_panels.html
@@ -1,5 +1,5 @@
<p>
-See <a href="devtools.html">DevTools APIs summary</a> for
+See <a href="devtools">DevTools APIs summary</a> for
general introduction to using Developer Tools APIs.
</p>
@@ -9,10 +9,10 @@ general introduction to using Developer Tools APIs.
Each extension panel and sidebar is displayed as a separate HTML page. All
extension pages displayed in the Developer Tools window have access to all
modules in <code>chrome.devtools</code> API, as well as to
-<a href="extension.html">chrome.extension</a> API. Other extension APIs are not
+<a href="extension">chrome.extension</a> API. Other extension APIs are not
available to the pages within Developer Tools window, but you may invoke them
by sending a request to the background page of your extension, similarly to how
-it's done in the <a href="overview.html#contentScripts">content scripts</a>.
+it's done in the <a href="overview#contentScripts">content scripts</a>.
</p><p>
You can use the <code>$(ref:devtools.panels.setOpenResourceHandler)
</code> method to install a
@@ -56,5 +56,5 @@ Developer Tools window:
<p>
You can find examples that use this API in
-<a href="samples.html#chrome-query">Samples</a>.
+<a href="samples#chrome-query">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/downloads.html b/chrome/common/extensions/docs/templates/intros/downloads.html
index d62ece1..e5f2ee8 100644
--- a/chrome/common/extensions/docs/templates/intros/downloads.html
+++ b/chrome/common/extensions/docs/templates/intros/downloads.html
@@ -1,7 +1,7 @@
<h2 id='manifest'>Manifest</h2>
<p> You must declare the <code>"downloads"</code> permission in the <a
-href='manifest.html'>extension manifest</a> to use this API.</p>
+href='manifest'>extension manifest</a> to use this API.</p>
<pre data-filename="manifest.json">
{
@@ -19,4 +19,4 @@ href='manifest.html'>extension manifest</a> to use this API.</p>
<p>You can find simple examples of using the <code>chrome.downloads</code> API in the <a
href='http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/downloads/'>examples/api/downloads</a>
directory. For other examples and for help in viewing the source code, see <a
-href='samples.html'>Samples</a>.</p>
+href='samples'>Samples</a>.</p>
diff --git a/chrome/common/extensions/docs/templates/intros/events.html b/chrome/common/extensions/docs/templates/intros/events.html
index e962370..69761a4 100644
--- a/chrome/common/extensions/docs/templates/intros/events.html
+++ b/chrome/common/extensions/docs/templates/intros/events.html
@@ -38,7 +38,7 @@ $(ref:app.window),
$(ref:i18n),
$(ref:identity),
$(ref:runtime).
-Most <a href="api_index.html">chrome APIs</a> do.
+Most <a href="api_index">chrome APIs</a> do.
{{^is_apps}}
<div class="doc-family extensions">
@@ -52,8 +52,8 @@ for very high efficiency.
</p>
<p>Declarative event handlers are used for example in the <a
-href="declarativeWebRequest.html">Declarative Web Request API</a> and <a
-href="declarativeContent.html">Declarative Content API</a>. This page describes
+href="declarativeWebRequest">Declarative Web Request API</a> and <a
+href="declarativeContent">Declarative Content API</a>. This page describes
the underlying concepts of all declarative event handlers.
</p>
@@ -88,7 +88,7 @@ var rule = {
<h3 id="eventobjects">Event objects</h3>
<p>
-<a href="events.html">Event objects</a> may support rules. These event objects
+<a href="events">Event objects</a> may support rules. These event objects
don't call a callback function when events happen but test whether any
registered rule has at least one fulfilled condition and execute the actions
associated with this rule. Event objects supporting the declarative API have
@@ -235,7 +235,7 @@ chrome.declarativeWebRequest.onRequest.addRules([rule]);</pre>
<p>Filtered events are a mechanism that allows listeners to specify a subset of
events that they are interested in. A listener that makes use of a filter won't
be invoked for events that don't pass the filter, which makes the listening
-code more declarative and efficient - an <a href="event_pages.html">event
+code more declarative and efficient - an <a href="event_pages">event
page</a> page need not be woken up to handle events it doesn't care
about.</p>
diff --git a/chrome/common/extensions/docs/templates/intros/experimental_devtools_audits.html b/chrome/common/extensions/docs/templates/intros/experimental_devtools_audits.html
index be71938..e419e8c 100644
--- a/chrome/common/extensions/docs/templates/intros/experimental_devtools_audits.html
+++ b/chrome/common/extensions/docs/templates/intros/experimental_devtools_audits.html
@@ -1,5 +1,5 @@
<p>
-See <a href="experimental.devtools.html">DevTools APIs summary</a> for
+See <a href="experimental.devtools">DevTools APIs summary</a> for
general introduction to using Developer Tools APIs.
</p>
@@ -65,5 +65,5 @@ category.onAuditStarted.addListener(function(results) {
<p>
You can find more examples that use this API in
-<a href="samples.html#devtools.audits">Samples</a>.
+<a href="samples#devtools.audits">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/extension.html b/chrome/common/extensions/docs/templates/intros/extension.html
index 206c035..b7865c7 100644
--- a/chrome/common/extensions/docs/templates/intros/extension.html
+++ b/chrome/common/extensions/docs/templates/intros/extension.html
@@ -30,5 +30,5 @@ can be used by content scripts:
<p>
For details, see
-<a href="content_scripts.html">Content Scripts</a>.
+<a href="content_scripts">Content Scripts</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/fileBrowserHandler.html b/chrome/common/extensions/docs/templates/intros/fileBrowserHandler.html
index c25c3fb..76026b3 100644
--- a/chrome/common/extensions/docs/templates/intros/fileBrowserHandler.html
+++ b/chrome/common/extensions/docs/templates/intros/fileBrowserHandler.html
@@ -32,7 +32,7 @@ results in an "Upload to Picasa" button that the user can click.
<p>
You must declare the "fileBrowserHandler" permission
-in the <a href="manifest.html">extension manifest</a>,
+in the <a href="manifest">extension manifest</a>,
and you must use the "file_browser_handlers" field
to register the extension as a handler of at least one file type.
You should also provide a 16x16 icon
@@ -68,7 +68,7 @@ For example:
<p class="note">
<b>Note:</b>
You can specify locale-specific strings for the value of "default_title".
-See <a href="i18n.html">Internationalization (i18n)</a> for details.
+See <a href="i18n">Internationalization (i18n)</a> for details.
</p>
<h2 id="code">Implementing a file browser handler</h2>
@@ -142,6 +142,6 @@ Mention <code>filesystem:*.*</code>.
<p>
For examples of using this API, see ...
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
-->
diff --git a/chrome/common/extensions/docs/templates/intros/fontSettings.html b/chrome/common/extensions/docs/templates/intros/fontSettings.html
index 48aaca3..db2ff3b4 100644
--- a/chrome/common/extensions/docs/templates/intros/fontSettings.html
+++ b/chrome/common/extensions/docs/templates/intros/fontSettings.html
@@ -1,6 +1,6 @@
<h2 id="manifest">Manifest</h2>
<p>To use the Font Settings API, you must declare the "fontSettings" permission
-in the <a href="manifest.html">extension manifest</a>.
+in the <a href="manifest">extension manifest</a>.
For example:</p>
<pre data-filename="manifest.json">
{
@@ -56,4 +56,4 @@ chrome.fontSettings.setFont(
<p>You can find a sample extension using the Font Settings API in the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/fontSettings/">examples/api/fontSettings</a>
directory. For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.</p>
+<a href="samples">Samples</a>.</p>
diff --git a/chrome/common/extensions/docs/templates/intros/history.html b/chrome/common/extensions/docs/templates/intros/history.html
index 6285dd6..bee3531 100644
--- a/chrome/common/extensions/docs/templates/intros/history.html
+++ b/chrome/common/extensions/docs/templates/intros/history.html
@@ -1,7 +1,7 @@
<h2 id="manifest">Manifest</h2>
<p>You must declare the "history" permission
-in the <a href="manifest.html">extension manifest</a>
+in the <a href="manifest">extension manifest</a>
to use the history API.
For example:</p>
<pre data-filename="manifest.json">
@@ -143,5 +143,5 @@ For examples of using this API, see the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/history/">history sample directory</a> and the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/history/">history API test directory</a>.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/i18n.html b/chrome/common/extensions/docs/templates/intros/i18n.html
index 97a49f4..c720fa2 100644
--- a/chrome/common/extensions/docs/templates/intros/i18n.html
+++ b/chrome/common/extensions/docs/templates/intros/i18n.html
@@ -5,7 +5,7 @@
<p>
You need to put all of its user-visible strings into a file
-named <a href="i18n-messages.html"><code>messages.json</code></a>.
+named <a href="i18n-messages"><code>messages.json</code></a>.
Each time you add a new locale,
you add a messages file
under a directory
@@ -60,7 +60,7 @@ Here's what the extension looks like when it's internationalized
<p class="note">
<b>Important:</b>
If an extension has a <code>_locales</code> directory,
-the <a href="manifest.html">manifest</a>
+the <a href="manifest">manifest</a>
<b>must</b> define "default_locale".
</p>
@@ -129,7 +129,7 @@ Some notes about internationalizing:
<p>
For more information, see
-<a href="i18n-messages.html">Formats: Locale-Specific Messages</a>.
+<a href="i18n-messages">Formats: Locale-Specific Messages</a>.
</p>
</li>
</ul>
@@ -487,7 +487,7 @@ directory.
For a complete example, see
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/extensions/news/">examples/extensions/news</a>.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
@@ -535,7 +535,7 @@ status.innerText = chrome.i18n.getMessage("error", errorDetails);
<p>
For more information about placeholders, see the
-<a href="i18n-messages.html">Locale-Specific Messages</a> page.
+<a href="i18n-messages">Locale-Specific Messages</a> page.
For details on calling <code>getMessage()</code>, see the
$(ref:i18n.getMessage API reference).
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/infobars.html b/chrome/common/extensions/docs/templates/intros/infobars.html
index 35f05cd..963b5b9 100644
--- a/chrome/common/extensions/docs/templates/intros/infobars.html
+++ b/chrome/common/extensions/docs/templates/intros/infobars.html
@@ -21,7 +21,7 @@ Google Chrome automatically closes the infobar.
You implement the content of your
infobar using HTML. Because infobars are ordinary pages inside an extension,
they can
-<a href="overview.html#pageComm">communicate with other extension pages</a>.
+<a href="overview#pageComm">communicate with other extension pages</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/input_ime.html b/chrome/common/extensions/docs/templates/intros/input_ime.html
index 6cde4c4..2ff8bb1 100644
--- a/chrome/common/extensions/docs/templates/intros/input_ime.html
+++ b/chrome/common/extensions/docs/templates/intros/input_ime.html
@@ -1,6 +1,6 @@
<h2 id="manifest">Manifest</h2>
<p>You must declare the "input" permission
-in the <a href="manifest.html">extension manifest</a>
+in the <a href="manifest">extension manifest</a>
to use the input.ime API.
For example:</p>
<pre data-filename="manifest.json">
@@ -43,5 +43,5 @@ For an example of using this API, see the
<a
href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/input.ime/basic/">basic input.ime sample</a>.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/management.html b/chrome/common/extensions/docs/templates/intros/management.html
index c4974f7..f758d29 100644
--- a/chrome/common/extensions/docs/templates/intros/management.html
+++ b/chrome/common/extensions/docs/templates/intros/management.html
@@ -1,7 +1,7 @@
<h2 id="manifest">Manifest</h2>
<p>You must declare the "management" permission
-in the <a href="manifest.html">extension manifest</a>
+in the <a href="manifest">extension manifest</a>
to use the management API.
For example:</p>
<pre data-filename="manifest.json">
diff --git a/chrome/common/extensions/docs/templates/intros/notifications.html b/chrome/common/extensions/docs/templates/intros/notifications.html
index 683815b..72faadd 100644
--- a/chrome/common/extensions/docs/templates/intros/notifications.html
+++ b/chrome/common/extensions/docs/templates/intros/notifications.html
@@ -31,9 +31,9 @@ as well as an <code>iconUrl</code>, which is a link to a small icon that
is displayed to the left of the notification message. The <code>image</code>
template type also includes an <code>imageUrl</code>, which is a link to
an image that is previewed within the notification.
-Due to a strict <a href="contentSecurityPolicy.html">Content Security Policy</a>
+Due to a strict <a href="contentSecurityPolicy">Content Security Policy</a>
in Chrome Apps, these URLs must point to a local resource or use a
-<a href="app_external.html">data URL</a>.
+<a href="app_external">data URL</a>.
</p>
<p>
@@ -82,6 +82,6 @@ $(ref:notifications.onButtonClicked) event.
</p>
<p>Consider including event listeners and handlers within the
- <a href="app_lifecycle.html#create_event_page">event page</a>,
+ <a href="app_lifecycle#create_event_page">event page</a>,
so that notifications can pop-up even when the app or extension isn't running.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/omnibox.html b/chrome/common/extensions/docs/templates/intros/omnibox.html
index b24ec14..6536efb 100644
--- a/chrome/common/extensions/docs/templates/intros/omnibox.html
+++ b/chrome/common/extensions/docs/templates/intros/omnibox.html
@@ -25,7 +25,7 @@ and can take action.
<p>
You must include an <code>omnibox</code> <code>keyword</code> field
-in the <a href="manifest.html">manifest</a>
+in the <a href="manifest">manifest</a>
to use the omnibox API.
You should also
specify a 16x16-pixel icon, which will be
@@ -58,7 +58,7 @@ Chrome automatically creates a grayscale version of
your 16x16-pixel icon. You should provide
a full-color version so that it can also be
used in other situations that require color.
-For example, the <a href="contextMenus.html"
+For example, the <a href="contextMenus"
>context menus API</a> also uses a 16x16-pixel
icon, but it is displayed in color.
</p>
@@ -68,4 +68,4 @@ icon, but it is displayed in color.
<p>
You can find samples of this API on the
-<a href="samples.html#omnibox">sample page</a>.
+<a href="samples#omnibox">sample page</a>.
diff --git a/chrome/common/extensions/docs/templates/intros/pageAction.html b/chrome/common/extensions/docs/templates/intros/pageAction.html
index 82eb6d5..278df74 100644
--- a/chrome/common/extensions/docs/templates/intros/pageAction.html
+++ b/chrome/common/extensions/docs/templates/intros/pageAction.html
@@ -18,14 +18,14 @@ the RSS feed for the current page.
<p>
If you want the extension's icon to always be visible,
-use a <a href="browserAction.html">browser action</a> instead.
+use a <a href="browserAction">browser action</a> instead.
</p>
<h2 id="manifest">Manifest</h2>
<p>
Register your page action in the
-<a href="manifest.html">extension manifest</a>
+<a href="manifest">extension manifest</a>
like this:
</p>
@@ -73,7 +73,7 @@ they can't have badges, however.
In addition, page actions can appear and disappear.
You can find information about icons, tooltips, and popups
by reading about the
-<a href="browserAction.html#ui">browser action UI</a>.
+<a href="browserAction#ui">browser action UI</a>.
</p>
<p>
@@ -104,7 +104,7 @@ follow these guidelines:</p>
<li><b>Don't</b> use page actions
for features that make sense
for most pages.
- Use <a href="browserAction.html">browser actions</a> instead.
+ Use <a href="browserAction">browser actions</a> instead.
<li><b>Don't</b> constantly animate your icon.
That's just annoying.
</ul>
@@ -117,5 +117,5 @@ You can find simple examples of using page actions in the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/pageAction/">examples/api/pageAction</a>
directory.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/pageCapture.html b/chrome/common/extensions/docs/templates/intros/pageCapture.html
index b554b7c..b58046c 100644
--- a/chrome/common/extensions/docs/templates/intros/pageCapture.html
+++ b/chrome/common/extensions/docs/templates/intros/pageCapture.html
@@ -13,7 +13,7 @@ system and that it can only be loaded in the main frame.
<p>You must declare the "pageCapture" permission
-in the <a href="manifest.html">extension manifest</a>
+in the <a href="manifest">extension manifest</a>
to use the pageCapture API.
For example:</p>
<pre data-filename="manifest.json">
diff --git a/chrome/common/extensions/docs/templates/intros/permissions.html b/chrome/common/extensions/docs/templates/intros/permissions.html
index 09d7f5b..d7d2c47 100644
--- a/chrome/common/extensions/docs/templates/intros/permissions.html
+++ b/chrome/common/extensions/docs/templates/intros/permissions.html
@@ -36,9 +36,9 @@ Advantages of <em>optional</em> permissions:
<h3 id="manifest"> Step 2: Declare optional permissions in the manifest </h3>
<p>
- Declare optional permissions in your <a href="manifest.html">extension
+ Declare optional permissions in your <a href="manifest">extension
manifest</a> with the <code>optional_permissions</code> key, using the
- same format as the <a href="declare_permissions.html#manifest">permissions</a>
+ same format as the <a href="declare_permissions#manifest">permissions</a>
field:
</p>
@@ -53,7 +53,7 @@ Advantages of <em>optional</em> permissions:
<p>
You can specify any of the following as optional
-<a href="declare_permissions.html">permissions</a>:
+<a href="declare_permissions">permissions</a>:
<ul>
<li><i>host permissions</i></li>
<li>background</li>
@@ -108,7 +108,7 @@ document.querySelector('#my-button').addEventListener('click', function(event) {
<p>
Chrome prompts the user if adding the permissions results in different
- <a href="permission_warnings.html">warning messages</a> than the user has
+ <a href="permission_warnings">warning messages</a> than the user has
already seen and accepted. For example, the previous code might result in
a prompt like this:
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/privacy.html b/chrome/common/extensions/docs/templates/intros/privacy.html
index 0dab816..2a7935b 100644
--- a/chrome/common/extensions/docs/templates/intros/privacy.html
+++ b/chrome/common/extensions/docs/templates/intros/privacy.html
@@ -6,7 +6,7 @@
<h2 id="manifest">Manifest</h2>
<p>
You must declare the "privacy" permission in your extension's
- <a href="manifest.html">manifest</a> to use the API. For example:
+ <a href="manifest">manifest</a> to use the API. For example:
</p>
<pre data-filename="manifest.json">
@@ -53,7 +53,7 @@
<p class="note">
Full details about extensions' ability to control <code>ChromeSetting</code>s
can be found under
- <a href="types.html#ChromeSetting">
+ <a href="types#ChromeSetting">
<code>chrome.types.ChromeSetting</code></a>.
</p>
@@ -94,6 +94,6 @@
<h2 id="examples">Examples</h2>
<p>
For example code, see the
- <a href="samples.html#privacy">Privacy API samples</a>.
+ <a href="samples#privacy">Privacy API samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/proxy.html b/chrome/common/extensions/docs/templates/intros/proxy.html
index 5289784..f284bf4 100644
--- a/chrome/common/extensions/docs/templates/intros/proxy.html
+++ b/chrome/common/extensions/docs/templates/intros/proxy.html
@@ -1,6 +1,6 @@
<h2 id="manifest">Manifest</h2>
<p>You must declare the "proxy" permission
-in the <a href="manifest.html">extension manifest</a>
+in the <a href="manifest">extension manifest</a>
to use the proxy settings API.
For example:</p>
<pre data-filename="manifest.json">
@@ -175,7 +175,7 @@ The following code sets a SOCKS 5 proxy for HTTP connections to all servers but
foobar.com and uses direct connections for all other protocols. The settings
apply to regular and incognito windows, as incognito windows inherit settings
from regular windows. Please also consult the <a
- href="types.html#ChromeSetting">Types API</a> documentation.
+ href="types#ChromeSetting">Types API</a> documentation.
</p>
<pre>
@@ -217,7 +217,7 @@ chrome.proxy.settings.set(
<p>
The next snippet queries the currently effective proxy settings. The effective
proxy settings can be determined by another extension or by a policy. See the <a
- href="types.html#ChromeSetting">Types API</a> documentation for details.
+ href="types#ChromeSetting">Types API</a> documentation for details.
</p>
<pre>
diff --git a/chrome/common/extensions/docs/templates/intros/pushMessaging.html b/chrome/common/extensions/docs/templates/intros/pushMessaging.html
index 57c54e3..3080772 100644
--- a/chrome/common/extensions/docs/templates/intros/pushMessaging.html
+++ b/chrome/common/extensions/docs/templates/intros/pushMessaging.html
@@ -14,10 +14,10 @@ development if you run a version of your app without the correct
<p>
To fix this problem, simply install your app from
-the Chrome Web Store and copy the <a href="manifest/key.html">key</a>
+the Chrome Web Store and copy the <a href="manifest/key">key</a>
field from manifest.json in the installed app to manifest.json in
the version of the app that you are developing
-(see <a href="cloudMessaging.html#test-cloud">Testing in the cloud</a> for
+(see <a href="cloudMessaging#test-cloud">Testing in the cloud</a> for
detailed instructions). Note that you need to remove the <code>key</code>
field from manifest.json before you upload the app to the Chrome Web Store again.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/storage.html b/chrome/common/extensions/docs/templates/intros/storage.html
index eb33fe4..b38d0da 100644
--- a/chrome/common/extensions/docs/templates/intros/storage.html
+++ b/chrome/common/extensions/docs/templates/intros/storage.html
@@ -15,19 +15,19 @@ with the following key differences:
without the need for a background page.</li>
<li>A user's extension settings can be persisted
even when using
- <a href="manifest/incognito.html">split incognito behavior</a>.</li>
+ <a href="manifest/incognito">split incognito behavior</a>.</li>
<li>It's asynchronous with bulk read and write operations, and therefore
faster than the blocking and serial <code>localStorage API</code>.
<li>User data can be stored as objects
(the <code>localStorage API</code> stores data in strings).</li>
<li>Enterprise policies configured by the administrator for the extension
can be read (using <code>storage.managed</code> with a
- <a href="manifest/storage.html">schema</a>).</li>
+ <a href="manifest/storage">schema</a>).</li>
</ul>
<h2 id="manifest">Manifest</h2>
<p>You must declare the "storage" permission in the <a
- href="manifest.html">extension manifest</a>
+ href="manifest">extension manifest</a>
to use the storage API.
For example:</p>
<pre data-filename="manifest.json">
diff --git a/chrome/common/extensions/docs/templates/intros/tabs.html b/chrome/common/extensions/docs/templates/intros/tabs.html
index 99459c6..62f3f47 100644
--- a/chrome/common/extensions/docs/templates/intros/tabs.html
+++ b/chrome/common/extensions/docs/templates/intros/tabs.html
@@ -2,7 +2,7 @@
<p>
You can use most <code>chrome.tabs</code> methods and events without declaring
-any permissions in the extension's <a href="manifest.html">manifest</a> file.
+any permissions in the extension's <a href="manifest">manifest</a> file.
However, if you require access to the
<code>$(ref:tabs.Tab.url url)</code>,
<code>$(ref:tabs.Tab.title title)</code>, or
@@ -34,5 +34,5 @@ You can find simple examples of manipulating tabs with the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/tabs/">examples/api/tabs</a>
directory.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/topSites.html b/chrome/common/extensions/docs/templates/intros/topSites.html
index af3ca11..5912a2a 100644
--- a/chrome/common/extensions/docs/templates/intros/topSites.html
+++ b/chrome/common/extensions/docs/templates/intros/topSites.html
@@ -21,5 +21,5 @@ to use this API.
<p>
You can find samples of this API in
-<a href="samples.html#topsites">Samples</a>.
+<a href="samples#topsites">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/types.html b/chrome/common/extensions/docs/templates/intros/types.html
index 7ddca3f..6f9a283 100644
--- a/chrome/common/extensions/docs/templates/intros/types.html
+++ b/chrome/common/extensions/docs/templates/intros/types.html
@@ -4,7 +4,7 @@
The <code>ChromeSetting</code> prototype provides a common set of functions
(<code>get()</code>, <code>set()</code>, and <code>clear()</code>) as
well as an event publisher (<code>onChange</code>) for settings of the
-Chrome browser. The <a href="proxy.html#overview-examples">proxy settings
+Chrome browser. The <a href="proxy#overview-examples">proxy settings
examples</a> demonstrate how these functions are intended to be used.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/wallpaper.html b/chrome/common/extensions/docs/templates/intros/wallpaper.html
index 955163d..208ec78 100644
--- a/chrome/common/extensions/docs/templates/intros/wallpaper.html
+++ b/chrome/common/extensions/docs/templates/intros/wallpaper.html
@@ -1,6 +1,6 @@
<h2 id="manifest">Manifest</h2>
<p>You must declare the "wallpaper" permission in the app
-<a href="manifest.html">manifest</a> to use the wallpaper API.
+<a href="manifest">manifest</a> to use the wallpaper API.
For example:</p>
<pre data-filename="manifest.json">
{
diff --git a/chrome/common/extensions/docs/templates/intros/webNavigation.html b/chrome/common/extensions/docs/templates/intros/webNavigation.html
index 3f7d712..3552b76 100644
--- a/chrome/common/extensions/docs/templates/intros/webNavigation.html
+++ b/chrome/common/extensions/docs/templates/intros/webNavigation.html
@@ -1,7 +1,7 @@
<h2 id="manifest">Manifest</h2>
<p>
All <code>chrome.webNavigation</code> methods and events require you to declare
-the "webNavigation" permission in the <a href="manifest.html">extension
+the "webNavigation" permission in the <a href="manifest">extension
manifest</a>.
For example:
</p>
@@ -25,7 +25,7 @@ You can find simple examples of using the tabs module in the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/webNavigation/">examples/api/webNavigation</a>
directory.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
<h2 id="event_order">Event order</h2>
@@ -70,7 +70,7 @@ case, an <code>onTabReplaced</code> event is fired.
<h2 id="relation_to_webRequest">Relation to webRequest events</h2>
<p>
There is no defined ordering between events of the <a
-href="webRequest.html">webRequest API</a> and the events of the
+href="webRequest">webRequest API</a> and the events of the
webNavigation API. It is possible that webRequest events are still received for
frames that already started a new navigation, or that a navigation only
proceeds after the network resources are already fully loaded.
@@ -85,7 +85,7 @@ the state of the network stack which is generally opaque to the user.
<p>
Not all navigating tabs correspond to actual tabs in Chrome's UI, e.g., a tab
that is being pre-rendered. Such tabs are not accessible via the
-<a href="tabs.html">tabs API</a> nor can you request information about them via
+<a href="tabs">tabs API</a> nor can you request information about them via
<code>webNavigation.getFrame</code> or <code>webNavigation.getAllFrames</code>.
Once such a tab is swapped in, an <code>onTabReplaced</code> event is fired and
they become accessible via these APIs.
@@ -126,7 +126,7 @@ case, you will receive repeated <code>onBeforeNavigate</code> and
The webNavigation API's <code>onCommitted</code> event has a
<code>transitionType</code> and a <code>transitionQualifiers</code> property.
The <em>transition type</em> is the same as used in the <a
-href="history.html#transition_types">history API</a> describing how the browser
+href="history#transition_types">history API</a> describing how the browser
navigated to this particular URL. In addition, several <em>transition
qualifiers</em> can be returned that further define the navigation.
</p>
diff --git a/chrome/common/extensions/docs/templates/intros/webRequest.html b/chrome/common/extensions/docs/templates/intros/webRequest.html
index b0a4930..7fbcfed 100644
--- a/chrome/common/extensions/docs/templates/intros/webRequest.html
+++ b/chrome/common/extensions/docs/templates/intros/webRequest.html
@@ -1,7 +1,7 @@
<h2 id="manifest">Manifest</h2>
<p>You must declare the "webRequest" permission in the <a
- href="manifest.html">extension manifest</a> to use the web request
-API, along with <a href="declare_permissions.html">host permissions</a>
+ href="manifest">extension manifest</a> to use the web request
+API, along with <a href="declare_permissions">host permissions</a>
for any hosts whose network requests you want to access. If you want to
use the web request API in a blocking fashion, you need to request
the "webRequestBlocking" permission in addition.
@@ -117,7 +117,7 @@ complete nor stable.
<p>
The webRequest API only exposes requests that the extension has
permission to see, given its
-<a href="declare_permissions.html">host permissions</a>.
+<a href="declare_permissions">host permissions</a>.
Moreover, only the following schemes are accessible:
<code>http://</code>,
<code>https://</code>,
@@ -157,7 +157,7 @@ of HTTP redirection or HTTP authentication.</p>
<h3 id="subscription">Registering event listeners</h3>
<p>To register an event listener for a web request, you use a variation on the
-<a href="events.html">usual <code>addListener()</code> function</a>.
+<a href="events">usual <code>addListener()</code> function</a>.
In addition to specifying a callback function,
you have to specify a filter argument and you may specify an optional extra info
argument.</p>
@@ -199,7 +199,7 @@ request or modifying headers (<code>onBeforeSendHeaders</code>,
triggered in various dimensions:
<dl>
<dt>URLs</dt>
- <dd><a href="match_patterns.html">URL patterns</a> such as
+ <dd><a href="match_patterns">URL patterns</a> such as
<code>*://www.google.com/foo*bar</code>.</dd>
<dt>Types</dt>
<dd>Request types such as <code>main_frame</code> (a document that is loaded
@@ -298,5 +298,5 @@ chrome.webRequest.onBeforeSendHeaders.addListener(
["blocking", "requestHeaders"]);
</pre>
-<p> For more example code, see the <a href="samples.html#webrequest">web request
+<p> For more example code, see the <a href="samples#webrequest">web request
samples</a>.</p>
diff --git a/chrome/common/extensions/docs/templates/intros/windows.html b/chrome/common/extensions/docs/templates/intros/windows.html
index d0b0784..0a42933 100644
--- a/chrome/common/extensions/docs/templates/intros/windows.html
+++ b/chrome/common/extensions/docs/templates/intros/windows.html
@@ -4,7 +4,7 @@ When requested, a <code>$(ref:windows.Window)</code>
will contain an array of <code>$(ref:tabs.Tab)</code> objects.
You must declare the <code>"tabs"</code> permission in your
-<a href="manifest.html">manifest</a> if you require access to the
+<a href="manifest">manifest</a> if you require access to the
<code>$(ref:tabs.Tab.url url)</code>,
<code>$(ref:tabs.Tab.title title)</code>, or
<code>$(ref:tabs.Tab.favIconUrl favIconUrl)</code> properties of
@@ -43,7 +43,7 @@ The current window is the window that contains the page that made
the call, no matter what the topmost window is.
</p>
-<p>In the case of the <a href="event_pages.html">event page</a>,
+<p>In the case of the <a href="event_pages">event page</a>,
the value of the current window falls back to the last active window. Under some
circumstances, there may be no current window for background pages.
</p>
@@ -63,5 +63,5 @@ of the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/tabs/inspector/">inspector</a>
example.
For other examples and for help in viewing the source code, see
-<a href="samples.html">Samples</a>.
+<a href="samples">Samples</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/json/apps_sidenav.json b/chrome/common/extensions/docs/templates/json/apps_sidenav.json
index e62d20b..84b1281 100644
--- a/chrome/common/extensions/docs/templates/json/apps_sidenav.json
+++ b/chrome/common/extensions/docs/templates/json/apps_sidenav.json
@@ -4,7 +4,7 @@
"items": [
{
"title": "What Are Chrome Apps?",
- "href": "/apps/about_apps.html"
+ "href": "/apps/about_apps"
}
]
},
@@ -13,7 +13,7 @@
"items": [
{
"title": "Create Your First App",
- "href": "/apps/first_app.html"
+ "href": "/apps/first_app"
},
{
"title": "Tutorials",
@@ -25,39 +25,39 @@
"items": [
{
"title": "About this Codelab",
- "href": "/apps/app_codelab.html"
+ "href": "/apps/app_codelab"
},
{
"title": "1 - Set Up Development Environment",
- "href": "/apps/app_codelab1_setup.html"
+ "href": "/apps/app_codelab1_setup"
},
{
"title": "2 - Create Basic App",
- "href": "/apps/app_codelab2_basic.html"
+ "href": "/apps/app_codelab2_basic"
},
{
"title": "3 - Create MVC",
- "href": "/apps/app_codelab3_mvc.html"
+ "href": "/apps/app_codelab3_mvc"
},
{
"title": "4 - Save and Fetch Data",
- "href": "/apps/app_codelab5_data.html"
+ "href": "/apps/app_codelab5_data"
},
{
"title": "5 - Manage App Lifecycle",
- "href": "/apps/app_codelab6_lifecycle.html"
+ "href": "/apps/app_codelab6_lifecycle"
},
{
"title": "6 - Access User's Data",
- "href": "/apps/app_codelab7_useridentification.html"
+ "href": "/apps/app_codelab7_useridentification"
},
{
"title": "7 - Access Web Resources",
- "href": "/apps/app_codelab8_webresources.html"
+ "href": "/apps/app_codelab8_webresources"
},
{
"title": "8 - Publish App",
- "href": "/apps/app_codelab_10_publishing.html"
+ "href": "/apps/app_codelab_10_publishing"
}
]
},
@@ -67,15 +67,15 @@
"items": [
{
"title": "About MVC Architecture",
- "href": "/apps/app_frameworks.html"
+ "href": "/apps/app_frameworks"
},
{
"title": "Build Apps with AngularJS",
- "href": "/apps/angular_framework.html"
+ "href": "/apps/angular_framework"
},
{
"title": "Build Apps with Sencha Ext JS",
- "href": "/apps/sencha_framework.html"
+ "href": "/apps/sencha_framework"
}
]
}
@@ -91,19 +91,19 @@
"items": [
{
"title": "App Architecture",
- "href": "/apps/app_architecture.html"
+ "href": "/apps/app_architecture"
},
{
"title": "App Lifecycle",
- "href": "/apps/app_lifecycle.html"
+ "href": "/apps/app_lifecycle"
},
{
"title": "Offline First",
- "href": "/apps/offline_apps.html"
+ "href": "/apps/offline_apps"
},
{
"title": "External Content",
- "href": "/apps/app_external.html"
+ "href": "/apps/app_external"
}
]
},
@@ -113,7 +113,7 @@
"items": [
{
"title": "Content Security Policy",
- "href": "/apps/contentSecurityPolicy.html"
+ "href": "/apps/contentSecurityPolicy"
}
]
},
@@ -127,19 +127,19 @@
"items": [
{
"title": "About Cloud Messaging",
- "href": "/apps/cloudMessaging.html"
+ "href": "/apps/cloudMessaging"
},
{
"title": "Client Reference",
- "href": "/apps/pushMessaging.html"
+ "href": "/apps/pushMessaging"
},
{
"title": "Service Reference",
- "href": "/apps/gcm_server.html"
+ "href": "/apps/gcm_server"
},
{
"title": "Terms of Service",
- "href": "/apps/gcm_tos.html"
+ "href": "/apps/gcm_tos"
}
]
},
@@ -149,13 +149,13 @@
"items": [
{
"title": "chrome.storage",
- "href": "/apps/storage.html"
+ "href": "/apps/storage"
}
]
},
{
"title": "User Authentication",
- "href": "/apps/app_identity.html"
+ "href": "/apps/app_identity"
}
]
},
@@ -165,7 +165,7 @@
"items": [
{
"title": "Storage APIs",
- "href": "/apps/app_storage.html"
+ "href": "/apps/app_storage"
}
]
},
@@ -175,19 +175,19 @@
"items": [
{
"title": "USB",
- "href": "/apps/app_usb.html"
+ "href": "/apps/app_usb"
},
{
"title": "Serial",
- "href": "/apps/app_serial.html"
+ "href": "/apps/app_serial"
},
{
"title": "Network Communications",
- "href": "/apps/app_network.html"
+ "href": "/apps/app_network"
},
{
"title": "Bluetooth",
- "href": "/apps/app_bluetooth.html"
+ "href": "/apps/app_bluetooth"
}
]
},
@@ -197,7 +197,7 @@
"items": [
{
"title": "Rich Notifications",
- "href": "/apps/desktop_notifications.html"
+ "href": "/apps/desktop_notifications"
}
]
}
@@ -210,7 +210,7 @@
"items": [
{
"title": "Publish Your App",
- "href": "/apps/publish_app.html"
+ "href": "/apps/publish_app"
},
{
"title": "Monetize Your App",
@@ -218,13 +218,13 @@
"items": [
{
"title": "Google Wallet for Digital Goods",
- "href": "/apps/google_wallet.html"
+ "href": "/apps/google_wallet"
}
]
},
{
"title": "Analytics",
- "href": "/apps/analytics.html"
+ "href": "/apps/analytics"
}
]
},
@@ -233,23 +233,23 @@
"items": [
{
"title": "Chrome Platform APIs",
- "href": "/apps/api_index.html"
+ "href": "/apps/api_index"
},
{
"title": "Webview Tag",
- "href": "/apps/tags/webview.html"
+ "href": "/apps/tags/webview"
},
{
"title": "Web APIs",
- "href": "/apps/api_other.html"
+ "href": "/apps/api_other"
},
{
"title": "Manifest File Format",
- "href": "/apps/manifest.html"
+ "href": "/apps/manifest"
},
{
"title": "Disabled Web Features",
- "href": "/apps/app_deprecated.html"
+ "href": "/apps/app_deprecated"
}
]
},
@@ -258,7 +258,7 @@
"items": [
{
"title": "Sample Apps",
- "href": "/apps/samples.html"
+ "href": "/apps/samples"
}
]
},
@@ -267,7 +267,7 @@
"items": [
{
"title": "FAQ",
- "href": "/apps/faq.html"
+ "href": "/apps/faq"
},
{
"title": "Google Groups",
diff --git a/chrome/common/extensions/docs/templates/json/extensions_sidenav.json b/chrome/common/extensions/docs/templates/json/extensions_sidenav.json
index 5ec43b7..75ad47c 100644
--- a/chrome/common/extensions/docs/templates/json/extensions_sidenav.json
+++ b/chrome/common/extensions/docs/templates/json/extensions_sidenav.json
@@ -1,19 +1,19 @@
[
{
"title": "Getting Started",
- "href": "/extensions/getstarted.html"
+ "href": "/extensions/getstarted"
},
{
"title": "Overview",
- "href": "/extensions/overview.html"
+ "href": "/extensions/overview"
},
{
"title": "What's New?",
- "href": "/extensions/whats_new.html"
+ "href": "/extensions/whats_new"
},
{
"title": "Developer's Guide",
- "href": "/extensions/devguide.html",
+ "href": "/extensions/devguide",
"items": [
{
"title": "Browser UI",
@@ -21,31 +21,31 @@
"items": [
{
"title": "Browser Actions",
- "href": "/extensions/browserAction.html"
+ "href": "/extensions/browserAction"
},
{
"title": "Context Menus",
- "href": "/extensions/contextMenus.html"
+ "href": "/extensions/contextMenus"
},
{
"title": "Desktop Notifications",
- "href": "/extensions/desktop_notifications.html"
+ "href": "/extensions/desktop_notifications"
},
{
"title": "Omnibox",
- "href": "/extensions/omnibox.html"
+ "href": "/extensions/omnibox"
},
{
"title": "Options Pages",
- "href": "/extensions/options.html"
+ "href": "/extensions/options"
},
{
"title": "Override Pages",
- "href": "/extensions/override.html"
+ "href": "/extensions/override"
},
{
"title": "Page Actions",
- "href": "/extensions/pageAction.html"
+ "href": "/extensions/pageAction"
}
]
},
@@ -55,35 +55,35 @@
"items": [
{
"title": "Bookmarks",
- "href": "/extensions/bookmarks.html"
+ "href": "/extensions/bookmarks"
},
{
"title": "Cookies",
- "href": "/extensions/cookies.html"
+ "href": "/extensions/cookies"
},
{
"title": "Extending DevTools",
- "href": "/extensions/devtools.html"
+ "href": "/extensions/devtools"
},
{
"title": "Events",
- "href": "/extensions/events.html"
+ "href": "/extensions/events"
},
{
"title": "History",
- "href": "/extensions/history.html"
+ "href": "/extensions/history"
},
{
"title": "Management",
- "href": "/extensions/management.html"
+ "href": "/extensions/management"
},
{
"title": "Tabs",
- "href": "/extensions/tabs.html"
+ "href": "/extensions/tabs"
},
{
"title": "Windows",
- "href": "/extensions/windows.html"
+ "href": "/extensions/windows"
}
]
},
@@ -93,39 +93,39 @@
"items": [
{
"title": "Accessibility",
- "href": "/extensions/a11y.html"
+ "href": "/extensions/a11y"
},
{
"title": "Event Pages",
- "href": "/extensions/event_pages.html"
+ "href": "/extensions/event_pages"
},
{
"title": "Content Security Policy",
- "href": "/extensions/contentSecurityPolicy.html"
+ "href": "/extensions/contentSecurityPolicy"
},
{
"title": "Content Scripts",
- "href": "/extensions/content_scripts.html"
+ "href": "/extensions/content_scripts"
},
{
"title": "Cross-Origin XHR",
- "href": "/extensions/xhr.html"
+ "href": "/extensions/xhr"
},
{
"title": "Internationalization",
- "href": "/extensions/i18n.html"
+ "href": "/extensions/i18n"
},
{
"title": "Message Passing",
- "href": "/extensions/messaging.html"
+ "href": "/extensions/messaging"
},
{
"title": "Optional Permissions",
- "href": "/extensions/permissions.html"
+ "href": "/extensions/permissions"
},
{
"title": "NPAPI Plugins",
- "href": "/extensions/npapi.html"
+ "href": "/extensions/npapi"
}
]
},
@@ -135,11 +135,11 @@
"items": [
{
"title": "Hosting",
- "href": "/extensions/hosting.html"
+ "href": "/extensions/hosting"
},
{
"title": "Other Deployment Options",
- "href": "/extensions/external_extensions.html"
+ "href": "/extensions/external_extensions"
}
]
}
@@ -147,23 +147,23 @@
},
{
"title": "Tutorials",
- "href": "/extensions/tutorials.html",
+ "href": "/extensions/tutorials",
"items": [
{
"title": "Manifest V2",
- "href": "/extensions/tut_migration_to_manifest_v2.html"
+ "href": "/extensions/tut_migration_to_manifest_v2"
},
{
"title": "Debugging",
- "href": "/extensions/tut_debugging.html"
+ "href": "/extensions/tut_debugging"
},
{
"title": "Google Analytics",
- "href": "/extensions/tut_analytics.html"
+ "href": "/extensions/tut_analytics"
},
{
"title": "OAuth",
- "href": "/extensions/tut_oauth.html"
+ "href": "/extensions/tut_oauth"
}
]
},
@@ -176,25 +176,25 @@
"items": [
{
"title": "Manifest Files",
- "href": "/extensions/manifest.html"
+ "href": "/extensions/manifest"
},
{
"title": "Match Patterns",
- "href": "/extensions/match_patterns.html"
+ "href": "/extensions/match_patterns"
}
]
},
{
"title": "Permission Warnings",
- "href": "/extensions/permission_warnings.html"
+ "href": "/extensions/permission_warnings"
},
{
"title": "chrome.* APIs",
- "href": "/extensions/api_index.html"
+ "href": "/extensions/api_index"
},
{
"title": "Other APIs",
- "href": "/extensions/api_other.html"
+ "href": "/extensions/api_other"
}
]
},
@@ -203,7 +203,7 @@
"items": [
{
"title": "FAQ",
- "href": "/extensions/faq.html"
+ "href": "/extensions/faq"
},
{
"title": "Chrome Web Store",
@@ -215,7 +215,7 @@
},
{
"title": "Themes",
- "href": "/extensions/themes.html"
+ "href": "/extensions/themes"
}
]
}
diff --git a/chrome/common/extensions/docs/templates/json/intro_tables.json b/chrome/common/extensions/docs/templates/json/intro_tables.json
index 088bcfe..3691956 100644
--- a/chrome/common/extensions/docs/templates/json/intro_tables.json
+++ b/chrome/common/extensions/docs/templates/json/intro_tables.json
@@ -2,7 +2,7 @@
"alarms": {
"Learn More": [
{
- "link": "event_pages.html",
+ "link": "event_pages",
"text": "Event Pages"
}
]
@@ -10,7 +10,7 @@
"app_runtime": {
"Learn More": [
{
- "link": "app_lifecycle.html",
+ "link": "app_lifecycle",
"text": "Manage App Lifecycle"
},
{
@@ -22,11 +22,11 @@
"app_window": {
"Learn More": [
{
- "link": "about_apps.html#look",
+ "link": "about_apps#look",
"text": "How they look"
},
{
- "link": "app_lifecycle.html",
+ "link": "app_lifecycle",
"text": "Manage App Lifecycle"
},
{
@@ -38,7 +38,7 @@
"bluetooth": {
"Learn More": [
{
- "link": "app_bluetooth.html",
+ "link": "app_bluetooth",
"text": "Bluetooth"
}
]
@@ -66,7 +66,7 @@
"text": "\"cookies\""
},
{
- "link": "declare_permissions.html#host-permissions",
+ "link": "declare_permissions#host-permissions",
"text": "host permissions"
}
]
@@ -74,11 +74,11 @@
"declarativeContent": {
"Learn More": [
{
- "link": "events.html",
+ "link": "events",
"text": "Declarative Events"
},
{
- "link": "activeTab.html",
+ "link": "activeTab",
"text": "activeTab"
}
]
@@ -90,7 +90,7 @@
"text": "\"declarativeWebRequest\""
},
{
- "link": "declare_permissions.html#host-permissions",
+ "link": "declare_permissions#host-permissions",
"text": "host permissions"
}
]
@@ -120,11 +120,11 @@
],
"Learn More": [
{
- "link": "app_storage.html",
+ "link": "app_storage",
"text": "Manage Data"
},
{
- "link": "angular_framework.html",
+ "link": "angular_framework",
"text": "Build Apps with AngularJS"
},
{
@@ -136,7 +136,7 @@
"gcm": {
"Learn More": [
{
- "link": "cloudMessagingV2.html",
+ "link": "cloudMessagingV2",
"text": "Google Cloud Messaging"
}
]
@@ -144,7 +144,7 @@
"identity": {
"Learn More": [
{
- "link": "app_identity.html",
+ "link": "app_identity",
"text": "Identify User"
}
]
@@ -181,7 +181,7 @@
"permissions": {
"Learn More": [
{
- "link": "declare_permissions.html",
+ "link": "declare_permissions",
"text": "Declaring permissions"
}
]
@@ -189,11 +189,11 @@
"pushMessaging": {
"Learn More": [
{
- "link": "cloudMessaging.html",
+ "link": "cloudMessaging",
"text": "Google Cloud Messaging for Chrome"
},
{
- "link": "gcm_server.html",
+ "link": "gcm_server",
"text": "API Reference for GCM service"
}
]
@@ -201,11 +201,11 @@
"runtime": {
"Learn More": [
{
- "link": "app_lifecycle.html",
+ "link": "app_lifecycle",
"text": "Manage App Lifecycle"
},
{
- "link": "event_pages.html",
+ "link": "event_pages",
"text": "Event Pages"
}
]
@@ -213,7 +213,7 @@
"serial": {
"Learn More": [
{
- "link": "app_usb.html",
+ "link": "app_usb",
"text": "Accessing Hardware Devices"
}
]
@@ -230,11 +230,11 @@
],
"Learn More": [
{
- "link": "app_network.html",
+ "link": "app_network",
"text": "Network Communications"
},
{
- "link": "sencha_framework.html",
+ "link": "sencha_framework",
"text": "Build Apps with Sencha ExtJS"
},
{
@@ -262,7 +262,7 @@
"syncFileSystem": {
"Learn More": [
{
- "link": "app_storage.html",
+ "link": "app_storage",
"text": "Manage Data"
},
{
@@ -289,7 +289,7 @@
"usb": {
"Learn More": [
{
- "link": "app_usb.html",
+ "link": "app_usb",
"text": "Accessing Hardware Devices"
}
]
@@ -301,7 +301,7 @@
"text": "\"webRequest\""
},
{
- "link": "declare_permissions.html#host-permissions",
+ "link": "declare_permissions#host-permissions",
"text": "host permissions"
}
]
diff --git a/chrome/common/extensions/docs/templates/private/api_reference.html b/chrome/common/extensions/docs/templates/private/api_reference.html
index 1da3d78..edb3ea2 100644
--- a/chrome/common/extensions/docs/templates/private/api_reference.html
+++ b/chrome/common/extensions/docs/templates/private/api_reference.html
@@ -42,7 +42,7 @@
<h2 id="samples">Sample {{platformTitle}}</h2>
<ul>
{{#sample:samplesForApi}}
- <li><strong><a href="samples.html#{{sample.id}}">{{sample.name}}</a></strong>
+ <li><strong><a href="samples#{{sample.id}}">{{sample.name}}</a></strong>
{{?sample.description}}
&ndash; {{sample.description}}
{{/sample.description}}</li>
diff --git a/chrome/common/extensions/docs/templates/private/api_table.html b/chrome/common/extensions/docs/templates/private/api_table.html
index f416c08..f0fa3eb 100644
--- a/chrome/common/extensions/docs/templates/private/api_table.html
+++ b/chrome/common/extensions/docs/templates/private/api_table.html
@@ -2,7 +2,7 @@
<tr><th>Name</th><th>Description</th>{{?is_stable}}<th>Since</th>{{/}}</tr>
{{#a:apis}}
<tr>
- <td><a href="{{a.name}}.html">{{a.name}}</a></td>
+ <td><a href="{{a.name}}">{{a.name}}</a></td>
<td>{{{a.description}}}</td>
{{?is_stable}}
<td>{{a.version}}</td>
diff --git a/chrome/common/extensions/docs/templates/private/event.html b/chrome/common/extensions/docs/templates/private/event.html
index e4bc2fb..c68b16e 100644
--- a/chrome/common/extensions/docs/templates/private/event.html
+++ b/chrome/common/extensions/docs/templates/private/event.html
@@ -7,7 +7,7 @@
{{{description}}}
</p>{{/description}}
{{?supportsRules}}
- <p>Provides the <a href="events.html#declarative">Declarative Event API</a>
+ <p>Provides the <a href="events#declarative">Declarative Event API</a>
consisting of $(ref:events.Event.addRules addRules),
$(ref:events.Event.removeRules removeRules), and
$(ref:events.Event.addRules getRules).</p>
diff --git a/chrome/common/extensions/docs/templates/private/intro_tables/experimental_message.html b/chrome/common/extensions/docs/templates/private/intro_tables/experimental_message.html
index 6c3cddc..0e0d0f0 100644
--- a/chrome/common/extensions/docs/templates/private/intro_tables/experimental_message.html
+++ b/chrome/common/extensions/docs/templates/private/intro_tables/experimental_message.html
@@ -1 +1 @@
-Experimental only (see <a href="experimental.html#using">How to use experimental APIs</a>).
+Experimental only (see <a href="experimental#using">How to use experimental APIs</a>).
diff --git a/chrome/common/extensions/docs/templates/private/intro_tables/socket_permissions.html b/chrome/common/extensions/docs/templates/private/intro_tables/socket_permissions.html
index 6c76027..8ffd16b 100644
--- a/chrome/common/extensions/docs/templates/private/intro_tables/socket_permissions.html
+++ b/chrome/common/extensions/docs/templates/private/intro_tables/socket_permissions.html
@@ -1 +1 @@
-For example: <code>{"socket": ["tcp-connect:*:*"]}</code> means connecting on any port of any host. See <a href='app_network.html'>Network Communications</a> for rule syntax.
+For example: <code>{"socket": ["tcp-connect:*:*"]}</code> means connecting on any port of any host. See <a href='app_network'>Network Communications</a> for rule syntax.
diff --git a/chrome/common/extensions/docs/templates/private/intro_tables/windows_permissions.html b/chrome/common/extensions/docs/templates/private/intro_tables/windows_permissions.html
index 5f46c3f..1e6de07c 100644
--- a/chrome/common/extensions/docs/templates/private/intro_tables/windows_permissions.html
+++ b/chrome/common/extensions/docs/templates/private/intro_tables/windows_permissions.html
@@ -2,7 +2,7 @@ The <code>chrome.windows</code> API can be used
without declaring any permission.
However, the <code>"tabs"</code> permission is
required in order to populate the
- <code><a href="tabs.html#property-Tab-url">url</a></code>,
- <code><a href="tabs.html#property-Tab-title">title</a></code>, and
- <code><a href="tabs.html#property-Tab-favIconUrl">favIconUrl</a></code> properties of
- <code><a href="tabs.html#type-Tab">Tab</a></code> objects.
+ <code><a href="tabs#property-Tab-url">url</a></code>,
+ <code><a href="tabs#property-Tab-title">title</a></code>, and
+ <code><a href="tabs#property-Tab-favIconUrl">favIconUrl</a></code> properties of
+ <code><a href="tabs#type-Tab">Tab</a></code> objects.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/active_tab.html b/chrome/common/extensions/docs/templates/private/permissions/active_tab.html
index 2b4e634..8c7040f 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/active_tab.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/active_tab.html
@@ -1 +1 @@
-Requests that the extension be granted permissions according to the <a href="activeTab.html">activeTab</a> specification.
+Requests that the extension be granted permissions according to the <a href="activeTab">activeTab</a> specification.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/always_on_top_windows.html b/chrome/common/extensions/docs/templates/private/permissions/always_on_top_windows.html
index 8ef07b7..56ef6a3 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/always_on_top_windows.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/always_on_top_windows.html
@@ -1 +1 @@
-Allows the app to use the <a href="app_window.html">chrome.app.window</a> <code>alwaysOnTop</code> property.
+Allows the app to use the <a href="app_window">chrome.app.window</a> <code>alwaysOnTop</code> property.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/background.html b/chrome/common/extensions/docs/templates/private/permissions/background.html
index ed8ba55..791933b 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/background.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/background.html
@@ -11,5 +11,5 @@ When any installed hosted app, packaged app, or extension has "background" permi
</p>
<p>
-You typically use the "background" permission with a <a href="background_pages.html">background page</a>, <a href="event_pages.html">event page</a> or (for hosted apps) a <a href="http://code.google.com/chrome/apps/docs/background.html">background window</a>.
+You typically use the "background" permission with a <a href="background_pages">background page</a>, <a href="event_pages">event page</a> or (for hosted apps) a <a href="http://developers.google.com/chrome/apps/docs/background.html">background window</a>.
</p>
diff --git a/chrome/common/extensions/docs/templates/private/permissions/experimental.html b/chrome/common/extensions/docs/templates/private/permissions/experimental.html
index 3ccf6d5..e4cf25b 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/experimental.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/experimental.html
@@ -1 +1 @@
-Required if the extension or app uses any <a href="experimental.html">chrome.experimental.* APIs</a>.
+Required if the extension or app uses any <a href="experimental">chrome.experimental.* APIs</a>.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/fullscreen.html b/chrome/common/extensions/docs/templates/private/permissions/fullscreen.html
index de06359..a88f688 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/fullscreen.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/fullscreen.html
@@ -1 +1 @@
-Allows the app to use the <a href="app.window.html">app.window</a> fullscreen state or the <a href="https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html">HTML fullscreen API</a>. See <a href="api_other.html">Other APIs</a> for behavior differences.
+Allows the app to use the <a href="app.window">app.window</a> fullscreen state or the <a href="https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html">HTML fullscreen API</a>. See <a href="api_other">Other APIs</a> for behavior differences.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/generic_description.html b/chrome/common/extensions/docs/templates/private/permissions/generic_description.html
index 1cb1f42..4ee6be4 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/generic_description.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/generic_description.html
@@ -1 +1 @@
-Gives your {{platform}} access to the <a href="{{name}}.html">chrome.{{name}}</a> API.
+Gives your {{platform}} access to the <a href="{{name}}">chrome.{{name}}</a> API.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/host_permissions.html b/chrome/common/extensions/docs/templates/private/permissions/host_permissions.html
index 51bbffc..5276886 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/host_permissions.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/host_permissions.html
@@ -1 +1 @@
-Specifies a <em>host permission</em>. Required if the extension or app wants to interact with the code running on pages. Many capabilities, such as <a href="xhr.html">cross-origin XMLHttpRequests</a>, <a href="content_scripts.html#pi">programmatically injected content scripts</a>, and <a href="cookies.html">the extension's cookies API</a> require host permissions. For details on the syntax, see <a href="match_patterns.html">Match Patterns</a>. A path is allowed but treated as <code>/*</code>.
+Specifies a <em>host permission</em>. Required if the extension or app wants to interact with the code running on pages. Many capabilities, such as <a href="xhr">cross-origin XMLHttpRequests</a>, <a href="content_scripts#pi">programmatically injected content scripts</a>, and <a href="cookies">the extension's cookies API</a> require host permissions. For details on the syntax, see <a href="match_patterns">Match Patterns</a>. A path is allowed but treated as <code>/*</code>.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/notifications.html b/chrome/common/extensions/docs/templates/private/permissions/notifications.html
index 18c37ae..00003df 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/notifications.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/notifications.html
@@ -1,5 +1,5 @@
{{^is_apps}}
-Allows the extension to use the proposed HTML5 <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">notification API</a> without calling permission methods (such as <code>checkPermission()</code>). For more information see <a href="desktop_notifications.html">Desktop Notifications</a>.
+Allows the extension to use the proposed HTML5 <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">notification API</a> without calling permission methods (such as <code>checkPermission()</code>). For more information see <a href="desktop_notifications">Desktop Notifications</a>.
{{:is_apps}}
-Required if the app uses the <a href="notifications.html">chrome.notifications</a> API. Also allows the app to use the proposed HTML5 <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">notification API</a> without calling permission methods (such as <code>checkPermission()</code>). For more information see <a href="desktop_notifications.html">Desktop Notifications</a>.
+Required if the app uses the <a href="notifications">chrome.notifications</a> API. Also allows the app to use the proposed HTML5 <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">notification API</a> without calling permission methods (such as <code>checkPermission()</code>). For more information see <a href="desktop_notifications">Desktop Notifications</a>.
{{/is_apps}}
diff --git a/chrome/common/extensions/docs/templates/private/permissions/pointer_lock.html b/chrome/common/extensions/docs/templates/private/permissions/pointer_lock.html
index 0d7f3ca3..8c376a9 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/pointer_lock.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/pointer_lock.html
@@ -1 +1 @@
-Required to use <a href="http://www.w3.org/TR/pointerlock/">Pointer Lock</a> via calls to <code>webkitRequestPointerLock</code> or Pepper's <a href="https://developers.google.com/native-client/peppercpp/classpp_1_1_mouse_lock"> Mouse Lock API</a>. See <a href="api_other.html">Other APIs</a> for behavior differences.
+Required to use <a href="http://www.w3.org/TR/pointerlock/">Pointer Lock</a> via calls to <code>webkitRequestPointerLock</code> or Pepper's <a href="https://developers.google.com/native-client/peppercpp/classpp_1_1_mouse_lock"> Mouse Lock API</a>. See <a href="api_other">Other APIs</a> for behavior differences.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/sync_file_system.html b/chrome/common/extensions/docs/templates/private/permissions/sync_file_system.html
index ebdf5f3..a366f94 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/sync_file_system.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/sync_file_system.html
@@ -1 +1 @@
-Required if the app uses the <a href="syncFileSystem.html">chrome.syncFileSystem</a> API to save and synchronize data on Google Drive.
+Required if the app uses the <a href="syncFileSystem">chrome.syncFileSystem</a> API to save and synchronize data on Google Drive.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/web_request_blocking.html b/chrome/common/extensions/docs/templates/private/permissions/web_request_blocking.html
index aa08665..b22d8eb 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/web_request_blocking.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/web_request_blocking.html
@@ -1 +1 @@
-Required if the extension uses the <a href="webRequest.html">chrome.webRequest</a> API in a blocking fashion.
+Required if the extension uses the <a href="webRequest">chrome.webRequest</a> API in a blocking fashion.
diff --git a/chrome/common/extensions/docs/templates/private/permissions/webview.html b/chrome/common/extensions/docs/templates/private/permissions/webview.html
index aedb362..b907f32 100644
--- a/chrome/common/extensions/docs/templates/private/permissions/webview.html
+++ b/chrome/common/extensions/docs/templates/private/permissions/webview.html
@@ -1 +1 @@
-Required if the app uses the <a href="webview_tag.html">Webview Tag</a> to embed live content from the web in the packaged app.
+Required if the app uses the <a href="webview_tag">Webview Tag</a> to embed live content from the web in the packaged app.