W3C home > Mailing lists > Public > public-html-bugzilla@w3.org > October 2010

[Bug 11032] HTMLPropertiesCollection shouldn't be callable

From: <bugzilla@jessica.w3.org>
Date: Thu, 14 Oct 2010 22:15:01 +0000
To: public-html-bugzilla@w3.org
Message-Id: <E1P6W4j-00050o-Qv@jessica.w3.org>
http://www.w3.org/Bugs/Public/show_bug.cgi?id=11032

--- Comment #3 from Cameron McCormack <cam@mcc.id.au> 2010-10-14 22:15:01 UTC ---
Technically, you can't override any of the special operations in Web IDL.  (It
says that it's undefined what happens if a host object implements two
interfaces with a name getter, for example.)  Seems like that's needed for
various interfaces in HTML5.  Filed
http://www.w3.org/Bugs/Public/show_bug.cgi?id=11056.

(In reply to comment #2)
> Maybe you can remove the callable from HTMLCollection and mint a new interface
> that inherits from HTMLCollection (or implements HTMLCollection?) with
> [NoInterfaceObject] that has callable?

Having an HTMLCallableCollection that implements HTMLCollection wouldn't work,
due to the way mixin interfaces are currently specced -- you wouldn't be able
to add a property to HTMLCollection.prototype and see that reflected on objects
implementing interfaces inheriting from HTMLCallableCollection.

But minting a new one to place in the inheritance chain should work:

  interface HTMLCollection { ... }

  [NoInterfaceObject]
  interface HTMLCallableCollection : HTMLCollection {
    caller ...
  }

  interface HTMLAllCollection : HTMLCallableCollection { ... }

  interface HTMLPropertiesCollection : HTMLCollection { ... }

Now, there still would exist an interface prototype object for
HTMLCallableCollection.  And if you didn't want that, putting [Supplemental] on
it wouldn't work; you'd need a new extended attribute to mean that interfaces
that inherit from it get all of its properties.

Or, another way:

  interface HTMLCollection { ... }

  [NoInterfaceObject]
  interface HTMLCollectionCaller {
    caller ...
  }

  interface HTMLAllCollection : HTMLCollection {
    ...
  }
  HTMLAllCollection implements HTMLCollectionCaller;

  interface HTMLPropertiesCollection : HTMLCollection { }

The interface prototype object for HTMLCollectionCaller need not even exist,
since it's not accessible anywhere.

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Thursday, 14 October 2010 22:15:03 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 16:30:59 UTC