Cannot drag attachment from mail attachment pane to desktop

Bug #381017 reported by komputes on 2009-05-27
226
This bug affects 63 people
Affects Status Importance Assigned to Milestone
Mozilla Thunderbird
Confirmed
High
One Hundred Papercuts
Medium
Unassigned
SeaMonkey
Confirmed
High
thunderbird (Ubuntu)
Medium
Unassigned

Bug Description

Ubuntu 9.04
Gnome Desktop 2.26.1
Thunderbird 2.0.0.21

This is regression introduced in Jaunty as it works in Intrepid. Dragging an attachment from the attachment pane to the desktop give the following error:

==
Error while copying
There was an error getting information about "fetch>UID>.voicemail>1784".

The specified location is not supported
==

Mail account is IMAP. This error was shown to seb128 and asac. The expected behavior is that the file is copied to the destination onto which it is dragged.

User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.8.1.3) Gecko/20060601 Firefox/2.0.0.3 (Ubuntu-edgy)
Build Identifier: Thunderbird Version 2.0.0.0 (20070326) and also Version 1.5.0.10 (20070306)

If you try to move a attachment via Drag and Drop outside Thunderbird to the desktop or a folder on the PC the drag and drop cursor symbols shows up correctly but no file will be created/moved to this place (This works fine under windows)

(The error shows under Gnome Desktop Ubuntu EdgyEft 6.10 and also under Feisty Fawn 7.04)

Reproducible: Always

Steps to Reproduce:
1. drag an email attachment
2. move the cursor to desktop (press shift or control or nothing - same thing)
3. release mouse button
Actual Results:
no file will be created/moved to the drop place

Expected Results:
the attachment should moved/copied to the drop place (in windows this works fine)

I can confirm this behavior on my machine on Fedora with KDE.
it ask to create file, but actually has no content from attachment

confirmed on fedora fc 6 with thunderbird 2 release build.

with trunk build thunderbird-3.0a1.en-US.linux-i686, bug can also be reproduced

bug still exists in new TB 2.0.0.4

Created attachment 328330
Allows drag&drop of attachments from message view to desktop

Hej,

this patch allows drag&drop of attachments to the desktop by saving the requested attachment to a temporary file and passing the URL of that file in the drag object. The patch has still two issues: 1) '/tmp' is hard coded... It seems nsIFileUtilities::getTempDirPath() could help here, but how do I instantiate such a component?
2) The name of the temporary file is the same as stored in the attachment, however as it's a temporary file, it should have a unique name (like returned by mktemp(3) under Unix). nsIFileUtilities::newTempFileName() looks promising, but could it be that there is no implementation for that method?

See similar Win XP bug here:
https://bugzilla.mozilla.org/show_bug.cgi?id=384590

Bug only occurs, when attachment is "large" (> 2MB).

Ubuntu has this bug in bug tracker the link for it is
https://bugs.launchpad.net/ubuntu/+source/thunderbird/+bug/151162

Created attachment 340309
Use the directory-service for temporary file now

Hej,

the new patch uses directory-service to retrieve the temporary directory instead of hardcoding "/tmp".

Ciao,
Tobias

I hope to get to this later this week, sorry about the delay.

Comment on attachment 365417
adapt to HEAD

Mozilla is using hg now, so for future ref, please make patches against hg tip (cvs HEAD is getting old).

The patch doesn't apply cleanly to hg tip, but I've unbitrotted and played with it a bit. Will attach that in a moment.

(no sr needed for mail/ only changes, and I'm not a super-reviewer)

Created attachment 365876
proposed fix (unbitrotted)

Unbitrotted, and creating the file:// url in a safer way.

This patch works, but it's a bit ugly.

Windows doesn't need to do it this way, so I'm thinking the "proper" fix is probably somewhere in the gtk drag service

http://mxr.mozilla.org/comm-central/source/mozilla/widget/src/windows/nsDragService.cpp#559
http://mxr.mozilla.org/comm-central/source/mozilla/widget/src/gtk2/nsDragService.cpp

What do you think?

E.g. bug 267426 may be of interest, though it's windows only afaikt.

Moving from General -> MWFE, I was torn between MWFE and Message Reader UI, not so sure, feel free to change though.

We'd need litmus tests to cover this - I'm not sure if MozMill can do DnD out to a non-XUL app (i.e. to Desktop).

(In reply to comment #21)
> (In reply to comment #20)
>
> > We'd need litmus tests to cover this - I'm not sure if MozMill can do DnD out
> > to a non-XUL app (i.e. to Desktop).
>
> Good point. Do you feel about adding them ?

Not at the moment - this is a Linux-only bug AFAICT (Windows is covered somewhere else), and I touch Linux only barely. Mac doesn't seem to have this issue (but has issues with DnD of multiple-selected attachments, but that's another thing altogether).

(In reply to comment #18)
> Unbitrotted, and creating the file:// url in a safer way.
>
> This patch works, but it's a bit ugly.
Thanks for the update!

> Windows doesn't need to do it this way, so I'm thinking the "proper" fix is
> probably somewhere in the gtk drag service
>
> http://mxr.mozilla.org/comm-central/source/mozilla/widget/src/windows/nsDragService.cpp#559
> http://mxr.mozilla.org/comm-central/source/mozilla/widget/src/gtk2/nsDragService.cpp
Hmm, but how can I create such a temporary file inside the drag service implementation?

I have only a mailbox:// URL to the attachment there... what component can
I use to extract the attachment from the file, pointed by the mailbox:// URL, and store it in a temporary file?

Or is there another way to retrieve the attachment data somehow? /me is still missing the overview how these things work together :(

Ciao,
Tobias

Sorry, I don't think i'll be able to help much, and it might not be easy at all... First step is probably to figure out what windows does, and if you can do something similar on *nix.

Windows accepts native com interface iStream for data and our side fills that in. Here's a reference to the object created for windows dnd API compliance.

http://mxr.mozilla.org/comm-central/source/mozilla/widget/src/windows/nsDataObj.cpp#910

I can't do unix but writing the temp file for O/S use should be similiar backend IMO

Changed in thunderbird (Ubuntu):
status: New → Confirmed
Micah Gersten (micahg) on 2010-02-12
Changed in thunderbird (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Triaged
Changed in thunderbird:
status: Unknown → New
Changed in thunderbird:
importance: Unknown → Medium
Changed in thunderbird:
status: New → Unknown
Changed in gnome-common (Ubuntu):
status: New → Confirmed
Changed in seamonkey (Ubuntu):
status: New → Confirmed
Sparhawk (sparhawkthesecond) wrote :

Still present in Ubuntu 12.04. Again, a link gets created in Nautilus.

I can confirm this with Thunderbird 14.0 on Ubuntu 12.04 and Unity with all updates applied.

Changed in thunderbird:
importance: Medium → Unknown
Changed in kde-baseapps (Ubuntu):
status: New → Confirmed
Changed in seamonkey:
importance: Unknown → High
status: Unknown → Confirmed
Changed in thunderbird:
importance: Unknown → High
status: Unknown → Confirmed
Nick Booker (nmbooker) wrote :

A solution might be to implement the Xdnd Direct Save (XDS) protocol:

 http://freedesktop.org/wiki/Specifications/XDS

Doing the job via XDS means Thunderbird can keep control of the saving process, can react and do extra things if a file of the same name already exists (e.g. prompt the user for a different filename and allow them to cancel), and it doesn't have to create a temporary file to pass to the file manager via a uri link.

The following file managers, at least, support XdndDirectSave0 as drop targets:
 * Nautilus
 * Thunar
 * xfdesktop4
 * rox-filer

I imagine dolphin in KDE4 would support it too.

The file-roller code ( apt-get source file-roller ) and 'gtksavebox.c' in ROX-CLib ( http://sourceforge.net/projects/rox/files/ROX-CLib/2.1.10/ ) are examples of how to to it in C. I can be more specific on request.

In response to comment 88 (by karlt), explicit support isn't needed in GDK: see the source code examples I link to above.

I can confirm it's still here, with Thunderbird 17.0, Ubuntu 12.10. Happily you can still "...save as".

Having being reported on 2007-03-24 (see bug#95507), is probably going to be the oldest unfixed confirmed-and-easily-reproduced bug ever... ah no, evolution mailer has some bug older than this. *Sigh*

komputes (komputes) wrote :

A quick update after testing this on 13.04 with nautilus 1:3.6.3-0ubuntu5 and thunderbird 17.0.2+build1-0ubuntu1:

Dragging attachments from thunderbird to nautilus creates a link.
The link opens in gedit with the error:
gedit cannot handle imap: locations.

Dragging attachments from thunderbird to nautilus holding Ctrl key gives error:
Error while copying
There was an error getting information about "dir>messageid".
The specified location is not supported

The expected result is that dragging and dropping an attachment should save a copy of the file to the directory on which the file is dropped.

Robert Hrovat (robi-hipnos) wrote :

And still there on all desktops since 12.04. Gnome Classic, Unity, Thunderbird latest ...

For the records, it's still in 13.04. Why, if it isn't fixed, it will not go away alone.
This, and the multiple bugs in the Funambol sync extension, are the major obstacle to have Linux as the only workstation OS in my job.
Sigh.

Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu Package testing tracker.

A list of all reports related to this bug can be found here:
http://packages.qa.ubuntu.com/qatracker/reports/bugs/381017

tags: added: package-qa-testing

Still there in Thunderbird 24

Ninaw de Leon (neehnahw) wrote :

I'm getting this error when trying to Shift drag from the attachment pane to my Documents folder:

There was an error getting information about "fetch>UID>.INBOX>2525".

Thunderbird 17.0.8

Still here. Ubuntu 13.10, TB 24.

Maybe we can try to add this bug to the 100 papercuts project. I think it fits...

Hi, hundredpapercuts developers: I do not know if this bug fits the "easily fixable" part, but it's undeniably a very annoying papercut bug (you can live without drag and drop attachment from you *default* mailer, but still, the expected behavior is that it should work).
On the other end... this bug it has been here with us so many years that maybe is really impossible to fix.

Sparhawk (sparhawkthesecond) wrote :

This bug is a regression, so I doubt it's impossible to fix.

Adolfo Jayme (fitojb) on 2013-11-09
Changed in hundredpapercuts:
status: New → Triaged
importance: Undecided → Medium
Adolfo Jayme (fitojb) on 2013-11-09
no longer affects: gnome-common (Ubuntu)
no longer affects: kde-baseapps (Ubuntu)
no longer affects: seamonkey (Ubuntu)

@Paolo: sadly, it's probably true. I suppose we all got to grip with it (I just stopped trying it and right-click and save, you know, even in other mailer) but it is a very nasty (and, let me say, discreting) bug to have around for so much time.

s/discreting/discrediting/ in the last message.

I am using Thunderbird 24.5.0 on OpenSuse 13.1 with KDE 4.13.0. Trying to Drag and Drop an attachment to the Dolphin file manager only shows a menu for "link" (no copy). Clicking on "link" creates a .desktop file with a link to the attachment in the message. Clicking on the link just opens an empty location - the attachment does not open. It would be good if this behaviour is fixed.

If I can chime in with a comment to the developers (if anyone is listening here): I am used to never use drag and drop of attachment on TB now, given the really broken behavior.

Suggestion: ditch the thing completely. Remove drag and drop. For good.

It's so broken it is more a danger(1) than any other thing, and it is not so necessary in the end, you can live with "save as..." and company. I suppose that a bug like that not fixed in 7 years means it's too complex to fix; let's accept it and move on. Leaving an half-baked functionality is much worse than not having it.

(1) because sometime it *seems* to work; it creates an icon from which the content is not accesible at all, and can lead to data loss for unsuspecting users.

+1 Romano Giannetti
Suggestion: ditch the thing completely. Remove drag and drop. For good.

Wow, after several years of not using TB I have recently migrated from Evolution Mail only to find out this stuff does not work yet. What a pity. (Arch Linux, MATE desktop.)

I encounter this bug with :
- Thunderbird 52.8.0
- Thunar 1.6.11 (the package depends on libgtk2.0-0 package)
- Debian 9.4 with a Linux kernel

The same:
Also I have found this bug with:
- Thunderbird 52.9.0
- Thunar 1.6.11 (the package depends on libgtk2.0-0 package)
- Debian 9.4
- Xfce 4.12

Yes, still here; will not disappear alone.

I still think that the worst problem of this bug is that is _seems_ to work, and can lead to data loss. It would be much better to forbid the drag and drop completely, if fixing it is too difficult.

It seems that the firefox bug (which is listed as a duplicate, I do not think is 100% correct) #396370 has been marked as fixed. Could this be the case for thunderbird also? That would be great...

That would be great...
+1

Checked right now with thunderbird 68.2.1 --- the bug is still here. The dropped attachment creates a file which consists of a broken link.

I *suspect* that this bug has been forgot; it seems really strange that, with all the nice things happened to thunderbird in the last couple of years, no one fixed this quite gross "feature..."

Still here in TB 68.2.1. Must be a record...

Really, I suppose this bug has been forgotten... ;-)

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.