Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9a0be8b71b1ed3873c736b949ec813522a192aef https://github.com/WebKit/WebKit/commit/9a0be8b71b1ed3873c736b949ec813522a192aef Author: Chris Fleizach <cfleiz...@apple.com> Date: 2024-02-18 (Sun, 18 Feb 2024)
Changed paths: M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h A Source/WebCore/accessibility/AXRemoteFrame.cpp A Source/WebCore/accessibility/AXRemoteFrame.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityScrollView.cpp M Source/WebCore/accessibility/AccessibilityScrollView.h M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h M Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm M Source/WebCore/loader/EmptyClients.cpp M Source/WebCore/loader/EmptyFrameLoaderClient.h M Source/WebCore/loader/LocalFrameLoaderClient.h M Source/WebCore/page/Page.cpp M Source/WebCore/page/RemoteFrame.cpp M Source/WebCore/page/RemoteFrame.h M Source/WebCore/page/RemoteFrameClient.h M Source/WebKit/UIProcess/PageClient.h M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/ProvisionalPageProxy.h M Source/WebKit/UIProcess/WebFrameProxy.cpp M Source/WebKit/UIProcess/WebFrameProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.messages.in M Source/WebKit/UIProcess/ios/PageClientImplIOS.h M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm M Source/WebKit/UIProcess/mac/PageClientImplMac.h M Source/WebKit/UIProcess/mac/PageClientImplMac.mm M Source/WebKit/UIProcess/mac/WebPageProxyMac.mm M Source/WebKit/UIProcess/mac/WebViewImpl.h M Source/WebKit/UIProcess/mac/WebViewImpl.mm M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebPage/WebPage.messages.in M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm M Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm M Source/WebKit/WebProcess/WebProcess.cpp M Source/WebKit/WebProcess/WebProcess.h M Source/WebKit/WebProcess/WebProcess.messages.in M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm M Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h Log Message: ----------- AX: Support site isolation for VoiceOver https://bugs.webkit.org/show_bug.cgi?id=268804 rdar://99665561 Reviewed by Andres Gonzalez, Tyler Wilcock. Initial support for site isolation for VoiceOver. When a scroll view hosts a RemoteFrame it binds itself to the other side through a WebPage message. This transfers data tokens so Accessibility remote elements are created and hooked up. The bounding boxes inside the sub frames need to have the initial offset applied and then need to be converted each step up the chain to account for scroll offsets that only each process knows about. * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::accessibilityRoleToString): (WebCore::AXCoreObject::isRemoteFrame const): * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::streamAXCoreObject): * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::create): (WebCore::AXObjectCache::onRemoteFrameInitialized): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AXRemoteFrame.cpp: Copied from Source/WebCore/page/RemoteFrameClient.h. (WebCore::AXRemoteFrame::create): (WebCore::AXRemoteFrame::elementRect const): * Source/WebCore/accessibility/AXRemoteFrame.h: Copied from Source/WebCore/page/RemoteFrameClient.h. * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::relativeFrame const): (WebCore::AccessibilityObject::remoteParentObject const): (WebCore::AccessibilityObject::remoteFrameOffset const): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::addAttachmentChildren): (WebCore::AccessibilityRenderObject::addChildren): * Source/WebCore/accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::detachRemoteParts): (WebCore::AccessibilityScrollView::clearChildren): (WebCore::AccessibilityScrollView::addRemoteFrameChild): (WebCore::AccessibilityScrollView::addChildren): (WebCore::AccessibilityScrollView::webAreaObject const): (WebCore::AccessibilityScrollView::document const): (WebCore::AccessibilityScrollView::parentObject const): * Source/WebCore/accessibility/AccessibilityScrollView.h: * Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp: (WebCore::atspiRole): * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::initializeProperties): (WebCore::AXIsolatedObject::setProperty): (WebCore::AXIsolatedObject::remoteFrameOffset const): (WebCore::AXIsolatedObject::relativeFrame const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::retrieveObjectForIDFromMainThread const): (WebCore::AXIsolatedTree::updateNodeProperties): (WebCore::AXIsolatedTree::objectsForIDs): Deleted. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: (WebCore::AXIsolatedTree::objectsForIDs): * Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::initializePlatformProperties): (WebCore::AXIsolatedObject::remoteFramePlatformElement const): * Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AXRemoteFrame::generateRemoteToken const): (WebCore::AXRemoteFrame::initializePlatformElementWithRemoteToken): (WebCore::Accessibility::createPlatformRoleMap): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (makeNSArray): (-[WebAccessibilityObjectWrapperBase isIsolatedObject]): (-[WebAccessibilityObjectWrapperBase convertRectToSpace:space:]): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper textMarkerForFirstPositionInTextControl:]): (-[WebAccessibilityObjectWrapper renderWidgetChildren]): (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]): (-[WebAccessibilityObjectWrapper selectedTextMarkerRange]): (-[WebAccessibilityObjectWrapper role]): (-[WebAccessibilityObjectWrapper isEmptyGroup]): (-[WebAccessibilityObjectWrapper subrole]): (-[WebAccessibilityObjectWrapper roleDescription]): (-[WebAccessibilityObjectWrapper _transformSpecialChildrenCases:]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): (-[WebAccessibilityObjectWrapper accessibilityHitTest:]): (-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]): (-[WebAccessibilityObjectWrapper attributedStringForNSRange:]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]): (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]): (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]): * Source/WebCore/loader/EmptyClients.cpp: (WebCore::EmptyFrameLoaderClient::accessibilityRemoteFrameOffset): * Source/WebCore/loader/EmptyFrameLoaderClient.h: * Source/WebCore/loader/LocalFrameLoaderClient.h: * Source/WebCore/page/Page.cpp: (WebCore::Page::shouldUpdateAccessibilityRegions const): * Source/WebCore/page/RemoteFrame.cpp: (WebCore::RemoteFrame::updateRemoteFrameAccessibilityOffset): (WebCore::RemoteFrame::unbindRemoteAccessibilityFrames): (WebCore::RemoteFrame::bindRemoteAccessibilityFrames): * Source/WebCore/page/RemoteFrame.h: * Source/WebCore/page/RemoteFrameClient.h: * Source/WebKit/UIProcess/PageClient.h: * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::registerWebProcessAccessibilityToken): * Source/WebKit/UIProcess/ProvisionalPageProxy.h: * Source/WebKit/UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::bindAccessibilityFrameWithData): * Source/WebKit/UIProcess/WebFrameProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::swapToProvisionalPage): (WebKit::WebPageProxy::bindRemoteAccessibilityFrames): (WebKit::WebPageProxy::updateRemoteFrameAccessibilityOffset): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.messages.in: * Source/WebKit/UIProcess/ios/PageClientImplIOS.h: * Source/WebKit/UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::accessibilityWebProcessTokenReceived): * Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::registerWebProcessAccessibilityToken): * Source/WebKit/UIProcess/mac/PageClientImplMac.h: * Source/WebKit/UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::accessibilityWebProcessTokenReceived): * Source/WebKit/UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::registerWebProcessAccessibilityToken): * Source/WebKit/UIProcess/mac/WebViewImpl.h: * Source/WebKit/UIProcess/mac/WebViewImpl.mm: (WebKit::WebViewImpl::setAccessibilityWebProcessToken): * Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp: (WebKit::WebLocalFrameLoaderClient::accessibilityRemoteFrameOffset): * Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h: * Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp: (WebKit::WebRemoteFrameClient::unbindRemoteAccessibilityFrames): (WebKit::WebRemoteFrameClient::updateRemoteFrameAccessibilityOffset): (WebKit::WebRemoteFrameClient::bindRemoteAccessibilityFrames): * Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h: * Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::accessibilityTransferRemoteToken): (WebKit::WebPage::accessibilityManageRemoteElementStatus): (WebKit::WebPage::bindRemoteAccessibilityFrames): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::bindRemoteAccessibilityFrames): (WebKit::WebPage::updateRemotePageAccessibilityOffset): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebPage/WebPage.messages.in: * Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformInitializeAccessibility): (WebKit::WebPage::platformReinitialize): (WebKit::WebPage::updateRemotePageAccessibilityOffset): (WebKit::WebPage::registerRemoteFrameAccessibilityTokens): (WebKit::WebPage::accessibilityRemoteFrameOffset): * Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h: * Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: (-[WKAccessibilityWebPageObjectBase axObjectCache]): (-[WKAccessibilityWebPageObjectBase setRemoteFrameOffset:]): (-[WKAccessibilityWebPageObjectBase accessibilityRemoteFrameOffset]): * Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformInitializeAccessibility): (WebKit::WebPage::createMockAccessibilityElement): (WebKit::WebPage::platformReinitialize): (WebKit::WebPage::updateRemotePageAccessibilityOffset): (WebKit::WebPage::registerRemoteFrameAccessibilityTokens): (WebKit::WebPage::registerUIProcessAccessibilityTokens): (WebKit::WebPage::accessibilityRemoteFrameOffset): * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::bindAccessibilityFrameWithData): * Source/WebKit/WebProcess/WebProcess.h: * Source/WebKit/WebProcess/WebProcess.messages.in: * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::bindAccessibilityFrameWithData): * Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h: Canonical link: https://commits.webkit.org/274955@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes