Skip to content

Commit aac696c

Browse files
committed
Make navigate command return before emitting navigationStarted
At least when wait=none
1 parent c69ec91 commit aac696c

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

index.bs

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,12 @@ To <dfn>resume</dfn> given |name|, |id| and |parameters|:
161161

162162
1. Remove |id| from [=wait queue=].
163163

164-
1. Resume running the steps in |algorithm| from the point at which they were
165-
paused, passing |name| and |parameters| as the result of the [=await=].
164+
1. [=Queue a WebDriver task=] to resume running the steps in |algorithm| from the
165+
point at which they were paused, passing |name| and |parameters| as the
166+
result of the [=await=].
167+
168+
Issue: Should we have something like microtasks to ensure this runs
169+
before any other tasks on the event loop?
166170

167171
</div>
168172

@@ -1890,13 +1894,26 @@ The [=remote end steps=] with |command parameters| are:
18901894

18911895
1. If |wait condition| is "<code>none</code>":
18921896

1893-
1. Let |body| be a [=map=] matching the
1894-
<code>BrowsingContextNavigateResult</code> production, with the
1895-
<code>navigation</code> field set to |navigation id|, and the
1896-
<code>url</code> field set to the result of the [=URL serializer=] given
1897-
|navigate status|'s url.
1897+
1. Let |body| be a [=map=] matching the
1898+
<code>BrowsingContextNavigateResult</code> production, with the
1899+
<code>navigation</code> field set to |navigation id|, and the
1900+
<code>url</code> field set to the result of the [=URL serializer=] given
1901+
|navigate status|'s url.
1902+
1903+
1. Return [=success=] with data |body|, and then run the following steps [=in
1904+
parallel=]:
1905+
1906+
1. Run the [=WebDriver-BiDi navigation started=] steps given |context|
1907+
and |navigate status|
1908+
1909+
1. Run the [=WebDriver-BiDi navigation started=] steps given |context|
1910+
and |navigate status|
1911+
1912+
Note: this event was previously suppressed to ensure that it would come
1913+
after the command response in the case that |wait condition| is
1914+
"<code>none</code>".
18981915

1899-
1. Return [=success=] with data |body|.
1916+
Issue: Replace this suppression mechanism with an event queue.
19001917

19011918
1. If |wait condition| is "<code>interactive</code>", let |event name| be
19021919
"<code>domContentLoaded</code>", otherwise let |event name| be
@@ -2023,6 +2040,11 @@ started</dfn> steps given |context| and |navigation status|:
20232040

20242041
1. If the [=current session=] is null, return.
20252042

2043+
1. Let |context id| be the [=browsing context id=] for |context|.
2044+
2045+
1. If |context id| is in the [=set of contexts with an ongoing navigate=],
2046+
then return.
2047+
20262048
1. Let |params| be the result of [=get the navigation info=] given |context|
20272049
and |navigation status|.
20282050

0 commit comments

Comments
 (0)