Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

[Meta] WebExtension Support #5315

Closed
vesta0 opened this issue Sep 13, 2019 · 47 comments
Closed

[Meta] WebExtension Support #5315

vesta0 opened this issue Sep 13, 2019 · 47 comments
Assignees
Labels
Feature:WebExtensions needs:ac Needs Android Component Work needs:gv GeckoView bug required to fix the issue. See bugzilla.mozilla.org

Comments

@vesta0
Copy link
Collaborator

vesta0 commented Sep 13, 2019

We want to bring WebExtensions support to Fenix and provide our users with the choice to customize their browsing experience.

Follow our progress here on the WebExtensions project Board: https://github.com/orgs/mozilla-mobile/projects/44#card-26664450

┆Issue is synchronized with this Jira Task

@vesta0 vesta0 added this to To be Triaged in Fenix Sprint Kanban via automation Sep 13, 2019
@vesta0 vesta0 added Feature:WebExtensions needs:ac Needs Android Component Work needs:gv GeckoView bug required to fix the issue. See bugzilla.mozilla.org must labels Sep 13, 2019
@lime124 lime124 moved this from To be Triaged to In Design in Fenix Sprint Kanban Sep 13, 2019
@lime124 lime124 moved this from In Design to Prioritized UX Backlog in Fenix Sprint Kanban Sep 13, 2019
@vesta0 vesta0 added this to Competitiveness & Differentiation in Fenix Feature Requests Sep 17, 2019
@yoasif
Copy link
Contributor

yoasif commented Sep 18, 2019

Can you open the Google doc up @vesta0?

@creesch
Copy link

creesch commented Sep 18, 2019

I concur, having feature briefs linked in an open source project that only people with access can see seems to go against the open source spirit. If it is an on going internal discussion I sort of understand but having some context here for us eagerly following development would be nice.

@cadeyrn
Copy link
Contributor

cadeyrn commented Sep 18, 2019

@vesta0 As add-on developer I am particularly interested in the APIs you plan to support. What is the best place to talk about the APIs I need to port my add-ons to Fenix?

@vesta0 vesta0 added this to Q4 2019 in Fenix Feature Maturity Sep 18, 2019
@vesta0 vesta0 added this to User Stories in A-C: WebExtensions and AddOns Sep 19, 2019
@vesta0
Copy link
Collaborator Author

vesta0 commented Sep 20, 2019

@yoasif @cadeyrn @creesch I will share more details as soon as we have them! The cross-functional team is currently discussing various approaches and we should have a plan soon. Thanks for your interest and stay tuned!

@julian-alarcon
Copy link

Isn't this a duplicate of this one? #574

@vesta0 vesta0 assigned brampitoyo and unassigned apbitner Sep 24, 2019
@lime124 lime124 added the ux:xl label Sep 25, 2019
@vesta0 vesta0 moved this from Prioritized UX Backlog to In Design in Fenix Sprint Kanban Sep 26, 2019
@vesta0 vesta0 moved this from Competitiveness to Privacy & Differentiation in Fenix Feature Requests Sep 26, 2019
@androidacy-user
Copy link

I'm sorry if I seem rude, but in almost every open source project I've seen recently "exploring ways to implement" or similar really just means "if we get really bored we'll do it but probably not"
I'm just going to say that I chose Firefox over Chrome for two reasons on Android: it's not run by Google (privacy concerns) and supports add-ons. Before the speed of Chrome made it preferable. Firefox preview has finally caught up on the speed front so that's no longer a hindrance.
In addition, browsers like Samsung internet support a limited range of extensions in the firm of content blockers, and now kiwi browser (based on Chrome) fully supports extensions.

Please, please do not let this become just another abandoned side project that was ditched in favor of "performance and security" (rough excuse Google uses for no add-ons on Android Chrome), and listen to your users. That's been one of the key differences between Mozilla and Google let's keep it that way

I'll be eagerly watching this issue for updates, keep 'em coming!

@vesta0
Copy link
Collaborator Author

vesta0 commented Oct 10, 2019

We have started the foundational work. It will be a while before it makes it into the product but you can follow it here :)

@Lusito
Copy link

Lusito commented Oct 20, 2019

