[Webkit-unassigned] [Bug 54838] New: \* (backslash escaping of asterisk) fails to cancel its special CSS meanings

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Feb 20 16:19:07 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=54838

           Summary: \* (backslash escaping of asterisk) fails to cancel
                    its special CSS meanings
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
               URL: http://lists.w3.org/Archives/Public/public-css-testsui
                    te/2011Feb/0089.html
        OS/Version: All
            Status: UNCONFIRMED
          Severity: Major
          Priority: P2
         Component: CSS
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: xn--mlform-iua at xn--mlform-iua.no


Created an attachment (id=83107)
 --> (https://bugs.webkit.org/attachment.cgi?id=83107&action=review)
Test case document for backslash escaped asterisk in type selectors and namespace component

In Webkit, \* (backslash escaping of the asterisk) in selectors fails to work in type selectors and in the namespace component (but works in other simple selectors such as attribute selectors). These errors occur both for hexadecimal as well as for plain backslash escaping. Since it is both a namespace component releated issue and a type selector/universal selector related issues, this bug can thus be split in two sub issues:

(1) Webkit incorrectly treats     *{} and     \*{} the same.
(2) Webkit incorrectly treats *|foo{} and \*|foo{} the same. 

First, the Universal/Type selector related error: (1)

  *{/* Universal-selector 
         http://www.w3.org/TR/css3-selectors/#universal-selector */}
\*{/* Type selector
         http://www.w3.org/TR/css3-selectors/#type-selectors */}

Explanation: When the * in *{} is escaped to \*{} or to  \00002a {}, then it isn't the universal selector anymore. (About cancelling of specal CSS meaning, see http://www.w3.org/TR/CSS21/syndata.html#characters ) When *{} is escaped, it becoms what the CSS3 selectors draft refers to as a 'type selector'. The \*{} cannot select anything, however - the same way that \-{} cannot select anything because no elements can begin with the '-' or with the '*'.)  Webkit's error is that the \*{} selects the same thing that *{} slects. Webkit is alone about this error.

Second, the namespace compoonent related bug: (2)

 *|foo{/* Foo selector in the asterisk prefixed namespace.*/}
\*|foo{/* Foo selector in any namespace, including no namespace*/}

Because Webkit treats \*|foo{} identical to *|foo{}, it becomes impossible to create an asterisk prefiksed namespace in contrast to the 'any namespace' that *| otherwise represents. (An asterisk prefixed namespace \*| would be a single namespace, whereas *| represents any namespace including no namespace.)

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list