Skip to content

Initial IndexedDB Support#33044

Merged
jdm merged 16 commits intoservo:mainfrom
arihant2math:idb
Jun 19, 2025
Merged

Initial IndexedDB Support#33044
jdm merged 16 commits intoservo:mainfrom
arihant2math:idb

Conversation

@arihant2math
Copy link
Contributor

@arihant2math arihant2math commented Aug 13, 2024

Adds indexeddb support to servo. At the moment heed is being used as the backend, although this can be swapped out by implementing KvsEngine. This PR adds a thread + a thread pool for Indexeddb related operations. Also database_access_task_source is added for Indexeddb related operations.

This is a partial rewrite of #25214. (Reopened due to branching issue)

Fixes #6963

@arihant2math arihant2math force-pushed the idb branch 7 times, most recently from 410dae1 to 43141cc Compare August 14, 2024 19:31
@arihant2math arihant2math marked this pull request as ready for review August 14, 2024 22:47
@arihant2math arihant2math requested a review from gterzian as a code owner August 14, 2024 22:47
@jdm
Copy link
Member

jdm commented Aug 14, 2024

The duplicate package results from. ./mach tidy can be addressed by updating the ignore list in servo-tidy.toml.

@arihant2math
Copy link
Contributor Author

Ah ok, I'll do that

@arihant2math
Copy link
Contributor Author

Converting to draft as WPT is reporting too many errors

@arihant2math
Copy link
Contributor Author

Ok turns out that was because indexeddb was disabled, it should be good now

@arihant2math arihant2math marked this pull request as ready for review August 15, 2024 00:12
@jdm jdm added the T-linux-wpt Do a try run of the WPT label Aug 15, 2024
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Aug 15, 2024
@github-actions
Copy link

