<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>11032</bug_id>
          
          <creation_ts>2010-10-13 23:47:46 +0000</creation_ts>
          <short_desc>HTMLPropertiesCollection shouldn&apos;t be callable</short_desc>
          <delta_ts>2011-08-04 05:05:34 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>HTML WG</product>
          <component>LC1 HTML Microdata (editor: Ian Hickson)</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron McCormack">cam</reporter>
          <assigned_to name="Ian &apos;Hixie&apos; Hickson">ian</assigned_to>
          <cc>annevk</cc>
    
    <cc>ian</cc>
    
    <cc>mike</cc>
    
    <cc>public-html-admin</cc>
    
    <cc>public-html-wg-issue-tracking</cc>
          
          <qa_contact name="HTML WG Bugzilla archive list">public-html-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41274</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack">cam</who>
    <bug_when>2010-10-13 23:47:46 +0000</bug_when>
    <thetext>It would be good if HTMLPropertiesCollection weren&apos;t callable.  One way to achieve that would be to make HTMLPropertiesCollection not inherit from HTMLCollection, and defined length and item explicitly on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41335</commentid>
    <comment_count>1</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2010-10-14 09:37:49 +0000</bug_when>
    <thetext>I need another way. They didn&apos;t inherit before, and people asked me to make them inherit, so they could do overrides on all collections at once, etc.

Is there some way I can make this happen just for implementations of HTMLCollection directly, or whatever the requirement is? Some way to override caller on a derived interface? Anything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41380</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Pieters">zcorpan</who>
    <bug_when>2010-10-14 20:23:14 +0000</bug_when>
    <thetext>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?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41387</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron McCormack">cam</who>
    <bug_when>2010-10-14 22:15:01 +0000</bug_when>
    <thetext>Technically, you can&apos;t override any of the special operations in Web IDL.  (It says that it&apos;s undefined what happens if a host object implements two interfaces with a name getter, for example.)  Seems like that&apos;s needed for various interfaces in HTML5.  Filed http://www.w3.org/Bugs/Public/show_bug.cgi?id=11056.

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

Having an HTMLCallableCollection that implements HTMLCollection wouldn&apos;t work, due to the way mixin interfaces are currently specced -- you wouldn&apos;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&apos;t want that, putting [Supplemental] on it wouldn&apos;t work; you&apos;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&apos;s not accessible anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41450</commentid>
    <comment_count>4</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2010-10-16 12:32:05 +0000</bug_when>
    <thetext>Or we could just duplicate the interface definitions (one for HTMLCollection and one for HTMLAllCollection) and tie the definitions of the members. Might be the most straightforward.

Or something like a [DisableCallers] attribute on the interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43550</commentid>
    <comment_count>5</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2010-12-26 20:04:01 +0000</bug_when>
    <thetext>I&apos;m leaning towards just letting it be callable, personally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44221</commentid>
    <comment_count>6</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-01-11 20:29:38 +0000</bug_when>
    <thetext>EDITOR&apos;S RESPONSE: This is an Editor&apos;s Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Rejected
Change Description: no spec change
Rationale: I&apos;m just going to let it be callable, for consistency with the other collections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52954</commentid>
    <comment_count>7</comment_count>
    <who name="Michael[tm] Smith">mike</who>
    <bug_when>2011-08-04 05:05:34 +0000</bug_when>
    <thetext>mass-move component to LC1</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>