feat(browser): per-site appearance and zoom, from the page menu and Cmd/Ctrl +/-/0 (#31621)

This commit is contained in:
Kelvin Amoaba
2026-10-21 23:47:12 +00:00
committed by GitHub
parent 7e795b6be6
commit c5e07bc3af
55 changed files with 1285 additions and 806 deletions
+16
View File
@@ -1,4 +1,9 @@
import type { BrowserSetAnnotationViewportBridgeArgs } from '../../shared/browser-annotation-viewport-bridge'
import type {
BrowserPageSiteDisplay,
BrowserSiteColorScheme
} from '../../shared/browser-site-display'
import type { BrowserPageZoomDirection } from '../../shared/browser-page-zoom'
import type {
BrowserIdentityModeSetResult,
BrowserIdentityModeStatus,
@@ -96,6 +101,17 @@ export type BrowserApi = {
browserPageId: string
override: BrowserViewportOverride | null
}) => Promise<boolean>
getPageSiteDisplay: (args: { browserPageId: string }) => Promise<BrowserPageSiteDisplay | null>
/** Zooms the page's site in its browser profile, or resets it to Default Zoom. */
zoomPage: (args: {
browserPageId: string
direction: BrowserPageZoomDirection
}) => Promise<BrowserPageSiteDisplay | null>
/** Null makes the site match Orca's theme again. */
setPageSiteColorScheme: (args: {
browserPageId: string
colorScheme: BrowserSiteColorScheme | null
}) => Promise<BrowserPageSiteDisplay | null>
reportViewportScrollState?: (args: {
browserPageId: string
state: BrowserViewportScrollState
@@ -1,5 +1,10 @@
import { ipcRenderer } from 'electron'
import type { BrowserViewportOverride } from '../../shared/browser-workspace-types'
import type {
BrowserPageSiteDisplay,
BrowserSiteColorScheme
} from '../../shared/browser-site-display'
import type { BrowserPageZoomDirection } from '../../shared/browser-page-zoom'
import type {
BrowserWebAuthnAccountRequest,
BrowserWebAuthnAccountResponse
@@ -74,6 +79,17 @@ export const browserGuestRegistrationAndDownloadsApi = {
browserPageId: string
override: BrowserViewportOverride | null
}): Promise<boolean> => ipcRenderer.invoke('browser:setViewportOverride', args),
getPageSiteDisplay: (args: { browserPageId: string }): Promise<BrowserPageSiteDisplay | null> =>
ipcRenderer.invoke('browser:getPageSiteDisplay', args),
zoomPage: (args: {
browserPageId: string
direction: BrowserPageZoomDirection
}): Promise<BrowserPageSiteDisplay | null> => ipcRenderer.invoke('browser:zoomPage', args),
setPageSiteColorScheme: (args: {
browserPageId: string
colorScheme: BrowserSiteColorScheme | null
}): Promise<BrowserPageSiteDisplay | null> =>
ipcRenderer.invoke('browser:setPageSiteColorScheme', args),
reportViewportScrollState: (args: {
browserPageId: string
state: {