[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e

beidson at apple.com beidson at apple.com
Fri Jan 21 14:55:59 UTC 2011


The following commit has been merged in the debian/experimental branch:
commit 5237908694304b407fb1c916ec988d87146dd646
Author: beidson at apple.com <beidson at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 4 23:57:08 2011 +0000

    Get rid of an extra copy in the back/forward item IPC message by using a DataReference.
    
    Reviewed by Darin Adler.
    
    * UIProcess/WebBackForwardListItem.cpp:
    (WebKit::WebBackForwardListItem::WebBackForwardListItem):
    (WebKit::WebBackForwardListItem::setBackForwardData):
    * UIProcess/WebBackForwardListItem.h:
    
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::dataCallback): Get rid of no-longer-needed check for size 0.
    
    * UIProcess/WebProcessProxy.cpp:
    (WebKit::WebProcessProxy::addBackForwardItem):
    * UIProcess/WebProcessProxy.h:
    
    * UIProcess/WebProcessProxy.messages.in:
    
    * WebProcess/WebPage/EncoderAdapter.cpp:
    (WebKit::EncoderAdapter::data):
    * WebProcess/WebPage/EncoderAdapter.h:
    
    * WebProcess/WebPage/WebBackForwardListProxy.cpp:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75022 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 54e3fbf..ebc63ed 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -2,6 +2,32 @@
 
         Reviewed by Darin Adler.
 
+        Get rid of an extra copy in the back/forward item IPC message by using a DataReference.
+
+        * UIProcess/WebBackForwardListItem.cpp:
+        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
+        (WebKit::WebBackForwardListItem::setBackForwardData):
+        * UIProcess/WebBackForwardListItem.h:
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::dataCallback): Get rid of no-longer-needed check for size 0.
+
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::addBackForwardItem):
+        * UIProcess/WebProcessProxy.h:
+
+        * UIProcess/WebProcessProxy.messages.in:
+
+        * WebProcess/WebPage/EncoderAdapter.cpp:
+        (WebKit::EncoderAdapter::data):
+        * WebProcess/WebPage/EncoderAdapter.h:
+
+        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+
+2011-01-04  Brady Eidson  <beidson at apple.com>
+
+        Reviewed by Darin Adler.
+
         Store more data per history entry in the session state blob.
 
         * UIProcess/WebBackForwardListItem.cpp:
diff --git a/WebKit2/UIProcess/WebBackForwardListItem.cpp b/WebKit2/UIProcess/WebBackForwardListItem.cpp
index 423a544..1d046ad 100644
--- a/WebKit2/UIProcess/WebBackForwardListItem.cpp
+++ b/WebKit2/UIProcess/WebBackForwardListItem.cpp
@@ -33,12 +33,17 @@ WebBackForwardListItem::WebBackForwardListItem(const String& originalURL, const
     , m_title(title)
     , m_itemID(itemID)
 {
-    m_backForwardData.reserveCapacity(backForwardDataSize);
-    m_backForwardData.append(backForwardData, backForwardDataSize);
+    setBackForwardData(backForwardData, backForwardDataSize);
 }
 
 WebBackForwardListItem::~WebBackForwardListItem()
 {
 }
 
+void WebBackForwardListItem::setBackForwardData(const uint8_t* data, size_t size)
+{
+    m_backForwardData.reserveCapacity(size);
+    m_backForwardData.append(data, size);
+}
+
 } // namespace WebKit
diff --git a/WebKit2/UIProcess/WebBackForwardListItem.h b/WebKit2/UIProcess/WebBackForwardListItem.h
index 72f126c..4962227 100644
--- a/WebKit2/UIProcess/WebBackForwardListItem.h
+++ b/WebKit2/UIProcess/WebBackForwardListItem.h
@@ -56,7 +56,7 @@ public:
     void setTitle(const String& title) { m_title = title; }
     const String& title() const { return m_title; }
     
-    void setBackForwardData(const Vector<uint8_t>& backForwardData) { m_backForwardData = backForwardData; }
+    void setBackForwardData(const uint8_t* buffer, size_t size);
     const Vector<uint8_t>& backForwardData() const { return m_backForwardData; }
 
 private:
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index c005ec3..fee8129 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -1836,11 +1836,7 @@ void WebPageProxy::dataCallback(const CoreIPC::DataReference& dataReference, uin
         return;
     }
 
-    RefPtr<WebData> data;
-    if (size_t size = dataReference.size())
-        data = WebData::create(dataReference.data(), size);
-
-    callback->performCallbackWithReturnValue(data.get());
+    callback->performCallbackWithReturnValue(WebData::create(dataReference.data(), dataReference.size()).get());
 }
 
 void WebPageProxy::stringCallback(const String& resultString, uint64_t callbackID)
diff --git a/WebKit2/UIProcess/WebProcessProxy.cpp b/WebKit2/UIProcess/WebProcessProxy.cpp
index 11f2529..ab8fa78 100644
--- a/WebKit2/UIProcess/WebProcessProxy.cpp
+++ b/WebKit2/UIProcess/WebProcessProxy.cpp
@@ -25,6 +25,7 @@
 
 #include "WebProcessProxy.h"
 
+#include "DataReference.h"
 #include "PluginInfoStore.h"
 #include "PluginProcessManager.h"
 #include "TextChecker.h"
