Overview
| Comment: | [fx] some code cleaning + another test |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | fx | webext_sharedworker |
| Files: | files | file ages | folders |
| SHA3-256: |
b1dd1ce191b3b31d131c13d5d2b2202c |
| User & Date: | olr on 2017-08-11 06:05:45 |
| Other Links: | branch diff | manifest | tags |
Context
|
2017-08-11
| ||
| 07:15 | [fx] rename communicate check-in: cd64de6f5a user: olr tags: fx, webext_sharedworker | |
| 06:05 | [fx] some code cleaning + another test check-in: b1dd1ce191 user: olr tags: fx, webext_sharedworker | |
|
2017-08-10
| ||
| 21:20 | [fx] Use only the Sharedworker (cleanup code in background) check-in: db25c98bc2 user: IllusionPerdu tags: fx, webext_sharedworker | |
Changes
Modified gc_lang/fr/webext/content_scripts/comunicate.js from [9a6ca194be] to [f425809667].
1 2 3 4 5 6 7 |
let xGCEWorker = null;
console.log('[Iframe] Loaded');
/*
Worker (separate thread to avoid freezing Firefox)
*/
| | < < < < | | < | < < < < | | | < | < | < < | | | | | | < > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
let xGCEWorker = null;
console.log('[Iframe] Loaded');
/*
Worker (separate thread to avoid freezing Firefox)
*/
function createSharedWorker (sPath) {
try {
xGCEWorker = new SharedWorker(sPath+"gce_sharedworker.js");
}
catch (e) {
console.error(e);
}
xGCEWorker.onerror = function(e) {
console.log('There is an error with your worker!');
console.log(typeof(e));
console.log(e);
}
xGCEWorker.port.onmessage = function (e) {
// https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent
try {
// On retransmet directement le message à la page
console.log("[Iframe] send from Message Worker");
window.postMessage({SharedWorker: e.data}, sPath);
}
catch (e) {
console.error(e);
}
};
console.log("[Iframe] [worker]");
console.log(xGCEWorker);
//xGCEWorker.port.start();
//console.log("Content script [port started]");
xGCEWorker.port.postMessage(["init", {sExtensionPath: sPath, sOptions: "", sContext: "Firefox"}]);
//xGCEWorker.port.postMessage(["parse", {sText: "Vas... J’en aie mare...", sCountry: "FR", bDebug: false, bContext: false}]);
//xGCEWorker.port.postMessage(["parseAndSpellcheck", {sText: oRequest.sText, sCountry: "FR", bDebug: false, bContext: false}]);
//xGCEWorker.port.postMessage(["getListOfTokens", {sText: oRequest.sText}]);
//xGCEWorker.port.postMessage(["textToTest", {sText: oRequest.sText, sCountry: "FR", bDebug: false, bContext: false}]);
//xGCEWorker.port.postMessage(["fullTests"]);
}
var sPathOrigin = '';
console.log('[Iframe] Set receivedMessageWeb');
function receivedMessageWeb (oEvent) {
// Pour être sûr que ça vient bien de notre iframe ;)
if (!xGCEWorker && typeof oEvent.data.sPath !== "undefined" && typeof oEvent.data.sPage !== "undefined" && oEvent.data.sPage === oEvent.origin) {
console.log('[Iframe] Create the Sharedworker ', oEvent.origin);
sPathOrigin = oEvent.origin;
createSharedWorker(oEvent.data.sPath);
} else if (xGCEWorker && sPathOrigin === oEvent.origin && typeof oEvent.data.SharedWorker === "undefined") {
console.log('[Iframe] received (no SharedWorker):', oEvent, oEvent.origin);
// Les messages reçus maintenant ont un SharedWorker fonctionnel
// On transmet au SharedWorker uniquement si ça vient de la page web et on s’assure que ce n’est pas une réponse du SharedWorker.
// TODO: Établir un protocole de communication afin de traiter uniquement les messages utiles
console.log('[Iframe] exec command with SharedWorker');
xGCEWorker.port.postMessage(oEvent.data);
console.log('[Iframe] end send message to worker');
}
}
window.addEventListener("message", receivedMessageWeb, false);
console.log('[Iframe] END');
|
Modified gc_lang/fr/webext/content_scripts/modify_page.js from [64fb970984] to [6c7b38de44].
| ︙ | ︙ | |||
8 9 10 11 12 13 14 |
}
console.log("Content script [start]");
/*
* Pour effectuer différent action sur la page en cours
*/
| | | < > > > > > > > > > > | | | | | | | | < | < | | | < < | < < | | > | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 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 |
}
console.log("Content script [start]");
/*
* Pour effectuer différent action sur la page en cours
*/
function receivedMessageFromIframe (oEvent) {
if (typeof oEvent.data.SharedWorker !== "undefined") {
console.log('[Web] received (from iframe (Sharedworker)):', oEvent);
let [sCommand, answer] = oEvent.data.SharedWorker;
console.log(sCommand);
switch (sCommand) {
case "grammar_errors":
console.log(answer.aGrammErr);
for (let oErr of answer.aGrammErr) {
console.log(oErr);
}
break;
}
}
}
/*
* Creation d'une iframe pour communiquer entre la page visitée et le Shareworker
*/
var sFrameID = browser.extension.getURL("").split('/')[2];
var xIframe = document.createElement('iframe');
xIframe.id = sFrameID;
xIframe.src = browser.extension.getURL('content_scripts/comunicate.html');
xIframe.hidden = true;
xIframe.onload= function () {
console.log('[Web] Init protocol de communication');
//var xFrameContent = xIframe.contentWindow;
var xFrameContent = document.getElementById(sFrameID).contentWindow;
xFrameContent.addEventListener("message", receivedMessageFromIframe, false);
try {
//La frame est chargé on envoie l'initialisation du Sharedworker
console.log('[Web] Initialise the worker :s');
console.log('[Web] Domaine ext: '+browser.extension.getURL(""));
xFrameContent.postMessage({sPath: browser.extension.getURL(""), sPage: location.origin.trim("/")}, browser.extension.getURL(""));
//Un petit test pour débogage ;)
console.log('[Web] Test the worker :s');
xFrameContent.postMessage(["parse", {sText: "Vas... J’en aie mare...", sCountry: "FR", bDebug: false, bContext: false}], browser.extension.getURL(""));
}
catch (e) {
console.error(e);
}
}
document.body.appendChild(xIframe);
function loadImage (sContainerClass, sImagePath) {
let xRequest;
xRequest = new XMLHttpRequest();
xRequest.open('GET', browser.extension.getURL("")+sImagePath, false);
xRequest.responseType = "arraybuffer";
xRequest.send();
let blobTxt = new Blob([xRequest.response], {type: 'image/png'});
let img = document.createElement('img');
img.src = (URL || webkitURL).createObjectURL(blobTxt);
Array.filter(document.getElementsByClassName(sContainerClass), function (oElem) {
oElem.appendChild(img);
});
}
console.log('[Web] La suite des initialisations');
let nWrapper = 0;
let xConjPanel = null;
let xTFPanel = null;
let xLxgPanel = null;
|
| ︙ | ︙ | |||
91 92 93 94 95 96 97 |
xWrapper.style = "padding: 5px; color: hsl(210, 10%, 90%); background-color: hsl(210, 50%, 50%); border-radius: 3px;";
xWrapper.id = nWrapper + 1;
nWrapper += 1;
xParentElement.insertBefore(xWrapper, xTextArea);
xWrapper.appendChild(xTextArea); // move textarea in wrapper
let xToolbar = createWrapperToolbar(xTextArea);
xWrapper.appendChild(xToolbar);
| < | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
xWrapper.style = "padding: 5px; color: hsl(210, 10%, 90%); background-color: hsl(210, 50%, 50%); border-radius: 3px;";
xWrapper.id = nWrapper + 1;
nWrapper += 1;
xParentElement.insertBefore(xWrapper, xTextArea);
xWrapper.appendChild(xTextArea); // move textarea in wrapper
let xToolbar = createWrapperToolbar(xTextArea);
xWrapper.appendChild(xToolbar);
loadImage("GrammalecteTitle", "img/logo-16.png");
}
catch (e) {
showError(e);
}
}
|
| ︙ | ︙ |