Closed Bug 1732021 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 30851 - FSA: Make move() and rename() compatible with file locking

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox95 fixed)

RESOLVED FIXED
95 Branch
Tracking Status
firefox95 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Austin Sullivan <asully@chromium.org> wrote:

FSA: Make move() and rename() compatible with file locking

Moving a file requires acquiring an exclusive write lock of both the
source and target URLs. The locks are released once the move completes.

Bug: 1140805, 1250536
Change-Id: I6c51af226a7454bfc3e4bd6b678aab807f36f534
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3169416
Commit-Queue: Austin Sullivan \<asully@chromium.org>
Auto-Submit: Austin Sullivan \<asully@chromium.org>
Reviewed-by: Marijn Kruisselbrink \<mek@chromium.org>
Cr-Commit-Position: refs/heads/main@{#922764}

PR 30851 applied with additional changes from upstream: ac39068db09c1c65f4d4306d45bc85c4670bc3f1

CI Results

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

Total 4 tests and 12 subtests

Status Summary

Firefox

OK : 4
FAIL: 72

Chrome

OK : 4
PASS: 60
FAIL: 12

Safari

OK : 4
FAIL: 72

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/file-system-access/sandboxed_FileSystemBaseHandle-move.https.any.worker.html
move(dir, name) to rename a file: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to rename a file the same name: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to rename an empty directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to rename a non-empty directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) to move a file to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") to move a file to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a file to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) to move an empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") to move an empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move an empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") to move a non-empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a non-empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) with a name with invalid characters should fail: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a directory within itself fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a directory within itself and rename fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) to move a directory within a descendent fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a directory within a descendent fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) while the file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
move(dir, name) while the file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
move(dir) while the destination file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
move(dir, name) while the destination file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
/file-system-access/sandboxed_FileSystemBaseHandle-move.https.any.html
move(dir, name) to rename a file: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to rename a file the same name: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to rename an empty directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to rename a non-empty directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) to move a file to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") to move a file to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a file to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) to move an empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") to move an empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move an empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") to move a non-empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a non-empty directory to a new directory: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, "") can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) with a name with invalid characters should fail: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a directory within itself fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a directory within itself and rename fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) to move a directory within a descendent fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir, name) to move a directory within a descendent fails: FAIL (Chrome: PASS, Safari: FAIL)
move(dir) while the file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
move(dir, name) while the file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
move(dir) while the destination file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
move(dir, name) while the destination file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
/file-system-access/sandboxed_FileSystemBaseHandle-rename.https.any.html
rename(name) to rename a file: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) to rename a file the same name: FAIL (Chrome: PASS, Safari: FAIL)
rename("") to rename a file fails: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) to rename an empty directory: FAIL (Chrome: PASS, Safari: FAIL)
rename("") to rename an empty directory fails: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) to rename a non-empty directory: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
rename(dir) should rename to stringified dir object: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) with a name with a trailing period should fail: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) with a name with invalid characters should fail: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) while the file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
rename(name) while the destination file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
/file-system-access/sandboxed_FileSystemBaseHandle-rename.https.any.worker.html
rename(name) to rename a file: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) to rename a file the same name: FAIL (Chrome: PASS, Safari: FAIL)
rename("") to rename a file fails: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) to rename an empty directory: FAIL (Chrome: PASS, Safari: FAIL)
rename("") to rename an empty directory fails: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) to rename a non-empty directory: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
rename(dir) should rename to stringified dir object: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) with a name with a trailing period should fail: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) with a name with invalid characters should fail: FAIL (Chrome: PASS, Safari: FAIL)
rename(name) while the file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)
rename(name) while the destination file has an open writable fails: FAIL (Chrome: FAIL, Safari: FAIL)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5f7738c50910
[wpt PR 30851] - FSA: Make move() and rename() compatible with file locking, a=testonly
https://hg.mozilla.org/integration/autoland/rev/30cc233f6a42
[wpt PR 30851] - Update wpt metadata, a=testonly
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d1ec11572fe5
[wpt PR 30851] - FSA: Make move() and rename() compatible with file locking, a=testonly
https://hg.mozilla.org/integration/autoland/rev/8433f88be785
[wpt PR 30851] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 95 Branch
You need to log in before you can comment on or make changes to this bug.