Bug 90401

Summary: Compositing layer sync should cause deferred repaints to be fired immediately
Product: WebKit Reporter: Tim Horton <thorton>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: koivisto, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch koivisto: review+, simon.fraser: commit-queue-

Tim Horton
Reported 2012-07-02 14:19:54 PDT
When we sync compositing layer state, we need to paint immediately, no matter what; otherwise we might see a visible flash before painting occurs.
Attachments
patch (2.80 KB, patch)
2012-07-02 14:30 PDT, Tim Horton
koivisto: review+
simon.fraser: commit-queue-
Radar WebKit Bug Importer
Comment 1 2012-07-02 14:20:32 PDT
Tim Horton
Comment 2 2012-07-02 14:30:09 PDT
Simon Fraser (smfr)
Comment 3 2012-07-02 14:51:42 PDT
Comment on attachment 150475 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=150475&action=review > Source/WebCore/page/FrameView.cpp:752 > root->compositor()->flushPendingLayerChanges(rootFrameForSync == m_frame); > > + // If we sync compositing layers and allow the repaint to be deferred, there is time for a > + // visible flash to occur. Instead, stop the deferred repaint timer and repaint immediately. > + stopDelayingDeferredRepaints(); I think we should swap these around. If deferred repaints at some point affects compositing layers (it does not yet), then we'd want those repaints to get flushed.
Antti Koivisto
Comment 4 2012-07-02 15:00:44 PDT
Comment on attachment 150475 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=150475&action=review > Source/WebCore/page/FrameView.cpp:1948 > + if (!m_deferredRepaintTimer.isActive()) > + return; > + > m_deferredRepaintTimer.stop(); This does not make any sense.
Antti Koivisto
Comment 5 2012-07-02 15:03:07 PDT
Comment on attachment 150475 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=150475&action=review >> Source/WebCore/page/FrameView.cpp:1948 >> m_deferredRepaintTimer.stop(); > > This does not make any sense. Actually it does, I misread!
Tim Horton
Comment 6 2012-07-02 15:15:23 PDT
Note You need to log in before you can comment on or make changes to this bug.