Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bd7fed371ce8437e0b70db6b5fb306a590c014dc
      
https://github.com/WebKit/WebKit/commit/bd7fed371ce8437e0b70db6b5fb306a590c014dc
  Author: Alex Christensen <[email protected]>
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
    M LayoutTests/http/tests/site-isolation/post-message-expected.txt
    M LayoutTests/http/tests/site-isolation/post-message.html
    M Source/WebCore/page/LocalDOMWindow.cpp
    M Source/WebCore/page/LocalDOMWindow.h
    M Source/WebCore/page/RemoteDOMWindow.cpp
    M Source/WebCore/page/RemoteFrameClient.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/UIProcess/WebProcessProxy.messages.in
    M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/WebProcess.messages.in

  Log Message:
  -----------
  postMessage to site-isolated iframe should have correct event.origin
https://bugs.webkit.org/show_bug.cgi?id=265494
rdar://118907443

Reviewed by Pascoe.

In LocalDOMWindow::postMessageFromRemoteFrame we were passing the destination 
document
as the source document, and we were using that document to get the source 
origin,
which made event.origin the origin of the receiver instead of sender.  To fix 
it, pass
the sourceOrigin along from the sending process to the receiving process.

The source document was also used in a call to 
InspectorInstrumentation::consoleAgentEnabled,
and instead of the source document we'll use the receiving LocalDOMWindow's 
document,
which is probably more correct but either way it is just a perf optimization to 
not get
the stack trace if the web inspector is not open.

* LayoutTests/http/tests/site-isolation/post-message-expected.txt:
* LayoutTests/http/tests/site-isolation/post-message.html:
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::processPostMessage):
(WebCore::LocalDOMWindow::postMessage):
(WebCore::LocalDOMWindow::postMessageFromRemoteFrame):
* Source/WebCore/page/LocalDOMWindow.h:
* Source/WebCore/page/RemoteDOMWindow.cpp:
(WebCore::RemoteDOMWindow::postMessage):
* Source/WebCore/page/RemoteFrameClient.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::postMessageToRemote):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp:
(WebKit::WebRemoteFrameClient::postMessageToRemote):
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::remotePostMessage):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:

Canonical link: https://commits.webkit.org/271281@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to