On Apr 5, 2006, at 2:40 AM, Jonas Sicking wrote:
Ian Hickson wrote:
In any case if we want to _allow_ Document to implement
DocumentWindow even when there's no Window, we should just require
it, and be done with it. I don't want to end up in a situation
where some browsers have it and some browsers don't.
We definitely want to allow all Documents to implement
DocumentWindow. I don't want to have two versions of every document
class and have to worry about constructing the right one.
I agree that it should be allowed. But I am not sure it should be
required, and I can't imagine how to test an implementation against
such a conformance requirement, as there is no exhaustive list of
ways to get a Document and nothing stops UAs from inventing new ones.
Another argument is that it would be useful to be able to stick
such a Document inside a window (using some as-of-yet undefined
api) and have it displayed and at that point the Document should
definitely implement DocumentWindow.
Agree on both of these.
This doesn't say anything about what the properties of an non-
presented window should be though. I agree that it might be bad to
*require* defaultView to be null unless we can come up with a good
reason for it.
It has some slight benefits:
- Easy to tell whether a document is being presented.
- One less thing for UAs to potentially disagree on.
The real question is, is there a use case for this? The only use case
that would be affected is the ability to have a Document that
implements DocumentWindow and has a default view that does not
implement Window. If its defaultView is a Window, then arguably it is
being presented in a browsing context, however invisibly. So is that
a particularly compelling use, to have a defaultView that isn't a
Window in an implementation that supports Window?
Maybe what we should say is that "defaultView *can* be null, for
example if the document doesn't have a presentation"?
It can be null *only* in the case that the document doesn't have a
presentation (or more specifically isn't being presented in a
browsing context), we certainly don't want to open the doors to it
being null on a window's document.
To summarize options:
1) Require any non-presented DocumentWindow to have a null defaultView.
2) Allow a non-presented DocumentWindow to have any AbstractView or
null as the defaultView (essentially, we disclaim stating a
requirement on non-presented documents).
3) Forbid any non-presented Document to implement DocumentWindow
(seems too restrictive).
Regards,
Maciej