Changeset 226322 in webkit


Ignore:
Timestamp:
Jan 2, 2018 7:38:39 AM (6 years ago)
Author:
gskachkov@gmail.com
Message:

WebAssembly: sending module to iframe fails
https://bugs.webkit.org/show_bug.cgi?id=179263

Reviewed by JF Bastien.

Source/WebCore:

Allow use WebAssembly.Module as input parameters for postMessage
in window and iframe object. To prevent sending message to iframe
that is not ready, in iframe-* test we are waiting message from
iframe only after that we send message to it.

Tests: wasm/iframe-parent-postmessage.html

wasm/iframe-postmessage.html
wasm/window-postmessage.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):

  • bindings/js/SerializedScriptValue.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):

LayoutTests:

  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
  • resources/wasm-builder.js: Renamed from LayoutTests/workers/wasm-resources/builder.js.
  • wasm/iframe-parent-postmessage-expected.txt: Added.
  • wasm/iframe-parent-postmessage.html: Added.
  • wasm/iframe-postmessage-expected.txt: Added.
  • wasm/iframe-postmessage.html: Added.
  • wasm/resources/frame-parent.html: Added.
  • wasm/resources/frame.html: Added.
  • wasm/resources/load_wasm.js: Added.

(createWasmModule):

  • wasm/window-postmessage-expected.txt: Added.
  • wasm/window-postmessage.html: Added.
  • workers/wasm-mem-post-message.html:
Location:
trunk
Files:
11 added
8 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r226321 r226322  
     12018-01-02  Oleksandr Skachkov  <gskachkov@gmail.com>
     2
     3        WebAssembly: sending module to iframe fails
     4        https://bugs.webkit.org/show_bug.cgi?id=179263
     5
     6        Reviewed by JF Bastien.
     7
     8        * platform/ios-simulator/TestExpectations:
     9        * platform/win/TestExpectations:
     10        * resources/wasm-builder.js: Renamed from LayoutTests/workers/wasm-resources/builder.js.
     11        * wasm/iframe-parent-postmessage-expected.txt: Added.
     12        * wasm/iframe-parent-postmessage.html: Added.
     13        * wasm/iframe-postmessage-expected.txt: Added.
     14        * wasm/iframe-postmessage.html: Added.
     15        * wasm/resources/frame-parent.html: Added.
     16        * wasm/resources/frame.html: Added.
     17        * wasm/resources/load_wasm.js: Added.
     18        (createWasmModule):
     19        * wasm/window-postmessage-expected.txt: Added.
     20        * wasm/window-postmessage.html: Added.
     21        * workers/wasm-mem-post-message.html:
     22
    1232018-01-02  Ms2ger  <Ms2ger@igalia.com>
    224
  • trunk/LayoutTests/platform/ios-simulator/TestExpectations

    r226210 r226322  
    5353http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe.html [ Failure ]
    5454http/tests/security/contentSecurityPolicy/WebAssembly-blocked.html [ Failure ]
     55wasm/iframe-postmessage.html [ Skip ]
     56wasm/iframe-parent-postmessage.html [ Skip ]
     57wasm/window-postmessage.html [ Skip ]
    5558
    5659# WebGL tests which need triaging https://bugs.webkit.org/b/174100
  • trunk/LayoutTests/platform/win/TestExpectations

    r226219 r226322  
    36733673workers/wasm-long-compile.html [ Skip ]
    36743674workers/wasm-mem-post-message.html [ Skip ]
     3675wasm/iframe-postmessage.html [ Skip ]
     3676wasm/iframe-parent-postmessage.html [ Skip ]
     3677wasm/window-postmessage.html [ Skip ]
    36753678
    36763679# Animated image throttling behaves differently on WK1.
  • trunk/LayoutTests/workers/wasm-mem-post-message.html

    r226210 r226322  
    11<html>
    22  <head>
    3     <script src="./wasm-resources/builder.js"></script>
     3    <script src="../resources/wasm-builder.js"></script>
    44    <script src="../resources/js-test-pre.js"></script>
    55</head>
  • trunk/Source/WebCore/ChangeLog

    r226320 r226322  
     12018-01-02  Oleksandr Skachkov  <gskachkov@gmail.com>
     2
     3        WebAssembly: sending module to iframe fails
     4        https://bugs.webkit.org/show_bug.cgi?id=179263
     5
     6        Reviewed by JF Bastien.
     7
     8        Allow use WebAssembly.Module as input parameters for postMessage
     9        in window and iframe object. To prevent sending message to iframe
     10        that is not ready, in iframe-* test we are waiting message from
     11        iframe only after that we send message to it.   
     12
     13        Tests: wasm/iframe-parent-postmessage.html
     14               wasm/iframe-postmessage.html
     15               wasm/window-postmessage.html
     16
     17        * bindings/js/SerializedScriptValue.cpp:
     18        (WebCore::CloneSerializer::dumpIfTerminal):
     19        * bindings/js/SerializedScriptValue.h:
     20        * page/DOMWindow.cpp:
     21        (WebCore::DOMWindow::postMessage):
     22
    123== Rolled over to ChangeLog-2018-01-01 ==
  • trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp

    r226210 r226322  
    10671067#if ENABLE(WEBASSEMBLY)
    10681068            if (JSWebAssemblyModule* module = jsDynamicDowncast<JSWebAssemblyModule*>(vm, obj)) {
    1069                 if (m_context != SerializationContext::WorkerPostMessage)
     1069                if (m_context != SerializationContext::WorkerPostMessage && m_context != SerializationContext::WindowPostMessage)
    10701070                    return false;
    10711071
  • trunk/Source/WebCore/bindings/js/SerializedScriptValue.h

    r226210 r226322  
    5252
    5353enum class SerializationErrorMode { NonThrowing, Throwing };
    54 enum class SerializationContext { Default, WorkerPostMessage };
     54enum class SerializationContext { Default, WorkerPostMessage, WindowPostMessage };
    5555
    5656using ArrayBufferContentsArray = Vector<JSC::ArrayBufferContents>;
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r226210 r226322  
    928928
    929929    Vector<RefPtr<MessagePort>> ports;
    930     auto message = SerializedScriptValue::create(state, messageValue, WTFMove(transfer), ports);
     930    auto message = SerializedScriptValue::create(state, messageValue, WTFMove(transfer), ports, SerializationContext::WindowPostMessage);
    931931    if (message.hasException())
    932932        return message.releaseException();
Note: See TracChangeset for help on using the changeset viewer.