Skip to content

Add browser emulation toolbar#317831

Merged
kycutler merged 2 commits into
mainfrom
kycutler/emulation
May 21, 2026
Merged

Add browser emulation toolbar#317831
kycutler merged 2 commits into
mainfrom
kycutler/emulation

Conversation

@kycutler
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings May 21, 2026 18:56
@kycutler kycutler self-assigned this May 21, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a device-emulation toolbar and supporting plumbing for the integrated browser editor, enabling viewport sizing, DPR/user-agent/mobile toggles, and interactive resize handles that drive Chromium’s device emulation.

Changes:

  • Introduces a browser editor emulation contribution with toolbar UI, context keys, actions, and resize sashes.
  • Extends the browser view model/service contracts to support device profiles and screen emulation bounds.
  • Updates browser editor layout to support contribution-driven container sizing + emulation data pushed to the main process.
Show a summary per file
File Description
src/vs/workbench/contrib/browserView/electron-browser/media/browser.css Adds styles for the emulation toolbar and resize sashes; adjusts container wrapper layout to flex-center the viewport.
src/vs/workbench/contrib/browserView/electron-browser/features/browserEditorEmulationFeatures.ts New emulation toolbar + contribution, including actions (presets/UA/mobile/reset) and interactive resizing.
src/vs/workbench/contrib/browserView/electron-browser/browserViewActions.ts Adds a “Developer” action group to place emulation-related actions.
src/vs/workbench/contrib/browserView/electron-browser/browserView.contribution.ts Wires the emulation feature into the browser view contribution entrypoint.
src/vs/workbench/contrib/browserView/electron-browser/browserEditor.ts Adds container-ready/layout override hooks for contributions and pushes emulation bounds through layout calls.
src/vs/workbench/contrib/browserView/common/browserView.ts Extends the workbench-side model with device, device-change event, and setDevice.
src/vs/platform/browserView/electron-main/browserViewMainService.ts Exposes device-emulation event + setter on the main-process browser view service.
src/vs/platform/browserView/electron-main/browserViewEmulator.ts New main-process emulator applying UA/touch/media overrides and Chromium device emulation settings.
src/vs/platform/browserView/electron-main/browserView.ts Instantiates the emulator, includes device in state, and applies screen emulation during layout.
src/vs/platform/browserView/common/browserView.ts Extends shared contracts: emulation bounds, device/screen profile types, service event + method.
src/vs/platform/actions/common/actions.ts Adds MenuId.BrowserEmulationToolbar for the toolbar action menu.

Copilot's findings

  • Files reviewed: 11/11 changed files
  • Comments generated: 2

@kycutler kycutler marked this pull request as ready for review May 21, 2026 20:37
@vs-code-engineering
Copy link
Copy Markdown
Contributor

vs-code-engineering Bot commented May 21, 2026

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

@jruales

Matched files:

  • src/vs/platform/browserView/common/browserView.ts
  • src/vs/platform/browserView/electron-main/browserView.ts
  • src/vs/platform/browserView/electron-main/browserViewEmulator.ts
  • src/vs/platform/browserView/electron-main/browserViewMainService.ts
  • src/vs/workbench/contrib/browserView/common/browserView.ts
  • src/vs/workbench/contrib/browserView/electron-browser/browserEditor.ts
  • src/vs/workbench/contrib/browserView/electron-browser/browserView.contribution.ts
  • src/vs/workbench/contrib/browserView/electron-browser/browserViewActions.ts
  • src/vs/workbench/contrib/browserView/electron-browser/features/browserEditorEmulationFeatures.ts
  • src/vs/workbench/contrib/browserView/electron-browser/media/browser.css

dmitrivMS
dmitrivMS previously approved these changes May 21, 2026
@kycutler kycutler enabled auto-merge (squash) May 21, 2026 21:35
@kycutler kycutler merged commit 46050be into main May 21, 2026
25 checks passed
@kycutler kycutler deleted the kycutler/emulation branch May 21, 2026 21:57
@vs-code-engineering vs-code-engineering Bot added this to the 1.122.0 milestone May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants