Re: [selectors-api] NSResolver moving nodes between documents

On Fri, 28 Mar 2008 18:32:47 +0100, Boris Zbarsky <bzbarsky@mit.edu> wrote:

Bjoern Hoehrmann wrote:
>>> What is the correct behavior if a lookupNamespaceURI call moves nodes  
>>> between documents?  In particular, what is the correct behavior is the  
>>> Element node the call is being made on is moved to a different  
>>> document during the lookupNamespaceURI call (using adoptNode)?
>>  Do I understand correctly that this is something scripts should not do?
>
> Correct.  I think it's worth taking the HTML5 approach of defining both  
> what documents are conforming and what to do with the non-conforming  
> ones....

Agree.

>> I would be rather reluctant to define this so long as we don't also de-
>> fine when and how many times the resolver is invoked, since depending on
>> that, the results would not necessarily become more predictable.
>
> Indeed.

Sorry, I didn't understand Björn's logic in that quote.

What I've understood: it's proposed that if the custom lookupNamespaceURI  
function moves nodes between documents, the implementation trying to use  
the NSResolver (may|must) throw an error. I don't see why we can't specify  
that unless we specify "when and how many times the resolver is invoked".

>> Would it be acceptable to include a general provision to the effect that
>> if an implementation detects that resolvers manipulate documents in some
>> undesirable way, they may throw an exception?
>
> I would be happy with that, yes.

I would not. It sounds like a vague statement that will cause  
incompatibilities because implementors will make different choices. I'd  
rather insert this somewhere suitable:

"If the custom lookupNamespaceURI function moves nodes between documents,  
the implementation trying to use the NSResolver MUST throw an error."



-- 
Hallvord R. M. Steen
Core QA JavaScript tester, Opera Software
http://www.opera.com/
Opera - simply the best Internet experience

Received on Monday, 14 April 2008 14:44:49 UTC