-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathinjectionScript.js
84 lines (78 loc) · 2.21 KB
/
injectionScript.js
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
71
72
73
74
75
76
77
78
79
80
81
82
83
function injectScripts(){
let listOfScript=
[
'3rd_party/shpwrite',
'addCopyJSON',
'addLinkToDoc',
'addPlotly',
'addTerminal',
'consoleError',
'editorSettings',
'EEDarkMode',
'hackEE',
'insertInCE',
'isShareable',
'openScriptNewTab',
'planetLab',
'pythonCE',
'runAllTasks',
'sharedCodeSession',
'surveyMessage',
'uploadWithManifest',
].concat([ /// run first
'OEEMenu',
]);
if(document.location.pathname=='/tasks'){
listOfScript=['EEDarkMode'];
}
chrome.storage.local.get(listOfScript,
function(result){
result['3rd_party/shpwrite']=result['uploadWithManifest'];
for (var i = listOfScript.length - 1; i >= 0; i--) {
let key=listOfScript[i]
if(result[key]){
var s = document.createElement('script');
s.src = chrome.runtime.getURL(key+'.js');
s.onload = function() {
this.remove();
};
(document.head || document.documentElement).appendChild(s);
}
}
});
}
isFirefox=typeof(trustedTypes)=="undefined";
if(isFirefox){
let listConnector={};
window.addEventListener("message", (event) => {
if (event.source == window &&
event.data &&
event.data.direction == "p2e") {
if(listConnector[event.data.connectInfo.name]==undefined){
listConnector[event.data.connectInfo.name]=browser.runtime.connect(browser.runtime.id,event.data.connectInfo);
listConnector[event.data.connectInfo.name].onMessage.addListener(function(val){
window.postMessage({message:val,connectInfo:event.data.connectInfo,direction:"e2p"})
})
listConnector[event.data.connectInfo.name].onDisconnect.addListener((p) => {
delete listConnector[event.data.connectInfo.name];
});
}
listConnector[event.data.connectInfo.name].postMessage(event.data.message);
}
});
var s = document.createElement('script');
s.src = chrome.runtime.getURL('3rd_party/trustedtypes.api_only.build.js');
s.onload = function() {
this.remove();
var s = document.createElement('script');
s.src = chrome.runtime.getURL('externalConenctingfix.js');
s.onload = function() {
this.remove();
injectScripts();
};
(document.head || document.documentElement).appendChild(s);
};
(document.head || document.documentElement).appendChild(s);
}else{
injectScripts();
}