fix(indexeddb): finish upgrade opens after transaction completion - #427
fix(indexeddb): finish upgrade opens after transaction completion#427ldm0 wants to merge 2 commits into
Conversation
Implement SVGSVGElement.createSVGRect with the native SVGRect prototype, restricted float fields and receiver validation. Cover the interface and JSXGraph capability-detection contract with a Chromium-calibrated fixture.
Retain the exact open request until normal transaction request draining and checkpoint deactivation complete. Publish open success or error in a separate task, handle aborted/closed provisional connections, and preserve FIFO among waiting open/delete requests. Remove eager upgrade-completion and duplicate blocked-request dispatch paths. Update selected-task boundary regressions and add Chromium-calibrated CDP coverage for migration, microtasks, rollback, deletion order and SVG-gated application startup.
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.038, 1.538, 2.54, 3.542, 4.043, 5.044, 6.046, 6.547, 7.548, 9.049, 10.049, 11.551, 13.052, 14.054, 15.556, 16.557, 18.06, 19.063, 20.563, 21.564, 23.067, 24.569, 25.571, 27.074, 28.075, 29.577, 30.579, 32.081, 33.082, 34.583, 36.086, 37.086, 38.588, 39.588, 41.088, 42.091, 43.592, 44.594]
y-axis "CPU percent" 0 --> 500
line [39.89, 125.86, 127.82, 127.75, 129.82, 233.7, 239.35, 149.72, 176, 113.97, 191.86, 73.98, 143.73, 129.93, 1.99, 93.98, 101.89, 17.96, 121.99, 55.95, 113.91, 105.79, 145.74, 95.71, 145.86, 123.85, 17.96, 79.82, 19.99, 97.9, 119.91, 137.9, 19.98, 4, 133.93, 141.68, 91.91, 113.71]
xychart-beta
title "Base memory: RSS then PSS"
x-axis "Elapsed seconds" [0.036, 1.038, 1.538, 2.54, 3.542, 4.043, 5.044, 6.046, 6.547, 7.548, 9.049, 10.049, 11.551, 13.052, 14.054, 15.556, 16.557, 18.06, 19.063, 20.563, 21.564, 23.067, 24.569, 25.571, 27.074, 28.075, 29.577, 30.579, 32.081, 33.082, 34.583, 36.086, 37.086, 38.588, 39.588, 41.088, 42.091, 43.592, 44.594, 45.646]
y-axis "Memory MiB" 0 --> 500
line [12.23, 88.42, 105.08, 114.32, 137.69, 134.61, 166.84, 160.11, 177.51, 156.05, 157.95, 181.68, 162.91, 164.35, 155.11, 131.18, 141.57, 151.24, 146.65, 168.93, 151.73, 160.89, 191.29, 194.05, 170.46, 175.25, 184.31, 150.68, 146.12, 154.56, 169.32, 248.34, 175.61, 158.23, 148.93, 162.28, 156.73, 157.85, 173.97, 0]
line [8.97, 84.86, 101.48, 110.7, 134.1, 130.93, 163.26, 156.56, 171.26, 153.07, 154.29, 178.04, 159.24, 161.08, 151.8, 127.52, 137.93, 147.38, 142.96, 165.56, 148.02, 157.1, 187.65, 190.4, 166.71, 170.13, 180.57, 146.93, 142.38, 150.81, 165.56, 244.59, 171.88, 154.48, 145.18, 158.54, 151.72, 154.1, 170.32, 0]
HEADxychart-beta
title "HEAD CPU"
x-axis "Elapsed seconds" [1.035, 2.036, 2.536, 3.036, 3.537, 4.538, 5.538, 7.042, 8.043, 9.044, 10.547, 11.547, 12.547, 13.549, 15.051, 16.052, 17.054, 18.055, 19.557, 20.559, 21.559, 23.061, 24.061, 25.063, 26.065, 27.567, 28.569, 29.571, 31.072, 32.073, 33.073, 34.074, 35.575, 36.578, 37.579, 38.08, 38.581, 40.082]
y-axis "CPU percent" 0 --> 200
line [59.86, 117.84, 130.02, 98.01, 107.82, 163.91, 163.96, 105.79, 185.64, 99.99, 151.93, 125.96, 105.99, 95.82, 44.01, 49.91, 15.97, 0, 75.94, 105.75, 109.96, 129.64, 65.98, 141.78, 131.81, 17.97, 77.94, 113.75, 67.98, 101.84, 96.04, 19.98, 0, 127.69, 109.9, 187.76, 19.95, 119.97]
xychart-beta
title "HEAD memory: RSS then PSS"
x-axis "Elapsed seconds" [0.034, 1.035, 2.036, 2.536, 3.036, 3.537, 4.538, 5.538, 7.042, 8.043, 9.044, 10.547, 11.547, 12.547, 13.549, 15.051, 16.052, 17.054, 18.055, 19.557, 20.559, 21.559, 23.061, 24.061, 25.063, 26.065, 27.567, 28.569, 29.571, 31.072, 32.073, 33.073, 34.074, 35.575, 36.578, 37.579, 38.08, 38.581, 40.082, 40.946]
y-axis "Memory MiB" 0 --> 500
line [12.3, 90.97, 112.4, 134.36, 134.51, 147.01, 167.29, 168.49, 154.57, 193.09, 164.04, 168.9, 158.78, 154.62, 164.09, 148.3, 142.78, 141.17, 137.37, 150.81, 163.98, 189.7, 160.96, 162.4, 164.07, 176.54, 151.75, 160.38, 154.75, 160.53, 221.83, 197.98, 166.22, 158.1, 197.06, 175.42, 162.89, 161.34, 176.32, 0]
line [9.08, 87.24, 108.35, 130.66, 130.8, 143.28, 163.5, 164.79, 151.03, 188.75, 160.32, 165.13, 155.02, 150.86, 160.33, 144.54, 139.02, 137.44, 133.61, 146.67, 155.9, 185.92, 157.21, 158.65, 160.32, 172.88, 148.11, 156.66, 151.09, 156.06, 218.14, 194.23, 162.48, 154.36, 195.83, 171.71, 159.14, 157.6, 172.52, 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. |
CI Regression ReportSource CI run · source state at render:
Release regression — ✅ HEAD/base failures 0/0; raw binary −0.002809%Package and image size
Startup latency and PSS
Concurrency matrix
Frontend differential — ✅ 1,020/1,020 cases matched; 0 issues
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/45 groups passed; 462 scenariosWorkers: 4 · cumulative group time: 126.94 s · failed groups: 0
All artifact fields are parsed by the trusted default-branch renderer; missing or invalid inputs remain visible as unavailable. |
Dependency / merge order
Stacked on #426 (
fix/svg-create-rect) so this PR contains exactly one IndexedDB commit. The dependency is the combined SVG-gated application-startup smoke, not the IndexedDB implementation. Merge #426 first, then rebase this commit onto main and retarget this PR; if #426 is squash-merged, do not merge the old SVG commit a second time.Summary
Validation
cargo fmt --allandgit diff --checkpassed.