Bug 1700737 [wpt PR 28224] - NativeIO: Replace SharedArrayBuffer in I/O with transfer...
commit949e9580b9911e23b7730964f77ee79cd1d285cd
authorEmanuel Krivoy <krivoy@google.com>
Tue, 13 Apr 2021 10:19:03 +0000 (13 10:19 +0000)
committermoz-wptsync-bot <wptsync@mozilla.com>
Thu, 15 Apr 2021 09:17:10 +0000 (15 09:17 +0000)
tree2a85c5e9f53d16347e18ce32c969f48e13e0ee48
parentb4a9c86c7acc85b5ed52a12d841aacad2dc4b77b
Bug 1700737 [wpt PR 28224] - NativeIO: Replace SharedArrayBuffer in I/O with transferred ArrayBuffer, a=testonly

Automatic update from web-platform-tests
NativeIO: Replace SharedArrayBuffer in I/O with transferred ArrayBuffer

This CL changes the type of the buffer used when reading/writing from a
SharedArrayBuffer (SAB) to an ArrayBuffer. SABs were originally used to
clearly denote that the buffer would be observably manipulated by
another "thread" (i.e. the OS as it filled or read the buffer). This had
the risk of allowing identification of the host configuration, by
observing how the buffer was accessed.

The new approach takes an ArrayBuffer, and immediately transfers it. The
given buffer becomes detached (and therefore cannot be used to observe
host operations). The returned buffer references the same memory
allocation as in the inputted one, so there are no copies.

There are 3 different types of changes in this CL:
  - Functional changes, under blink/renderer/modules/native_io
  - Updated tests that use the new interface, where mostly mechanical
    changes were made
  - New tests, that confirm the input buffer is detached, which can be
    found in blink/web_tests/external/wpt/native-io/read_write_async_basic.tentative.https.any.js
    and
    blink/web_tests/external/wpt/native-io/read_write_sync_basic.tentative.https.any.js

Design doc: https://docs.google.com/document/d/1yJv2b5yBhyIj4kOEExEu1s6oZELm2IjywbOrWwNdkuU

Bug: 914488
Change-Id: Iac7b9f4a10e75fee7caa8039d054c7df46f83477
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2784820
Commit-Queue: Emanuel Krivoy <krivoy@google.com>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Reviewed-by: Richard Stotz <rstz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#869786}

--

wpt-commits: b307027a8f29393dd310c76e966bcdb6e4e7910a
wpt-pr: 28224
21 files changed:
testing/web-platform/tests/native-io/close_async.tentative.https.any.js
testing/web-platform/tests/native-io/close_sync.tentative.https.any.js
testing/web-platform/tests/native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.js
testing/web-platform/tests/native-io/concurrent_io/concurrent_io_getLength_async.tentative.https.any.js
testing/web-platform/tests/native-io/concurrent_io/concurrent_io_read_async.tentative.https.any.js
testing/web-platform/tests/native-io/concurrent_io/concurrent_io_setLength_async.tentative.https.any.js
testing/web-platform/tests/native-io/concurrent_io/concurrent_io_write_async.tentative.https.any.js
testing/web-platform/tests/native-io/concurrent_io/operation_helpers.js
testing/web-platform/tests/native-io/flush_async_basic.tentative.https.any.js
testing/web-platform/tests/native-io/flush_sync_basic.tentative.https.any.js
testing/web-platform/tests/native-io/getLength_setLength_async_basic.tentative.https.any.js
testing/web-platform/tests/native-io/getLength_setLength_sync_basic.tentative.https.any.js
testing/web-platform/tests/native-io/read_write_async_basic.tentative.https.any.js
testing/web-platform/tests/native-io/read_write_correct_arraybufferview_async_basic.tentative.https.any.js [new file with mode: 0644]
testing/web-platform/tests/native-io/read_write_correct_arraybufferview_sync_basic.tentative.https.any.js [new file with mode: 0644]
testing/web-platform/tests/native-io/read_write_sync_basic.tentative.https.any.js
testing/web-platform/tests/native-io/rename_async_failure_handling.tentative.https.any.js
testing/web-platform/tests/native-io/rename_sync_failure_handling.tentative.https.any.js
testing/web-platform/tests/native-io/resources/support.js
testing/web-platform/tests/native-io/write_capacity_allocation_async.tentative.https.any.js
testing/web-platform/tests/native-io/write_capacity_allocation_sync.tentative.https.any.js