Commit Graph
6 Commits
Author SHA1 Message Date
Bryan ChenandGitHub 15fc669eed telemetry: report ResizeObserver delivery context (#328065)
* telemetry: report ResizeObserver delivery context

The browser's ResizeObserver loop ErrorEvent contains only a generic message; it does not expose the skipped target or causative callback. Prefixing that warning with the most recently invoked DisposableResizeObserver therefore turned callback order into false causal attribution.

Record the wrapped observers that ran in the current rendering frame instead. Context is scoped per window, deduplicated, sorted for stable bucketing, and bounded to the canonical smallest eight names plus an overflow marker. The telemetry prefix explicitly calls these recent wrapped observers rather than an offending consumer.

Clear context at the next animation frame, after Blink dispatches any loop warning from the current rendering update. Unit coverage locks deduplication, canonical overflow, window isolation, and frame cleanup; a real Chromium component fixture deliberately triggers a self-resize loop and verifies context survives until the native warning.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: aacd276e-cf84-48bd-a2ab-6f6a4d4c3431

* telemetry: shorten ResizeObserver context prefix

ResizeObserverLoopContext already identifies the observer names as non-causal context, so remove the redundant 
ecentWrappedObservers= label from the emitted error string.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: aacd276e-cf84-48bd-a2ab-6f6a4d4c3431

---------

Copilot-Session: aacd276e-cf84-48bd-a2ab-6f6a4d4c3431
2026-07-29 15:53:37 -07:00
938777f227 Fix chat ResizeObserver loop by observing rows only while mounted (#327753)
Chat telemetry reported a large volume of "ResizeObserver loop completed
with undelivered notifications" warnings attributed to
ChatInputPart.containerHeight. That attribution is misleading: the loop
error is dispatched by Chromium after the observation phase, so the
DisposableResizeObserver name recorded is simply whichever observer
fired last, not the one that caused the loop.

The actual cause is in ChatListItemRenderer. Row templates observed
their rowContainer for the entire template lifetime, but the chat list
is virtualized and recycles rows. When an observation phase disconnects
an observed target, its notification can never be delivered, and the
browser raises the loop error.

Bind the row observation to mount state using the existing
connection-observer element: observe on connect, clear on disconnect.
This is synchronous with mount, so it needs no frame deferral.

Also stop ChatViewPane's stacked-sessions input-height autorun from
re-entering inputPart.layout(). It now uses a targeted path that
updates the height budget and lays out only list-side surfaces.

Adds a component-explorer harness with fully mocked model traffic and a
Playwright regression covering four host-layout scenarios, plus a unit
test locking the targeted layout dispatch order.

Refs #316501

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: aacd276e-cf84-48bd-a2ab-6f6a4d4c3431
2026-07-28 12:04:41 -07:00
4b6f5e55bb chore: bump electron@42.5.0 (#321629)
* chore: bump electron@42.4.0

* chore: apply temp dir workaround for short paths

* chore: use 24.15.x for CI node

* chore: update nodejs build

* chore: bump electron@42.5.0

* fix: unblock playwright install on node 24.17

Node 24.16+ made Readable pause()/resume() a no-op on destroyed streams
which makes yauzl 2.x / extract-zip 2.x and older playwright extraction
hang forever.

- extensions/copilot: add "yauzl": "^3.3.1" override (was missed by #318682)
  so electron and @vscode/vsce no longer resolve the broken yauzl 2.10, fixing the
  hung `npm ci` in the Copilot and Extract chat-lib pipelines.
- extensions/copilot: bump electron ^39.8.5 -> ^42.5.0 so its install
  script uses the native @electron-internal/extract-zip instead of extract-zip.
- bump @playwright/test ^1.56.1 -> ^1.61.1 so `playwright install`
  uses the fixed extractor, unblocking the "Download Electron and
  Playwright" step in all electron test pipelines.

* chore: update build

* agentHost: fix macOS sandbox smoke sentinel parsing

On macOS CI, the AgentHost sandbox smoke test resolves the shell to
/bin/sh, which uses the sentinel-based completion path. In that path, the
parser could consume the echoed sentinel command text
(`<<<COPILOT_SENTINEL_..._EXIT_$?>>>`) before the real numeric marker
arrived, causing a false `Exit code: -1` failure even though the command
later completed successfully.

Harden the sentinel parser to ignore echoed/non-numeric sentinel text
and use the latest complete numeric marker instead. Also force the
macOS AgentHost sandbox smoke test to use /bin/sh and assert that in the
suite log so local runs exercise the same path as CI.

Adds a regression test for echoed sentinel command text.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: update screenshot baseline after playwright bump

* chore: bump distro

* chore: fix typecheck

* chore: bump distro

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-29 13:53:48 +00:00
RoboandGitHub 8748be1f1a feat: update to Electron v42 (#316661)
* feat: update to Electron v42

* chore: drop support for arm 32-bit server

* chore: update types/node to v24.x

* chore: temporarily lock the target version for build/

* chore: update v8-source-location.patch

* chore: fix clippy

* chore: cleanup armhf server ci config

* fix: broken lock file

* fix: c++ version requirement for sysroot builds

* fix: msvc compilation of native modules

* fix: handle rejections for fire-and-forget loadurl

* fix: windows build

* ci: fix teardown of daemon process on windows

```
2026-05-15T20:55:09.7717127Z Assertion failed: !(handle->flags & UV_HANDLE_CLOSING), file src\win\async.c, line 76
```

* chore: update deb and rpm dependencies

* chore: update version info

* spec: improve reliablity of offscreencanvas tests

* spec: retry EPERM failures on teardown

* chore: update x86_64 rpm deps

* ci: exclude server binskim for armhf

* temp: bump distro

* test: ignore deprecation warnings treated as errors

* chore: update lockfile

* fix: externalize electron from auth extension bundles

 Error: Cannot find module 'c:\Users\cloudtest\AppData\Local\Temp\vscode-sanityQvCaze\vscode-server-win32-x64-web\extensions\github-authentication\dist\install.js'
     at Module._resolveFilename (node:internal/modules/cjs/loader:1476:15)
     at wrapResolveFilename (node:internal/modules/cjs/loader:1049:27)
     at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1073:10)
     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1094:12)
     at Module._load (node:internal/modules/cjs/loader:1262:25)
     at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
     at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
     at node:internal/main/run_main_module:33:47 {
   code: 'MODULE_NOT_FOUND',
   requireStack: []
 }

 Node.js v24.15.0

* test: make wsl sanity tests reliable

* chore: bump electron@42.1.0

* temp: bump distro

* chore: bump electron@42.2.0

* chore: bump distro

* chore: update debian dependencies

* Revert "test: make wsl sanity tests reliable"

This reverts commit b3f2b63e83.

* test: do not fail for deprecation warnings

* chore: patch node24 server binary for wsl1

* chore: address review feedback

* chore: revert global navigation error handler in browserview

* chore: bump distro
2026-05-27 14:57:41 +02:00
Henning DieterichsandHenning Dieterichs cbefeb3643 add logs on failure 2026-04-01 11:51:29 +02:00
Henning DieterichsandHenning Dieterichs 6e701d61b3 Adds playwright component fixture tests 2026-04-01 11:51:29 +02:00