[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

darin at chromium.org darin at chromium.org
Thu Apr 8 02:19:51 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 36424005166291da55df4c5c9372e26588fd78de
Author: darin at chromium.org <darin at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Mar 12 00:40:08 2010 +0000

    2010-03-10  Darin Fisher  <darin at chromium.org>
    
            Reviewed by Jeremy Orlow.
    
            Use WebPrivatePtr for WebNode
            https://bugs.webkit.org/show_bug.cgi?id=36005
    
            * public/WebElement.h:
            * public/WebFormElement.h:
            * public/WebInputElement.h:
            * public/WebLabelElement.h:
            * public/WebNode.h:
            (WebKit::WebNode::WebNode):
            (WebKit::WebNode::isNull):
            (WebKit::WebNode::unwrap):
            (WebKit::WebNode::constUnwrap):
            * public/WebPrivatePtr.h:
            (WebKit::WebPrivatePtr::assign):
            * src/WebDocument.cpp:
            (WebKit::WebDocument::WebDocument):
            (WebKit::WebDocument::operator=):
            (WebKit::WebDocument::operator PassRefPtr<Document>):
            * src/WebElement.cpp:
            (WebKit::WebElement::hasTagName):
            (WebKit::WebElement::WebElement):
            (WebKit::WebElement::operator=):
            (WebKit::WebElement::operator PassRefPtr<Element>):
            * src/WebFormElement.cpp:
            (WebKit::WebFormElement::WebFormElement):
            (WebKit::WebFormElement::operator=):
            (WebKit::WebFormElement::operator PassRefPtr<HTMLFormElement>):
            * src/WebInputElement.cpp:
            (WebKit::WebInputElement::WebInputElement):
            (WebKit::WebInputElement::operator=):
            (WebKit::WebInputElement::operator PassRefPtr<HTMLInputElement>):
            * src/WebLabelElement.cpp:
            (WebKit::WebLabelElement::correspondingControl):
            (WebKit::WebLabelElement::operator=):
            (WebKit::WebLabelElement::operator PassRefPtr<HTMLLabelElement>):
            * src/WebNode.cpp:
            (WebKit::WebNode::reset):
            (WebKit::WebNode::assign):
            (WebKit::WebNode::equals):
            (WebKit::WebNode::parentNode):
            (WebKit::WebNode::createMarkup):
            (WebKit::WebNode::addEventListener):
            (WebKit::WebNode::removeEventListener):
            (WebKit::WebNode::simulateClick):
            (WebKit::WebNode::WebNode):
            (WebKit::WebNode::operator=):
            (WebKit::WebNode::operator PassRefPtr<Node>):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55866 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 8bbdb4e..31be92e 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -11,6 +11,58 @@
 
         Reviewed by Jeremy Orlow.
 
+        Use WebPrivatePtr for WebNode
+        https://bugs.webkit.org/show_bug.cgi?id=36005
+
+        * public/WebElement.h:
+        * public/WebFormElement.h:
+        * public/WebInputElement.h:
+        * public/WebLabelElement.h:
+        * public/WebNode.h:
+        (WebKit::WebNode::WebNode):
+        (WebKit::WebNode::isNull):
+        (WebKit::WebNode::unwrap):
+        (WebKit::WebNode::constUnwrap):
+        * public/WebPrivatePtr.h:
+        (WebKit::WebPrivatePtr::assign):
+        * src/WebDocument.cpp:
+        (WebKit::WebDocument::WebDocument):
+        (WebKit::WebDocument::operator=):
+        (WebKit::WebDocument::operator PassRefPtr<Document>):
+        * src/WebElement.cpp:
+        (WebKit::WebElement::hasTagName):
+        (WebKit::WebElement::WebElement):
+        (WebKit::WebElement::operator=):
+        (WebKit::WebElement::operator PassRefPtr<Element>):
+        * src/WebFormElement.cpp:
+        (WebKit::WebFormElement::WebFormElement):
+        (WebKit::WebFormElement::operator=):
+        (WebKit::WebFormElement::operator PassRefPtr<HTMLFormElement>):
+        * src/WebInputElement.cpp:
+        (WebKit::WebInputElement::WebInputElement):
+        (WebKit::WebInputElement::operator=):
+        (WebKit::WebInputElement::operator PassRefPtr<HTMLInputElement>):
+        * src/WebLabelElement.cpp:
+        (WebKit::WebLabelElement::correspondingControl):
+        (WebKit::WebLabelElement::operator=):
+        (WebKit::WebLabelElement::operator PassRefPtr<HTMLLabelElement>):
+        * src/WebNode.cpp:
+        (WebKit::WebNode::reset):
+        (WebKit::WebNode::assign):
+        (WebKit::WebNode::equals):
+        (WebKit::WebNode::parentNode):
+        (WebKit::WebNode::createMarkup):
+        (WebKit::WebNode::addEventListener):
+        (WebKit::WebNode::removeEventListener):
+        (WebKit::WebNode::simulateClick):
+        (WebKit::WebNode::WebNode):
+        (WebKit::WebNode::operator=):
+        (WebKit::WebNode::operator PassRefPtr<Node>):
+
+2010-03-10  Darin Fisher  <darin at chromium.org>
+
+        Reviewed by Jeremy Orlow.
+
         Add API wrapper for WebCore::SerializedScriptValue
         https://bugs.webkit.org/show_bug.cgi?id=35988
 
diff --git a/WebKit/chromium/public/WebElement.h b/WebKit/chromium/public/WebElement.h
index 20f6c9a..572bcd3 100644
--- a/WebKit/chromium/public/WebElement.h
+++ b/WebKit/chromium/public/WebElement.h
@@ -35,7 +35,6 @@
 
 #if WEBKIT_IMPLEMENTATION
 namespace WebCore { class Element; }
-namespace WTF { template <typename T> class PassRefPtr; }
 #endif
 
 namespace WebKit {
diff --git a/WebKit/chromium/public/WebFormElement.h b/WebKit/chromium/public/WebFormElement.h
index b07bff9..31b31de 100644
--- a/WebKit/chromium/public/WebFormElement.h
+++ b/WebKit/chromium/public/WebFormElement.h
@@ -31,13 +31,11 @@
 #ifndef WebFormElement_h
 #define WebFormElement_h
 
-#include "WebElement.h"
 #include "WebInputElement.h"
 #include "WebVector.h"
 
 #if WEBKIT_IMPLEMENTATION
 namespace WebCore { class HTMLFormElement; }
-namespace WTF { template <typename T> class PassRefPtr; }
 #endif
 
 namespace WebKit {
@@ -57,12 +55,6 @@ namespace WebKit {
         }
         WEBKIT_API void assign(const WebFormElement& e) { WebElement::assign(e); }
 
-#if WEBKIT_IMPLEMENTATION
-        WebFormElement(const WTF::PassRefPtr<WebCore::HTMLFormElement>&);
-        WebFormElement& operator=(const WTF::PassRefPtr<WebCore::HTMLFormElement>&);
-        operator WTF::PassRefPtr<WebCore::HTMLFormElement>() const;
-#endif
-
         WEBKIT_API bool autoComplete() const;
         WEBKIT_API WebString action() const;
         WEBKIT_API WebString name() const;
@@ -71,6 +63,12 @@ namespace WebKit {
         // FIXME: Deprecate and replace with WebVector<WebElement>.
         WEBKIT_API void getNamedElements(const WebString&, WebVector<WebNode>&);
         WEBKIT_API void getInputElements(WebVector<WebInputElement>&) const;
+
+#if WEBKIT_IMPLEMENTATION
+        WebFormElement(const WTF::PassRefPtr<WebCore::HTMLFormElement>&);
+        WebFormElement& operator=(const WTF::PassRefPtr<WebCore::HTMLFormElement>&);
+        operator WTF::PassRefPtr<WebCore::HTMLFormElement>() const;
+#endif
     };
 
 } // namespace WebKit
diff --git a/WebKit/chromium/public/WebInputElement.h b/WebKit/chromium/public/WebInputElement.h
index 59643d1..906f9ad 100644
--- a/WebKit/chromium/public/WebInputElement.h
+++ b/WebKit/chromium/public/WebInputElement.h
@@ -35,7 +35,6 @@
 
 #if WEBKIT_IMPLEMENTATION
 namespace WebCore { class HTMLInputElement; }
-namespace WTF { template <typename T> class PassRefPtr; }
 #endif
 
 namespace WebKit {
@@ -49,12 +48,6 @@ namespace WebKit {
         WebInputElement& operator=(const WebInputElement& n) { WebElement::assign(n); return *this; }
         WEBKIT_API void assign(const WebInputElement& n) { WebElement::assign(n); }
 
-#if WEBKIT_IMPLEMENTATION
-        WebInputElement(const WTF::PassRefPtr<WebCore::HTMLInputElement>&);
-        WebInputElement& operator=(const WTF::PassRefPtr<WebCore::HTMLInputElement>&);
-        operator WTF::PassRefPtr<WebCore::HTMLInputElement>() const;
-#endif
-
         enum InputType {
             Text = 0,
             Password,
@@ -98,6 +91,12 @@ namespace WebKit {
         // storing autofill data.  This is either the field name or its id, an empty
         // string if it has no name and no id.
         WEBKIT_API WebString nameForAutofill() const;
+
+#if WEBKIT_IMPLEMENTATION
+        WebInputElement(const WTF::PassRefPtr<WebCore::HTMLInputElement>&);
+        WebInputElement& operator=(const WTF::PassRefPtr<WebCore::HTMLInputElement>&);
+        operator WTF::PassRefPtr<WebCore::HTMLInputElement>() const;
+#endif
     };
 
 } // namespace WebKit
diff --git a/WebKit/chromium/public/WebLabelElement.h b/WebKit/chromium/public/WebLabelElement.h
index e83b658..3e97c39 100644
--- a/WebKit/chromium/public/WebLabelElement.h
+++ b/WebKit/chromium/public/WebLabelElement.h
@@ -53,6 +53,7 @@ public:
     }
 
     WEBKIT_API void assign(const WebLabelElement& e) { WebElement::assign(e); }
+
     WEBKIT_API WebElement correspondingControl();
 
 #if WEBKIT_IMPLEMENTATION
diff --git a/WebKit/chromium/public/WebNode.h b/WebKit/chromium/public/WebNode.h
index 5141789..470eefd 100644
--- a/WebKit/chromium/public/WebNode.h
+++ b/WebKit/chromium/public/WebNode.h
@@ -32,12 +32,10 @@
 #define WebNode_h
 
 #include "WebCommon.h"
+#include "WebPrivatePtr.h"
 #include "WebString.h"
 
 namespace WebCore { class Node; }
-#if WEBKIT_IMPLEMENTATION
-namespace WTF { template <typename T> class PassRefPtr; }
-#endif
 
 namespace WebKit {
 class WebDocument;
@@ -51,8 +49,8 @@ class WebNode {
 public:
     virtual ~WebNode() { reset(); }
 
-    WebNode() : m_private(0) { }
-    WebNode(const WebNode& n) : m_private(0) { assign(n); }
+    WebNode() { }
+    WebNode(const WebNode& n) { assign(n); }
     WebNode& operator=(const WebNode& n)
     {
         assign(n);
@@ -64,13 +62,7 @@ public:
 
     WEBKIT_API bool equals(const WebNode&) const;
 
-    bool isNull() const { return !m_private; }
-
-#if WEBKIT_IMPLEMENTATION
-    WebNode(const WTF::PassRefPtr<WebCore::Node>&);
-    WebNode& operator=(const WTF::PassRefPtr<WebCore::Node>&);
-    operator WTF::PassRefPtr<WebCore::Node>() const;
-#endif
+    bool isNull() const { return m_private.isNull(); }
 
     enum NodeType {
         ElementNode = 1,
@@ -122,20 +114,24 @@ public:
         return res;
     }
 
+#if WEBKIT_IMPLEMENTATION
+    WebNode(const WTF::PassRefPtr<WebCore::Node>&);
+    WebNode& operator=(const WTF::PassRefPtr<WebCore::Node>&);
+    operator WTF::PassRefPtr<WebCore::Node>() const;
+#endif
+
 protected:
-    typedef WebCore::Node WebNodePrivate;
-    void assign(WebNodePrivate*);
-    WebNodePrivate* m_private;
-    
     template<typename T> T* unwrap()
     {
-        return static_cast<T*>(m_private);
+        return static_cast<T*>(m_private.get());
     }
 
     template<typename T> const T* constUnwrap() const
     {
-        return static_cast<const T*>(m_private);
+        return static_cast<const T*>(m_private.get());
     }
+
+    WebPrivatePtr<WebCore::Node> m_private;
 };
 
 inline bool operator==(const WebNode& a, const WebNode& b)
diff --git a/WebKit/chromium/public/WebPrivatePtr.h b/WebKit/chromium/public/WebPrivatePtr.h
index 48b469e..5ddf5ba 100644
--- a/WebKit/chromium/public/WebPrivatePtr.h
+++ b/WebKit/chromium/public/WebPrivatePtr.h
@@ -58,14 +58,6 @@ public:
         assign(0);
     }
 
-    void assign(T* p)
-    {
-        // p is already ref'd for us by the caller
-        if (m_ptr)
-            m_ptr->deref();
-        m_ptr = p;
-    }
-
     WebPrivatePtr<T>& operator=(const WebPrivatePtr<T>& other)
     {
         T* p = other.m_ptr;
@@ -94,6 +86,16 @@ public:
 #endif
 
 private:
+#if WEBKIT_IMPLEMENTATION
+    void assign(T* p)
+    {
+        // p is already ref'd for us by the caller
+        if (m_ptr)
+            m_ptr->deref();
+        m_ptr = p;
+    }
+#endif
+
     T* m_ptr;
 };
 
diff --git a/WebKit/chromium/src/WebDocument.cpp b/WebKit/chromium/src/WebDocument.cpp
index a84ce4f..c56ef77 100644
--- a/WebKit/chromium/src/WebDocument.cpp
+++ b/WebKit/chromium/src/WebDocument.cpp
@@ -53,22 +53,6 @@ using namespace WebCore;
 
 namespace WebKit {
 
-WebDocument::WebDocument(const PassRefPtr<Document>& elem)
-    : WebNode(elem)
-{
-}
-
-WebDocument& WebDocument::operator=(const PassRefPtr<Document>& elem)
-{
-    WebNode::assign(elem.releaseRef());
-    return *this;
-}
-
-WebDocument::operator PassRefPtr<Document>() const
-{
-    return PassRefPtr<Document>(static_cast<Document*>(m_private));
-}
-
 WebFrame* WebDocument::frame() const
 {
     return WebFrameImpl::fromFrame(constUnwrap<Document>()->frame());
@@ -162,4 +146,20 @@ WebNode WebDocument::focusedNode() const
     return WebNode(constUnwrap<Document>()->focusedNode());
 }
 
+WebDocument::WebDocument(const PassRefPtr<Document>& elem)
+    : WebNode(elem)
+{
+}
+
+WebDocument& WebDocument::operator=(const PassRefPtr<Document>& elem)
+{
+    m_private = elem;
+    return *this;
+}
+
+WebDocument::operator PassRefPtr<Document>() const
+{
+    return static_cast<Document*>(m_private.get());
+}
+
 } // namespace WebKit
diff --git a/WebKit/chromium/src/WebElement.cpp b/WebKit/chromium/src/WebElement.cpp
index 6501771..d3ea006 100644
--- a/WebKit/chromium/src/WebElement.cpp
+++ b/WebKit/chromium/src/WebElement.cpp
@@ -38,22 +38,6 @@ using namespace WebCore;
 
 namespace WebKit {
 
-WebElement::WebElement(const WTF::PassRefPtr<WebCore::Element>& elem)
-    : WebNode(elem)
-{
-}
-
-WebElement& WebElement::operator=(const WTF::PassRefPtr<WebCore::Element>& elem)
-{
-    WebNode::assign(elem.releaseRef());
-    return *this;
-}
-
-WebElement::operator WTF::PassRefPtr<Element>() const
-{
-    return PassRefPtr<Element>(static_cast<Element*>(m_private));
-}
-
 WebString WebElement::tagName() const
 {
     return constUnwrap<Element>()->tagName();
@@ -62,7 +46,7 @@ WebString WebElement::tagName() const
 bool WebElement::hasTagName(const WebString& tagName) const
 {
     return equalIgnoringCase(constUnwrap<Element>()->tagName(),
-                             tagName.operator WebCore::String());
+                             tagName.operator String());
 }
 
 bool WebElement::hasAttribute(const WebString& attrName) const
@@ -87,5 +71,20 @@ WebString WebElement::innerText() const
     return constUnwrap<Element>()->innerText();
 }
 
-} // namespace WebKit
+WebElement::WebElement(const PassRefPtr<Element>& elem)
+    : WebNode(elem)
+{
+}
 
+WebElement& WebElement::operator=(const PassRefPtr<Element>& elem)
+{
+    m_private = elem;
+    return *this;
+}
+
+WebElement::operator PassRefPtr<Element>() const
+{
+    return static_cast<Element*>(m_private.get());
+}
+
+} // namespace WebKit
diff --git a/WebKit/chromium/src/WebFormElement.cpp b/WebKit/chromium/src/WebFormElement.cpp
index 0024892..4f6c64d 100644
--- a/WebKit/chromium/src/WebFormElement.cpp
+++ b/WebKit/chromium/src/WebFormElement.cpp
@@ -43,25 +43,6 @@ using namespace WebCore;
 
 namespace WebKit {
 
-class WebFormPrivate : public HTMLFormElement {
-};
-
-WebFormElement::WebFormElement(const WTF::PassRefPtr<HTMLFormElement>& e)
-    : WebElement(e)
-{
-}
-
-WebFormElement& WebFormElement::operator=(const WTF::PassRefPtr<HTMLFormElement>& e)
-{
-    WebNode::assign(e.releaseRef());
-    return *this;
-}
-
-WebFormElement::operator WTF::PassRefPtr<WebCore::HTMLFormElement>() const
-{
-    return PassRefPtr<HTMLFormElement>(static_cast<HTMLFormElement*>(m_private));
-}
-
 bool WebFormElement::autoComplete() const
 {
     return constUnwrap<HTMLFormElement>()->autoComplete();
@@ -107,4 +88,20 @@ void WebFormElement::getInputElements(WebVector<WebInputElement>& result) const
     result.assign(tempVector);
 }
 
+WebFormElement::WebFormElement(const PassRefPtr<HTMLFormElement>& e)
+    : WebElement(e)
+{
+}
+
+WebFormElement& WebFormElement::operator=(const PassRefPtr<HTMLFormElement>& e)
+{
+    m_private = e;
+    return *this;
+}
+
+WebFormElement::operator PassRefPtr<HTMLFormElement>() const
+{
+    return static_cast<HTMLFormElement*>(m_private.get());
+}
+
 } // namespace WebKit
diff --git a/WebKit/chromium/src/WebInputElement.cpp b/WebKit/chromium/src/WebInputElement.cpp
index 4ee1b93..3dab7b2 100644
--- a/WebKit/chromium/src/WebInputElement.cpp
+++ b/WebKit/chromium/src/WebInputElement.cpp
@@ -40,22 +40,6 @@ using namespace WebCore;
 
 namespace WebKit {
 
-WebInputElement::WebInputElement(const WTF::PassRefPtr<HTMLInputElement>& elem)
-    : WebElement(elem)
-{
-}
-
-WebInputElement& WebInputElement::operator=(const WTF::PassRefPtr<HTMLInputElement>& elem)
-{
-    WebNode::assign(elem.releaseRef());
-    return *this;
-}
-
-WebInputElement::operator WTF::PassRefPtr<HTMLInputElement>() const
-{
-    return PassRefPtr<HTMLInputElement>(static_cast<HTMLInputElement*>(m_private));
-}
-
 bool WebInputElement::autoComplete() const
 {
     return constUnwrap<HTMLInputElement>()->autoComplete();
@@ -129,4 +113,20 @@ WebString WebInputElement::nameForAutofill() const
     return String();
 }
 
+WebInputElement::WebInputElement(const PassRefPtr<HTMLInputElement>& elem)
+    : WebElement(elem)
+{
+}
+
+WebInputElement& WebInputElement::operator=(const PassRefPtr<HTMLInputElement>& elem)
+{
+    m_private = elem;
+    return *this;
+}
+
+WebInputElement::operator PassRefPtr<HTMLInputElement>() const
+{
+    return static_cast<HTMLInputElement*>(m_private.get());
+}
+
 } // namespace WebKit
diff --git a/WebKit/chromium/src/WebLabelElement.cpp b/WebKit/chromium/src/WebLabelElement.cpp
index 3a1e3c7..9546986 100644
--- a/WebKit/chromium/src/WebLabelElement.cpp
+++ b/WebKit/chromium/src/WebLabelElement.cpp
@@ -40,6 +40,11 @@ using namespace WebCore;
 
 namespace WebKit {
 
+WebElement WebLabelElement::correspondingControl()
+{
+    return WebElement(unwrap<HTMLLabelElement>()->correspondingControl());
+}
+
 WebLabelElement::WebLabelElement(const PassRefPtr<HTMLLabelElement>& elem)
     : WebElement(elem)
 {
@@ -47,18 +52,13 @@ WebLabelElement::WebLabelElement(const PassRefPtr<HTMLLabelElement>& elem)
 
 WebLabelElement& WebLabelElement::operator=(const PassRefPtr<HTMLLabelElement>& elem)
 {
-    WebNode::assign(elem.releaseRef());
+    m_private = elem;
     return *this;
 }
 
 WebLabelElement::operator PassRefPtr<HTMLLabelElement>() const
 {
-    return PassRefPtr<HTMLLabelElement>(static_cast<HTMLLabelElement*>(m_private));
-}
-
-WebElement WebLabelElement::correspondingControl()
-{
-    return WebElement(unwrap<HTMLLabelElement>()->correspondingControl());
+    return static_cast<HTMLLabelElement*>(m_private.get());
 }
 
 } // namespace WebKit
diff --git a/WebKit/chromium/src/WebNode.cpp b/WebKit/chromium/src/WebNode.cpp
index 9c5e827..5a68c74 100644
--- a/WebKit/chromium/src/WebNode.cpp
+++ b/WebKit/chromium/src/WebNode.cpp
@@ -48,31 +48,23 @@
 
 #include "markup.h"
 
-#include <wtf/PassRefPtr.h>
-
 using namespace WebCore;
 
 namespace WebKit {
 
-class WebNodePrivate : public Node {
-};
-
 void WebNode::reset()
 {
-    assign(0);
+    m_private.reset();
 }
 
 void WebNode::assign(const WebNode& other)
 {
-    WebNodePrivate* p = const_cast<WebNodePrivate*>(other.m_private);
-    if (p)
-        p->ref();
-    assign(p);
+    m_private = other.m_private;
 }
 
 bool WebNode::equals(const WebNode& n) const
 {
-    return (m_private == n.m_private);
+    return (m_private.get() == n.m_private.get());
 }
 
 WebNode::NodeType WebNode::nodeType() const
@@ -82,7 +74,7 @@ WebNode::NodeType WebNode::nodeType() const
 
 WebNode WebNode::parentNode() const
 {
-    return PassRefPtr<Node>(const_cast<Node*>(m_private->parentNode()));
+    return WebNode(const_cast<Node*>(m_private->parentNode()));
 }
 
 WebString WebNode::nodeName() const
@@ -102,30 +94,6 @@ bool WebNode::setNodeValue(const WebString& value)
     return !exceptionCode;
 }
 
-WebNode::WebNode(const PassRefPtr<Node>& node)
-    : m_private(static_cast<WebNodePrivate*>(node.releaseRef()))
-{
-}
-
-WebNode& WebNode::operator=(const PassRefPtr<Node>& node)
-{
-    assign(static_cast<WebNodePrivate*>(node.releaseRef()));
-    return *this;
-}
-
-WebNode::operator PassRefPtr<Node>() const
-{
-    return PassRefPtr<Node>(const_cast<WebNodePrivate*>(m_private));
-}
-
-void WebNode::assign(WebNodePrivate* p)
-{
-    // p is already ref'd for us by the caller
-    if (m_private)
-        m_private->deref();
-    m_private = p;
-}
-
 WebFrame* WebNode::frame() const
 {
     return WebFrameImpl::fromFrame(m_private->document()->frame());
@@ -168,7 +136,7 @@ WebNodeList WebNode::childNodes()
 
 WebString WebNode::createMarkup() const
 {
-    return WebCore::createMarkup(m_private);
+    return WebCore::createMarkup(m_private.get());
 }
 
 bool WebNode::isTextNode() const
@@ -184,7 +152,7 @@ bool WebNode::isElementNode() const
 void WebNode::addEventListener(const WebString& eventType, WebEventListener* listener, bool useCapture)
 {
     EventListenerWrapper* listenerWrapper =
-        listener->createEventListenerWrapper(eventType, useCapture, m_private);
+        listener->createEventListenerWrapper(eventType, useCapture, m_private.get());
     // The listenerWrapper is only referenced by the actual Node.  Once it goes
     // away, the wrapper notifies the WebEventListener so it can clear its
     // pointer to it.
@@ -194,16 +162,31 @@ void WebNode::addEventListener(const WebString& eventType, WebEventListener* lis
 void WebNode::removeEventListener(const WebString& eventType, WebEventListener* listener, bool useCapture)
 {
     EventListenerWrapper* listenerWrapper =
-        listener->getEventListenerWrapper(eventType, useCapture, m_private);
+        listener->getEventListenerWrapper(eventType, useCapture, m_private.get());
     m_private->removeEventListener(eventType, listenerWrapper, useCapture);
     // listenerWrapper is now deleted.
 }
 
 void WebNode::simulateClick()
 {
-    ASSERT(m_private);
     RefPtr<Event> noEvent;
     m_private->dispatchSimulatedClick(noEvent);
 }
 
+WebNode::WebNode(const PassRefPtr<Node>& node)
+    : m_private(node)
+{
+}
+
+WebNode& WebNode::operator=(const PassRefPtr<Node>& node)
+{
+    m_private = node;
+    return *this;
+}
+
+WebNode::operator PassRefPtr<Node>() const
+{
+    return m_private.get();
+}
+
 } // namespace WebKit
diff --git a/WebKit/chromium/src/WebSerializedScriptValue.cpp b/WebKit/chromium/src/WebSerializedScriptValue.cpp
index ee73e00..ce8517a 100644
--- a/WebKit/chromium/src/WebSerializedScriptValue.cpp
+++ b/WebKit/chromium/src/WebSerializedScriptValue.cpp
@@ -38,6 +38,11 @@ using namespace WebCore;
 
 namespace WebKit {
 
+WebSerializedScriptValue WebSerializedScriptValue::fromString(const WebString& s)
+{
+    return SerializedScriptValue::createFromWire(s);
+}
+
 void WebSerializedScriptValue::reset()
 {
     m_private.reset();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list