<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>19882</bug_id>
          
          <creation_ts>2012-11-06 16:01:28 +0000</creation_ts>
          <short_desc>@charset rule logic is not case insensitive &amp; should state ASCII interpretation for clarity</short_desc>
          <delta_ts>2012-11-07 23:56:37 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>CSS</product>
          <component>Syntax</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zack Weinberg">zackw</reporter>
          <assigned_to name="Tab Atkins Jr.">jackalmage</assigned_to>
          <cc>hsivonen</cc>
    
    <cc>kennyluck</cc>
          
          <qa_contact>public-css-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>77953</commentid>
    <comment_count>0</comment_count>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-06 16:01:28 +0000</bug_when>
    <thetext>http://dev.w3.org/csswg/css3-syntax/#the-input-byte-stream step 3 currently reads

&gt; Check the byte stream. If the first several bytes match the hex sequence
&gt;
&gt;     40 63 68 61 72 73 65 74 20 22 (XX)* 22 3B
&gt;
&gt; then ...

This has two problems, one semantic and one cosmetic.

1) It does not allow for ASCII case insensitivity and is therefore inconsistent with the rest of CSS.  It also doesn&apos;t allow use of a single-quoted string (this latter omission is actually _more_ likely to cause problems IMO).

2) For clarity, the interpretation of this hex sequence as ASCII characters should be shown.

Suggested edit: replace the quote above with 

&gt; Check the byte stream. If the first several bytes match the hex sequence
&gt;
&gt;   40 (43|63) (48|68) (41|61) (52|72) (53|73) (55|65) (54|74) 20 (22|27) (XX)* QQ 3B
&gt;
&gt; where QQ must be the same as the earlier 22 or 27 byte, (these bytes encode
&gt; the text &apos;@charset &quot;...&quot;;&apos;, matched _ASCII case-insensitively_ and
&gt; allowing both single and double-quoted string literals) then ...

For even greater consistency with normal CSS parsing, it might also be nice to allow arbitrary whitespace before and after the string (not just a single space before and none after), and leading whitespace before the initial @-sign.  To do that, change the 20 to WW*, add another WW* at the beginning and a third before the final 3B, and refer to the encoding standard for the definition of ASCII whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77954</commentid>
    <comment_count>1</comment_count>
    <who name="Tab Atkins Jr.">jackalmage</who>
    <bug_when>2012-11-06 16:03:34 +0000</bug_when>
    <thetext>Does that match browser behavior?  I&apos;m not interested in aligning @charset with other CSS parsing, because it&apos;s a very, very special thing.  However, I&apos;ll match whatever browsers do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77956</commentid>
    <comment_count>2</comment_count>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-06 16:30:13 +0000</bug_when>
    <thetext>The relevant code in Firefox is css::Loader::GetCharsetFromData, here: https://mxr.mozilla.org/mozilla-central/source/layout/style/Loader.cpp#611
It only allows lowercase &quot;charset&quot;, it doesn&apos;t allow single-quoted strings, the @ must be the first character in the document, and there must be exactly one space before the initial &quot; character and none between the closing &quot; and the semicolon.  I would consider the first two of these flat-out bugs in Firefox tbh.

I am not as familiar with Webkit, but the relevant code _appears_ to be TextResourceDecoder::checkForCSSCharset, here: https://trac.webkit.org/browser/trunk/Source/WebCore/loader/TextResourceDecoder.cpp#L455  This also does case-sensitive matching as far as I can tell, but it allows both single- and double-quoted strings, and it allows arbitrary whitespace before and after the string.  The @ still has to be the first character in the document.

Later today I will put together a comprehensive test case and find out what IE and Opera do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77973</commentid>
    <comment_count>3</comment_count>
      <attachid>1243</attachid>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-06 19:20:27 +0000</bug_when>
    <thetext>Created attachment 1243
test case

Here&apos;s a test case.  It will show a list of variations on @charset and report whether they worked or not.

If you get all &quot;yes&quot; or all &quot;no&quot; results you should suspect that the browser might actually be *ignoring* @charset within a data: URL.  This appears to be the behavior of, at least, the version of Chromium I have on here.  Results with all the browsers I can conveniently test with will follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77974</commentid>
    <comment_count>4</comment_count>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-06 19:20:56 +0000</bug_when>
    <thetext>@charset &quot;utf-8&quot;;    yes
