Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/ScrollAnchor.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp b/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp |
| index 8d1de54353f6f1b6df13ce4e08afc9fb9725ba54..48b648de6111c3ad0c8eb8f2742b2dce9cf49b3d 100644 |
| --- a/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp |
| +++ b/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp |
| @@ -14,9 +14,12 @@ namespace blink { |
| using Corner = ScrollAnchor::Corner; |
| +static const int kMaxAdjustments = 20; |
|
ymalik
2016/07/01 01:07:11
How did you come up with this number? We do have s
skobes
2016/07/01 17:28:26
I tried to pick something high enough to preserve
|
| + |
| ScrollAnchor::ScrollAnchor(ScrollableArea* scroller) |
| : m_scroller(scroller) |
| , m_hasBounced(false) |
| + , m_adjustmentCount(0) |
| { |
| ASSERT(m_scroller); |
| ASSERT(m_scroller->isFrameView() || m_scroller->isPaintLayerScrollableArea()); |
| @@ -251,7 +254,8 @@ void ScrollAnchor::restore() |
| m_lastAdjusted.clear(); |
| return; |
| } |
| - adjust(adjustment); |
| + if (++m_adjustmentCount <= kMaxAdjustments) |
|
ymalik
2016/07/01 01:07:11
Brief comment explaining the rationale behind this
skobes
2016/07/01 17:28:26
Done.
|
| + adjust(adjustment); |
| } |
| void ScrollAnchor::adjust(IntSize adjustment) |
| @@ -274,6 +278,7 @@ void ScrollAnchor::adjust(IntSize adjustment) |
| void ScrollAnchor::clear() |
| { |
| + m_adjustmentCount = 0; |
| m_current.clear(); |
| } |