[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

mthole at apple.com mthole at apple.com
Sun Feb 20 22:56:06 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit 96d6debeeb738cfb36b3fa82a27e38b1ca9db3c4
Author: mthole at apple.com <mthole at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jan 14 01:16:42 2011 +0000

    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.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75758 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 482f94d..2ef06c8 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2011-01-13  Mike Thole  <mthole at apple.com>
+
+        Reviewed by Darin Adler and Brady Eidson.
+
+        The pageScaleFactor() should be saved/restored along with the scroll position
+        https://bugs.webkit.org/show_bug.cgi?id=52406
+        <rdar://problem/8714412>
+
+        * 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.
+
 2011-01-13  Evan Martin  <evan at chromium.org>
 
         Reviewed by Tony Chang.
diff --git a/Source/WebCore/history/HistoryItem.cpp b/Source/WebCore/history/HistoryItem.cpp
index 0995913..f9e6c96 100644
--- a/Source/WebCore/history/HistoryItem.cpp
+++ b/Source/WebCore/history/HistoryItem.cpp
@@ -40,7 +40,7 @@
 
 namespace WebCore {
 
-const uint32_t backForwardTreeEncodingVersion = 0;
+const uint32_t backForwardTreeEncodingVersion = 1;
 
 static long long generateSequenceNumber()
 {
@@ -59,6 +59,7 @@ void (*notifyHistoryItemChanged)(HistoryItem*) = defaultNotifyHistoryItemChanged
 HistoryItem::HistoryItem()
     : m_lastVisitedTime(0)
     , m_lastVisitWasHTTPNonGet(false)
+    , m_pageScaleFactor(1)
     , m_lastVisitWasFailure(false)
     , m_isTargetItem(false)
     , m_visitCount(0)
@@ -73,6 +74,7 @@ HistoryItem::HistoryItem(const String& urlString, const String& title, double ti
     , m_title(title)
     , m_lastVisitedTime(time)
     , m_lastVisitWasHTTPNonGet(false)
+    , m_pageScaleFactor(1)
     , m_lastVisitWasFailure(false)
     , m_isTargetItem(false)
     , m_visitCount(0)
@@ -89,6 +91,7 @@ HistoryItem::HistoryItem(const String& urlString, const String& title, const Str
     , m_displayTitle(alternateTitle)
     , m_lastVisitedTime(time)
     , m_lastVisitWasHTTPNonGet(false)
+    , m_pageScaleFactor(1)
     , m_lastVisitWasFailure(false)
     , m_isTargetItem(false)
     , m_visitCount(0)
@@ -106,6 +109,7 @@ HistoryItem::HistoryItem(const KURL& url, const String& target, const String& pa
     , m_title(title)
     , m_lastVisitedTime(0)
     , m_lastVisitWasHTTPNonGet(false)
+    , m_pageScaleFactor(1)
     , m_lastVisitWasFailure(false)
     , m_isTargetItem(false)
     , m_visitCount(0)
@@ -137,6 +141,7 @@ inline HistoryItem::HistoryItem(const HistoryItem& item)
     , m_lastVisitedTime(item.m_lastVisitedTime)
     , m_lastVisitWasHTTPNonGet(item.m_lastVisitWasHTTPNonGet)
     , m_scrollPoint(item.m_scrollPoint)
+    , m_pageScaleFactor(item.m_pageScaleFactor)
     , m_lastVisitWasFailure(item.m_lastVisitWasFailure)
     , m_isTargetItem(item.m_isTargetItem)
     , m_visitCount(item.m_visitCount)
@@ -379,6 +384,16 @@ void HistoryItem::clearScrollPoint()
     m_scrollPoint.setY(0);
 }
 
+float HistoryItem::pageScaleFactor() const
+{
+    return m_pageScaleFactor;
+}
+
+void HistoryItem::setPageScaleFactor(float scaleFactor)
+{
+    m_pageScaleFactor = scaleFactor;
+}
+
 void HistoryItem::setDocumentState(const Vector<String>& state)
 {
     m_documentState = state;
@@ -667,6 +682,8 @@ void HistoryItem::encodeBackForwardTreeNode(Encoder& encoder) const
 
     encoder.encodeInt32(m_scrollPoint.x());
     encoder.encodeInt32(m_scrollPoint.y());
+    
+    encoder.encodeFloat(m_pageScaleFactor);
 
     encoder.encodeBool(m_stateObject);
     if (m_stateObject) {
@@ -776,6 +793,9 @@ resume:
     if (!decoder.decodeInt32(y))
         return 0;
     node->m_scrollPoint = IntPoint(x, y);
+    
+    if (!decoder.decodeFloat(node->m_pageScaleFactor))
+        return 0;
 
     bool hasStateObject;
     if (!decoder.decodeBool(hasStateObject))
diff --git a/Source/WebCore/history/HistoryItem.h b/Source/WebCore/history/HistoryItem.h
index 19b33ad..a4622c0 100644
--- a/Source/WebCore/history/HistoryItem.h
+++ b/Source/WebCore/history/HistoryItem.h
@@ -123,6 +123,10 @@ public:
     const IntPoint& scrollPoint() const;
     void setScrollPoint(const IntPoint&);
     void clearScrollPoint();
+    
+    float pageScaleFactor() const;
+    void setPageScaleFactor(float);
+    
     const Vector<String>& documentState() const;
     void setDocumentState(const Vector<String>&);
     void clearDocumentState();
@@ -245,6 +249,7 @@ private:
     bool m_lastVisitWasHTTPNonGet;
 
     IntPoint m_scrollPoint;
+    float m_pageScaleFactor;
     Vector<String> m_documentState;
     
     HistoryItemVector m_children;
diff --git a/Source/WebCore/loader/HistoryController.cpp b/Source/WebCore/loader/HistoryController.cpp
index 89ae802..dda4e56 100644
--- a/Source/WebCore/loader/HistoryController.cpp
+++ b/Source/WebCore/loader/HistoryController.cpp
@@ -80,6 +80,8 @@ void HistoryController::saveScrollPositionAndViewStateToItem(HistoryItem* item)
         return;
         
     item->setScrollPoint(m_frame->view()->scrollPosition());
+    item->setPageScaleFactor(m_frame->pageScaleFactor());
+    
     // FIXME: It would be great to work out a way to put this code in WebCore instead of calling through to the client.
     m_frame->loader()->client()->saveViewStateToItem(item);
 }
@@ -114,9 +116,12 @@ void HistoryController::restoreScrollPositionAndViewState()
     // through to the client. It's currently used only for the PDF view on Mac.
     m_frame->loader()->client()->restoreViewState();
     
-    if (FrameView* view = m_frame->view())
-        if (!view->wasScrolledByUser())
+    if (FrameView* view = m_frame->view()) {
+        if (!view->wasScrolledByUser()) {
             view->setScrollPosition(m_currentItem->scrollPoint());
+            m_frame->scalePage(m_currentItem->pageScaleFactor(), m_currentItem->scrollPoint());
+        }
+    }
 }
 
 void HistoryController::updateBackForwardListForFragmentScroll()

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list