Changeset 172854 in webkit
- Timestamp:
- Aug 21, 2014, 10:38:50 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/LayoutTests/ChangeLog ¶
r172847 r172854 1 2014-08-21 Antti Koivisto <antti@apple.com> 2 3 Animated GIFs scrolled out of view still cause titlebar blur to update, on tumblr.com page 4 https://bugs.webkit.org/show_bug.cgi?id=136139 5 6 Reviewed by Simon Fraser. 7 8 * fast/repaint/no-animation-outside-viewport-subframe-expected.txt: Added. 9 * fast/repaint/no-animation-outside-viewport-subframe.html: Added. 10 1 11 2014-08-21 Zalan Bujtas <zalan@apple.com> 2 12 -
TabularUnified trunk/Source/WebCore/ChangeLog ¶
r172849 r172854 1 2014-08-21 Antti Koivisto <antti@apple.com> 2 3 Animated GIFs scrolled out of view still cause titlebar blur to update, on tumblr.com page 4 https://bugs.webkit.org/show_bug.cgi?id=136139 5 6 Reviewed by Simon Fraser. 7 8 The mechanism for pausing GIF images outside the viewport did not work for subframes. 9 10 Test: fast/repaint/no-animation-outside-viewport-subframe.html 11 12 * WebCore.exp.in: 13 * page/FrameView.cpp: 14 (WebCore::FrameView::scrollPositionChanged): 15 (WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes): 16 17 Add a function for resuming animations as needed in all subframes. 18 This is used after scrolling instead of calling the RenderView function directly. 19 20 * page/FrameView.h: 21 * page/Page.cpp: 22 (WebCore::Page::resumeAnimatingImages): 23 * rendering/RenderElement.cpp: 24 (WebCore::RenderElement::newImageAnimationFrameAvailable): 25 26 Determine the overall visible rect so that it is correct in subframes too. 27 28 * rendering/RenderLayer.cpp: 29 (WebCore::RenderLayer::scrollTo): 30 * rendering/RenderView.cpp: 31 (WebCore::RenderView::resumePausedImageAnimationsIfNeeded): 32 1 33 2014-08-21 Alex Christensen <achristensen@webkit.org> 2 34 -
TabularUnified trunk/Source/WebCore/WebCore.exp.in ¶
r172837 r172854 2528 2528 _WebUIApplicationWillEnterForegroundNotification 2529 2529 _WebUIApplicationWillResignActiveNotification 2530 __ZN7WebCore10RenderView35resumePausedImageAnimationsIfNeededEv2531 2530 __ZN7WebCore10ScrollView15setScrollOffsetERKNS_8IntPointE 2532 2531 __ZN7WebCore10ScrollView21setExposedContentRectERKNS_9FloatRectE … … 2753 2752 __ZN7WebCore9FrameView33rectForViewportConstrainedObjectsERKNS_10LayoutRectERKNS_10LayoutSizeEfbNS_30ScrollBehaviorForFixedElementsE 2754 2753 __ZN7WebCore9FrameView36scheduleLayerFlushAllowingThrottlingEv 2754 __ZN7WebCore9FrameView46resumeVisibleImageAnimationsIncludingSubframesEv 2755 2755 __ZN7WebCore9PageGroup17removeVisitedLinkERKNS_3URLE 2756 2756 __ZNK7WebCore10FloatPointcv7CGPointEv -
TabularUnified trunk/Source/WebCore/page/FrameView.cpp ¶
r172543 r172854 2085 2085 2086 2086 if (RenderView* renderView = this->renderView()) { 2087 renderView->resumePausedImageAnimationsIfNeeded();2088 2087 if (renderView->usesCompositing()) 2089 2088 renderView->compositor().frameViewDidScroll(); 2089 } 2090 2091 resumeVisibleImageAnimationsIncludingSubframes(); 2092 } 2093 2094 void FrameView::resumeVisibleImageAnimationsIncludingSubframes() 2095 { 2096 // A change in scroll position may affect image visibility in subframes. 2097 for (auto* frame = m_frame.get(); frame; frame = frame->tree().traverseNext(m_frame.get())) { 2098 if (auto* renderView = frame->contentRenderer()) 2099 renderView->resumePausedImageAnimationsIfNeeded(); 2090 2100 } 2091 2101 } -
TabularUnified trunk/Source/WebCore/page/FrameView.h ¶
r172844 r172854 244 244 void delayedScrollEventTimerFired(Timer<FrameView>&); 245 245 246 void resumeVisibleImageAnimationsIncludingSubframes(); 247 246 248 // This is different than visibleContentRect() in that it ignores negative (or overly positive) 247 249 // offsets from rubber-banding, and it takes zooming into account. -
TabularUnified trunk/Source/WebCore/page/Page.cpp ¶
r172235 r172854 1204 1204 // Drawing models which cache painted content while out-of-window (WebKit2's composited drawing areas, etc.) 1205 1205 // require that we repaint animated images to kickstart the animation loop. 1206 1207 for (Frame* frame = m_mainFrame.get(); frame; frame = frame->tree().traverseNext()) { 1208 if (auto* renderView = frame->contentRenderer()) 1209 renderView->resumePausedImageAnimationsIfNeeded(); 1210 } 1206 if (FrameView* view = mainFrame().view()) 1207 view->resumeVisibleImageAnimationsIncludingSubframes(); 1211 1208 } 1212 1209 -
TabularUnified trunk/Source/WebCore/rendering/RenderElement.cpp ¶
r172730 r172854 1311 1311 void RenderElement::newImageAnimationFrameAvailable(CachedImage& image) 1312 1312 { 1313 auto visibleRect = view().frameView().visibleContentRect(); 1313 auto& frameView = view().frameView(); 1314 auto visibleRect = frameView.windowToContents(frameView.windowClipRect()); 1314 1315 if (!shouldRepaintForImageAnimation(*this, visibleRect)) { 1315 1316 view().addRendererWithPausedImageAnimations(*this); -
TabularUnified trunk/Source/WebCore/rendering/RenderLayer.cpp ¶
r172842 r172854 2322 2322 frame.loader().client().didChangeScrollOffset(); 2323 2323 2324 renderer().view().resumePausedImageAnimationsIfNeeded();2324 view.frameView().resumeVisibleImageAnimationsIncludingSubframes(); 2325 2325 } 2326 2326 -
TabularUnified trunk/Source/WebCore/rendering/RenderView.cpp ¶
r172301 r172854 1362 1362 void RenderView::resumePausedImageAnimationsIfNeeded() 1363 1363 { 1364 auto visibleRect = frameView(). visibleContentRect();1364 auto visibleRect = frameView().windowToContents(frameView().windowClipRect()); 1365 1365 Vector<RenderElement*, 10> toRemove; 1366 1366 for (auto* renderer : m_renderersWithPausedImageAnimation) { -
TabularUnified trunk/Source/WebKit/mac/WebView/WebView.mm ¶
r172832 r172854 1574 1574 [self setDefersCallbacks:NO]; 1575 1575 [[self mainFrame] setTimeoutsPaused:NO]; 1576 FrameView* view = [self _mainCoreFrame]->view(); 1577 if (view && view->renderView()) 1578 view->renderView()->resumePausedImageAnimationsIfNeeded(); 1576 if (FrameView* view = [self _mainCoreFrame]->view()) 1577 view->resumeVisibleImageAnimationsIncludingSubframes(); 1579 1578 } 1580 1579
Note:
See TracChangeset
for help on using the changeset viewer.