54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
browser.runtime.sendMessage(e.data);
break;
case "getOptions":
case "getDefaultOptions":
case "resetOptions":
// send result to panel
storeGCOptions(result);
if (bChrome) {
e.data.result = helpers.mapToObject(e.data.result);
}
browser.runtime.sendMessage(e.data);
break;
case "setOptions":
case "setOption":
storeGCOptions(result);
break;
case "setDictionary":
console.log("[background] " + sActionDone + ": " + result);
break;
default:
console.log("[background] Unknown command: " + sActionDone);
console.log(e.data);
}
}
catch (e) {
showError(e);
}
};
function initUIOptions (dSavedOptions) {
if (!dSavedOptions.hasOwnProperty("ui_options")) {
browser.storage.local.set({"ui_options": {
textarea: true,
editablenode: true
}});
}
}
function initGrammarChecker (dSavedOptions) {
let dOptions = (dSavedOptions.hasOwnProperty("gc_options")) ? dSavedOptions.gc_options : null;
if (bChrome) {
// JS crap again. Chrome can’t store Map object.
dOptions = helpers.objectToMap(dOptions);
}
xGCEWorker.postMessage({
sCommand: "init",
dParam: {sExtensionPath: browser.extension.getURL(""), dOptions: dOptions, sContext: "Firefox"},
dInfo: {}
});
}
function setSpellingDictionary (dSavedDictionary) {
if (dSavedDictionary.hasOwnProperty("oExtendedDictionary")) {
xGCEWorker.postMessage({
sCommand: "setDictionary",
dParam: { sType: "extended", oDict: dSavedDictionary["oExtendedDictionary"] },
|
<
<
<
|
|
>
>
|
<
>
|
|
|
|
|
|
|
|
>
>
>
>
>
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
browser.runtime.sendMessage(e.data);
break;
case "getOptions":
case "getDefaultOptions":
case "resetOptions":
// send result to panel
storeGCOptions(result);
browser.runtime.sendMessage(e.data);
break;
case "setOptions":
case "setOption":
storeGCOptions(result);
break;
case "setDictionary":
console.log("[background] " + sActionDone + ": " + result);
break;
default:
console.log("[background] Unknown command: " + sActionDone);
console.log(e.data);
}
}
catch (error) {
showError(error);
console.log(e.data);
}
};
function initUIOptions (dSavedOptions) {
if (!dSavedOptions.hasOwnProperty("ui_options")) {
browser.storage.local.set({"ui_options": {
textarea: true,
editablenode: true
}});
}
}
function initGrammarChecker (dSavedOptions) {
try {
let dOptions = (dSavedOptions.hasOwnProperty("gc_options")) ? dSavedOptions.gc_options : null;
if (dOptions !== null && Object.getOwnPropertyNames(dOptions).length == 0) {
console.log("# Error: the saved options was an empty object.");
dOptions = null;
}
xGCEWorker.postMessage({
sCommand: "init",
dParam: {sExtensionPath: browser.extension.getURL(""), dOptions: dOptions, sContext: "Firefox"},
dInfo: {}
});
}
catch (e) {
console.log("initGrammarChecker failed");
showError(e);
}
}
function setSpellingDictionary (dSavedDictionary) {
if (dSavedDictionary.hasOwnProperty("oExtendedDictionary")) {
xGCEWorker.postMessage({
sCommand: "setDictionary",
dParam: { sType: "extended", oDict: dSavedDictionary["oExtendedDictionary"] },
|
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
|
/*
Actions
*/
function storeGCOptions (dOptions) {
if (bChrome) {
// JS crap again. Chrome can’t store Map object.
dOptions = helpers.mapToObject(dOptions);
}
browser.storage.local.set({"gc_options": dOptions});
}
function sendCommandToTab (sCommand, iTab) {
let xTabPort = dConnx.get(iTab);
|
|
<
|
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
|
/*
Actions
*/
function storeGCOptions (dOptions) {
if (dOptions instanceof Map) {
dOptions = helpers.mapToObject(dOptions);
}
browser.storage.local.set({"gc_options": dOptions});
}
function sendCommandToTab (sCommand, iTab) {
let xTabPort = dConnx.get(iTab);
|