test: drop now-empty remote runner (#35343)

* 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
This commit is contained in:
Jeremy Rose 2022-08-16 12:23:13 -07:00 committed by GitHub
parent e87c4015fe
commit db7c92fd57
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
327 changed files with 950 additions and 1707 deletions

View file

@ -0,0 +1,34 @@
/* global chrome */
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
const { method, args = [] } = message;
const tabId = sender.tab.id;
switch (method) {
case 'sendMessage': {
const [message] = args;
chrome.tabs.sendMessage(tabId, { message, tabId }, undefined, sendResponse);
break;
}
case 'executeScript': {
const [code] = args;
chrome.tabs.executeScript(tabId, { code }, ([result]) => sendResponse(result));
break;
}
case 'connectTab': {
const [name] = args;
const port = chrome.tabs.connect(tabId, { name });
port.postMessage('howdy');
break;
}
case 'update': {
const [tabId, props] = args;
chrome.tabs.update(tabId, props, sendResponse);
}
}
// Respond asynchronously
return true;
});

View file

@ -0,0 +1,52 @@
/* global chrome */
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
sendResponse(message);
});
const testMap = {
connect () {
let success = false;
try {
chrome.runtime.connect(chrome.runtime.id);
chrome.runtime.connect(chrome.runtime.id, { name: 'content-script' });
chrome.runtime.connect({ name: 'content-script' });
success = true;
} finally {
console.log(JSON.stringify(success));
}
},
getManifest () {
const manifest = chrome.runtime.getManifest();
console.log(JSON.stringify(manifest));
},
sendMessage (message) {
chrome.runtime.sendMessage({ method: 'sendMessage', args: [message] }, response => {
console.log(JSON.stringify(response));
});
},
executeScript (code) {
chrome.runtime.sendMessage({ method: 'executeScript', args: [code] }, response => {
console.log(JSON.stringify(response));
});
},
connectTab (name) {
chrome.runtime.onConnect.addListener(port => {
port.onMessage.addListener(message => {
console.log([port.name, message].join());
});
});
chrome.runtime.sendMessage({ method: 'connectTab', args: [name] });
},
update (tabId, props) {
chrome.runtime.sendMessage({ method: 'update', args: [tabId, props] }, response => {
console.log(JSON.stringify(response));
});
}
};
const dispatchTest = (event) => {
const { method, args = [] } = JSON.parse(event.data);
testMap[method](...args);
};
window.addEventListener('message', dispatchTest, false);

View file

@ -0,0 +1,19 @@
{
"name": "chrome-api",
"version": "1.0",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["main.js"],
"run_at": "document_start"
}
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions": [
"<all_urls>"
],
"manifest_version": 2
}

View file

@ -0,0 +1,6 @@
{
"extName": {
"message": "chrome-i18n",
"description": "Extension name."
}
}

View file

@ -0,0 +1,33 @@
/* 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 'getMessage':
result = {
id: chrome.i18n.getMessage('@@extension_id'),
name: chrome.i18n.getMessage('extName'),
}
break
case 'getAcceptLanguages':
result = await new Promise(resolve => chrome.i18n.getAcceptLanguages(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 })
})

View file

@ -0,0 +1,13 @@
{
"name": "__MSG_extName__",
"default_locale": "en",
"version": "1.0",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["main.js"],
"run_at": "document_start"
}
],
"manifest_version": 2
}

View file

@ -0,0 +1,12 @@
/* global chrome */
chrome.runtime.onMessage.addListener((message, sender, reply) => {
switch (message) {
case 'getPlatformInfo':
chrome.runtime.getPlatformInfo(reply);
break;
}
// Respond asynchronously
return true;
});

View file

@ -0,0 +1,39 @@
/* 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 })
})

View file

@ -0,0 +1,16 @@
{
"name": "chrome-runtime",
"version": "1.0",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["main.js"],
"run_at": "document_end"
}
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"manifest_version": 2
}

View file

@ -0,0 +1,8 @@
/* eslint-disable */
chrome.storage.local.set({ key: 'value' }, () => {
chrome.storage.local.get(['key'], ({ key }) => {
const script = document.createElement('script')
script.textContent = `require('electron').ipcRenderer.send('storage-success', ${JSON.stringify(key)})`
document.documentElement.appendChild(script)
})
})

