Closed Bug 1967706 Opened 8 months ago Closed 6 months ago

web.whatsapp.com - Dragging and dropping image saves a .url file instead of the image itself

Categories

(Web Compatibility :: Site Reports, defect, P2)

Firefox 140
x86_64
Windows 10

Tracking

(Webcompat Priority:P2, Webcompat Score:6, firefox140 affected)

RESOLVED DUPLICATE of bug 1670200
Webcompat Priority P2
Webcompat Score 6
Tracking Status
firefox140 --- affected

People

(Reporter: selim, Unassigned)

References

()

Details

(Keywords: webcompat:platform-bug, webcompat:site-report, Whiteboard: [webcompat:sightline])

User Story

platform:windows
impact:annoyance
configuration:general
affects:all
branch:release
user-impact-score:210
diagnosis-team:dom

Steps to reproduce

  1. Login to https://web.whatsapp.com/
  2. Drag any recieved image to desktop.

Result

A file named blob_https___web.whatsapp.com_<random_id> is created. Double clicking that file returns this error message:
Unable to open this Internet Shortcut. The protocol "blob" does not have a registered program.

I cannot reproduce this on Chrome. Dragging and dropping on Chrome creates a regular JPEG file.

I cannot reproduce on Nightly (2025-05-21) and macOS. Could you test on a different profile, or in troubleshoot mode?

This was actually reported by a forum user using Firefox 138 on Windows and I was able to reproduce on Nightly on Windows. I'm also able to reproduce in troubleshoot mode. I suppose this could be a Windows-only issue?

Component: Untriaged → Site Reports
Product: Firefox → Web Compatibility
Webcompat Score: --- → 1
Severity: -- → S4
User Story: (updated)
Webcompat Priority: --- → P2
Webcompat Score: 1 → 6
Depends on: 1670200
Priority: -- → P2
Whiteboard: [webcompat:sightline]

I don't think we ever understood what's going on even in bug 1670200. Pushing back to the needs-diagnosis state.

User Story: (updated)

It sounds like this is known. Edgar knows more about the drag and drop code.

Edgar, do you mind confirm the behaviour here? Thanks

Flags: needinfo?(echen)

I could also reproduce this.
Since drag and drop a image with http/https URL to desktop creates a regular file, I suspect the issue may be related to blob URLs. Perhaps we doesn't generate proper native dnd entry for blob URL in widget layer? I will try to take a look.

I dump the DataObject entry for both case,

Drag image with HTTP/HTTPS URL to desktop:

[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/x-moz-url
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT FileGroupDescriptor
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT FileGroupDescriptorW
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT FileContents
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT UniformResourceLocator
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT UniformResourceLocatorW
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/x-moz-url-data
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/x-moz-url-desc
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT application/x-moz-custom-clipdata
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/_moz_htmlcontext
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/_moz_htmlinfo
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/html
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT HTML Format
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT CF_UNICODETEXT
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT CF_TEXT
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT application/x-moz-nativeimage
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT PNG
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT CF_DIBV5
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT CF_DIB
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT CF_HDROP
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT Preferred DropEffect
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT application/x-moz-file-promise-url
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT application/x-moz-file-promise-dest-filename
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT DragImageBits
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT DragContext
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT IsShowingLayered
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT DragWindow

Drag image with blob URL to desktop:

[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/x-moz-url
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT FileGroupDescriptor
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT FileGroupDescriptorW
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT FileContents
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT UniformResourceLocator
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT UniformResourceLocatorW
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/x-moz-url-data
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/x-moz-url-desc
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT application/x-moz-custom-clipdata
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/_moz_htmlcontext
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/_moz_htmlinfo
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT text/html
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT HTML Format
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT CF_UNICODETEXT
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT CF_TEXT
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT DragImageBits
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT DragContext
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT IsShowingLayered
[Parent 25400: Main Thread]: D/WidgetDragService FORMAT DragWindow

We do include FileGroupDescriptorW and FileContents in the DataObject entry, but I suspect there may be some issues with the content.

Okay, the nsITransfer carries different data to trigger dnd.

Drag image with HTTP/HTTPS URL:

[Parent 21524: Main Thread]: D/WidgetDragService MIME text/x-moz-url
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/x-moz-url-data
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/x-moz-url-desc
[Parent 21524: Main Thread]: D/WidgetDragService MIME application/x-moz-custom-clipdata
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/_moz_htmlcontext
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/_moz_htmlinfo
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/html
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/plain
[Parent 21524: Main Thread]: D/WidgetDragService MIME application/x-moz-nativeimage
[Parent 21524: Main Thread]: D/WidgetDragService MIME application/x-moz-file-promise
[Parent 21524: Main Thread]: D/WidgetDragService MIME application/x-moz-file-promise-url
[Parent 21524: Main Thread]: D/WidgetDragService MIME application/x-moz-file-promise-dest-filename

Drag image with blob URL:

[Parent 21524: Main Thread]: D/WidgetDragService MIME text/x-moz-url
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/x-moz-url-data
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/x-moz-url-desc
[Parent 21524: Main Thread]: D/WidgetDragService MIME application/x-moz-custom-clipdata
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/_moz_htmlcontext
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/_moz_htmlinfo
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/html
[Parent 21524: Main Thread]: D/WidgetDragService MIME text/plain

This looks like a platform bug to me.

Flags: needinfo?(echen)

(I am working on the fix in bug 1670200)

The latest Nightly should contain the fix for bug 1670200. And I can no longer reproduce the issue on Windows.
Selim, could you help confirm whether the fix works on your end as well? Thanks!

Flags: needinfo?(selim)

I can confirm that it works fine on the latest Nightly.

Flags: needinfo?(selim)

Thank you.

Status: NEW → RESOLVED
Closed: 6 months ago
Duplicate of bug: 1670200
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.