Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
fe9b9e0
feat: add Windows headed browser foundation
adybag14-cyber Mar 6, 2026
dc8f177
Merge fork/main into fork/headed-mode-foundation
adybag14-cyber Mar 7, 2026
c943a98
feat: expand Windows browser shell overlays
adybag14-cyber Mar 7, 2026
2ba8ffd
chore: drop generated find probe artifact
adybag14-cyber Mar 7, 2026
a24ad4f
feat: add Windows headed tabs foundation
adybag14-cyber Mar 7, 2026
0576983
feat: add headed tab session restore
adybag14-cyber Mar 7, 2026
9292a0e
feat: add headed downloads manager
adybag14-cyber Mar 7, 2026
a04e0e5
feat: add headed browser settings overlay
adybag14-cyber Mar 7, 2026
a46e232
feat: add headed popup and tab shell behaviors
adybag14-cyber Mar 7, 2026
1c10f2f
feat: stabilize headed popup form tabs
adybag14-cyber Mar 7, 2026
c100ada
feat: add named-target popup tab routing
adybag14-cyber Mar 7, 2026
078e222
feat: stabilize headed named-target popups
adybag14-cyber Mar 7, 2026
112f4c4
feat: preserve DOM semantics for rendered link clicks
adybag14-cyber Mar 7, 2026
d39a8ab
feat: stabilize headed script popup flows
adybag14-cyber Mar 8, 2026
64169ac
feat: add headed script popup policy controls
adybag14-cyber Mar 8, 2026
aa6a651
feat: add headed internal browser pages
adybag14-cyber Mar 8, 2026
4994dae
feat: make internal browser pages actionable
adybag14-cyber Mar 8, 2026
167c184
feat: promote internal browser pages to primary shell
adybag14-cyber Mar 8, 2026
38b948c
feat: add internal tabs page and tab route actions
adybag14-cyber Mar 8, 2026
ae7b2cc
feat: strengthen internal browser pages
adybag14-cyber Mar 8, 2026
d24ce9d
feat: deepen internal browser page interactions
adybag14-cyber Mar 8, 2026
a00bbd0
feat: add headed browser error pages
adybag14-cyber Mar 8, 2026
1e9f199
feat: add live filters to internal browser pages
adybag14-cyber Mar 8, 2026
7346d4a
feat: add internal page new-tab actions
adybag14-cyber Mar 8, 2026
372edb0
feat: add sort state to internal browser pages
adybag14-cyber Mar 8, 2026
ef82674
feat: add live bookmark and download page mutations
adybag14-cyber Mar 8, 2026
963b94f
feat: add live history mutations to browser pages
adybag14-cyber Mar 8, 2026
cec1092
feat: promote attachment navigations into downloads
adybag14-cyber Mar 8, 2026
e69ac67
feat: adopt attachment responses into downloads
adybag14-cyber Mar 8, 2026
334dcfe
feat: add headed file upload flows
adybag14-cyber Mar 8, 2026
7fbe4d6
test: extend headed upload integration coverage
adybag14-cyber Mar 9, 2026
2b1e41b
feat: add headed multi-file upload flows
adybag14-cyber Mar 9, 2026
5430532
feat: honor accept hints in headed file chooser
adybag14-cyber Mar 9, 2026
05bc52b
feat: move headed network images onto shared http runtime
adybag14-cyber Mar 9, 2026
e9a65fc
feat: apply page policy to headed image fetches
adybag14-cyber Mar 9, 2026
8ee9601
feat: stabilize headed image policy fetches
adybag14-cyber Mar 9, 2026
224501e
feat: add auth policy to headed image fetches
adybag14-cyber Mar 9, 2026
b9ddac9
feat: honor anonymous policy for headed image fetches
adybag14-cyber Mar 9, 2026
3341349
feat: classify headed images as image subresources
adybag14-cyber Mar 9, 2026
d84ffb7
feat: inherit page auth for same-origin subresources
adybag14-cyber Mar 9, 2026
fa095b4
feat: load protected stylesheets on shared runtime
adybag14-cyber Mar 9, 2026
54fa1d2
feat: apply shared-runtime stylesheets to computed style
adybag14-cyber Mar 9, 2026
54a4310
feat: honor anonymous policy for shared-runtime stylesheets
adybag14-cyber Mar 10, 2026
649b29c
feat: honor anonymous policy for shared-runtime scripts
adybag14-cyber Mar 10, 2026
2e52868
feat: add shared-runtime module policy coverage
adybag14-cyber Mar 11, 2026
de88834
feat: add shared-runtime stylesheet import coverage
adybag14-cyber Mar 11, 2026
0ac5a31
feat: add shared-runtime font face loading
adybag14-cyber Mar 11, 2026
6a637f5
feat: honor authored fonts in headed text rendering
adybag14-cyber Mar 11, 2026
da5cff7
feat: render private font faces in headed mode
adybag14-cyber Mar 11, 2026
9a9510b
feat: prefer renderable font face fallbacks
adybag14-cyber Mar 11, 2026
0665921
feat: render private woff2 fonts in headed mode
adybag14-cyber Mar 11, 2026
e05bf74
feat: render private woff fonts in headed mode
adybag14-cyber Mar 11, 2026
4b4ba7a
feat: measure headed text and button layout
adybag14-cyber Mar 11, 2026
00358de
feat: keep mixed inline text on one headed flow row
adybag14-cyber Mar 11, 2026
4ff3217
feat: handle wrapped and br mixed inline flow
adybag14-cyber Mar 11, 2026
18af896
test: cover wrapped mixed inline link clicks
adybag14-cyber Mar 11, 2026
214165d
test: cover later mixed inline link fragments
adybag14-cyber Mar 11, 2026
59f7dd5
test: cover mixed inline control interaction
adybag14-cyber Mar 11, 2026
67a27e7
test: cover mixed inline control keyboard flows
adybag14-cyber Mar 11, 2026
f9b58dd
test: cover mixed inline control link coexistence
adybag14-cyber Mar 11, 2026
365cde5
test: cover dense mixed inline focus traversal
adybag14-cyber Mar 11, 2026
1686b34
test: cover mixed inline checkbox link coexistence
adybag14-cyber Mar 11, 2026
b103135
test: cover dense mixed inline checkbox button link flow
adybag14-cyber Mar 11, 2026
51eecb6
test: cover mixed inline radio link coexistence
adybag14-cyber Mar 11, 2026
fa9d5e0
test: cover dense mixed inline radio button link flow
adybag14-cyber Mar 11, 2026
9e842ce
test: cover dense mixed inline selection control flow
adybag14-cyber Mar 11, 2026
5a44118
test: cover dense mixed inline radio pair flow
adybag14-cyber Mar 11, 2026
5dec5fc
test: cover dense mixed inline checkbox pair flow
adybag14-cyber Mar 11, 2026
0460f5d
test: cover mixed inline checkbox submit flow
adybag14-cyber Mar 11, 2026
7bee5ea
test: cover mixed inline radio submit flow
adybag14-cyber Mar 11, 2026
9f04d0a
test: cover mixed inline checkbox input submit flow
adybag14-cyber Mar 11, 2026
5f4988e
test: cover mixed inline radio input submit flow
adybag14-cyber Mar 11, 2026
dcfaeae
test: cover mixed inline checkbox radio input submit flow
adybag14-cyber Mar 11, 2026
4022998
test: cover dense mixed inline family submit flow
adybag14-cyber Mar 11, 2026
6996cb8
test: cover dense mixed inline two input submit flow
adybag14-cyber Mar 11, 2026
d6eed80
test: cover dense mixed inline submit link coexistence
adybag14-cyber Mar 11, 2026
2bc0a03
test: cover dense mixed inline two-link submit flow
adybag14-cyber Mar 11, 2026
70c33e4
test: cover dense mixed inline three-link submit flow
adybag14-cyber Mar 11, 2026
d0be4b1
test: cover dense mixed inline four-link submit flow
adybag14-cyber Mar 11, 2026
d038b60
test: cover dense mixed inline five-link submit flow
adybag14-cyber Mar 11, 2026
71407d2
test: cover dense mixed inline six-link submit flow
adybag14-cyber Mar 11, 2026
b8f3f28
test: cover dense mixed inline seven-link submit flow
adybag14-cyber Mar 11, 2026
20ad65c
feat: add bookmark bulk open and eight-link inline gates
adybag14-cyber Mar 11, 2026
b3b26f2
feat: add downloads page shell actions
adybag14-cyber Mar 11, 2026
d704cd0
feat: persist headed cookies across tabs and restart
adybag14-cyber Mar 12, 2026
9d01ad3
feat: add headed canvas 2d rendering
adybag14-cyber Mar 12, 2026
f61cd28
feat: add canvas drawImage rendering
adybag14-cyber Mar 12, 2026
7613f60
feat: add headed canvas image path and webgl slices
adybag14-cyber Mar 12, 2026
be8b6ce
feat: persist headed local storage across tabs and restart
adybag14-cyber Mar 12, 2026
343a3ea
feat: add headed storage and fetch policy gates
adybag14-cyber Mar 13, 2026
3959911
feat: add headed storage events and canvas text
adybag14-cyber Mar 13, 2026
dad6a76
feat: support request and fetch abort signals
adybag14-cyber Mar 13, 2026
b2b3a39
feat: add canvas measureText metrics
adybag14-cyber Mar 13, 2026
930b878
feat: persist headed indexed db across tabs and restart
adybag14-cyber Mar 14, 2026
7e6a7ac
feat: add headed websocket and richer web platform coverage
adybag14-cyber Mar 14, 2026
fa382ca
feat: deepen headed websocket indexeddb and webgl
adybag14-cyber Mar 14, 2026
42a573a
feat: deepen headed websocket indexeddb and webgl
adybag14-cyber Mar 14, 2026
6cc3802
fix: harden headed startup and land first layout slice
adybag14-cyber Mar 15, 2026
a75bdf7
feat: deepen headed selector and layout compatibility
adybag14-cyber Mar 15, 2026
5c11223
feat: deepen headed selector and fixed layout behavior
adybag14-cyber Mar 15, 2026
2d5d48f
feat: deepen headed css layout and screenshot readiness
adybag14-cyber Mar 15, 2026
3143ac5
feat: improve headed legacy css and layout compatibility
adybag14-cyber Mar 15, 2026
1d232b7
feat: improve headed z-order and screenshot readiness
adybag14-cyber Mar 15, 2026
524dab2
feat: render background images in headed mode
adybag14-cyber Mar 15, 2026
9af43b7
feat: honor border radius in headed painting
adybag14-cyber Mar 15, 2026
01da4d6
feat: improve intrinsic image and background sizing
adybag14-cyber Mar 15, 2026
90eacd1
feat: clip headed overflow interactions and box heights
adybag14-cyber Mar 15, 2026
3f83923
feat: improve headed layout cascade and scrolling
adybag14-cyber Mar 17, 2026
9997b08
feat: stabilize overflow auto scroll click paths
adybag14-cyber Mar 18, 2026
9367447
feat: add headed translate transform support
adybag14-cyber Mar 18, 2026
304618e
feat: improve opacity and text rendering readiness
adybag14-cyber Mar 18, 2026
4192902
feat: add headed content-box sizing support
adybag14-cyber Mar 18, 2026
12b3b1b
feat: add headed image fit layout fidelity
adybag14-cyber Mar 18, 2026
2bab2ec
feat: broaden headed flex layout semantics
adybag14-cyber Mar 18, 2026
097f994
feat: cache headed layout boxes for geometry reuse
adybag14-cyber Mar 18, 2026
f948341
docs: update tracker with current headed progress
adybag14-cyber Mar 18, 2026
b8c3876
feat: paint headed box shadows and track flex fixtures
adybag14-cyber Mar 18, 2026
d3e9f02
feat: add explicit profile root abstraction
adybag14-cyber Mar 18, 2026
3bc3a61
docs: add bare metal 25-deliverable batch
adybag14-cyber Mar 19, 2026
84b682a
baremetal: add host services and backend scaffolding
adybag14-cyber Mar 19, 2026
bb50a59
baremetal: finalize downloads shell delete path
adybag14-cyber Mar 19, 2026
fe75540
baremetal: add launch bundle smoke
adybag14-cyber Mar 19, 2026
fd8d080
baremetal: add zig release step
adybag14-cyber Mar 19, 2026
fccd5f5
baremetal: add zig release bundle step
adybag14-cyber Mar 19, 2026
c987b9b
baremetal: add release policy smoke
adybag14-cyber Mar 19, 2026
b71b9b0
baremetal: add packaged download release smoke
adybag14-cyber Mar 19, 2026
b19f88c
baremetal: add shell shortcut release smoke
adybag14-cyber Mar 20, 2026
b615f75
baremetal: add address bar commit flow
adybag14-cyber Mar 20, 2026
357efa2
baremetal: finish tabs session restore smoke
adybag14-cyber Mar 20, 2026
e1bd1d4
baremetal: add bookmarks settings persistence smoke
adybag14-cyber Mar 20, 2026
dc47017
baremetal: add storage persistence release smokes
adybag14-cyber Mar 20, 2026
7677656
headed: harden restore input and layout paths
adybag14-cyber Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
/.zig-cache/
/.lp-cache/
/.lp-cache-win/
zig-out
lightpanda.id
/src/html5ever/target/
/html5ever-test/
src/snapshot.bin
/_link_trace.log
/_msvc_link.log
/_msvc_use_lld_false.log
/_msvc_use_lld_false_rel.log
/tmp-browser-smoke/**/*.stdout.txt
/tmp-browser-smoke/**/*.stderr.txt
/tmp-browser-smoke/**/*.out.txt
/tmp-browser-smoke/**/*.err.txt
/tmp-browser-smoke/**/*.before.png
/tmp-browser-smoke/headed-smoke.png
/tmp-browser-smoke/links.bmp
/tmp-browser-smoke/flow-layout/flow-layout.png
/tmp-browser-smoke/image-smoke/headed-image-smoke.png
/tmp-browser-smoke/inline-flow/inline-flow.png
/tmp-browser-smoke/multi-image/multi-image.png
/tmp-browser-smoke/wrapped-link/wrapped-before.png
/tmp-browser-smoke/wrapped-link/wrapped-base-before.png
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,35 @@ INFO app : server running . . . . . . . . . . . . . . . . . [+0ms]
address = 127.0.0.1:9222
```

### Browser mode switch (fork)

This fork adds a browser mode switch on `fetch` and `serve`:

```console
./lightpanda serve --browser_mode headed
```

Shortcuts are available:
- `--headed`
- `--headless`

`headed` is currently experimental.
- On Windows targets, it starts a native headed window lifecycle backend.
- Windows headed mode now forwards native mouse (down/up/move/wheel/hwheel), click, keydown/keyup (including repeat state), text input (`WM_CHAR`/`WM_UNICHAR`), IME result/preedit composition messages (`WM_IME_COMPOSITION`), back/forward mouse buttons, and window blur into page input, with caret-aware text insertion, `Ctrl/Meta + A` select-all, word-wise caret/edit shortcuts (`Ctrl/Meta + ArrowLeft/ArrowRight`, `Ctrl/Meta + Backspace/Delete`), textarea vertical/line navigation (`ArrowUp/ArrowDown`, line-aware `Home/End`, document `Ctrl/Meta + Home/End`), `Tab`/`Shift+Tab` focus traversal (including positive `tabindex` ordering), and native clipboard shortcuts (`Ctrl/Meta + C/X/V`, `Ctrl+Insert`, `Shift+Insert`, `Shift+Delete`) for text controls. Clipboard shortcuts now dispatch cancelable `copy`/`cut`/`paste` events first and respect `preventDefault()`.
- On non-Windows targets, it safely falls back to headless execution.

Viewport sizing is configurable for both modes:
- `--window_width <px>`
- `--window_height <px>`

CDP viewport control is also wired in this fork:
- `Emulation.setDeviceMetricsOverride`
- `Emulation.clearDeviceMetricsOverride`
- `Browser.setWindowBounds` (width/height)

Windows run/build guide for this fork:
- [`docs/WINDOWS_FULL_USE.md`](docs/WINDOWS_FULL_USE.md)

Once the CDP server started, you can run a Puppeteer script by configuring the
`browserWSEndpoint`.

Expand Down
Loading
Loading