| 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 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 , m_zoomLevel(0) | 412 , m_zoomLevel(0) |
| 413 , m_minimumZoomLevel(zoomFactorToZoomLevel(minTextSizeMultiplier)) | 413 , m_minimumZoomLevel(zoomFactorToZoomLevel(minTextSizeMultiplier)) |
| 414 , m_maximumZoomLevel(zoomFactorToZoomLevel(maxTextSizeMultiplier)) | 414 , m_maximumZoomLevel(zoomFactorToZoomLevel(maxTextSizeMultiplier)) |
| 415 , m_zoomFactorForDeviceScaleFactor(0.f) | 415 , m_zoomFactorForDeviceScaleFactor(0.f) |
| 416 , m_maximumLegibleScale(1) | 416 , m_maximumLegibleScale(1) |
| 417 , m_doubleTapZoomPageScaleFactor(0) | 417 , m_doubleTapZoomPageScaleFactor(0) |
| 418 , m_doubleTapZoomPending(false) | 418 , m_doubleTapZoomPending(false) |
| 419 , m_enableFakePageScaleAnimationForTesting(false) | 419 , m_enableFakePageScaleAnimationForTesting(false) |
| 420 , m_fakePageScaleAnimationPageScaleFactor(0) | 420 , m_fakePageScaleAnimationPageScaleFactor(0) |
| 421 , m_fakePageScaleAnimationUseAnchor(false) | 421 , m_fakePageScaleAnimationUseAnchor(false) |
| 422 , m_scrollOverrideEnabled(false) |
| 422 , m_doingDragAndDrop(false) | 423 , m_doingDragAndDrop(false) |
| 423 , m_ignoreInputEvents(false) | 424 , m_ignoreInputEvents(false) |
| 424 , m_compositorDeviceScaleFactorOverride(0) | 425 , m_compositorDeviceScaleFactorOverride(0) |
| 425 , m_rootLayerScale(1) | 426 , m_rootLayerScale(1) |
| 426 , m_suppressNextKeypressEvent(false) | 427 , m_suppressNextKeypressEvent(false) |
| 427 , m_imeAcceptEvents(true) | 428 , m_imeAcceptEvents(true) |
| 428 , m_operationsAllowed(WebDragOperationNone) | 429 , m_operationsAllowed(WebDragOperationNone) |
| 429 , m_dragOperation(WebDragOperationNone) | 430 , m_dragOperation(WebDragOperationNone) |
| 430 , m_devToolsEmulator(nullptr) | 431 , m_devToolsEmulator(nullptr) |
| 431 , m_isTransparent(false) | 432 , m_isTransparent(false) |
| (...skipping 1379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1811 // viewport with the top controls shown. | 1812 // viewport with the top controls shown. |
| 1812 IntSize ICBSize = m_size; | 1813 IntSize ICBSize = m_size; |
| 1813 if (RuntimeEnabledFeatures::inertTopControlsEnabled() && !topControls().shri
nkViewport()) | 1814 if (RuntimeEnabledFeatures::inertTopControlsEnabled() && !topControls().shri
nkViewport()) |
| 1814 ICBSize.expand(0, -topControls().height()); | 1815 ICBSize.expand(0, -topControls().height()); |
| 1815 | 1816 |
| 1816 pageScaleConstraintsSet().didChangeInitialContainingBlockSize(ICBSize); | 1817 pageScaleConstraintsSet().didChangeInitialContainingBlockSize(ICBSize); |
| 1817 | 1818 |
| 1818 updatePageDefinedViewportConstraints(mainFrameImpl()->frame()->document()->v
iewportDescription()); | 1819 updatePageDefinedViewportConstraints(mainFrameImpl()->frame()->document()->v
iewportDescription()); |
| 1819 updateMainFrameLayoutSize(); | 1820 updateMainFrameLayoutSize(); |
| 1820 | 1821 |
| 1821 page()->frameHost().visualViewport().setSize(m_size); | 1822 if (!(m_scrollOverrideEnabled |
| 1823 && (m_scrollOverrideParams.visualViewportSize.width |
| 1824 || m_scrollOverrideParams.visualViewportSize.height))) { |
| 1825 page()->frameHost().visualViewport().setSize(m_size); |
| 1826 } |
| 1822 | 1827 |
| 1823 if (mainFrameImpl()->frameView()) { | 1828 if (mainFrameImpl()->frameView()) { |
| 1824 if (!mainFrameImpl()->frameView()->needsLayout()) | 1829 if (!mainFrameImpl()->frameView()->needsLayout()) |
| 1825 postLayoutResize(mainFrameImpl()); | 1830 postLayoutResize(mainFrameImpl()); |
| 1826 } | 1831 } |
| 1827 } | 1832 } |
| 1828 | 1833 |
| 1829 void WebViewImpl::updateTopControlsState(WebTopControlsState constraint, WebTopC
ontrolsState current, bool animate) | 1834 void WebViewImpl::updateTopControlsState(WebTopControlsState constraint, WebTopC
ontrolsState current, bool animate) |
| 1830 { | 1835 { |
| 1831 topControls().updateConstraints(constraint); | 1836 topControls().updateConstraints(constraint); |
| (...skipping 1326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3158 } | 3163 } |
| 3159 | 3164 |
| 3160 float WebViewImpl::pageScaleFactor() const | 3165 float WebViewImpl::pageScaleFactor() const |
| 3161 { | 3166 { |
| 3162 if (!page()) | 3167 if (!page()) |
| 3163 return 1; | 3168 return 1; |
| 3164 | 3169 |
| 3165 return page()->frameHost().visualViewport().scale(); | 3170 return page()->frameHost().visualViewport().scale(); |
| 3166 } | 3171 } |
| 3167 | 3172 |
| 3173 WebPoint WebViewImpl::mainFrameOffset() const |
| 3174 { |
| 3175 if (!page() || !mainFrameImpl()) |
| 3176 return WebPoint(); |
| 3177 |
| 3178 FrameView* view = mainFrameImpl()->frameView(); |
| 3179 if (!view) |
| 3180 return WebPoint(); |
| 3181 |
| 3182 return view->scrollPosition(); |
| 3183 } |
| 3184 |
| 3168 float WebViewImpl::clampPageScaleFactorToLimits(float scaleFactor) const | 3185 float WebViewImpl::clampPageScaleFactorToLimits(float scaleFactor) const |
| 3169 { | 3186 { |
| 3170 return pageScaleConstraintsSet().finalConstraints().clampToConstraints(scale
Factor); | 3187 return pageScaleConstraintsSet().finalConstraints().clampToConstraints(scale
Factor); |
| 3171 } | 3188 } |
| 3172 | 3189 |
| 3173 void WebViewImpl::setVisualViewportOffset(const WebFloatPoint& offset) | 3190 void WebViewImpl::setVisualViewportOffset(const WebFloatPoint& offset) |
| 3174 { | 3191 { |
| 3175 DCHECK(page()); | 3192 DCHECK(page()); |
| 3176 page()->frameHost().visualViewport().setLocation(offset); | 3193 page()->frameHost().visualViewport().setLocation(offset); |
| 3177 } | 3194 } |
| 3178 | 3195 |
| 3179 WebFloatPoint WebViewImpl::visualViewportOffset() const | 3196 WebFloatPoint WebViewImpl::visualViewportOffset() const |
| 3180 { | 3197 { |
| 3181 DCHECK(page()); | 3198 DCHECK(page()); |
| 3182 return page()->frameHost().visualViewport().visibleRect().location(); | 3199 return page()->frameHost().visualViewport().visibleRect().location(); |
| 3183 } | 3200 } |
| 3184 | 3201 |
| 3185 WebFloatSize WebViewImpl::visualViewportSize() const | 3202 WebFloatSize WebViewImpl::visualViewportSize() const |
| 3186 { | 3203 { |
| 3187 DCHECK(page()); | 3204 DCHECK(page()); |
| 3188 return page()->frameHost().visualViewport().visibleRect().size(); | 3205 return page()->frameHost().visualViewport().visibleRect().size(); |
| 3189 } | 3206 } |
| 3190 | 3207 |
| 3208 void WebViewImpl::setScrollOverride(const WebDeviceEmulationParams& params) |
| 3209 { |
| 3210 if (m_scrollOverrideEnabled && m_scrollOverrideParams == params) |
| 3211 return; |
| 3212 |
| 3213 if (!page()) |
| 3214 return; |
| 3215 |
| 3216 if (!mainFrameImpl()) |
| 3217 return; |
| 3218 |
| 3219 FrameView * view = mainFrameImpl()->frameView(); |
| 3220 if (!view) |
| 3221 return; |
| 3222 |
| 3223 m_scrollOverrideEnabled = true; |
| 3224 m_scrollOverrideParams = params; |
| 3225 |
| 3226 view->setScrollOverride(DoublePoint( |
| 3227 m_scrollOverrideParams.scrollPosition.x, m_scrollOverrideParams.scrollPo
sition.y)); |
| 3228 page()->frameHost().visualViewport().setScaleAndScrollOverride( |
| 3229 m_scrollOverrideParams.visualViewportScale, |
| 3230 FloatPoint( |
| 3231 m_scrollOverrideParams.visualViewportPosition.x, |
| 3232 m_scrollOverrideParams.visualViewportPosition.y)); |
| 3233 } |
| 3234 |
| 3235 void WebViewImpl::clearScrollOverride() |
| 3236 { |
| 3237 if (!m_scrollOverrideEnabled) |
| 3238 return; |
| 3239 |
| 3240 if (!page()) |
| 3241 return; |
| 3242 |
| 3243 if (!mainFrameImpl()) |
| 3244 return; |
| 3245 |
| 3246 FrameView * view = mainFrameImpl()->frameView(); |
| 3247 if (!view) |
| 3248 return; |
| 3249 |
| 3250 m_scrollOverrideEnabled = false; |
| 3251 |
| 3252 view->clearScrollOverride(); |
| 3253 page()->frameHost().visualViewport().clearScaleAndScrollOverride(); |
| 3254 |
| 3255 resetScrollAndScaleState(); |
| 3256 } |
| 3257 |
| 3191 void WebViewImpl::scrollAndRescaleViewports(float scaleFactor, | 3258 void WebViewImpl::scrollAndRescaleViewports(float scaleFactor, |
| 3192 const IntPoint& mainFrameOrigin, | 3259 const IntPoint& mainFrameOrigin, |
| 3193 const FloatPoint& visualViewportOrigin) | 3260 const FloatPoint& visualViewportOrigin) |
| 3194 { | 3261 { |
| 3195 if (!page()) | 3262 if (!page()) |
| 3196 return; | 3263 return; |
| 3197 | 3264 |
| 3198 if (!mainFrameImpl()) | 3265 if (!mainFrameImpl()) |
| 3199 return; | 3266 return; |
| 3200 | 3267 |
| (...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3841 m_rootLayerScale = rootLayerScale; | 3908 m_rootLayerScale = rootLayerScale; |
| 3842 m_rootLayerOffset = rootLayerOffset; | 3909 m_rootLayerOffset = rootLayerOffset; |
| 3843 if (mainFrameImpl()) | 3910 if (mainFrameImpl()) |
| 3844 mainFrameImpl()->setInputEventsTransformForEmulation(m_rootLayerOffset,
m_rootLayerScale); | 3911 mainFrameImpl()->setInputEventsTransformForEmulation(m_rootLayerOffset,
m_rootLayerScale); |
| 3845 updateRootLayerTransform(); | 3912 updateRootLayerTransform(); |
| 3846 } | 3913 } |
| 3847 | 3914 |
| 3848 void WebViewImpl::enableDeviceEmulation(const WebDeviceEmulationParams& params) | 3915 void WebViewImpl::enableDeviceEmulation(const WebDeviceEmulationParams& params) |
| 3849 { | 3916 { |
| 3850 m_devToolsEmulator->enableDeviceEmulation(params); | 3917 m_devToolsEmulator->enableDeviceEmulation(params); |
| 3918 setScrollOverride(params); |
| 3851 } | 3919 } |
| 3852 | 3920 |
| 3853 void WebViewImpl::disableDeviceEmulation() | 3921 void WebViewImpl::disableDeviceEmulation() |
| 3854 { | 3922 { |
| 3923 clearScrollOverride(); |
| 3855 m_devToolsEmulator->disableDeviceEmulation(); | 3924 m_devToolsEmulator->disableDeviceEmulation(); |
| 3856 } | 3925 } |
| 3857 | 3926 |
| 3858 WebAXObject WebViewImpl::accessibilityObject() | 3927 WebAXObject WebViewImpl::accessibilityObject() |
| 3859 { | 3928 { |
| 3860 if (!mainFrameImpl()) | 3929 if (!mainFrameImpl()) |
| 3861 return WebAXObject(); | 3930 return WebAXObject(); |
| 3862 | 3931 |
| 3863 Document* document = mainFrameImpl()->frame()->document(); | 3932 Document* document = mainFrameImpl()->frame()->document(); |
| 3864 return WebAXObject(toAXObjectCacheImpl(document->axObjectCache())->root()); | 3933 return WebAXObject(toAXObjectCacheImpl(document->axObjectCache())->root()); |
| (...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4553 { | 4622 { |
| 4554 // TODO(oshima): Investigate if this should return the ScreenInfo's scale fa
ctor rather than | 4623 // TODO(oshima): Investigate if this should return the ScreenInfo's scale fa
ctor rather than |
| 4555 // page's scale factor, which can be 1 in use-zoom-for-dsf mode. | 4624 // page's scale factor, which can be 1 in use-zoom-for-dsf mode. |
| 4556 if (!page()) | 4625 if (!page()) |
| 4557 return 1; | 4626 return 1; |
| 4558 | 4627 |
| 4559 return page()->deviceScaleFactor(); | 4628 return page()->deviceScaleFactor(); |
| 4560 } | 4629 } |
| 4561 | 4630 |
| 4562 } // namespace blink | 4631 } // namespace blink |
| OLD | NEW |