WebKit Bugzilla
Attachment 362212 Details for
Bug 194742
: AX: PSON: Going back from apple.com to search results, cannot interact with HTML content. Disabling Swap Processes on Cross-Site Navigation resolves the issue.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
patch (text/plain), 10.45 KB, created by
chris fleizach
on 2019-02-16 01:25:25 PST
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
chris fleizach
Created:
2019-02-16 01:25:25 PST
Size:
10.45 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 241645) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,39 @@ >+2019-02-16 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: PSON: Going back from apple.com to search results, cannot interact with HTML content. Disabling Swap Processes on Cross-Site Navigation resolves the issue. >+ https://bugs.webkit.org/show_bug.cgi?id=194742 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Re-initialize the accessibility web process tokens when swapping processes. >+ Send page load notifications from the UIProcess instead of the WebProcess to improve reliability. >+ >+ * UIProcess/mac/PageClientImplMac.mm: >+ (WebKit::PageClientImpl::didFinishLoadForMainFrame): >+ (WebKit::PageClientImpl::didFailLoadForMainFrame): >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::reinitializeWebPage): >+ * WebProcess/WebPage/WebPage.h: >+ * WebProcess/WebPage/gtk/WebPageGtk.cpp: >+ (WebKit::WebPage::platformReinitialize): >+ (WebKit::WebPage::platformDetach): Deleted. >+ (WebKit::WebPage::platformEditorState const): Deleted. >+ (WebKit::WebPage::updateAccessibilityTree): Deleted. >+ (WebKit::WebPage::performDefaultBehaviorForKeyEvent): Deleted. >+ (WebKit::WebPage::platformCanHandleRequest): Deleted. >+ (WebKit::WebPage::platformUserAgent const): Deleted. >+ (WebKit::WebPage::getCenterForZoomGesture): Deleted. >+ (WebKit::WebPage::setInputMethodState): Deleted. >+ (WebKit::WebPage::collapseSelectionInFrame): Deleted. >+ * WebProcess/WebPage/ios/WebPageIOS.mm: >+ (WebKit::WebPage::platformReinitialize): >+ * WebProcess/WebPage/mac/WebPageMac.mm: >+ (WebKit::WebPage::platformReinitialize): >+ * WebProcess/WebPage/win/WebPageWin.cpp: >+ (WebKit::WebPage::platformReinitialize): >+ * WebProcess/WebPage/wpe/WebPageWPE.cpp: >+ (WebKit::WebPage::platformReinitialize): >+ > 2019-02-15 Youenn Fablet <youenn@apple.com> > > NetworkDataTask should check its client before calling shouldCaptureExtraNetworkLoadMetrics >Index: Source/WebCore/accessibility/mac/AXObjectCacheMac.mm >=================================================================== >--- Source/WebCore/accessibility/mac/AXObjectCacheMac.mm (revision 241557) >+++ Source/WebCore/accessibility/mac/AXObjectCacheMac.mm (working copy) >@@ -516,13 +516,10 @@ > [changes release]; > } > >-void AXObjectCache::frameLoadingEventPlatformNotification(AccessibilityObject* axFrameObject, AXLoadingEvent loadingEvent) >+void AXObjectCache::frameLoadingEventPlatformNotification(AccessibilityObject*, AXLoadingEvent) > { >- if (!axFrameObject) >- return; >- >- if (loadingEvent == AXLoadingFinished && axFrameObject->document() == axFrameObject->topDocument()) >- postPlatformNotification(axFrameObject, AXLoadComplete); >+ // Frame loading events are handled by the UIProcess to reduce incidence of problems where a new WebProcess >+ // send a load complete before VoiceOver has time to register for the notification. > } > > void AXObjectCache::platformHandleFocusedUIElementChanged(Node*, Node*) >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 241645) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,39 @@ >+2019-02-16 Chris Fleizach <cfleizach@apple.com> >+ >+ AX: PSON: Going back from apple.com to search results, cannot interact with HTML content. Disabling Swap Processes on Cross-Site Navigation resolves the issue. >+ https://bugs.webkit.org/show_bug.cgi?id=194742 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Re-initialize the accessibility web process tokens when swapping processes. >+ Send page load notifications from the UIProcess instead of the WebProcess to improve reliability. >+ >+ * UIProcess/mac/PageClientImplMac.mm: >+ (WebKit::PageClientImpl::didFinishLoadForMainFrame): >+ (WebKit::PageClientImpl::didFailLoadForMainFrame): >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::reinitializeWebPage): >+ * WebProcess/WebPage/WebPage.h: >+ * WebProcess/WebPage/gtk/WebPageGtk.cpp: >+ (WebKit::WebPage::platformReinitialize): >+ (WebKit::WebPage::platformDetach): Deleted. >+ (WebKit::WebPage::platformEditorState const): Deleted. >+ (WebKit::WebPage::updateAccessibilityTree): Deleted. >+ (WebKit::WebPage::performDefaultBehaviorForKeyEvent): Deleted. >+ (WebKit::WebPage::platformCanHandleRequest): Deleted. >+ (WebKit::WebPage::platformUserAgent const): Deleted. >+ (WebKit::WebPage::getCenterForZoomGesture): Deleted. >+ (WebKit::WebPage::setInputMethodState): Deleted. >+ (WebKit::WebPage::collapseSelectionInFrame): Deleted. >+ * WebProcess/WebPage/ios/WebPageIOS.mm: >+ (WebKit::WebPage::platformReinitialize): >+ * WebProcess/WebPage/mac/WebPageMac.mm: >+ (WebKit::WebPage::platformReinitialize): >+ * WebProcess/WebPage/win/WebPageWin.cpp: >+ (WebKit::WebPage::platformReinitialize): >+ * WebProcess/WebPage/wpe/WebPageWPE.cpp: >+ (WebKit::WebPage::platformReinitialize): >+ > 2019-02-15 Youenn Fablet <youenn@apple.com> > > NetworkDataTask should check its client before calling shouldCaptureExtraNetworkLoadMetrics >Index: Source/WebKit/UIProcess/mac/PageClientImplMac.mm >=================================================================== >--- Source/WebKit/UIProcess/mac/PageClientImplMac.mm (revision 241331) >+++ Source/WebKit/UIProcess/mac/PageClientImplMac.mm (working copy) >@@ -89,6 +89,8 @@ > #include <WebCore/WebMediaSessionManager.h> > #endif > >+static NSString * const kAXLoadCompleteNotification = @"AXLoadComplete"; >+ > @interface NSApplication (WebNSApplicationDetails) > - (NSCursor *)_cursorRectCursor; > @end >@@ -840,6 +842,8 @@ > { > if (auto gestureController = m_impl->gestureController()) > gestureController->didFinishLoadForMainFrame(); >+ >+ NSAccessibilityPostNotification(NSAccessibilityUnignoredAncestor(m_view), kAXLoadCompleteNotification); > } > > void PageClientImpl::didFailLoadForMainFrame() >@@ -846,6 +850,8 @@ > { > if (auto gestureController = m_impl->gestureController()) > gestureController->didFailLoadForMainFrame(); >+ >+ NSAccessibilityPostNotification(NSAccessibilityUnignoredAncestor(m_view), kAXLoadCompleteNotification); > } > > void PageClientImpl::didSameDocumentNavigationForMainFrame(SameDocumentNavigationType type) >Index: Source/WebKit/WebProcess/WebPage/WebPage.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebPage/WebPage.cpp (revision 241331) >+++ Source/WebKit/WebProcess/WebPage/WebPage.cpp (working copy) >@@ -713,6 +713,8 @@ > setActivityState(parameters.activityState, ActivityStateChangeAsynchronous, Vector<CallbackID>()); > if (m_layerHostingMode != parameters.layerHostingMode) > setLayerHostingMode(parameters.layerHostingMode); >+ >+ platformReinitialize(); > } > > void WebPage::updateThrottleState() >Index: Source/WebKit/WebProcess/WebPage/WebPage.h >=================================================================== >--- Source/WebKit/WebProcess/WebPage/WebPage.h (revision 241331) >+++ Source/WebKit/WebProcess/WebPage/WebPage.h (working copy) >@@ -1159,6 +1159,7 @@ > uint64_t messageSenderDestinationID() const override; > > void platformInitialize(); >+ void platformReinitialize(); > void platformDetach(); > void platformEditorState(WebCore::Frame&, EditorState& result, IncludePostLayoutDataHint) const; > void sendEditorStateUpdate(); >Index: Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp (revision 241331) >+++ Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp (working copy) >@@ -67,6 +67,11 @@ > #endif > } > >+void WebPage::platformReinitialize() >+{ >+} >+} >+ > void WebPage::platformDetach() > { > } >Index: Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm >=================================================================== >--- Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (revision 241331) >+++ Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (working copy) >@@ -148,6 +148,13 @@ > send(Messages::WebPageProxy::RegisterWebProcessAccessibilityToken(dataToken)); > } > >+void WebPage::platformReinitialize() >+{ >+ NSData *remoteToken = newAccessibilityRemoteToken([NSUUID UUID]); >+ IPC::DataReference dataToken = IPC::DataReference(reinterpret_cast<const uint8_t*>([remoteToken bytes]), [remoteToken length]); >+ send(Messages::WebPageProxy::RegisterWebProcessAccessibilityToken(dataToken)); >+} >+ > static void computeEditableRootHasContentAndPlainText(const VisibleSelection& selection, EditorState::PostLayoutData& data) > { > data.hasContent = false; >Index: Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm >=================================================================== >--- Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm (revision 241331) >+++ Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm (working copy) >@@ -119,6 +119,14 @@ > m_mockAccessibilityElement = mockAccessibilityElement; > } > >+void WebPage::platformReinitialize() >+{ >+ ASSERT(m_mockAccessibilityElement); >+ NSData* remoteToken = [NSAccessibilityRemoteUIElement remoteTokenForLocalUIElement:m_mockAccessibilityElement.get()]; >+ IPC::DataReference dataToken = IPC::DataReference(reinterpret_cast<const uint8_t*>([remoteToken bytes]), [remoteToken length]); >+ send(Messages::WebPageProxy::RegisterWebProcessAccessibilityToken(dataToken)); >+} >+ > void WebPage::platformDetach() > { > [m_mockAccessibilityElement setWebPage:nullptr]; >Index: Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp (revision 241331) >+++ Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp (working copy) >@@ -55,6 +55,10 @@ > { > } > >+void WebPage::platformReinitialize() >+{ >+} >+ > void WebPage::platformDetach() > { > } >Index: Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp (revision 241331) >+++ Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp (working copy) >@@ -39,6 +39,10 @@ > { > } > >+void WebPage::platformReinitialize() >+{ >+} >+ > void WebPage::platformDetach() > { > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194742
:
362212
|
362213
|
362215
|
362216
|
362217
|
362246
|
362247