a11y-outline

web extension to navigate document outlines easily
git clone https://git.ce9e.org/a11y-outline.git

commit
427f8762d79e511bd833c8e6a2b62300beb71c40
parent
703821f7d887ede2133b6ca982666a107ed5868a
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-07-24 07:13
switch to scripting API

Diffstat

M bg.js 26 +++++++++++++++++---------
M manifest.json 3 ++-

2 files changed, 19 insertions, 10 deletions


diff --git a/bg.js b/bg.js

@@ -10,27 +10,35 @@ var wrap = function(fn) {
   10    10 	};
   11    11 };
   12    12 
   13    -1 var executeScript = wrap(chrome.tabs.executeScript);
   14    -1 var insertCSS = wrap(chrome.tabs.insertCSS);
   -1    13 var executeScript = wrap(chrome.scripting.executeScript);
   -1    14 var insertCSS = wrap(chrome.scripting.insertCSS);
   15    15 
   16    -1 var injectCode = function() {
   -1    16 var injectCode = function(tab) {
   17    17 	return Promise.all([
   18    -1 		executeScript({file: '/vendor/aria.js'}),
   19    -1 		executeScript({file: '/treeview.js'}),
   20    -1 		executeScript({file: '/outline.js'}),
   21    -1 		insertCSS({file: '/outline.css'}),
   -1    18 		executeScript({
   -1    19 			target: {tabId: tab.id},
   -1    20 			files: [
   -1    21 				'/vendor/aria.js',
   -1    22 				'/treeview.js',
   -1    23 				'/outline.js',
   -1    24 			],
   -1    25 		}),
   -1    26 		insertCSS({
   -1    27 			target: {tabId: tab.id},
   -1    28 			files: ['/outline.css'],
   -1    29 		}),
   22    30 	]);
   23    31 };
   24    32 
   25    33 chrome.browserAction.onClicked.addListener(function(tab) {
   26    -1 	injectCode().then(() => {
   -1    34 	injectCode(tab).then(() => {
   27    35 		chrome.tabs.sendMessage(tab.id, 'showA11yOutline');
   28    36 	});
   29    37 });
   30    38 
   31    39 chrome.commands.onCommand.addListener(function(command) {
   32    40 	chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
   33    -1 		injectCode().then(() => {
   -1    41 		injectCode(tabs[0]).then(() => {
   34    42 			chrome.tabs.sendMessage(tabs[0].id, command);
   35    43 		});
   36    44 	});

diff --git a/manifest.json b/manifest.json

@@ -39,7 +39,8 @@
   39    39     }
   40    40   },
   41    41   "permissions": [
   42    -1     "activeTab"
   -1    42     "activeTab",
   -1    43     "scripting"
   43    44   ],
   44    45   "browser_specific_settings": {
   45    46     "gecko": {