[NavigationTiming] Unclear note about "maintain the DOM structure of the document in memory"

The specification currently says (section 5.1):

   Some user agents maintain the DOM structure of the document in
   memory during navigation operations such as forward and backward.
   In those cases, the window.performance.timing and
   window.performance.navigation objects must not be altered during
   the navigation.

I don't quite understand what this means, and in particular I can't tell 
whether what Gecko actually does is conformant.  On the face of it, this 
says that if I have page A loaded and then I navigate to page B while 
saving the DOM of page A, then the window.performance.timing after the 
navigation must be the same as before the navigation.  But if I _don't_ 
save the DOM of page A, then it can be different.  I have a hard time 
believing this is what was meant.

Is the point simply that if I have a page and I save the 
window.performance.timing for that page in a variable in another Window, 
navigate away from the page, and then go back in history that the object 
identity of the resulting window.performance.timing matches what I had 
before I navigated away?  That seems to be a natural consequence in an 
implementation that saves the Window when it "saves the DOM", but I 
guess one could do something where the "DOM" is preserved but the Window 
is not.  In that case, "maintain the DOM structure of the document in 
memory" probably needs to be defined by this specification for this 
requirement to mean anything.  In particular, I doubt that it actually 
matters that the saving is done "in memory" as opposed to "on disk" or 
"in the cloud"...

-Boris

Received on Sunday, 24 June 2012 05:52:04 UTC