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