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

46 lines
1.3 KiB
TypeScript
Raw Normal View History

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