Overview
| Comment: | [fx] WebExt: adaptation to Chrome (write and read gc options) | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | fx | 
| Files: | files | file ages | folders | 
| SHA3-256: | 6d2246be0e19fd5898172260c944e773 | 
| User & Date: | olr on 2017-09-27 09:10:44 | 
| Other Links: | manifest | tags | 
Context
| 2017-09-27 | ||
| 10:20 | [fx] WebExt: adaptation to Chrome: minimal version required check-in: e7592882ed user: olr tags: trunk, fx | |
| 09:10 | [fx] WebExt: adaptation to Chrome (write and read gc options) check-in: 6d2246be0e user: olr tags: trunk, fx | |
| 2017-09-26 | ||
| 13:46 | [fx] WebExt: a Map is not a Map anymore on Chrome (not working) check-in: e2850f295a user: olr tags: trunk, fx | |
Changes
Modified gc_core/js/helpers.js from [f725b5eed7] to [b352512c63].
| ︙ | ︙ | |||
| 70 71 72 73 74 75 76 | 
        }
    },
    // conversions
    objectToMap: function (obj) {
        let m = new Map();
        for (let param in obj) {
 | < | 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 
        }
    },
    // conversions
    objectToMap: function (obj) {
        let m = new Map();
        for (let param in obj) {
            m.set(param, obj[param]);
        }
        return m;
    },
    mapToObject: function (m) {
        let obj = {};
 | 
| ︙ | ︙ | 
Modified gc_lang/fr/webext/background.js from [d893b16f09] to [7732c179f1].
| ︙ | ︙ | |||
| 23 24 25 26 27 28 29 | 
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":
 | | | 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":
                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 | 
                browser.runtime.sendMessage(e.data);
                break;
            case "getOptions":
            case "getDefaultOptions":
            case "resetOptions":
                // send result to panel
                browser.runtime.sendMessage(e.data);
 | | | | 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);
                storeGCOptions(result);
                break;
            case "setOptions":
            case "setOption":
                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 | 
    }
});
/*
    Actions
*/
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",
 | > > > > > > > > > > > > > | 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",
 | 
| ︙ | ︙ | 
Modified gc_lang/fr/webext/panel/main.js from [0dd514b39a] to [515cc52320].
| ︙ | ︙ | |||
| 147 148 149 150 151 152 153 | 
function _setGCOptions (dSavedOptions) {
    if (dSavedOptions.hasOwnProperty("gc_options")) {
        setGCOptions(dSavedOptions.gc_options);
    }
}
function setGCOptions (dOptions) {
 | > > > | > > | > | > < < < < < < < < | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | 
function _setGCOptions (dSavedOptions) {
    if (dSavedOptions.hasOwnProperty("gc_options")) {
        setGCOptions(dSavedOptions.gc_options);
    }
}
function setGCOptions (dOptions) {
    if (bChrome) {
        // JS crap again. Chrome can’t store Map object.
        let m = new Map();
        for (let param in dOptions) {
            m.set(param, dOptions[param]);
        }
        dOptions = m;
    }
    for (let [sOpt, bVal] of dOptions) {
        console.log(sOpt + ": " + bVal);
        if (document.getElementById("option_"+sOpt)) {
            document.getElementById("option_"+sOpt).checked = bVal;
        }
    }
}
 |