mozilla / web-ext

A command line tool to help build, run, and test web extensions
Mozilla Public License 2.0
2.71k stars 339 forks source link

Adding `chromium-android` to `run` #3259

Open avi12 opened 1 month ago

avi12 commented 1 month ago

Is this a feature request or a bug?

Feature request

What is the current behavior?

Currently, the only Android-related run config is firefox-android

What is the expected or desired behavior?

Given devices listed via adb devices (both physical and emulators), allow continuous debugging of an extension running on Chromium browsers like Kiwi

rpl commented 3 weeks ago

We discussed briefly about this enhancement request and we agreed that we would be willing to consider a contributed pull request that introduce that kind of support, as long as it is something that can be implemented with an approach that doesn't feel likely to break too easily with updates to the browsers supported through the new chromium-android target.

Rob--W commented 3 weeks ago

Chromium does not have official support for mobile Android. It is not certain that the mechanism to load an extension would be the same across Chromium forks. But if it is, I am supportive of adding a "chromium-android" target.

avi12 commented 3 weeks ago

There are at least two browsers that officially support Chromium extensions: Kiwi and Edge While on Edge it's in beta, it seems like this is the direction the team is going in

Rob--W commented 3 weeks ago

Kiwi and Chromium are forks of Chromium. Because the Chromium project does not have official support for extensions on mobile Android, they need custom patches to enable extension support on Android. The implementation to install new extensions can be the same or completely different. There is no way to tell because Chrome does not support it yet.

For Chrome desktop, we currently rely on the --load-extension command line flag to install extensions. This is most likely not going to work on Android. It is very likely for Chromium-based Android apps that support extensions to have independent unique mechanisms to load extensions externally, if that functionality exists at all.

FYI: there is currently work in progress to specify an extension to the WebDriver-bidi protocol to install extensions. If this were to be implemented by Chrome and becomes available, it could potentially be a reliable way to install extensions across forks. That PR is at https://github.com/w3c/webdriver-bidi/pull/778