 Chromium Code Reviews
 Chromium Code Reviews Issue 2118683002:
  Limit ScrollAnchor to 20 adjustments between user scrolls.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 2118683002:
  Limit ScrollAnchor to 20 adjustments between user scrolls.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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(); | 
| } |