View file

@ -0,0 +1,15 @@
{
"name": "chrome-storage",
"version": "1.0",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["main.js"],
"run_at": "document_start"
}
],
"permissions": [
"storage"
],
"manifest_version": 2
}

View file

@ -0,0 +1,12 @@
/* global chrome */
chrome.webRequest.onBeforeSendHeaders.addListener(
(details) => {
if (details.requestHeaders) {
details.requestHeaders.foo = 'bar';
}
return { cancel: false, requestHeaders: details.requestHeaders };
},
{ urls: ['*://127.0.0.1:*'] },
['blocking']
);

View file

@ -0,0 +1,10 @@
{
"name": "chrome-webRequest",
"version": "1.0",
"background": {
"scripts": ["background.js"],
"persistent": true
},
"permissions": ["webRequest", "webRequestBlocking", "<all_urls>"],
"manifest_version": 2
}

View file

@ -0,0 +1,9 @@
/* global chrome */
chrome.webRequest.onBeforeRequest.addListener(
(details) => {
return { cancel: true };
},
{ urls: ['*://127.0.0.1:*'] },
['blocking']
);

View file

@ -0,0 +1,10 @@
{
"name": "chrome-webRequest",
"version": "1.0",
"background": {
"scripts": ["background.js"],
"persistent": true
},
"permissions": ["webRequest", "webRequestBlocking", "<all_urls>"],
"manifest_version": 2
}

View file

@ -0,0 +1 @@
document.documentElement.style.backgroundColor = 'red';

View file

@ -0,0 +1,14 @@
{
"name": "document-end",
"version": "1.0",
"description": "",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["end.js"],
"run_at": "document_end"
}
],
"manifest_version": 2
}

View file

@ -0,0 +1 @@
document.body.style.backgroundColor = 'red';

View file

@ -0,0 +1,14 @@
{
"name": "document-idle",
"version": "1.0",
"description": "",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["idle.js"],
"run_at": "document_idle"
}
],
"manifest_version": 2
}

View file

@ -0,0 +1,14 @@
{
"name": "document-start",
"version": "1.0",
"description": "",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["start.js"],
"run_at": "document_start"
}
],
"manifest_version": 2
}

View file

@ -0,0 +1 @@
document.documentElement.style.backgroundColor = 'red';

View file

@ -0,0 +1,3 @@
#all_frames_disabled {
background: blue;
}

View file

@ -0,0 +1,3 @@
#all_frames_enabled {
background: red;
}

View file

@ -0,0 +1,14 @@
const { ipcRenderer, webFrame } = require('electron');
if (process.isMainFrame) {
// https://github.com/electron/electron/issues/17252
ipcRenderer.on('executeJavaScriptInFrame', (event, frameRoutingId, code, responseId) => {
const frame = webFrame.findFrameByRoutingId(frameRoutingId);
if (!frame) {
throw new Error(`Can't find frame for routing ID ${frameRoutingId}`);
}
frame.executeJavaScript(code, false).then(result => {
event.sender.send(`executeJavaScriptInFrame_${responseId}`, result);
});
});
}

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
This is a frame, is has one child
<iframe src="./frame.html"></iframe>
<div id="all_frames_enabled"></div>
<div id="all_frames_disabled"></div>
</body>
</html>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
This is a frame, it has no children
<div id="all_frames_enabled"></div>
<div id="all_frames_disabled"></div>
</body>
</html>

View file

@ -0,0 +1,19 @@
{
"name": "content-script-test",
"version": "1.0",
"content_scripts": [
{
"matches": ["<all_urls>"],
"css": ["all_frames-enabled.css"],
"run_at": "document_start",
"all_frames": true
},
{
"matches": ["<all_urls>"],
"css": ["all_frames-disabled.css"],
"run_at": "document_start",
"all_frames": false
}
],
"manifest_version": 2
}

