Cancel stale async rendering tasks in the Styles pane using AbortSignal When a user action triggers a new Styles pane update before a previous asynchronous rendering operation finishes (e.g., resolving `color-mix()` values), the old operation's callbacks can still execute. This can lead to race conditions or attempts to mutate detached DOM nodes. This CL introduces cancellation handling to prevent this. The base `Widget` class now manages an `AbortController` for its update cycle. When a new update is requested, it aborts the signal for any pending update. The `AbortSignal` is passed down through performUpdate in `StylesSidebarPane` and `StandaloneStylesContainer`. These components, and the rendering helpers they call, now check `signal.aborted` or call `signal.throwIfAborted()` after asynchronous operations. This ensures that stale rendering tasks are cleanly halted before they can incorrectly manipulate the DOM. Bug: 487901682 Change-Id: Ib7f6549812877ee0e4055ab32737c86842fe9719 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7658088 Reviewed-by: Philip Pfaffe <[email protected]> Commit-Queue: Danil Somsikov <[email protected]>
The client-side of the Chrome DevTools, including all TypeScript & CSS to run the DevTools webapp.
The frontend is available on chromium.googlesource.com. Check out the Chromium DevTools documentation for instructions to set up, use, and maintain a DevTools front-end checkout, as well as design guidelines, and architectural documentation.
DevTools frontend repository is mirrored on GitHub.
DevTools frontend is also available on NPM as the chrome-devtools-frontend package. It's not currently available via CJS or ES modules, so consuming this package in other tools may require some effort.
The version number of the npm package (e.g. 1.0.373466) refers to the Chromium commit position of latest frontend git commit. It's incremented with every Chromium commit, however the package is updated roughly daily.
There are a few options to keep an eye on the latest and greatest of DevTools development:
Follow What's new in DevTools.
Follow Umar's Dev Tips.
Follow these individual Twitter accounts: @umaar, @malyw, @kdzwinel, @addyosmani, @paul_irish, @samccone, @mathias, @mattzeunert, @PrashantPalikhe, @ziyunfei, and @bmeurer.
Follow to g/[email protected] mailing list for all reviews of pending code, and view the log, or follow @DevToolsCommits on Twitter.
Checkout all open DevTools tickets on crbug.com
Use Chrome Canary and poke around the experiments.