| Index: ui/accessibility/extensions/longdesc/background.js
|
| diff --git a/ui/accessibility/extensions/longdesc/background.js b/ui/accessibility/extensions/longdesc/background.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5e05eb9c0c18b81a64bec40108899c1de78a24ac
|
| --- /dev/null
|
| +++ b/ui/accessibility/extensions/longdesc/background.js
|
| @@ -0,0 +1,66 @@
|
| +/* Copyright (c) 2014 The Chromium Authors. All rights reserved.
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file. */
|
| +
|
| +var ariaDescribedAt = '';
|
| +var longDesc = '';
|
| +
|
| + /**
|
| + * This is called when the extension is first loaded, so that it can be
|
| + * immediately used in all already-open tabs. It's not needed for any
|
| + * new tabs that open after that, the content script will be automatically
|
| + * injected into any new tab.
|
| + */
|
| +chrome.windows.getAll({'populate': true}, function(windows) {
|
| + for (var i = 0; i < windows.length; i++) {
|
| + var tabs = windows[i].tabs;
|
| + for (var j = 0; j < tabs.length; j++) {
|
| + chrome.tabs.executeScript(
|
| + tabs[j].id,
|
| + {file: 'lastRightClick.js'});
|
| + }
|
| + }
|
| +});
|
| +
|
| +/**
|
| + * Add context menu item when the extension is installed.
|
| + */
|
| +chrome.contextMenus.create({
|
| + "title": "More information...",
|
| + "contexts": ["all"],
|
| + "id": "moreInfo",
|
| + "onclick": contextMenuClicked,
|
| + "enabled": false
|
| + });
|
| +
|
| +/**
|
| + * Add listener for messages from content script.
|
| + * Enable/disable the context menu item.
|
| + */
|
| +chrome.runtime.onMessage.addListener(
|
| + function (request, sender, sendResponse) {
|
| + if (request.enabled) {
|
| + ariaDescribedAt = request.ariaDescribedAt;
|
| + longDesc = request.longDesc;
|
| + }
|
| + chrome.contextMenus.update('moreInfo', {
|
| + "enabled": request.enabled
|
| + });
|
| + });
|
| +
|
| +/**
|
| + * Event handler for when a context menu item is clicked.
|
| + * aria-describedat is given a higher priority.
|
| + * No need to strip the URL of leading/trailing white space
|
| + * because Chrome takes care of this.
|
| + *
|
| + * @param info
|
| + * @param tab
|
| + */
|
| +function contextMenuClicked(info, tab) {
|
| + if (ariaDescribedAt !== '') {
|
| + chrome.tabs.create({url: ariaDescribedAt});
|
| + } else if (longDesc !== '') {
|
| + chrome.tabs.create({url: longDesc});
|
| + }
|
| +}
|
|
|