Short URL: http://html5.org/r/5964
Index: source
===================================================================
--- source (revision 5963)
+++ source (revision 5964)
@@ -68578,6 +68578,7 @@
<pre class="idl">interface <dfn>History</dfn> {
readonly attribute long <span title="dom-history-length">length</span>;
+ readonly attribute any <span title="dom-history-state">state</span>;
void <span title="dom-history-go">go</span>(in optional long delta);
void <span title="dom-history-back">back</span>();
void <span title="dom-history-forward">forward</span>();
@@ -68595,6 +68596,14 @@
</dd>
+ <dt><var title="">window</var> . <code title="dom-history">history</code> . <code title="dom-history-state">state</code></dt>
+
+ <dd>
+
+ <p>Returns the current <span>state object</span>.</p>
+
+ </dd>
+
<dt><var title="">window</var> . <code title="dom-history">history</code> . <code title="dom-history-go">go</code>( [ <var title="">delta</var> ] )</dt>
<dd>
@@ -68679,6 +68688,11 @@
<p>The actual entries are not accessible from script.</p>
+ <p>The <dfn title="dom-history-state"><code>state</code></dfn>
+ attribute of the <code>History</code> interface must return the last
+ value it was set to by the user agent. Initially, its value must be
+ null.</p>
+
<p>When the <dfn title="dom-history-go"><code>go(<var
title="">delta</var>)</code></dfn> method is invoked, if the
argument to the method was omitted or has the value zero, the user
@@ -68895,18 +68909,10 @@
<li>
- <p>If the <span>current document readiness</span> is not yet set
- to the string "complete", let the <code>Document</code>'s
- <span>pending state object</span> be another <span>structured
- clone</span> of the specified <var title="">data</var>. (If there
- was already a <span>pending state object</span>, the previous one
- is discarded.)</p>
+ <p>Set <code title="dom-history-state">history.state</code> to
+ another <span>structured clone</span> of the specified <var
+ title="">data</var>.</p>
- <p class="note">This ensures that the <code
- title="event-popstate">popstate</code> event that will be fired
- when the document finally loads will accurately reflect the
- pushed or replaced state object.</p>
-
</li>
</ol>
@@ -69013,7 +69019,7 @@
document.forms.F.I.value = newI;
}
</SCRIPT>
-<BODY ONPOPSTATE="recover(event.state)">
+<BODY ONPOPSTATE="set(event.state)">
<FORM NAME=F>
State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON ONCLICK="inc()">
</FORM></pre>
@@ -70488,41 +70494,18 @@
state object. Otherwise, let <var title="">state</var> be
null.</p></li>
- <li>
+ <li><p>Set <code title="dom-history-state">history.state</code> to <var
+ title="">state</var>.</p></li>
- <p>Run the appropriate steps according to the conditions
- described:</p>
+ <li><p>Fire a <code title="event-popstate">popstate</code> event at
+ the <code>Window</code> object of the <code>Document</code>, using
+ the <code>PopStateEvent</code> interface, with the <code
+ title="dom-PopStateEvent-state">state</code> attribute set to the
+ value of <var title="">state</var>. This event must bubble but not
+ be cancelable and has no default action.</p></li>
- <dl class="switch">
-
- <dt>If the <span>current document readiness</span> is set to the
- string "complete"</dt>
-
- <dd><p><span>Queue a task</span> to fire a <code
- title="event-popstate">popstate</code> event at the
- <code>Window</code> object of the <code>Document</code>, using
- the <code>PopStateEvent</code> interface, with the <code
- title="dom-PopStateEvent-state">state</code> attribute set to the
- value of <var title="">state</var>. This event must bubble but
- not be cancelable and has no default action.</p></dd>
-
- <dt>Otherwise</dt>
-
- <dd><p>Let the <code>Document</code>'s <span>pending state
- object</span> be <var title="">state</var>. (If there was already
- a <span>pending state object</span>, the previous one is
- discarded.)</p>
-
- <p class="note">The event will then be fired just after the <code
- title="event-load">load</code> event.</p></dd>
-
- </dl>
-
- </li>
-
- <li><p>If <var title="">hash changed</var> is true, then
- <span>queue a task</span> to fire a <code
- title="event-hashchange">hashchange</code> event at the
+ <li><p>If <var title="">hash changed</var> is true, then fire a
+ <code title="event-hashchange">hashchange</code> event at the
<span>browsing context</span>'s <code>Window</code> object, using
the <code>HashChangeEvent</code> interface, with the <code
title="dom-HashChangeEvent-oldURL">oldURL</code> attribute set to
@@ -70536,12 +70519,6 @@
</ol>
- <p>The <dfn>pending state object</dfn> is used to keep track of what
- state object to use in the inital <code
- title="event-popstate">popstate</code> event fired by the parser
- once it <span title="stop parsing">stops parsing</span>. The
- <span>pending state object</span> must be initially null.</p>
-
<p>The <span>task source</span> for the tasks mentioned above is the
<span>DOM manipulation task source</span>.</p>
@@ -98038,16 +98015,6 @@
attribute set to false. This event must not bubble, must not be
cancelable, and has no default action.</p></li>
- <li><p>If the <code>Document</code> is in a <span>browsing
- context</span>, then <span>queue a task</span> to fire a <code
- title="event-popstate">popstate</code> event at the
- <code>Document</code>'s <code>Window</code> object using the
- <code>PopStateEvent</code> interface, with the <code
- title="dom-PopStateEvent-state">state</code> attribute set to the
- current value of the <span>pending state object</span>. This event
- must bubble but not be cancelable and has no default
- action.</p></li>
-
<li><p>If the <code>Document</code> has any <span>pending
application cache download process tasks</span>, then <span
title="queue a task">queue</span> each such <span