| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/frame/BrowserControls.h" | 5 #include "core/frame/BrowserControls.h" |
| 6 | 6 |
| 7 #include <algorithm> // for std::min and std::max | 7 #include <algorithm> // for std::min and std::max |
| 8 | 8 |
| 9 #include "core/frame/FrameHost.h" | 9 #include "core/frame/FrameHost.h" |
| 10 #include "core/frame/VisualViewport.h" | 10 #include "core/frame/VisualViewport.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 if ((m_permittedState == WebBrowserControlsShown && | 35 if ((m_permittedState == WebBrowserControlsShown && |
| 36 pendingDelta.height() > 0) || | 36 pendingDelta.height() > 0) || |
| 37 (m_permittedState == WebBrowserControlsHidden && | 37 (m_permittedState == WebBrowserControlsHidden && |
| 38 pendingDelta.height() < 0)) | 38 pendingDelta.height() < 0)) |
| 39 return pendingDelta; | 39 return pendingDelta; |
| 40 | 40 |
| 41 if (m_height == 0) | 41 if (m_height == 0) |
| 42 return pendingDelta; | 42 return pendingDelta; |
| 43 | 43 |
| 44 float oldOffset = contentOffset(); | 44 float oldOffset = contentOffset(); |
| 45 float pageScale = m_page->frameHost().visualViewport().scale(); | 45 float pageScale = m_page->visualViewport().scale(); |
| 46 | 46 |
| 47 // Update accumulated vertical scroll and apply it to browser controls | 47 // Update accumulated vertical scroll and apply it to browser controls |
| 48 // Compute scroll delta in viewport space by applying page scale | 48 // Compute scroll delta in viewport space by applying page scale |
| 49 m_accumulatedScrollDelta += pendingDelta.height() * pageScale; | 49 m_accumulatedScrollDelta += pendingDelta.height() * pageScale; |
| 50 | 50 |
| 51 float newContentOffset = m_baselineContentOffset - m_accumulatedScrollDelta; | 51 float newContentOffset = m_baselineContentOffset - m_accumulatedScrollDelta; |
| 52 | 52 |
| 53 setShownRatio(newContentOffset / m_height); | 53 setShownRatio(newContentOffset / m_height); |
| 54 | 54 |
| 55 // Reset baseline when controls are fully visible | 55 // Reset baseline when controls are fully visible |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 void BrowserControls::setHeight(float height, bool shrinkViewport) { | 122 void BrowserControls::setHeight(float height, bool shrinkViewport) { |
| 123 if (m_height == height && m_shrinkViewport == shrinkViewport) | 123 if (m_height == height && m_shrinkViewport == shrinkViewport) |
| 124 return; | 124 return; |
| 125 | 125 |
| 126 m_height = height; | 126 m_height = height; |
| 127 m_shrinkViewport = shrinkViewport; | 127 m_shrinkViewport = shrinkViewport; |
| 128 m_page->chromeClient().didUpdateBrowserControls(); | 128 m_page->chromeClient().didUpdateBrowserControls(); |
| 129 } | 129 } |
| 130 | 130 |
| 131 } // namespace blink | 131 } // namespace blink |
| OLD | NEW |