Changeset 75758 in webkit


Ignore:
Timestamp:
Jan 13, 2011, 5:16:42 PM (15 years ago)
Author:
mthole@apple.com
Message:

The pageScaleFactor() should be saved/restored along with the scroll position
https://bugs.webkit.org/show_bug.cgi?id=52406
<rdar://problem/8714412>

Reviewed by Darin Adler and Brady Eidson.

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::HistoryItem): Initialize m_pageScaleFactor.
(WebCore::HistoryItem::pageScaleFactor): Added getter.
(WebCore::HistoryItem::setPageScaleFactor): Added setter.
(WebCore::HistoryItem::encodeBackForwardTreeNode): Encode m_pageScaleFactor.
(WebCore::HistoryItem::decodeBackForwardTree): Decode m_pageScaleFactor.

  • history/HistoryItem.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem): Save the page scale factor...
(WebCore::HistoryController::restoreScrollPositionAndViewState): ...and restore it here.

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r75756 r75758  
     12011-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
    1202011-01-13  Evan Martin  <evan@chromium.org>
    221
  • trunk/Source/WebCore/history/HistoryItem.cpp

    r75020 r75758  
    4141namespace WebCore {
    4242
    43 const uint32_t backForwardTreeEncodingVersion = 0;
     43const uint32_t backForwardTreeEncodingVersion = 1;
    4444
    4545static long long generateSequenceNumber()
     
    6060    : m_lastVisitedTime(0)
    6161    , m_lastVisitWasHTTPNonGet(false)
     62    , m_pageScaleFactor(1)
    6263    , m_lastVisitWasFailure(false)
    6364    , m_isTargetItem(false)
     
    7475    , m_lastVisitedTime(time)
    7576    , m_lastVisitWasHTTPNonGet(false)
     77    , m_pageScaleFactor(1)
    7678    , m_lastVisitWasFailure(false)
    7779    , m_isTargetItem(false)
     
    9092    , m_lastVisitedTime(time)
    9193    , m_lastVisitWasHTTPNonGet(false)
     94    , m_pageScaleFactor(1)
    9295    , m_lastVisitWasFailure(false)
    9396    , m_isTargetItem(false)
     
    107110    , m_lastVisitedTime(0)
    108111    , m_lastVisitWasHTTPNonGet(false)
     112    , m_pageScaleFactor(1)
    109113    , m_lastVisitWasFailure(false)
    110114    , m_isTargetItem(false)
     
    138142    , m_lastVisitWasHTTPNonGet(item.m_lastVisitWasHTTPNonGet)
    139143    , m_scrollPoint(item.m_scrollPoint)
     144    , m_pageScaleFactor(item.m_pageScaleFactor)
    140145    , m_lastVisitWasFailure(item.m_lastVisitWasFailure)
    141146    , m_isTargetItem(item.m_isTargetItem)
     
    378383    m_scrollPoint.setX(0);
    379384    m_scrollPoint.setY(0);
     385}
     386
     387float HistoryItem::pageScaleFactor() const
     388{
     389    return m_pageScaleFactor;
     390}
     391
     392void HistoryItem::setPageScaleFactor(float scaleFactor)
     393{
     394    m_pageScaleFactor = scaleFactor;
    380395}
    381396
     
    668683    encoder.encodeInt32(m_scrollPoint.x());
    669684    encoder.encodeInt32(m_scrollPoint.y());
     685   
     686    encoder.encodeFloat(m_pageScaleFactor);
    670687
    671688    encoder.encodeBool(m_stateObject);
     
    777794        return 0;
    778795    node->m_scrollPoint = IntPoint(x, y);
     796   
     797    if (!decoder.decodeFloat(node->m_pageScaleFactor))
     798        return 0;
    779799
    780800    bool hasStateObject;
  • trunk/Source/WebCore/history/HistoryItem.h

    r75020 r75758  
    124124    void setScrollPoint(const IntPoint&);
    125125    void clearScrollPoint();
     126   
     127    float pageScaleFactor() const;
     128    void setPageScaleFactor(float);
     129   
    126130    const Vector<String>& documentState() const;
    127131    void setDocumentState(const Vector<String>&);
     
    246250
    247251    IntPoint m_scrollPoint;
     252    float m_pageScaleFactor;
    248253    Vector<String> m_documentState;
    249254   
  • trunk/Source/WebCore/loader/HistoryController.cpp

    r75336 r75758  
    8181       
    8282    item->setScrollPoint(m_frame->view()->scrollPosition());
     83    item->setPageScaleFactor(m_frame->pageScaleFactor());
     84   
    8385    // FIXME: It would be great to work out a way to put this code in WebCore instead of calling through to the client.
    8486    m_frame->loader()->client()->saveViewStateToItem(item);
     
    115117    m_frame->loader()->client()->restoreViewState();
    116118   
    117     if (FrameView* view = m_frame->view())
    118         if (!view->wasScrolledByUser())
     119    if (FrameView* view = m_frame->view()) {
     120        if (!view->wasScrolledByUser()) {
    119121            view->setScrollPosition(m_currentItem->scrollPoint());
     122            m_frame->scalePage(m_currentItem->pageScaleFactor(), m_currentItem->scrollPoint());
     123        }
     124    }
    120125}
    121126
Note: See TracChangeset for help on using the changeset viewer.