Skip to content

Commit c41fb39

Browse files
gahaasCommit Bot
authored andcommitted
[wasm] Threads imply structured cloning
In the existing implementation, the structured cloning flag is only set at the startup of the renderer process. In other words, if structured cloning or wasm threads are turned on when the renderer process starts up, then structured cloning is enabled. However, with the origin trial for wasm threads it's possible that wasm threads get turned on only later when the webpages loads. With this CL we now always also check the wasm threads flag in addition to checking the structured cloning flag. [email protected] Bug: v8:8304 Change-Id: I49da6bd76a4cc38abc01fbe0c9707c6b17a8de3f Reviewed-on: https://chromium-review.googlesource.com/c/1280444 Reviewed-by: Michael Starzinger <[email protected]> Commit-Queue: Andreas Haas <[email protected]> Cr-Commit-Position: refs/heads/master@{#56629}
1 parent 26b47aa commit c41fb39

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

src/value-serializer.cc

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -517,12 +517,14 @@ Maybe<bool> ValueSerializer::WriteJSReceiver(Handle<JSReceiver> receiver) {
517517
case JS_TYPED_ARRAY_TYPE:
518518
case JS_DATA_VIEW_TYPE:
519519
return WriteJSArrayBufferView(JSArrayBufferView::cast(*receiver));
520-
case WASM_MODULE_TYPE:
521-
if (!FLAG_wasm_disable_structured_cloning) {
520+
case WASM_MODULE_TYPE: {
521+
auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
522+
if (!FLAG_wasm_disable_structured_cloning || enabled_features.threads) {
522523
// Only write WebAssembly modules if not disabled by a flag.
523524
return WriteWasmModule(Handle<WasmModuleObject>::cast(receiver));
524525
}
525526
break;
527+
}
526528
case WASM_MEMORY_TYPE: {
527529
auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
528530
if (enabled_features.threads) {
@@ -1742,7 +1744,9 @@ MaybeHandle<JSArrayBufferView> ValueDeserializer::ReadJSArrayBufferView(
17421744
}
17431745

17441746
MaybeHandle<JSObject> ValueDeserializer::ReadWasmModuleTransfer() {
1745-
if (FLAG_wasm_disable_structured_cloning || expect_inline_wasm()) {
1747+
auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
1748+
if ((FLAG_wasm_disable_structured_cloning && !enabled_features.threads) ||
1749+
expect_inline_wasm()) {
17461750
return MaybeHandle<JSObject>();
17471751
}
17481752

@@ -1764,7 +1768,9 @@ MaybeHandle<JSObject> ValueDeserializer::ReadWasmModuleTransfer() {
17641768
}
17651769

17661770
MaybeHandle<JSObject> ValueDeserializer::ReadWasmModule() {
1767-
if (FLAG_wasm_disable_structured_cloning || !expect_inline_wasm()) {
1771+
auto enabled_features = wasm::WasmFeaturesFromIsolate(isolate_);
1772+
if ((FLAG_wasm_disable_structured_cloning && !enabled_features.threads) ||
1773+
!expect_inline_wasm()) {
17681774
return MaybeHandle<JSObject>();
17691775
}
17701776

0 commit comments

Comments
 (0)