• mtrofin's avatar
    Reland of [wasm] Transferrable modules (patchset #1 id:1 of... · 9dfa4639
    mtrofin authored
    Reland of [wasm] Transferrable modules (patchset #1 id:1 of https://codereview.chromium.org/2762163002/ )
    
    Reason for revert:
    Temporarily disabled tests on chromium side (https://codereview.chromium.org/2764933002)
    
    Original issue's description:
    > Revert of [wasm] Transferrable modules (patchset #13 id:280001 of https://codereview.chromium.org/2748473004/ )
    >
    > Reason for revert:
    > Breaks layout tests:
    > https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/14312
    >
    > See https://github.com/v8/v8/wiki/Blink-layout-tests
    >
    > Original issue's description:
    > > [wasm] Transferrable modules
    > >
    > > We want to restrict structured cloning in Chrome to:
    > > - postMessage senders and receivers that are co-located
    > > in the same process
    > > - indexedDB (just https).
    > >
    > > For context, on the Chrome side, we will achieve the postMessage part
    > > by using a mechanism similar to transferrables: the
    > > SerializedScriptValue will have a list of wasm modules, separate from
    > > the serialized data stream; and this list won't be copied cross
    > > process boundaries. The IDB part is achieved by explicitly opting in
    > > reading/writing to the serialization stream. To block attack vectors
    > > in IPC cases, the default for deserialization will be to expect data
    > > in the wasm transfers list.
    > >
    > > This change is the V8 side necessary to enabling this design. We
    > > introduce TransferrableModule, an opaque datatype exposed to the
    > > embedder. Internally, TransferrableModules are just serialized data,
    > > because we don't have a better mechanism, at the moment, for
    > > de-contextualizing/re-contextualizing wasm modules (wrt Isolate and
    > > Context).
    > >
    > > The chrome defaults will be implemented in the
    > > serialization/deserialization delegates on that side. For the v8 side
    > > of things, in the absence of a serialization delegate, the V8
    > > serializer will write to serialization stream. In the absence of a
    > > deserialization delegate, the deserializer won't work. This asymmetry
    > > is intentional - it communicates to the embedder the need to make a
    > > policy decision, otherwise wasm serialization/deserialization won't
    > > work "out of the box".
    > >
    > > BUG=v8:6079
    > >
    > > Review-Url: https://codereview.chromium.org/2748473004
    > > Cr-Commit-Position: refs/heads/master@{#43955}
    > > Committed: https://chromium.googlesource.com/v8/v8/+/99743ad460ea5b9795ba9d70a074e75d7362a3d1
    >
    > TBR=jbroman@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org
    > # Skipping CQ checks because original CL landed less than 1 days ago.
    > NOPRESUBMIT=true
    > NOTREECHECKS=true
    > NOTRY=true
    > BUG=v8:6079
    >
    > Review-Url: https://codereview.chromium.org/2762163002
    > Cr-Commit-Position: refs/heads/master@{#43981}
    > Committed: https://chromium.googlesource.com/v8/v8/+/e538b70e1a45289dfe0fa9789563f023a5e9c22b
    
    TBR=jbroman@chromium.org,bradnelson@chromium.org,machenbach@chromium.org
    # Skipping CQ checks because original CL landed less than 1 days ago.
    NOPRESUBMIT=true
    NOTREECHECKS=true
    NOTRY=true
    BUG=v8:6079
    
    Review-Url: https://codereview.chromium.org/2762273002
    Cr-Commit-Position: refs/heads/master@{#43994}
    9dfa4639
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
simdjs Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...