diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 9fb9c040..c52f022f 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -57,8 +57,8 @@ jobs: zig-out/bin/lightpanda retention-days: 1 - puppeteer: - name: puppeteer + puppeteer-perf: + name: puppeteer-perf needs: zig-build-release env: @@ -105,3 +105,35 @@ jobs: echo "puppeteer avg duration: $PUPPETEER_AVG_DURATION" test "$PUPPETEER_AVG_DURATION" -le "$MAX_AVG_DURATION" + demo-scripts: + name: demo-scripts + needs: zig-build-release + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + repository: 'lightpanda-io/demo' + fetch-depth: 0 + + - run: npm install + + - name: download artifact + uses: actions/download-artifact@v4 + with: + name: lightpanda-build-release + + - run: chmod a+x ./lightpanda + + - name: run puppeteer links + run: | + ./lightpanda serve & echo $! > LPD.pid + node puppeteer/links.js || exit 1 + kill `cat LPD.pid` + + - name: run puppeteer dump + run: | + ./lightpanda serve & echo $! > LPD.pid + node puppeteer/dump.js || exit 1 + kill `cat LPD.pid` diff --git a/src/browser/browser.zig b/src/browser/browser.zig index 7b875657..ffedfb29 100644 --- a/src/browser/browser.zig +++ b/src/browser/browser.zig @@ -121,6 +121,7 @@ pub const Session = struct { loader: Loader, env: Env, + loop: *Loop, inspector: jsruntime.Inspector, window: Window, @@ -143,6 +144,7 @@ pub const Session = struct { .storageShed = storage.Shed.init(allocator), .arena = std.heap.ArenaAllocator.init(allocator), .window = Window.create(null, .{ .agent = user_agent }), + .loop = loop, }; const arena = self.arena.allocator(); @@ -278,6 +280,9 @@ pub const Page = struct { // reset js env and mem arena. pub fn end(self: *Page) void { + // Reset all existing callbacks. + self.session.loop.reset(); + self.session.env.stop(); // TODO unload document: https://html.spec.whatwg.org/#unloading-documents diff --git a/vendor/zig-js-runtime b/vendor/zig-js-runtime index 944c5f0a..c7f980e5 160000 --- a/vendor/zig-js-runtime +++ b/vendor/zig-js-runtime @@ -1 +1 @@ -Subproject commit 944c5f0a260a04aee284a0013d459e29c8151c2e +Subproject commit c7f980e5946cb0211a1827d9c0041a0820193f9f