[webkit-changes] [WebKit/WebKit] 307749: Cherry-pick 284894 at main (3672c423722b). https://bu...

Georges Basile Stavracas Neto noreply at github.com
Wed Oct 9 16:59:04 PDT 2024


  Branch: refs/heads/webkitglib/2.46
  Home:   https://github.com/WebKit/WebKit
  Commit: 30774948f35b8a7f6bcb29cba522e49a91f6a7e3
      https://github.com/WebKit/WebKit/commit/30774948f35b8a7f6bcb29cba522e49a91f6a7e3
  Author: Georges Basile Stavracas Neto <feaneron at igalia.com>
  Date:   2024-10-10 (Thu, 10 Oct 2024)

  Changed paths:
    M Source/WTF/wtf/glib/Sandbox.cpp
    M Source/WTF/wtf/glib/Sandbox.h
    M Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp
    M Source/WebCore/accessibility/atspi/AccessibilityAtspi.h
    M Source/WebKit/Shared/WebProcessCreationParameters.h
    M Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
    M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
    M Source/WebKit/UIProcess/Launcher/ProcessLauncher.h
    M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
    M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.h
    M Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp
    M Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp
    M Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp
    M Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.h
    M Source/WebKit/UIProcess/WebProcessPool.h
    M Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
    M Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp
    M Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp
    M Source/WebKit/WebProcess/glib/WebProcessGLib.cpp
    M Tools/Scripts/webkitpy/style/checkers/cpp.py

  Log Message:
  -----------
  Cherry-pick 284894 at main (3672c423722b). https://bugs.webkit.org/show_bug.cgi?id=273245

    [GTK][WPE] Own well-known bus name on a11y bus
    https://bugs.webkit.org/show_bug.cgi?id=273245

    Reviewed by Michael Catanzaro.

    Currently WebKit on Linux is not accesible when running under Flatpak,
    because the Web process and the UI process cannot communicate across
    sandbox boundaries and connect their a11y trees.

    Fundamentally, the problem is that Flatpak creates a separate sandbox
    for the Web process, but doesn't let the UI process sandbox talk to it.
    It cannot, after all - Flatpak cannot know ahead of time which D-Bus
    name the Web process sandboxes will end up having!

    One way to circumvent this in a well tested manner, is to use well-known
    names to identify the Web process in the a11y bus. The idea is that the
    UI process will talk to a bus name that Flatpak can verify at runtime,
    e.g. org.gnome.Epiphany.Sandboxed.WebProcess-UUID, instead of an opaque
    unique name (e.g. :1.321).

    This is possible on Flatpak as per portal version 7, which introduces
    the necessary plumbing for the a11y bus ownership to pass through.

    The Bubblewrap code path does the same, it lets the Web process own
    the specific a11y bus name assigned from the UI process. To do that,
    change XDGDBusProxy to spawn once for each Web process, instead of
    once for all Web processes.

    See https://github.com/flatpak/flatpak/pull/5898
    See https://github.com/flatpak/flatpak-xdg-utils/pull/67

    * Source/WTF/wtf/glib/Sandbox.cpp:
    (WTF::checkFlatpakPortalVersion):
    (WTF::sandboxedAccessibilityBusName):
    (WTF::setSandboxedAccessibilityBusName):
    * Source/WTF/wtf/glib/Sandbox.h:
    * Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp:
    (WebCore::AccessibilityAtspi::connect):
    (WebCore::AccessibilityAtspi::didConnect):
    (WebCore::AccessibilityAtspi::didOwnName):
    (WebCore::AccessibilityAtspi::registerRoot):
    * Source/WebCore/accessibility/atspi/AccessibilityAtspi.h:
    * Source/WebKit/Shared/WebProcessCreationParameters.h:
    * Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
    * Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
    (webkitWebViewBaseSetPlugID):
    * Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp:
    (WebKit::flatpakSpawn):
    * Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
    (WebKit::ProcessLauncher::launchProcess):
    * Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp:
    (WebKit::XDGDBusProxy::accessibilityProxy):
    * Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp:
    (WebKit::WebProcessPool::platformInitializeWebProcess):
    * Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp:
    (WebKit::WebPageProxy::bindAccessibilityTree):
    * Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:
    (WebKit::WebProcess::platformInitializeWebProcess):

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

Canonical link: https://commits.webkit.org/282416.203@webkitglib/2.46



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list