blob: 669a2e2edd923aa51c44e06215cfd66b2c19f727 (
plain)
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
|
// Sends to Window |w| the object |{type, param}|.
function sendMessage(w, type, param) {
w.postMessage({"type": type, "param": param}, "*");
}
// Returns a |Promise| that gets resolved with the event object when |target|
// receives an event of type |event_type|.
function getEvent(event_type, target) {
return new Promise(resolve => {
target.addEventListener(event_type, e => resolve(e), {once: true});
});
}
// Returns a |Promise| that gets resolved with |event.data| when |window|
// receives from |source| a "message" event whose |event.data.type| matches the string
// |message_data_type|.
function getMessageData(message_data_type, source) {
return new Promise(resolve => {
function waitAndRemove(e) {
if (e.source != source || !e.data || e.data.type != message_data_type)
return;
window.removeEventListener("message", waitAndRemove);
resolve(e.data);
}
window.addEventListener("message", waitAndRemove);
});
}
|