You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>A <span>browsing session</span> has a <def data-x="bs-script-visible-history-length">script-visible history length</def>, a nonnegative integer. JAKE-TODO: hook up the above</p>
77509
77509
77510
77510
<p class="note">This provides synchronous access to <code data-x="dom-history-length">history.length</code>.</p>
77511
+
77512
+
JAKE-TODO: I'm not sure this is right for synchronous access. I think it needs to go elsewhere
<p>A <dfn export>navigable</dfn> presents a <code>Document</code> to the user via its <span data-x="nav-current-history-entry">current session history entry</span>. It has:</p>
82702
+
<p>A <dfn export>navigable</dfn> presents a <code>Document</code> to the user via its <span data-x="nav-displayed-history-entry">displayed session history entry</span>. It has:</p>
82701
82703
82702
82704
<ul>
82703
82705
<li><p>An <dfn data-x="nav-id">id</dfn>, a <span>new unique internal value</span>.</p></li>
82704
82706
82705
82707
<li><p>A <dfn data-x="nav-parent">parent</dfn>, a <span>navigable</span> or null. JAKE-TODO: make sure this is set in all contructions points.</p></li>
82706
82708
82707
82709
<li><p>A <dfn data-x="nav-current-history-entry">current session history entry</dfn>, a <span>session history entry</span>. This must be an <span data-x="list item">item</span> in this <span>navigable</span>'s <span data-x="nav-session-history-entries">session history entries</span>.</p></li>
82710
+
82711
+
<li>
82712
+
<p>A <dfn data-x="nav-displayed-history-entry">displayed session history entry</dfn>, a <span>session history entry</span>. This must be an <span data-x="list item">item</span> in this <span>navigable</span>'s <span data-x="nav-session-history-entries">session history entries</span>.</p>
82713
+
82714
+
<p class="note">This is usually the same as the <span data-x="nav-current-history-entry">current session history entry</span>, except in cases where the <span data-x="nav-current-history-entry">current session history entry</span> cannot be displayed. JAKE-TODO: Link this up to the step where it happens.</p>
82715
+
</li>
82708
82716
</ul>
82709
82717
82710
-
<p>A <span>navigable</span>'s <dfn data-x="nav-bc">current browsing context</dfn> is its <span data-x="nav-current-history-entry">current session history entry</span>'s <span data-x="she-bc">browsing context</span>.</p>
82718
+
<p>A <span>navigable</span>'s <dfn data-x="nav-bc">current browsing context</dfn> is its <span data-x="nav-displayed-history-entry">displayed session history entry</span>'s <span data-x="she-bc">browsing context</span>.</p>
82711
82719
82712
-
<p>A <span>navigable</span>'s <dfn data-x="nav-url">current URL</dfn> is its <span data-x="nav-current-history-entry">current session history entry</span>'s <span data-x="she-url">URL</span>.</p>
82720
+
<p>A <span>navigable</span>'s <dfn data-x="nav-url">current URL</dfn> is its <span data-x="nav-displayed-history-entry">displayed session history entry</span>'s <span data-x="she-url">URL</span>.</p>
82713
82721
82714
-
<p>A <span>navigable</span>'s <dfn data-x="nav-document">current document</dfn> is its <span data-x="nav-current-history-entry">current session history entry</span>'s <span data-x="she-document">document</span>.</p>
82722
+
<p>A <span>navigable</span>'s <dfn data-x="nav-document">current document</dfn> is its <span data-x="nav-displayed-history-entry">displayed session history entry</span>'s <span data-x="she-document">document</span>.</p>
82715
82723
82716
82724
<p>To get a the <dfn data-x="nav-top" export>top-level navigable</dfn> of a <span>navigable</span> <var>inputNavigable</var>, run these steps:</p>
<li><p>Let <var>navigable</var> be a new <dfn>navigable</dfn>.</p></li>
82738
82746
82739
82747
<li>
82740
-
<p>Set <var>navigable</var>'s <span data-x="nav-current-history-entry">current session history entry</span> to a new <span>session history entry</span>, with the following:</p>
82748
+
<p>Let <var>entry</var> be a new <span>session history entry</span>, with the following:</p>
<p>A <dfn export>traversable navigable</dfn> is a <span>navigable</span> that also controls which <span>session history entry</span> should be the <span data-x="nav-current-history-entry">current session history entry</span> for itself and its descendant <span data-x="navigable">navigables</span>.</p>
82792
+
<p>A <dfn export>traversable navigable</dfn> is a <span>navigable</span> that also controls which <span>session history entry</span> should be the <span data-x="nav-current-history-entry">current session history entry</span> and <span data-x="nav-displayed-history-entry">displayed session history entry</span> for itself and its descendant <span data-x="navigable">navigables</span>.</p>
82781
82793
82782
82794
<p>In addition to the properties of a <span>navigable</span>, a <span>traversable navigable</span> has:</p>
<li><p>Let <var>step</var> be the <var>navigable</var>'s <span data-x="tn-current-session-history-step">current session history step</span>.</p></li>
82836
82848
82837
-
<li><p>Let <var>entryLists</var> be the <span data-x="set">ordered set</span> « <var>navigable</var>'s <span data-x="tn-session-history-entries">session history entries</span> »</p></li>
82849
+
<li><p>Let <var>entryLists</var> be the <span data-x="set">ordered set</span> « <var>navigable</var>'s <span data-x="tn-session-history-entries">session history entries</span> ».</p></li>
82838
82850
82839
82851
<li>
82840
82852
<p><span data-x="list iterate">For each</span> <var>entryList</var> of <var>entryLists</var>:</p>
82841
82853
82842
82854
<ol>
82843
-
<li><p><span data-x="list remove">Remove</span> every <span>session history entry</span> from <var>entryList</var> with a <span data-x="she-step">step</span> greater than <var>step</var>.</p></li>
82855
+
<li><p><span data-x="list remove">Remove</span> every <span>session history entry</span> from <var>entryList</var> that has a <span data-x="she-step">step</span> greater than <var>step</var>.</p></li>
82844
82856
82845
82857
<li>
82846
82858
<p><span data-x="list iterate">For each</span> <var>entry</var> of <var>entryList</var>:</p>
<li><p>Let <var>taskGlobals</var> be an empty <span data-x="ordered map">map</span> where the <span data-x="map key">keys</span> are <span data-x="agent">agents</span> and the <span data-x="map value">values</span> are <code>Window</code> objects.</p></li>
82911
82923
82912
-
<li><p>Let <var>entryLists</var> be the <span data-x="set">ordered set</span> « <var>navigable</var>'s <span data-x="tn-session-history-entries">session history entries</span> »</p></li>
82924
+
<li><p>Let <var>entryLists</var> be the <span data-x="set">ordered set</span> « <var>navigable</var>'s <span data-x="tn-session-history-entries">session history entries</span> ».</p></li>
82913
82925
82914
82926
<li>
82915
82927
<p><span data-x="list iterate">For each</span> <var>entryList</var> of <var>entryLists</var>:</p>
<p>If <var>targetEntry</var>'s <span data-x="she-document">document</span> is not null, then <span data-x="list iterate">for each</span> <var>nestedHistory</var> of <var>entry</var>'s <span data-x="she-document-state">document state</span>'s <span data-x="document-state-nested-histories">nested histories</span>, <span data-x="set append">append</span> <var>nestedHistory</var>'s <span data-x="nested-history-entries">entries list</span> to <var>entryLists</var>.</p>
82934
82946
82935
-
<p class="xxx">If the <span data-x="she-document">document</span> doesn't currently exist, its nested history will be recreated, although this isn't spec'd yet.</p>
82936
-
82937
-
JAKE-TODO: Should the document already be created by this point? What does the current spec do?
82947
+
<p class="note">We need to visit these nested entries to make sure they're displaying the correct entry and have up-to-date history length/index.</p>
82938
82948
</li>
82939
82949
82940
82950
<li><p>Let <var>agent</var> be <var>currentDocument</var>'s <span>relevant agent</span>.</p></li>
<li><p>Set <var>targetEntry</var>'s <span data-x="she-bc">browsing context</span>'s <span data-x="bc-session">session</span>'s <span data-x="bs-script-visible-history-length">script-visible history length</span> to <var>scriptHistoryLength</var>.</p></li>
82963
82973
82964
-
<li><p>Set <var>targetEntry</var>'s <span data-x="she-bc">browsing context</span>'s <span data-x="bc-session">session</span>'s <span data-x="bc-script-visible-history-index">script-visible history index</span> to <var>scriptHistoryIndex</var>.</p></li>
82974
+
<li><p>Set <var>targetEntry</var>'s <span data-x="she-bc">browsing context</span>'s <span data-x="bc-session">session</span>'s <span data-x="bs-script-visible-history-index">script-visible history index</span> to <var>scriptHistoryIndex</var>.</p></li>
82965
82975
</ol>
82966
82976
82967
82977
<p class="note">This is only done for the <span>traversable navigable</span>, as all nested <span data-x="navigable">navigables</span> will be part of the same <span>browsing session</span>.</p>
@@ -86406,19 +86416,19 @@ new PaymentRequest(…); // Allowed to use
<dd><var>navigable</var>'s <span data-x="nav-current-history-entry">current session history entry</span>'s <span data-x="she-document-state">document state</span></dd>
86419
+
<dd><var>navigable</var>'s <span data-x="nav-displayed-history-entry">displayed session history entry</span>'s <span data-x="she-document-state">document state</span></dd>
86410
86420
</dl>
86411
86421
</li>
86412
86422
86413
-
<li><p>Let <var>entryToReplace</var> be <var>navigable</var>'s <span data-x="nav-current-history-entry">current session history entry</span> if <var>historyHandling</var> is "<code data-x="hh-replace">replace</code>", otherwise null.</p></li>
86423
+
<li><p>Let <var>entryToReplace</var> be <var>navigable</var>'s <span data-x="nav-displayed-history-entry">displayed session history entry</span> if <var>historyHandling</var> is "<code data-x="hh-replace">replace</code>", otherwise null.</p></li>
86414
86424
86415
86425
<li>
86416
86426
<p>If <var>historyHandling</var> is not "<code data-x="hh-replace">replace</code>", then:</p>
86417
86427
86418
86428
<ol>
86419
86429
<li><p>Let <var>session</var> be <var>navigable</var>'s <span data-x="nav-bc">current browsing context</span>'s <span data-x="bc-session">session</span>.</p></li>
86420
86430
86421
-
<li><p>Increment <var>session</var>'s <span data-x="bc-script-visible-history-index">script-visible history index</span>.</p></li>
86431
+
<li><p>Increment <var>session</var>'s <span data-x="bs-script-visible-history-index">script-visible history index</span>.</p></li>
86422
86432
86423
86433
<li>
86424
86434
<p>Set <var>session</var>'s <span data-x="bs-script-visible-history-length">script-visible history length</span> to <var>session</var>'s <span data-x="bs-script-visible-history-index">script-visible history index</span> + 1.</p>
@@ -86428,7 +86438,7 @@ new PaymentRequest(…); // Allowed to use
86428
86438
</ol>
86429
86439
</li>
86430
86440
86431
-
<li><p>Set <var>navigable</var>'s <span data-x="nav-current-history-entry">current session history entry</span> to <var>historyEntry</var>.</p></li>
86441
+
<li><p>Set <var>navigable</var>'s <span data-x="nav-displayed-history-entry">displayed session history entry</span> to <var>historyEntry</var>.</p></li>
86432
86442
86433
86443
<li><p>Let <var>traversable</var> be <var>navigable</var>'s <span data-x="nav-traversable">traversable navigable</span>.</p></li>
86434
86444
@@ -86448,6 +86458,8 @@ new PaymentRequest(…); // Allowed to use
86448
86458
86449
86459
<li><p>Set <var>targetStep</var> to <var>traversable</var>'s <span data-x="tn-current-session-history-step">current session history step</span> + 1.</p></li>
86450
86460
86461
+
<li><p>Set <var>historyEntry</var>'s <span data-x="she-step">step</span> to <var>targetStep</var>.</p></li>
86462
+
86451
86463
<li><p><span data-x="list append">Append</span> <var>historyEntry</var> to <var>targetEntries</var>.</p></li>
86452
86464
</ol>
86453
86465
@@ -86456,12 +86468,12 @@ new PaymentRequest(…); // Allowed to use
86456
86468
<ol>
86457
86469
<li><p><span data-x="list replace">Replace</span> <var>entryToReplace</var> with <var>historyEntry</var>.</p></li>
86458
86470
86459
-
<li><p>Set <var>targetStep</var> to <var>entryToReplace</var>'s <span data-x="she-step">step</span>.</p></li>
86471
+
<li><p>Set <var>historyEntry</var>'s <span data-x="she-step">step</span> to <var>entryToReplace</var>'s <span data-x="she-step">step</span>.</p></li>
86472
+
86473
+
<li><p>Set <var>targetStep</var> to <var>traversable</var>'s <span data-x="tn-current-session-history-step">current session history step</span>.</p></li>
86460
86474
</ol>
86461
86475
</li>
86462
86476
86463
-
<li><p>Set <var>historyEntry</var>'s <span data-x="she-step">step</span> to <var>targetStep</var>.</p></li>
86464
-
86465
86477
<li>
86466
86478
<p><span>Apply the history step</span> <var>targetStep</var> to <var>traversable</var>.</p>
0 commit comments