- commit
- 6522036397b1dbe091f6e96a8900e60794e189f1
- parent
- ba4566615cba9ee6a9d69e16072fea3945b44cfc
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2023-12-08 20:03
use async/await in popup
Diffstat
| M | src/popup.js | 78 | ++++++++++++++++++++++++++++++------------------------------- |
1 files changed, 38 insertions, 40 deletions
diff --git a/src/popup.js b/src/popup.js
@@ -11,8 +11,8 @@ var recording = document.querySelector('[name="recording"]');
11 11 var commitButton = document.querySelector('[name="commit"]');
12 12 var resetButton = document.querySelector('[name="reset"]');
13 13
14 -1 var sendMessage = function(type, data) {
15 -1 return browser.runtime.sendMessage({type: type, data: data});
-1 14 var sendMessage = async function(type, data) {
-1 15 return await browser.runtime.sendMessage({type: type, data: data});
16 16 };
17 17
18 18 var getHostnames = function() {
@@ -77,18 +77,17 @@ var createCheckbox = function(hostname, type) {
77 77 var c = (hostname === 'first-party') ? '*' : context;
78 78 input.checked = (rules[c][hostname] || {})[type];
79 79
80 -1 input.onchange = () => {
81 -1 sendMessage('setRule', {
-1 80 input.onchange = async () => {
-1 81 var newRules = await sendMessage('setRule', {
82 82 context: context,
83 83 hostname: hostname,
84 84 type: type,
85 85 value: input.checked,
86 -1 }).then(newRules => {
87 -1 rules = newRules;
88 -1 commitButton.disabled = !rules.dirty;
89 -1 resetButton.disabled = !rules.dirty;
90 -1 updateInherit(type);
91 86 });
-1 87 rules = newRules;
-1 88 commitButton.disabled = !rules.dirty;
-1 89 resetButton.disabled = !rules.dirty;
-1 90 updateInherit(type);
92 91 };
93 92
94 93 return input;
@@ -135,49 +134,48 @@ var createRow = function(hostname) {
135 134 return tr;
136 135 };
137 136
138 -1 var loadContext = function() {
139 -1 return sendMessage('get').then(data => {
140 -1 context = data.context;
141 -1 requests = data.requests;
142 -1 rules = data.rules;
143 -1 recording.checked = data.recording;
144 -1 commitButton.disabled = !rules.dirty;
145 -1 resetButton.disabled = !rules.dirty;
146 -1
147 -1 table.innerHTML = '';
148 -1 table.append(createHeader());
149 -1 table.append(createRow('inline'));
150 -1 table.append(createRow('first-party'));
151 -1
152 -1 for (const hostname of getHostnames()) {
153 -1 table.append(createRow(hostname));
154 -1 }
-1 137 var loadContext = async function() {
-1 138 var data = await sendMessage('get');
-1 139 context = data.context;
-1 140 requests = data.requests;
-1 141 rules = data.rules;
-1 142 recording.checked = data.recording;
-1 143 commitButton.disabled = !rules.dirty;
-1 144 resetButton.disabled = !rules.dirty;
-1 145
-1 146 table.innerHTML = '';
-1 147 table.append(createHeader());
-1 148 table.append(createRow('inline'));
-1 149 table.append(createRow('first-party'));
-1 150
-1 151 for (const hostname of getHostnames()) {
-1 152 table.append(createRow(hostname));
-1 153 }
155 154
156 -1 updateInherit('*');
157 -1 });
-1 155 updateInherit('*');
158 156 };
159 157
160 158 browser.webNavigation.onBeforeNavigate.addListener(window.close);
161 159
162 -1 document.querySelector('[name="settings"]').addEventListener('click', event => {
-1 160 document.querySelector('[name="settings"]').addEventListener('click', () => {
163 161 browser.runtime.openOptionsPage();
164 162 });
165 163
166 -1 document.addEventListener('DOMContentLoaded', () => {
167 -1 loadContext();
-1 164 document.addEventListener('DOMContentLoaded', async () => {
-1 165 await loadContext();
168 166 });
169 167
170 -1 recording.addEventListener('change', event => {
171 -1 sendMessage('toggleRecording');
-1 168 recording.addEventListener('change', async () => {
-1 169 await sendMessage('toggleRecording');
172 170 });
173 171
174 -1 commitButton.addEventListener('click', event => {
175 -1 sendMessage('commit', context).then(() => {
176 -1 commitButton.disabled = true;
177 -1 resetButton.disabled = true;
178 -1 });
-1 172 commitButton.addEventListener('click', async () => {
-1 173 await sendMessage('commit', context);
-1 174 commitButton.disabled = true;
-1 175 resetButton.disabled = true;
179 176 });
180 177
181 -1 resetButton.addEventListener('click', event => {
182 -1 sendMessage('reset', context).then(loadContext);
-1 178 resetButton.addEventListener('click', async () => {
-1 179 await sendMessage('reset', context);
-1 180 await loadContext();
183 181 });