www.dropbox.com - Unable to upload files
Categories
(Web Compatibility :: Site Reports, defect, P1)
Tracking
(Webcompat Priority:P1, Webcompat Score:9, firefox128 wontfix, firefox130 wontfix, firefox138 wontfix, firefox141 verified)
People
(Reporter: ctanase, Unassigned)
References
()
Details
(Keywords: webcompat:platform-bug, webcompat:site-report, Whiteboard: [webcompat-source:web-bugs][webcompat:sightline])
User Story
platform:android impact:workflow-broken configuration:general affects:all branch:release diagnosis-team:webcompat
Attachments
(2 files)
Environment:
Operating system: Android 11
Firefox version: Firefox Mobile 128.0/130
Steps to reproduce:
- Go to https://www.dropbox.com
- Log into your account.
- Tap on "Upload" and then on "File".
- Upload any file.
- Observe the behavior.
Expected Behavior:
The file gets uploaded.
Actual Behavior:
The file is stuck in queue.
Notes:
- Reproduces regardless of the status of ETP
- Reproduces in Firefox Nightly, and Firefox Release
- Does not reproduce in Chrome
Created from https://github.com/webcompat/web-bugs/issues/139564
| Reporter | ||
Comment 1•2 years ago
|
||
| Reporter | ||
Updated•2 years ago
|
Updated•2 years ago
|
Updated•1 year ago
|
Comment 2•1 year ago
|
||
In Chrome, uploading happens via POST to https://www.dropbox.com/2/files/upload_session/append_v2 which happens after https://www.dropbox.com/cmd/upload_precheck
Comment 3•1 year ago
|
||
We get this far and it looks like isWebkitFile is false which causes us to not get much further:
this.uploadLocalFiles = async() => {
const t = this.itemsAsList.filter(
(
t => t.source === s.FileSource.Computer &&
!t.isDir &&
t.file &&
- 1 !== Q.indexOf(t.status)
)
);
for (const e of t) e.file &&
s.isWebkitFile(e.file) &&
(
this.scheduler.addFile(e.file, e.destPath, e, e.contentEncryptionInfo),
e.status = s.UploadStatus.Queued,
e.bytesUploaded = 0,
this.updateParentStatus(e)
);
this.isStopped = !1,
this.notifyAll(),
await this.scheduler.startUploading(),
this.notifyAll()
isWebkitFile looks something like: e => 'webkitRelativePath' in e
Comment 4•1 year ago
|
||
webkitRelativePath is not exposed on Android because:
- name: dom.webkitBlink.dirPicker.enabled
type: RelaxedAtomicBool
value: @IS_NOT_ANDROID@
mirror: always
Comment 5•1 year ago
|
||
setting dom.webkitBlink.dirPicker.enabled=true makes uploading work
Comment 6•1 year ago
|
||
dom.webkitBlink.dirPicker.enabled has always been disabled on Android: https://hg.mozilla.org/mozilla-central/rev/5785e6e80c66
Smaug, do you know why?
Updated•1 year ago
|
Comment 7•1 year ago
|
||
baku might recall. (Was it that there isn't/wasn't a good file picker or what on Android?)
Comment 8•1 year ago
|
||
Baku said he doesn't remember. I'll investigate.
Comment 9•1 year ago
|
||
<input type=file webkitdirectory> is definitely not working on Android when enabled, but it is not really working on mobile Chrome either.
Need to do some more testing.
Comment 10•1 year ago
|
||
There's logging under "FilePickerDelegate" which may help:
const { debug, warn } = GeckoViewUtils.initLogging("FilePickerDelegate");
Comment 11•1 year ago
|
||
Aha, https://searchfox.org/mozilla-central/rev/6e6265bd607cbe4c96e714f86d3d9e36620f63d6/mobile/shared/components/geckoview/FilePickerDelegate.sys.mjs#20,23
That is why https://mozilla.pettay.fi/moztests/webkitdirectory.html can't work even if the pref is enabled.
Comment 12•1 year ago
|
||
I guess that GeckoView side have to design delegate API (bug 1674428).
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Comment 13•1 year ago
|
||
Still broken, sits on "Waiting". Note that bug 1674428 has landed, but did not fix this. Jeff, can you recheck what you found before?
| Reporter | ||
Comment 14•1 year ago
|
||
I confirm it's still an issue on the latest Nightly, the upload remains stuck in queue.
| Reporter | ||
Updated•1 year ago
|
Comment 15•1 year ago
|
||
SInce bug 1674428 didn't fix this, can you take another look? Thanks
Comment 16•1 year ago
•
|
||
Summarizing the history a bit:
- Per comment 5 - 6, it sounds like the Dropbox JS here only works if
dom.webkitBlink.dirPicker.enabledis set totrue - That pref has always been off-by-default on mobile due to some missing piece there (comment 6, comment 11), and maybe (?) the missing piece was just bug 1674428 (comment 12).
- We've now fixed bug 1674428. (But the pref is still off-by-default which is the main thing here, and that's why Dropbox still doesn't work.)
Maybe we can enable the pref on Android now (i.e. make it true instead of @IS_NOT_MOBILE@)? Or is there something beyond bug 1674428 that we need to fix before we can enable that pref? Adding ni=smaug since he had looked into what-if-anything was forcing us to keep that pref disabled and had a testcase (comment 8, comment 11).
Comment 17•1 year ago
|
||
It looks to me that bug 1887878 is needed to resolve the problem fully, and Makoto is assigned to that.
Comment 18•1 year ago
|
||
Hmm, or is that implemented already
https://searchfox.org/mozilla-central/rev/88e49196740d9448f44506c2239a475c6c9eadc7/dom/html/HTMLInputElement.cpp#802,844
https://searchfox.org/mozilla-central/rev/88e49196740d9448f44506c2239a475c6c9eadc7/mobile/shared/components/geckoview/FilePickerDelegate.sys.mjs#28
Comment 19•1 year ago
•
|
||
bug 1674428 added API only, so this has no UX. Actually, I am working on android component to implement directory picker as bug 1887878. When I fix it, I will turn on both prefs in its bug.
Updated•1 year ago
|
Comment 20•1 year ago
|
||
This works now with bug 1887878 fixed
Comment 21•1 year ago
|
||
Verified as FIXED using RC Build fenix android-arm64-v8a
Tested with:
Browser / Version: Firefox 141.0 Build 2016102626
Operating System: Google Pixel 3 (Android 12) -1080 x 2160 pixels, 18:9 ratio (~443 ppi density)
Operating System: Oppo Find X5 (Android 13) - 1080 x 2400 pixels, 20:9 ratio (~402 ppi density)
Updated•1 year ago
|
Comment 22•1 year ago
|
||
Updated•1 year ago
|
Description
•