Title: [280136] releases/WebKitGTK/webkit-2.32/Source/WebKit
- Revision
- 280136
- Author
- [email protected]
- Date
- 2021-07-21 07:45:00 -0700 (Wed, 21 Jul 2021)
Log Message
Merge r279983 - [GTK][WPE] PSON: accessibility doesn't work after a cross site navigation
https://bugs.webkit.org/show_bug.cgi?id=228021
Reviewed by Adrian Perez de Castro.
The provisional page is not handling the BindAccessibilityTree message and we never embed the new web process
plug into the UI process socket.
* UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::bindAccessibilityTree): Save the a11y plug ID.
(WebKit::ProvisionalPageProxy::didReceiveMessage): Handle BindAccessibilityTree message.
* UIProcess/ProvisionalPageProxy.h:
(WebKit::ProvisionalPageProxy::accessibilityPlugID): Returns the a11y plug ID.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::swapToProvisionalPage): If the provisional page has a plug ID, bind the a11y tree.
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/ChangeLog (280135 => 280136)
--- releases/WebKitGTK/webkit-2.32/Source/WebKit/ChangeLog 2021-07-21 14:44:55 UTC (rev 280135)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/ChangeLog 2021-07-21 14:45:00 UTC (rev 280136)
@@ -1,3 +1,21 @@
+2021-07-16 Carlos Garcia Campos <[email protected]>
+
+ [GTK][WPE] PSON: accessibility doesn't work after a cross site navigation
+ https://bugs.webkit.org/show_bug.cgi?id=228021
+
+ Reviewed by Adrian Perez de Castro.
+
+ The provisional page is not handling the BindAccessibilityTree message and we never embed the new web process
+ plug into the UI process socket.
+
+ * UIProcess/ProvisionalPageProxy.cpp:
+ (WebKit::ProvisionalPageProxy::bindAccessibilityTree): Save the a11y plug ID.
+ (WebKit::ProvisionalPageProxy::didReceiveMessage): Handle BindAccessibilityTree message.
+ * UIProcess/ProvisionalPageProxy.h:
+ (WebKit::ProvisionalPageProxy::accessibilityPlugID): Returns the a11y plug ID.
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::swapToProvisionalPage): If the provisional page has a plug ID, bind the a11y tree.
+
2021-06-07 Carlos Garcia Campos <[email protected]>
[GTK][WPE] Signal "window-object-cleared" not emitted unless frame js context is get before
Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp (280135 => 280136)
--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp 2021-07-21 14:44:55 UTC (rev 280135)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp 2021-07-21 14:45:00 UTC (rev 280136)
@@ -385,6 +385,13 @@
}
#endif
+#if PLATFORM(GTK) || PLATFORM(WPE)
+void ProvisionalPageProxy::bindAccessibilityTree(const String& plugID)
+{
+ m_accessibilityPlugID = plugID;
+}
+#endif
+
#if ENABLE(CONTENT_FILTERING)
void ProvisionalPageProxy::contentFilterDidBlockLoadForFrame(const WebCore::ContentFilterUnblockHandler& unblockHandler, FrameIdentifier frameID)
{
@@ -439,6 +446,13 @@
}
#endif
+#if PLATFORM(GTK) || PLATFORM(WPE)
+ if (decoder.messageName() == Messages::WebPageProxy::BindAccessibilityTree::name()) {
+ IPC::handleMessage<Messages::WebPageProxy::BindAccessibilityTree>(decoder, this, &ProvisionalPageProxy::bindAccessibilityTree);
+ return;
+ }
+#endif
+
if (decoder.messageName() == Messages::WebPageProxy::StartURLSchemeTask::name()) {
IPC::handleMessage<Messages::WebPageProxy::StartURLSchemeTask>(decoder, this, &ProvisionalPageProxy::startURLSchemeTask);
return;
Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.h (280135 => 280136)
--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.h 2021-07-21 14:44:55 UTC (rev 280135)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/ProvisionalPageProxy.h 2021-07-21 14:45:00 UTC (rev 280136)
@@ -90,6 +90,9 @@
#if PLATFORM(COCOA)
Vector<uint8_t> takeAccessibilityToken() { return WTFMove(m_accessibilityToken); }
#endif
+#if PLATFORM(GTK) || PLATFORM(WPE)
+ const String& accessibilityPlugID() { return m_accessibilityPlugID; }
+#endif
#if HAVE(VISIBILITY_PROPAGATION_VIEW)
LayerHostingContextID contextIDForVisibilityPropagation() const { return m_contextIDForVisibilityPropagation; }
#endif
@@ -138,6 +141,9 @@
#if PLATFORM(COCOA)
void registerWebProcessAccessibilityToken(const IPC::DataReference&);
#endif
+#if PLATFORM(GTK) || PLATFORM(WPE)
+ void bindAccessibilityTree(const String&);
+#endif
#if ENABLE(CONTENT_FILTERING)
void contentFilterDidBlockLoadForFrame(const WebCore::ContentFilterUnblockHandler&, WebCore::FrameIdentifier);
#endif
@@ -163,6 +169,9 @@
#if PLATFORM(COCOA)
Vector<uint8_t> m_accessibilityToken;
#endif
+#if PLATFORM(GTK) || PLATFORM(WPE)
+ String m_accessibilityPlugID;
+#endif
#if PLATFORM(IOS_FAMILY)
UniqueRef<ProcessThrottler::ForegroundActivity> m_provisionalLoadActivity;
#endif
Modified: releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebPageProxy.cpp (280135 => 280136)
--- releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-07-21 14:44:55 UTC (rev 280135)
+++ releases/WebKitGTK/webkit-2.32/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-07-21 14:45:00 UTC (rev 280136)
@@ -968,6 +968,11 @@
if (!accessibilityToken.isEmpty())
registerWebProcessAccessibilityToken({ accessibilityToken.data(), accessibilityToken.size() });
#endif
+#if PLATFORM(GTK) || PLATFORM(WPE)
+ auto accessibilityPlugID = provisionalPage->accessibilityPlugID();
+ if (!accessibilityPlugID.isEmpty())
+ bindAccessibilityTree(accessibilityPlugID);
+#endif
}
void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes