WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
61808
REGRESSION (5.0.5-ToT, WebKit2): Flash to white when navigating between pages on wsj.com, other sites (when navigating away from composited page)
https://bugs.webkit.org/show_bug.cgi?id=61808
Summary
REGRESSION (5.0.5-ToT, WebKit2): Flash to white when navigating between pages...
mitz
Reported
2011-05-31 14:35:54 PDT
REGRESSION (5.0.5-ToT, WebKit2): Flash to white when navigating between pages on wsj.com, other sites (when navigating away from composited page)
Attachments
Patch
(15.05 KB, patch)
2011-05-31 14:46 PDT
,
mitz
simon.fraser
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
mitz
Comment 1
2011-05-31 14:36:50 PDT
<
rdar://problem/9523192
>
mitz
Comment 2
2011-05-31 14:46:42 PDT
Created
attachment 95487
[details]
Patch
Darin Adler
Comment 3
2011-05-31 14:56:30 PDT
Comment on
attachment 95487
[details]
Patch If neither Anders nor Simon plans to review this, I would be willing to.
Simon Fraser (smfr)
Comment 4
2011-05-31 14:59:08 PDT
Comment on
attachment 95487
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=95487&action=review
> Source/WebKit2/ChangeLog:9 > + WebKit1 has a mechanism to prevent the stale bits from the outgoing page from being erased > + until the incoming page has layout. Adapt this in WebKit2 to prevent the composited layer tree
Ironically the WK1 mechanism doesn't do anything with the layer tree, causing layers to get torn down prematurely.
> Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1032 > void WebFrameLoaderClient::frameLoadCompleted() > { > - notImplemented(); > + WebPage* webPage = m_frame->page(); > + if (!webPage) > + return; > + > + if (m_frame == m_frame->page()->mainFrame()) > + webPage->drawingArea()->setLayerTreeStateIsFrozen(false); > }
What's the timing of frameLoadCompleted(), relative to load events etc? Keeping the layer tree frozen until the load event fires would be bad, I think.
> Source/WebKit2/WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:99 > + if (m_layerFlushSchedulingEnabled) > + return;
I wonder if we should detect that a flush should have been scheduled, and schedule one here? It seems that we could have have layer changes early in the load that will never get flushed with the current code.
Simon Fraser (smfr)
Comment 5
2011-05-31 15:10:16 PDT
Comment on
attachment 95487
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=95487&action=review
>> Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1032 >> } > > What's the timing of frameLoadCompleted(), relative to load events etc? Keeping the layer tree frozen until the load event fires would be bad, I think.
Oh, I see the above call in dispatchDidFirstLayout() now. This is OK.
mitz
Comment 6
2011-05-31 15:12:09 PDT
Fixed in
r87755
. <
http://trac.webkit.org/changeset/87755
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug