<?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>26471</bug_id>
          
          <creation_ts>2009-06-16 22:00:14 -0700</creation_ts>
          <short_desc>Redundant &apos;change&apos; event for &lt;input type=file&gt;</short_desc>
          <delta_ts>2009-06-17 10:01:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</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="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126382</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-06-16 22:00:14 -0700</bug_when>
    <thetext>The current implementation of FileChooser.cpp produces some redundant &apos;change&apos; events in a case that the selected file is not changed.

It makes a problem only in Chrome for now, and it is possible to resolve the problem by changing the Chrome code.  However to change the WebKit code is safer and reasonable.
See http://crbug.com/14162</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126385</commentid>
    <comment_count>1</comment_count>
      <attachid>31399</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-06-16 22:04:05 -0700</bug_when>
    <thetext>Created attachment 31399
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126395</commentid>
    <comment_count>2</comment_count>
      <attachid>31399</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-06-16 23:37:42 -0700</bug_when>
    <thetext>Comment on attachment 31399
Proposed patch

&gt; Index: WebCore/ChangeLog
...
&gt; +2009-06-16  Kent Tamura  &lt;tkent@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +	Don&apos;t fire redundant &apos;change&apos; events for a file upload form.

nit: please replace tabs with whitespaces


&gt; +
&gt; +        WARNING: NO TEST CASES ADDED OR CHANGED

nit: you can delete this line.

it is also good practice to include a link to this bug in this ChangeLog entry.


&gt; +        * platform/FileChooser.cpp:
&gt; +        (WebCore::FileChooser::chooseFiles): Do nothing if there are no existing selected files and no incoming selected files, or if the size of both of existing selected files and incoming selected files is 1 and filenames are identical.

nit: this can probably be shortened a bit.  it is good to mention what you changed, but it
would probably be enough to say &quot;suppress change event if an empty path is chosen when
m_filenames is empty.&quot;  &lt;-  just documents what you added


Otherwise, this change looks good to me.  I think this is good to add to
WebCore since it may similarly benefit other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126396</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-06-16 23:39:30 -0700</bug_when>
    <thetext>&gt; +    if (m_filenames.isEmpty() &amp;&amp; filenames.isEmpty())
&gt; +        return;
&gt; +    if (m_filenames.size() == 1 &amp;&amp; filenames.size() == 1 &amp;&amp; m_filenames[0] == filenames[0])
&gt; +        return;

How about just:

    if (m_filenames == filenames)

here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126401</commentid>
    <comment_count>4</comment_count>
      <attachid>31403</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-06-17 00:10:36 -0700</bug_when>
    <thetext>Created attachment 31403
Proposed patch (rev.2)

Thank you for the comments.  I have revised the patch.
I confirmed &quot;m_filenames == filenames&quot; worked fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126482</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-06-17 10:01:23 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/44767</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31399</attachid>
            <date>2009-06-16 22:04:05 -0700</date>
            <delta_ts>2009-06-17 00:10:36 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>chooser.patch</filename>
            <type>text/plain</type>
            <size>1776</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDc1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDYtMTYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisJRG9uJ3QgZmly
