Grammalecte  Diff

Differences From Artifact [64fb970984]:

To Artifact [6c7b38de44]:


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
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 receivedMessageIframe (oEvent) {
    if ( typeof oEvent.data.SharedWorker !== "undefined" ) {
function receivedMessageFromIframe (oEvent) {
    if (typeof oEvent.data.SharedWorker !== "undefined") {
        //C'est ici que les action devront être effectuées
        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 iframe = document.createElement('iframe');
iframe.id = sFrameID;
iframe.src = browser.extension.getURL('content_scripts/comunicate.html');
iframe.hidden = true;
iframe.onload= function() {
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 iframeContent = iframe.contentWindow;
    var iframeContent = document.getElementById(sFrameID).contentWindow;
    iframeContent.addEventListener("message", receivedMessageIframe, false);
    //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(""));
        iframeContent.postMessage({sPath:browser.extension.getURL(""), sPage:location.origin.trim("/")}, 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');
        iframeContent.postMessage(["parse", {sText: "Vas... J’en aie mare...", sCountry: "FR", bDebug: false, bContext: false}], browser.extension.getURL(""));
        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(iframe);
document.body.appendChild(xIframe);

/*

* Bidoule pour les les images du module et les intégrès sur la page
*/
function loadImage(sContennaireID, sImagePath){
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(sContennaireID), function(oElment){
        oElment.appendChild(img);
    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
98
99
100
101
102
103
104
105
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);
    }
}