[Webkit-unassigned] [Bug 167416] New: [GTK] Improve PageOverlay usage when not in AC mode

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jan 25 05:45:24 PST 2017


https://bugs.webkit.org/show_bug.cgi?id=167416

            Bug ID: 167416
           Summary: [GTK] Improve PageOverlay usage when not in AC mode
    Classification: Unclassified
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: magomez at igalia.com
                CC: bugs-noreply at webkitgtk.org

There are some components, like the WebInspector that use PageOverlayController to put PageOverlays over the rendered content (in GTK only the WebInspector uses them for highlighting). These overlays are GraphicsLayers that are added to the compositing tree and composited on top of the normal content.

This causes problems when accelerated compositing is not available:
- if there's no compositing those overlays are not going to be visible
- trying to use the GraphicsLayerFactory while not in AC actually triggers AC mode, which mustn't happen if it's not available

This was handled in bug 165237, and fixed in WebInpsectorClient by not using overlays at all when AC is disabled. While this works (because WebInspector is the only overlay user), it would be much better if, instead of modifying the overlay users, we fixed it for all the possible users in a centralized way.

One way that comes to my mind would be:
- in AcceleratedDrawingArea::graphicsLayerFactory(), if there's no layerTreeHost, check that AC is available before entering AC. This allows to create GraphicsLayers without entering AC, so overlays would be able to create layers.
- the GraphicsLayers created after the previous change are CoordinatedGraphicsLayers, which require a coordinator to properly work, and they don't have because we are not in AC mode. To avoid crashing because of this we need to use some kind of dummy GraphicsLayers or to modify CoordinatedGraphicsLayers to be able to work without a coordinator.
- after these changes, the overlays would be able to create GraphicsLayer as they wish, but they would just never be used at all if AC was not available.

I'm leaving this bug open and assigned to myself as a reminder of this taks, so I can retake it when there are no urgent issues.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170125/636c436f/attachment.html>


More information about the webkit-unassigned mailing list