[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