[webkit-dev] Multiple inheritance in the DOM

Alan Stearns stearns at adobe.com
Wed Jul 25 18:14:26 PDT 2012

On 7/25/12 6:12 PM, "Sam Weinig" <sam at webkit.org> wrote:

>On Jul 25, 2012, at 5:37 PM, Sam Weinig <sam at webkit.org> wrote:
>> On Jul 25, 2012, at 5:13 PM, Alan Stearns <stearns at adobe.com> wrote:
>>> On 7/25/12 4:49 PM, "Kentaro Hara" <haraken at chromium.org> wrote:
>>>>>>>> A) Should we push back on the folks writing the CSS Regions
>>>>>>>> specification to avoid using multiple inheritance?  As far as I
>>>>>>> know,
>>>>>>>> this is the only instance of multiple inheritance in the platform.
>>>>>>>> Historically, EventTarget used multiple inheritance, but that's
>>>>>>>> fixed in DOM4 [4].
>>>> If it is possible to avoid the multiple inheritance, that would be
>>> From the WebIDL side, it's not strictly multiple inheritance. It's
>>> a supplemental interface that more than one object can implement. None
>>> the members of the Region interface can clash with any of the members
>>> the object that implements it.
>>> Right now Elements can become CSS Regions, but in the future other
>>> will be able to become CSS Regions. As far as I know, the correct way
>>> specify this kind of relation is with WebIDL supplemental interfaces.
>>> rather figure out the correct way to add this WebIDL functionality to
>>> WebKit now, than put something else into the spec and WebKit that we'll
>>> have to change later.
>>> Thanks,
>>> Alan
>> What other objects do you envision implementing CSSRegion?  With the
>>spec written the way it is now, I see no reason to make anything
>>virtual, or even have a Region class.  Just implement it in Element.  If
>>need to pull things out for code reuse purposes, we can do that when it
>>comes to that, but right now, there doesn't seem to be a need to
>>complicate things.
>> -Sam
>So, what I said isn't quite right, as I understand you actually can get a
>Region object (via getRegions()).  But, the point of not needing to solve
>the issue right now remains true (though thin).

No, you'll never actually get a Region object. What you get is a
sequence<Region> whose members will all be Elements or some other object
that implements the Region interface.

>That said, adding this type of multiple inheritance to the platform seems
>undesirable, and I think the standards body should work harder to come up
>with a solution that does not require it.

More information about the webkit-dev mailing list