• machenbach's avatar
    Revert of [wasm] Transferrable modules (patchset #13 id:280001 of... · e538b70e
    machenbach authored
    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}
    e538b70e
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...