- From: Kang-Hao (Kenny) Lu <kanghaol@oupeng.com>
- Date: Thu, 30 Aug 2012 01:50:35 +0800
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- CC: "L. David Baron" <dbaron@dbaron.org>, WWW Style <www-style@w3.org>
(12/08/30 1:17), Tab Atkins Jr. wrote: > On Wed, Aug 29, 2012 at 8:58 AM, Kang-Hao (Kenny) Lu >> Ah, it means that WebKit doesn't implement BAD_STRING. See, for example, >> this test case[2], where >> >> "; background: green; } >> >> is tokenized into >> >> DELIM(;) IDENT(background) >> >> in WebKit instead of >> >> BAD_STRING("; background: green; }) >> >> as required by both CSS 2.1 and the current css3-syntax. > > No, it just means our parsing is retarded, and is relying on some > weird detail. Any detail is explainable. > Again, it's the presence or absence of a newline that > causes this. You can put the newline literally *anywhere* after the " > (well, anywhere whitespace is allowed), and you get the effect. I am adding another test case[3]. In this test case, <style>body { background: red; url(a "); background: green; }" </style> , nothing will change if you remove the line break before </style>. It does change when you add a line break before the closing ". Anyway, what WebKit is doing here is that it tokenizes url(a "); background: green; }" into BAD_URI - url( STRING - "); background: green; }" , pretty much like what other browsers do, instead of BAD_URI - url(a ") DELIM - ; IDENT - background ... as what css3-syntax requires. When the closing " is missing, url(a "); background: green; } is mistakenly tokenized by WebKit as BAD_URI - url(a DELIM - ) DELIM - ; IDENT - background ... , which s very close to what CSS 2.1 required before Issue 129[4] when BAD_STRING was introduced: BAD_URI - url(a DELIM - " DELIM - ) DELIM - ; IDENT - background ... (in fact, it's indistinguishable), so I wouldn't call this retarded. [3] http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1726 [4] http://wiki.csswg.org/spec/css2.1#issue-129 Cheers, Kenny -- Web Specialist, Oupeng Browser, Beijing Try Oupeng: http://www.oupeng.com/
Received on Wednesday, 29 August 2012 17:51:03 UTC