Open Bug 1538348 Opened 6 years ago Updated 20 days ago

[meta] Implement the |downloads| extension API

Categories

(GeckoView :: Extensions, enhancement, P3)

Unspecified
Android
enhancement

Tracking

(Not tracked)

People

(Reporter: agi, Unassigned)

References

(Depends on 13 open bugs, Blocks 2 open bugs)

Details

(Keywords: meta, Whiteboard: [geckoview:m78] [geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83][geckoview:m84] [geckoview:2023?])

The browser.downloads API is broken right now in GeckoView because it tries to request some android permissions using the Fennec-only (I'm assuming) DownloadCore.jsm.

In particular it uses shouldBlockForRuntimePermission: https://searchfox.org/mozilla-central/rev/7c20ad925005fbad7b8e08813115f1ec7fa1c248/toolkit/components/downloads/DownloadCore.jsm#421

We should just delegate this to the app. This is important because I think it's the only way that we have to save files from a web extension.

We will need this functionality for extensions that create files like screenshots.

OS: All → Android
Priority: -- → P2
Rank: 45
No longer blocks: 1511077

Mass moving bugs to the Extension component.

Component: General → Extensions
Rank: 45 → 29
Whiteboard: [geckoview:m78][fenix:p1]
Summary: The downloads WebExtension API runs fennec-only code → Implement the |downloads| API
Priority: P2 → P1
Assignee: nobody → bugzeeeeee
Whiteboard: [geckoview:m78][fenix:p1] → [geckoview:m78][fenix:p1][geckoview:m79]
Whiteboard: [geckoview:m78][fenix:p1][geckoview:m79] → [geckoview:m78][fenix:p1][geckoview:m79] [geckoview:m80]
Whiteboard: [geckoview:m78][fenix:p1][geckoview:m79] [geckoview:m80] → [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80]
Whiteboard: [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] → [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81]
Depends on: 1655618
Depends on: 1656336
Whiteboard: [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81] → [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82]
Whiteboard: [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82] → [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83]
Whiteboard: [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83] → [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83][geckoview:m84]
Depends on: 1675391
Depends on: 1675817
See Also: → 1678068
See Also: → 1677356
Depends on: 1680622
Depends on: 1684923
Depends on: 1689442
Priority: P1 → --
Summary: Implement the |downloads| API → [meta] Implement the |downloads| API
Keywords: meta
Depends on: 1694439
Assignee: bugzeeeeee → nobody

GeckoView has implemented some parts of the downloads API, but it isn't actually hooked up with Android-Components (and by extension not available in Fenix). This is a feature request for the functionality: https://github.com/mozilla-mobile/fenix/issues/16585

Tentatively set this bug's priority to P2 so we review it for GV's 2022 H2 planning.

Severity: normal → N/A
Priority: -- → P2
Priority: P2 → P3
Whiteboard: [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83][geckoview:m84] → [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83][geckoview:m84] [geckoview:2023?]

This bug is still relevant.

Summary: [meta] Implement the |downloads| API → [meta] Implement the |downloads| extension API
Whiteboard: [geckoview:m78][fenix:p2][geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83][geckoview:m84] [geckoview:2023?] → [geckoview:m78] [geckoview:m79] [geckoview:m80] [geckoview:m81][geckoview:m82][geckoview:m83][geckoview:m84] [geckoview:2023?]
Rank: 29 → 333
Depends on: 1815315
Depends on: 1816963
Depends on: 1816965
Depends on: 1817739
Depends on: 1817740
Depends on: 1817745
Depends on: 1817746
Depends on: 1817747
Depends on: 1817748
Depends on: 1817749
Depends on: 1817751
Duplicate of this bug: 1793214
No longer duplicate of this bug: 1793214
See Also: → 1793214
Depends on: 1793214
See Also: 1793214

Hi. I work on Video DownloadHelper extension (2M users).

And I'd like to make the extension available to our users on Firefox Android (and even advertise Firefox for Android to our Desktop users).

But we need browser.downloads.download (downloading an internal blob URL), and optionally .show() or .showDefaultFolder().

Anyway I can help with this? I can work on a patch myself if that helps (I worked on patches for Firefox Android before) as long as I have a clear understanding of what Mozilla is willing to accept as a patch (I've read the attached doc).

WebDriver BiDi also specifies two events around downloads: downloadWillBegin and downloadEnd.

Whatever is implemented here for the webextension API would probably be useful for us as well.

You need to log in before you can comment on or make changes to this bug.