| 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 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 , m_editorClientImpl(this) | 360 , m_editorClientImpl(this) |
| 361 , m_inspectorClientImpl(this) | 361 , m_inspectorClientImpl(this) |
| 362 , m_backForwardClientImpl(this) | 362 , m_backForwardClientImpl(this) |
| 363 , m_spellCheckerClientImpl(this) | 363 , m_spellCheckerClientImpl(this) |
| 364 , m_storageClientImpl(this) | 364 , m_storageClientImpl(this) |
| 365 , m_fixedLayoutSizeLock(false) | 365 , m_fixedLayoutSizeLock(false) |
| 366 , m_shouldAutoResize(false) | 366 , m_shouldAutoResize(false) |
| 367 , m_zoomLevel(0) | 367 , m_zoomLevel(0) |
| 368 , m_minimumZoomLevel(zoomFactorToZoomLevel(minTextSizeMultiplier)) | 368 , m_minimumZoomLevel(zoomFactorToZoomLevel(minTextSizeMultiplier)) |
| 369 , m_maximumZoomLevel(zoomFactorToZoomLevel(maxTextSizeMultiplier)) | 369 , m_maximumZoomLevel(zoomFactorToZoomLevel(maxTextSizeMultiplier)) |
| 370 , m_savedPageScaleFactor(0) | |
| 371 , m_doubleTapZoomPageScaleFactor(0) | 370 , m_doubleTapZoomPageScaleFactor(0) |
| 372 , m_doubleTapZoomPending(false) | 371 , m_doubleTapZoomPending(false) |
| 373 , m_enableFakePageScaleAnimationForTesting(false) | 372 , m_enableFakePageScaleAnimationForTesting(false) |
| 374 , m_fakePageScaleAnimationPageScaleFactor(0) | 373 , m_fakePageScaleAnimationPageScaleFactor(0) |
| 375 , m_fakePageScaleAnimationUseAnchor(false) | 374 , m_fakePageScaleAnimationUseAnchor(false) |
| 376 , m_contextMenuAllowed(false) | 375 , m_contextMenuAllowed(false) |
| 377 , m_doingDragAndDrop(false) | 376 , m_doingDragAndDrop(false) |
| 378 , m_ignoreInputEvents(false) | 377 , m_ignoreInputEvents(false) |
| 379 , m_compositorDeviceScaleFactorOverride(0) | 378 , m_compositorDeviceScaleFactorOverride(0) |
| 380 , m_rootLayerScale(1) | 379 , m_rootLayerScale(1) |
| (...skipping 2660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3041 float WebViewImpl::minimumPageScaleFactor() const | 3040 float WebViewImpl::minimumPageScaleFactor() const |
| 3042 { | 3041 { |
| 3043 return m_pageScaleConstraintsSet.finalConstraints().minimumScale; | 3042 return m_pageScaleConstraintsSet.finalConstraints().minimumScale; |
| 3044 } | 3043 } |
| 3045 | 3044 |
| 3046 float WebViewImpl::maximumPageScaleFactor() const | 3045 float WebViewImpl::maximumPageScaleFactor() const |
| 3047 { | 3046 { |
| 3048 return m_pageScaleConstraintsSet.finalConstraints().maximumScale; | 3047 return m_pageScaleConstraintsSet.finalConstraints().maximumScale; |
| 3049 } | 3048 } |
| 3050 | 3049 |
| 3051 void WebViewImpl::saveScrollAndScaleState() | |
| 3052 { | |
| 3053 m_savedPageScaleFactor = pageScaleFactor(); | |
| 3054 m_savedScrollOffset = mainFrame()->scrollOffset(); | |
| 3055 } | |
| 3056 | |
| 3057 void WebViewImpl::restoreScrollAndScaleState() | |
| 3058 { | |
| 3059 if (!m_savedPageScaleFactor) | |
| 3060 return; | |
| 3061 | |
| 3062 startPageScaleAnimation(IntPoint(m_savedScrollOffset), false, m_savedPageSca
leFactor, scrollAndScaleAnimationDurationInSeconds); | |
| 3063 resetSavedScrollAndScaleState(); | |
| 3064 } | |
| 3065 | |
| 3066 void WebViewImpl::resetSavedScrollAndScaleState() | |
| 3067 { | |
| 3068 m_savedPageScaleFactor = 0; | |
| 3069 m_savedScrollOffset = IntSize(); | |
| 3070 } | |
| 3071 | |
| 3072 void WebViewImpl::resetScrollAndScaleState() | 3050 void WebViewImpl::resetScrollAndScaleState() |
| 3073 { | 3051 { |
| 3074 setPageScaleFactor(1, IntPoint()); | 3052 // TODO: This is done by the pinchViewport().reset() call below and can be r
emoved when |
| 3053 // the new pinch path is the only one. |
| 3054 setPageScaleFactor(1); |
| 3055 updateMainFrameScrollPosition(IntPoint(), true); |
| 3056 page()->frameHost().pinchViewport().reset(); |
| 3075 | 3057 |
| 3076 // Clear out the values for the current history item. This will prevent the
history item from clobbering the | 3058 // Clear out the values for the current history item. This will prevent the
history item from clobbering the |
| 3077 // value determined during page scale initialization, which may be less than
1. | 3059 // value determined during page scale initialization, which may be less than
1. |
| 3078 page()->mainFrame()->loader().clearScrollPositionAndViewState(); | 3060 page()->mainFrame()->loader().clearScrollPositionAndViewState(); |
| 3079 m_pageScaleConstraintsSet.setNeedsReset(true); | 3061 m_pageScaleConstraintsSet.setNeedsReset(true); |
| 3080 | 3062 |
| 3081 // Clobber saved scales and scroll offsets. | 3063 // Clobber saved scales and scroll offsets. |
| 3082 if (FrameView* view = page()->mainFrame()->document()->view()) | 3064 if (FrameView* view = page()->mainFrame()->document()->view()) |
| 3083 view->cacheCurrentScrollPosition(); | 3065 view->cacheCurrentScrollPosition(); |
| 3084 resetSavedScrollAndScaleState(); | |
| 3085 } | 3066 } |
| 3086 | 3067 |
| 3087 void WebViewImpl::setFixedLayoutSize(const WebSize& layoutSize) | 3068 void WebViewImpl::setFixedLayoutSize(const WebSize& layoutSize) |
| 3088 { | 3069 { |
| 3089 if (!page()) | 3070 if (!page()) |
| 3090 return; | 3071 return; |
| 3091 | 3072 |
| 3092 LocalFrame* frame = page()->mainFrame(); | 3073 LocalFrame* frame = page()->mainFrame(); |
| 3093 if (!frame) | 3074 if (!frame) |
| 3094 return; | 3075 return; |
| (...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3589 } | 3570 } |
| 3590 | 3571 |
| 3591 void WebViewImpl::didCommitLoad(bool isNewNavigation, bool isNavigationWithinPag
e) | 3572 void WebViewImpl::didCommitLoad(bool isNewNavigation, bool isNavigationWithinPag
e) |
| 3592 { | 3573 { |
| 3593 if (isNewNavigation && !isNavigationWithinPage) | 3574 if (isNewNavigation && !isNavigationWithinPage) |
| 3594 m_pageScaleConstraintsSet.setNeedsReset(true); | 3575 m_pageScaleConstraintsSet.setNeedsReset(true); |
| 3595 | 3576 |
| 3596 // Make sure link highlight from previous page is cleared. | 3577 // Make sure link highlight from previous page is cleared. |
| 3597 m_linkHighlights.clear(); | 3578 m_linkHighlights.clear(); |
| 3598 endActiveFlingAnimation(); | 3579 endActiveFlingAnimation(); |
| 3599 resetSavedScrollAndScaleState(); | |
| 3600 m_userGestureObserved = false; | 3580 m_userGestureObserved = false; |
| 3601 } | 3581 } |
| 3602 | 3582 |
| 3603 void WebViewImpl::willInsertBody(WebLocalFrameImpl* webframe) | 3583 void WebViewImpl::willInsertBody(WebLocalFrameImpl* webframe) |
| 3604 { | 3584 { |
| 3605 if (webframe != mainFrameImpl()) | 3585 if (webframe != mainFrameImpl()) |
| 3606 return; | 3586 return; |
| 3607 | 3587 |
| 3608 // If we get to the <body> tag and we have no pending stylesheet and import
load, we | 3588 // If we get to the <body> tag and we have no pending stylesheet and import
load, we |
| 3609 // can be fairly confident we'll have something sensible to paint soon and | 3589 // can be fairly confident we'll have something sensible to paint soon and |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4132 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi
nedConstraints(); | 4112 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi
nedConstraints(); |
| 4133 | 4113 |
| 4134 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) | 4114 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) |
| 4135 return false; | 4115 return false; |
| 4136 | 4116 |
| 4137 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width | 4117 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width |
| 4138 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); | 4118 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); |
| 4139 } | 4119 } |
| 4140 | 4120 |
| 4141 } // namespace blink | 4121 } // namespace blink |
| OLD | NEW |