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

Reply via email to