The default allowScriptAccess value for polyfilled elements has been set
to samedomain. This means that it's true if the SWF file has the same
domain as the player website and false otherwise.
To do this, a new isPolyfillElement parameter is given to the
RufflePlayer::load method.
Previously, the Ruffle configuration options weren't working properly
for polyfilled elements.
A polyfilled element can have specific configuration options which
overwrite the more general Ruffle configuration settings.
But the code handling those specific configuration options has
previously set some of them to default values if they haven't been
provided, therefore overwriting the more general configuration settings.
This has been fixed. A getPolyfillOptions function has been created and
returns a URLLoadOptions object, containing only the options that have
been set for the respective element. Helper functions have been adapted
to not return any default values anymore.
getPolyfillOptions is now used in all places where polyfilled options
need to be retrieved (therefore reducing duplicated code).
Documentation has been added to clarify that these options must not
contain any default values, since those would overwrite other
configuration settings with a lower priority.
The extension and demo code has been changed to clarify that no default
values are contained in the element configuration options.
The RuffleEmbed::attributeChangedCallback method has previously loaded
an SWF file only with the parameters and base options. This has been
fixed as well since it now also uses getPolyfillOptions.
When using RuffleObject::connectedCallback to load an SWF file, setting
an element config option to "" hasn't worked for most config options
before either. This has been fixed as well by using the new
getPolyfillOptions function.
The default WindowMode value of the default Ruffle web config has been
set to Window (as it is in the desktop version and according to the
documentation). It has previously been set to Opaque (which causes the
same functionality).
The previous method, which used `coerce_to_string`, calls `toString` on the object,
which has special handling for simple content, which is not used here.
* web: Improve styling of extension pop-up menu
* web: Improve styling of extension settings page
* web: Improve styling of extension player
* web: Make styling more consistent across browsers
* web: Run eslint, fix some problems
* web: Move version text near top of pop-up menu, add to settings menu
* web: Improve logo hover bounds in pop-up and settings
* web: Improve styling of extension status indicator
* web: Update extension pop-up text strings
* web: Misc. sizing/padding changes to extension UI
* web: chore: Add a stylelint exception for #backgroundColor in player.css
Because it's not kebab-case, to match the keys of the metadata object in JS.
---------
Co-authored-by: TÖRÖK Attila <torokati44@gmail.com>