Reviewed by Anders.
authorrwlbuis <rwlbuis@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Jul 2006 20:18:49 +0000 (20:18 +0000)
committerrwlbuis <rwlbuis@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Jul 2006 20:18:49 +0000 (20:18 +0000)
        http://bugzilla.opendarwin.org/show_bug.cgi?id=8992
        Some HTML DOM attributes have incorrect types

        Adjust idl and dom source code for HTMLImageElement and
        HTMLBaseFontElement to choose correct type for
        HTMLImageElement::border and HTMLBaseFontElement::size
        attributes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15653 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/html-attribute-types-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/html-attribute-types.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/html/HTMLBaseFontElement.cpp
WebCore/html/HTMLBaseFontElement.h
WebCore/html/HTMLBaseFontElement.idl
WebCore/html/HTMLImageElement.cpp
WebCore/html/HTMLImageElement.h
WebCore/html/HTMLImageElement.idl

index 0fe45e8..b44e9d1 100644 (file)
@@ -1,3 +1,14 @@
+2006-07-27  Rob Buis  <buis@kde.org>
+
+        Reviewed by Anders.
+
+        Testcase for and from:
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=8992
+        Some HTML DOM attributes have incorrect types
+
+        * fast/dom/html-attribute-types-expected.txt: Added.
+        * fast/dom/html-attribute-types.html: Added.
+
 2006-07-27  Justin Garcia  <justin.garcia@apple.com>
 
         Reviewed by levi
diff --git a/LayoutTests/fast/dom/html-attribute-types-expected.txt b/LayoutTests/fast/dom/html-attribute-types-expected.txt
new file mode 100644 (file)
index 0000000..f90da47
--- /dev/null
@@ -0,0 +1,5 @@
+This checks the types of some HTML DOM attributes whose types currently clash with our implementation.
+PASS typeof img.border is 'string'
+PASS typeof pre.width is 'number'
+PASS typeof basefont.size is 'number'
+
diff --git a/LayoutTests/fast/dom/html-attribute-types.html b/LayoutTests/fast/dom/html-attribute-types.html
new file mode 100644 (file)
index 0000000..b977fb4
--- /dev/null
@@ -0,0 +1,27 @@
+<head>
+<script src="../js/resources/js-test-pre.js"></script>
+<script>
+var img;
+var pre;
+var basefont;
+
+function test() {
+    if (window.layoutTestController)
+        layoutTestController.dumpAsText();
+
+    img = document.createElement('img');
+    shouldBe("typeof img.border", "'string'");
+
+    pre = document.createElement('pre');
+    shouldBe("typeof pre.width", "'number'");
+    
+    basefont = document.createElement('basefont');
+    shouldBe("typeof basefont.size", "'number'")
+}
+</script>
+</head>
+<body onload="test()">
+This checks the types of some HTML DOM attributes whose types currently clash with our implementation.
+<div id="console"></div>
+</body>
+
index e323955..4a8df99 100644 (file)
@@ -1,3 +1,26 @@
+2006-07-27  Rob Buis  <buis@kde.org>
+
+        Reviewed by Anders.
+
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=8992
+        Some HTML DOM attributes have incorrect types
+
+        Adjust idl and dom source code for HTMLImageElement and
+        HTMLBaseFontElement to choose correct type for
+        HTMLImageElement::border and HTMLBaseFontElement::size
+        attributes.
+
+        * html/HTMLBaseFontElement.cpp:
+        (WebCore::HTMLBaseFontElement::size):
+        (WebCore::HTMLBaseFontElement::setSize):
+        * html/HTMLBaseFontElement.h:
+        * html/HTMLBaseFontElement.idl:
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::border):
+        (WebCore::HTMLImageElement::setBorder):
+        * html/HTMLImageElement.h:
+        * html/HTMLImageElement.idl:
+
 2006-07-27  Justin Garcia  <justin.garcia@apple.com>
 
         Reviewed by levi
index 3685212..518b07b 100644 (file)
@@ -54,14 +54,14 @@ void HTMLBaseFontElement::setFace(const String &value)
     setAttribute(faceAttr, value);
 }
 
-String HTMLBaseFontElement::size() const
+int HTMLBaseFontElement::size() const
 {
-    return getAttribute(sizeAttr);
+    return getAttribute(sizeAttr).toInt();
 }
 
-void HTMLBaseFontElement::setSize(const String &value)
+void HTMLBaseFontElement::setSize(int value)
 {
-    setAttribute(sizeAttr, value);
+    setAttribute(sizeAttr, String::number(value));
 }
 
 }
index 36f7ced..1087caa 100644 (file)
@@ -42,8 +42,8 @@ public:
     String face() const;
     void setFace(const String &);
 
-    String size() const;
-    void setSize(const String &);
+    int size() const;
+    void setSize(int);
 };
 
 } //namespace
index fc62f2b..f5e84ac 100644 (file)
@@ -22,9 +22,6 @@ module html {
     interface [LegacyParent=KJS::JSHTMLElement] HTMLBaseFontElement : HTMLElement {
         attribute DOMString color;
         attribute DOMString face;
-        
-        // FIXME: According to the DOM spec, this should be long instead of DOMString
-        // see http://bugzilla.opendarwin.org/show_bug.cgi?id=8992
-        attribute DOMString size;    
+        attribute long size;    
     };
 }
index 1480885..e31585e 100644 (file)
@@ -269,15 +269,14 @@ void HTMLImageElement::setAlt(const String& value)
     setAttribute(altAttr, value);
 }
 
-int HTMLImageElement::border() const
+String HTMLImageElement::border() const
 {
-    // ### return value in pixels
-    return getAttribute(borderAttr).toInt();
+    return getAttribute(borderAttr);
 }
 
-void HTMLImageElement::setBorder(int value)
+void HTMLImageElement::setBorder(const String &value)
 {
-    setAttribute(borderAttr, String::number(value));
+    setAttribute(borderAttr, value);
 }
 
 void HTMLImageElement::setHeight(int value)
index f8b7cd1..afdf1d2 100644 (file)
@@ -76,8 +76,8 @@ public:
     String alt() const;
     void setAlt(const String&);
 
-    int border() const;
-    void setBorder(int);
+    String border() const;
+    void setBorder(const String&);
 
     void setHeight(int);
 
index b089f76..3dd5b04 100644 (file)
@@ -22,9 +22,7 @@ module html {
         attribute DOMString name;
         attribute DOMString align;
         attribute DOMString alt;
-        // FIXME: According to the DOM spec border should be of type DOMString
-        // see http://bugzilla.opendarwin.org/show_bug.cgi?id=8992
-        attribute long border;        
+        attribute DOMString border;        
         attribute long height;
         attribute long hspace;
         attribute boolean isMap;