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

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