ruffle/web/packages/extension/src/ruffle.ts

42 lines
1008 B
TypeScript
Raw Normal View History

import { PublicAPI, SourceAPI } from "ruffle-core";
window.RufflePlayer = PublicAPI.negotiate(
window.RufflePlayer!,
"extension",
new SourceAPI("extension")
);
let ID: string | null = null;
if (
document.currentScript !== undefined &&
document.currentScript !== null &&
"src" in document.currentScript &&
document.currentScript.src !== ""
) {
try {
ID = new URL(document.currentScript.src).searchParams.get("id");
2021-03-13 13:51:36 +00:00
} catch (_) {
// ID remains null.
2021-03-13 13:51:36 +00:00
}
}
if (ID) {
window.addEventListener("message", (event) => {
// We only accept messages from ourselves.
if (event.source !== window) {
return;
}
2020-12-14 10:29:20 +00:00
const { to, index, data } = event.data;
if (to === `ruffle_page${ID}`) {
// Ping back.
const message = {
to: `ruffle_content${ID}`,
index,
data,
};
window.postMessage(message, "*");
}
2020-12-14 10:29:20 +00:00
});
}