[webkit-changes] [WebKit/WebKit] 441ecb: [Site Isolation] Fix some cases where we unnecessa...

Charlie Wolfe noreply at github.com
Thu Nov 30 14:52:09 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 441ecb3a880a9aad39f1acd2d270300c94fc7b43
      https://github.com/WebKit/WebKit/commit/441ecb3a880a9aad39f1acd2d270300c94fc7b43
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2023-11-30 (Thu, 30 Nov 2023)

  Changed paths:
    M Source/WebCore/bindings/js/JSLocalDOMWindowCustom.cpp
    M Source/WebCore/css/query/MediaQueryFeatures.cpp
    M Source/WebCore/dom/TreeScope.cpp
    M Source/WebCore/html/HTMLFrameElementBase.cpp
    M Source/WebCore/html/MediaElementSession.cpp
    M Source/WebCore/inspector/InspectorFrontendClientLocal.cpp
    M Source/WebCore/inspector/InspectorFrontendHost.cpp
    M Source/WebCore/inspector/InspectorOverlay.cpp
    M Source/WebCore/inspector/agents/InspectorPageAgent.cpp
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/page/DragController.cpp
    M Source/WebCore/page/FocusController.cpp
    M Source/WebCore/page/IntersectionObserver.cpp
    M Source/WebCore/page/LocalDOMWindow.cpp
    M Source/WebCore/page/LocalFrameView.cpp
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/PageOverlay.cpp
    M Source/WebCore/page/ResourceUsageOverlay.cpp
    M Source/WebCore/page/SpatialNavigation.cpp
    M Source/WebCore/page/mac/DragControllerMac.mm
    M Source/WebCore/page/mac/ImageOverlayControllerMac.mm
    M Source/WebCore/page/mac/ServicesOverlayController.mm
    M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
    M Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
    M Source/WebKit/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp
    M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp
    M Source/WebKit/WebProcess/WebPage/FindController.cpp
    M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  [Site Isolation] Fix some cases where we unnecessarily skip code on out-of-process frames
https://bugs.webkit.org/show_bug.cgi?id=265563
rdar://118970867

Reviewed by Alex Christensen.

There are several places where we are unnecessarily skipping code on out-of-process frames. We should
avoid downcasting to a local frame if it's not required.

* Source/WebCore/bindings/js/JSLocalDOMWindowCustom.cpp:
(WebCore::jsLocalDOMWindowGetOwnPropertySlotRestrictedAccess):
* Source/WebCore/css/query/MediaQueryFeatures.cpp:
(WebCore::MQ::Features::color):
(WebCore::MQ::Features::dynamicRange):
* Source/WebCore/dom/TreeScope.cpp:
(WebCore::focusedFrameOwnerElement):
* Source/WebCore/html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::didAttachRenderers):
* Source/WebCore/html/MediaElementSession.cpp:
(WebCore::isElementRectMostlyInMainFrame):
* Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::canAttachWindow):
(WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight):

(WebCore::InspectorFrontendClientLocal::changeAttachedWindowWidth):

There is also a behavior change in this function. Previously, we did a null check on `otherMainFrame` and
then used the width on `localMainFrame`, which seemed like a bug.

(WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight):
* Source/WebCore/inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::copyText):
* Source/WebCore/inspector/InspectorOverlay.cpp:
(WebCore::localPointToRootPoint):
(WebCore::contentsQuadToCoordinateSystem):
(WebCore::buildRendererHighlight):
(WebCore::drawShapeHighlight):
(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::highlightQuad):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::showPaintRect):
(WebCore::InspectorOverlay::buildGridOverlay):
* Source/WebCore/inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::didPaint):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::completed):
* Source/WebCore/page/DragController.cpp:
(WebCore::DragController::beginDrag):
* Source/WebCore/page/FocusController.cpp:
(WebCore::FocusController::setFocusedInternal):
(WebCore::FocusController::advanceFocusInDocumentOrder):
(WebCore::FocusController::setIsVisibleAndActiveInternal):
* Source/WebCore/page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::computeIntersectionState const):
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::adjustWindowRect):
(WebCore::LocalDOMWindow::moveTo const):
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::shouldUpdateCompositingLayersAfterScrolling const):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::findString):
(WebCore::Page::screenPropertiesDidChange):
(WebCore::Page::lockAllOverlayScrollbarsToHidden):
(WebCore::Page::setVerticalScrollElasticity):
(WebCore::Page::setDebugger):
(WebCore::Page::subframeCount const):
* Source/WebCore/page/PageOverlay.cpp:
(WebCore::PageOverlay::bounds const):
(WebCore::PageOverlay::drawRect):
* Source/WebCore/page/ResourceUsageOverlay.cpp:
(WebCore::ResourceUsageOverlay::~ResourceUsageOverlay):
(WebCore::ResourceUsageOverlay::mouseEvent):
* Source/WebCore/page/SpatialNavigation.cpp:
(WebCore::rectToAbsoluteCoordinates):
* Source/WebCore/page/mac/DragControllerMac.mm:
(WebCore::DragController::cleanupAfterSystemDrag):
* Source/WebCore/page/mac/ImageOverlayControllerMac.mm:
(WebCore::ImageOverlayController::updateDataDetectorHighlights):
(WebCore::ImageOverlayController::platformHandleMouseEvent):
* Source/WebCore/page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::buildSelectionHighlight):
(WebCore::ServicesOverlayController::mouseEvent):
(WebCore::ServicesOverlayController::handleClick):
* Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
* Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously const):
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::saveScrollPosition):
* Source/WebKit/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::addParametersShared):
* Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:
(WebKit::createShareableBitmap):
* Source/WebKit/WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::rectsForTextMatchesInRect):
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::size const):
(WebKit::WebFrame::jsContextForServiceWorkerWorld):
(WebKit::WebFrame::contentBounds const):
(WebKit::WebFrame::visibleContentBounds const):
(WebKit::WebFrame::scrollOffset const):
(WebKit::WebFrame::hasVerticalScrollbar const):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::clearMainFrameName):
(WebKit::WebPage::setSize):
(WebKit::WebPage::scaleView):
(WebKit::snapshotColorSpace):

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




More information about the webkit-changes mailing list