[Webkit-unassigned] [Bug 98336] New: Make RenderObject destruction during detach a top-down operation

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Oct 3 18:06:04 PDT 2012


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

           Summary: Make RenderObject destruction during detach a top-down
                    operation
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Layout and Rendering
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: jchaffraix at webkit.org
                CC: eric at webkit.org, hyatt at apple.com, darin at apple.com,
                    simon.fraser at apple.com, ojan at chromium.org
            Blocks: 92697


Currently, detach destroys the render tree in a bottom-up approach (see ContainerNode::detach).

While this is correct and will detach / destroy all renderers in the DOM subtree, it causes some extra-work to be done:
* RenderBlock tries to merge anonymous renderer when we remove a child (ie for each renderer in the subtree).
* RenderObject tries to clean any parent anonymous wrappers.
* We partially clean / destroy a tree level as the DOM doesn't know about the anonymous renderers. The leftover anonymous children will be cleaned up when their parent is destroyed.

Most of these operations only apply to the root of the subtree-to-detach, not on any renderer inside the subtree. The main issue is that detach is a DOM-driven operation and it doesn't know enough of the render tree structure to make some good decisions.

Also important is that the current logic in RenderObject already does top-down cleaning but the DOM logic overrides this behavior.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list