- From: poot <cvsmail@w3.org>
- Date: Tue, 30 Nov 2010 11:09:44 +0900 (JST)
- To: public-html-diffs@w3.org
hixie: Change pushState() and replaceState() so that they update the
pending state object as well (otherwise, pushState vs
pushState;back;forward would result in different state objects in the
initial popostate which is just silly). (whatwg r5686)
http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.4553&r2=1.4554&f=h
http://html5.org/tools/web-apps-tracker?from=5685&to=5686
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4553
retrieving revision 1.4554
diff -u -d -r1.4553 -r1.4554
--- Overview.html 30 Nov 2010 01:22:50 -0000 1.4553
+++ Overview.html 30 Nov 2010 02:07:49 -0000 1.4554
@@ -43454,6 +43454,21 @@
</li>
+ <li>
+
+ <p>If the <a href="#current-document-readiness">current document readiness</a> is not yet set
+ to the string "complete", let the <code><a href="#document">Document</a></code>'s
+ <a href="#pending-state-object">pending state object</a> be another <a href="#structured-clone">structured
+ clone</a> of the specified <var title="">data</var>. (If there
+ was already a <a href="#pending-state-object">pending state object</a>, the previous one
+ is discarded.)</p>
+
+ <p class="note">This ensures that the <code title="event-popstate"><a href="#event-popstate">popstate</a></code> event that will be fired
+ when the document finally loads will accurately reflect the
+ pushed or replaced state object.</p>
+
+ </li>
+
</ol><p class="note">The <var title="">title</var> is purely
advisory. User agents might use the title in the user interface.</p>
@@ -44747,6 +44762,12 @@
attribute set to true. This event must not bubble, must not be
cancelable, and has no default action.</li>
+ <!-- an interesting thing to test would be to traverse back
+ during onload, before the first pageshow has fired, and then to
+ traverse forward again, and see if we get _two_ pageshows. If so,
+ it indicates that the history traversal task source has a higher
+ priority than the DOM manipulation task source. -->
+
</ol></li>
<li><p>Set <a href="#the-document-s-current-address">the document's current address</a> to the URL
@@ -44792,8 +44813,8 @@
<dt>Otherwise</dt>
- <dd><p>Let the <code><a href="#document">Document</a></code>'s <dfn id="pending-state-object">pending state
- object</dfn> be <var title="">state</var>. (If there was already
+ <dd><p>Let the <code><a href="#document">Document</a></code>'s <a href="#pending-state-object">pending state
+ object</a> be <var title="">state</var>. (If there was already
a <a href="#pending-state-object">pending state object</a>, the previous one is
discarded.)</p>
@@ -44812,7 +44833,10 @@
<li><p>The <a href="#current-entry">current entry</a> is now the <i>specified
entry</i>.</li>
- </ol><p>The <a href="#pending-state-object">pending state object</a> must be initially null.</p>
+ </ol><p>The <dfn id="pending-state-object">pending state object</dfn> is used to keep track of what
+ state object to use in the inital <code title="event-popstate"><a href="#event-popstate">popstate</a></code> event fired by the parser
+ once it <a href="#stop-parsing" title="stop parsing">stops parsing</a>. The
+ <a href="#pending-state-object">pending state object</a> must be initially null.</p>
<p>The <a href="#task-source">task source</a> for the tasks mentioned above is the
<a href="#dom-manipulation-task-source">DOM manipulation task source</a>.</p>
@@ -61432,8 +61456,8 @@
attribute set to false. This event must not bubble, must not be
cancelable, and has no default action.</li>
- <li><p>If the <code><a href="#document">Document</a></code> has a <a href="#pending-state-object">pending state
- object</a>, then <a href="#queue-a-task">queue a task</a> to fire a <code title="event-popstate"><a href="#event-popstate">popstate</a></code> event at the
+ <li><p>If the <code><a href="#document">Document</a></code> is in a <a href="#browsing-context">browsing
+ context</a>, then <a href="#queue-a-task">queue a task</a> to fire a <code title="event-popstate"><a href="#event-popstate">popstate</a></code> event at the
<code><a href="#document">Document</a></code>'s <code><a href="#window">Window</a></code> object using the
<code><a href="#popstateevent">PopStateEvent</a></code> interface, with the <code title="dom-PopStateEvent-state"><a href="#dom-popstateevent-state">state</a></code> attribute set to the
current value of the <a href="#pending-state-object">pending state object</a>. This event
Received on Tuesday, 30 November 2010 02:10:13 UTC