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

beidson at apple.com beidson at apple.com
Sun Feb 20 22:52:20 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit f10ee4cbbef81c33f34b76430e466b6ad2c6ff16
Author: beidson at apple.com <beidson at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jan 12 20:12:40 2011 +0000

    <rdar://problem/8837307>, <rdar://problem/8637038>, and https://bugs.webkit.org/show_bug.cgi?id=52248
    Back/forward list recovery after a WebProcess crash is crashy itself.
    
    Reviewed by Sam Weinig.
    
    Add an isEmpty() accessor so the WebProcess knows if it is actually restoring a session:
    * Shared/SessionState.cpp:
    (WebKit::SessionState::isEmpty):
    * Shared/SessionState.h:
    
    Keep track of the highest used itemID so a relaunched WebProcess can later be informed:
    * Shared/WebBackForwardListItem.cpp:
    (WebKit::WebBackForwardListItem::WebBackForwardListItem):
    (WebKit::WebBackForwardListItem::highedUsedItemID):
    * Shared/WebBackForwardListItem.h:
    * WebProcess/WebPage/WebBackForwardListProxy.cpp:
    (WebKit::generateHistoryItemID):
    (WebKit::WebBackForwardListProxy::setHighestItemIDFromUIProcess):
    (WebKit::WebBackForwardListProxy::addItemFromUIProcess): Remove a now-invalid ASSERT, as the UIProcess
      now tells the WebProcess that a previous WebProcess created.
    * WebProcess/WebPage/WebBackForwardListProxy.h:
    
    Encode/decode data relevant to restoring a session on WebPage creation:
    * Shared/WebPageCreationParameters.cpp:
    (WebKit::WebPageCreationParameters::encode):
    (WebKit::WebPageCreationParameters::decode):
    * Shared/WebPageCreationParameters.h:
    
    If the WebProcess has crashed since the last load, change reload and the various back/forward APIs to
    update the current back/forward item (if necessary) then relaunch the process:
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::reattachToWebProcessWithItem):
    (WebKit::WebPageProxy::reattachToWebProcess): Renamed from "relaunch()" and made private.
    (WebKit::WebPageProxy::initializeWebPage):
    (WebKit::WebPageProxy::loadURL):
    (WebKit::WebPageProxy::loadURLRequest):
    (WebKit::WebPageProxy::reload):
    (WebKit::WebPageProxy::goForward):
    (WebKit::WebPageProxy::goBack):
    (WebKit::WebPageProxy::goToBackForwardItem):
    (WebKit::WebPageProxy::creationParameters):
    * UIProcess/WebPageProxy.h:
    
    Rename "RestoreSession" to "RestoreSessionAndNavigateToCurrentItem"
    * WebProcess/WebPage/WebPage.messages.in:
    * UIProcess/cf/WebPageProxyCF.cpp:
    (WebKit::WebPageProxy::restoreFromSessionStateData):
    
    Restore a session on page creation if the parameters include it:
    * WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::WebPage): Call restoreSession if session state exists.
    (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
    (WebKit::WebPage::restoreSession):
    * WebProcess/WebPage/WebPage.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75631 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index be8a21d..474f82b 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,60 @@
+2011-01-12  Brady Eidson  <beidson at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        <rdar://problem/8837307>, <rdar://problem/8637038>, and https://bugs.webkit.org/show_bug.cgi?id=52248
+        Back/forward list recovery after a WebProcess crash is crashy itself.
+
+        Add an isEmpty() accessor so the WebProcess knows if it is actually restoring a session:
+        * Shared/SessionState.cpp:
+        (WebKit::SessionState::isEmpty):
+        * Shared/SessionState.h:
+
+        Keep track of the highest used itemID so a relaunched WebProcess can later be informed:
+        * Shared/WebBackForwardListItem.cpp:
+        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
+        (WebKit::WebBackForwardListItem::highedUsedItemID):
+        * Shared/WebBackForwardListItem.h:
+        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+        (WebKit::generateHistoryItemID):
+        (WebKit::WebBackForwardListProxy::setHighestItemIDFromUIProcess):
+        (WebKit::WebBackForwardListProxy::addItemFromUIProcess): Remove a now-invalid ASSERT, as the UIProcess
+          now tells the WebProcess that a previous WebProcess created.
+        * WebProcess/WebPage/WebBackForwardListProxy.h:
+
+        Encode/decode data relevant to restoring a session on WebPage creation:
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode):
+        (WebKit::WebPageCreationParameters::decode):
+        * Shared/WebPageCreationParameters.h:
+
+        If the WebProcess has crashed since the last load, change reload and the various back/forward APIs to 
+        update the current back/forward item (if necessary) then relaunch the process:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::reattachToWebProcessWithItem):
+        (WebKit::WebPageProxy::reattachToWebProcess): Renamed from "relaunch()" and made private.
+        (WebKit::WebPageProxy::initializeWebPage):
+        (WebKit::WebPageProxy::loadURL):
+        (WebKit::WebPageProxy::loadURLRequest):
+        (WebKit::WebPageProxy::reload):
+        (WebKit::WebPageProxy::goForward):
+        (WebKit::WebPageProxy::goBack):
+        (WebKit::WebPageProxy::goToBackForwardItem):
+        (WebKit::WebPageProxy::creationParameters):
+        * UIProcess/WebPageProxy.h:
+
+        Rename "RestoreSession" to "RestoreSessionAndNavigateToCurrentItem"
+        * WebProcess/WebPage/WebPage.messages.in:
+        * UIProcess/cf/WebPageProxyCF.cpp:
+        (WebKit::WebPageProxy::restoreFromSessionStateData):
+
+        Restore a session on page creation if the parameters include it:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage): Call restoreSession if session state exists.
+        (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
+        (WebKit::WebPage::restoreSession):
+        * WebProcess/WebPage/WebPage.h:
+
 2011-01-12  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebKit2/Shared/SessionState.cpp b/WebKit2/Shared/SessionState.cpp
index 4bde599..109805f 100644
--- a/WebKit2/Shared/SessionState.cpp
+++ b/WebKit2/Shared/SessionState.cpp
@@ -55,6 +55,13 @@ SessionState::SessionState(const BackForwardListItemVector& list, uint32_t curre
     , m_currentIndex(currentIndex)
 {
 }
+
+bool SessionState::isEmpty() const
+{
+    // Because this might change later, callers should use this instead of
+    // calling list().isEmpty() directly themselves.
+    return m_list.isEmpty();
+}
     
 void SessionState::encode(CoreIPC::ArgumentEncoder* encoder) const
 {
diff --git a/WebKit2/Shared/SessionState.h b/WebKit2/Shared/SessionState.h
index 80b35cb..8aa1894 100644
--- a/WebKit2/Shared/SessionState.h
+++ b/WebKit2/Shared/SessionState.h
@@ -43,6 +43,8 @@ public:
     const BackForwardListItemVector& list() const { return m_list; }
     uint32_t currentIndex() const { return m_currentIndex; }
 
+    bool isEmpty() const;
+
     void encode(CoreIPC::ArgumentEncoder*) const;
     static bool decode(CoreIPC::ArgumentDecoder*, SessionState&);
 
diff --git a/WebKit2/Shared/WebBackForwardListItem.cpp b/WebKit2/Shared/WebBackForwardListItem.cpp
index 02e5ed5..07061e9 100644
--- a/WebKit2/Shared/WebBackForwardListItem.cpp
+++ b/WebKit2/Shared/WebBackForwardListItem.cpp
@@ -30,12 +30,17 @@
 
 namespace WebKit {
 
+static uint64_t highestUsedItemID = 0;
+
 WebBackForwardListItem::WebBackForwardListItem(const String& originalURL, const String& url, const String& title, const uint8_t* backForwardData, size_t backForwardDataSize, uint64_t itemID)
     : m_originalURL(originalURL)
     , m_url(url)
     , m_title(title)
     , m_itemID(itemID)
 {
+    if (m_itemID > highestUsedItemID)
+        highestUsedItemID = m_itemID;
+
     setBackForwardData(backForwardData, backForwardDataSize);
 }
 
@@ -43,6 +48,11 @@ WebBackForwardListItem::~WebBackForwardListItem()
 {
 }
 
+uint64_t WebBackForwardListItem::highedUsedItemID()
+{
+    return highestUsedItemID;
+}
+
 void WebBackForwardListItem::setBackForwardData(const uint8_t* data, size_t size)
 {
     m_backForwardData.reserveCapacity(size);
diff --git a/WebKit2/Shared/WebBackForwardListItem.h b/WebKit2/Shared/WebBackForwardListItem.h
index 9944a56..2f34f5f 100644
--- a/WebKit2/Shared/WebBackForwardListItem.h
+++ b/WebKit2/Shared/WebBackForwardListItem.h
@@ -65,6 +65,8 @@ public:
     void encode(CoreIPC::ArgumentEncoder&) const;
     static PassRefPtr<WebBackForwardListItem> decode(CoreIPC::ArgumentDecoder&);
 
+    static uint64_t highedUsedItemID();
+
 private:
     WebBackForwardListItem(const String& originalURL, const String& url, const String& title, const uint8_t* backForwardData, size_t backForwardDataSize, uint64_t itemID);
 
diff --git a/WebKit2/Shared/WebPageCreationParameters.cpp b/WebKit2/Shared/WebPageCreationParameters.cpp
index a360a4a..6df3d7a 100644
--- a/WebKit2/Shared/WebPageCreationParameters.cpp
+++ b/WebKit2/Shared/WebPageCreationParameters.cpp
@@ -43,6 +43,8 @@ void WebPageCreationParameters::encode(CoreIPC::ArgumentEncoder* encoder) const
     encoder->encode(drawsBackground);
     encoder->encode(drawsTransparentBackground);
     encoder->encode(userAgent);
+    encoder->encode(sessionState);
+    encoder->encode(highestUsedBackForwardItemID);
 
 #if PLATFORM(MAC)
     encoder->encode(isSmartInsertDeleteEnabled);
@@ -77,6 +79,11 @@ bool WebPageCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, WebPag
         return false;
     if (!decoder->decode(parameters.userAgent))
         return false;
+    if (!decoder->decode(parameters.sessionState))
+        return false;
+    if (!decoder->decode(parameters.highestUsedBackForwardItemID))
+        return false;
+
 #if PLATFORM(MAC)
     if (!decoder->decode(parameters.isSmartInsertDeleteEnabled))
         return false;
diff --git a/WebKit2/Shared/WebPageCreationParameters.h b/WebKit2/Shared/WebPageCreationParameters.h
index ac11224..801730f 100644
--- a/WebKit2/Shared/WebPageCreationParameters.h
+++ b/WebKit2/Shared/WebPageCreationParameters.h
@@ -27,6 +27,7 @@
 #define WebPageCreationParameters_h
 
 #include "DrawingAreaInfo.h"
+#include "SessionState.h"
 #include "WebPageGroupData.h"
 #include "WebPreferencesStore.h"
 #include <WebCore/IntSize.h>
@@ -59,6 +60,9 @@ struct WebPageCreationParameters {
 
     String userAgent;
 
+    SessionState sessionState;
+    uint64_t highestUsedBackForwardItemID;
+
 #if PLATFORM(MAC)
     bool isSmartInsertDeleteEnabled;
 #endif
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index 8b8fbe6..6a0273e 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -33,6 +33,7 @@
 #include "MessageID.h"
 #include "NativeWebKeyboardEvent.h"
 #include "PageClient.h"
+#include "SessionState.h"
 #include "StringPairVector.h"
 #include "TextChecker.h"
 #include "TextCheckerState.h"
@@ -203,7 +204,7 @@ void WebPageProxy::initializeContextMenuClient(const WKPageContextMenuClient* cl
     m_contextMenuClient.initialize(client);
 }
 
-void WebPageProxy::relaunch()
+void WebPageProxy::reattachToWebProcess()
 {
     m_isValid = true;
 
@@ -215,10 +216,23 @@ void WebPageProxy::relaunch()
     m_pageClient->didRelaunchProcess();
 }
 
+void WebPageProxy::reattachToWebProcessWithItem(WebBackForwardListItem* item)
+{
+    if (item && item != m_backForwardList->currentItem())
+        m_backForwardList->goToItem(item);
+    
+    reattachToWebProcess();
+    process()->send(Messages::WebPage::GoToBackForwardItem(item->itemID()), m_pageID);
+}
+
 void WebPageProxy::initializeWebPage()
 {
     ASSERT(isValid());
 
+    BackForwardListItemVector items = m_backForwardList->entries();
+    for (size_t i = 0; i < items.size(); ++i)
+        process()->registerNewWebBackForwardListItem(items[i].get());
+
     m_drawingArea = m_pageClient->createDrawingAreaProxy();
     ASSERT(m_drawingArea);
 
@@ -296,7 +310,7 @@ static void initializeSandboxExtensionHandle(const KURL& url, SandboxExtension::
 void WebPageProxy::loadURL(const String& url)
 {
     if (!isValid())
-        relaunch();
+        reattachToWebProcess();
 
     SandboxExtension::Handle sandboxExtensionHandle;
     initializeSandboxExtensionHandle(KURL(KURL(), url), sandboxExtensionHandle);
@@ -306,7 +320,7 @@ void WebPageProxy::loadURL(const String& url)
 void WebPageProxy::loadURLRequest(WebURLRequest* urlRequest)
 {
     if (!isValid())
-        relaunch();
+        reattachToWebProcess();
 
     SandboxExtension::Handle sandboxExtensionHandle;
     initializeSandboxExtensionHandle(urlRequest->resourceRequest().url(), sandboxExtensionHandle);
@@ -348,15 +362,20 @@ void WebPageProxy::stopLoading()
 
 void WebPageProxy::reload(bool reloadFromOrigin)
 {
-    if (!isValid())
+    if (!isValid()) {
+        reattachToWebProcessWithItem(m_backForwardList->currentItem());
         return;
+    }
+
     process()->send(Messages::WebPage::Reload(reloadFromOrigin), m_pageID);
 }
 
 void WebPageProxy::goForward()
 {
-    if (!isValid())
+    if (!isValid()) {
+        reattachToWebProcessWithItem(m_backForwardList->forwardItem());
         return;
+    }
 
     if (!canGoForward())
         return;
@@ -371,8 +390,10 @@ bool WebPageProxy::canGoForward() const
 
 void WebPageProxy::goBack()
 {
-    if (!isValid())
+    if (!isValid()) {
+        reattachToWebProcessWithItem(m_backForwardList->backItem());
         return;
+    }
 
     if (!canGoBack())
         return;
@@ -387,8 +408,10 @@ bool WebPageProxy::canGoBack() const
 
 void WebPageProxy::goToBackForwardItem(WebBackForwardListItem* item)
 {
-    if (!isValid())
+    if (!isValid()) {
+        reattachToWebProcessWithItem(item);
         return;
+    }
 
     process()->send(Messages::WebPage::GoToBackForwardItem(item->itemID()), m_pageID);
 }
@@ -2160,6 +2183,8 @@ WebPageCreationParameters WebPageProxy::creationParameters() const
     parameters.drawsBackground = m_drawsBackground;
     parameters.drawsTransparentBackground = m_drawsTransparentBackground;
     parameters.userAgent = userAgent();
+    parameters.sessionState = SessionState(m_backForwardList->entries(), m_backForwardList->currentIndex());
+    parameters.highestUsedBackForwardItemID = WebBackForwardListItem::highedUsedItemID();
 
 #if PLATFORM(MAC)
     parameters.isSmartInsertDeleteEnabled = m_isSmartInsertDeleteEnabled;
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 7330bcc..ab185a9 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -132,7 +132,6 @@ public:
     void initializePolicyClient(const WKPagePolicyClient*);
     void initializeResourceLoadClient(const WKPageResourceLoadClient*);
     void initializeUIClient(const WKPageUIClient*);
-    void relaunch();
 
     void initializeWebPage();
 
@@ -403,6 +402,9 @@ private:
     void exceededDatabaseQuota(uint64_t frameID, const String& originIdentifier, const String& databaseName, const String& displayName, uint64_t currentQuota, uint64_t currentUsage, uint64_t expectedUsage, uint64_t& newQuota);
     void requestGeolocationPermissionForFrame(uint64_t geolocationID, uint64_t frameID, String originIdentifier);
 
+    void reattachToWebProcess();
+    void reattachToWebProcessWithItem(WebBackForwardListItem*);
+
 #if ENABLE(TILED_BACKING_STORE)
     void pageDidRequestScroll(const WebCore::IntSize&);
 #endif
diff --git a/WebKit2/UIProcess/cf/WebPageProxyCF.cpp b/WebKit2/UIProcess/cf/WebPageProxyCF.cpp
index 424c56e..c1b7971 100644
--- a/WebKit2/UIProcess/cf/WebPageProxyCF.cpp
+++ b/WebKit2/UIProcess/cf/WebPageProxyCF.cpp
@@ -132,7 +132,7 @@ void WebPageProxy::restoreFromSessionStateData(WebData* webData)
     for (size_t i = 0; i < size; ++i)
         process()->registerNewWebBackForwardListItem(entries[i].get());
 
-    process()->send(Messages::WebPage::RestoreSession(SessionState(m_backForwardList->entries(), m_backForwardList->currentIndex())), m_pageID);
+    process()->send(Messages::WebPage::RestoreSessionAndNavigateToCurrentItem(SessionState(m_backForwardList->entries(), m_backForwardList->currentIndex())), m_pageID);
 }
 
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
index d04c84a..21f4fba 100644
--- a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
+++ b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
@@ -60,16 +60,28 @@ static HistoryItemToIDMap& historyItemToIDMap()
     return map;
 } 
 
+static uint64_t uniqueHistoryItemID = 1;
+
 static uint64_t generateHistoryItemID()
 {
     // These IDs exist in the WebProcess for items created by the WebProcess.
     // The IDs generated here need to never collide with the IDs created in WebBackForwardList in the UIProcess.
     // We accomplish this by starting from 3, and only ever using odd ids.
-    static uint64_t uniqueHistoryItemID = 1;
     uniqueHistoryItemID += 2;
     return uniqueHistoryItemID;
 }
 
+void WebBackForwardListProxy::setHighestItemIDFromUIProcess(uint64_t itemID)
+{
+    if (itemID <= uniqueHistoryItemID)
+        return;
+    
+     if (itemID % 2)
+         uniqueHistoryItemID = itemID;
+     else
+         uniqueHistoryItemID = itemID + 1;
+}
+
 static void updateBackForwardItem(uint64_t itemID, HistoryItem* item)
 {
     EncoderAdapter encoder;
@@ -82,9 +94,6 @@ static void updateBackForwardItem(uint64_t itemID, HistoryItem* item)
 void WebBackForwardListProxy::addItemFromUIProcess(uint64_t itemID, PassRefPtr<WebCore::HistoryItem> prpItem)
 {
     RefPtr<HistoryItem> item = prpItem;
-
-    // UIProcess itemIDs should be even.
-    ASSERT(!(itemID % 2));
     
     // This item/itemID pair should not already exist in our maps.
     ASSERT(!historyItemToIDMap().contains(item.get()));
diff --git a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.h b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.h
index 25c2adb..be28739 100644
--- a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.h
+++ b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.h
@@ -41,6 +41,7 @@ public:
     static void removeItem(uint64_t itemID);
 
     static void addItemFromUIProcess(uint64_t itemID, PassRefPtr<WebCore::HistoryItem>);
+    static void setHighestItemIDFromUIProcess(uint64_t itemID);
     
     void clear();
 
diff --git a/WebKit2/WebProcess/WebPage/WebPage.cpp b/WebKit2/WebProcess/WebPage/WebPage.cpp
index 9301d0a..ac63be5 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -188,6 +188,11 @@ WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters)
 
     m_userAgent = parameters.userAgent;
 
+    WebBackForwardListProxy::setHighestItemIDFromUIProcess(parameters.highestUsedBackForwardItemID);
+    
+    if (!parameters.sessionState.isEmpty())
+        restoreSession(parameters.sessionState);
+
 #ifndef NDEBUG
     webPageCounter.increment();
 #endif
@@ -866,11 +871,11 @@ void WebPage::executeEditCommand(const String& commandName)
     executeEditingCommand(commandName, String());
 }
 
-void WebPage::restoreSession(const SessionState& sessionState)
+uint64_t WebPage::restoreSession(const SessionState& sessionState)
 {
     const BackForwardListItemVector& list = sessionState.list();
     size_t size = list.size();
-    RefPtr<HistoryItem> currentItem;
+    uint64_t currentItemID = 0;
     for (size_t i = 0; i < size; ++i) {
         WebBackForwardListItem* webItem = list[i].get();
         DecoderAdapter decoder(webItem->backForwardData().data(), webItem->backForwardData().size());
@@ -878,17 +883,22 @@ void WebPage::restoreSession(const SessionState& sessionState)
         RefPtr<HistoryItem> item = HistoryItem::decodeBackForwardTree(webItem->url(), webItem->title(), webItem->originalURL(), decoder);
         if (!item) {
             LOG_ERROR("Failed to decode a HistoryItem from session state data.");
-            return;
+            return 0;
         }
         
         if (i == sessionState.currentIndex())
-            currentItem = item;
+            currentItemID = webItem->itemID();
         
         WebBackForwardListProxy::addItemFromUIProcess(list[i]->itemID(), item.release());
     }    
-    ASSERT(currentItem);
+    ASSERT(currentItemID);
+    return currentItemID;
+}
 
-    m_page->goToItem(currentItem.get(), FrameLoadTypeIndexedBackForward);
+void WebPage::restoreSessionAndNavigateToCurrentItem(const SessionState& sessionState)
+{
+    if (uint64_t currentItemID = restoreSession(sessionState))
+        goToBackForwardItem(currentItemID);
 }
 
 #if ENABLE(TOUCH_EVENTS)
diff --git a/WebKit2/WebProcess/WebPage/WebPage.h b/WebKit2/WebProcess/WebPage/WebPage.h
index ea319bb..a319115 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.h
+++ b/WebKit2/WebProcess/WebPage/WebPage.h
@@ -342,7 +342,8 @@ private:
     void touchEvent(const WebTouchEvent&);
 #endif
 
-    void restoreSession(const SessionState&);
+    uint64_t restoreSession(const SessionState&);
+    void restoreSessionAndNavigateToCurrentItem(const SessionState&);
 
     void didRemoveBackForwardItem(uint64_t);
 
diff --git a/WebKit2/WebProcess/WebPage/WebPage.messages.in b/WebKit2/WebProcess/WebPage/WebPage.messages.in
index 25b8cc4..68f4c5d 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.messages.in
+++ b/WebKit2/WebProcess/WebPage/WebPage.messages.in
@@ -47,7 +47,7 @@ messages -> WebPage {
     Reload(bool reloadFromOrigin)
     StopLoading()
     
-    RestoreSession(WebKit::SessionState state)
+    RestoreSessionAndNavigateToCurrentItem(WebKit::SessionState state)
 
     DidRemoveBackForwardItem(uint64_t backForwardItemID)
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list