[Webkit-unassigned] [Bug 171667] [Mac] Make frames fast-scrollable

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 4 09:57:39 PDT 2017


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

Frédéric Wang (:fredw) <fred.wang at free.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |fred.wang at free.fr
           Assignee|webkit-unassigned at lists.web |fred.wang at free.fr
                   |kit.org                     |

--- Comment #1 from Frédéric Wang (:fredw) <fred.wang at free.fr> ---
Created attachment 309057

  --> https://bugs.webkit.org/attachment.cgi?id=309057&action=review

WIP Patch

This is a first patch to address the points:

> 1. Creating the right layer hierarchy with tiled backing store for the iframe contents, as we do for the main frame.
> 4. Not putting iframe's ScrollableAreas into the non-fast scrollable region

This is the layer tree I get for attachment 307586 after applying this patch:

layer 0x110b5f138 at (0,0) size 1039x644 (composited, bounds=at (0,0) size 1039x644, drawsContent=1, paints into ancestor=0)
  RenderView 0x1113dad00 at (0,0) size 1039x644 (needs layout: child)
 positive z-order list(1)
  layer 0x110b5f4e0 at (0,0) size 1039x166
    RenderBlock 0x110a627e0 {HTML} at (0,0) size 1039x166 (needs layout: child)
      RenderBody 0x110a62c60 {BODY} at (8,16) size 1023x142 (needs layout: child)
        RenderBlock 0x110a62d80 {P} at (0,0) size 1023x18
          RenderText 0x110ae49c0 {#text} at (0,0) size 211x18
            text run at (0,0) width 211: "This iframe should be scrollable:"
        RenderBlock (anonymous) 0x110a62ea0 at (0,34) size 1023x108 (needs layout: child)
          RenderText 0x110ae4b40 {#text} at (0,0) size 0x0
   normal flow list(1)
    layer 0x110b5f750 at (0,0) size 0x0
      RenderIFrame 0x110b556f0 {IFRAME} at (0,0) size 304x104 [border: (2px inset #000000)] (needs layout: self)
        layer 0x110b5fd68 at (0,0) size 300x1016 (composited, bounds=at (0,0) size 300x1016, drawsContent=1, paints into ancestor=0)
          RenderView 0x1113f6d00 at (0,0) size 300x100 (layout overflow 0,0 300x1016)
         positive z-order list(1)
          layer 0x110b5fea0 at (0,0) size 300x1016
            RenderBlock 0x110a62a20 {HTML} at (0,0) size 300x1016
              RenderBody 0x110ae8360 {BODY} at (8,8) size 284x1000
                RenderBlock 0x110ae8480 {DIV} at (0,0) size 284x1000

Also, the frame is no longer drawn as a non-fast scrollable region when one enables debug overlay. However, this breaks scrolling of the iframe for now :-)

@Simon: I'm not sure the scrolling nodes are properly created yet, but I had one doubt. Again, IIUC the class hierarchy (https://people.igalia.com/fwang/ios/class-hierarchy/), each frame has its own Page with its own ScrollingCoordinator and hence their own Scrolling(State)Trees. So I am not sure I understand to which tree the ScrollingStateFrameScrollingNodes should belong?

BTW, I also noticed this comment in RenderLayerCompositor::updateBacking, which might be related:
// At this time, the ScrollingCoordinator only supports the top-level frame.
if (layer.isRootLayer() && isMainFrameCompositor()) {

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170504/f2352064/attachment-0001.html>


More information about the webkit-unassigned mailing list