2020-05-17 21:31:43 +00:00
|
|
|
const {
|
2020-05-12 22:24:41 +00:00
|
|
|
FLASH_MIMETYPE,
|
|
|
|
FUTURESPLASH_MIMETYPE,
|
|
|
|
FLASH7_AND_8_MIMETYPE,
|
|
|
|
FLASH_MOVIE_MIMETYPE,
|
|
|
|
is_swf_filename,
|
|
|
|
RufflePlayer,
|
2020-05-17 21:31:43 +00:00
|
|
|
} = require("./ruffle-player.js");
|
|
|
|
const { register_element } = require("./register-element");
|
2019-08-22 01:02:43 +00:00
|
|
|
|
2020-05-17 21:31:43 +00:00
|
|
|
module.exports = class RuffleEmbed extends RufflePlayer {
|
2019-08-22 01:02:43 +00:00
|
|
|
constructor(...args) {
|
|
|
|
let self = super(...args);
|
|
|
|
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
connectedCallback() {
|
2019-08-25 19:46:38 +00:00
|
|
|
super.connectedCallback();
|
2019-08-26 04:27:59 +00:00
|
|
|
this.stream_swf_url(this.attributes.src.value);
|
2019-08-22 01:02:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
get src() {
|
2019-09-14 19:40:19 +00:00
|
|
|
return this.attributes.src.value;
|
2019-08-22 01:02:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
set src(srcval) {
|
2019-09-14 19:40:19 +00:00
|
|
|
this.attributes.src = srcval;
|
2019-08-22 01:02:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static get observedAttributes() {
|
2020-04-28 13:10:41 +00:00
|
|
|
return ["src", "width", "height"];
|
2019-08-22 01:02:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
attributeChangedCallback(name, oldValue, newValue) {
|
2019-08-25 19:46:38 +00:00
|
|
|
super.attributeChangedCallback(name, oldValue, newValue);
|
2020-04-28 13:10:41 +00:00
|
|
|
console.log(name + " " + oldValue + " " + newValue);
|
2019-08-26 04:27:59 +00:00
|
|
|
if (this.isConnected && name === "src") {
|
|
|
|
this.stream_swf_url(this.attributes.src.value);
|
2019-08-22 01:02:43 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static is_interdictable(elem) {
|
2020-05-12 06:33:46 +00:00
|
|
|
if (!elem.src) {
|
2020-05-12 22:24:41 +00:00
|
|
|
return false;
|
2020-05-12 06:33:46 +00:00
|
|
|
}
|
2020-05-12 22:24:41 +00:00
|
|
|
if (
|
|
|
|
elem.type === FLASH_MIMETYPE ||
|
|
|
|
elem.type === FUTURESPLASH_MIMETYPE ||
|
|
|
|
elem.type == FLASH7_AND_8_MIMETYPE ||
|
|
|
|
elem.type == FLASH_MOVIE_MIMETYPE
|
|
|
|
) {
|
2020-03-21 01:27:59 +00:00
|
|
|
return true;
|
|
|
|
} else if (elem.type === undefined || elem.type === "") {
|
|
|
|
return is_swf_filename(elem.src);
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
2019-08-22 01:02:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static from_native_embed_element(elem) {
|
2019-10-15 12:55:13 +00:00
|
|
|
let external_name = register_element("ruffle-embed", RuffleEmbed);
|
|
|
|
let ruffle_obj = document.createElement(external_name);
|
2020-03-26 09:54:35 +00:00
|
|
|
ruffle_obj.copy_element(elem);
|
2019-08-22 01:02:43 +00:00
|
|
|
|
|
|
|
return ruffle_obj;
|
|
|
|
}
|
2020-05-17 21:31:43 +00:00
|
|
|
};
|