Index: third_party/WebKit/Source/core/frame/TopControls.cpp |
diff --git a/third_party/WebKit/Source/core/frame/TopControls.cpp b/third_party/WebKit/Source/core/frame/TopControls.cpp |
deleted file mode 100644 |
index 555bf700e7792dc0d70a2625590eba9f996ae14a..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/Source/core/frame/TopControls.cpp |
+++ /dev/null |
@@ -1,124 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "core/frame/TopControls.h" |
- |
-#include "core/frame/FrameHost.h" |
-#include "core/frame/VisualViewport.h" |
-#include "core/page/ChromeClient.h" |
-#include "platform/geometry/FloatSize.h" |
-#include <algorithm> // for std::min and std::max |
- |
-namespace blink { |
- |
-TopControls::TopControls(const FrameHost& frameHost) |
- : m_frameHost(&frameHost), |
- m_height(0), |
- m_shownRatio(0), |
- m_baselineContentOffset(0), |
- m_accumulatedScrollDelta(0), |
- m_shrinkViewport(false), |
- m_permittedState(WebTopControlsBoth) {} |
- |
-DEFINE_TRACE(TopControls) { |
- visitor->trace(m_frameHost); |
-} |
- |
-void TopControls::scrollBegin() { |
- resetBaseline(); |
-} |
- |
-FloatSize TopControls::scrollBy(FloatSize pendingDelta) { |
- if ((m_permittedState == WebTopControlsShown && pendingDelta.height() > 0) || |
- (m_permittedState == WebTopControlsHidden && pendingDelta.height() < 0)) |
- return pendingDelta; |
- |
- if (m_height == 0) |
- return pendingDelta; |
- |
- float oldOffset = contentOffset(); |
- float pageScale = m_frameHost->visualViewport().scale(); |
- |
- // Update accumulated vertical scroll and apply it to top controls |
- // Compute scroll delta in viewport space by applying page scale |
- m_accumulatedScrollDelta += pendingDelta.height() * pageScale; |
- |
- float newContentOffset = m_baselineContentOffset - m_accumulatedScrollDelta; |
- |
- setShownRatio(newContentOffset / m_height); |
- |
- // Reset baseline when controls are fully visible |
- if (m_shownRatio == 1) |
- resetBaseline(); |
- |
- // Clamp and use the expected content offset so that we don't return |
- // spurrious remaining scrolls due to the imprecision of the shownRatio. |
- newContentOffset = std::min(newContentOffset, m_height); |
- newContentOffset = std::max(newContentOffset, 0.f); |
- |
- // We negate the difference because scrolling down (positive delta) causes |
- // top controls to hide (negative offset difference). |
- FloatSize appliedDelta(0, (oldOffset - newContentOffset) / pageScale); |
- return pendingDelta - appliedDelta; |
-} |
- |
-void TopControls::resetBaseline() { |
- m_accumulatedScrollDelta = 0; |
- m_baselineContentOffset = contentOffset(); |
-} |
- |
-float TopControls::layoutHeight() { |
- return m_shrinkViewport ? m_height : 0; |
-} |
- |
-float TopControls::contentOffset() { |
- return m_shownRatio * m_height; |
-} |
- |
-void TopControls::setShownRatio(float shownRatio) { |
- shownRatio = std::min(shownRatio, 1.f); |
- shownRatio = std::max(shownRatio, 0.f); |
- |
- if (m_shownRatio == shownRatio) |
- return; |
- |
- m_shownRatio = shownRatio; |
- m_frameHost->chromeClient().didUpdateTopControls(); |
-} |
- |
-void TopControls::updateConstraintsAndState(WebTopControlsState constraints, |
- WebTopControlsState current, |
- bool animate) { |
- m_permittedState = constraints; |
- |
- DCHECK( |
- !(constraints == WebTopControlsShown && current == WebTopControlsHidden)); |
- DCHECK( |
- !(constraints == WebTopControlsHidden && current == WebTopControlsShown)); |
- |
- // If the change should be animated, let the impl thread drive the change. |
- // Otherwise, immediately set the shown ratio so we don't have to wait for |
- // a commit from the impl thread. |
- if (animate) |
- return; |
- |
- if (constraints == WebTopControlsBoth && current == WebTopControlsBoth) |
- return; |
- |
- if (constraints == WebTopControlsHidden || current == WebTopControlsHidden) |
- setShownRatio(0.f); |
- else |
- setShownRatio(1.f); |
-} |
- |
-void TopControls::setHeight(float height, bool shrinkViewport) { |
- if (m_height == height && m_shrinkViewport == shrinkViewport) |
- return; |
- |
- m_height = height; |
- m_shrinkViewport = shrinkViewport; |
- m_frameHost->chromeClient().didUpdateTopControls(); |
-} |
- |
-} // namespace blink |