@CHARSET &quot;utf-8&quot;;    no
@ChArSeT &quot;utf-8&quot;;    no
@cHaRsEt &quot;utf-8&quot;;    no

@charset&quot;utf-8&quot;;     yes
@charset  &quot;utf-8&quot;;   no
@charset\9&quot;utf-8&quot;;   no
@charset\A&quot;utf-8&quot;;   no
@charset\C&quot;utf-8&quot;;   no
@charset\D&quot;utf-8&quot;;   no
@charset &quot;utf-8&quot; ;   no
 @charset &quot;utf-8&quot;;   no

@charset &apos;utf-8&apos;;    no

Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0 Iceweasel/16.0.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77975</commentid>
    <comment_count>5</comment_count>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-06 19:21:28 +0000</bug_when>
    <thetext>@charset &quot;utf-8&quot;;    no
@CHARSET &quot;utf-8&quot;;    no
@ChArSeT &quot;utf-8&quot;;    no
@cHaRsEt &quot;utf-8&quot;;    no

@charset&quot;utf-8&quot;;     no
@charset  &quot;utf-8&quot;;   no
@charset\9&quot;utf-8&quot;;   no
@charset\A&quot;utf-8&quot;;   no
@charset\C&quot;utf-8&quot;;   no
@charset\D&quot;utf-8&quot;;   no
@charset &quot;utf-8&quot; ;   no
 @charset &quot;utf-8&quot;;   no

@charset &apos;utf-8&apos;;    no

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4

(this is the browser that appears to ignore @charset in a data: URL altogether)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77976</commentid>
    <comment_count>6</comment_count>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-06 19:22:05 +0000</bug_when>
    <thetext>@charset &quot;utf-8&quot;;    yes
@CHARSET &quot;utf-8&quot;;    no
@ChArSeT &quot;utf-8&quot;;    no
@cHaRsEt &quot;utf-8&quot;;    no

@charset&quot;utf-8&quot;;     yes
@charset  &quot;utf-8&quot;;   yes
@charset\9&quot;utf-8&quot;;   yes
@charset\A&quot;utf-8&quot;;   no
@charset\C&quot;utf-8&quot;;   no
@charset\D&quot;utf-8&quot;;   no
@charset &quot;utf-8&quot; ;   yes
 @charset &quot;utf-8&quot;;   no

@charset &apos;utf-8&apos;;    yes

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.22+ (KHTML, like Gecko) Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.22+ Debian/unstable (3.4.2-2) Epiphany/3.4.2

(this is probably representative of *uncustomized* WebKit)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77978</commentid>
    <comment_count>7</comment_count>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-06 19:40:39 +0000</bug_when>
    <thetext>@charset &quot;utf-8&quot;;    yes
@CHARSET &quot;utf-8&quot;;    yes
@ChArSeT &quot;utf-8&quot;;    yes
@cHaRsEt &quot;utf-8&quot;;    yes

@charset&quot;utf-8&quot;;     yes
@charset  &quot;utf-8&quot;;   yes
@charset\9&quot;utf-8&quot;;   yes
@charset\A&quot;utf-8&quot;;   yes
@charset\C&quot;utf-8&quot;;   yes
@charset\D&quot;utf-8&quot;;   yes
@charset &quot;utf-8&quot; ;   yes
 @charset &quot;utf-8&quot;;   yes

@charset &apos;utf-8&apos;;    yes


Opera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.289 Version/12.00

... and unfortunately, IE9 appears not to support this use of data: URLs, so I&apos;m going to have to redo the test case with a whole bunch of tiny supporting files to get that to work. :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77981</commentid>
    <comment_count>8</comment_count>
      <attachid>1244</attachid>
    <who name="Kang-Hao (Kenny) Lu">kennyluck</who>
    <bug_when>2012-11-06 23:58:53 +0000</bug_when>
    <thetext>Created attachment 1244
corrected test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77982</commentid>
    <comment_count>9</comment_count>
    <who name="Kang-Hao (Kenny) Lu">kennyluck</who>
    <bug_when>2012-11-07 00:06:51 +0000</bug_when>
    <thetext>(In reply to comment #4)
&gt; @charset&quot;utf-8&quot;;     yes

I was puzzled by this as the code is pretty clear. Then I figured &quot;b1&quot;&apos;s data URL isn&apos;t correct.

It now gives me:

@charset &quot;utf-8&quot;;    yes
@CHARSET &quot;utf-8&quot;;    no
@ChArSeT &quot;utf-8&quot;;    no
@cHaRsEt &quot;utf-8&quot;;    no

@charset&quot;utf-8&quot;;     no
@charset  &quot;utf-8&quot;;   no
@charset\9&quot;utf-8&quot;;   no
@charset\A&quot;utf-8&quot;;   no
@charset\C&quot;utf-8&quot;;   no
@charset\D&quot;utf-8&quot;;   no
@charset &quot;utf-8&quot; ;   no
 @charset &quot;utf-8&quot;;   no

@charset &apos;utf-8&apos;;    no

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0

(In reply to comment #7)
&gt; ... and unfortunately, IE9 appears not to support this use of data: URLs, so
&gt; I&apos;m going to have to redo the test case with a whole bunch of tiny
&gt; supporting files to get that to work. :-(

So I did that for you ;)

@charset &quot;utf-8&quot;;    yes
@CHARSET &quot;utf-8&quot;;    no
@ChArSeT &quot;utf-8&quot;;    no
@cHaRsEt &quot;utf-8&quot;;    no

@charset&quot;utf-8&quot;;     no
@charset  &quot;utf-8&quot;;   no
@charset\9&quot;utf-8&quot;;   no
@charset\A&quot;utf-8&quot;;   no
@charset\C&quot;utf-8&quot;;   no
@charset\D&quot;utf-8&quot;;   no
@charset &quot;utf-8&quot; ;   no
 @charset &quot;utf-8&quot;;   no

@charset &apos;utf-8&apos;;    no

 
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; eSobiSubscriber 2.0.4.16; .NET4.0C)


It&apos;s not suprsing to me as CSS 2.1 is OK clear here:

  # @charset must be written literally, i.e., the 10 characters &apos;@charset &quot;&apos;
  # (lowercase, no backslash escapes), followed by the encoding name, followed
  # by &apos;&quot;;&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77985</commentid>
    <comment_count>10</comment_count>
    <who name="Tab Atkins Jr.">jackalmage</who>
    <bug_when>2012-11-07 01:28:33 +0000</bug_when>
    <thetext>Yay!  With Firefox and IE9 both being very strict, it looks like I can justify patching WebKit to be strict, and keeping the spec strict as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77987</commentid>
    <comment_count>11</comment_count>
    <who name="Henri Sivonen">hsivonen</who>
    <bug_when>2012-11-07 07:17:44 +0000</bug_when>
    <thetext>(In reply to comment #10)
&gt; Yay!  With Firefox and IE9 both being very strict, it looks like I can
&gt; justify patching WebKit to be strict, and keeping the spec strict as well.

Cool. 

(Aside: Allowing multiple spaces between &quot;@charset&quot; and the quote would have been particularly annoying, since it would have introduced the problem XML has: There can be an arbitrary amount of whitespace padding in XML after &quot;&lt;?xml&quot; but before &quot;encoding=&quot;, so implementations end up setting an arbitrary limit.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78022</commentid>
    <comment_count>12</comment_count>
    <who name="Zack Weinberg">zackw</who>
    <bug_when>2012-11-07 23:35:08 +0000</bug_when>
    <thetext>Yeah, given mostly-consistent browser behavior I am OK keeping the spec strict as well.  Please add an explanation of the ASCII interpretation of the byte stream, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78023</commentid>
    <comment_count>13</comment_count>
    <who name="Tab Atkins Jr.">jackalmage</who>
    <bug_when>2012-11-07 23:56:37 +0000</bug_when>
    <thetext>(In reply to comment #12)
&gt; Yeah, given mostly-consistent browser behavior I am OK keeping the spec
&gt; strict as well.  Please add an explanation of the ASCII interpretation of
&gt; the byte stream, though.

Done.  I&apos;ll mark this as fixed, and go patch webkit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1243</attachid>
            <date>2012-11-06 19:20:27 +0000</date>
            <delta_ts>2012-11-06 23:58:53 +0000</delta_ts>
            <desc>test case</desc>
            <filename>css-charset-acceptable-variation.html</filename>
            <type>text/html</type>
            <size>3504</size>
            <attacher name="Zack Weinberg">zackw</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxoZWFkPgo8bWV0YSBjaGFyc2V0PSJ1cy1hc2NpaSI+Cjx0aXRsZT5U
ZXN0IG9mIHdoYXQgdmFyaWF0aW9ucyBvbiB0aGUgQGNoYXJzZXQgZGlyZWN0aXZlIGFyZQogICAg
ICAgYWNjZXB0YWJsZTwvdGl0bGU+CjwhLS0gVGhlIGZvcm1hbCBzeW50YXggb2YgQGNoYXJzZXQg
aXMKCiAgICBAY2hhcnNldCBTVFJJTkcgOwoKICBJZiBwYXJzZWQgYWNjb3JkaW5nIHRvIHRoZSBu
b3JtYWwgQ1NTIGdyYW1tYXIsIHRoZSB3b3JkICJjaGFyc2V0IiBpbgogIEBjaGFyc2V0IHdvdWxk
IGJlIGNhc2UtaW5zZW5zaXRpdmUsIGVpdGhlciBhIHNpbmdsZS0gb3IgZG91YmxlLQogIHF1b3Rl
ZCBzdHJpbmcgbWlnaHQgZm9sbG93LCBhbmQgdGhlcmUgY291bGQgYmUgYW55IGFtb3VudCBvZgog
IHdoaXRlc3BhY2UgYm90aCBiZWZvcmUgYW5kIGFmdGVyIHRoZSBzdHJpbmcgbGl0ZXJhbC4gIEhv
d2V2ZXIsCiAgYmVjYXVzZSBpdCBpcyBuZWNlc3NhcnkgdG8gcHJvY2VzcyBAY2hhcnNldCBiZWZv
cmUgdGhlIGFjdHVhbAogIGNoYXJhY3RlciBzZXQgb2YgdGhlIGZpbGUgaXMga25vd24sIGEgc3Bl
Y2lhbCBzaW1wbGlmaWVkIHBhcnNlciBpcwogIHVzZWQsIHdoaWNoIG1heSBub3QgYWNjZXB0IGFs
bCBvZiB0aGUgdmFyaWF0aW9ucyB0aGF0IHRoZSBub3JtYWwKICBncmFtbWFyIHdvdWxkLiAgVGhp
cyB0ZXN0IGRldGVybWluZXMgd2hhdCB3b3JrcyBhbmQgd2hhdCBkb2Vzbid0LiAtLT4KPHN0eWxl
PnNwYW4geyBkaXNwbGF5OiBub25lIH0gLmUgeyBkaXNwbGF5OmlubGluZSB9PC9zdHlsZT4KPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjaGFyc2V0JTIwJTIydXRm
LTglMjIlM0IlMjNhMSVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsQENIQVJTRVQlMjAlMjJ1dGYtOCUyMiUzQiUyM2EyJUMz
JUE0e2Rpc3BsYXk6aW5saW5lfSI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZGF0YTp0
ZXh0L2NzcyxAQ2hBclNlVCUyMCUyMnV0Zi04JTIyJTNCJTIzYTMlQzMlQTR7ZGlzcGxheTppbmxp
bmV9Ij4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjSGFSc0V0
JTIwJTIydXRmLTglMjIlM0IlMjNhNCVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgoKPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjaGFyc2V0JTIwJTIydXRmLTglMjIl
M0IlMjNiMSVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9ImRhdGE6dGV4dC9jc3MsQGNoYXJzZXQlMjAlMjAlMjJ1dGYtOCUyMiUzQiUyM2IyJUMzJUE0
e2Rpc3BsYXk6aW5saW5lfSI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZGF0YTp0ZXh0
L2NzcyxAY2hhcnNldCUwOSUyMnV0Zi04JTIyJTNCJTIzYjMlQzMlQTR7ZGlzcGxheTppbmxpbmV9
Ij4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjaGFyc2V0JTBB
JTIydXRmLTglMjIlM0IlMjNiNCVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsQGNoYXJzZXQlMEMlMjJ1dGYtOCUyMiUzQiUy
M2I1JUMzJUE0e2Rpc3BsYXk6aW5saW5lfSI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
ZGF0YTp0ZXh0L2NzcyxAY2hhcnNldCUwRCUyMnV0Zi04JTIyJTNCJTIzYjYlQzMlQTR7ZGlzcGxh
eTppbmxpbmV9Ij4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBj
aGFyc2V0JTIwJTIydXRmLTglMjIlMjAlM0IlMjNiNyVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsJTIwQGNoYXJzZXQlMjAl
MjJ1dGYtOCUyMiUzQiUyM2I4JUMzJUE0e2Rpc3BsYXk6aW5saW5lfSI+Cgo8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsQGNoYXJzZXQlMjAlMjd1dGYtOCUyNyUzQiUy
M2MxJUMzJUE0e2Rpc3BsYXk6aW5saW5lfSI+Cgo8Ym9keT4KPHByZT4KQGNoYXJzZXQgInV0Zi04
IjsgICAgPHNwYW4gaWQ9ImExJiMxOTU7JiMxNjQ7Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTEmIzIy
ODsiPnllczwvc3Bhbj4KQENIQVJTRVQgInV0Zi04IjsgICAgPHNwYW4gaWQ9ImEyJiMxOTU7JiMx
NjQ7Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTImIzIyODsiPnllczwvc3Bhbj4KQENoQXJTZVQgInV0
Zi04IjsgICAgPHNwYW4gaWQ9ImEzJiMxOTU7JiMxNjQ7Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTMm
IzIyODsiPnllczwvc3Bhbj4KQGNIYVJzRXQgInV0Zi04IjsgICAgPHNwYW4gaWQ9ImE0JiMxOTU7
JiMxNjQ7Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTQmIzIyODsiPnllczwvc3Bhbj4KCkBjaGFyc2V0
InV0Zi04IjsgICAgIDxzcGFuIGlkPSJiMSYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9
ImIxJiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFyc2V0ICAidXRmLTgiOyAgIDxzcGFuIGlkPSJiMiYj
MTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImIyJiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFy
c2V0XDkidXRmLTgiOyAgIDxzcGFuIGlkPSJiMyYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4g
aWQ9ImIzJiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFyc2V0XEEidXRmLTgiOyAgIDxzcGFuIGlkPSJi
NCYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImI0JiMyMjg7Ij55ZXM8L3NwYW4+CkBj
aGFyc2V0XEMidXRmLTgiOyAgIDxzcGFuIGlkPSJiNSYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNw
YW4gaWQ9ImI1JiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFyc2V0XEQidXRmLTgiOyAgIDxzcGFuIGlk
PSJiNiYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImI2JiMyMjg7Ij55ZXM8L3NwYW4+
CkBjaGFyc2V0ICJ1dGYtOCIgOyAgIDxzcGFuIGlkPSJiNyYjMTk1OyYjMTY0OyI+bm88L3NwYW4+
PHNwYW4gaWQ9ImI3JiMyMjg7Ij55ZXM8L3NwYW4+CiBAY2hhcnNldCAidXRmLTgiOyAgIDxzcGFu
IGlkPSJiOCYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImI4JiMyMjg7Ij55ZXM8L3Nw
YW4+CgpAY2hhcnNldCAndXRmLTgnOyAgICA8c3BhbiBpZD0iYzEmIzE5NTsmIzE2NDsiPm5vPC9z
cGFuPjxzcGFuIGlkPSJjMSYjMjI4OyI+eWVzPC9zcGFuPgoKPC9wcmU+CjxzY3JpcHQ+d2luZG93
Lm9ubG9hZD1mdW5jdGlvbigpewogIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIp
OwogIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY29kZSIpOwogIHZhciB0ID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUobmF2aWdhdG9yLnVzZXJBZ2VudCk7CiAgYy5hcHBlbmRDaGls
ZCh0KTsKICBwLmFwcGVuZENoaWxkKGMpOwogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocCk7
Cn08L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1244</attachid>
            <date>2012-11-06 23:58:53 +0000</date>
            <delta_ts>2012-11-06 23:58:53 +0000</delta_ts>
            <desc>corrected test case</desc>
            <filename>css-charset-acceptable-variation.html</filename>
            <type>text/html</type>
            <size>3501</size>
            <attacher name="Kang-Hao (Kenny) Lu">kennyluck</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxoZWFkPgo8bWV0YSBjaGFyc2V0PSJ1cy1hc2NpaSI+Cjx0aXRsZT5U
ZXN0IG9mIHdoYXQgdmFyaWF0aW9ucyBvbiB0aGUgQGNoYXJzZXQgZGlyZWN0aXZlIGFyZQogICAg
ICAgYWNjZXB0YWJsZTwvdGl0bGU+CjwhLS0gVGhlIGZvcm1hbCBzeW50YXggb2YgQGNoYXJzZXQg
aXMKCiAgICBAY2hhcnNldCBTVFJJTkcgOwoKICBJZiBwYXJzZWQgYWNjb3JkaW5nIHRvIHRoZSBu
b3JtYWwgQ1NTIGdyYW1tYXIsIHRoZSB3b3JkICJjaGFyc2V0IiBpbgogIEBjaGFyc2V0IHdvdWxk
IGJlIGNhc2UtaW5zZW5zaXRpdmUsIGVpdGhlciBhIHNpbmdsZS0gb3IgZG91YmxlLQogIHF1b3Rl
ZCBzdHJpbmcgbWlnaHQgZm9sbG93LCBhbmQgdGhlcmUgY291bGQgYmUgYW55IGFtb3VudCBvZgog
IHdoaXRlc3BhY2UgYm90aCBiZWZvcmUgYW5kIGFmdGVyIHRoZSBzdHJpbmcgbGl0ZXJhbC4gIEhv
d2V2ZXIsCiAgYmVjYXVzZSBpdCBpcyBuZWNlc3NhcnkgdG8gcHJvY2VzcyBAY2hhcnNldCBiZWZv
cmUgdGhlIGFjdHVhbAogIGNoYXJhY3RlciBzZXQgb2YgdGhlIGZpbGUgaXMga25vd24sIGEgc3Bl
Y2lhbCBzaW1wbGlmaWVkIHBhcnNlciBpcwogIHVzZWQsIHdoaWNoIG1heSBub3QgYWNjZXB0IGFs
bCBvZiB0aGUgdmFyaWF0aW9ucyB0aGF0IHRoZSBub3JtYWwKICBncmFtbWFyIHdvdWxkLiAgVGhp
cyB0ZXN0IGRldGVybWluZXMgd2hhdCB3b3JrcyBhbmQgd2hhdCBkb2Vzbid0LiAtLT4KPHN0eWxl
PnNwYW4geyBkaXNwbGF5OiBub25lIH0gLmUgeyBkaXNwbGF5OmlubGluZSB9PC9zdHlsZT4KPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjaGFyc2V0JTIwJTIydXRm
LTglMjIlM0IlMjNhMSVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsQENIQVJTRVQlMjAlMjJ1dGYtOCUyMiUzQiUyM2EyJUMz
JUE0e2Rpc3BsYXk6aW5saW5lfSI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZGF0YTp0
ZXh0L2NzcyxAQ2hBclNlVCUyMCUyMnV0Zi04JTIyJTNCJTIzYTMlQzMlQTR7ZGlzcGxheTppbmxp
bmV9Ij4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjSGFSc0V0
JTIwJTIydXRmLTglMjIlM0IlMjNhNCVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgoKPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjaGFyc2V0JTIydXRmLTglMjIlM0Il
MjNiMSVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
ImRhdGE6dGV4dC9jc3MsQGNoYXJzZXQlMjAlMjAlMjJ1dGYtOCUyMiUzQiUyM2IyJUMzJUE0e2Rp
c3BsYXk6aW5saW5lfSI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZGF0YTp0ZXh0L2Nz
cyxAY2hhcnNldCUwOSUyMnV0Zi04JTIyJTNCJTIzYjMlQzMlQTR7ZGlzcGxheTppbmxpbmV9Ij4K
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjaGFyc2V0JTBBJTIy
dXRmLTglMjIlM0IlMjNiNCVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsQGNoYXJzZXQlMEMlMjJ1dGYtOCUyMiUzQiUyM2I1
JUMzJUE0e2Rpc3BsYXk6aW5saW5lfSI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZGF0
YTp0ZXh0L2NzcyxAY2hhcnNldCUwRCUyMnV0Zi04JTIyJTNCJTIzYjYlQzMlQTR7ZGlzcGxheTpp
bmxpbmV9Ij4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJkYXRhOnRleHQvY3NzLEBjaGFy
c2V0JTIwJTIydXRmLTglMjIlMjAlM0IlMjNiNyVDMyVBNHtkaXNwbGF5OmlubGluZX0iPgo8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsJTIwQGNoYXJzZXQlMjAlMjJ1
dGYtOCUyMiUzQiUyM2I4JUMzJUE0e2Rpc3BsYXk6aW5saW5lfSI+Cgo8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsQGNoYXJzZXQlMjAlMjd1dGYtOCUyNyUzQiUyM2Mx
JUMzJUE0e2Rpc3BsYXk6aW5saW5lfSI+Cgo8Ym9keT4KPHByZT4KQGNoYXJzZXQgInV0Zi04Ijsg
ICAgPHNwYW4gaWQ9ImExJiMxOTU7JiMxNjQ7Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTEmIzIyODsi
Pnllczwvc3Bhbj4KQENIQVJTRVQgInV0Zi04IjsgICAgPHNwYW4gaWQ9ImEyJiMxOTU7JiMxNjQ7
Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTImIzIyODsiPnllczwvc3Bhbj4KQENoQXJTZVQgInV0Zi04
IjsgICAgPHNwYW4gaWQ9ImEzJiMxOTU7JiMxNjQ7Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTMmIzIy
ODsiPnllczwvc3Bhbj4KQGNIYVJzRXQgInV0Zi04IjsgICAgPHNwYW4gaWQ9ImE0JiMxOTU7JiMx
NjQ7Ij5ubzwvc3Bhbj48c3BhbiBpZD0iYTQmIzIyODsiPnllczwvc3Bhbj4KCkBjaGFyc2V0InV0
Zi04IjsgICAgIDxzcGFuIGlkPSJiMSYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImIx
JiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFyc2V0ICAidXRmLTgiOyAgIDxzcGFuIGlkPSJiMiYjMTk1
OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImIyJiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFyc2V0
XDkidXRmLTgiOyAgIDxzcGFuIGlkPSJiMyYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9
ImIzJiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFyc2V0XEEidXRmLTgiOyAgIDxzcGFuIGlkPSJiNCYj
MTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImI0JiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFy
c2V0XEMidXRmLTgiOyAgIDxzcGFuIGlkPSJiNSYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4g
aWQ9ImI1JiMyMjg7Ij55ZXM8L3NwYW4+CkBjaGFyc2V0XEQidXRmLTgiOyAgIDxzcGFuIGlkPSJi
NiYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImI2JiMyMjg7Ij55ZXM8L3NwYW4+CkBj
aGFyc2V0ICJ1dGYtOCIgOyAgIDxzcGFuIGlkPSJiNyYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNw
YW4gaWQ9ImI3JiMyMjg7Ij55ZXM8L3NwYW4+CiBAY2hhcnNldCAidXRmLTgiOyAgIDxzcGFuIGlk
PSJiOCYjMTk1OyYjMTY0OyI+bm88L3NwYW4+PHNwYW4gaWQ9ImI4JiMyMjg7Ij55ZXM8L3NwYW4+
CgpAY2hhcnNldCAndXRmLTgnOyAgICA8c3BhbiBpZD0iYzEmIzE5NTsmIzE2NDsiPm5vPC9zcGFu
PjxzcGFuIGlkPSJjMSYjMjI4OyI+eWVzPC9zcGFuPgoKPC9wcmU+CjxzY3JpcHQ+d2luZG93Lm9u
bG9hZD1mdW5jdGlvbigpewogIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwog
IHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY29kZSIpOwogIHZhciB0ID0gZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUobmF2aWdhdG9yLnVzZXJBZ2VudCk7CiAgYy5hcHBlbmRDaGlsZCh0
KTsKICBwLmFwcGVuZENoaWxkKGMpOwogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocCk7Cn08
L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>