@@ -183,7 +184,7 @@ WebBackForwardListItem* WebProcessProxy::webBackForwardItem(uint64_t itemID) con
     return m_backForwardListItemMap.get(itemID).get();
 }
 
-void WebProcessProxy::addBackForwardItem(uint64_t itemID, const String& originalURL, const String& url, const String& title, const Vector<uint8_t>& backForwardData)
+void WebProcessProxy::addBackForwardItem(uint64_t itemID, const String& originalURL, const String& url, const String& title, const CoreIPC::DataReference& backForwardData)
 {
     std::pair<WebBackForwardListItemMap::iterator, bool> result = m_backForwardListItemMap.add(itemID, 0);
     if (result.second) {
@@ -196,7 +197,7 @@ void WebProcessProxy::addBackForwardItem(uint64_t itemID, const String& original
     result.first->second->setOriginalURL(originalURL);
     result.first->second->setURL(url);
     result.first->second->setTitle(title);
-    result.first->second->setBackForwardData(backForwardData);
+    result.first->second->setBackForwardData(backForwardData.data(), backForwardData.size());
 }
 
 #if ENABLE(PLUGIN_PROCESS)
diff --git a/WebKit2/UIProcess/WebProcessProxy.h b/WebKit2/UIProcess/WebProcessProxy.h
index 3cf6c3b..133f7e9 100644
--- a/WebKit2/UIProcess/WebProcessProxy.h
+++ b/WebKit2/UIProcess/WebProcessProxy.h
@@ -111,7 +111,7 @@ private:
 
     bool sendMessage(CoreIPC::MessageID, PassOwnPtr<CoreIPC::ArgumentEncoder>);
 
-    void addBackForwardItem(uint64_t itemID, const String& originalURLString, const String& urlString, const String& title, const Vector<uint8_t>& encodedData);
+    void addBackForwardItem(uint64_t itemID, const String& originalURLString, const String& urlString, const String& title, const CoreIPC::DataReference& backForwardData);
 
 #if ENABLE(PLUGIN_PROCESS)
     void getPluginProcessConnection(const String& pluginPath, CoreIPC::ArgumentEncoder* reply);
diff --git a/WebKit2/UIProcess/WebProcessProxy.messages.in b/WebKit2/UIProcess/WebProcessProxy.messages.in
index e3eceea..86bc9e2 100644
--- a/WebKit2/UIProcess/WebProcessProxy.messages.in
+++ b/WebKit2/UIProcess/WebProcessProxy.messages.in
@@ -22,7 +22,7 @@
 
 messages -> WebProcessProxy {
 
-    AddBackForwardItem(uint64_t itemID, WTF::String originalURL, WTF::String url, WTF::String title, WTF::Vector<uint8_t> backForwardData)
+    AddBackForwardItem(uint64_t itemID, WTF::String originalURL, WTF::String url, WTF::String title, CoreIPC::DataReference backForwardData)
     DidDestroyFrame(uint64_t frameID) 
 
 }
diff --git a/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp b/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp
index 9ccca6a..00edcce 100644
--- a/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp
+++ b/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp
@@ -25,6 +25,7 @@
 
 #include "EncoderAdapter.h"
 
+#include "DataReference.h"
 #include "WebCoreArgumentCoders.h"
 
 namespace WebKit {
@@ -34,13 +35,9 @@ EncoderAdapter::EncoderAdapter()
 {
 }
 
-Vector<uint8_t> EncoderAdapter::data() const
+CoreIPC::DataReference EncoderAdapter::data() const
 {
-    Vector<uint8_t> vector;
-    size_t size = m_encoder->bufferSize();
-    vector.reserveCapacity(size);
-    vector.append(m_encoder->buffer(), size);
-    return vector;
+    return CoreIPC::DataReference(m_encoder->buffer(), m_encoder->bufferSize());
 }
 
 void EncoderAdapter::encodeBytes(const uint8_t* bytes, size_t size)
diff --git a/WebKit2/WebProcess/WebPage/EncoderAdapter.h b/WebKit2/WebProcess/WebPage/EncoderAdapter.h
index ba4914a..ae88a98 100644
--- a/WebKit2/WebProcess/WebPage/EncoderAdapter.h
+++ b/WebKit2/WebProcess/WebPage/EncoderAdapter.h
@@ -28,10 +28,11 @@
 
 #include <wtf/Encoder.h>
 #include <wtf/Forward.h>
-#include <wtf/Vector.h>
+#include <wtf/OwnPtr.h>
 
 namespace CoreIPC {
     class ArgumentEncoder;
+    class DataReference;
 }
 
 namespace WebKit {
@@ -40,7 +41,7 @@ class EncoderAdapter : public Encoder {
 public:
     EncoderAdapter();
 
-    Vector<uint8_t> data() const;
+    CoreIPC::DataReference data() const;
 
 private:
     virtual void encodeBytes(const uint8_t*, size_t);
diff --git a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
index 2dcd687..8257111 100644
--- a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
+++ b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
@@ -25,6 +25,7 @@
 
 #include "WebBackForwardListProxy.h"
 
+#include "DataReference.h"
 #include "EncoderAdapter.h"
 #include "WebCoreArgumentCoders.h"
 #include "WebPage.h"

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list