Bug 136590 - Doing a navigation on a non-opaque WKWebView can result in an empty layer tree
Summary: Doing a navigation on a non-opaque WKWebView can result in an empty layer tree
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
Keywords: InRadar
Depends on:
Reported: 2014-09-05 16:24 PDT by Tim Horton
Modified: 2014-09-05 17:14 PDT (History)
2 users (show)

See Also:

patch (1.56 KB, patch)
2014-09-05 16:28 PDT, Tim Horton
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Horton 2014-09-05 16:24:30 PDT
FrameView::setTransparent uses FrameView::renderView to get the RenderView from the Document, but setTransparent can be called from Frame::createView, which is before the new Document has been swapped in, so it gets the old (pre-navigation) RenderView, and uses that to schedule a compositing layer update, which eventually comes through and can blow away the new document's layer tree.

Comment 1 Tim Horton 2014-09-05 16:28:15 PDT
Created attachment 237719 [details]
Comment 2 Simon Fraser (smfr) 2014-09-05 16:42:22 PDT
Comment on attachment 237719 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=237719&action=review

> Source/WebCore/ChangeLog:9
> +        Reviewed by NOBODY (OOPS!).
> +
> +        * page/FrameView.cpp:

You fail to explain the "can result in an empty layer tree" part here.

> Source/WebCore/page/FrameView.cpp:2586
> +    if (&renderView->frameView() != this)
> +        return;

This deserves a comment.
Comment 3 Tim Horton 2014-09-05 17:14:38 PDT