Commit Graph
1835 Commits
Author SHA1 Message Date
Pierre Tachoire a3b576abd8 Merge pull request #656 from lightpanda-io/module-exception
module: report module's evaluation error
2025-05-17 11:17:28 +02:00
Pierre Tachoire 2261eac288 expection: fix non-nullable return 2025-05-17 11:02:37 +02:00
Karl Seguin 9366729d7a Merge pull request #655 from lightpanda-io/dom-parser
add DOMParser
2025-05-17 09:56:32 +08:00
Karl Seguin ad1a4fe450 Merge pull request #652 from lightpanda-io/transfer_arena
Introduce a "transfer_arena"
2025-05-17 09:44:21 +08:00
Pierre Tachoire 9f97725894 module: report module's evaluation error 2025-05-16 20:27:41 +02:00
Muki Kiboigo bff3d27518 add DOMParser 2025-05-16 09:56:18 -07:00
Karl Seguin 2bc1192ad3 reduce lifetime of transfer_arena 2025-05-16 22:04:13 +08:00
Karl Seguin afd29fef81 Merge pull request #651 from lightpanda-io/html_all_collection
Rework HTMLAllCollection
2025-05-16 17:26:26 +08:00
Karl Seguin 071a4f97e5 Introduce a "transfer_arena"
Some data has to exist specifically for the navigation of one page to another.
For example, if a hyperlink is clicked, the URL begins its life with the
original page, but is transferred to the new page. The page_arena cannot be used
for such data.

It's possible to use the session_arena, but it's lifetime is much longer and,
given enough navigation, could accumulate a lot of memory.

The new transfer_arena exists within the session, but only exists until the
next navigation.

While currently only used for the navigation URL, the main goal here is to have
a place to put the request body on form submission, which has a lifetime similar
to a click url.

While I'm at it, I promoted the existing session arena and the new transfer
arena to the browser, allowing better memory re-use between sessions.
2025-05-16 15:53:25 +08:00
Karl Seguin 04c990de89 Merge pull request #649 from lightpanda-io/html_collection_named_properties
Fix HTMLCollection named property issues
2025-05-16 14:47:02 +08:00
Karl Seguin b08ffcc437 Rework HTMLAllCollection
Capture its unique properties:
1- instances are falsy, and
2- instance can be called as a function

The behavior is used for browser detection (i.e. duckduckgo treats us as a
legacy browser because we document.all != false)
2025-05-16 13:39:27 +08:00
Karl Seguin 1a83e69669 Fix HTMLCollection named property issues
1 - Named properties should not be enumerable
2 - Empty key should always result in a null/undefined (depending on the API)
    even if there's an element with an empty id/name

