[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
weinig at apple.com
weinig at apple.com
Wed Dec 22 11:12:02 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 2d3f2c6614db5351d992b586690acdc4b9a5e7b4
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jul 15 00:19:27 2010 +0000
Make Back/Forward work.
Reviewed by John Sullivan.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::goForward): Pass the item ID to avoid roundtrip.
(WebKit::WebPageProxy::goBack): Ditto.
(WebKit::WebPageProxy::didReceiveMessage): Implement WebPageProxyMessage::BackForwardGoToItem.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::goForward): Use m_page->goToItem with the correct type instead of the Page shortcut.
(WebKit::WebPage::goBack): Ditto.
(WebKit::WebPage::didReceiveMessage):
* WebProcess/WebPage/WebPage.h:
Remove unused m_canGoBack and m_canGoForward.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 5a6b9ed..2ff0c64 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,21 @@
+2010-07-14 Sam Weinig <sam at webkit.org>
+
+ Reviewed by John Sullivan.
+
+ Make Back/Forward work.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::goForward): Pass the item ID to avoid roundtrip.
+ (WebKit::WebPageProxy::goBack): Ditto.
+ (WebKit::WebPageProxy::didReceiveMessage): Implement WebPageProxyMessage::BackForwardGoToItem.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ (WebKit::WebPage::goForward): Use m_page->goToItem with the correct type instead of the Page shortcut.
+ (WebKit::WebPage::goBack): Ditto.
+ (WebKit::WebPage::didReceiveMessage):
+ * WebProcess/WebPage/WebPage.h:
+ Remove unused m_canGoBack and m_canGoForward.
+
2010-07-14 Anders Carlsson <andersca at apple.com>
Reviewed by Darin Adler.
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index e1204dc..4d4b2bd 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -231,7 +231,11 @@ void WebPageProxy::goForward()
{
if (!isValid())
return;
- process()->send(WebPageMessage::GoForward, m_pageID, CoreIPC::In());
+
+ if (!canGoForward())
+ return;
+
+ process()->send(WebPageMessage::GoForward, m_pageID, CoreIPC::In(m_backForwardList->forwardItem()->itemID()));
}
bool WebPageProxy::canGoForward() const
@@ -243,7 +247,11 @@ void WebPageProxy::goBack()
{
if (!isValid())
return;
- process()->send(WebPageMessage::GoBack, m_pageID, CoreIPC::In());
+
+ if (!canGoBack())
+ return;
+
+ process()->send(WebPageMessage::GoBack, m_pageID, CoreIPC::In(m_backForwardList->backItem()->itemID()));
}
bool WebPageProxy::canGoBack() const
@@ -255,6 +263,7 @@ void WebPageProxy::goToBackForwardItem(WebBackForwardListItem* item)
{
if (!isValid())
return;
+
process()->send(WebPageMessage::GoToBackForwardItem, m_pageID, CoreIPC::In(item->itemID()));
}
@@ -588,6 +597,13 @@ void WebPageProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::M
addItemToBackForwardList(process()->webBackForwardItem(itemID));
break;
}
+ case WebPageProxyMessage::BackForwardGoToItem: {
+ uint64_t itemID;
+ if (!arguments.decode(CoreIPC::Out(itemID)))
+ return;
+ goToItemInBackForwardList(process()->webBackForwardItem(itemID));
+ break;
+ }
default:
ASSERT_NOT_REACHED();
break;
diff --git a/WebKit2/WebProcess/WebPage/WebPage.cpp b/WebKit2/WebProcess/WebPage/WebPage.cpp
index 380df50..0ace2a2 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -50,6 +50,7 @@
#include <WebCore/Frame.h>
#include <WebCore/FrameLoaderTypes.h>
#include <WebCore/FrameView.h>
+#include <WebCore/HistoryItem.h>
#include <WebCore/KeyboardEvent.h>
#include <WebCore/Page.h>
#include <WebCore/PlatformKeyboardEvent.h>
@@ -81,8 +82,6 @@ WebPage::WebPage(uint64_t pageID, const IntSize& viewSize, const WebPreferencesS
: m_page(new Page(new WebChromeClient(this), new WebContextMenuClient(this), new WebEditorClient(this), new WebDragClient(this), new WebInspectorClient(this), 0, 0, 0, new WebBackForwardControllerClient(this)))
, m_viewSize(viewSize)
, m_drawingArea(DrawingArea::create(drawingAreaType, this))
- , m_canGoBack(false)
- , m_canGoForward(false)
, m_pageID(pageID)
{
ASSERT(m_pageID);
@@ -188,14 +187,16 @@ void WebPage::reload(bool reloadFromOrigin)
m_mainFrame->coreFrame()->loader()->reload(reloadFromOrigin);
}
-void WebPage::goForward()
+void WebPage::goForward(uint64_t backForwardItemID)
{
- m_page->goForward();
+ HistoryItem* item = WebBackForwardListProxy::itemForID(backForwardItemID);
+ m_page->goToItem(item, FrameLoadTypeForward);
}
-void WebPage::goBack()
+void WebPage::goBack(uint64_t backForwardItemID)
{
- m_page->goBack();
+ HistoryItem* item = WebBackForwardListProxy::itemForID(backForwardItemID);
+ m_page->goToItem(item, FrameLoadTypeBack);
}
void WebPage::goToBackForwardItem(uint64_t backForwardItemID)
@@ -429,20 +430,29 @@ void WebPage::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Messag
case WebPageMessage::StopLoading:
stopLoading();
break;
- case WebPageMessage::Reload:
+ case WebPageMessage::Reload: {
bool reloadFromOrigin;
if (!arguments.decode(CoreIPC::Out(reloadFromOrigin)))
return;
reload(reloadFromOrigin);
break;
- case WebPageMessage::GoForward:
- goForward();
+ }
+ case WebPageMessage::GoForward: {
+ uint64_t backForwardItemID;
+ if (!arguments.decode(CoreIPC::Out(backForwardItemID)))
+ return;
+ goForward(backForwardItemID);
break;
- case WebPageMessage::GoBack:
- goBack();
+ }
+ case WebPageMessage::GoBack: {
+ uint64_t backForwardItemID;
+ if (!arguments.decode(CoreIPC::Out(backForwardItemID)))
+ return;
+ goBack(backForwardItemID);
break;
- case WebPageMessage::GoToBackForwardItem: {
+ }
+ case WebPageMessage::GoToBackForwardItem: {
uint64_t backForwardItemID;
if (!arguments.decode(CoreIPC::Out(backForwardItemID)))
return;
diff --git a/WebKit2/WebProcess/WebPage/WebPage.h b/WebKit2/WebProcess/WebPage/WebPage.h
index dce0f46..b37e5d5 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.h
+++ b/WebKit2/WebProcess/WebPage/WebPage.h
@@ -111,8 +111,8 @@ private:
void loadURL(const WebCore::String&);
void stopLoading();
void reload(bool reloadFromOrigin);
- void goForward();
- void goBack();
+ void goForward(uint64_t);
+ void goBack(uint64_t);
void goToBackForwardItem(uint64_t);
void setActive(bool);
void setFocused(bool);
@@ -132,9 +132,6 @@ private:
WebCore::IntSize m_viewSize;
DrawingArea* m_drawingArea;
- bool m_canGoBack;
- bool m_canGoForward;
-
InjectedBundlePageLoaderClient m_loaderClient;
InjectedBundlePageUIClient m_uiClient;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list