Bug 102635 - Optimize layer updates after scrolling
Summary: Optimize layer updates after scrolling
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2012-11-18 19:57 PST by Simon Fraser (smfr)
Modified: 2012-11-27 07:49 PST (History)
8 users (show)

See Also:


Attachments
Patch (12.52 KB, patch)
2012-11-18 20:10 PST, Simon Fraser (smfr)
sam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2012-11-18 19:57:11 PST
Optimize layer updates after scrolling
Comment 1 Simon Fraser (smfr) 2012-11-18 20:10:22 PST
Created attachment 174881 [details]
Patch
Comment 2 Simon Fraser (smfr) 2012-11-18 20:11:29 PST
<rdar://problem/12726580>
Comment 3 Simon Fraser (smfr) 2012-11-26 11:45:22 PST
http://trac.webkit.org/changeset/135746
Comment 4 Thiago Marcos P. Santos 2012-11-26 12:18:25 PST
This crash of EFL Debug Bot after this patch, looks related:

crash log for WebProcess (pid <unknown>):
STDOUT: <empty>
STDERR: ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint())
STDERR: /home/buildslave-1/webkit-buildslave/efl-linux-64-debug-wk2/build/Source/WebCore/rendering/RenderLayer.cpp(554) : void WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, WebCore::RenderLayer::UpdateLayerPositionsAfterScrollFlags)
STDERR: 1   0x7f0a3827db04 WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, unsigned int)
STDERR: 2   0x7f0a3827dbdf WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, unsigned int)
STDERR: 3   0x7f0a3827dbdf WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, unsigned int)
STDERR: 4   0x7f0a3827dbdf WebCore::RenderLayer::updateLayerPositionsAfterScroll(WebCore::RenderGeometryMap*, unsigned int)
STDERR: 5   0x7f0a3827d912 WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll()
STDERR: 6   0x7f0a38281d2a WebCore::RenderLayer::scrollTo(int, int)
STDERR: 7   0x7f0a38284557 WebCore::RenderLayer::setScrollOffset(WebCore::IntPoint const&)
STDERR: 8   0x7f0a380495fa WebCore::ScrollableArea::scrollPositionChanged(WebCore::IntPoint const&)
STDERR: 9   0x7f0a38049895 WebCore::ScrollableArea::setScrollOffsetFromAnimation(WebCore::IntPoint const&)
STDERR: 10  0x7f0a38048f4d WebCore::ScrollAnimator::notifyPositionChanged()
STDERR: 11  0x7f0a38048981 WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation(WebCore::FloatPoint const&)
STDERR: 12  0x7f0a38049490 WebCore::ScrollableArea::scrollToOffsetWithoutAnimation(WebCore::FloatPoint const&)
STDERR: 13  0x7f0a38281b5e WebCore::RenderLayer::scrollToOffset(WebCore::IntSize const&, WebCore::RenderLayer::ScrollOffsetClamping)
STDERR: 14  0x7f0a38218247 WebCore::RenderLayer::scrollToYOffset(int, WebCore::RenderLayer::ScrollOffsetClamping)
STDERR: 15  0x7f0a381fea43 WebCore::RenderBox::setScrollTop(int)
STDERR: 16  0x7f0a37a9f879 WebCore::Element::setScrollTop(int)
STDERR: 17  0x7f0a386fa921 WebCore::setJSElementScrollTop(JSC::ExecState*, JSC::JSObject*, JSC::JSValue)
STDERR: 18  0x7f0a387035f0 bool JSC::lookupPut<WebCore::JSElement>(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::HashTable const*, WebCore::JSElement*, bool)
STDERR: 19  0x7f0a38702f9c void JSC::lookupPut<WebCore::JSElement, WebCore::JSNode>(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::HashTable const*, WebCore::JSElement*, JSC::PutPropertySlot&)
STDERR: 20  0x7f0a386fa849 WebCore::JSElement::put(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&)
STDERR: 21  0x7f0a3879e8c2 void JSC::lookupPut<WebCore::JSHTMLElement, WebCore::JSElement>(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::HashTable const*, WebCore::JSHTMLElement*, JSC::PutPropertySlot&)
STDERR: 22  0x7f0a3879cae1 WebCore::JSHTMLElement::put(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&)
STDERR: 23  0x7f0a38796eab void JSC::lookupPut<WebCore::JSHTMLDivElement, WebCore::JSHTMLElement>(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::HashTable const*, WebCore::JSHTMLDivElement*, JSC::PutPropertySlot&)
STDERR: 24  0x7f0a38796465 WebCore::JSHTMLDivElement::put(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&)
STDERR: 25  0x7f0a3211da7b JSC::JSValue::put(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&)
STDERR: 26  0x7f0a3237c398
STDERR: 27  0x7f0a32385603
Comment 5 Simon Fraser (smfr) 2012-11-26 12:33:50 PST
Which test is asserting?
Comment 6 Simon Fraser (smfr) 2012-11-26 12:50:39 PST
I see that it's http/tests/inspector/network/network-xhr-replay.html.