Title: [133199] trunk/Source
Revision
133199
Author
commit-qu...@webkit.org
Date
2012-11-01 11:37:23 -0700 (Thu, 01 Nov 2012)

Log Message

[BlackBerry] Web page view state should be preserved for pages loaded from page cache
https://bugs.webkit.org/show_bug.cgi?id=100694
Internal PR: 220488

Internally reviewed by Lianghui Chen, Joe Mason
Patch by Michael Matovsky <mmatov...@rim.com> on 2012-11-01
Reviewed by Rob Buis.

The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
This requires web page view state to be saved in and restored from the corresponding page cache history item.

Source/WebCore:

No new tests for platform specific internal change.

* history/blackberry/HistoryItemViewState.h:
(HistoryItemViewState):

Source/WebKit/blackberry:

* Api/WebPageClient.h:
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::saveViewStateToItem):
(WebCore::FrameLoaderClientBlackBerry::restoreViewState):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (133198 => 133199)


--- trunk/Source/WebCore/ChangeLog	2012-11-01 18:36:32 UTC (rev 133198)
+++ trunk/Source/WebCore/ChangeLog	2012-11-01 18:37:23 UTC (rev 133199)
@@ -1,3 +1,20 @@
+2012-11-01  Michael Matovsky  <mmatov...@rim.com>
+
+        [BlackBerry] Web page view state should be preserved for pages loaded from page cache
+        https://bugs.webkit.org/show_bug.cgi?id=100694
+        Internal PR: 220488
+
+        Internally reviewed by Lianghui Chen, Joe Mason
+        Reviewed by Rob Buis.
+
+        The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
+        This requires web page view state to be saved in and restored from the corresponding page cache history item.
+
+        No new tests for platform specific internal change.
+
+        * history/blackberry/HistoryItemViewState.h:
+        (HistoryItemViewState):
+
 2012-11-01  Alec Flett  <alecfl...@chromium.org>
 
         IndexedDB: add methods to support id-based backend APIs

Modified: trunk/Source/WebCore/history/blackberry/HistoryItemViewState.h (133198 => 133199)


--- trunk/Source/WebCore/history/blackberry/HistoryItemViewState.h	2012-11-01 18:36:32 UTC (rev 133198)
+++ trunk/Source/WebCore/history/blackberry/HistoryItemViewState.h	2012-11-01 18:37:23 UTC (rev 133199)
@@ -19,6 +19,7 @@
 #ifndef HistoryItemViewState_h
 #define HistoryItemViewState_h
 
+#include <BlackBerryPlatformString.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
@@ -46,6 +47,7 @@
     bool shouldReflowBlock;
     bool shouldSaveViewState;
     String networkToken;
+    BlackBerry::Platform::String webPageClientState;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebKit/blackberry/Api/WebPageClient.h (133198 => 133199)


--- trunk/Source/WebKit/blackberry/Api/WebPageClient.h	2012-11-01 18:36:32 UTC (rev 133198)
+++ trunk/Source/WebKit/blackberry/Api/WebPageClient.h	2012-11-01 18:37:23 UTC (rev 133199)
@@ -113,6 +113,9 @@
     virtual void addMessageToConsole(const unsigned short* message, unsigned messageLength, const unsigned short* source, unsigned sourceLength, unsigned lineNumber) = 0;
     virtual int showAlertDialog(AlertType) = 0;
 
+    virtual BlackBerry::Platform::String serializePageCacheState() const = 0;
+    virtual void deserializePageCacheState(const BlackBerry::Platform::String& state) = 0;
+
     virtual void runJavaScriptAlert(const unsigned short* message, unsigned messageLength, const char* origin, unsigned originLength) = 0;
     virtual bool runJavaScriptConfirm(const unsigned short* message, unsigned messageLength, const char* origin, unsigned originLength) = 0;
     virtual bool runJavaScriptPrompt(const unsigned short* message, unsigned messageLength, const unsigned short* defaultValue, unsigned defaultValueLength, const char* origin, unsigned originLength, BlackBerry::Platform::String& result) = 0;

Modified: trunk/Source/WebKit/blackberry/ChangeLog (133198 => 133199)


--- trunk/Source/WebKit/blackberry/ChangeLog	2012-11-01 18:36:32 UTC (rev 133198)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2012-11-01 18:37:23 UTC (rev 133199)
@@ -1,3 +1,20 @@
+2012-11-01  Michael Matovsky  <mmatov...@rim.com>
+
+        [BlackBerry] Web page view state should be preserved for pages loaded from page cache
+        https://bugs.webkit.org/show_bug.cgi?id=100694
+        Internal PR: 220488
+
+        Internally reviewed by Lianghui Chen, Joe Mason
+        Reviewed by Rob Buis.
+
+        The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
+        This requires web page view state to be saved in and restored from the corresponding page cache history item.
+
+        * Api/WebPageClient.h:
+        * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
+        (WebCore::FrameLoaderClientBlackBerry::saveViewStateToItem):
+        (WebCore::FrameLoaderClientBlackBerry::restoreViewState):
+
 2012-11-01  Leo Yang  <leoy...@rim.com>
 
         [BlackBerry] Use clipped background rect in backing store

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp (133198 => 133199)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp	2012-11-01 18:36:32 UTC (rev 133198)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp	2012-11-01 18:37:23 UTC (rev 133199)
@@ -1043,6 +1043,7 @@
         viewState.minimumScale = m_webPagePrivate->m_minimumScale;
         viewState.maximumScale = m_webPagePrivate->m_maximumScale;
         viewState.isUserScalable = m_webPagePrivate->m_userScalable;
+        viewState.webPageClientState = m_webPagePrivate->m_client->serializePageCacheState();
     }
 }
 
@@ -1060,6 +1061,9 @@
     HistoryItemViewState& viewState = currentItem->viewState();
     if (!viewState.shouldSaveViewState)
         return;
+
+    m_webPagePrivate->m_client->deserializePageCacheState(viewState.webPageClientState);
+
     // WebPagePrivate is messing up FrameView::wasScrolledByUser() by sending
     // scroll events that look like they were user generated all the time.
     //
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to