Just want to throw this in as an extension developer:
It would be very appreciated, if the web-extension code could be shared between desktop and mobile.

Currently, you often see support for an API on desktop, but not on mobile. This essentially makes one of my extensions incompatible with Firefox android and the other one only supports a very limited subset of the features of the desktop version. If this was a common code-base, new apis could arrive at the same time.

@vesta0
Copy link
Collaborator Author

vesta0 commented Feb 8, 2020

Thank you everyone for your feedback so far. I’d like to clarify my earlier comment, as it might have left room for interpretation, and I apologize if this has caused misunderstanding.

Since Firefox Preview is built on a completely new foundation, this affects the APIs we can support in this early stage of the rollout. At the same time, we are excited about the enhanced performance, privacy, and security benefits of Firefox Preview, so we want to make it available to everyone as quickly as possible.

I mentioned that we will be building API support exclusively for the Recommended Extensions program, which is true for our near-term plans. We don’t expect this to be true in the long run. Prioritizing support for recommended extensions allows us to ensure that the first supported add-ons will be secure and work well on the new Firefox for Android.

While it is currently not possible to install other extensions, we would like to expand our support for them. There are add-ons that aren’t currently part of the Recommended Extensions program but are super useful on mobile. We’d like to find a place for those. We will be better able to plan for them once we support more APIs and make improvements to the overall developer and user experience.

We’ll keep you updated on our progress on the add-ons blog. If you’d like to discuss add-on support in Firefox for Android further, please head over to our community forum. As a gentle reminder, please remember that comments on this issue and our community forums are expected to adhere to Mozilla’s Community Participation Guidelines.

@madb1lly
Copy link

Well, I don't use uBlock origin so the current WebExtension support is unuseful to me. How is further support being prioritised? Is it by number of users of a specific Add-On? Is it by the most commonly used APIs? Or some other method?

@cadeyrn
Copy link
Contributor

cadeyrn commented Feb 27, 2020

@madb1lly see https://blog.mozilla.org/addons/2020/02/11/faq-for-extension-support-in-new-firefox-for-android/

@madb1lly
Copy link

Hello @cadeyrn thank you, I had already read that. From my understanding it does not answer my questions:

How is further support being prioritised? Is it by number of users of a specific Add-On? Is it by the most commonly used APIs? Or some other method?

@cadeyrn
Copy link
Contributor

cadeyrn commented Feb 27, 2020

Read below the headlines "Will more add-ons be supported in the future?" and "Will add-ons not part of the Recommended Extensions program ever be supported on the new Firefox for Android?". These parts are about prioritization.

@madb1lly
Copy link

@cadeyrn in my opinion they don't explicitly address my questions, however since you think that they do, please can you provide clear answers? Is support being prioritised based on number of users of a specific Add-On? Is it by the most commonly used APIs? Or some other method?

@pwd-github
Copy link

pwd-github commented Feb 27, 2020

@madb1lly I would guess that at this point they're still unsure. I suspect that they're going to see how it goes with uBlock Origin before committing to anything or any specific road map.

I see that Billy's question got a couple of thumbs downs. I think his question was a fair one and thus to ask for clarification is also fair. It's okay to ask questions.

@Juraj-Masiar
Copy link

As you can see (and hear) in the last Show and tell (4:30), whole existing Firefox for Android API should be already (!!!) supported in Fenix:
https://mzl.la/add-on-demos-2020-02-20

@creesch
Copy link

creesch commented Feb 27, 2020

As you can see (and hear) in the last Show and tell (4:30), whole existing Firefox for Android API should be already (!!!) supported in Fenix:
https://mzl.la/add-on-demos-2020-02-20

Except that they give no option to install any other webextension besides the ones they preapproved. In fact the FAQ posted after @vesta0's last reply here is even more definitive as she was in that supporting anything else is simply not on the horizon.

I am still of the opinion that closing of the webextensions to anything than preapproved extensions is a bad idea.

  1. It means that only existing extensions can be made suitable for mobile so anyone having an idea specifically for a mobile only extension will not be able to do so.
  2. Limiting it to only a few extensions only makes sure that the explicit way those extensions call on the api works. It doesn't expose issues around edge cases or simply around unused bits of the extension api. Even if you are not going to prioritize them right away you'd think you want to be aware of those issues as early as possible.
  3. It really goes against the open nature of the internet Mozilla advocates.

