Karl Seguin
269dcf071f
Merge pull request #806 from lightpanda-io/document-range
...
add AbstractRange and Range
2025-06-25 07:41:52 +08:00
Karl Seguin
997ec7f0bc
Merge pull request #805 from lightpanda-io/performance-mark
...
add PerformanceEntry and PerformanceMark
2025-06-25 07:41:19 +08:00
Muki Kiboigo
ce638c39e3
add AbstractRange and Range
2025-06-24 12:06:50 -07:00
Muki Kiboigo
6b651cd5e4
add PerformanceEntry and PerformanceMark
2025-06-24 12:04:28 -07:00
Karl Seguin
8a005bc5a1
Merge pull request #808 from lightpanda-io/accept-header
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
http: send an Accept: */* header
2025-06-24 09:42:14 +08:00
Pierre Tachoire
20aabee72e
http: send an Accept: */* header
2025-06-23 18:18:04 -07:00
Karl Seguin
a00c2345ee
Merge pull request #802 from lightpanda-io/endless_loop_fix_and_dot_slash_stitch
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
Don't allow timeouts to be registered when shutting down
2025-06-24 08:57:59 +08:00
Karl Seguin
cb35b3624a
Merge pull request #803 from lightpanda-io/inline_module_no_cache
...
Fix module caching
2025-06-24 08:55:23 +08:00
Karl Seguin
c6f59a7aa6
Merge pull request #804 from lightpanda-io/add_error_event_web_api
...
add ErrorEvent webapi
2025-06-24 08:54:01 +08:00
Karl Seguin
bf296ad797
add ErrorEvent webapi
2025-06-23 19:04:59 +08:00
Karl Seguin
256540934b
reject long timeouts as we're shutting down
2025-06-23 17:27:22 +08:00
Karl Seguin
3c07c0818d
improve variable names
2025-06-23 17:19:30 +08:00
Karl Seguin
a01d18ace1
Fix module caching
...
In https://github.com/lightpanda-io/browser/pull/798 module caching was added.
This was necessary as the same module loaded multiple time should result in the
same v8 module instance.
To make this work, modules became cached by their full URL. The full URL of one
module was also used to determine the full URL of nested modules (full url +
specifier).
With inline scripts, the page URL was used as the full URL. While this is
correct when resolving nested modules, it's incorrect for caching the module
itself. Two inline modules on a page share the same URL, but they aren't the
same and should be cached.
To fix this, inline modules still inherit the page URL, in order to resolve the
correct URL for nested modules, but are themselves never cached.
2025-06-23 17:10:54 +08:00
Karl Seguin
55e02f01dc
fix wpt runner
2025-06-23 16:47:31 +08:00
Karl Seguin
fe6ccad485
loop.run now takes a maximum wait time
2025-06-23 16:43:28 +08:00
Karl Seguin
11fe79312d
Don't allow timeouts to be registered when shutting down
...
Currently, a timeout that sets a timeout can cause loop.run to block forever.
Also, cleanup URL stitch with leading './'. The resulting URL was valid, but
since we use the URL as the module cache key, it's important to resolve various
representations of the same URL in the same way.
2025-06-23 15:01:58 +08:00
Karl Seguin
bdb2338b5b
Merge pull request #796 from lightpanda-io/docker
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
update dockerfile to multi-arch
2025-06-23 12:51:20 +08:00
Karl Seguin
bbafb048d0
Merge pull request #798 from lightpanda-io/module_loading
...
Fix module loading
2025-06-23 08:54:17 +08:00
Karl Seguin
9fc2fa51bd
Merge pull request #797 from lightpanda-io/template_content
...
add HTML Template's content attribute
2025-06-23 08:54:00 +08:00
Karl Seguin
d8ec50345a
Fix module loading
...
When V8 calls the ResolveModuleCallback that we give it, it passes the specifier
which is essentially the string given to `from`:
```
import {x} from './blah.js';
```
We were taking that specifier and giving it to the page. The page knew the
currently executing script, an thus could resolve the full URL. Given the full
URL, it could either return the JS content from its module cache or fetch
the source.
At best though, this isn't efficient. If two files import the same module, yes
we cache the src, but we still ask v8 to re-compile it. At worse, it crashes
due to resource exhaustion in the case of cyclical dependencies.
ResolveModuleCallback should instead detect that it has already loaded the
module and return the previously loaded module. Essentially, we shouldn't be
caching the JavaScript source, we should be caching the v8 module.
However, in order to do this, we need more than the specifier, which might only
be a relative path (and thus isn't unique). So, in addition to a module cache,
we now also maintain an module identifier lookup. Given a module, we can get
its full path. Thankfully ResolveModuleCallback gives us the referring module,
so we can look up that modules URL, stitch it to the specifier, and get the
full url (the unique identifier) within the JS runtime.
Need more real world testing, and a fully working example before I celebrate,
but for sites with many import, this appears to improve performance by many
orders of magnitude.
2025-06-20 19:17:55 +08:00
Karl Seguin
9f1cc09ca8
add HTML Template's content attribute
2025-06-20 14:36:56 +08:00
Karl Seguin
5dcc3db36b
Merge pull request #795 from lightpanda-io/performance_observer
...
e2e-test / zig build release (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
Add dummy PerformanceObserver
2025-06-20 08:01:09 +08:00
Pierre Tachoire
898b73ffc8
update dockerfile to multi-arch
2025-06-19 10:10:14 -07:00
Karl Seguin
c5d49a9d34
Add dummy PerformanceObserver
...
Adds a dummy PerformanceObserver. Only the supportedEntryTypes static attribute
is supported, and it currently returns an empty array. This hopefully prevents
code from trying to use it. For example, before using it, reddit checks if
specific types are supported and, if not, doesn't use it.
This introduced complexity in the js runtime. Our current approach to
attributes only works with primitive types. Non-primitive types can't be
attached to a FunctionTemplate (v8 will crash saying only primitive types can
be set). Plus, all non primitive types require a context to create anyways.
We now detect "primitive" attributes and "complex" attributes. Primitive
attributes are setup as before. Complex attributes are setup per-context,
requiring another loop through our types to detect & setup on each context
creation.
2025-06-19 18:20:02 +08:00
Karl Seguin
ef9f828d35
Merge pull request #790 from lightpanda-io/css-stylesheet
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
Minimal CSSStyleSheet
2025-06-19 10:32:13 +08:00
Karl Seguin
c691764205
Merge pull request #794 from lightpanda-io/window-screen
...
add Screen and ScreenOrientation
2025-06-19 10:29:52 +08:00
sjorsdonkers
2c940d4fd6
browser context proxyServer
2025-06-19 10:26:33 +08:00
Karl Seguin
54bd55d45d
fix CSSStyleSheet prototype
2025-06-19 10:25:13 +08:00
Karl Seguin
0b846b15b1
Merge pull request #789 from lightpanda-io/browsercontext-proxyServer
...
browser context proxyServer
2025-06-19 10:22:17 +08:00
Muki Kiboigo
269eb7e154
add Screen and ScreenOrientation
2025-06-18 12:53:54 -07:00
Muki Kiboigo
97bc19e4ae
clean up various imports in CSSOM
2025-06-18 11:32:28 -07:00
Muki Kiboigo
2656cc7842
Add basic tests for CSSStyleSheet
2025-06-18 11:32:28 -07:00
Muki Kiboigo
ba94818415
add CSSStyleSheet
2025-06-18 11:32:27 -07:00
Pierre Tachoire
ac759a6eed
Merge pull request #793 from lightpanda-io/domrect-bottom
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
add top, left, bottom, right to DOMRect
2025-06-18 09:54:08 -07:00
Pierre Tachoire
1839b346a6
Merge pull request #792 from lightpanda-io/fix_current_script_scope
...
Fixes the scoping of page.current_script
2025-06-18 09:51:41 -07:00
Pierre Tachoire
c1ffe7f8e6
Merge pull request #791 from lightpanda-io/zig_event_target_fix
...
Fix crash when event.currentTarget is used with EventTargetTBase
2025-06-18 08:26:25 -07:00
Pierre Tachoire
833b4d10bd
add top, left, bottom, right to DOMRect
2025-06-18 08:21:33 -07:00
Pierre Tachoire
ce98c336c9
keep EventTargetTBase as the dom_event_target
...
Mimic a dom_node by adding the refcnt field right after the vtable
pointer.
2025-06-18 07:08:35 -07:00
Karl Seguin
d05619990a
Fixes the scoping of page.current_script
...
This was previously being set back to null before it was actually needed.
Also, added a more logs / log details.
2025-06-18 18:36:00 +08:00
Karl Seguin
8033e41d4a
Merge pull request #788 from lightpanda-io/dont_keepalive_unprocess_request
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Delay setting the requests' keepalive flag until the request is fully…
2025-06-18 16:46:45 +08:00
sjorsdonkers
60f4eab759
handle no params
2025-06-18 10:07:37 +02:00
sjorsdonkers
d7656ea985
expires dashes and f64
2025-06-18 10:07:37 +02:00
sjorsdonkers
e402998577
JS may not set/get HttpOnly cookies
2025-06-18 10:07:37 +02:00
sjorsdonkers
073f75efa3
CDP Network cookie tests
2025-06-18 10:07:37 +02:00
sjorsdonkers
da414f7eb3
CDP.Storage cookies tests
2025-06-18 10:07:37 +02:00
sjorsdonkers
270b89830a
Cleaning up crumbles
2025-06-18 10:07:37 +02:00
sjorsdonkers
74ce7ca416
refactor path / domain parsing
2025-06-18 10:07:37 +02:00
sjorsdonkers
3f4338cb51
wip
2025-06-18 10:07:37 +02:00
sjorsdonkers
30ee41fd0e
Network.getCookies
2025-06-18 10:07:37 +02:00
sjorsdonkers
4965fec55c
storage cookies
2025-06-18 10:07:37 +02:00