[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