To address the first issue, we now require PropertyAttributes to be specified
when setting an object's value.
2025-05-16 11:31:52 +08:00
Karl Seguin 210d4f6aa1 Merge pull request #620 from lightpanda-io/upgrade_v8
Upgrade v8
2025-05-16 08:17:15 +08:00
Karl Seguin b559506d4e remove unecessary space 2025-05-16 08:10:16 +08:00
Karl Seguin 3fec6ff5bc Merge pull request #643 from lightpanda-io/add_event_listener_options
Support the capture field of the addEventListener option
2025-05-15 22:48:55 +08:00
Karl Seguin ce74307172 Merge pull request #646 from lightpanda-io/split_browser_file
Move Session, Page and Renderer into their own respective files
2025-05-15 22:48:35 +08:00
Karl Seguin e44e68f8fc Move Session, Page and Renderer into their own respective files 2025-05-15 22:43:50 +08:00
Karl Seguin eff1341088 Merge pull request #647 from lightpanda-io/form_data
add FormData web API
2025-05-15 17:34:02 +08:00
Karl Seguin ddd35e3d80 Merge pull request #641 from lightpanda-io/js_debug_helpers
Make Callback.printFunc public
2025-05-15 16:44:31 +08:00
Karl Seguin 265272b9d3 move FormData to xhr folder 2025-05-15 16:39:49 +08:00
Karl Seguin 206e34ac80 Explicit error if an AddEventListenerOption flag is set that we dont' support 2025-05-15 13:32:40 +08:00
Karl Seguin ea556ff201 Merge pull request #635 from lightpanda-io/http_proxy
add direct http proxy support
2025-05-15 12:58:54 +08:00
Karl Seguin 110dc751a4 add FormData web API 2025-05-15 12:44:24 +08:00
Karl Seguin 46546def28 Merge pull request #638 from lightpanda-io/DOM-scoll-and-quads
scrollIntoViewIfNeeded, getContentQuads, innerWidth/Heigh
2025-05-15 09:12:00 +08:00
sjorsdonkers 48de14ade3 null JS tests where we are not checking the output 2025-05-14 17:17:58 +02:00
sjorsdonkers f74647ccfc Allign error detection 2025-05-14 17:13:56 +02:00
sjorsdonkers b92a85f0a9 Cleanup and inner dimensions 2025-05-14 17:13:55 +02:00
sjorsdonkers 853965e7a9 scollifneeded and contentQuads wip 2025-05-14 17:13:55 +02:00
Karl Seguin 6f9dd8d7cd Make expected runtime runner value optional to skip assertion 2025-05-14 16:18:53 +02:00
Karl Seguin 905eb1a93f Make expected runner value optional to skip assertion 2025-05-14 16:18:53 +02:00
Karl Seguin 7862fc7cb7 Merge pull request #640 from lightpanda-io/script_nomodule
Don't load script tags with the nomodule attribute
2025-05-14 18:30:26 +08:00
Karl Seguin 903168b3a6 Support the capture field of the addEventListener option
addEventListener can take a boolean (capture, already supported) or an object
of options. This adds union support for the two, but only supports the `capture`
field of the options object.

The other fields are not supported by netsurf.
2025-05-14 18:24:41 +08:00
Karl Seguin 5e8fcb579f print value using toDetailString 2025-05-14 17:56:00 +08:00
Karl Seguin fae018b4ea Make Callback.printFunc public
When calling a Zig function from JS fails due to a parameter type error,
log.debug information about the function and parameters.
2025-05-14 17:37:46 +08:00
Karl Seguin dc0e278a24 Don't load script tags with the nomodule attribute
These tags should not be loaded as we support ES modules.
2025-05-14 16:50:34 +08:00
Karl Seguin aaa34ab860 link libc_v8.a in correct directory 2025-05-14 15:19:47 +08:00
Karl Seguin 66638cab33 update v8 revision 2025-05-14 15:02:55 +08:00
Karl Seguin a729a61100 zig fmt build.zig 2025-05-14 11:27:49 +08:00
Karl Seguin 23b39c6a63 return explicit intercept state from named/indexed getters 2025-05-14 11:27:48 +08:00
Karl Seguin 37467d3753 remove debug statement 2025-05-14 11:27:39 +08:00
Karl Seguin 8d3a378761 remove unused import, add debug statement 2025-05-14 11:27:39 +08:00
Karl Seguin 3993f9c2bb update to latest zig-v8-fork add unzip to apt get install sample 2025-05-14 11:27:37 +08:00
Karl Seguin b542762dce update zig-v8 dep for proper named property masking flag 2025-05-14 11:27:25 +08:00
Karl Seguin 35b2ea870d use zig-v8-fork v8_upgrade branch 2025-05-14 11:26:48 +08:00
sjorsdonkers b2605dd30c cancelAnimationFrame and test 2025-05-13 18:24:10 +02:00
sjorsdonkers 18b04e2999 requestAnimationFrame 2025-05-13 18:24:10 +02:00
sjorsdonkers 54c2dedac0 expectEqual and naming 2025-05-13 17:42:35 +02:00
sjorsdonkers 0efa6661b8 fix units of reslution to microsec 2025-05-13 17:42:35 +02:00
sjorsdonkers 42d0532580 cleanup 2025-05-13 17:42:35 +02:00
sjorsdonkers 8d5f7c8d3e performance now 2025-05-13 17:42:35 +02:00