23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-
+
|
xGCEWorker.onmessage = function (e) {
// https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent
try {
let {sActionDone, result, dInfo} = e.data;
switch (sActionDone) {
case "init":
browser.storage.local.set({"gc_options": result});
storeGCOptions(result);
break;
case "parse":
case "parseAndSpellcheck":
case "parseAndSpellcheck1":
case "getListOfTokens":
case "getSpellSuggestions":
// send result to content script
|
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
-
+
-
+
|
browser.runtime.sendMessage(e.data);
break;
case "getOptions":
case "getDefaultOptions":
case "resetOptions":
// send result to panel
browser.runtime.sendMessage(e.data);
browser.storage.local.set({"gc_options": result});
storeGCOptions(result);
break;
case "setOptions":
case "setOption":
browser.storage.local.set({"gc_options": result});
storeGCOptions(result);
break;
default:
console.log("[background] Unknown command: " + sActionDone);
console.log(e.data);
}
}
catch (e) {
|
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
|
+
+
+
+
+
+
+
+
+
+
+
+
+
|
}
});
/*
Actions
*/
function storeGCOptions (dOptions) {
if (bChrome) {
// JS crap again. Chrome can’t store Map object.
let obj = {};
for (let [k, v] of dOptions) {
obj[k] = v;
}
dOptions = obj;
}
browser.storage.local.set({"gc_options": dOptions});
}
function parseAndSpellcheckSelectedText (iTab, sText) {
// send message to the tab
let xTabPort = dConnx.get(iTab);
xTabPort.postMessage({sActionDone: "openGCPanel", result: null, dInfo: null, bEnd: false, bError: false});
// send command to the worker
xGCEWorker.postMessage({
sCommand: "parseAndSpellcheck",
|