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

mrowe at apple.com mrowe at apple.com
Wed Dec 22 11:28:25 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 91827b2ff966d8dbac6f7717520b0a351dd382b7
Author: mrowe at apple.com <mrowe at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jul 26 20:53:02 2010 +0000

    <http://webkit.org/b/42990> REGRESSION (r63854): Safari RSS layout is broken due to changes in vendor prefix handling
    
    Reviewed by Dan Bernstein.
    
    In r63854 support for properties with the -khtml vendor prefix was removed. This breaks the layout of
    Safari's RSS interface, several Dashboard widgets that are included with Mac OS X, and at least one
    popular third-party Mac OS X application. This change will need to be revisited in a manner that has
    a clearer backwards-compatibility strategy. <http://webkit.org/b/42093> will be reopened to track that.
    
    * css/CSSParser.cpp:
    (WebCore::cssPropertyID): Revert the WebCore change from r63854.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64071 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 3b80304..b0d5208 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-07-26  Mark Rowe  <mrowe at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        <http://webkit.org/b/42990> REGRESSION (r63854): Safari RSS layout is broken due to changes in vendor prefix handling
+
+        In r63854 support for properties with the -khtml vendor prefix was removed. This breaks the layout of
+        Safari's RSS interface, several Dashboard widgets that are included with Mac OS X, and at least one
+        popular third-party Mac OS X application. This change will need to be revisited in a manner that has
+        a clearer backwards-compatibility strategy. <http://webkit.org/b/42093> will be reopened to track that.
+
+        * css/CSSParser.cpp:
+        (WebCore::cssPropertyID): Revert the WebCore change from r63854.
+
 2010-07-26  Brady Eidson  <beidson at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebCore/css/CSSParser.cpp b/WebCore/css/CSSParser.cpp
index ce1f05f..bd5db44 100644
--- a/WebCore/css/CSSParser.cpp
+++ b/WebCore/css/CSSParser.cpp
@@ -5610,27 +5610,31 @@ static int cssPropertyID(const UChar* propertyName, unsigned length)
 
     const char* name = buffer;
     if (buffer[0] == '-') {
-        if (!strcmp(buffer, "-apple-dashboard-region") || !strcmp(buffer, "-apple-line-clamp")) {
-            // Support two Apple-specific CSS properties previously used for
-            // the Dashboard and Safari RSS line clamping.
+        // If the prefix is -apple- or -khtml-, change it to -webkit-.
+        // This makes the string one character longer.
+        if (hasPrefix(buffer, length, "-apple-") || hasPrefix(buffer, length, "-khtml-")) {
             memmove(buffer + 7, buffer + 6, length + 1 - 6);
             memcpy(buffer, "-webkit", 7);
             ++length;
-        } else if (!strcmp(buffer, "-webkit-opacity")) {
-            // Honor -webkit-opacity as a synonym for opacity. This was the only
-            // syntax that worked in Safari 1.1, and may be in use on some websites and widgets.
-            const char* const opacity = "opacity";
-            name = opacity;
-            length = 7;
-        } else if (hasPrefix(buffer, length, "-webkit-border-")) {
-            // -webkit-border-*-*-radius worked in Safari 4 and earlier. -webkit-border-radius syntax
-            // differs from border-radius, so it remains as a distinct property.
-            if (!strcmp(buffer + 15, "top-left-radius")
-                    || !strcmp(buffer + 15, "top-right-radius")
-                    || !strcmp(buffer + 15, "bottom-right-radius")
-                    || !strcmp(buffer + 15, "bottom-left-radius")) {
-                name = buffer + 8;
-                length -= 8;
+        }
+
+        if (hasPrefix(buffer, length, "-webkit")) {
+            if (strcmp(buffer, "-webkit-opacity") == 0) {
+                // Honor -webkit-opacity as a synonym for opacity.
+                // This was the only syntax that worked in Safari 1.1, and may be in use on some websites and widgets.
+                const char* const opacity = "opacity";
+                name = opacity;
+                length = strlen(opacity);
+            } else if (hasPrefix(buffer + 7, length - 7, "-border-")) {
+                // -webkit-border-*-*-radius worked in Safari 4 and earlier. -webkit-border-radius syntax
+                // differs from border-radius, so it is remains as a distinct property.
+                if (!strcmp(buffer + 15, "top-left-radius")
+                        || !strcmp(buffer + 15, "top-right-radius")
+                        || !strcmp(buffer + 15, "bottom-right-radius")
+                        || !strcmp(buffer + 15, "bottom-left-radius")) {
+                    name = buffer + 8;
+                    length -= 8;
+                }
             }
         }
     }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list