ZSByZWR1bmRhbnQgJ2NoYW5nZScgZXZlbnRzIGZvciBhIGZpbGUgdXBsb2FkIGZvcm0uCisKKyAg
ICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAg
KiBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nl
cjo6Y2hvb3NlRmlsZXMpOiBEbyBub3RoaW5nIGlmIHRoZXJlIGFyZSBubyBleGlzdGluZyBzZWxl
Y3RlZCBmaWxlcyBhbmQgbm8gaW5jb21pbmcgc2VsZWN0ZWQgZmlsZXMsIG9yIGlmIHRoZSBzaXpl
IG9mIGJvdGggb2YgZXhpc3Rpbmcgc2VsZWN0ZWQgZmlsZXMgYW5kIGluY29taW5nIHNlbGVjdGVk
IGZpbGVzIGlzIDEgYW5kIGZpbGVuYW1lcyBhcmUgaWRlbnRpY2FsLgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZUNob29zZXI6OmNob29zZUljb24pOiBSZXR1cm5zIDAgaWYgdGhlcmUgaXMgbm8gc2Vs
ZWN0ZWQgZmlsZXMuCisKIDIwMDktMDYtMTYgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAJKHJldmlzaW9uIDQ0NzQ4KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDEwIEBAIHZv
aWQgRmlsZUNob29zZXI6OmNob29zZUZpbGUoY29uc3QgU3RyaW4KIAogdm9pZCBGaWxlQ2hvb3Nl
cjo6Y2hvb3NlRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKIHsKKyAgICBp
ZiAobV9maWxlbmFtZXMuaXNFbXB0eSgpICYmIGZpbGVuYW1lcy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAobV9maWxlbmFtZXMuc2l6ZSgpID09IDEgJiYgZmlsZW5hbWVzLnNp
emUoKSA9PSAxICYmIG1fZmlsZW5hbWVzWzBdID09IGZpbGVuYW1lc1swXSkKKyAgICAgICAgcmV0
dXJuOwogICAgIG1fZmlsZW5hbWVzID0gZmlsZW5hbWVzOwogICAgIG1faWNvbiA9IGNob29zZUlj
b24oZmlsZW5hbWVzKTsKICAgICBpZiAobV9jbGllbnQpCkBAIC04NSw2ICs4OSw4IEBAIFBhc3NS
ZWZQdHI8SWNvbj4gRmlsZUNob29zZXI6OmNob29zZUljb24KIAogUGFzc1JlZlB0cjxJY29uPiBG
aWxlQ2hvb3Nlcjo6Y2hvb3NlSWNvbihWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiB7CisgICAg
aWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOwogICAgIGlmIChmaWxl
bmFtZXMuc2l6ZSgpID09IDEpCiAgICAgICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9yRmls
ZShmaWxlbmFtZXNbMF0pOwogICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmls
ZW5hbWVzKTsK
</data>
<flag name="review"
          id="16066"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31403</attachid>
            <date>2009-06-17 00:10:36 -0700</date>
            <delta_ts>2009-06-17 09:40:32 -0700</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>chooser-2.patch</filename>
            <type>text/plain</type>
            <size>1557</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDc1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDYtMTYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERv
bid0IGZpcmUgcmVkdW5kYW50ICdjaGFuZ2UnIGV2ZW50cyBmb3IgYSBmaWxlIHVwbG9hZCBmb3Jt
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY0NzEK
KworICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyk6IFN1cHByZXNzIGNoYW5nZSBldmVudCBpZiB0aGUg
ZXhpc3Rpbmcgc2VsZWN0ZWQgZmlsZXMgYW5kIHRoZSBpbmNvbWluZyBzZWxlY3RlZCBmaWxlcyBh
cmUgZXF1YWwuCisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y2hvb3NlSWNvbik6IFJl
dHVybnMgMCBpZiB0aGVyZSBpcyBubyBzZWxlY3RlZCBmaWxlcy4KKwogMjAwOS0wNi0xNiAgQnJp
YW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRlbGUgUGV0ZXJzb24uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAkocmV2aXNp
b24gNDQ3NDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzIsNiArNzIsOCBAQCB2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlKGNvbnN0
IFN0cmluCiAKIHZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMpCiB7CisgICAgaWYgKG1fZmlsZW5hbWVzID09IGZpbGVuYW1lcykKKyAg
ICAgICAgcmV0dXJuOwogICAgIG1fZmlsZW5hbWVzID0gZmlsZW5hbWVzOwogICAgIG1faWNvbiA9
IGNob29zZUljb24oZmlsZW5hbWVzKTsKICAgICBpZiAobV9jbGllbnQpCkBAIC04NSw2ICs4Nyw4
IEBAIFBhc3NSZWZQdHI8SWNvbj4gRmlsZUNob29zZXI6OmNob29zZUljb24KIAogUGFzc1JlZlB0
cjxJY29uPiBGaWxlQ2hvb3Nlcjo6Y2hvb3NlSWNvbihWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMp
CiB7CisgICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOwogICAg
IGlmIChmaWxlbmFtZXMuc2l6ZSgpID09IDEpCiAgICAgICAgIHJldHVybiBJY29uOjpjcmVhdGVJ
Y29uRm9yRmlsZShmaWxlbmFtZXNbMF0pOwogICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9y
RmlsZXMoZmlsZW5hbWVzKTsK
</data>
<flag name="review"
          id="16069"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>