Brian Grinstead
2018-10-12 17:56:06 UTC
Summary: Motion is a key component of modern web design, and <marquee> is the premier... just kidding. Gecko currently ships <marquee> as an HTMLDivElement with the web-exposed properties attached via in-content XBL [0][1]. As part of the process of removing in-content XBL, I intend to implement and ship HTMLMarqueeElement.
This will allow us to expose properties on the element through WebIDL instead of through `<xbl:property exposeToUntrustedContent="true">`. This will lead to behavior changes with the current implementation (https://bugzilla.mozilla.org/show_bug.cgi?id=1425874#c10), although those changes will generally bring Firefox into compliance with the spec and with other implementations - many currently failing web platform tests should start passing [2][3].
The event handlers (onbounce, onfinish, onstart) will still be implemented in XBL for the time being - the actual XBL removal will happen in subsequent bugs.
There's an open question about how to treat the `loop` property. As outlined at https://bugzilla.mozilla.org/show_bug.cgi?id=1425874#c14, the spec defines a no-op when setting `loop` to a number that is <= 0 and not -1, which is similar to what our current implementation does. In this case Chrome, Safari, and Edge throw, so we may want to adapt this behavior.
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1425874
Link to standard: https://html.spec.whatwg.org/multipage/obsolete.html#the-marquee-element
Platform coverage: All
Target Release: 65
Preference behind which this will be implemented: None
Is this feature enabled by default in sandboxed iframes? Yes
DevTools bug: None
Do other browser engines implement this?
- Chrome: since version 1
- Edge: yes
- IE: since version 2
- Safari: since version 1.2
web-platform-tests: https://github.com/web-platform-tests/wpt/tree/master/html/obsolete/requirements-for-implementations/the-marquee-element-0
Is this feature restricted to secure contexts? No
Brian
[0]: https://searchfox.org/mozilla-central/source/dom/html/HTMLDivElement.cpp
[1]: https://searchfox.org/mozilla-central/search?q=xbl-marquee.xml&path=
[2]: https://searchfox.org/mozilla-central/rev/28fe656de6a022d1fc01bbd3811023fca99cf223/testing/web-platform/meta/html/dom/interfaces.https.html.ini#628-746
[3]: https://searchfox.org/mozilla-central/rev/1ce4e8a5601da8e744ca6eda69e782318afab54d/testing/web-platform/meta/html/dom/reflection-obsolete.html.ini#8-2829
This will allow us to expose properties on the element through WebIDL instead of through `<xbl:property exposeToUntrustedContent="true">`. This will lead to behavior changes with the current implementation (https://bugzilla.mozilla.org/show_bug.cgi?id=1425874#c10), although those changes will generally bring Firefox into compliance with the spec and with other implementations - many currently failing web platform tests should start passing [2][3].
The event handlers (onbounce, onfinish, onstart) will still be implemented in XBL for the time being - the actual XBL removal will happen in subsequent bugs.
There's an open question about how to treat the `loop` property. As outlined at https://bugzilla.mozilla.org/show_bug.cgi?id=1425874#c14, the spec defines a no-op when setting `loop` to a number that is <= 0 and not -1, which is similar to what our current implementation does. In this case Chrome, Safari, and Edge throw, so we may want to adapt this behavior.
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1425874
Link to standard: https://html.spec.whatwg.org/multipage/obsolete.html#the-marquee-element
Platform coverage: All
Target Release: 65
Preference behind which this will be implemented: None
Is this feature enabled by default in sandboxed iframes? Yes
DevTools bug: None
Do other browser engines implement this?
- Chrome: since version 1
- Edge: yes
- IE: since version 2
- Safari: since version 1.2
web-platform-tests: https://github.com/web-platform-tests/wpt/tree/master/html/obsolete/requirements-for-implementations/the-marquee-element-0
Is this feature restricted to secure contexts? No
Brian
[0]: https://searchfox.org/mozilla-central/source/dom/html/HTMLDivElement.cpp
[1]: https://searchfox.org/mozilla-central/search?q=xbl-marquee.xml&path=
[2]: https://searchfox.org/mozilla-central/rev/28fe656de6a022d1fc01bbd3811023fca99cf223/testing/web-platform/meta/html/dom/interfaces.https.html.ini#628-746
[3]: https://searchfox.org/mozilla-central/rev/1ce4e8a5601da8e744ca6eda69e782318afab54d/testing/web-platform/meta/html/dom/reflection-obsolete.html.ini#8-2829