Define client and presenter for follow
This commit is contained in:
parent
17dc2bb5ec
commit
a88324acd9
9 changed files with 358 additions and 179 deletions
|
@ -1,14 +1,16 @@
|
|||
import { Message, valueOf } from '../shared/messages';
|
||||
|
||||
export type WebMessageSender = Window | MessagePort | ServiceWorker | null;
|
||||
export type WebExtMessageSender = browser.runtime.MessageSender;
|
||||
|
||||
export default class MessageListener {
|
||||
onWebMessage(
|
||||
listener: (msg: Message, sender: WebMessageSender) => void,
|
||||
listener: (msg: Message, sender: Window) => void,
|
||||
) {
|
||||
window.addEventListener('message', (event: MessageEvent) => {
|
||||
let sender = event.source;
|
||||
if (!(sender instanceof Window)) {
|
||||
return;
|
||||
}
|
||||
let message = null;
|
||||
try {
|
||||
message = JSON.parse(event.data);
|
||||
|
|
Reference in a new issue