mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-30 15:41:48 +00:00
Start unifying test and code
Depends on https://github.com/lightpanda-io/browser/pull/993 There's currently 3 ways to execute a page: 1 - page.navigate (as used in both the 'fetch' and 'serve' commands) 2 - jsRunner as used in unit tests 3 - main_wpt as used in the WPT runner Both jsRunner and main_wpt replicate the page.navigate code, but in their own hack-ish way. main_wpt re-implements the DOM walking in order to extract and execute <script> tags, as well as the needed page lifecycle events. This PR replaces the existing main_wpt loader with a call to page.navigate. To support this, a test HTTP server was added. (The test HTTP server is extracted from the existing unit test test server, and re-used between the two). There are benefits to this approach: 1 - The code is simpler 2 - More of the actual code and flow is tested 3 - There's 1 way to do things (page.navigate) 4 - Having an HTTP server might unlock some WPT tests Technically, we're replacing file IO with network IO i.e. http requests). This has potential downsides: 1 - The tests might be more brittle 2 - The tests might be slower I think we need to run it for a while to see if we get flaky behavior. The goal for following PRs is to bring this unification to the jsRunner.
This commit is contained in:
@@ -1516,12 +1516,12 @@ pub fn Env(comptime State: type, comptime WebApis: type) type {
|
||||
}
|
||||
|
||||
const op = js_obj.getInternalField(0).castTo(v8.External).get();
|
||||
const toa: *TaggedAnyOpaque = @ptrCast(@alignCast(op));
|
||||
const tao: *TaggedAnyOpaque = @ptrCast(@alignCast(op));
|
||||
const expected_type_index = @field(TYPE_LOOKUP, type_name);
|
||||
|
||||
var type_index = toa.index;
|
||||
var type_index = tao.index;
|
||||
if (type_index == expected_type_index) {
|
||||
return @ptrCast(@alignCast(toa.ptr));
|
||||
return @ptrCast(@alignCast(tao.ptr));
|
||||
}
|
||||
|
||||
const meta_lookup = self.meta_lookup;
|
||||
@@ -1533,7 +1533,7 @@ pub fn Env(comptime State: type, comptime WebApis: type) type {
|
||||
// ...unless, the proto is behind a pointer, then total_offset will
|
||||
// get reset to 0, and our base_ptr will move to the address
|
||||
// referenced by the proto field.
|
||||
var base_ptr: usize = @intFromPtr(toa.ptr);
|
||||
var base_ptr: usize = @intFromPtr(tao.ptr);
|
||||
|
||||
// search through the prototype tree
|
||||
while (true) {
|
||||
|
||||
Reference in New Issue
Block a user