@madb1lly
Copy link

Thanks @Juraj-Masiar. @creesch you're right, there's still no official way to enable or install other add-ons, which may be reasonable for the normal Firefox Preview but in Nightly it seems odd.

@creesch
Copy link

creesch commented Feb 27, 2020

It seems I might have missed something from the demo (I didn't watch the entire video for obvious reasons), but it seems we can actually test extensions now with the latest web-ext?

@creesch
Copy link

creesch commented Feb 27, 2020

And here is how you test your webextension as a developer

  1. On your android device enable developer settings and enable debugging over USB.
  2. Install ADB (android device bridge) which comes bundled with the android SDK, if you don't want the entire sdk download the platform tools windows url extract them and add the directory you added to the path.
  3. Install web-ext globally.
  4. Connect your phone via USB.
  5. From your extension directory (where manifest.json is located) run web-ext to run your extension.
     web-ext run --target=firefox-android --android-device=<IDGOESHERE> --firefox-apk=org.mozilla.fenix.nightly
    
    Obviously you need to know your device id, simply run the command first without the --android-device flag and it will list the connected android devices (make sure to also accept on your device).

Frankly, it baffles me that nobody at Mozilla thought to communicate this here and instead resorted to the vague things as said in the FAQ and previously here. Developers of extensions also want to be prepared and get an idea of where things stand.

@mozilla-mobile mozilla-mobile locked as off-topic and limited conversation to collaborators Feb 27, 2020
@vesta0 vesta0 removed this from Must in Fenix Q4 Feature Backlog Mar 29, 2020
@vesta0 vesta0 removed this from Theme: Privacy in Fenix Feature Requests Mar 29, 2020
@vesta0 vesta0 removed this from Must in Fenix Q1 Feature Backlog Mar 29, 2020
@vesta0 vesta0 removed this from In Design in Fenix Sprint Kanban Mar 29, 2020
@vesta0 vesta0 moved this from Q4 2019 to Q1 2020 in Fenix Feature Maturity Mar 29, 2020
@vesta0 vesta0 moved this from Q1 2020 to Q2 2020 in Fenix Feature Maturity Mar 29, 2020
@vesta0 vesta0 added this to Foundational Work in Fenix Q2 Feature Backlog Mar 29, 2020
@lime124 lime124 added this to In Design in Fenix Sprint Kanban Apr 3, 2020
@lime124 lime124 moved this from In Design to Prioritized UX Backlog in Fenix Sprint Kanban Apr 3, 2020
@lime124 lime124 moved this from Prioritized UX Backlog to In Design in Fenix Sprint Kanban Apr 29, 2020
@vesta0 vesta0 added this to Q2: A-C, SYNC, GV, Perf, Pocket in Fenix Product Backlog May 12, 2020
@vesta0
Copy link
Collaborator Author

vesta0 commented Jun 22, 2020

This meta issue was created to track our first milestone: build the foundational support for WebExtensions and ship a few of the most used/wanted add-ons on mobile: uBlock origin, NoScript, HTTPS Everywhere, Privacy Badger, Dark Reader, and Search By Image. Since initial support has now landed, we will close this issue, and file separate ones to track future milestones. You can still follow the in progress/planned work here: https://github.com/orgs/mozilla-mobile/projects/44#card-26664450

If you’d like to learn more about our future plans, please keep an eye out on https://blog.mozilla.org/addons/

@vesta0 vesta0 closed this as completed Jun 22, 2020
Fenix Sprint Kanban automation moved this from In Design to Sprint 20.11 Done Jun 22, 2020
@vesta0 vesta0 moved this from Important bugs to Q2: Individual User Stories in Fenix Product Backlog Sep 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Feature:WebExtensions needs:ac Needs Android Component Work needs:gv GeckoView bug required to fix the issue. See bugzilla.mozilla.org
Projects
A-C: WebExtensions and AddOns
  
Q4 User Stories
Fenix Sprint Kanban
  
Sprint 20.11 Done
Fenix Q2 Feature Backlog
Differentiate beyond the browser
Development

No branches or pull requests