🔨 Triggering try run (#10396741616) for Linux WPT

@github-actions
Copy link

⚠️ Try run (#10396741616) failed.

@jdm
Copy link
Member

jdm commented Aug 15, 2024

Looks like ./mach test-unit needs some compile fixes:

error[E0061]: this function takes 3 arguments but 2 arguments were supplied
   --> components/fonts/tests/font_context.rs:177:5
    |
177 |     ResourceThreads::new(core_sender, storage_sender)
    |     ^^^^^^^^^^^^^^^^^^^^----------------------------- an argument of type `IpcSender<IndexedDBThreadMsg>` is missing
    |
note: associated function defined here
   --> /home/runner/work/servo/servo/components/shared/net/lib.rs:353:12
    |
353 |     pub fn new(
    |            ^^^
help: provide the argument
    |
177 |     ResourceThreads::new(core_sender, storage_sender, /* IpcSender<IndexedDBThreadMsg> */)
    |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@arihant2math arihant2math force-pushed the idb branch 2 times, most recently from 4413d6a to 3b0fb5a Compare August 15, 2024 02:28
@arihant2math
Copy link
Contributor Author

arihant2math commented Aug 15, 2024

I fixed that error but I'm currently getting a lot of unrelated errors involving the XR web API (specifically the bindgen). Perhaps the CI will have better luck.

@jdm jdm added the T-linux-wpt Do a try run of the WPT label Aug 15, 2024
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Aug 15, 2024
@github-actions
Copy link

🔨 Triggering try run (#10398048721) for Linux WPT

@github-actions
Copy link

⚠️ Try run (#10398048721) failed.

arihant2math and others added 11 commits June 12, 2025 14:42
Switch idb backend to heed and add support for more key values and used better concurrency measures and updated interface between backend and scripts.

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
…atabase

also redid identifier check

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
added docstrings

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
@github-actions
Copy link

🔨 Triggering try run (#15740594299) for Linux (Unit Tests, WPT, Bencher), MacOS (Unit Tests), Windows (Unit Tests), Android, OpenHarmony, Lint

@jdm
Copy link
Member

jdm commented Jun 18, 2025

I've gone ahead and fixed up the remaining build and test-tidy errors. Let's get this merged!

@github-actions
Copy link

🐰 Bencher Report

Branch33044/PR
Testbedubuntu-22.04

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkFile Sizemegabytes (MB)Latencymicroseconds (µs)Throughputoperations / second (ops/s)scoreMeasure (units)
Dromaeo/dom📈 view plot
⚠️ NO THRESHOLD
544.56 ops/s
Dromaeo/dom-attr📈 view plot
⚠️ NO THRESHOLD
4,361.38 ops/s
Dromaeo/dom-attr/element_expando📈 view plot
⚠️ NO THRESHOLD
48,250.00 ops/s
Dromaeo/dom-attr/element_expando = value📈 view plot
⚠️ NO THRESHOLD
20,904.40 ops/s
Dromaeo/dom-attr/element_property📈 view plot
⚠️ NO THRESHOLD
22,159.20 ops/s
Dromaeo/dom-attr/element_property = value📈 view plot
⚠️ NO THRESHOLD
88.52 ops/s
Dromaeo/dom-attr/getAttribute📈 view plot
⚠️ NO THRESHOLD
43,954.20 ops/s
Dromaeo/dom-attr/setAttribute📈 view plot
⚠️ NO THRESHOLD
79.14 ops/s
Dromaeo/dom-modify📈 view plot
⚠️ NO THRESHOLD
61.55 ops/s
Dromaeo/dom-modify/appendChild📈 view plot
⚠️ NO THRESHOLD
36.18 ops/s
Dromaeo/dom-modify/cloneNode📈 view plot
⚠️ NO THRESHOLD
29.73 ops/s
Dromaeo/dom-modify/createElement📈 view plot
⚠️ NO THRESHOLD
393.63 ops/s
Dromaeo/dom-modify/createTextNode📈 view plot
⚠️ NO THRESHOLD
139.22 ops/s
Dromaeo/dom-modify/innerHTML📈 view plot
⚠️ NO THRESHOLD
9.96 ops/s
Dromaeo/dom-modify/insertBefore📈 view plot
⚠️ NO THRESHOLD
92.68 ops/s
Dromaeo/dom-query📈 view plot
⚠️ NO THRESHOLD
979.92 ops/s
Dromaeo/dom-query/getElementById📈 view plot
⚠️ NO THRESHOLD
400.56 ops/s
Dromaeo/dom-query/getElementById (not in document)📈 view plot
⚠️ NO THRESHOLD
519.70 ops/s
Dromaeo/dom-query/getElementsByName📈 view plot
⚠️ NO THRESHOLD
0.12 ops/s
Dromaeo/dom-query/getElementsByName (not in document)📈 view plot
⚠️ NO THRESHOLD
0.18 ops/s
Dromaeo/dom-query/getElementsByTagName (not in document)📈 view plot
⚠️ NO THRESHOLD
54,444.20 ops/s
Dromaeo/dom-query/getElementsByTagName(*)📈 view plot
⚠️ NO THRESHOLD
43,211.00 ops/s
Dromaeo/dom-query/getElementsByTagName(a)📈 view plot
⚠️ NO THRESHOLD
42,976.80 ops/s
Dromaeo/dom-query/getElementsByTagName(div)📈 view plot
⚠️ NO THRESHOLD
43,371.60 ops/s
Dromaeo/dom-query/getElementsByTagName(p)📈 view plot
⚠️ NO THRESHOLD
42,868.80 ops/s
Dromaeo/dom-traverse📈 view plot
⚠️ NO THRESHOLD
213.12 ops/s
Dromaeo/dom-traverse/childNodes📈 view plot
⚠️ NO THRESHOLD
157.11 ops/s
Dromaeo/dom-traverse/firstChild📈 view plot
⚠️ NO THRESHOLD
221.05 ops/s
Dromaeo/dom-traverse/lastChild📈 view plot
⚠️ NO THRESHOLD
98.97 ops/s
Dromaeo/dom-traverse/nextSibling📈 view plot
⚠️ NO THRESHOLD
362.37 ops/s
Dromaeo/dom-traverse/previousSibling📈 view plot
⚠️ NO THRESHOLD
353.05 ops/s
Speedometer/Charts-observable-plot📈 view plot
⚠️ NO THRESHOLD
147.64 µs
Speedometer/Charts-observable-plot/Dotted📈 view plot
⚠️ NO THRESHOLD
32.55 µs
Speedometer/Charts-observable-plot/Dotted/Async📈 view plot
⚠️ NO THRESHOLD
1.45 µs
Speedometer/Charts-observable-plot/Dotted/Sync📈 view plot
⚠️ NO THRESHOLD
31.10 µs
Speedometer/Charts-observable-plot/Stacked by 20📈 view plot
⚠️ NO THRESHOLD
61.16 µs
Speedometer/Charts-observable-plot/Stacked by 20/Async📈 view plot
⚠️ NO THRESHOLD
1.99 µs
Speedometer/Charts-observable-plot/Stacked by 20/Sync📈 view plot
⚠️ NO THRESHOLD
59.18 µs
Speedometer/Charts-observable-plot/Stacked by 6📈 view plot
⚠️ NO THRESHOLD
53.93 µs
Speedometer/Charts-observable-plot/Stacked by 6/Async📈 view plot
⚠️ NO THRESHOLD
1.42 µs
Speedometer/Charts-observable-plot/Stacked by 6/Sync📈 view plot
⚠️ NO THRESHOLD
52.51 µs
Speedometer/Geomean📈 view plot
⚠️ NO THRESHOLD
207.30 µs
Speedometer/Iteration-0-Total📈 view plot
⚠️ NO THRESHOLD
361.24 µs
Speedometer/Iteration-1-Total📈 view plot
⚠️ NO THRESHOLD
371.09 µs
Speedometer/Iteration-2-Total📈 view plot
⚠️ NO THRESHOLD
315.09 µs
Speedometer/Iteration-3-Total📈 view plot
⚠️ NO THRESHOLD
318.43 µs
Speedometer/Iteration-4-Total📈 view plot
⚠️ NO THRESHOLD
314.52 µs
Speedometer/Iteration-5-Total📈 view plot
⚠️ NO THRESHOLD
318.30 µs
Speedometer/Iteration-6-Total📈 view plot
⚠️ NO THRESHOLD
314.29 µs
Speedometer/Iteration-7-Total📈 view plot
⚠️ NO THRESHOLD
312.81 µs
Speedometer/Iteration-8-Total📈 view plot
⚠️ NO THRESHOLD
310.38 µs
Speedometer/Iteration-9-Total📈 view plot
⚠️ NO THRESHOLD
310.43 µs
Speedometer/Score📈 view plot
⚠️ NO THRESHOLD
4.85 units
Speedometer/TodoMVC-Angular📈 view plot
⚠️ NO THRESHOLD
180.16 µs
Speedometer/TodoMVC-Angular/Adding100Items📈 view plot
⚠️ NO THRESHOLD
100.11 µs
Speedometer/TodoMVC-Angular/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
9.09 µs
Speedometer/TodoMVC-Angular/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
91.02 µs
Speedometer/TodoMVC-Angular/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
46.61 µs
Speedometer/TodoMVC-Angular/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
11.73 µs
Speedometer/TodoMVC-Angular/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
34.88 µs
Speedometer/TodoMVC-Angular/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
33.43 µs
Speedometer/TodoMVC-Angular/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
3.09 µs
Speedometer/TodoMVC-Angular/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
30.34 µs
Speedometer/TodoMVC-JavaScript-ES5📈 view plot
⚠️ NO THRESHOLD
727.79 µs
Speedometer/TodoMVC-JavaScript-ES5/Adding100Items📈 view plot
⚠️ NO THRESHOLD
556.08 µs
Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
16.74 µs
Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
539.34 µs
Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
111.15 µs
Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
25.92 µs
Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
85.23 µs
Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
60.56 µs
Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
3.08 µs
Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
57.49 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack📈 view plot
⚠️ NO THRESHOLD
1,037.98 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items📈 view plot
⚠️ NO THRESHOLD
822.44 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
10.08 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
812.36 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
125.01 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
8.65 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
116.36 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
90.53 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
3.32 µs
Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
87.21 µs
Speedometer/TodoMVC-Preact📈 view plot
⚠️ NO THRESHOLD
77.57 µs
Speedometer/TodoMVC-Preact/Adding100Items📈 view plot
⚠️ NO THRESHOLD
36.25 µs
Speedometer/TodoMVC-Preact/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
31.35 µs
Speedometer/TodoMVC-Preact/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
4.90 µs
Speedometer/TodoMVC-Preact/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
32.14 µs
Speedometer/TodoMVC-Preact/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
24.26 µs
Speedometer/TodoMVC-Preact/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
7.88 µs
Speedometer/TodoMVC-Preact/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
9.19 µs
Speedometer/TodoMVC-Preact/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
5.93 µs
Speedometer/TodoMVC-Preact/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
3.26 µs
Speedometer/TodoMVC-React📈 view plot
⚠️ NO THRESHOLD
168.27 µs
Speedometer/TodoMVC-React-Redux📈 view plot
⚠️ NO THRESHOLD
186.90 µs
Speedometer/TodoMVC-React-Redux/Adding100Items📈 view plot
⚠️ NO THRESHOLD
81.70 µs
Speedometer/TodoMVC-React-Redux/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
9.11 µs
Speedometer/TodoMVC-React-Redux/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
72.59 µs
Speedometer/TodoMVC-React-Redux/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
65.05 µs
Speedometer/TodoMVC-React-Redux/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
9.60 µs
Speedometer/TodoMVC-React-Redux/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
55.46 µs
Speedometer/TodoMVC-React-Redux/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
40.15 µs
Speedometer/TodoMVC-React-Redux/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
3.31 µs
Speedometer/TodoMVC-React-Redux/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
36.84 µs
Speedometer/TodoMVC-React/Adding100Items📈 view plot
⚠️ NO THRESHOLD
80.91 µs
Speedometer/TodoMVC-React/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
9.44 µs
Speedometer/TodoMVC-React/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
71.47 µs
Speedometer/TodoMVC-React/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
53.92 µs
Speedometer/TodoMVC-React/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
9.22 µs
Speedometer/TodoMVC-React/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
44.70 µs
Speedometer/TodoMVC-React/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
33.44 µs
Speedometer/TodoMVC-React/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
3.19 µs
Speedometer/TodoMVC-React/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
30.25 µs
Speedometer/TodoMVC-Svelte📈 view plot
⚠️ NO THRESHOLD
70.96 µs
Speedometer/TodoMVC-Svelte/Adding100Items📈 view plot
⚠️ NO THRESHOLD
32.75 µs
Speedometer/TodoMVC-Svelte/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
24.94 µs
Speedometer/TodoMVC-Svelte/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
7.82 µs
Speedometer/TodoMVC-Svelte/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
28.21 µs
Speedometer/TodoMVC-Svelte/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
21.40 µs
Speedometer/TodoMVC-Svelte/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
6.80 µs
Speedometer/TodoMVC-Svelte/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
10.01 µs
Speedometer/TodoMVC-Svelte/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
6.75 µs
Speedometer/TodoMVC-Svelte/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
3.25 µs
linux-release📈 view plot
⚠️ NO THRESHOLD
167.57 MB
🐰 View full continuous benchmarking report in Bencher

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
@github-actions
Copy link

Test results for linux-wpt from try job (#15740594299):

Flaky unexpected result (16)
  • FAIL [expected PASS] /_mozilla/css/dirty_viewport.html (#13731)
  • TIMEOUT [expected OK] /_mozilla/mozilla/window_resizeTo.html (#36741)
    • TIMEOUT [expected PASS] subtest: Popup onresize event fires after resizeTo

      Test timed out
      

  • PASS [expected FAIL] /css/compositing/mix-blend-mode/mix-blend-mode-video-sibling.html (#32849)
  • OK /css/css-grid/alignment/grid-content-alignment-with-abspos-001.html (#34339)
    • PASS [expected FAIL] subtest: .grid 1
  • OK /custom-elements/form-associated/ElementInternals-setFormValue.html (#29174)
    • PASS [expected FAIL] subtest: setFormValue with an empty FormData should submit nothing
  • OK /fetch/content-length/api-and-duplicate-headers.any.html (#35873)
    • FAIL [expected PASS] subtest: fetch() and duplicate Content-Length/Content-Type headers

      promise_test: Unhandled rejection with value: object "TypeError: Network error occurred"
      

  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-dest
  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-site destination
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html (#20768)
    • FAIL [expected PASS] subtest: Tests that a fragment navigation in the unload handler will not block the initial navigation

      assert_equals: expected "" but got "#fragment"
      

  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • FAIL [expected PASS] subtest: aElement.click() before the load event must NOT replace

      assert_equals: expected "http://web-platform.test:8000/common/blank.html?thereplacement" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/resources/code-injector.html?pipe=sub(none)&amp;code=%0A%20%20%20%20const%20a%20%3D%20document.createElement(%22a%22)%3B%0A%20%20%20%20a.href%20%3D%20%22%2Fcommon%2Fblank.html%3Fthereplacement%22%3B%0A%20%20%20%20document.currentScript.before(a)%3B%0A%20%20%20%20a.click()%3B%0A%20%20"
      

  • PASS [expected FAIL] /html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html (#30063)
  • CRASH [expected OK] /html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned.html
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: Basic test (formdata event)
  • TIMEOUT /resource-timing/test_resource_timing.html (#25720)
    • PASS [expected FAIL] subtest: PerformanceEntry has correct name, initiatorType, startTime, and duration (img)
  • ERROR /service-workers/idlharness.https.any.html (#36250)
    • PASS [expected TIMEOUT] subtest: ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions)
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation enable()
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation disable()
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation setHeaderValue(ByteString)
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation getState()
Stable unexpected results that are known to be intermittent (23)
  • OK /FileAPI/url/url-with-fetch.any.worker.html (#21517)
    • FAIL [expected PASS] subtest: Revoke blob URL after calling fetch, fetch should succeed

      promise_test: Unhandled rejection with value: object "TypeError: Network error occurred"
      

  • FAIL [expected PASS] /_mozilla/mozilla/sslfail.html (#10760)
  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • FAIL [expected PASS] subtest: WebGL test #61

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #63

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #65

      assert_true: Texture was smaller than the expected size 2x2 expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #67

      assert_true: getError expected: INVALID_VALUE. Was NO_ERROR : when calling texSubImage2D with the same texture upload with offset 1, 1 expected true got false
      

  • FAIL [expected PASS] /css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html (#37162)
  • FAIL [expected PASS] /css/css-overflow/line-clamp/line-clamp-021.tentative.html (#35008)
  • FAIL [expected PASS] /css/css-overflow/line-clamp/line-clamp-with-floats-010.tentative.html (#35018)
  • FAIL [expected PASS] /css/css-overflow/margin-block-end-scroll-area-001.html (#35134)
  • PASS [expected FAIL] /css/css-position/sticky/position-sticky-left-002.html (#35135)
  • PASS [expected FAIL] /css/css-position/sticky/position-sticky-top-002.html (#35412)
  • PASS [expected FAIL] /css/css-tables/table-cell-overflow-auto-scrolled.html (#35011)
  • ERROR /fetch/metadata/generated/serviceworker.https.sub.html (#36247)
    • FAIL [expected PASS] subtest: sec-fetch-site - Same origin, no options - registration

      promise_test: Unhandled rejection with value: object "Error: Failed to query for recorded headers."
      

  • OK /html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html (#29066)
    • PASS [expected FAIL] subtest: Check execution order on load handler
    • PASS [expected FAIL] subtest: Check execution order from nested timeout
  • OK /html/browsers/browsing-the-web/navigating-across-documents/refresh/same-document-refresh.html (#34597)
    • PASS [expected FAIL] subtest: Same-Document Referrer from Refresh
  • OK /html/browsers/history/the-history-interface/traverse_the_history_2.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • OK [expected TIMEOUT] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus should support autofocus

      assert_equals: expected Element node &lt;div autofocus=""&gt;&lt;/div&gt; but got Element node &lt;body&gt;&lt;/body&gt;
      

    • FAIL [expected NOTRUN] subtest: Host element with delegatesFocus including no focusable descendants should be skipped

      assert_equals: expected Element node &lt;input autofocus=""&gt;&lt;/input&gt; but got Element node &lt;body&gt;&lt;div autofocus=""&gt;&lt;/div&gt;&lt;input autofocus=""&gt;&lt;/body&gt;
      

    • FAIL [expected NOTRUN] subtest: Area element should support autofocus

      promise_test: Unhandled rejection with value: object "TypeError: w.document.querySelector(...) is null"
      

  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: Basic test (formdata event)
  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • FAIL [expected PASS] subtest: Reload domComplete &gt; Original domComplete

      assert_true: Reload domComplete &gt; Original domComplete expected true got false
      

    • FAIL [expected PASS] subtest: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart

      assert_true: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart expected true got false
      

    • FAIL [expected PASS] subtest: Reload domInteractive &gt; Original domInteractive

      assert_true: Reload domInteractive &gt; Original domInteractive expected true got false
      

    • FAIL [expected PASS] subtest: Reload fetchStart &gt; Original fetchStart

      assert_true: Reload fetchStart &gt; Original fetchStart expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventEnd &gt; Original loadEventEnd

      assert_true: Reload loadEventEnd &gt; Original loadEventEnd expected true got false
      

    • FAIL [expected PASS] subtest: Reload loadEventStart &gt; Original loadEventStart

      assert_true: Reload loadEventStart &gt; Original loadEventStart expected true got false
      

  • OK [expected TIMEOUT] /performance-timeline/navigation-id-detached-frame.tentative.html (#34773)
    • PASS [expected TIMEOUT] subtest: The navigation_id getter does not crash a window of detached frame
  • OK /preload/prefetch-document.html (#37210)
    • FAIL [expected PASS] subtest: different-site document prefetch with 'as=document' should not be consumed

      assert_equals: expected 2 but got 1
      

  • OK /preload/preload-error.sub.html (#37177)
    • PASS [expected FAIL] subtest: CORS (style): main
    • PASS [expected FAIL] subtest: success (script): main
    • PASS [expected FAIL] subtest: 404 (script): main
    • PASS [expected FAIL] subtest: 404 (xhr): main
    • PASS [expected FAIL] subtest: Decode-error (script): main
  • OK /webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html (#22849)
    • FAIL [expected PASS] subtest: X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [14650] 2.9417684000000000e+7 8.6956524848937988e-1 2.9417683130434752e+7 3.3830334390132926e+7 3.8985999999999999e-3 [14651] 3.0547976493835449e-1 8.9879405498504639e-1 5.9331429004669189e-1 6.6012262403823208e-1 3.8985999999999999e-3 Max AbsError of 2.9417683130434752e+7 at index of 14650. Max RelError of 3.3830334390132926e+7 at index of 14650.

      assert_true: expected true got false
      

    • FAIL [expected PASS] subtest: X SNR (-105.93808336988445 dB) is not greater than or equal to 65.737. Got -105.93808336988445.

      assert_true: expected true got false
      

@github-actions
Copy link

⚠️ Try run (#15740594299) failed.

@github-actions
Copy link

🔨 Triggering try run (#15741354591) for OpenHarmony

@github-actions
Copy link

✨ Try run (#15741354591) succeeded.

@jdm
Copy link
Member

jdm commented Jun 18, 2025

The open Harmony error:

Error relocating /data/storage/el1/bundle/libs/arm64/libservoshell.so: pthread_mutexattr_setrobust: symbol not found

We'll need to figure out which dependency is bringing that in and what we can do to avoid it.

@jdm
Copy link
Member

jdm commented Jun 18, 2025

Although it's confusing that trying the opemharmony job again succeeded...

@jschwe
Copy link
Member

jschwe commented Jun 18, 2025

Although it's confusing that trying the opemharmony job again succeeded...

No, it did fail. But currently failure is allowed for this job, so it doesn't block the MQ and sadly this also causes the bot to write it succeeded, instead of mentioning that there were errors, which are not required to pass the status checks.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
@github-actions
Copy link

🔨 Triggering try run (#15749354233) for OpenHarmony

@github-actions
Copy link

🐰 Bencher Report

Branchmain
TestbedHUAWEI Mate 60 Pro

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkLatencymilliseconds (ms)MemoryBytes
E2E/https://www.google.com/JS/gc-heap/admin📈 view plot
⚠️ NO THRESHOLD
23,840.00
E2E/https://www.google.com/JS/gc-heap/decommitted📈 view plot
⚠️ NO THRESHOLD
573,440.00
E2E/https://www.google.com/JS/gc-heap/unused📈 view plot
⚠️ NO THRESHOLD
49,272.00
E2E/https://www.google.com/JS/gc-heap/used📈 view plot
⚠️ NO THRESHOLD
402,024.00
E2E/https://www.google.com/JS/malloc-heap📈 view plot
⚠️ NO THRESHOLD
2,862,579.00
E2E/https://www.google.com/JS/non-heap📈 view plot
⚠️ NO THRESHOLD
262,144.00
E2E/https://www.google.com/LayoutThread/box-tree📈 view plot
⚠️ NO THRESHOLD
101,488.00
E2E/https://www.google.com/LayoutThread/display-list📈 view plot
⚠️ NO THRESHOLD
0.00
E2E/https://www.google.com/LayoutThread/font-context📈 view plot
⚠️ NO THRESHOLD
4,040.00
E2E/https://www.google.com/LayoutThread/fragment-tree📈 view plot
⚠️ NO THRESHOLD
112.00
E2E/https://www.google.com/LayoutThread/stylist📈 view plot
⚠️ NO THRESHOLD
5,264.00
E2E/https://www.google.com/Load📈 view plot
⚠️ NO THRESHOLD
369.25 ms
E2E/https://www.google.com/Resident📈 view plot
⚠️ NO THRESHOLD
186,549,043.00
E2E/https://www.google.com/image-cache📈 view plot
⚠️ NO THRESHOLD
35,328.00
E2E/https://www.servo.org/Load📈 view plot
⚠️ NO THRESHOLD
984.33 ms
E2E/https://www.servo.org/Resident📈 view plot
⚠️ NO THRESHOLD
265,324,134.00
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link

✨ Try run (#15749354233) succeeded.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-content/indexeddb IndexedDB implementation issues.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement IndexedDB.

7 participants