Re: [webcomponents] Inheritance in Custom Elements (Was Proposal for Cross Origin Use Case and Declarative Syntax)

On Tue, Dec 10, 2013 at 8:00 AM, Anne van Kesteren <annevk@annevk.nl> wrote:

> On Tue, Dec 10, 2013 at 3:54 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote:
> > On 12/10/13 10:34 AM, Anne van Kesteren wrote:
> >> E.g. the <dialog>'s close() method won't work as defined
> >> right now on a subclass of HTMLDialogElement.
> >
> > Why not?
> >
> > I assumed that actual ES6 subclassing, complete with invoking the right
> > superclass @@create, would in fact produce an object for which this would
> > work correctly.  At least any situation that doesn't lead to that is a
> > UA/spec bug.
>
> Well for one because the specification at the moment talks about a
> <dialog> element and does not consider the case where it may have been
> subclassed. The "pending dialog stack" is also for <dialog> elements
> only, not exposed in any way, etc. The way the platform is set up at
> the moment is very defensive and not very extensible.
>
>
When extending native elements like that you use type extensions, so it'd
be <dialog is="my-subclass"> and the tagName is still DIALOG. Registering
something that extends HTMLDialogElement but isn't a type extension of
"dialog" does not work, in the same way that doing __proto__ =
HTMLDivElement doesn't magically make you into a <div> today.

- E

Received on Tuesday, 10 December 2013 20:25:50 UTC