Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(447)

Unified Diff: third_party/WebKit/Source/core/layout/ScrollAnchor.cpp

Issue 2304493002: Ignore redundant calls to ScrollAnchor::save. (Closed)
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 ab410d2abc6c85373c9454a0b08cadb12a36eb5d..30bddb2c55b925b7640db234be90d847f0b376ec 100644
--- a/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
+++ b/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
@@ -18,6 +18,7 @@ ScrollAnchor::ScrollAnchor()
: m_anchorObject(nullptr)
, m_corner(Corner::TopLeft)
, m_scrollAnchorDisablingStyleChanged(false)
+ , m_saved(false)
{
}
@@ -205,6 +206,9 @@ bool ScrollAnchor::computeScrollAnchorDisablingStyleChanged()
void ScrollAnchor::save()
{
+ if (m_saved)
+ return;
+ m_saved = true;
DCHECK(m_scroller);
if (m_scroller->scrollPosition() == IntPoint::zero()) {
clear();
@@ -242,6 +246,7 @@ IntSize ScrollAnchor::computeAdjustment() const
void ScrollAnchor::restore()
{
+ m_saved = false;
ymalik 2016/09/01 14:13:04 Add a DCHECK that m_saved is true? We should never
skobes 2016/09/01 20:47:21 I tried this, but it breaks tests due to nested Fr
DCHECK(m_scroller);
if (!m_anchorObject)
return;

Powered by Google App Engine
This is Rietveld 408576698