Skip to content

Commit 8aa2c9c

Browse files
committed
Fix regression in focus chain computation
This regressed in 90a60b2, which accidentally removed the step which lets the recursion continue by setting the current object to the appropriate "owner" document. Even though control group owner objects are removed, we still need to traverse up to the document in focus chain computation. While here, this rewrites the algorithm to use a loop instead of a goto for clarity. Closes #6161.
1 parent e4330d5 commit 8aa2c9c

File tree

1 file changed

+33
-18
lines changed

1 file changed

+33
-18
lines changed

source

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -72719,33 +72719,48 @@ END:VCARD</pre>
7271972719
list constructed as follows:</p>
7272072720

7272172721
<ol>
72722-
<li><p>Let <var>current object</var> be <var>subject</var>.</p></li>
72722+
<li><p>Let <var>output</var> be an empty <span>list</span>.</p></li>
7272372723

72724-
<li><p>Let <var>output</var> be an empty list.</p></li>
72725-
72726-
<li><p><i>Loop</i>: Append <var>current object</var> to <var>output</var>.</p></li>
72724+
<li><p>Let <var>currentObject</var> be <var>subject</var>.</p></li>
7272772725

7272872726
<li>
72729-
<p>If <var>current object</var> is an <code>area</code> element's shape, append
72730-
that <code>area</code> element to <var>output</var>.</p>
72727+
<p>While true:</p>
7273172728

72732-
<p>Otherwise, if <var>current object</var> is a <span>focusable area</span> whose <span>DOM
72733-
anchor</span> is an element that is not <var>current object</var> itself, append that
72734-
<span>DOM anchor</span> element to <var>output</var>.</p>
72735-
</li>
72729+
<ol>
72730+
<li><p><span data-x="list append">Append</span> <var>currentObject</var> to
72731+
<var>output</var>.</p></li>
7273672732

72737-
<li><p>If <var>current object</var> is a <code>Document</code> whose <span
72738-
data-x="concept-document-bc">browsing context</span> is a <span>child browsing context</span>,
72739-
then set <var>current object</var> to <var>current object</var>'s <span
72740-
data-x="concept-document-bc">browsing context</span>'s <span
72741-
data-x="bc-container">container</span> and return to the step labeled <i>loop</i>.</p></li>
72733+
<li>
72734+
<p>If <var>currentObject</var> is an <code>area</code> element's shape, then <span
72735+
data-x="list append">append</span> that <code>area</code> element to <var>output</var>.</p>
72736+
72737+
<p>Otherwise, if <var>currentObject</var>'s <span>DOM anchor</span> is an element that is not
72738+
<var>currentObject</var> itself, then <span data-x="list append">append</span>
72739+
<var>currentObject</var>'s <span>DOM anchor</span> to <var>output</var>.</p>
72740+
</li>
72741+
72742+
<li>
72743+
<p>If <var>currentObject</var> is a <span>focusable area</span>, then set
72744+
<var>currentObject</var> to <var>currentObject</var>'s <span>DOM anchor</span>'s <span>node
72745+
document</span>.</p>
72746+
72747+
<p>Otherwise, if <var>currentObject</var> is a <code>Document</code> whose <span
72748+
data-x="concept-document-bc">browsing context</span> is a <span>child browsing context</span>,
72749+
then set <var>currentObject</var> to <var>currentObject</var>'s <span
72750+
data-x="concept-document-bc">browsing context</span>'s <span
72751+
data-x="bc-container">container</span>.</p>
72752+
72753+
<p>Otherwise, <span>break</span>.</p>
72754+
</li>
72755+
</ol>
72756+
</li>
7274272757

7274372758
<li>
7274472759
<p>Return <var>output</var>.</p>
7274572760

72746-
<p class="note">The chain starts with <var>subject</var> and (if <var>subject</var> is or can be the <span>currently focused area of a top-level browsing
72747-
context</span>) continues up the focus hierarchy up to the <code>Document</code> of the
72748-
<span>top-level browsing context</span>.</p>
72761+
<p class="note">The chain starts with <var>subject</var> and (if <var>subject</var> is or can be
72762+
the <span>currently focused area of a top-level browsing context</span>) continues up the focus
72763+
hierarchy up to the <code>Document</code> of the <span>top-level browsing context</span>.</p>
7274972764
</li>
7275072765
</ol>
7275172766

0 commit comments

Comments
 (0)