first webextension test
This commit is contained in:
parent
bb5b6d367c
commit
f6f64297aa
10 changed files with 149 additions and 0 deletions
29
e2e/ambassador/src/client/ipc.js
Normal file
29
e2e/ambassador/src/client/ipc.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
import { METHOD_REQUEST, METHOD_RESPONSE } from '../shared/messages';
|
||||
|
||||
const generateId = () => {
|
||||
return Math.random().toString();
|
||||
};
|
||||
|
||||
const send = (message) => {
|
||||
return new Promise((resolve) => {
|
||||
let id = generateId();
|
||||
let callback = (e) => {
|
||||
let packet = e.data;
|
||||
if (e.source !== window || packet.method !== METHOD_RESPONSE ||
|
||||
packet.id !== id) {
|
||||
return;
|
||||
}
|
||||
window.removeEventListener('message', callback);
|
||||
resolve(packet.message);
|
||||
};
|
||||
window.addEventListener('message', callback);
|
||||
|
||||
window.postMessage({
|
||||
id,
|
||||
method: METHOD_REQUEST,
|
||||
message
|
||||
}, window.origin);
|
||||
});
|
||||
};
|
||||
|
||||
export { send };
|
17
e2e/ambassador/src/client/windows.js
Normal file
17
e2e/ambassador/src/client/windows.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
import { WINDOWS_CREATE, WINDOWS_REMOVE } from '../shared/messages';
|
||||
import * as ipc from './ipc';
|
||||
|
||||
const create = () => {
|
||||
return ipc.send({
|
||||
type: WINDOWS_CREATE
|
||||
});
|
||||
};
|
||||
|
||||
const remove = (windowId) => {
|
||||
return ipc.send({
|
||||
type: WINDOWS_REMOVE,
|
||||
windowId,
|
||||
});
|
||||
};
|
||||
|
||||
export { create, remove };
|
Reference in a new issue