Re: Fallout of non-encapsulated shadow trees

On Tue, Jul 1, 2014 at 8:52 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote:
> On 7/1/14, 9:13 PM, Brendan Eich wrote:
>> Are you sure? Because Gecko has used XBL (1) to implement, e.g., <input
>> type=file>, or so my aging memory says.
>
> We use XBL to implement <marquee>.

I'm working on using web components to implement <marquee> in Blink:

https://github.com/abarth/marquee

I've studied the XBL implementation of <marquee> in Gecko, and it does
leak some implementation details.  As a simple example,
alert(document.createElement('marquee')) in Firefox says "[object
HTMLDivElement]" because the XBL implementation uses a div.

The approach I'm using is roughly the one outlined by Maciej in [1].
The most challenging aspect by far is isolating the script interface
inside and outside the component.

If you ignore script isolation, we already know that the current
design of shadow DOM can provide isolation by twiddling some internal
bits because we use shadow DOM in the engine to implement <details>,
<keygen>, <video>, <progress>, and several other elements.  We could
expose an API to authors that would let them twiddle those same bits,
but I'm not sure we should do that without providing script isolation
of some form.

My sense from following this discussion is that there's been a lot of
talking about this subject and not very much coding.  Hopefully I'll
learn something interesting by writing code that I can report back to
this group.

Kindly,
Adam

[1] http://lists.w3.org/Archives/Public/public-webapps/2014JulSep/0024.html

Received on Wednesday, 2 July 2014 15:08:37 UTC