Title: [158391] trunk/Source/WebCore
- Revision
- 158391
- Author
- [email protected]
- Date
- 2013-10-31 14:03:15 -0700 (Thu, 31 Oct 2013)
Log Message
Repro scrolling crash with scrollbars that use setPresentationValue on the
scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=123549
-and corresponding-
<rdar://problem/15246606>
Reviewed by Brady Eidson.
Here's another speculative fix. If a scrollbar was removed, we would not properly
inform the scrolling thread. Instead of checking supportsUpdateOnSecondaryThread()
before calling setScrollbarPaintersFromScrollbars(), check it from within
setScrollbarPaintersFromScrollbars(), and this will allow the ScrollbarPainter to
be properly updated.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (158390 => 158391)
--- trunk/Source/WebCore/ChangeLog 2013-10-31 20:13:45 UTC (rev 158390)
+++ trunk/Source/WebCore/ChangeLog 2013-10-31 21:03:15 UTC (rev 158391)
@@ -1,3 +1,24 @@
+2013-10-31 Beth Dakin <[email protected]>
+
+ Repro scrolling crash with scrollbars that use setPresentationValue on the
+ scrolling thread
+ https://bugs.webkit.org/show_bug.cgi?id=123549
+ -and corresponding-
+ <rdar://problem/15246606>
+
+ Reviewed by Brady Eidson.
+
+ Here's another speculative fix. If a scrollbar was removed, we would not properly
+ inform the scrolling thread. Instead of checking supportsUpdateOnSecondaryThread()
+ before calling setScrollbarPaintersFromScrollbars(), check it from within
+ setScrollbarPaintersFromScrollbars(), and this will allow the ScrollbarPainter to
+ be properly updated.
+
+ * page/scrolling/mac/ScrollingCoordinatorMac.mm:
+ (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
+ * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
+ (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
+
2013-10-31 Csaba Osztrogonác <[email protected]>
Unreviewed typo fix after 158386. (buildfix after r158365)
Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm (158390 => 158391)
--- trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm 2013-10-31 20:13:45 UTC (rev 158390)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm 2013-10-31 21:03:15 UTC (rev 158391)
@@ -133,9 +133,7 @@
Scrollbar* verticalScrollbar = frameView->verticalScrollbar();
Scrollbar* horizontalScrollbar = frameView->horizontalScrollbar();
- if ((verticalScrollbar && verticalScrollbar->supportsUpdateOnSecondaryThread())
- || (horizontalScrollbar && horizontalScrollbar->supportsUpdateOnSecondaryThread()))
- setScrollbarPaintersFromScrollbarsForNode(verticalScrollbar, horizontalScrollbar, node);
+ setScrollbarPaintersFromScrollbarsForNode(verticalScrollbar, horizontalScrollbar, node);
ScrollParameters scrollParameters;
scrollParameters.horizontalScrollElasticity = frameView->horizontalScrollElasticity();
Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm (158390 => 158391)
--- trunk/Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm 2013-10-31 20:13:45 UTC (rev 158390)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm 2013-10-31 21:03:15 UTC (rev 158391)
@@ -99,8 +99,10 @@
return;
ScrollbarThemeMac* macTheme = static_cast<ScrollbarThemeMac*>(scrollbarTheme);
- ScrollbarPainter verticalPainter = verticalScrollbar ? macTheme->painterForScrollbar(verticalScrollbar) : 0;
- ScrollbarPainter horizontalPainter = horizontalScrollbar ? macTheme->painterForScrollbar(horizontalScrollbar) : 0;
+ ScrollbarPainter verticalPainter = verticalScrollbar && verticalScrollbar->supportsUpdateOnSecondaryThread()
+ ? macTheme->painterForScrollbar(verticalScrollbar) : 0;
+ ScrollbarPainter horizontalPainter = horizontalScrollbar && horizontalScrollbar->supportsUpdateOnSecondaryThread()
+ ? macTheme->painterForScrollbar(horizontalScrollbar) : 0;
if (m_verticalScrollbarPainter == verticalPainter && m_horizontalScrollbarPainter == horizontalPainter)
return;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes