<?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>63222</bug_id>
          
          <creation_ts>2011-06-22 19:30:54 -0700</creation_ts>
          <short_desc>Add a helper function to FileList to retrieve a list of filenames.</short_desc>
          <delta_ts>2011-06-24 20:55:29 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>62069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>ap</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>425893</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-22 19:30:54 -0700</bug_when>
    <thetext>Add a helper function to FileList to retrieve a list of filenames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425895</commentid>
    <comment_count>1</comment_count>
      <attachid>98297</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-22 19:32:17 -0700</bug_when>
    <thetext>Created attachment 98297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425898</commentid>
    <comment_count>2</comment_count>
      <attachid>98297</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-22 19:37:09 -0700</bug_when>
    <thetext>Comment on attachment 98297
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425914</commentid>
    <comment_count>3</comment_count>
      <attachid>98297</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 20:08:11 -0700</bug_when>
    <thetext>Comment on attachment 98297
Patch

Clearing flags on attachment: 98297

Committed r89523: &lt;http://trac.webkit.org/changeset/89523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425915</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 20:08:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426003</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-23 00:58:57 -0700</bug_when>
    <thetext>+Vector&lt;String&gt; FileList::filenames() const
+{
+    Vector&lt;String&gt; filenames;
+    for (unsigned i = 0; i &lt; m_files.size(); ++i)
+        filenames.append(m_files[i]-&gt;path());

This function returns paths, so why is it called &quot;filenames()&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426128</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-23 06:55:10 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; +Vector&lt;String&gt; FileList::filenames() const
&gt; +{
&gt; +    Vector&lt;String&gt; filenames;
&gt; +    for (unsigned i = 0; i &lt; m_files.size(); ++i)
&gt; +        filenames.append(m_files[i]-&gt;path());
&gt; 
&gt; This function returns paths, so why is it called &quot;filenames()&quot;?

Oh, that&apos;s interesting. It seems there&apos;s a schism in how FileList is used in HTMLInputElement vs. File API. The File instances are populated from FileChoooser (http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/rendering/RenderFileUploadControl.cpp&amp;l=91), where they are definitely filenames. Then they are briefly called paths (http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/html/FileInputType.cpp&amp;l=191), while remaining to be filenames. It seems that either File objects are not semantically well-formed, or I am totally misunderstanding the meaning of word &quot;path&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426243</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-23 10:00:26 -0700</bug_when>
    <thetext>And there&apos;s also fakepath (see bug 29000).

Would be nice to clean this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426297</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-23 10:50:38 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; And there&apos;s also fakepath (see bug 29000).
&gt; 
&gt; Would be nice to clean this up.

One thing we could do is just get rid of FileList altogether for managing input[type=file]. I don&apos;t think there&apos;s an actual need for that. WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426302</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-23 10:55:47 -0700</bug_when>
    <thetext>&gt; WDYT?

I don&apos;t have anything wise to say :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427298</commentid>
    <comment_count>10</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-24 20:55:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; WDYT?
&gt; 
&gt; I don&apos;t have anything wise to say :-)

I looked at it and turns out there are good reasons for input-&gt;files() to be a FileList*. I&apos;ll just rename filenames to paths in FileList.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98297</attachid>
            <date>2011-06-22 19:32:17 -0700</date>
            <delta_ts>2011-06-22 20:08:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63222-20110622193216.patch</filename>
            <type>text/plain</type>
            <size>4298</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk0NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMGRmNjdmMGEwZTE5MjAw
ZDE3MGEyZThjYTliYWUzZGJlMWIwN2NlLi5mMGQ2NTc3YjJjN2NkMTU0Y2Q4NjdjNzMyOTE3ZTVj
N2Y0Y2QwODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDYtMjIgIERpbWl0
cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBoZWxwZXIgZnVuY3Rpb24gdG8gRmls
ZUxpc3QgdG8gcmV0cmlldmUgYSBsaXN0IG9mIGZpbGVuYW1lcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjIyCisKKyAgICAgICAgUmVmYWN0b3Jp
bmcsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVMaXN0OjpmaWxlbmFtZXMpOiBBZGRlZC4K
KyAgICAgICAgKiBmaWxlYXBpL0ZpbGVMaXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCk6IENoYW5nZWQgdG8gdXNlIG5ld2x5
IGFkZGVkIGhlbHBlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxvYWRDb250cm9s
OjpjbGljayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRy
b2w6OmZpbGVUZXh0VmFsdWUpOiBEaXR0by4KKwogMjAxMS0wNi0yMiAgRXVubWkgTGVlICA8ZXVu
bWkxNS5sZWVAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmNwcAppbmRleCBiYTgxMDg3NDgwNmRjMmFi
ZmEzNzRiZDkzNmI2NjExZTA4ODRlMTI0Li4xNGUxNzI3ZjM5OTVlNDUxOWRlNmVjNzFhZjBmZWE5
ODZhZTQxMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmNwcApAQCAtNDEsNCArNDEs
MTMgQEAgRmlsZSogRmlsZUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fZmlsZXNbaW5kZXhdLmdldCgpOwogfQogCitWZWN0b3I8U3RyaW5nPiBGaWxlTGlzdDo6
ZmlsZW5hbWVzKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXM7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZmlsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGZp
bGVuYW1lcy5hcHBlbmQobV9maWxlc1tpXS0+cGF0aCgpKTsKKworICAgIHJldHVybiBmaWxlbmFt
ZXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3Qu
aAppbmRleCBlMDc4MTkxZmMxYmY5ZDlhY2ZkMGYzNDNjODhmZGZiZDVlZTg4ZjZjLi43NzIzNjgy
ZjdkNmMwNGU3ZGY1M2MxYTYyZGM1ZGYwNjhkZWQ3YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
TGlzdC5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9maWxlcy5pc0VtcHR5KCk7IH0KICAgICAgICAg
dm9pZCBjbGVhcigpIHsgbV9maWxlcy5jbGVhcigpOyB9CiAgICAgICAgIHZvaWQgYXBwZW5kKFBh
c3NSZWZQdHI8RmlsZT4gZmlsZSkgeyBtX2ZpbGVzLmFwcGVuZChmaWxlKTsgfQorICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IEZpbGVMaXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZp
bGVVcGxvYWRDb250cm9sLmNwcAppbmRleCA1NjRiNWQyZGM1MDdmMTVlMjc2ZjgzMTc3NzA2MmVi
OTYwMzUzNzk0Li5iMjJhYjc1MjdlYzljY2MwZTVmNWM2YzlmMTNlYjBlYWY4YmYyODcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAKQEAgLTU0LDIwICs1NCwxMiBAQCBjb25zdCBpbnQgaWNvbkZpbGVuYW1lU3BhY2luZyA9
IDI7CiBjb25zdCBpbnQgZGVmYXVsdFdpZHRoTnVtQ2hhcnMgPSAzNDsKIGNvbnN0IGludCBidXR0
b25TaGFkb3dIZWlnaHQgPSAyOwogCi1zdGF0aWMgdm9pZCBmaWxlbmFtZXNGcm9tRmlsZUxpc3Qo
Y29uc3QgRmlsZUxpc3QqIGxpc3QsIFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCi17Ci0gICAg
dW5zaWduZWQgbGVuZ3RoID0gbGlzdCA/IGxpc3QtPmxlbmd0aCgpIDogMDsKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgIGZpbGVuYW1lcy5hcHBlbmQo
bGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKLX0KLQogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OlJl
bmRlckZpbGVVcGxvYWRDb250cm9sKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogICAgIDogUmVu
ZGVyQmxvY2soaW5wdXQpCiAgICAgLCBtX2ljb25Mb2FkZXIoRmlsZUljb25Mb2FkZXI6OmNyZWF0
ZSh0aGlzKSkKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXM7Ci0gICAgZmlsZW5hbWVz
RnJvbUZpbGVMaXN0KGlucHV0LT5maWxlcygpLCBmaWxlbmFtZXMpOwotICAgIHJlcXVlc3RJY29u
KGZpbGVuYW1lcyk7CisgICAgQVNTRVJUKGlucHV0LT5maWxlcygpKTsKKyAgICByZXF1ZXN0SWNv
bihpbnB1dC0+ZmlsZXMoKS0+ZmlsZW5hbWVzKCkpOwogfQogCiBSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbDo6flJlbmRlckZpbGVVcGxvYWRDb250cm9sKCkKQEAgLTEzMyw3ICsxMjUsOCBAQCB2b2lk
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjbGljaygpCiAgICAgICAgIHNldHRpbmdzLmFsbG93
c011bHRpcGxlRmlsZXMgPSBpbnB1dC0+ZmFzdEhhc0F0dHJpYnV0ZShtdWx0aXBsZUF0dHIpOwog
I2VuZGlmCiAgICAgICAgIHNldHRpbmdzLmFjY2VwdFR5cGVzID0gaW5wdXQtPmFjY2VwdCgpOwot
ICAgICAgICBmaWxlbmFtZXNGcm9tRmlsZUxpc3QoaW5wdXQtPmZpbGVzKCksIHNldHRpbmdzLnNl
bGVjdGVkRmlsZXMpOworICAgICAgICBBU1NFUlQoaW5wdXQtPmZpbGVzKCkpOworICAgICAgICBz
ZXR0aW5ncy5zZWxlY3RlZEZpbGVzID0gaW5wdXQtPmZpbGVzKCktPmZpbGVuYW1lcygpOwogICAg
ICAgICBjaHJvbWUtPnJ1bk9wZW5QYW5lbChmcmFtZSgpLCBuZXdGaWxlQ2hvb3NlcihzZXR0aW5n
cykpOwogICAgIH0KIH0KQEAgLTMyOCw5ICszMjEsOSBAQCBTdHJpbmcgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2w6OmJ1dHRvblZhbHVlKCkKIAogU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250cm9s
OjpmaWxlVGV4dFZhbHVlKCkgY29uc3QKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXM7
Ci0gICAgZmlsZW5hbWVzRnJvbUZpbGVMaXN0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
Pihub2RlKCkpLT5maWxlcygpLCBmaWxlbmFtZXMpOwotICAgIHJldHVybiB0aGVtZSgpLT5maWxl
TGlzdE5hbWVGb3JXaWR0aChmaWxlbmFtZXMsIHN0eWxlKCktPmZvbnQoKSwgbWF4RmlsZW5hbWVX
aWR0aCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihub2RlKCkpOworICAgIEFTU0VSVChpbnB1dC0+ZmlsZXMoKSk7CisgICAg
cmV0dXJuIHRoZW1lKCktPmZpbGVMaXN0TmFtZUZvcldpZHRoKGlucHV0LT5maWxlcygpLT5maWxl
bmFtZXMoKSwgc3R5bGUoKS0+Zm9udCgpLCBtYXhGaWxlbmFtZVdpZHRoKCkpOwogfQogICAgIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>