<?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>8733</bug_id>
          
          <creation_ts>2006-05-04 10:15:23 -0700</creation_ts>
          <short_desc>Add drag &amp; drop support to &lt;input type=file&gt; controls</short_desc>
          <delta_ts>2006-05-04 11:23:00 -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>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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41231</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-04 10:15:23 -0700</bug_when>
    <thetext>This finally just bugged me enough last night that I did it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41232</commentid>
    <comment_count>1</comment_count>
      <attachid>8105</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-04 10:24:57 -0700</bug_when>
    <thetext>Created attachment 8105
Add drag &amp; drop support to &lt;input type=file&gt;

There are a few concerns I have with this patch:

1.  Is this really in the right place (on the actual WebCoreFileButton instead of the WebHTMLView?)
2.  Does it look right (it overlays 25% gray)
3.  Should we support things other than just normal files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41234</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-05-04 10:29:02 -0700</bug_when>
    <thetext>*** Bug 5733 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41235</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-04 10:29:34 -0700</bug_when>
    <thetext>Ah yes, my 4th concern:
4. does this have security implications?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41236</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-05-04 10:29:55 -0700</bug_when>
    <thetext>Bug 5733 mentions Radar # 3083272.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41237</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-04 10:30:31 -0700</bug_when>
    <thetext>5. I currently don&apos;t accept file promises... maybe it should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41253</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Omernick">timo</who>
    <bug_when>2006-05-04 11:13:27 -0700</bug_when>
    <thetext>Great patch!

- WebCoreFileButton seems like a fine place to do this, at least until the file upload control is pushed down into the engine.  We already accept file drags to the page content area to set the current URL.  You could still hack this at the document view level but I think this is simpler.

- 25% gray overlay seems fine.  If not, we can certainly tweak it.

- Handling file promise drags would be good, but I don&apos;t think you need to finish that before landing this patch.

- Not sure if there are any security implications.  I think that since the user is entirely in control of the file being picked, there&apos;s no risk that a page author could programmatically traverse symlinks and gain access to a file that the user didn&apos;t expect.  Maybe one of our security gurus can correct me on this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8105</attachid>
            <date>2006-05-04 10:24:57 -0700</date>
            <delta_ts>2006-05-04 11:13:36 -0700</delta_ts>
            <desc>Add drag &amp; drop support to &lt;input type=file&gt;</desc>
            <filename>drag.patch</filename>
            <type>text/plain</type>
            <size>6217</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IG1hbnVhbC10ZXN0cy9pbnB1dC10eXBlLWZpbGUtZHJhZy1kcm9wLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gbWFudWFsLXRlc3RzL2lucHV0LXR5cGUtZmlsZS1kcmFnLWRyb3AuaHRtbAkocmV2
aXNpb24gMCkKKysrIG1hbnVhbC10ZXN0cy9pbnB1dC10eXBlLWZpbGUtZHJhZy1kcm9wLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorPGlucHV0IHR5cGU9ZmlsZT4KKzxwPgorSW5w
dXQgdHlwZT1maWxlIHNob3VsZCBiZSBhYmxlIHRvIHN1cHBvcnQgZHJhZyBhbmQgZHJvcCBvZiBm
aWxlcy4gIEl0IHNob3VsZCBzaG93IGF0IGxlYXN0IHRoZSBmb2xsb3dpbmc6Cis8L3A+Cis8b2w+
Cis8bGk+IEFjY2VwdCBub3JtYWwgZmlsZSBkcmFncyAoaW5kaWNhdGluZyBhY2NwZXRhbmNlIGR1
cmluZyBob3ZlcikKKzxsaT4gUmVqZWN0IGRpcmV0b3J5IGFuZCBub24tbm9ybWFsIGZpbGUgZHJh
Z3MKKzxsaT4gRHJvcHBpbmcgYSBzeW1saW5rJ2QgZmlsZSBzaG91bGQgYWNjcGVjdC9zaG93L3Vw
bG9hZCB0aGUgdGFyZ2V0LCBub3QgdGhlIHN5bWxpbmsgaXRzZWxmLgorPC9vbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNDE3NykKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDA2LTA1LTA0ICBFcmljIFNlaWRlbCAgPGVzZWlkZWxAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBkcmFn
ICYgZHJvcCBzdXBwb3J0IHRvIDxpbnB1dCB0eXBlPSJmaWxlIj4KKyAgICAgICAgaHR0cDovL2J1
Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD04NzMzCisKKyAgICAgICAgVGVz
dDogbWFudWFsL2lucHV0LXR5cGUtZmlsZS1kcmFnLWRyb3AuaHRtbAorCisgICAgICAgICoga3dx
L0tXUUZpbGVCdXR0b24ubW06CisgICAgICAgICgtW1dlYkZpbGVDaG9vc2VyQnV0dG9uIGluaXRX
aXRoV2lkZ2V0OjpdKToKKyAgICAgICAgKC1bV2ViQ29yZUZpbGVCdXR0b24gaW5pdFdpdGhXaWRn
ZXQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVGaWxlQnV0dG9uIGRyYXdSZWN0Ol0pOgorICAgICAg
ICAoLVtXZWJDb3JlRmlsZUJ1dHRvbiB1cGRhdGVMYWJlbF0pOgorICAgICAgICAoLVtXZWJDb3Jl
RmlsZUJ1dHRvbiBzZXRGaWxlbmFtZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZUZpbGVCdXR0b24g
Y2hhbmdlRmlsZW5hbWU6XSk6CisgICAgICAgICgtW1dlYkNvcmVGaWxlQnV0dG9uIGNob29zZUZp
bGVuYW1lOl0pOgorICAgICAgICAodmFsaWRGaWxlbmFtZUZyb21QYXN0ZWJvYXJkKToKKyAgICAg
ICAgKC1bV2ViQ29yZUZpbGVCdXR0b24gZHJhZ2dpbmdFbnRlcmVkOl0pOgorICAgICAgICAoLVtX
ZWJDb3JlRmlsZUJ1dHRvbiBkcmFnZ2luZ0V4aXRlZDpdKToKKyAgICAgICAgKC1bV2ViQ29yZUZp
bGVCdXR0b24gcGVyZm9ybURyYWdPcGVyYXRpb246XSk6CisKIDIwMDYtMDUtMDMgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4
OiBrd3EvS1dRRmlsZUJ1dHRvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRRmlsZUJ1dHRvbi5t
bQkocmV2aXNpb24gMTQxNzQpCisrKyBrd3EvS1dRRmlsZUJ1dHRvbi5tbQkod29ya2luZyBjb3B5
KQpAQCAtNjgsNiArNjgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBOU1N0cmlu
ZyAqX2xhYmVsOwogICAgIEJPT0wgX2luTmV4dFZhbGlkS2V5VmlldzsKICAgICBLV1FGaWxlQnV0
dG9uICpfd2lkZ2V0OworICAgIEJPT0wgX2lzQ3VycmVudERyYWdUYXJnZXQ7CiB9CiAtICh2b2lk
KXNldEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lOwogLSAodm9pZClwZXJmb3JtQ2xpY2s7
CkBAIC05Miw2ICs5Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIHNlbGYgPSBb
c3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOworICAgIFtz
ZWxmIHJlZ2lzdGVyRm9yRHJhZ2dlZFR5cGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpOU0Zp
bGVuYW1lc1Bib2FyZFR5cGVdXTsKIAogICAgIF93aWRnZXQgPSB3aWRnZXQ7CiAgICAgcmV0dXJu
IHNlbGY7CkBAIC0xNTQsNiArMTU2LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAg
IE5TRm9udCAqZm9udCA9IFtfYnV0dG9uIGZvbnRdOwogICAgIE5TRGljdGlvbmFyeSAqYXR0cmli
dXRlcyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Q6Zm9udCBmb3JLZXk6TlNG
b250QXR0cmlidXRlTmFtZV07CiAgICAgW19sYWJlbCBkcmF3QXRQb2ludDpOU01ha2VQb2ludChs
ZWZ0LCBbc2VsZiBiYXNlbGluZV0gLSBbW19idXR0b24gZm9udF0gYXNjZW5kZXJdKSB3aXRoQXR0
cmlidXRlczphdHRyaWJ1dGVzXTsKKyAgICAKKyAgICBpZiAoX2lzQ3VycmVudERyYWdUYXJnZXQp
IHsKKyAgICAgICAgW1tOU0NvbG9yIGNvbG9yV2l0aENhbGlicmF0ZWRSZWQ6MC4wZiBncmVlbjow
LjBmIGJsdWU6MC4wZiBhbHBoYTowLjI1Zl0gc2V0XTsKKyAgICAgICAgTlNSZWN0RmlsbFVzaW5n
T3BlcmF0aW9uKFtzZWxmIGJvdW5kc10sIE5TQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgfQog
CiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHJlc3RvcmVHcmFwaGljc1N0YXRlXTsKIH0KQEAgLTE2
MywxNiArMTcwLDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIFtfbGFiZWwgcmVs
ZWFzZV07CiAgICAgCiAgICAgTlNTdHJpbmcgKmxhYmVsOwotICAgIGlmIChbX2ZpbGVuYW1lIGxl
bmd0aF0pIHsKKyAgICBpZiAoW19maWxlbmFtZSBsZW5ndGhdKQogICAgICAgICBsYWJlbCA9IF9m
aWxlbmFtZTsKLSAgICB9IGVsc2UgeworICAgIGVsc2UKICAgICAgICAgbGFiZWwgPSBbW1dlYkNv
cmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bF07Ci0gICAgfQogICAgIAogICAgIGZsb2F0IGxlZnQgPSBOU01heFgoW19idXR0b24gZnJhbWVd
KSArIEFGVEVSX0JVVFRPTl9TUEFDSU5HOwotICAgIGlmIChfaWNvbikgeworICAgIGlmIChfaWNv
bikKICAgICAgICAgbGVmdCArPSBJQ09OX1dJRFRIICsgSUNPTl9GSUxFTkFNRV9TUEFDSU5HOwot
ICAgIH0KICAgICBmbG9hdCBsYWJlbFdpZHRoID0gW3NlbGYgYm91bmRzXS5zaXplLndpZHRoIC0g
bGVmdDsKIAogICAgIF9sYWJlbCA9IGxhYmVsV2lkdGggPD0gMCA/IG5pbCA6IFtbV2ViQ29yZVN0
cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0ZVN0cmluZzoKQEAgLTE4Nyw5ICsxOTIsOSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBfZmlsZW5hbWUgPSBjb3B5OwogICAgIAogICAg
IFtfaWNvbiByZWxlYXNlXTsKLSAgICBpZiAoW19maWxlbmFtZSBsZW5ndGhdID09IDAgfHwgW19m
aWxlbmFtZSBjaGFyYWN0ZXJBdEluZGV4OjBdICE9ICcvJykgeworICAgIGlmIChbX2ZpbGVuYW1l
IGxlbmd0aF0gPT0gMCB8fCBbX2ZpbGVuYW1lIGNoYXJhY3RlckF0SW5kZXg6MF0gIT0gJy8nKQog
ICAgICAgICBfaWNvbiA9IG5pbDsKLSAgICB9IGVsc2UgeworICAgIGVsc2UgewogICAgICAgICBf
aWNvbiA9IFtbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gaWNvbkZvckZpbGU6X2ZpbGVu
YW1lXSByZXRhaW5dOwogICAgICAgICAvLyBJJ20gbm90IHN1cmUgd2h5IHRoaXMgaGFzIGFueSBl
ZmZlY3QsIGJ1dCBpbmNsdWRpbmcgdGhpcyBsaW5lIG9mIGNvZGUgc2VlbXMgdG8gbWFrZQogICAg
ICAgICAvLyB0aGUgaW1hZ2UgYXBwZWFyIHJpZ2h0LXNpZGUtdXAuIEFzIGZhciBhcyBJIGtub3cs
IHRoZSBkcmF3SW5SZWN0IG1ldGhvZCB1c2VkIGFib3ZlCkBAIC0yNjYsNyArMjcxLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgW2JyaWRnZSBydW5PcGVuUGFuZWxGb3JGaWxlQnV0
dG9uV2l0aFJlc3VsdExpc3RlbmVyOnNlbGZdOwogfQogCi0tICh2b2lkKWNob29zZUZpbGVuYW1l
OihOU1N0cmluZyAqKWZpbGVuYW1lCistICh2b2lkKWNoYW5nZUZpbGVuYW1lOihOU1N0cmluZyAq
KWZpbGVuYW1lCiB7CiAgICAgLy8gVGhlICE9IGNoZWNrIGhlcmUgbWFrZXMgc3VyZSB3ZSBkb24n
dCBjb25zaWRlciBhIGNoYW5nZSBmcm9tIG5pbCB0byBuaWwgYXMgYSBjaGFuZ2UuCiAgICAgaWYg
KF9maWxlbmFtZSAhPSBmaWxlbmFtZSAmJiAhW19maWxlbmFtZSBpc0VxdWFsVG9TdHJpbmc6Zmls
ZW5hbWVdKSB7CkBAIC0yNzQsNiArMjc5LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
ICAgICAgICBpZiAoX3dpZGdldCkKICAgICAgICAgICAgIF93aWRnZXQtPmZpbGVuYW1lQ2hhbmdl
ZChEZXByZWNhdGVkU3RyaW5nOjpmcm9tTlNTdHJpbmcoZmlsZW5hbWUpKTsKICAgICB9Cit9CisK
Ky0gKHZvaWQpY2hvb3NlRmlsZW5hbWU6KE5TU3RyaW5nICopZmlsZW5hbWUKK3sKKyAgICBbc2Vs
ZiBjaGFuZ2VGaWxlbmFtZTpmaWxlbmFtZV07CiAgICAgV2ViQ29yZUZyYW1lQnJpZGdlICpicmlk
Z2UgPSBGcmFtZU1hYzo6YnJpZGdlRm9yV2lkZ2V0KF93aWRnZXQpOwogICAgIFticmlkZ2UgcmVs
ZWFzZV07CiB9CkBAIC0zNTEsNiArMzYxLDQ4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
ICAgIFtfYnV0dG9uIHBlcmZvcm1DbGljazpuaWxdOwogfQogCitzdGF0aWMgTlNTdHJpbmcgKnZh
bGlkRmlsZW5hbWVGcm9tUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQqIHBCb2FyZCkKK3sKKyAgICBO
U0FycmF5ICpmaWxlbmFtZXMgPSBbcEJvYXJkIHByb3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFt
ZXNQYm9hcmRUeXBlXTsKKyAgICBpZiAoW2ZpbGVuYW1lcyBjb3VudF0gPT0gMSkgeworICAgICAg
ICBOU1N0cmluZyAqZmlsZW5hbWUgPSBbZmlsZW5hbWVzIG9iamVjdEF0SW5kZXg6MF07CisgICAg
ICAgIE5TRGljdGlvbmFyeSAqZmlsZUF0dHJpYnV0ZXMgPSBbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGZpbGVBdHRyaWJ1dGVzQXRQYXRoOmZpbGVuYW1lIHRyYXZlcnNlTGluazpZRVNd
OworICAgICAgICBpZiAoW1tmaWxlQXR0cmlidXRlcyBmaWxlVHlwZV0gaXNFcXVhbFRvU3RyaW5n
Ok5TRmlsZVR5cGVSZWd1bGFyXSkKKyAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZTsKKyAgICB9
CisgICAgcmV0dXJuIG5pbDsKK30KKworLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nRW50ZXJl
ZDooaWQgPE5TRHJhZ2dpbmdJbmZvPilzZW5kZXIKK3sKKyAgICBpZiAodmFsaWRGaWxlbmFtZUZy
b21QYXN0ZWJvYXJkKFtzZW5kZXIgZHJhZ2dpbmdQYXN0ZWJvYXJkXSkpIHsKKyAgICAgICAgX2lz
Q3VycmVudERyYWdUYXJnZXQgPSBZRVM7CisgICAgICAgIFtzZWxmIHNldE5lZWRzRGlzcGxheTpZ
RVNdOworICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uQ29weTsKKyAgICB9CisgICAgcmV0
dXJuIE5TRHJhZ09wZXJhdGlvbk5vbmU7Cit9CisKKy0gKHZvaWQpZHJhZ2dpbmdFeGl0ZWQ6KGlk
IDxOU0RyYWdnaW5nSW5mbz4pc2VuZGVyCit7CisgICAgaWYgKF9pc0N1cnJlbnREcmFnVGFyZ2V0
KSB7CisgICAgICAgIF9pc0N1cnJlbnREcmFnVGFyZ2V0ID0gTk87CisgICAgICAgIFtzZWxmIHNl
dE5lZWRzRGlzcGxheTpZRVNdOworICAgIH0KK30KKworLSAoQk9PTClwZXJmb3JtRHJhZ09wZXJh
dGlvbjooaWQgPE5TRHJhZ2dpbmdJbmZvPilzZW5kZXIKK3sKKyAgICBfaXNDdXJyZW50RHJhZ1Rh
cmdldCA9IE5POworICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IHZhbGlkRmlsZW5hbWVGcm9tUGFz
dGVib2FyZChbc2VuZGVyIGRyYWdnaW5nUGFzdGVib2FyZF0pOworICAgIGlmIChmaWxlbmFtZSkg
eworICAgICAgICBbc2VsZiBjaGFuZ2VGaWxlbmFtZTpmaWxlbmFtZV07CisgICAgICAgIFtzZWxm
IHNldE5lZWRzRGlzcGxheTpZRVNdOworICAgICAgICByZXR1cm4gWUVTOworICAgIH0KKyAgICBy
ZXR1cm4gTk87Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkZpbGVDaG9vc2VyQnV0
dG9uCg==
</data>
<flag name="review"
          id="2246"
          type_id="1"
          status="+"
          setter="timo"
    />
          </attachment>
      

    </bug>

</bugzilla>