[elements] Derive a DOM tree node's shape in one place in DOMTreeWidget The view computed "does this node have children, is it expanded, which children are shown, does it need a closing tag" twice, once to render and once to count rows for maxRowsShown, and the "not collapsible" and "being edited as HTML" predicates were spelled out in four and three places across the view and the presenter. - resolveNodeShape() in the view feeds both renderNode() and countVisibleRowsForNode(); isNotCollapsible() and isBeingEditedAsHTML() are module-level helpers used by the presenter as well. - nodeHasVisibleChildren() / getVisibleChildren() take a TreeOptions object that both the view input and the presenter satisfy, instead of the same three or four positional arguments at every call site. - The three opening/closing-tag handler pairs (mousemove, dragover, drop) become factories parameterized by isClosingTag, and the per-node copy of the InterceptBindingDirective is gone. - ViewInput is module-private and the presenter always provides every callback, so they are now required. That removes the optional chaining and the dead expandRoot / InitialChildrenLimit fallbacks in the view. The view no longer receives the presenter itself; the three things it used it for are explicit inputs (onRevealInTopLayer, onSetMultilineEditing, visibleWidth). No change in behavior. Bug: 407751692 Change-Id: I249f0425320700fe751bc25d7dde03e793fbd79b Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/8568723 Reviewed-by: Simon Zünd <szuend@chromium.org> Auto-Submit: Alex Rudenko <alexrudenko@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org>
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/devtools-reviews@chromium.org 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.