Title: [150982] branches/safari-537.43-branch/Source
- Revision
- 150982
- Author
- [email protected]
- Date
- 2013-05-30 14:03:47 -0700 (Thu, 30 May 2013)
Log Message
Merged r150948. <rdar://problem/13886753>
Modified Paths
Diff
Modified: branches/safari-537.43-branch/Source/WebCore/ChangeLog (150981 => 150982)
--- branches/safari-537.43-branch/Source/WebCore/ChangeLog 2013-05-30 21:00:47 UTC (rev 150981)
+++ branches/safari-537.43-branch/Source/WebCore/ChangeLog 2013-05-30 21:03:47 UTC (rev 150982)
@@ -1,5 +1,31 @@
2013-05-30 Lucas Forschler <[email protected]>
+ Merge r150948
+
+ 2013-05-29 Simon Fraser <[email protected]>
+
+ Fix paint-related milestones to not fire when the layer tree is frozen
+ https://bugs.webkit.org/show_bug.cgi?id=117012
+
+ Reviewed by Tim Horton.
+
+ In the previous code, it was possible to paint some layer and schedule
+ the m_paintRelatedMilestonesTimer, but then the layer tree was put into
+ a frozen state because the page redirected. However, the paint-related
+ milestones timer would still fire. This caused woes with header/footer
+ banners.
+
+ Fix by not firing paint-related milestones if the layer tree is frozen,
+ which we know via a new ChromeClient callback. When unfrozen, we'll
+ paint again, and fire the timer later.
+
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::layerTreeStateIsFrozen):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::paintRelatedMilestonesTimerFired):
+
+2013-05-30 Lucas Forschler <[email protected]>
+
Merge r150935
2013-05-28 Oliver Hunt <[email protected]>
Modified: branches/safari-537.43-branch/Source/WebCore/page/ChromeClient.h (150981 => 150982)
--- branches/safari-537.43-branch/Source/WebCore/page/ChromeClient.h 2013-05-30 21:00:47 UTC (rev 150981)
+++ branches/safari-537.43-branch/Source/WebCore/page/ChromeClient.h 2013-05-30 21:03:47 UTC (rev 150982)
@@ -278,6 +278,9 @@
// Returns a bitfield indicating conditions that can trigger the compositor.
virtual CompositingTriggerFlags allowedCompositingTriggers() const { return static_cast<CompositingTriggerFlags>(AllTriggers); }
+
+ // Returns true if layer tree updates are disabled.
+ virtual bool layerTreeStateIsFrozen() const { return false; }
#endif
#if PLATFORM(WIN) && USE(AVFOUNDATION)
Modified: branches/safari-537.43-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp (150981 => 150982)
--- branches/safari-537.43-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-05-30 21:00:47 UTC (rev 150981)
+++ branches/safari-537.43-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-05-30 21:03:47 UTC (rev 150982)
@@ -3252,8 +3252,19 @@
void RenderLayerCompositor::paintRelatedMilestonesTimerFired(Timer<RenderLayerCompositor>*)
{
FrameView* frameView = m_renderView ? m_renderView->frameView() : 0;
- if (frameView)
- frameView->firePaintRelatedMilestones();
+ if (!frameView)
+ return;
+
+ Frame* frame = frameView->frame();
+ Page* page = frame ? frame->page() : 0;
+ if (!page)
+ return;
+
+ // If the layer tree is frozen, we'll paint when it's unfrozen and schedule the timer again.
+ if (page->chrome().client()->layerTreeStateIsFrozen())
+ return;
+
+ frameView->firePaintRelatedMilestones();
}
} // namespace WebCore
Modified: branches/safari-537.43-branch/Source/WebKit2/ChangeLog (150981 => 150982)
--- branches/safari-537.43-branch/Source/WebKit2/ChangeLog 2013-05-30 21:00:47 UTC (rev 150981)
+++ branches/safari-537.43-branch/Source/WebKit2/ChangeLog 2013-05-30 21:03:47 UTC (rev 150982)
@@ -1,5 +1,24 @@
2013-05-30 Lucas Forschler <[email protected]>
+ Merge r150948
+
+ 2013-05-29 Simon Fraser <[email protected]>
+
+ Fix paint-related milestones to not fire when the layer tree is frozen
+ https://bugs.webkit.org/show_bug.cgi?id=117012
+
+ Reviewed by Tim Horton.
+
+ Implement ChromeClient::layerTreeStateIsFrozen() to return
+ the frozen state of the drawing area.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::layerTreeStateIsFrozen):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient):
+
+2013-05-30 Lucas Forschler <[email protected]>
+
Merge r150935
2013-05-28 Oliver Hunt <[email protected]>
Modified: branches/safari-537.43-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (150981 => 150982)
--- branches/safari-537.43-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2013-05-30 21:00:47 UTC (rev 150981)
+++ branches/safari-537.43-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2013-05-30 21:03:47 UTC (rev 150982)
@@ -781,6 +781,14 @@
m_page->drawingArea()->scheduleCompositingLayerFlush();
}
+
+bool WebChromeClient::layerTreeStateIsFrozen() const
+{
+ if (m_page->drawingArea())
+ return m_page->drawingArea()->layerTreeStateIsFrozen();
+
+ return false;
+}
#endif
#if ENABLE(TOUCH_EVENTS)
Modified: branches/safari-537.43-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (150981 => 150982)
--- branches/safari-537.43-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2013-05-30 21:00:47 UTC (rev 150981)
+++ branches/safari-537.43-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2013-05-30 21:03:47 UTC (rev 150982)
@@ -194,6 +194,8 @@
CanvasTrigger |
AnimationTrigger);
}
+
+ virtual bool layerTreeStateIsFrozen() const OVERRIDE;
#endif
#if ENABLE(TOUCH_EVENTS)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes