<?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>49848</bug_id>
          
          <creation_ts>2010-11-19 18:03:22 -0800</creation_ts>
          <short_desc>Make it possible to display the last character of a secure text field unobscured</short_desc>
          <delta_ts>2010-11-20 11:03:14 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>311792</commentid>
    <comment_count>0</comment_count>
      <attachid>74451</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-11-19 18:03:22 -0800</bug_when>
    <thetext>Created attachment 74451
Patch

Reviewed by NOBODY (OOPS!).

* JavaScriptCore.exp:
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::secure): Added argument that controls whether
the last character is obscured or not.  Implemented behavior.
* wtf/text/StringImpl.h:
(WTF::StringImpl::LastCharacterBehavior): Added enum.
(WTF::StringImpl::secure): Updated method signature.
---
 4 files changed, 26 insertions(+), 5 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311843</commentid>
    <comment_count>1</comment_count>
      <attachid>74451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-19 20:35:59 -0800</bug_when>
    <thetext>Comment on attachment 74451
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=74451&amp;action=review

&gt; JavaScriptCore/wtf/text/StringImpl.cpp:277
&gt; +    if (m_length) {

I think it would be better to say:

    if (!m_length)
        return this;

At the start of the function, even before the createUninitialized call.

&gt; JavaScriptCore/wtf/text/StringImpl.cpp:278
&gt; +        const unsigned lastCharacterIndex = m_length - 1;

We normally don’t use const for local variables like this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311844</commentid>
    <comment_count>2</comment_count>
      <attachid>74451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-19 20:36:20 -0800</bug_when>
    <thetext>Comment on attachment 74451
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=74451&amp;action=review

&gt; JavaScriptCore/wtf/text/StringImpl.h:290
&gt; +    PassRefPtr&lt;StringImpl&gt; secure(UChar, LastCharacterBehavior behavior = HideLastCharacter);

We could omit the argument name “behavior” here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311959</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-11-20 11:03:14 -0800</bug_when>
    <thetext>Committed r72477: &lt;http://trac.webkit.org/changeset/72477&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74451</attachid>
            <date>2010-11-19 18:03:22 -0800</date>
            <delta_ts>2010-11-19 20:36:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>20101119180320.patch</filename>
            <type>text/plain</type>
            <size>3253</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBhNmQ1OGJmYzkxYTY1Y2ZiMDExNmQ5ODUwZjM2NTBmZmZiMzk4N2M4Li42
ODNhYzcwYjg5MWI5MTg1MWIzMTJkZmRjOGZjNGU1Zjk3ZTFiN2UwIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTAtMTEtMTkgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KKworICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGRpc3BsYXkgdGhlIGxhc3QgY2hhcmFj
dGVyIG9mIGEgc2VjdXJlIHRleHQgZmllbGQgdW5vYnNjdXJlZAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAg
ICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBs
OjpzZWN1cmUpOiBBZGRlZCBhcmd1bWVudCB0aGF0IGNvbnRyb2xzIHdoZXRoZXIKKyAgICAgICAg
dGhlIGxhc3QgY2hhcmFjdGVyIGlzIG9ic2N1cmVkIG9yIG5vdC4gIEltcGxlbWVudGVkIGJlaGF2
aW9yLgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKFdURjo6U3Ry
aW5nSW1wbDo6TGFzdENoYXJhY3RlckJlaGF2aW9yKTogQWRkZWQgZW51bS4KKyAgICAgICAgKFdU
Rjo6U3RyaW5nSW1wbDo6c2VjdXJlKTogVXBkYXRlZCBtZXRob2Qgc2lnbmF0dXJlLgorCiAyMDEw
LTExLTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgPGh0
dHA6Ly93ZWJraXQub3JnL2IvNDk2MzQ+IE1ha2Ugb3ZlcmZsb3cgZ3VhcmRzIGluIFdURjo6U3Ry
aW5nOjp1dGY4IGV4cGxpY2l0CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggMzcxNWE0
MzgzN2RjOTEwZThkZTcwZTQzM2VkMjZmZWIxNTQxODBkMy4uYWM1ZDBkN2NlZjQxYzhhOTU2NTVk
MGZkYmI0YmUwZGY0Mzc5ZGM5YyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMzUw
LDcgKzM1MCw3IEBAIF9fWk4zV1RGMTBTdHJpbmdJbXBsNXVwcGVyRXYKIF9fWk4zV1RGMTBTdHJp
bmdJbXBsNmNyZWF0ZUVQS2MKIF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNyZWF0ZUVQS2NqCiBfX1pO
M1dURjEwU3RyaW5nSW1wbDZjcmVhdGVFUEt0agotX19aTjNXVEYxMFN0cmluZ0ltcGw2c2VjdXJl
RXQKK19fWk4zV1RGMTBTdHJpbmdJbXBsNnNlY3VyZUV0TlMwXzIxTGFzdENoYXJhY3RlckJlaGF2
aW9yRQogX19aTjNXVEYxMFN0cmluZ0ltcGw3cmVwbGFjZUVQUzBfUzFfCiBfX1pOM1dURjEwU3Ry
aW5nSW1wbDdyZXBsYWNlRWpqUFMwXwogX19aTjNXVEYxMFN0cmluZ0ltcGw3cmVwbGFjZUV0UFMw
XwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgYi9K
YXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCAxYzRkZTY2MDgxMmYy
YzVmZTdjYTgzZTBkYTNlMTA4NGJlYzFiYWEwLi5jYmI3ZDI2YTBmZDNiN2QzMTYzODk4MWNiNjI5
ZmVlMDM5ZGViNjQ3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApAQCAt
MjcwLDEyICsyNzAsMTYgQEAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp1cHBl
cigpCiAgICAgcmV0dXJuIG5ld0ltcGwucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+IFN0cmluZ0ltcGw6OnNlY3VyZShVQ2hhciBjaGFyYWN0ZXIpCitQYXNzUmVmUHRyPFN0
cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnNlY3VyZShVQ2hhciBjaGFyYWN0ZXIsIExhc3RDaGFyYWN0
ZXJCZWhhdmlvciBiZWhhdmlvcikKIHsKICAgICBVQ2hhciogZGF0YTsKICAgICBSZWZQdHI8U3Ry
aW5nSW1wbD4gbmV3SW1wbCA9IGNyZWF0ZVVuaW5pdGlhbGl6ZWQobV9sZW5ndGgsIGRhdGEpOwot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xlbmd0aDsgKytpKQotICAgICAgICBkYXRh
W2ldID0gY2hhcmFjdGVyOworICAgIGlmIChtX2xlbmd0aCkgeworICAgICAgICBjb25zdCB1bnNp
Z25lZCBsYXN0Q2hhcmFjdGVySW5kZXggPSBtX2xlbmd0aCAtIDE7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsYXN0Q2hhcmFjdGVySW5kZXg7ICsraSkKKyAgICAgICAgICAgIGRh
dGFbaV0gPSBjaGFyYWN0ZXI7CisgICAgICAgIGRhdGFbbGFzdENoYXJhY3RlckluZGV4XSA9IChi
ZWhhdmlvciA9PSBIaWRlTGFzdENoYXJhY3RlcikgPyBjaGFyYWN0ZXIgOiBtX2RhdGFbbGFzdENo
YXJhY3RlckluZGV4XTsKKyAgICB9CiAgICAgcmV0dXJuIG5ld0ltcGwucmVsZWFzZSgpOwogfQog
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9KYXZh
U2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXggOGYwYWY1MjQ4MGJiYzk4MWQ1
NDU4ODZiMmQxOTk2YWMyN2M4ZGRkMS4uNWRjM2YxNDVkNGY4N2MwNDQ3YzA5NmFiMzcwM2U0N2Rh
YTVlYzZhNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtMjg0LDcgKzI4
NCwxMCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGxvd2VyKCk7CiAg
ICAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiB1cHBlcigpOwotICAgIFBhc3NSZWZQdHI8U3RyaW5n
SW1wbD4gc2VjdXJlKFVDaGFyIGFDaGFyKTsKKworICAgIGVudW0gTGFzdENoYXJhY3RlckJlaGF2
aW9yIHsgSGlkZUxhc3RDaGFyYWN0ZXIsIFNob3dMYXN0Q2hhcmFjdGVyIH07CisKKyAgICBQYXNz
UmVmUHRyPFN0cmluZ0ltcGw+IHNlY3VyZShVQ2hhciwgTGFzdENoYXJhY3RlckJlaGF2aW9yIGJl
aGF2aW9yID0gSGlkZUxhc3RDaGFyYWN0ZXIpOwogICAgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4g
Zm9sZENhc2UoKTsKIAogICAgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc3RyaXBXaGl0ZVNwYWNl
KCk7Cg==
</data>
<flag name="review"
          id="65061"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>