Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 194c42fd694410278bc8a19d998239cfe043667f
      
https://github.com/WebKit/WebKit/commit/194c42fd694410278bc8a19d998239cfe043667f
  Author: Alex Christensen <[email protected]>
  Date:   2023-10-05 (Thu, 05 Oct 2023)

  Changed paths:
    A 
LayoutTests/http/tests/site-isolation/resources/window-properties-child-2.html
    M 
LayoutTests/http/tests/site-isolation/resources/window-properties-grandchild.html
    M LayoutTests/http/tests/site-isolation/window-properties-expected.txt
    M LayoutTests/http/tests/site-isolation/window-properties.html
    M Source/WebCore/bindings/js/JSDOMBindingSecurity.cpp
    M Source/WebCore/bindings/js/JSDOMBindingSecurity.h
    M Source/WebCore/page/DOMWindow.cpp
    M Source/WebCore/page/DOMWindow.h
    M Source/WebCore/page/DOMWindow.idl
    M Source/WebCore/page/LocalDOMWindow.cpp
    M Source/WebCore/page/LocalDOMWindow.h
    M Source/WebCore/page/LocalDOMWindow.idl
    M Source/WebCore/page/Location.cpp
    M Source/WebCore/page/Location.h
    M Source/WebCore/page/RemoteDOMWindow.cpp
    M Source/WebCore/page/RemoteDOMWindow.h
    M Source/WebCore/page/RemoteDOMWindow.idl

  Log Message:
  -----------
  Implement window.location for site-isolated iframes
https://bugs.webkit.org/show_bug.cgi?id=262634
rdar://116203895

Reviewed by Pascoe.

window.location needs to be accessible on a RemoteDOMWindow, but its accessors 
need to throw security exceptions.
However, setting the location should navigate the frame.  I added tests that 
verify this is the case.
I moved the Location getter and setter from LocalDOMWindow to DOMWindow to 
share code when possible.

* 
LayoutTests/http/tests/site-isolation/resources/window-properties-child-2.html: 
Added.
* 
LayoutTests/http/tests/site-isolation/resources/window-properties-grandchild.html:
* LayoutTests/http/tests/site-isolation/window-properties-expected.txt:
* LayoutTests/http/tests/site-isolation/window-properties.html:
* Source/WebCore/bindings/js/JSDOMBindingSecurity.cpp:
(WebCore::BindingSecurity::shouldAllowAccessToDOMWindow):
* Source/WebCore/bindings/js/JSDOMBindingSecurity.h:
* Source/WebCore/page/DOMWindow.cpp:
(WebCore::DOMWindow::location):
(WebCore::root):
* Source/WebCore/page/DOMWindow.h:
* Source/WebCore/page/DOMWindow.idl:
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::location): Deleted.
* Source/WebCore/page/LocalDOMWindow.h:
* Source/WebCore/page/LocalDOMWindow.idl:
* Source/WebCore/page/Location.cpp:
(WebCore::Location::Location):
(WebCore::Location::frame):
(WebCore::Location::frame const):
(WebCore::Location::url const):
(WebCore::Location::setProtocol):
(WebCore::Location::setHost):
(WebCore::Location::setHostname):
(WebCore::Location::setPort):
(WebCore::Location::setPathname):
(WebCore::Location::setSearch):
(WebCore::Location::setHash):
(WebCore::Location::replace):
(WebCore::Location::reload):
(WebCore::Location::setLocation):
* Source/WebCore/page/Location.h:
* Source/WebCore/page/RemoteDOMWindow.cpp:
(WebCore::RemoteDOMWindow::location const): Deleted.
* Source/WebCore/page/RemoteDOMWindow.h:
* Source/WebCore/page/RemoteDOMWindow.idl:

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


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

Reply via email to