Modified: tags/Safari-601.1.1/Source/WebCore/ChangeLog (174022 => 174023)
--- tags/Safari-601.1.1/Source/WebCore/ChangeLog 2014-09-26 21:57:15 UTC (rev 174022)
+++ tags/Safari-601.1.1/Source/WebCore/ChangeLog 2014-09-26 22:05:26 UTC (rev 174023)
@@ -1,3 +1,22 @@
+2014-09-26 Babak Shafiei <[email protected]>
+
+ Merge r173981. <rdar://problem/18447820>
+
+ 2014-09-25 Tim Horton <[email protected]>
+
+ Null deref in setStateScrollingNodeSnapOffsetsAsFloat
+ https://bugs.webkit.org/show_bug.cgi?id=137133
+ <rdar://problem/18447820>
+
+ Reviewed by Beth Dakin.
+
+ * page/scrolling/AsyncScrollingCoordinator.cpp:
+ (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
+ (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
+ Get the deviceScaleFactor from m_page instead of various other places,
+ because scrolledContentsLayer can be null in the case of non-composited
+ overflow scroll.
+
2014-09-22 Christophe Dumez <[email protected]>
Unreviewed build fix after r173859.
Modified: tags/Safari-601.1.1/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (174022 => 174023)
--- tags/Safari-601.1.1/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp 2014-09-26 21:57:15 UTC (rev 174022)
+++ tags/Safari-601.1.1/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp 2014-09-26 22:05:26 UTC (rev 174023)
@@ -114,10 +114,10 @@
#if ENABLE(CSS_SCROLL_SNAP)
frameView->updateSnapOffsets();
if (const Vector<LayoutUnit>* horizontalSnapOffsets = frameView->horizontalSnapOffsets())
- setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Horizontal, *horizontalSnapOffsets, frameView->frame().document()->deviceScaleFactor());
+ setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Horizontal, *horizontalSnapOffsets, m_page->deviceScaleFactor());
if (const Vector<LayoutUnit>* verticalSnapOffsets = frameView->verticalSnapOffsets())
- setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Vertical, *verticalSnapOffsets, frameView->frame().document()->deviceScaleFactor());
+ setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Vertical, *verticalSnapOffsets, m_page->deviceScaleFactor());
#endif
ScrollableAreaParameters scrollParameters;
@@ -423,8 +423,8 @@
node->setReachableContentsSize(scrollingGeometry->reachableContentSize);
node->setScrollableAreaSize(scrollingGeometry->scrollableAreaSize);
#if ENABLE(CSS_SCROLL_SNAP)
- setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Horizontal, scrollingGeometry->horizontalSnapOffsets, scrolledContentsLayer->deviceScaleFactor());
- setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Vertical, scrollingGeometry->verticalSnapOffsets, scrolledContentsLayer->deviceScaleFactor());
+ setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Horizontal, scrollingGeometry->horizontalSnapOffsets, m_page->deviceScaleFactor());
+ setStateScrollingNodeSnapOffsetsAsFloat(*node, ScrollEventAxis::Vertical, scrollingGeometry->verticalSnapOffsets, m_page->deviceScaleFactor());
#endif
}
}