Add Plus Button (1/3): TabbedPane trailing-button slot + overflow event
Preparatory CL for the Plus Button feature. Adds a declarative API on
TabbedPane so a follow-up can plug in a "+" / "More tools" affordance as
a Web Component. No user-visible change; existing callers keep the
legacy chevron behavior.
New APIs:
- <slot name="trailing-button"> in the header. When assigned,
the legacy chevron is suppressed and the slotted element's
width is reserved during overflow detection so it stays
visible even on the last tab.
- "overflow-tabs-changed" CustomEvent (bubbles, composed) with
{hiddenTabs: [{id, title, jslogContext?}]}, debounced against
the last-dispatched set.
- hiddenTabs() / firstHiddenTabIndex() for synchronous reads.
- moveTab(tabId, newIndex) reorders a tab even when overflowed
and dispatches TabOrderChanged. `newIndex` is the final
position, clamped to [0, length-1].
A single ResizeObserver on headerContentsElement re-runs overflow
detection when the tabs container shrinks (e.g. the issues counter
loading into the right toolbar). Visible-row DOM order is reconciled
declaratively in updateTabsDropDown().
Prototype CL:
https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7792390
Bug: 506004822
Change-Id: Ife9bd88185a413ec565e8e9593d8152e5aeb92e7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7814020
Commit-Queue: Guangyue Xu <[email protected]>
Reviewed-by: 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.