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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>12643</bug_id>
          
          <creation_ts>2007-02-06 21:49:22 -0800</creation_ts>
          <short_desc>NPN_Status is using latin-1 encoding for the message instead of UTF-8</short_desc>
          <delta_ts>2007-02-14 10:12:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26525</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-06 21:49:22 -0800</bug_when>
    <thetext>I believe the convention is that char* pointers are UTF-8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26526</commentid>
    <comment_count>1</comment_count>
      <attachid>12996</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-06 21:52:41 -0800</bug_when>
    <thetext>Created attachment 12996
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26528</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-02-06 22:08:58 -0800</bug_when>
    <thetext>Comments in the file indicate that we use Latin1 on purpose to handle invalid input (since there&apos;s no such thing as invalid Latin1).

Darin&apos;s check-in comment (from svn) was:

Use Windows Latin-1 rather than MacRoman for messages. I guess we should test later to find out which is used by MacIE and conform to that, but for now this seems like a better default.

Have you done any testing to see what other browsers support?

I&apos;d like Darin to review this, but I think it should be a - unless we&apos;re diverging from other browsers here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26530</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-06 22:17:37 -0800</bug_when>
    <thetext>Mozilla uses UTF-8: &lt;http://lxr.mozilla.org/mozilla1.8/source/layout/generic/nsObjectFrame.cpp#2547&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26519</commentid>
    <comment_count>4</comment_count>
      <attachid>12996</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-06 22:45:42 -0800</bug_when>
    <thetext>Comment on attachment 12996
proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25245</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-02-07 06:45:27 -0800</bug_when>
    <thetext>In that case, should we convert all the calls from Latin1?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24901</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-07 09:15:57 -0800</bug_when>
    <thetext>That&apos;s a fair question! While investigating this bug, I looked for other places in WebBaseNetscapePluginView.mm that handled C strings as Latin-1, and found GetURL/PostURL. However, URLs are formally ASCII anyway, so the behavior for non-ASCII ones may be more tricky, and I didn&apos;t investigate it yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24497</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-10 06:44:36 -0800</bug_when>
    <thetext>Darin, Geoff has suggested asking you to look at this patch before landing it - could you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24077</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-12 10:39:53 -0800</bug_when>
    <thetext>I did look and talked to Geoff. I don&apos;t have anything definitive to say here except that:

    1) we should not break existing plug-ins, even ones that have assumptions about our strange behavior
    2) we should act like other browsers do, to make plug-ins work as well as possible
    3) we should behave in a way that &quot;makes sense&quot; and works with any characters
    4) if we are encoding or decoding in a way that can have failures, we need to carefully define what we do in those failure cases -- converting arbitrary bytes interpreted as Latin-1 to UTF-16 is an example of something that can never fail, as is encoding valid UTF-16 to UTF-8 bytes, where as converting to Latin-1 or decoding UTF-8 are examples of things that can fail

But I assume you already know all of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23498</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-13 11:44:03 -0800</bug_when>
    <thetext>Committed revision 19608.

I believe that in this particular case an outright failure to set status text is better than displaying garbage that may result from processing it as Latin-1, thus landing as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23395</commentid>
    <comment_count>10</comment_count>
      <attachid>13160</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-13 21:28:27 -0800</bug_when>
    <thetext>Created attachment 13160
fix the fix

Darin has pointed out that I forgot the most obvious problem: CFRelease will crash when given a null parameter. So, it&apos;s still necessary to explicitly check for conversion failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23343</commentid>
    <comment_count>11</comment_count>
      <attachid>13160</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-14 08:57:16 -0800</bug_when>
    <thetext>Comment on attachment 13160
fix the fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23304</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-14 10:12:09 -0800</bug_when>
    <thetext>Committed revision 19625.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12996</attachid>
            <date>2007-02-06 21:52:41 -0800</date>
            <delta_ts>2007-02-06 22:45:42 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>12643r1_patch.txt</filename>
            <type>text/plain</type>
            <size>1375</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMTk0NTkpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMDctMDItMDcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQzCisgICAgICAgIE5QTl9T
dGF0dXMgaXMgdXNpbmcgbGF0aW4tMSBlbmNvZGluZyBmb3IgdGhlIG1lc3NhZ2UgaW5zdGVhZCBv
ZiBVVEYtOAorCisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
OgorICAgICAgICAoLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3IHN0YXR1czpdKTogVXNlIGtD
RlN0cmluZ0VuY29kaW5nVVRGOC4KKwogMjAwNy0wMi0wNiAgS2V2aW4gRGVja2VyIDxrZGVja2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlZDogPHJkYXI6Ly9wcm9ibGVtLzQ5NzY2ODE+IEFT
U0VSVElPTiBmYWlsdXJlIG9uIHF1aXQgQCB0YWxrY3J1bmNoLmNvbSBpbiBfTlBOX1JlbGVhc2VP
YmplY3QKSW5kZXg6IFdlYktpdC9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5t
bQkocmV2aXNpb24gMTk0MzQpCisrKyBXZWJLaXQvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjE2LDcgKzIyMTYsNyBAQCBzdGF0aWMgT1NT
dGF0dXMgVFNNRXZlbnRIYW5kbGVyKEV2ZW50SGFuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBDRlN0cmluZ1JlZiBzdGF0dXMgPSBDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEws
IG1lc3NhZ2UsIGtDRlN0cmluZ0VuY29kaW5nV2luZG93c0xhdGluMSk7CisgICAgQ0ZTdHJpbmdS
ZWYgc3RhdHVzID0gQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhOVUxMLCBtZXNzYWdlLCBrQ0ZT
dHJpbmdFbmNvZGluZ1VURjgpOwogICAgIExPRyhQbHVnaW5zLCAiTlBOX1N0YXR1czogJUAiLCBz
dGF0dXMpOwogICAgIFdlYlZpZXcgKnd2ID0gW3NlbGYgd2ViVmlld107CiAgICAgW1t3diBfVUlE
ZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3diBzZXRTdGF0dXNUZXh0OihOU1N0cmluZyAqKXN0
YXR1c107Cg==
</data>
<flag name="review"
          id="5019"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13160</attachid>
            <date>2007-02-13 21:28:27 -0800</date>
            <delta_ts>2007-02-14 08:57:16 -0800</delta_ts>
            <desc>fix the fix</desc>
            <filename>12643-2.txt</filename>
            <type>text/plain</type>
            <size>1308</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMTk2MTgpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMDctMDItMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQzCisgICAgICAgIE5QTl9T
dGF0dXMgaXMgdXNpbmcgbGF0aW4tMSBlbmNvZGluZyBmb3IgdGhlIG1lc3NhZ2UgaW5zdGVhZCBv
ZiBVVEYtOAorCisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
OgorICAgICAgICAoLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3IHN0YXR1czpdKTogQ2hlY2sg
Zm9yIHBvc3NpYmxlIGNvbnZlcnNpb24gZmFpbHVyZS4KKwogMjAwNy0wMi0xMyAgT2xpdmVyIEh1
bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvaG4uCkluZGV4
OiBXZWJLaXQvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9u
IDE5NjE4KQorKysgV2ViS2l0L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjIxNyw2ICsyMjE3LDExIEBAIHN0YXRpYyBPU1N0YXR1cyBUU01F
dmVudEhhbmRsZXIoRXZlbnRIYW4KICAgICB9CiAKICAgICBDRlN0cmluZ1JlZiBzdGF0dXMgPSBD
RlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEwsIG1lc3NhZ2UsIGtDRlN0cmluZ0VuY29kaW5n
VVRGOCk7CisgICAgaWYgKCFzdGF0dXMpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJOUE5fU3RhdHVz
OiB0aGUgbWVzc2FnZSB3YXMgbm90IHZhbGlkIFVURi04Iik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCiAgICAgTE9HKFBsdWdpbnMsICJOUE5fU3RhdHVzOiAlQCIsIHN0YXR1cyk7CiAg
ICAgV2ViVmlldyAqd3YgPSBbc2VsZiB3ZWJWaWV3XTsKICAgICBbW3d2IF9VSURlbGVnYXRlRm9y
d2FyZGVyXSB3ZWJWaWV3Ond2IHNldFN0YXR1c1RleHQ6KE5TU3RyaW5nICopc3RhdHVzXTsK
</data>
<flag name="review"
          id="5114"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>