-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
As a Firefox extension developer, I would like to install a temporary extension from a folder #8357
Comments
Please can we have a 2 separate PRs for each language. I will try get them merged ASAP |
Will do. Thanks for the quick reply David. |
Hey @AutomatedTester, before I submit any code changes I wanted to check-in with a bit of a pivot. I've had a good chat with some of the Mozilla devs on chat.mozilla.org from the interop and Add-ons channels. BackgroundFirefoxDriver will dispatch a command to install an addon. GeckoDriver supports two variants of this command:
The "addon" is the Base64 encoded contents of a .xpi or .zip packed addon.
What did I get wrong in the issue description?
Proposed ChangesWe'll want every language to use the same behaviour. When asked to install an addon, we should check the file type of the argument. When we have an .xpi or .zip file, we should send the command using the "addon"-type message. Otherwise, we'll use the "path". To save space in the table below, I'll call it "🍍".
We can also update the API docs to include a note that Firefox needs to be configured to allow -- Actions
|
I'd like to suggest a different approach. Instead of checking the file extension or type, the API could allow the caller to specify whether the given path is local or remote. If local, then the code should read the file and send it to the server using the I think this would be more flexible and give the caller more control over the behavior. |
Without temporary flag we can't add unsigned extensions |
Is there any update about this issue? Thanks. |
Java fix is here - 932cbf9 I'm working to get everything implemented with |
That makes sense with |
As the issue title says, I aim to install a temporary extension from a folder using Firefox. Using the Java bindings, this was already possible in Chrome using
According to the release notes, this is also possible with Firefox in version 4.1.1, recently released. I tried to use the new feature in one of my tests as follows:
But I get the following exception:
It seems that it is not possible to give the folder in which the extension (under development) is located. If I use the packaged extension (as a zip), I managed to make it work, but I would like to use the unpackaged folder. Is it not possible to use an unpackaged extension in Firefox (like in Chrome with |
First, in Chrome it would be easier to use the provided Right now, all the languages are just working with zipped files not directories. I think an argument can be made that this should be Selenium's responsibility instead of the user's responsibility, but since this isn't something that blocks a user from accessing the temporary extension functionality, I think it belongs in a separate feature request. |
I think I found a problem in the current implementation of |
I have just discovered that there was no problem in the implementation of |
This was merged, will be available in 4.5 |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Edit: 2020-06-11 –⚠️ This initial comment is not correct. I misunderstood the GeckoDriver API. I was looking at stale source code. 😓 With new knowledge and some guidance from the GeckoDriver team, I've proposed an approach to handle the "install addon" command from FirefoxDriver consistently for each language. See my long comment below.
--
🐛 Bug Report
We can't install a temporary extension in Firefox using the JavaScript or DotNet bindings. The implementation is inconsistent across the languages. The GeckoDriver API expects a
path
as a String but we're sending anaddon
. See mozilla/geckodriver - marionette.rs.These two bindings need to be fixed:
These seem to be OK:
To Reproduce
Try to install an extension without building an .xpi or .zip file using dotnet and javascript bindings.
TODO - Script
Expected behavior
I expect to be able to install a temporary extension in Firefox:
installAddon
InstallAddOn
InstallAddOnFromFile
is also made redundantTest script or set of commands reproducing this issue
TODO - Include in example repo.
The steps to reproduce are:
Environment
OS: macOS
Browser: Firefox
Browser version: 71.0
Browser Driver version: GeckoDriver for the last 2+ years
Language Bindings version: Latest
Selenium Grid version (if applicable): Not applicable
Questions
The text was updated successfully, but these errors were encountered: