W3C home > Mailing lists > Public > public-script-coord@w3.org > October to December 2012

Re: XMLDocument and Document.location and WebIDL spec don't play nice together

From: Cameron McCormack <cam@mcc.id.au>
Date: Wed, 12 Dec 2012 13:37:30 +1100
Message-ID: <50C7EDEA.2060407@mcc.id.au>
To: Boris Zbarsky <bzbarsky@MIT.EDU>
CC: "public-script-coord@w3.org" <public-script-coord@w3.org>, Anne van Kesteren <annevk@annevk.nl>
On 7/12/12 5:51 PM, Boris Zbarsky wrote:
> http://dom.spec.whatwg.org/#xmldocument says:
>
>    interface XMLDocument : Document {};
>
> http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#the-document-object
> says:
>
>    [PutForwards=href, Unforgeable] readonly attribute Location? location;
>
> and http://dev.w3.org/2006/webapi/WebIDL/#Unforgeable says:
>
>    The [Unforgeable] extended attribute [....] also MUST NOT appear on an
>    attribute on interface A if there exists another interface B that has
>    A as an inherited interface.
>
> Per above, XMLDocument has Document as an inherited interface, so the
> while thing is not valid WebIDL.
>
> I'm not sure why WebIDL has the above requirement, but removing it seems
> like the simplest way forward here, unless it creates some sort of
> security problem I'm missing.  Cameron?

I think I was concerned about the effect of the attribute (when when 
annotated with [Unforgeable]) being on the instance "jumping" the 
intervening interface.  If XMLDocument defined its own location 
attribute, then it would be strange that on the XMLDocument object, 
getting "location" would get the Document's one.

But since it's probably not a good idea anyway to be overriding IDL 
attributes on inheriting interfaces, I don't see a real problem with 
lifting the restriction.  I've replaced the restriction with a 
requirement that inheriting interfaces don't declare an attribute with 
the same identifier:

http://dev.w3.org/cvsweb/2006/webapi/WebIDL/Overview.xml.diff?r1=1.589;r2=1.590;f=h
Received on Wednesday, 12 December 2012 02:38:04 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 May 2013 19:30:08 UTC