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

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

Issue 2304493002: Ignore redundant calls to ScrollAnchor::save. (Closed)
Patch Set: add TODO; skip restore if !m_saved Created 4 years, 3 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..28e2f42af1048114141402109f281319672a9735 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,9 @@ IntSize ScrollAnchor::computeAdjustment() const
void ScrollAnchor::restore()
{
+ if (!m_saved)
+ return;
+ m_saved = false;
DCHECK(m_scroller);
if (!m_anchorObject)
return;
« no previous file with comments | « third_party/WebKit/Source/core/layout/ScrollAnchor.h ('k') | third_party/WebKit/Source/core/layout/ScrollAnchorTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698