| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 1760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1771 page()->frameHost().visualViewport().setSize(newSize); | 1771 page()->frameHost().visualViewport().setSize(newSize); |
| 1772 page()->frameHost().visualViewport().clampToBoundaries(); | 1772 page()->frameHost().visualViewport().clampToBoundaries(); |
| 1773 } | 1773 } |
| 1774 | 1774 |
| 1775 void WebViewImpl::performResize() { | 1775 void WebViewImpl::performResize() { |
| 1776 // We'll keep the initial containing block size from changing when the top | 1776 // We'll keep the initial containing block size from changing when the top |
| 1777 // controls hide so that the ICB will always be the same size as the | 1777 // controls hide so that the ICB will always be the same size as the |
| 1778 // viewport with the browser controls shown. | 1778 // viewport with the browser controls shown. |
| 1779 IntSize ICBSize = m_size; | 1779 IntSize ICBSize = m_size; |
| 1780 if (RuntimeEnabledFeatures::inertTopControlsEnabled() && | 1780 if (RuntimeEnabledFeatures::inertTopControlsEnabled() && |
| 1781 browserControls().permittedState() == WebBrowserControlsBoth && | |
| 1782 !browserControls().shrinkViewport()) | 1781 !browserControls().shrinkViewport()) |
| 1783 ICBSize.expand(0, -browserControls().height()); | 1782 ICBSize.expand(0, -browserControls().height()); |
| 1784 | 1783 |
| 1785 pageScaleConstraintsSet().didChangeInitialContainingBlockSize(ICBSize); | 1784 pageScaleConstraintsSet().didChangeInitialContainingBlockSize(ICBSize); |
| 1786 | 1785 |
| 1787 updatePageDefinedViewportConstraints( | 1786 updatePageDefinedViewportConstraints( |
| 1788 mainFrameImpl()->frame()->document()->viewportDescription()); | 1787 mainFrameImpl()->frame()->document()->viewportDescription()); |
| 1789 updateMainFrameLayoutSize(); | 1788 updateMainFrameLayoutSize(); |
| 1790 | 1789 |
| 1791 page()->frameHost().visualViewport().setSize(m_size); | 1790 page()->frameHost().visualViewport().setSize(m_size); |
| 1792 | 1791 |
| 1793 if (mainFrameImpl()->frameView()) { | 1792 if (mainFrameImpl()->frameView()) { |
| 1794 mainFrameImpl()->frameView()->setInitialViewportSize(ICBSize); | 1793 mainFrameImpl()->frameView()->setInitialViewportSize(ICBSize); |
| 1795 if (!mainFrameImpl()->frameView()->needsLayout()) | 1794 if (!mainFrameImpl()->frameView()->needsLayout()) |
| 1796 postLayoutResize(mainFrameImpl()); | 1795 postLayoutResize(mainFrameImpl()); |
| 1797 } | 1796 } |
| 1798 } | 1797 } |
| 1799 | 1798 |
| 1800 void WebViewImpl::updateBrowserControlsState(WebBrowserControlsState constraint, | 1799 void WebViewImpl::updateBrowserControlsState(WebBrowserControlsState constraint, |
| 1801 WebBrowserControlsState current, | 1800 WebBrowserControlsState current, |
| 1802 bool animate) { | 1801 bool animate) { |
| 1803 WebBrowserControlsState oldPermittedState = | |
| 1804 browserControls().permittedState(); | |
| 1805 | |
| 1806 browserControls().updateConstraintsAndState(constraint, current, animate); | 1802 browserControls().updateConstraintsAndState(constraint, current, animate); |
| 1807 | 1803 |
| 1808 // If the controls are going from a locked to an unlocked state, or | |
| 1809 // vice-versa, then we need to force a recompute of the ICB size since that | |
| 1810 // depends on the permitted browser controls state. | |
| 1811 if (oldPermittedState != constraint && | |
| 1812 (oldPermittedState == WebBrowserControlsBoth || | |
| 1813 constraint == WebBrowserControlsBoth)) { | |
| 1814 performResize(); | |
| 1815 } | |
| 1816 | |
| 1817 if (m_layerTreeView) | 1804 if (m_layerTreeView) |
| 1818 m_layerTreeView->updateBrowserControlsState(constraint, current, animate); | 1805 m_layerTreeView->updateBrowserControlsState(constraint, current, animate); |
| 1819 } | 1806 } |
| 1820 | 1807 |
| 1821 void WebViewImpl::didUpdateBrowserControls() { | 1808 void WebViewImpl::didUpdateBrowserControls() { |
| 1822 if (m_layerTreeView) { | 1809 if (m_layerTreeView) { |
| 1823 m_layerTreeView->setBrowserControlsShownRatio( | 1810 m_layerTreeView->setBrowserControlsShownRatio( |
| 1824 browserControls().shownRatio()); | 1811 browserControls().shownRatio()); |
| 1825 m_layerTreeView->setBrowserControlsHeight( | 1812 m_layerTreeView->setBrowserControlsHeight( |
| 1826 browserControls().height(), browserControls().shrinkViewport()); | 1813 browserControls().height(), browserControls().shrinkViewport()); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1853 // scale, its adjustment must also be scaled by the minimum scale. | 1840 // scale, its adjustment must also be scaled by the minimum scale. |
| 1854 view->setBrowserControlsViewportAdjustment( | 1841 view->setBrowserControlsViewportAdjustment( |
| 1855 browserControlsViewportAdjustment / minimumPageScaleFactor()); | 1842 browserControlsViewportAdjustment / minimumPageScaleFactor()); |
| 1856 } | 1843 } |
| 1857 } | 1844 } |
| 1858 | 1845 |
| 1859 BrowserControls& WebViewImpl::browserControls() { | 1846 BrowserControls& WebViewImpl::browserControls() { |
| 1860 return page()->frameHost().browserControls(); | 1847 return page()->frameHost().browserControls(); |
| 1861 } | 1848 } |
| 1862 | 1849 |
| 1863 void WebViewImpl::resizeViewWhileAnchored(float browserControlsHeight, | 1850 void WebViewImpl::resizeViewWhileAnchored(FrameView* view, |
| 1851 float browserControlsHeight, |
| 1864 bool browserControlsShrinkLayout) { | 1852 bool browserControlsShrinkLayout) { |
| 1865 DCHECK(mainFrameImpl()); | 1853 DCHECK(mainFrameImpl()); |
| 1866 | 1854 |
| 1867 browserControls().setHeight(browserControlsHeight, | 1855 browserControls().setHeight(browserControlsHeight, |
| 1868 browserControlsShrinkLayout); | 1856 browserControlsShrinkLayout); |
| 1869 | 1857 |
| 1870 { | 1858 { |
| 1871 // Avoids unnecessary invalidations while various bits of state in | 1859 // Avoids unnecessary invalidations while various bits of state in |
| 1872 // TextAutosizer are updated. | 1860 // TextAutosizer are updated. |
| 1873 TextAutosizer::DeferUpdatePageInfo deferUpdatePageInfo(page()); | 1861 TextAutosizer::DeferUpdatePageInfo deferUpdatePageInfo(page()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1917 bool isRotation = | 1905 bool isRotation = |
| 1918 page()->settings().mainFrameResizesAreOrientationChanges() && | 1906 page()->settings().mainFrameResizesAreOrientationChanges() && |
| 1919 m_size.width && contentsSize().width() && newSize.width != m_size.width && | 1907 m_size.width && contentsSize().width() && newSize.width != m_size.width && |
| 1920 !m_fullscreenController->isFullscreen(); | 1908 !m_fullscreenController->isFullscreen(); |
| 1921 m_size = newSize; | 1909 m_size = newSize; |
| 1922 | 1910 |
| 1923 FloatSize viewportAnchorCoords(viewportAnchorCoordX, viewportAnchorCoordY); | 1911 FloatSize viewportAnchorCoords(viewportAnchorCoordX, viewportAnchorCoordY); |
| 1924 if (isRotation) { | 1912 if (isRotation) { |
| 1925 RotationViewportAnchor anchor(*view, visualViewport, viewportAnchorCoords, | 1913 RotationViewportAnchor anchor(*view, visualViewport, viewportAnchorCoords, |
| 1926 pageScaleConstraintsSet()); | 1914 pageScaleConstraintsSet()); |
| 1927 resizeViewWhileAnchored(browserControlsHeight, browserControlsShrinkLayout); | 1915 resizeViewWhileAnchored(view, browserControlsHeight, |
| 1916 browserControlsShrinkLayout); |
| 1928 } else { | 1917 } else { |
| 1929 ResizeViewportAnchor::ResizeScope resizeScope(*m_resizeViewportAnchor); | 1918 ResizeViewportAnchor::ResizeScope resizeScope(*m_resizeViewportAnchor); |
| 1930 resizeViewWhileAnchored(browserControlsHeight, browserControlsShrinkLayout); | 1919 resizeViewWhileAnchored(view, browserControlsHeight, |
| 1920 browserControlsShrinkLayout); |
| 1931 } | 1921 } |
| 1932 sendResizeEventAndRepaint(); | 1922 sendResizeEventAndRepaint(); |
| 1933 } | 1923 } |
| 1934 | 1924 |
| 1935 void WebViewImpl::resize(const WebSize& newSize) { | 1925 void WebViewImpl::resize(const WebSize& newSize) { |
| 1936 if (m_shouldAutoResize || m_size == newSize) | 1926 if (m_shouldAutoResize || m_size == newSize) |
| 1937 return; | 1927 return; |
| 1938 | 1928 |
| 1939 resizeWithBrowserControls(newSize, browserControls().height(), | 1929 resizeWithBrowserControls(newSize, browserControls().height(), |
| 1940 browserControls().shrinkViewport()); | 1930 browserControls().shrinkViewport()); |
| (...skipping 2271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4212 if (focusedFrame->localFrameRoot() != mainFrameImpl()->frame()) | 4202 if (focusedFrame->localFrameRoot() != mainFrameImpl()->frame()) |
| 4213 return nullptr; | 4203 return nullptr; |
| 4214 return focusedFrame; | 4204 return focusedFrame; |
| 4215 } | 4205 } |
| 4216 | 4206 |
| 4217 LocalFrame* WebViewImpl::focusedLocalFrameAvailableForIme() const { | 4207 LocalFrame* WebViewImpl::focusedLocalFrameAvailableForIme() const { |
| 4218 return m_imeAcceptEvents ? focusedLocalFrameInWidget() : nullptr; | 4208 return m_imeAcceptEvents ? focusedLocalFrameInWidget() : nullptr; |
| 4219 } | 4209 } |
| 4220 | 4210 |
| 4221 } // namespace blink | 4211 } // namespace blink |
| OLD | NEW |