-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In parallel steps that resolve/reject promises without queuing a task #1
Comments
tidoust
added a commit
to w3c/strudy
that referenced
this issue
Jul 7, 2024
Note the logic requires that Webref data contains algorithm extracts. The initial logic reports algorithms that run steps in parallel, and that resolve/reject promises (or fire an event) within these steps without first queuing a task. The analysis logic remains very basic but manages to extract the vast majority of problems that had been manually identified in: tidoust/parallel-promise#1 It also reports a few additional problems that had been missed in HTML, WebXR, Element Capture, Managed Configuration API, Viewport Capture and WebHID. HTML. Cases that are not yet detected include: - indirect problems: when an algorithm step that runs in parallel calls another algorithm that contain steps that cannot run in parallel - use of "parallel queue" instead of "in parallel". Two false positives are currently reported for the Clipboard API and Push API, the former because "resolve" is used to mean something else, the latter because "resolve" is used as a condition ("if all promises resolve").
tidoust
added a commit
to w3c/strudy
that referenced
this issue
Jul 7, 2024
Note the logic requires that Webref data contains algorithm extracts. The initial logic reports algorithms that run steps in parallel, and that resolve/reject promises (or fire an event) within these steps without first queuing a task. The analysis logic remains very basic but manages to extract the vast majority of problems that had been manually identified in: tidoust/parallel-promise#1 It also reports a few additional problems that had been missed in HTML, WebXR, Element Capture, Managed Configuration API, Viewport Capture and WebHID. HTML. Cases that are not yet detected include: - indirect problems: when an algorithm step that runs in parallel calls another algorithm that contain steps that cannot run in parallel - use of "parallel queue" instead of "in parallel". A few false positives are currently reported for the Clipboard API, Push API and Prevamped Rendering specs, typically because "resolve" is used in contexts with other meanings.
tidoust
added a commit
to w3c/strudy
that referenced
this issue
Jul 7, 2024
Note the logic requires that Webref data contains algorithm extracts. The initial logic reports algorithms that run steps in parallel, and that resolve/reject promises (or fire an event) within these steps without first queuing a task. The analysis logic remains very basic but manages to extract the vast majority of problems that had been manually identified in: tidoust/parallel-promise#1 It also reports a few additional problems that had been missed in HTML, WebXR, Element Capture, Managed Configuration API, Viewport Capture and WebHID. HTML. Cases that are not yet detected include: - indirect problems: when an algorithm step that runs in parallel calls another algorithm that contain steps that cannot run in parallel - use of "parallel queue" instead of "in parallel". A few false positives are currently reported for the Clipboard API, Push API and Prevamped Rendering specs, typically because "resolve" is used in contexts with other meanings.
tidoust
added a commit
to w3c/strudy
that referenced
this issue
Jul 8, 2024
This initial logic reports algorithms that run steps in parallel, and that resolve/reject promises (or fire an event) within these steps without first queuing a task. The analysis logic remains very basic but manages to extract all problems that had been manually identified (with two exceptions detailed below): tidoust/parallel-promise#1 It also reports additional problems that had been missed in HTML, WebXR, Element Capture, Managed Configuration API, Viewport Capture and WebHID. The two exceptions are that are not yet detected automatically are: - indirect problems: when an algorithm step that runs in parallel calls another algorithm that contain steps that cannot run in parallel. This happens in Manifest Incubations: https://wicg.github.io/manifest-incubations/#dfn-steps-to-notify-that-an-install-prompt-is-available - use of "parallel queue" instead of "in parallel", in Web Locks API and Web Periodic Background Synchronization: https://w3c.github.io/web-locks/#ref-for-lock-task-queue https://wicg.github.io/periodic-background-sync/#process-periodic-sync-registrations-algorithm A couple of cases need to be hardcoded to account for uses of "in parallel" and "resolve" to mean something else in the Clipboard APIs, Push API and Prerendering Revamped specs. The whole logic obviously needs algorithm extracts to be present in Webref!
This was referenced Jul 8, 2024
tidoust
added a commit
to w3c/strudy
that referenced
this issue
Jul 25, 2024
This initial logic reports algorithms that run steps in parallel, and that resolve/reject promises (or fire an event) within these steps without first queuing a task. The analysis logic remains very basic but manages to extract all problems that had been manually identified (with two exceptions detailed below): tidoust/parallel-promise#1 It also reports additional problems that had been missed in HTML, WebXR, Element Capture, Managed Configuration API, Viewport Capture and WebHID. The two exceptions are that are not yet detected automatically are: - indirect problems: when an algorithm step that runs in parallel calls another algorithm that contains steps that cannot run in parallel. This happens in Manifest Incubations: https://wicg.github.io/manifest-incubations/#dfn-steps-to-notify-that-an-install-prompt-is-available - use of "parallel queue" instead of "in parallel", in Web Locks API and Web Periodic Background Synchronization: https://w3c.github.io/web-locks/#ref-for-lock-task-queue https://wicg.github.io/periodic-background-sync/#process-periodic-sync-registrations-algorithm A couple of cases need to be hardcoded to account for uses of "in parallel" and "resolve" to mean something else in the Clipboard APIs, Push API and Prerendering Revamped specs.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Below is a list of specs known to Webref that reference the in parallel term.
Unchecked specs contain at least one algorithm with steps that resolve/reject a promise while running in parallel without queuing a task first, or have some related issue described in a short comment next to the spec name. In other words, they define something like:
... instead of:
Checked specs look correct at first glance. Some of them simply reference the term in a note and do not define actual algorithms with steps in parallel.
Other specs that use "in parallel" without linking to its definition in HTML:
Notes:
The text was updated successfully, but these errors were encountered: