OLD | NEW |
(Empty) | |
| 1 /* Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| 2 * Use of this source code is governed by a BSD-style license that can be |
| 3 * found in the LICENSE file. */ |
| 4 |
| 5 var ariaDescribedAt = ''; |
| 6 var longDesc = ''; |
| 7 |
| 8 /** |
| 9 * This is called when the extension is first loaded, so that it can be |
| 10 * immediately used in all already-open tabs. It's not needed for any |
| 11 * new tabs that open after that, the content script will be automatically |
| 12 * injected into any new tab. |
| 13 */ |
| 14 chrome.windows.getAll({'populate': true}, function(windows) { |
| 15 for (var i = 0; i < windows.length; i++) { |
| 16 var tabs = windows[i].tabs; |
| 17 for (var j = 0; j < tabs.length; j++) { |
| 18 chrome.tabs.executeScript( |
| 19 tabs[j].id, |
| 20 {file: 'lastRightClick.js'}); |
| 21 } |
| 22 } |
| 23 }); |
| 24 |
| 25 /** |
| 26 * Add context menu item when the extension is installed. |
| 27 */ |
| 28 chrome.contextMenus.create({ |
| 29 "title": "More information...", |
| 30 "contexts": ["all"], |
| 31 "id": "moreInfo", |
| 32 "onclick": contextMenuClicked, |
| 33 "enabled": false |
| 34 }); |
| 35 |
| 36 /** |
| 37 * Add listener for messages from content script. |
| 38 * Enable/disable the context menu item. |
| 39 */ |
| 40 chrome.runtime.onMessage.addListener( |
| 41 function (request, sender, sendResponse) { |
| 42 if (request.enabled) { |
| 43 ariaDescribedAt = request.ariaDescribedAt; |
| 44 longDesc = request.longDesc; |
| 45 } |
| 46 chrome.contextMenus.update('moreInfo', { |
| 47 "enabled": request.enabled |
| 48 }); |
| 49 }); |
| 50 |
| 51 /** |
| 52 * Event handler for when a context menu item is clicked. |
| 53 * aria-describedat is given a higher priority. |
| 54 * No need to strip the URL of leading/trailing white space |
| 55 * because Chrome takes care of this. |
| 56 * |
| 57 * @param info |
| 58 * @param tab |
| 59 */ |
| 60 function contextMenuClicked(info, tab) { |
| 61 if (ariaDescribedAt !== '') { |
| 62 chrome.tabs.create({url: ariaDescribedAt}); |
| 63 } else if (longDesc !== '') { |
| 64 chrome.tabs.create({url: longDesc}); |
| 65 } |
| 66 } |
OLD | NEW |