Changeset 107665 in webkit
- Timestamp:
- Feb 13, 2012, 8:41:55 PM (13 years ago)
- Location:
- trunk/Source
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r107663 r107665 1 2012-02-13 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Remove obsolete zoom animation pathway. 4 https://bugs.webkit.org/show_bug.cgi?id=78359 5 6 Reviewed by James Robinson. 7 8 Tests for existing pathways should not be broken. Tests for removed pathway removed previously. 9 10 This patch removes dead code from the previous incarnation of zoom animation for chromium. 11 12 * page/EventHandler.cpp: 13 (WebCore::EventHandler::handleGestureEvent): 14 * page/FrameView.cpp: 15 * page/FrameView.h: 16 (FrameView): 17 * platform/ScrollAnimator.cpp: 18 (WebCore::ScrollAnimator::ScrollAnimator): 19 * platform/ScrollAnimator.h: 20 (ScrollAnimator): 21 * platform/ScrollAnimatorNone.cpp: 22 (WebCore::ScrollAnimatorNone::ScrollAnimatorNone): 23 (WebCore::ScrollAnimatorNone::animationTimerFired): 24 * platform/ScrollAnimatorNone.h: 25 (ScrollAnimatorNone): 26 * platform/ScrollableArea.cpp: 27 * platform/ScrollableArea.h: 28 * testing/InternalSettings.cpp: 29 * testing/InternalSettings.h: 30 (InternalSettings): 31 * testing/InternalSettings.idl: 32 * testing/Internals.cpp: 33 1 34 2012-02-13 Shinya Kawanaka <shinyak@chromium.org> 2 35 -
trunk/Source/WebCore/page/EventHandler.cpp
r107296 r107665 2363 2363 } 2364 2364 case PlatformEvent::GestureDoubleTap: 2365 break; 2365 2366 case PlatformEvent::GestureScrollBegin: 2366 2367 case PlatformEvent::GestureScrollEnd: { -
trunk/Source/WebCore/page/FrameView.cpp
r107657 r107665 71 71 #if USE(ACCELERATED_COMPOSITING) 72 72 #include "RenderLayerCompositor.h" 73 #if PLATFORM(CHROMIUM)74 #include "TraceEvent.h"75 #endif76 73 #endif 77 74 … … 1230 1227 } 1231 1228 1232 void FrameView::zoomAnimatorTransformChanged(float scale, float x, float y, ZoomAnimationState state)1233 {1234 if (state == ZoomAnimationFinishing) {1235 if (Page* page = m_frame->page())1236 page->setPageScaleFactor(page->pageScaleFactor() * scale, IntPoint(scale * scrollX() - x, scale * scrollY() - y));1237 scrollAnimator()->resetZoom();1238 }1239 1240 #if USE(ACCELERATED_COMPOSITING)1241 if (RenderView* root = rootRenderer(this)) {1242 if (root->usesCompositing()) {1243 root->compositor()->scheduleLayerFlush();1244 #if PLATFORM(CHROMIUM)1245 TRACE_EVENT("FrameView::zoomAnimatorTransformChanged", this, 0);1246 #endif1247 }1248 }1249 #endif1250 }1251 1252 1229 void FrameView::setMediaType(const String& mediaType) 1253 1230 { -
trunk/Source/WebCore/page/FrameView.h
r107646 r107665 171 171 virtual bool shouldRubberBandInDirection(ScrollDirection) const; 172 172 virtual bool requestScrollPositionUpdate(const IntPoint&) OVERRIDE; 173 174 virtual void zoomAnimatorTransformChanged(float, float, float, ZoomAnimationState);175 173 176 174 String mediaType() const; -
trunk/Source/WebCore/platform/ScrollAnimator.cpp
r99616 r107665 53 53 , m_currentPosX(0) 54 54 , m_currentPosY(0) 55 , m_currentZoomScale(1)56 , m_currentZoomTransX(0)57 , m_currentZoomTransY(0)58 55 { 59 56 } … … 142 139 } 143 140 144 void ScrollAnimator::notifyZoomChanged(ZoomAnimationState state)145 {146 m_scrollableArea->zoomAnimatorTransformChanged(m_currentZoomScale, m_currentZoomTransX, m_currentZoomTransY,147 state == ZoomAnimationContinuing ? ScrollableArea::ZoomAnimationContinuing148 : ScrollableArea::ZoomAnimationFinishing);149 }150 151 FloatPoint ScrollAnimator::zoomTranslation() const152 {153 return FloatPoint(m_currentZoomTransX, m_currentZoomTransY);154 }155 156 void ScrollAnimator::resetZoom()157 {158 m_currentZoomScale = 1;159 m_currentZoomTransX = 0;160 m_currentZoomTransY = 0;161 }162 163 void ScrollAnimator::setZoomParametersForTest(float scale, float x, float y)164 {165 m_currentZoomScale = scale;166 m_currentZoomTransX = (1 - scale) * x;167 m_currentZoomTransY = (1 - scale) * y;168 notifyZoomChanged(ZoomAnimationContinuing); // Don't let page re-scale.169 }170 171 141 } // namespace WebCore -
trunk/Source/WebCore/platform/ScrollAnimator.h
r107490 r107665 48 48 class ScrollAnimator { 49 49 public: 50 enum ZoomAnimationState { ZoomAnimationContinuing, ZoomAnimationFinishing };51 52 50 static PassOwnPtr<ScrollAnimator> create(ScrollableArea*); 53 51 … … 92 90 virtual void willRemoveHorizontalScrollbar(Scrollbar*) { } 93 91 94 float zoomScale() const { return m_currentZoomScale; }95 FloatPoint zoomTranslation() const;96 virtual void resetZoom();97 virtual void setZoomParametersForTest(float, float, float);98 99 92 virtual bool shouldScrollbarParticipateInHitTesting(Scrollbar*) { return true; } 100 93 … … 105 98 106 99 virtual void notifyPositionChanged(); 107 virtual void notifyZoomChanged(ZoomAnimationState);108 100 109 101 ScrollableArea* m_scrollableArea; 110 102 float m_currentPosX; // We avoid using a FloatPoint in order to reduce 111 103 float m_currentPosY; // subclass code complexity. 112 113 float m_currentZoomScale;114 float m_currentZoomTransX;115 float m_currentZoomTransY;116 104 }; 117 105 -
trunk/Source/WebCore/platform/ScrollAnimatorNone.cpp
r103112 r107665 372 372 } 373 373 374 ScrollAnimatorNone::ZoomData::ZoomData(WebCore::ScrollAnimatorNone* parent)375 : m_parent(parent)376 , m_isAnimating(false)377 {378 }379 380 bool ScrollAnimatorNone::ZoomData::animateZoom(double currentTime)381 {382 m_lastAnimationTime = currentTime;383 double deltaTime = currentTime - m_startTime;384 385 if (deltaTime > m_animationTime) {386 m_parent->m_currentZoomScale = m_desiredScale;387 m_parent->m_currentZoomTransX = m_desiredTransX;388 m_parent->m_currentZoomTransY = m_desiredTransY;389 return false;390 }391 392 double elapsedTimeFraction = deltaTime / m_animationTime;393 m_parent->m_currentZoomScale = elapsedTimeFraction * (m_desiredScale - m_startScale) + m_startScale;394 m_parent->m_currentZoomTransX = elapsedTimeFraction * m_desiredTransX;395 m_parent->m_currentZoomTransY = elapsedTimeFraction * m_desiredTransY;396 return true;397 }398 399 374 ScrollAnimatorNone::ScrollAnimatorNone(ScrollableArea* scrollableArea) 400 375 : ScrollAnimator(scrollableArea) 401 376 , m_horizontalData(this, &m_currentPosX, scrollableArea->visibleWidth()) 402 377 , m_verticalData(this, &m_currentPosY, scrollableArea->visibleHeight()) 403 , m_zoomData(this)404 378 , m_animationTimer(this, &ScrollAnimatorNone::animationTimerFired) 405 379 { … … 471 445 } 472 446 473 #if ENABLE(GESTURE_EVENTS)474 void ScrollAnimatorNone::zoom(const PlatformGestureEvent& pge)475 {476 ASSERT(pge.type() == PlatformEvent::GestureDoubleTap);477 // FIXME: modify this so we can start even if the timer is active.478 if (!m_animationTimer.isActive()) {479 m_currentZoomScale = 1;480 m_currentZoomTransX = 0;481 m_currentZoomTransY = 0;482 483 double currentTime = WTF::monotonicallyIncreasingTime();484 float scale = pge.deltaX();485 486 m_zoomData.m_startTime = currentTime - kTickTime / 2;487 m_zoomData.m_startScale = m_currentZoomScale;488 m_zoomData.m_desiredScale = scale;489 // FIXME: Document then simplify the following equations.490 m_zoomData.m_desiredTransX = (1 - scale) * pge.globalPosition().x();491 m_zoomData.m_desiredTransY = (1 - scale) * pge.globalPosition().y();492 #if ENABLE(DOUBLE_TAP_CENTERS)493 if (pge.type() == PlatformEvent::GestureDoubleTap) {494 // Zoom to centre of display. Pinch-to-zoom may not want this behaviour.495 m_zoomData.m_desiredTransX += m_scrollableArea->visibleWidth() / 2 - pge.globalPosition().x();496 m_zoomData.m_desiredTransY += m_scrollableArea->visibleHeight() / 2 - pge.globalPosition().y();497 }498 #endif499 m_zoomData.m_lastAnimationTime = currentTime;500 m_zoomData.m_animationTime = kZoomTicks * kTickTime;501 502 bool isContinuing = m_zoomData.animateZoom(currentTime);503 504 double deltaToNextFrame = ceil((currentTime - m_startTime) * kFrameRate) / kFrameRate - (currentTime - m_startTime);505 double nextTimerInterval = max(kMinimumTimerInterval, deltaToNextFrame);506 if (isContinuing) {507 m_animationTimer.startOneShot(nextTimerInterval);508 m_zoomData.m_isAnimating = true;509 notifyZoomChanged(ZoomAnimationContinuing);510 } else511 notifyZoomChanged(ZoomAnimationFinishing);512 }513 }514 515 void ScrollAnimatorNone::handleGestureEvent(const PlatformGestureEvent& pge)516 {517 TRACE_EVENT("ScrollAnimatorNone::handleGestureEvent", this, 0);518 switch (pge.type()) {519 case PlatformEvent::GestureDoubleTap:520 zoom(pge);521 break;522 523 default:524 // TODO: add any other event types we should handle525 { }526 }527 }528 #endif529 530 447 void ScrollAnimatorNone::willEndLiveResize() 531 448 { … … 564 481 continueAnimation = true; 565 482 566 if (m_zoomData.m_isAnimating) {567 #if PLATFORM(CHROMIUM)568 TRACE_EVENT("ScrollAnimatorNone::notifyZoomChanged", this, 0);569 #endif570 if (m_zoomData.m_startTime && m_zoomData.animateZoom(currentTime + deltaToNextFrame)) {571 continueAnimation = true;572 notifyZoomChanged(ZoomAnimationContinuing);573 } else {574 notifyZoomChanged(ZoomAnimationFinishing);575 m_zoomData.m_isAnimating = false;576 }577 }578 579 483 if (continueAnimation) { 580 484 double nextTimerInterval = max(kMinimumTimerInterval, deltaToNextFrame); -
trunk/Source/WebCore/platform/ScrollAnimatorNone.h
r99511 r107665 50 50 virtual bool scroll(ScrollbarOrientation, ScrollGranularity, float step, float multiplier); 51 51 virtual void scrollToOffsetWithoutAnimation(const FloatPoint&); 52 53 #if ENABLE(GESTURE_EVENTS)54 virtual void zoom(const PlatformGestureEvent&);55 virtual void handleGestureEvent(const PlatformGestureEvent&);56 #endif57 52 58 53 virtual void willEndLiveResize(); … … 132 127 }; 133 128 134 // While zooming, scale, posX and posY need to stay tightly coupled, so use a separate135 // data structure.136 struct ZoomData {137 ZoomData(ScrollAnimatorNone* parent);138 bool animateZoom(double currentTime);139 140 ScrollAnimatorNone* m_parent;141 bool m_isAnimating;142 143 double m_startTime;144 145 double m_animationTime;146 double m_lastAnimationTime;147 148 double m_startScale;149 double m_desiredScale;150 double m_desiredTransX;151 double m_desiredTransY;152 };153 154 friend struct ZoomData;155 156 129 void animationTimerFired(Timer<ScrollAnimatorNone>*); 157 130 void stopAnimationTimerIfNeeded(); … … 160 133 PerAxisData m_horizontalData; 161 134 PerAxisData m_verticalData; 162 ZoomData m_zoomData;163 135 164 136 double m_startTime; -
trunk/Source/WebCore/platform/ScrollableArea.cpp
r107490 r107665 154 154 } 155 155 156 void ScrollableArea::zoomAnimatorTransformChanged(float, float, float, ZoomAnimationState)157 {158 // Requires FrameView to override this.159 }160 161 156 bool ScrollableArea::handleWheelEvent(const PlatformWheelEvent& wheelEvent) 162 157 { -
trunk/Source/WebCore/platform/ScrollableArea.h
r107467 r107665 43 43 class ScrollableArea { 44 44 public: 45 enum ZoomAnimationState { ZoomAnimationContinuing, ZoomAnimationFinishing };46 47 45 bool scroll(ScrollDirection, ScrollGranularity, float multiplier = 1); 48 46 void scrollToOffsetWithoutAnimation(const FloatPoint&); … … 57 55 // expect it to happen sometime in the future. 58 56 virtual bool requestScrollPositionUpdate(const IntPoint&) { return false; } 59 60 virtual void zoomAnimatorTransformChanged(float, float, float, ZoomAnimationState);61 57 62 58 bool handleWheelEvent(const PlatformWheelEvent&); -
trunk/Source/WebCore/testing/InternalSettings.cpp
r106642 r107665 37 37 #include "Settings.h" 38 38 39 #if ENABLE(GESTURE_EVENTS)40 #include "PlatformGestureEvent.h"41 #endif42 43 #if ENABLE(SMOOTH_SCROLLING)44 #include "ScrollAnimator.h"45 #endif46 47 39 #if ENABLE(INPUT_COLOR) 48 40 #include "ColorChooser.h" … … 173 165 } 174 166 175 void InternalSettings::setEnableScrollAnimator(bool enabled, ExceptionCode& ec)176 {177 InternalSettingsGuardForSettings();178 #if ENABLE(SMOOTH_SCROLLING)179 settings()->setEnableScrollAnimator(enabled);180 #else181 UNUSED_PARAM(enabled);182 #endif183 }184 185 void InternalSettings::setZoomAnimatorTransform(float scale, float tx, float ty, ExceptionCode& ec)186 {187 InternalSettingsGuardForFrame();188 189 #if ENABLE(GESTURE_EVENTS)190 PlatformGestureEvent pge(PlatformEvent::GestureDoubleTap, IntPoint(tx, ty), IntPoint(tx, ty), 0, scale, 0.f, 0, 0, 0, 0);191 frame()->eventHandler()->handleGestureEvent(pge);192 #else193 UNUSED_PARAM(scale);194 UNUSED_PARAM(tx);195 UNUSED_PARAM(ty);196 #endif197 }198 199 void InternalSettings::setZoomParameters(float scale, float x, float y, ExceptionCode& ec)200 {201 InternalSettingsGuardForFrameView();202 203 #if ENABLE(SMOOTH_SCROLLING)204 frame()->view()->scrollAnimator()->setZoomParametersForTest(scale, x, y);205 #else206 UNUSED_PARAM(scale);207 UNUSED_PARAM(x);208 UNUSED_PARAM(y);209 #endif210 }211 212 167 void InternalSettings::setMockScrollbarsEnabled(bool enabled, ExceptionCode& ec) 213 168 { … … 252 207 InternalSettingsGuardForSettingsReturn(false); 253 208 return settings()->unifiedTextCheckerEnabled(); 254 }255 256 float InternalSettings::pageScaleFactor(ExceptionCode& ec)257 {258 InternalSettingsGuardForPageReturn(0);259 return page()->pageScaleFactor();260 209 } 261 210 -
trunk/Source/WebCore/testing/InternalSettings.h
r106642 r107665 53 53 void setAcceleratedDrawingEnabled(bool enabled, ExceptionCode&); 54 54 void setAcceleratedFiltersEnabled(bool enabled, ExceptionCode&); 55 void setEnableScrollAnimator(bool enabled, ExceptionCode&);56 void setZoomAnimatorTransform(float scale, float tx, float ty, ExceptionCode&);57 void setZoomParameters(float scale, float x, float y, ExceptionCode&);58 55 void setMockScrollbarsEnabled(bool enabled, ExceptionCode&); 59 56 void setPasswordEchoEnabled(bool enabled, ExceptionCode&); … … 62 59 void setUnifiedTextCheckingEnabled(bool, ExceptionCode&); 63 60 bool unifiedTextCheckingEnabled(ExceptionCode&); 64 float pageScaleFactor(ExceptionCode&);65 61 void setPageScaleFactor(float scaleFactor, int x, int y, ExceptionCode&); 66 62 void setPerTileDrawingEnabled(bool enabled, ExceptionCode&); -
trunk/Source/WebCore/testing/InternalSettings.idl
r106642 r107665 34 34 void setAcceleratedDrawingEnabled(in boolean enabled) raises(DOMException); 35 35 void setAcceleratedFiltersEnabled(in boolean enabled) raises(DOMException); 36 void setEnableScrollAnimator(in boolean enabled) raises(DOMException);37 void setZoomAnimatorTransform(in float scale, in float tx, in float ty) raises(DOMException);38 void setZoomParameters(in float scale, in float x, in float y) raises(DOMException);39 36 void setMockScrollbarsEnabled(in boolean enabled) raises(DOMException); 40 37 void setPasswordEchoEnabled(in boolean enabled) raises(DOMException); … … 43 40 void setUnifiedTextCheckingEnabled(in boolean enabled) raises (DOMException); 44 41 boolean unifiedTextCheckingEnabled() raises (DOMException); 45 float pageScaleFactor() raises(DOMException);46 42 void setPageScaleFactor(in float scaleFactor, in long x, in long y) raises(DOMException); 47 43 void setTouchEventEmulationEnabled(in boolean enabled) raises(DOMException); -
trunk/Source/WebCore/testing/Internals.cpp
r107558 r107665 54 54 #include "TextIterator.h" 55 55 56 #if ENABLE(GESTURE_EVENTS)57 #include "PlatformGestureEvent.h"58 #endif59 60 #if ENABLE(SMOOTH_SCROLLING)61 #include "ScrollAnimator.h"62 #endif63 64 56 #if ENABLE(INPUT_COLOR) 65 57 #include "ColorChooser.h" -
trunk/Source/WebKit/chromium/ChangeLog
r107661 r107665 1 2012-02-13 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Remove obsolete zoom animation pathway. 4 https://bugs.webkit.org/show_bug.cgi?id=78359 5 6 Reviewed by James Robinson. 7 8 This patch removes dead code from the previous incarnation of zoom animation for chromium. 9 10 * src/WebViewImpl.cpp: 11 1 12 2012-02-13 Hayato Ito <hayato@chromium.org> 2 13 -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r107518 r107665 100 100 #include "ResourceHandle.h" 101 101 #include "SchemeRegistry.h" 102 #include "ScrollAnimator.h"103 102 #include "SecurityOrigin.h" 104 103 #include "SecurityPolicy.h" -
trunk/Source/WebKit2/ChangeLog
r107606 r107665 1 2012-02-13 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Remove obsolete zoom animation pathway. 4 https://bugs.webkit.org/show_bug.cgi?id=78359 5 6 Reviewed by James Robinson. 7 8 This patch removes dead code from the previous incarnation of zoom animation for chromium. 9 10 WebProcess/Plugins/PDF/BuiltInPDFView.h: 11 (BuiltInPDFView): 12 1 13 2012-02-13 Enrica Casucci <enrica@apple.com> 2 14 -
trunk/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h
r106977 r107665 141 141 virtual bool shouldSuspendScrollAnimations() const { return false; } // If we return true, ScrollAnimatorMac will keep cycling a timer forever, waiting for a good time to animate. 142 142 virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate); 143 virtual void zoomAnimatorTransformChanged(float, float, float, ZoomAnimationState) { }144 143 145 144 // FIXME: Implement the other conversion functions; this one is enough to get scrollbar hit testing working.
Note:
See TracChangeset
for help on using the changeset viewer.