2006-01-19 Anders Carlsson <andersca@mac.com>
authorandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jan 2006 17:14:33 +0000 (17:14 +0000)
committerandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jan 2006 17:14:33 +0000 (17:14 +0000)
        Reviewed by Darin.

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6653
        CSSStyleDeclaration returns empty string when trying to access shorthand
        properties using JS accessors.

        * khtml/ecma/kjs_css.cpp:
        (KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
        if getCSSPropertyValue returns 0 (which is true for shorthand properties),
        try getPropertyValue instead.

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

LayoutTests/ChangeLog
LayoutTests/fast/dom/css-shortHands-expected.checksum
LayoutTests/fast/dom/css-shortHands-expected.png
LayoutTests/fast/dom/css-shortHands-expected.txt
LayoutTests/fast/dom/css-shortHands.html
WebCore/ChangeLog
WebCore/khtml/ecma/kjs_css.cpp

index 2bfdd47..f524a7c 100644 (file)
@@ -1,3 +1,17 @@
+2006-01-19  Anders Carlsson  <andersca@mac.com>
+
+        Reviewed by Darin.
+
+        - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=6653
+        CSSStyleDeclaration returns empty string when trying to access shorthand 
+        properties using JS accessors.
+
+        * fast/dom/css-shortHands-expected.checksum:
+        * fast/dom/css-shortHands-expected.png:
+        * fast/dom/css-shortHands-expected.txt:
+        * fast/dom/css-shortHands.html:
+        Update
+
 2006-01-19  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by darin & anders.
index 78a2a8d..43696a0 100644 (file)
@@ -1 +1 @@
-6f74d902253de3da4002005d2e89078c
\ No newline at end of file
+bb046a29269456699e045a80e9cd53ec
\ No newline at end of file
index e94e811..886fa70 100644 (file)
Binary files a/LayoutTests/fast/dom/css-shortHands-expected.png and b/LayoutTests/fast/dom/css-shortHands-expected.png differ
index ddf32ce..d8082e0 100644 (file)
@@ -4,16 +4,16 @@ layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x579
       RenderBlock {PRE} at (0,0) size 784x180
-        RenderText {TEXT} at (0,0) size 120x180
-          text run at (0,0) width 24: "1px"
-          text run at (0,15) width 56: "1px 2px"
-          text run at (0,30) width 88: "1px 2px 3px"
-          text run at (0,45) width 120: "1px 2px 3px 4px"
-          text run at (0,60) width 24: "1px"
-          text run at (0,75) width 56: "1px 2px"
-          text run at (0,90) width 88: "1px 2px 3px"
-          text run at (0,105) width 120: "1px 2px 3px 4px"
-          text run at (0,120) width 24: "red"
-          text run at (0,135) width 24: "red"
-          text run at (0,150) width 24: "red"
-          text run at (0,165) width 24: "red"
+        RenderText {TEXT} at (0,0) size 264x180
+          text run at (0,0) width 72: "1px (1px)"
+          text run at (0,15) width 136: "1px 2px (1px 2px)"
+          text run at (0,30) width 200: "1px 2px 3px (1px 2px 3px)"
+          text run at (0,45) width 264: "1px 2px 3px 4px (1px 2px 3px 4px)"
+          text run at (0,60) width 72: "1px (1px)"
+          text run at (0,75) width 136: "1px 2px (1px 2px)"
+          text run at (0,90) width 200: "1px 2px 3px (1px 2px 3px)"
+          text run at (0,105) width 264: "1px 2px 3px 4px (1px 2px 3px 4px)"
+          text run at (0,120) width 72: "red (red)"
+          text run at (0,135) width 72: "red (red)"
+          text run at (0,150) width 72: "red (red)"
+          text run at (0,165) width 72: "red (red)"
index faace46..b07d640 100644 (file)
@@ -31,7 +31,7 @@ for (var i = 0; i < styleSheet.cssRules.length; i++) {
        else if (i == 9) prop = "border-bottom";
        else if (i == 10) prop = "border-left";
        else if (i == 11) prop = "border-right";
-       s += rule.style.getPropertyValue(prop) + "\n";
+       s += rule.style.getPropertyValue(prop) + " (" + rule.style[prop] + ")\n";
 }
 document.getElementById("result").innerText = s;
 </script>
index 250e505..d26af66 100644 (file)
@@ -1,3 +1,16 @@
+2006-01-19  Anders Carlsson  <andersca@mac.com>
+
+        Reviewed by Darin.
+
+        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6653
+        CSSStyleDeclaration returns empty string when trying to access shorthand 
+        properties using JS accessors.
+        
+        * khtml/ecma/kjs_css.cpp:
+        (KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
+        if getCSSPropertyValue returns 0 (which is true for shorthand properties), 
+        try getPropertyValue instead.
+
 2006-01-19  Adele Peterson  <adele@apple.com>
 
         Reviewed by Hyatt and Darin.
index 915ce69..92696e9 100644 (file)
@@ -162,7 +162,9 @@ JSValue *DOMCSSStyleDeclaration::cssPropertyGetter(ExecState *exec, JSObject *or
     else
       return jsStringOrNull(v->cssText());
   } else
-    return jsString("");
+      // If the property is a shorthand property (such as "padding"), 
+      // it can only be accessed using getPropertyValue
+      return jsString(thisObj->m_impl->getPropertyValue(prop));
 }
 
 bool DOMCSSStyleDeclaration::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName, PropertySlot& slot)