db7c92fd57
* test: drop the now-empty remote runner from CI * move fixtures to spec-main * remove remote runner * fix stuff * remove global-paths hack * move ts-smoke to spec/ * fix test after merge * rename spec-main to spec * no need to ignore spec/node_modules twice * simplify spec-runner a little * no need to hash pj/yl twice * undo lint change to verify-mksnapshot.py * excessive .. * update electron_woa_testing.yml * don't search for test-results-remote.xml it is never produced now
39 lines
915 B
JavaScript
39 lines
915 B
JavaScript
/* eslint-disable */
|
|
|
|
function evalInMainWorld(fn) {
|
|
const script = document.createElement('script')
|
|
script.textContent = `((${fn})())`
|
|
document.documentElement.appendChild(script)
|
|
}
|
|
|
|
async function exec(name) {
|
|
let result
|
|
switch (name) {
|
|
case 'getManifest':
|
|
result = chrome.runtime.getManifest()
|
|
break
|
|
case 'id':
|
|
result = chrome.runtime.id
|
|
break
|
|
case 'getURL':
|
|
result = chrome.runtime.getURL('main.js')
|
|
break
|
|
case 'getPlatformInfo': {
|
|
result = await new Promise(resolve => {
|
|
chrome.runtime.sendMessage(name, resolve)
|
|
})
|
|
break
|
|
}
|
|
}
|
|
|
|
const funcStr = `() => { require('electron').ipcRenderer.send('success', ${JSON.stringify(result)}) }`
|
|
evalInMainWorld(funcStr)
|
|
}
|
|
|
|
window.addEventListener('message', event => {
|
|
exec(event.data.name)
|
|
})
|
|
|
|
evalInMainWorld(() => {
|
|
window.exec = name => window.postMessage({ name })
|
|
})
|