[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