Closed Bug 1613230 Opened 5 years ago Closed 5 years ago

[wpt-sync] Sync PR 21581 - An associated-interface-free DOM Storage

Categories

(Core :: Storage: localStorage & sessionStorage, task, P4)

task

Tracking

()

RESOLVED FIXED
mozilla75
Tracking Status
firefox75 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 21581 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/21581
Details from upstream follow.

Ken Rockot <rockot@google.com> wrote:

An associated-interface-free DOM Storage

Removes the last usage of Mojo associated interfaces from DOM Storage
code. Prior to this change, associated interfaces are used to
synchronize Clone() operations on a StorageNamespace interface with
arbitrary mutations on any StorageArea bound through that
StorageNamespace.

With the introduction of the Mojo async flushing API in r730829 we can
enforce such synchronization without associated interfaces. This CL does
that with a simple two-phase flush at clone time:

  • Flush all related StorageArea pipes immediately prior to Clone
  • Tell the StorageNamespace pipe to pause until said flushes complete
  • Call StorageNamespace.Clone()
  • Flush the StorageNamespace pipe immediately after Clone
  • Tell all related StorageArea pipes to pause until that flush completes

This achieves the necessary ordering constraints for Session Storage
cloning without requiring strict ordering among all StorageNamespace and
StorageArea messages, consequently allowing StorageNamespace and
StorageArea to use independent pipes connected to potentially different
processes from each other. This satisfies a key requirement for
migrating Session Storage to the Storage Service.

Bug: 1000959
Change-Id: Ic1ccc2d6cbfa462733c53d2052d616655b49ed53
Reviewed-on: https://chromium-review.googlesource.com/2036885
WPT-Export-Revision: 25adf343930ca242409e74cb35f79da355f6ea88

Component: web-platform-tests → Storage: localStorage & sessionStorage
Product: Testing → Core
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]

CI Results

Ran 13 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 44 tests

Status Summary

Firefox

OK : 1
PASS: 1[GitHub] 44[Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-linux1804-64-asan-opt, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt]

Chrome

OK : 1
PASS: 1

Safari

OK : 1
PASS: 1

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/92fc09d46c53 [wpt PR 21581] - An associated-interface-free DOM Storage, a=testonly
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75
You need to log in before you can comment on or make changes to this bug.