Conversation
1553163 to
cfec497
Compare
Spider Bench A/B✅ All benchmark browser service runs completed; results are informational. Public HEAD: 184 / 240 rows; 38 / 48 sites produced rows; 10 unexpected empty sites. ✅ Deterministic fixture contract is clean. Common ancestor Public 48-site run · informational
Public-site content, timing, and memory are noisy. This single A/B run reports evidence only; site outcome counts explain missing rows without treating them as a deterministic regression. CPU and memory timelinesThese are bounded 40-point views of the same complete process-tree samples used by the HTML report. CPU uses 100% per occupied logical core; memory lines are RSS first and PSS second when complete PSS samples are available. Basexychart-beta
title "Base CPU"
x-axis "Elapsed seconds" [1.535, 3.038, 4.539, 5.539, 6.039, 7.041, 7.541, 9.544, 11.046, 12.548, 14.05, 15.552, 16.553, 17.054, 18.557, 20.059, 21.562, 23.064, 24.565, 26.067, 28.069, 29.57, 31.07, 32.573, 34.076, 35.577, 37.079, 38.581, 40.081, 41.582, 43.084, 44.585, 46.586, 48.088, 49.59, 51.092, 52.593, 54.094]
y-axis "CPU percent" 0 --> 200
line [119.93, 103.86, 101.97, 173.93, 165.98, 163.93, 143.85, 181.51, 105.91, 127.9, 123.92, 21.94, 0, 3.99, 0, 2, 81.91, 85.81, 55.99, 91.9, 131.74, 105.86, 147.88, 163.7, 53.84, 109.9, 149.82, 53.87, 73.95, 9.99, 119.98, 91.89, 13.99, 145.86, 173.53, 99.75, 117.85, 167.85]
xychart-beta
title "Base memory: RSS then PSS"
x-axis "Elapsed seconds" [0.035, 1.535, 3.038, 4.539, 5.539, 6.039, 7.041, 7.541, 9.544, 11.046, 12.548, 14.05, 15.552, 16.553, 17.054, 18.557, 20.059, 21.562, 23.064, 24.565, 26.067, 28.069, 29.57, 31.07, 32.573, 34.076, 35.577, 37.079, 38.581, 40.081, 41.582, 43.084, 44.585, 46.586, 48.088, 49.59, 51.092, 52.593, 54.094, 55.586]
y-axis "Memory MiB" 0 --> 500
line [12.17, 96.08, 128.75, 135.58, 162.91, 147.35, 157.47, 162.92, 179.64, 174.48, 178.83, 180.09, 164.43, 142, 141.35, 143.23, 143.66, 152.47, 147.27, 136.58, 149.64, 158.57, 275.02, 205.3, 229.3, 157.7, 184.59, 142.31, 139.31, 143.76, 139.21, 206.42, 186.67, 157.16, 182.35, 164.13, 157.1, 153.29, 190.61, 0]
line [9.5, 93.09, 126.02, 132.62, 159.92, 144.45, 154.53, 160.1, 176.35, 170.25, 175.44, 176.82, 161.09, 138.66, 138.01, 139.88, 140.31, 148.14, 143.93, 133.23, 146.41, 155.32, 271.05, 201.6, 226.14, 154.42, 181.21, 139.01, 135.94, 140.44, 135.92, 201.38, 183.37, 154.28, 179.1, 161.61, 153.63, 149.82, 187.1, 0]
HEADxychart-beta
title "HEAD CPU"
x-axis "Elapsed seconds" [1.535, 3.038, 4.541, 6.043, 6.543, 7.044, 8.045, 9.546, 11.047, 12.548, 14.048, 15.55, 17.052, 17.553, 19.056, 20.557, 22.058, 23.56, 25.062, 26.564, 28.565, 30.067, 31.57, 33.072, 34.573, 36.075, 37.578, 39.08, 41.082, 42.583, 44.086, 45.588, 47.089, 48.592, 50.094, 52.096, 53.598, 55.1]
y-axis "CPU percent" 0 --> 500
line [135.83, 133.71, 103.76, 193.97, 161.9, 137.71, 139.99, 131.87, 173.89, 131.87, 123.96, 117.75, 2, 2, 99.78, 125.97, 4, 119.8, 101.79, 155.94, 105.97, 105.74, 103.72, 105.88, 134.05, 125.87, 55.93, 97.96, 53.96, 113.82, 2, 61.95, 11.99, 117.85, 147.85, 79.96, 97.94, 161.84]
xychart-beta
title "HEAD memory: RSS then PSS"
x-axis "Elapsed seconds" [0.035, 1.535, 3.038, 4.541, 6.043, 6.543, 7.044, 8.045, 9.546, 11.047, 12.548, 14.048, 15.55, 17.052, 17.553, 19.056, 20.557, 22.058, 23.56, 25.062, 26.564, 28.565, 30.067, 31.57, 33.072, 34.573, 36.075, 37.578, 39.08, 41.082, 42.583, 44.086, 45.588, 47.089, 48.592, 50.094, 52.096, 53.598, 55.1, 56.543]
y-axis "Memory MiB" 0 --> 500
line [11.76, 119.93, 129.07, 142.39, 149.07, 156.39, 171.31, 158.98, 185.7, 169.29, 158.3, 182.15, 176.12, 158.88, 135.76, 141.04, 155.05, 135.88, 146.39, 145.52, 162.57, 281.47, 205.48, 178.82, 175.47, 181.36, 152.23, 145.15, 150.34, 155.14, 158.92, 143.94, 166.43, 141.55, 153.78, 148.41, 153.19, 155.26, 190.38, 0]
line [9.18, 117.05, 126.22, 139.48, 146.3, 153.48, 168.57, 156.05, 182.64, 166.2, 155.5, 179.34, 173.01, 155.92, 132.8, 138.07, 152.23, 132.92, 143.43, 142.84, 161.42, 279.54, 202.57, 175.92, 172.52, 178.27, 149.27, 142.2, 147.48, 152.18, 155.96, 140.98, 163.47, 138.59, 150.85, 145.46, 150.25, 152.31, 187.57, 0]
Deterministic fixture · required contractThe fixture exercises 15 routes: 8 are expected to emit rows and 7 intentionally exercise empty, loading, or timeout behavior.
Full HTML, JSON, CSV, logs, and page snapshots: workflow run and full The public-web A/B is informational. The exact HEAD fixture contract runs as a separate required CI check; timing and public-site content deltas remain non-blocking. |
Sequential Navigation Soak A/B✅ HEAD completed the 200-navigation resilience and memory observation. One browser process, one target, and one CDP session navigate CSDN → SegmentFault → Huaban → example.com repeatedly. This run issued 200 Common ancestor Session resilience
A public-page failure is reported separately from an unrecoverable session. The soak requires all navigation attempts, zero failed recovery, zero lifecycle/network ordering violations, and complete resource evidence. Process-tree memory
HEAD memory by 50-navigation quarter
Raw reports and per-navigation boundary samples: workflow run and full Public-site timing and memory are observational. Use the A/B deltas and trend shape as evidence, not as a deterministic performance threshold. |
859c592 to
97d8138
Compare
CI Regression ReportSource CI run · source state at render:
Release regression — ✅ HEAD/base failures 0/0; raw binary +1.341543%Package and image size
Startup latency and PSS
Concurrency matrix
Frontend differential — ❌ 1,014/1,020 cases matched; 6 issues
First failing cases
Agent episodes · Moli vs Chromium — ✅ 8/8 Moli episodes passed; 0 failures
Runtime and CDP session contracts — ✅ 26 contract cases; 0 failures
CDP smoke — ❌ 45/48 groups passed; 510 scenariosWorkers: 4 · cumulative group time: 144.82 s · failed groups: 3
Failed groups
All artifact fields are parsed by the trusted default-branch renderer; missing or invalid inputs remain visible as unavailable. |
a97a74a to
3fb43c5
Compare
149278f to
e22fcdc
Compare
a828761 to
f5b6ba0
Compare
Run main-document dynamic inline scripts through the shared classic-script executor in the document's main world. Keep currentScript set while parse and runtime exceptions are synchronously reported, then restore the outer script without propagating the exception through the inserting DOM operation. Cover nested error handlers, thrown object identity, re-insertion, shadow trees, borrowed child-realm insertion methods, isolated worlds, and deferred microtasks. Remove the redundant inline load-event scheduling entry point.
Mark the main document completely loaded after its load dispatch, even if a callback started more child work. Keep descendant completion accounting separate so later fragment navigations create their own history entry.
Use the Window holder's native realm before the ambient child dispatch marker. Promise reactions in the top realm must keep seeing top-level named properties when they run inside a child callback.
Track committed session-history positions across frames and plan classic History and Navigation API traversals against the same timeline. Preserve queued delta positions across asynchronous commits, apply forward pruning across navigables, and release deferred work after commit, cancellation, or non-displayable responses. Synchronize CDP history resets after all realms finish pruning, and keep non-displayable responses retryable without settling the Navigation API promises. Check the initiating document's committed sandbox policy for every affected frame. Keep committed classic History positions after frame removal while dropping removed traversal targets. Cover interleaved, cross-document, queued, mixed-API, and controlled network cases.
Set the canceled flag when aborting a navigate event during dispatch, including iframe traversal events that are not author-cancelable. Preserve the flag when a precommit handler aborts the navigation after dispatch has ended. Keep cross-document history traversal running when stop() cancels its Navigation API event and promises. Continue checking that its original Window and Document are active before queuing the load. Cover detachment, window.stop(), and nested navigation in both phases, plus the non-cancelable preventDefault control. Verify abort listeners, promise rejection identity, the exception realm, and cross-document restoration. Spec: https://html.spec.whatwg.org/multipage/nav-history-apis.html#abort-the-ongoing-navigation Spec: https://html.spec.whatwg.org/multipage/document-lifecycle.html#stop-loading
Track interception before handlers run so stop(), detachment, and reentrant navigation settle the correct promises and retain the committed entry. Share settlement across Navigation and Location, run child browser interceptions through the full lifecycle, and retain target fragment metadata and URL rewrite eligibility. Validation: cargo fmt --all; workspace/all-targets/all-features Clippy with -D warnings; nextest (19611 passed, 13 skipped). Also passed 431 focused tests, 37 WPT cases and variants, 1 crashtest, and 39 Chromium comparisons.
Reject child navigations whose URL repeats more than one committed ancestor, ignoring fragments while preserving query and host boundaries. Keep about URLs, POST requests, and history traversals exempt. Cancel rejected load bookkeeping before fetching so recursive frames remain at initial about:blank and ancestor loads can finish. Cover Navigation and Location with a real HTTP regression and URL admission boundary cases. Give nested lifecycle fixtures distinct query parameters so their intended unload assertions are not suppressed by recursive-frame admission.
Bind Navigation objects to native Document identity and use the initial-empty lifecycle flag instead of the URL to disable entries. Preserve initialness through document.open(), and replace the Navigation object when javascript: creates a new Document without changing its URL. Keep underlying History and Location navigation working when Navigation entries and events are disabled. Reject explicit pushes from initial documents and preserve the required pending promises. Cover initial, srcdoc, javascript, and subsequently loaded blank documents using a fixture also compared against Chrome. Preserve fragment changes on a retained popup Document before its queued close task runs, while continuing to abort navigation when a navigate handler closes the window.
Carry committed renderer history through browser navigation requests and restore structured state, entry identities, and activation before new Document scripts execute. Read the latest committed source entries when creating the destination so state updates made during a pending response are retained. Keep browser traversals aligned with native Document identities, rebuild private history ordinals for restored top-level entries, and use native entry indices for fragment mutations after a cross-origin history prefix. Cover structured-state restoration, pending-navigation source updates, fragment indices, browser-owned back/forward traversal, and same-Document realm and element preservation after WebDriver history restoration.
Allow top-level navigation owner actions from the current Document through the in-flight navigation gate so they can cancel the previous request. Keep exact scheduler predecessors and Page residence validation in place. Cover an unresponsive first request replaced by page JavaScript without further client commands, and ensure only the replacement enters history.
Collect joint-history children from the owning root document so popup iframe navigations contribute to their own history without pruning opener entries. Keep root commits valid before the new native Document handle is installed. Use the existing detached-content predicate when synthesizing iframe load events, leaving live popup and child-document frames to the native lifecycle. Cover same-document history forks and cross-document popup traversals while checking that the opener history is unchanged.
Plan src and srcdoc push/replace operations from the committed document, its load state, and the initiator origin. Publish local attribute commits to joint session history without exposing pending entries synchronously. Preserve same-origin srcdoc replacement keys and route live popup iframe setAttribute calls through the shared src navigation path. Cover load phases, coalesced srcdoc writes, fragment transitions, and popup ownership. Keep initial attribute commits lazy when there is no joint history mutation, preserving the scheduled child realm and lifecycle boundaries.
Retain srcdoc resources by history Document identity, including the original source, base URL, policy and origin. Restore each entry URL separately and apply the current iframe sandbox flags when reconstructing the Document. Cover top-level and popup child traversal, classic and Navigation API state, and sandbox script/origin changes.
Keep child entries and srcdoc resources with their parent Document identity when top-level and popup Documents are replaced. Restore their original joint history steps, avoid traversing descendants of a retiring parent, and prune forward entries when navigation branches from an earlier step. Preserve parser-created frame identities in navigation projections. Cover named and unnamed frames, script-created parents, nested Documents, entry state and identity, and interleaved multi-step traversals through CDP.
Remove duplicate navigation fixture definitions and keep the verified XHR content-type case out of the failure catalog. All 420 WPT runner tests pass.
Use the upstream native header and async response types in the branch-specific Fetch, XHR, worker, and service-worker paths. Keep local URL ByteString boundaries and route parkable images through the shared CORS redirect checks.
Initialize the history field in the upstream navigation fixture. Use the existing 8 MiB stack helper for the two deep traversal tests whose replacement-navigation path exceeds the default test-thread stack.
Keep one branded SVGElement declaration with both className and ownerSVGElement. Retain the upstream owner lookup and its broader regression coverage while removing the duplicate declaration, callback, and older test.
Keep a single copy of the identical CSP base64url and CSS alt-counter regressions already present upstream.
The public header projection already sorts and combines the internal list. Avoid applying normalization a second time in iteration and response body consumers, which removed the separator space contributed by a trailing empty field.
Construct popup load events through the intrinsic Event constructor and apply the legacy Document target override to load and pageshow. Keep dispatch paths and listener receivers on the popup Window. Cover native interfaces, trust, cancellation, cleanup, redispatch, constructor overrides, retirement during load, and failed initial navigation without a materialized Document.
No description provided.