• 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
value-serializer.cc 69.3 KB