proto-spec has: Otherwise, if both options' steal dictionary member and option's ifAvailable dictionary member are true, then reject promise with an "NotSupportedError" DOMException.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8515e54abfff429157ab1e0ffe475610c5c1b88a commit 8515e54abfff429157ab1e0ffe475610c5c1b88a Author: Joshua Bell <jsbell@chromium.org> Date: Tue Feb 06 20:20:21 2018 Web Locks API: Implement `steal` option From the Explainer: If a web application detects an unrecoverable state - for example, some coordination point like a Service Worker determines that a tab holding a lock is no longer responding - it can "steal" a lock by passing this option to acquire(). When specified, any held locks for the resource will be released (the lock's released promise will resolve with AbortError), and the request will be granted. Explainer: https://github.com/inexorabletash/web-locks Bug: 804545 , 807499 Change-Id: Ib837b8b7fa6ca7b0e1e96a8aa0dedc1292b26130 Reviewed-on: https://chromium-review.googlesource.com/890024 Commit-Queue: Joshua Bell <jsbell@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Victor Costan <pwnall@chromium.org> Cr-Commit-Position: refs/heads/master@{#534774} [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/content/browser/locks/lock_manager.cc [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/content/browser/locks/lock_manager.h [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/LayoutTests/http/tests/locks/acquire.html [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/LayoutTests/http/tests/locks/held.html [add] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/LayoutTests/http/tests/locks/steal.html [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/Source/modules/locks/Lock.cpp [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/Source/modules/locks/Lock.h [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/Source/modules/locks/LockManager.cpp [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/Source/modules/locks/LockOptions.idl [modify] https://crrev.com/8515e54abfff429157ab1e0ffe475610c5c1b88a/third_party/WebKit/public/platform/modules/locks/lock_manager.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a3f59d93ab1f840a114a8e457a89d8b293366ed0 commit a3f59d93ab1f840a114a8e457a89d8b293366ed0 Author: Joshua Bell <jsbell@chromium.org> Date: Wed Feb 07 19:20:05 2018 Web Locks API: Implement 'signal' option Implement passing an AbortSignal into the lock request, which allows the request to be aborted e.g. after a timeout. For example: Also, consolidate tests for mutually-exclusive options. Explainer: https://github.com/inexorabletash/web-locks Bug: 808732 , 807499 Change-Id: I1f5013bd900e056868e244f56fd923faa20de120 Reviewed-on: https://chromium-review.googlesource.com/902432 Commit-Queue: Joshua Bell <jsbell@chromium.org> Reviewed-by: Victor Costan <pwnall@chromium.org> Cr-Commit-Position: refs/heads/master@{#535095} [modify] https://crrev.com/a3f59d93ab1f840a114a8e457a89d8b293366ed0/third_party/WebKit/LayoutTests/http/tests/locks/acquire.html [add] https://crrev.com/a3f59d93ab1f840a114a8e457a89d8b293366ed0/third_party/WebKit/LayoutTests/http/tests/locks/signal.html [modify] https://crrev.com/a3f59d93ab1f840a114a8e457a89d8b293366ed0/third_party/WebKit/LayoutTests/http/tests/locks/steal.html [modify] https://crrev.com/a3f59d93ab1f840a114a8e457a89d8b293366ed0/third_party/WebKit/Source/modules/locks/LockManager.cpp [modify] https://crrev.com/a3f59d93ab1f840a114a8e457a89d8b293366ed0/third_party/WebKit/Source/modules/locks/LockOptions.idl
Comment 1 by jsb...@chromium.org
, Jan 31 2018