diff options
author | Tobias Nießen <tniessen@tnie.de> | 2020-05-11 20:55:37 +0300 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2020-06-22 21:50:38 +0300 |
commit | 7b019fd3c9a1348857927587a84458f7e3449b69 (patch) | |
tree | e7a5bd0fd4c79d96f798e45cbdba9673f0d791d5 /doc/api/worker_threads.md | |
parent | 7f185ec3c417f66ce485084d06084f1438faa5af (diff) |
crypto: allow KeyObjects in postMessage
This change allows sharing KeyObjects between threads via postMessage.
The receiver acquires a new KeyObject and a new KeyObjectHandle, but
refers to the same KeyObjectData:
+-------------------+
| NativeKeyObject 1 | ------------------------------------------+
+-------------------+ |
^ |
extends |
| |
+-------------------+ +-------------------+ |
| KeyObject 1 (JS) | -> | KeyObjectHandle 1 | --------------+ |
+-------------------+ +-------------------+ | |
| |
| |
| |
| |
| |
+-------------------+ | |
| NativeKeyObject 2 | ------------------------------------+ | |
+-------------------+ | | |
^ | | |
extends | | |
| | | |
+-------------------+ +-------------------+ | | |
| KeyObject 2 (JS) | -> | KeyObjectHandle 2 | --------+ | | |
+-------------------+ +-------------------+ | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+-------------------+ | | | |
| NativeKeyObject 3 | ------------------------------+ | | | |
+-------------------+ | | | | |
^ | | | | |
extends | | | | |
| v v v v v
+-------------------+ +-------------------+ +---------------+
| KeyObject 3 (JS) | -> | KeyObjectHandle 3 | -> | KeyObjectData |
+-------------------+ +-------------------+ +---------------+
Co-authored-by: Anna Henningsen <anna@addaleax.net>
PR-URL: https://github.com/nodejs/node/pull/33360
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'doc/api/worker_threads.md')
-rw-r--r-- | doc/api/worker_threads.md | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/doc/api/worker_threads.md b/doc/api/worker_threads.md index 67823a52750..a91a824c7d7 100644 --- a/doc/api/worker_threads.md +++ b/doc/api/worker_threads.md @@ -329,6 +329,9 @@ are part of the channel. added: v10.5.0 changes: - version: REPLACEME + pr-url: https://github.com/nodejs/node/pull/33360 + description: Added `KeyObject` to the list of cloneable types. + - version: REPLACEME pr-url: https://github.com/nodejs/node/pull/33772 description: Added `FileHandle` to the list of transferable types. --> @@ -348,8 +351,8 @@ In particular, the significant differences to `JSON` are: * `value` may contain typed arrays, both using `ArrayBuffer`s and `SharedArrayBuffer`s. * `value` may contain [`WebAssembly.Module`][] instances. -* `value` may not contain native (C++-backed) objects other than `MessagePort`s - and [`FileHandle`][]s. +* `value` may not contain native (C++-backed) objects other than `MessagePort`s, + [`FileHandle`][]s, and [`KeyObject`][]s. ```js const { MessageChannel } = require('worker_threads'); @@ -849,6 +852,7 @@ active handle in the event system. If the worker is already `unref()`ed calling [`EventEmitter`]: events.html [`EventTarget`]: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget [`FileHandle`]: fs.html#fs_class_filehandle +[`KeyObject`]: crypto.html#crypto_class_keyobject [`MessagePort`]: #worker_threads_class_messageport [`SharedArrayBuffer`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer [`Uint8Array`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array |