View file

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>foo</title>
<!-- can't be inline, because of CSP -->
<script src="foo.js"></script>
</head>
</html>

View file

@ -0,0 +1,2 @@
// eslint-disable-next-line
chrome.devtools.panels.create('Foo', 'icon.png', 'index.html')

View file

@ -0,0 +1,5 @@
<!doctype html>
<body>
a custom devtools extension
<!-- can't be inline because of CSP -->
<script src="index.js"></script>

View file

@ -0,0 +1,4 @@
// eslint-disable-next-line
chrome.devtools.inspectedWindow.eval(`require("electron").ipcRenderer.send("winning")`, (result, exc) => {
console.log(result, exc);
});

View file

@ -0,0 +1,6 @@
{
"name": "foo",
"version": "1.0",
"devtools_page": "foo.html",
"manifest_version": 2
}

View file

@ -0,0 +1,5 @@
/* eslint-disable no-undef */
chrome.runtime.onMessage.addListener((message, sender, reply) => {
window.receivedMessage = message;
reply({ message, sender });
});

View file

@ -0,0 +1,6 @@
/* eslint-disable no-undef */
chrome.runtime.sendMessage({ some: 'message' }, (response) => {
const script = document.createElement('script');
script.textContent = `require('electron').ipcRenderer.send('bg-page-message-response', ${JSON.stringify(response)})`;
document.documentElement.appendChild(script);
});

View file

@ -0,0 +1,7 @@
/* global chrome */
window.completionPromise = new Promise((resolve) => {
window.completionPromiseResolve = resolve;
});
chrome.runtime.sendMessage({ some: 'message' }, (response) => {
window.completionPromiseResolve(chrome.extension.getBackgroundPage().receivedMessage);
});

View file

@ -0,0 +1,16 @@
{
"name": "lazy-background-page",
"version": "1.0",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content_script.js"],
"run_at": "document_start"
}
],
"manifest_version": 2
}

View file

@ -0,0 +1 @@
<script src="get-background-page.js"></script>

View file

@ -0,0 +1 @@
<script src="runtime-get-background-page.js"></script>

View file

@ -0,0 +1,9 @@
/* global chrome */
window.completionPromise = new Promise((resolve) => {
window.completionPromiseResolve = resolve;
});
chrome.runtime.sendMessage({ some: 'message' }, (response) => {
chrome.runtime.getBackgroundPage((bgPage) => {
window.completionPromiseResolve(bgPage.receivedMessage);
});
});

View file

@ -0,0 +1,8 @@
{
"name": "load-error",
"version": "1.0",
"icons": {
"16": "/images/error.png"
},
"manifest_version": 2
}

View file

@ -0,0 +1 @@
console.log('oh no where is my manifest');

View file

@ -0,0 +1 @@
console.log('service worker installed');

View file

@ -0,0 +1,9 @@
{
"name": "MV3 Service Worker",
"description": "Test for extension service worker support.",
"version": "1.0",
"manifest_version": 3,
"background": {
"service_worker": "background.js"
}
}

View file

@ -0,0 +1 @@
/* eslint-disable no-undef */

View file

@ -0,0 +1,9 @@
{
"name": "persistent-background-page",
"version": "1.0",
"background": {
"scripts": ["background.js"],
"persistent": true
},
"manifest_version": 2
}

View file

@ -0,0 +1 @@
document.documentElement.style.backgroundColor = 'red';

View file

@ -0,0 +1,12 @@
{
"name": "red-bg",
"version": "1.0",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["main.js"],
"run_at": "document_start"
}
],
"manifest_version": 2
}

View file

@ -0,0 +1,2 @@
<!doctype html>
<body>ui page loaded ok</body>

View file

@ -0,0 +1,6 @@
{
"name": "ui-page",
"version": "1.0",
"manifest_version": 2,
"permissions": ["<all_urls>"]
}

View file

@ -0,0 +1 @@
<script src="get-background-page.js"></script>

View file

@ -0,0 +1 @@
<script src="script.js"></script>

View file

@ -0,0 +1 @@
document.write('script loaded ok');