)]}'
{
  "commit": "5dfb21679dc5d9affc8a50122a3e245ff69f1d08",
  "tree": "9a69dac4aabe1d874399121847839245d6e6b489",
  "parents": [
    "5a7917ec7a0e6c45fcf0f25f671eb1ae41693153"
  ],
  "author": {
    "name": "Guangyue Xu",
    "email": "guangyue.xu@microsoft.com",
    "time": "Mon May 11 16:46:38 2026"
  },
  "committer": {
    "name": "devtools-frontend-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "devtools-frontend-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed May 13 20:16:49 2026"
  },
  "message": "Add Plus Button (1/3): TabbedPane trailing-button slot + overflow event\n\nPreparatory CL for the Plus Button feature. Adds a declarative API on\nTabbedPane so a follow-up can plug in a \"+\" / \"More tools\" affordance as\na Web Component. No user-visible change; existing callers keep the\nlegacy chevron behavior.\n\nNew APIs:\n  - \u003cslot name\u003d\"trailing-button\"\u003e in the header. When assigned,\n    the legacy chevron is suppressed and the slotted element\u0027s\n    width is reserved during overflow detection so it stays\n    visible even on the last tab.\n  - \"overflow-tabs-changed\" CustomEvent (bubbles, composed) with\n    {hiddenTabs: [{id, title, jslogContext?}]}, debounced against\n    the last-dispatched set.\n  - hiddenTabs() / firstHiddenTabIndex() for synchronous reads.\n  - moveTab(tabId, newIndex) reorders a tab even when overflowed\n    and dispatches TabOrderChanged. `newIndex` is the final\n    position, clamped to [0, length-1].\n\nA single ResizeObserver on headerContentsElement re-runs overflow\ndetection when the tabs container shrinks (e.g. the issues counter\nloading into the right toolbar). Visible-row DOM order is reconciled\ndeclaratively in updateTabsDropDown().\n\nPrototype CL:\nhttps://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7792390\n\nBug: 506004822\nChange-Id: Ife9bd88185a413ec565e8e9593d8152e5aeb92e7\nReviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7814020\nCommit-Queue: Guangyue Xu \u003cguangyue.xu@microsoft.com\u003e\nReviewed-by: Danil Somsikov \u003cdsv@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fcf95b069377bd86ac7584e93a8b89b8123b72ab",
      "old_mode": 33188,
      "old_path": "front_end/ui/legacy/TabbedPane.test.ts",
      "new_id": "767a0c8a2334a44fdc44a3d76e34b9f056ad0976",
      "new_mode": 33188,
      "new_path": "front_end/ui/legacy/TabbedPane.test.ts"
    },
    {
      "type": "modify",
      "old_id": "6c6082bb4c1054d3683faa473573af4753012eb6",
      "old_mode": 33188,
      "old_path": "front_end/ui/legacy/TabbedPane.ts",
      "new_id": "0aef02c2118e18443cdf788d9c3b37c3d1605534",
      "new_mode": 33188,
      "new_path": "front_end/ui/legacy/TabbedPane.ts"
    }
  ]
}
