Changeset 75758 in webkit
- Timestamp:
- Jan 13, 2011, 5:16:42 PM (15 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r75756 r75758 1 2011-01-13 Mike Thole <mthole@apple.com> 2 3 Reviewed by Darin Adler and Brady Eidson. 4 5 The pageScaleFactor() should be saved/restored along with the scroll position 6 https://bugs.webkit.org/show_bug.cgi?id=52406 7 <rdar://problem/8714412> 8 9 * history/HistoryItem.cpp: 10 (WebCore::HistoryItem::HistoryItem): Initialize m_pageScaleFactor. 11 (WebCore::HistoryItem::pageScaleFactor): Added getter. 12 (WebCore::HistoryItem::setPageScaleFactor): Added setter. 13 (WebCore::HistoryItem::encodeBackForwardTreeNode): Encode m_pageScaleFactor. 14 (WebCore::HistoryItem::decodeBackForwardTree): Decode m_pageScaleFactor. 15 * history/HistoryItem.h: 16 * loader/HistoryController.cpp: 17 (WebCore::HistoryController::saveScrollPositionAndViewStateToItem): Save the page scale factor... 18 (WebCore::HistoryController::restoreScrollPositionAndViewState): ...and restore it here. 19 1 20 2011-01-13 Evan Martin <evan@chromium.org> 2 21 -
trunk/Source/WebCore/history/HistoryItem.cpp
r75020 r75758 41 41 namespace WebCore { 42 42 43 const uint32_t backForwardTreeEncodingVersion = 0;43 const uint32_t backForwardTreeEncodingVersion = 1; 44 44 45 45 static long long generateSequenceNumber() … … 60 60 : m_lastVisitedTime(0) 61 61 , m_lastVisitWasHTTPNonGet(false) 62 , m_pageScaleFactor(1) 62 63 , m_lastVisitWasFailure(false) 63 64 , m_isTargetItem(false) … … 74 75 , m_lastVisitedTime(time) 75 76 , m_lastVisitWasHTTPNonGet(false) 77 , m_pageScaleFactor(1) 76 78 , m_lastVisitWasFailure(false) 77 79 , m_isTargetItem(false) … … 90 92 , m_lastVisitedTime(time) 91 93 , m_lastVisitWasHTTPNonGet(false) 94 , m_pageScaleFactor(1) 92 95 , m_lastVisitWasFailure(false) 93 96 , m_isTargetItem(false) … … 107 110 , m_lastVisitedTime(0) 108 111 , m_lastVisitWasHTTPNonGet(false) 112 , m_pageScaleFactor(1) 109 113 , m_lastVisitWasFailure(false) 110 114 , m_isTargetItem(false) … … 138 142 , m_lastVisitWasHTTPNonGet(item.m_lastVisitWasHTTPNonGet) 139 143 , m_scrollPoint(item.m_scrollPoint) 144 , m_pageScaleFactor(item.m_pageScaleFactor) 140 145 , m_lastVisitWasFailure(item.m_lastVisitWasFailure) 141 146 , m_isTargetItem(item.m_isTargetItem) … … 378 383 m_scrollPoint.setX(0); 379 384 m_scrollPoint.setY(0); 385 } 386 387 float HistoryItem::pageScaleFactor() const 388 { 389 return m_pageScaleFactor; 390 } 391 392 void HistoryItem::setPageScaleFactor(float scaleFactor) 393 { 394 m_pageScaleFactor = scaleFactor; 380 395 } 381 396 … … 668 683 encoder.encodeInt32(m_scrollPoint.x()); 669 684 encoder.encodeInt32(m_scrollPoint.y()); 685 686 encoder.encodeFloat(m_pageScaleFactor); 670 687 671 688 encoder.encodeBool(m_stateObject); … … 777 794 return 0; 778 795 node->m_scrollPoint = IntPoint(x, y); 796 797 if (!decoder.decodeFloat(node->m_pageScaleFactor)) 798 return 0; 779 799 780 800 bool hasStateObject; -
trunk/Source/WebCore/history/HistoryItem.h
r75020 r75758 124 124 void setScrollPoint(const IntPoint&); 125 125 void clearScrollPoint(); 126 127 float pageScaleFactor() const; 128 void setPageScaleFactor(float); 129 126 130 const Vector<String>& documentState() const; 127 131 void setDocumentState(const Vector<String>&); … … 246 250 247 251 IntPoint m_scrollPoint; 252 float m_pageScaleFactor; 248 253 Vector<String> m_documentState; 249 254 -
trunk/Source/WebCore/loader/HistoryController.cpp
r75336 r75758 81 81 82 82 item->setScrollPoint(m_frame->view()->scrollPosition()); 83 item->setPageScaleFactor(m_frame->pageScaleFactor()); 84 83 85 // FIXME: It would be great to work out a way to put this code in WebCore instead of calling through to the client. 84 86 m_frame->loader()->client()->saveViewStateToItem(item); … … 115 117 m_frame->loader()->client()->restoreViewState(); 116 118 117 if (FrameView* view = m_frame->view()) 118 if (!view->wasScrolledByUser()) 119 if (FrameView* view = m_frame->view()) { 120 if (!view->wasScrolledByUser()) { 119 121 view->setScrollPosition(m_currentItem->scrollPoint()); 122 m_frame->scalePage(m_currentItem->pageScaleFactor(), m_currentItem->scrollPoint()); 123 } 124 } 120 125 } 121 126
Note:
See TracChangeset
for help on using the changeset viewer.