Skip to content
Commit 6f1f6798 authored by Scott Haseley's avatar Scott Haseley Committed by Chromium LUCI CQ
Browse files

Scheduling APIs: Implement scheduler.yield() prototype (part 2: inherit)

This CL implements the scheduler.yield() "inherit" option:
 - Signal selection: GetTaskSignalFromOptions() is updated to take
   inheritance into account. If either the signal or priority options
   are to inherit, the inherited signal is retrieved from V8 and used
   in the computation:
     - signal: "inherit", priority: unset - use the inherited signal
     if there is one, otherwise default priority.
     - signal: "inherit", priority: fixed - create a composite signal
     from the inherited signal and fixed priority. If the inherited
     signal is null, just use a fixed priority signal.
     - signal: unset, priority: "inherit" - if there's nothing to
     inherit use the default priority; if the inherited signal has
     fixed priority and can't abort, use that; otherwise create a
     new composite signal.

 - DOMTask is updated to support continuation, passing its signal
   when creating a task scope (main thread). For workers, DOMTask
   will set the continuation preserved embedder data manually before
   running the task.

 - WPT tests are added and modified to cover the "inherit" option.

Bug: 979020
Change-Id: Ia9776b9292d70636e2b1eea191e9c09b1809fa84
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4326152


Commit-Queue: Scott Haseley <shaseley@chromium.org>
Reviewed-by: default avatarNate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1118868}
parent db817ff8
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment