[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

dumi at chromium.org dumi at chromium.org
Wed Dec 22 12:41:05 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit ecfe863c652cb4cba74c6bb65fbd75fcebdcd4ff
Author: dumi at chromium.org <dumi at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Aug 27 04:01:02 2010 +0000

    Add support for markerTextForListItem() to Chromium's LayoutTestController.
    https://bugs.webkit.org/show_bug.cgi?id=44724
    
    Reviewed by Darin Fisher.
    
    * public/WebBindings.h:
    * public/WebFrame.h:
    * src/WebBindings.cpp:
    (WebKit::getElementImpl):
    (WebKit::WebBindings::getElement):
    * src/WebFrameImpl.cpp:
    (WebKit::WebFrameImpl::markerTextForListItem):
    * src/WebFrameImpl.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66176 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 56c41a7..1ad5160 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,19 @@
+2010-08-26  Dumitru Daniliuc  <dumi at chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        Add support for markerTextForListItem() to Chromium's LayoutTestController.
+        https://bugs.webkit.org/show_bug.cgi?id=44724
+
+        * public/WebBindings.h:
+        * public/WebFrame.h:
+        * src/WebBindings.cpp:
+        (WebKit::getElementImpl):
+        (WebKit::WebBindings::getElement):
+        * src/WebFrameImpl.cpp:
+        (WebKit::WebFrameImpl::markerTextForListItem):
+        * src/WebFrameImpl.h:
+
 2010-08-26  James Robinson  <jamesr at chromium.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/chromium/public/WebBindings.h b/WebKit/chromium/public/WebBindings.h
index 0fa3bfd..bca4095 100644
--- a/WebKit/chromium/public/WebBindings.h
+++ b/WebKit/chromium/public/WebBindings.h
@@ -37,6 +37,7 @@
 namespace WebKit {
 
 class WebDragData;
+class WebElement;
 class WebRange;
 
 // A haphazard collection of functions for dealing with plugins.
@@ -139,6 +140,10 @@ public:
     // If so, return that range as a WebRange object.
     WEBKIT_API static bool getRange(NPObject* range, WebRange*);
 
+    // Return true (success) if the given npobj is an element.
+    // If so, return that element as a WebElement object.
+    WEBKIT_API static bool getElement(NPObject* element, WebElement*);
+
     // Exceptions -------------------------------------------------------------
 
     typedef void (ExceptionHandler)(void* data, const NPUTF8* message);
diff --git a/WebKit/chromium/public/WebFrame.h b/WebKit/chromium/public/WebFrame.h
index c4fa7ae..d8eca6a 100644
--- a/WebKit/chromium/public/WebFrame.h
+++ b/WebKit/chromium/public/WebFrame.h
@@ -518,6 +518,8 @@ public:
     // used to support layout tests.
     virtual WebString counterValueForElementById(const WebString& id) const = 0;
 
+    // Calls markerTextForListItem() defined in WebCore/rendering/RenderTreeAsText.h.
+    virtual WebString markerTextForListItem(const WebElement&) const = 0;
 
     // Returns the number of page where the specified element will be put.
     // This method is used to support layout tests.
diff --git a/WebKit/chromium/src/WebBindings.cpp b/WebKit/chromium/src/WebBindings.cpp
index 3aaebfd..4bb9022 100644
--- a/WebKit/chromium/src/WebBindings.cpp
+++ b/WebKit/chromium/src/WebBindings.cpp
@@ -43,6 +43,7 @@
 #include "Range.h"
 #include "V8BindingState.h"
 #include "V8DOMWrapper.h"
+#include "V8Element.h"
 #include "V8Event.h"
 #include "V8Helpers.h"
 #include "V8HiddenPropertyName.h"
@@ -53,6 +54,7 @@
 #include "bridge/c/c_utility.h"
 #endif
 #include "WebDragData.h"
+#include "WebElement.h"
 #include "WebRange.h"
 
 #if USE(JAVASCRIPTCORE_BINDINGS)
@@ -295,6 +297,21 @@ static bool getRangeImpl(NPObject* npobj, WebRange* range)
     return true;
 }
 
+static bool getElementImpl(NPObject* npObj, WebElement* webElement)
+{
+    if (!npObj || (npObj->_class != npScriptObjectClass))
+        return false;
+
+    V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(npObj);
+    v8::Handle<v8::Object> v8Object(v8NPObject->v8Object);
+    Element* native = V8Element::toNative(v8Object);
+    if (!native)
+        return false;
+
+    *webElement = WebElement(native);
+    return true;
+}
+
 #endif
 
 bool WebBindings::getDragData(NPObject* event, int* eventId, WebDragData* data)
@@ -323,6 +340,16 @@ bool WebBindings::getRange(NPObject* range, WebRange* webrange)
 #endif
 }
 
+bool WebBindings::getElement(NPObject* element, WebElement* webElement)
+{
+#if USE(V8)
+    return getElementImpl(element, webElement);
+#else
+    // Not supported on other ports (JSC, etc.).
+    return false;
+#endif
+}
+
 void WebBindings::pushExceptionHandler(ExceptionHandler handler, void* data)
 {
     WebCore::pushExceptionHandler(handler, data);
diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp
index 4375e73..8c70d73 100644
--- a/WebKit/chromium/src/WebFrameImpl.cpp
+++ b/WebKit/chromium/src/WebFrameImpl.cpp
@@ -1690,6 +1690,11 @@ WebString WebFrameImpl::counterValueForElementById(const WebString& id) const
     return counterValueForElement(element);
 }
 
+WebString WebFrameImpl::markerTextForListItem(const WebElement& webElement) const
+{
+    return WebCore::markerTextForListItem(webElement.unwrap<Element>());
+}
+
 int WebFrameImpl::pageNumberForElementById(const WebString& id,
                                            float pageWidthInPixels,
                                            float pageHeightInPixels) const
diff --git a/WebKit/chromium/src/WebFrameImpl.h b/WebKit/chromium/src/WebFrameImpl.h
index 00e8ecb..14217fa 100644
--- a/WebKit/chromium/src/WebFrameImpl.h
+++ b/WebKit/chromium/src/WebFrameImpl.h
@@ -176,6 +176,7 @@ public:
     virtual WebString contentAsMarkup() const;
     virtual WebString renderTreeAsText() const;
     virtual WebString counterValueForElementById(const WebString& id) const;
+    virtual WebString markerTextForListItem(const WebElement&) const;
     virtual int pageNumberForElementById(const WebString& id,
                                          float pageWidthInPixels,
                                          float pageHeightInPixels) const;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list