Re: An import statement for Web IDL

Cameron McCormack:
> > I propose that we have an import statement that takes a (possibly 
> > relative) URL. …

Ian Hickson:
> I'd rather we just implicitly said that all IDL files were imported.

What exactly would “all IDL files” include?

> The problem with import statements is that (a) they require that specs 
> actually provide .idl files,

I see this not as a problem, but as a convenience to the implementor.

> and (b) they force a particular file organisation structure on
> implementations.

I don’t think this is the case.  Implementors are of course welcome to
split up IDL as they see fit for their build processes.

> In practice WebKit and Gecko both have one .idl per interface, more or
> less, so they couldn't use these import statements anyway.

I don’t think it’s true that they couldn’t use these import statements,
but I agree it might be less convenient, since those files will need to
import the right other IDL files.


My main desire is to be able to declare certain IDL fragments as non-
conforming.  For example, taking this interface from HTML 5:

  interface HTMLIFrameElement : HTMLElement {
             attribute DOMString src;
             attribute DOMString name;
             attribute DOMString sandbox;
             attribute boolean seamless;
             attribute DOMString width;
             attribute DOMString height;
    readonly attribute Document contentDocument;
    readonly attribute WindowProxy contentWindow;
  };

Taken in isolation, the names HTMLElement, Document and WindowProxy are
undefined.  There needs to be some way of identifying what those names
resolve to.

One way might be to state that the above IDL fragment, even in
isolation, is a conforming IDL fragment, but then to define another
conformance class (“conforming set of resolved IDL fragments” or
something), for which those names do need to resolve to appropriate
constructs.  The set of IDL fragments to use could be defined in the
HTML 5 spec as prose (identifying all of the fragments in the HTML 5
spec, plus the relevant ones for DOM Core/Events/Views/etc. interfaces).

-- 
Cameron McCormack ≝ http://mcc.id.au/

Received on Tuesday, 30 June 2009 01:08:07 UTC