Skip to content
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

Multiple issues with 8.x including broken basic functionality in Firefox #70

Closed
0xquad opened this issue Dec 9, 2023 · 13 comments
Closed
Labels
discussion Needs further discussion

Comments

@0xquad
Copy link

0xquad commented Dec 9, 2023

I also woke up to the new version today and I'm adding my voice to the disappointed users.

Firefox 120 Windows; dark theme. Both for personal tasks and in a corporate environment for testing purposes.

  • Proxies are not taken into account anymore, even when forced (selected explicitly)
  • Requests to localhost (such as SSH SOCKS tunneling) don't work
  • Icons don't match well with the dark theme
  • The interface is so globally different that it's super hard to navigate and interact with it in general
  • The UI controls look out of proportion, spacing between the UI elements looks very off and it's confusing
  • The popup menu on the toolbar is confusing
    • what is the Filter box for?
    • why are not all my proxies showing up?
    • what are Tab proxies and how do they work? it honestly feels scary to interact in any way with that given the state of the rest
    • icons are disproportioned versus text
  • It isn't clear what the Location aspect of the extension is for (both in the popup menu and for each proxy); if it was present in version 7.x I've never used that
  • Possibly other things, but these are my first impressions; I refrain from playing with anything else to ensure I don't mess things up

I feel sorry to report this kind of ticket as I know a lot of effort from the author must have been put into trying to improve the extension (including trying to merge the code bases, etc.) but objectively, I really think that it wasn't the way to roll out such a radically different version of the product.

I'm actually glad that I've found out this weekend instead of Monday morning during work hours where I would have lost so much time trying to understand what was going on, and migrate back to the older version and avoid messing my settings in the process (on my workstation and repeat the process for all VMs, etc.).

A few suggestions for the future:

  • Notify users WELL in advance that a whole new version is coming (months!)
  • Use reminders throughout the migration period
  • Provide a way for the users to backup their settings
  • Document and communique how to block the new version and to force staying on the older version for a reasonable period (months!)

I know FoxyProxy is not super mission-critical but given its uses and general usage, breaking changes (as this update brought) should not be taken lightly for the sake of the user base; unfortunately it has consequences for people who use it seriously.

Having said that, thank you for such a great and useful extension, I hope to see a more usable version soon.

@erosman
Copy link
Collaborator

erosman commented Dec 9, 2023

Just a quick note on the history of v8

  • The v8 development was started in 2022 and the first beta version was created in Aug 2022 (IIRC).
  • Some of the changes are due to the limitations/changes impose by Google in manifest v3.
  • The feature that are seen, like the filter, were requested by the users here and in the old repo for v7.
  • There is a Help document included with the extension.
  • The development has been discussed for the last 16 months.
  • There is no method to contact extension users to inform them of he changes.
  • There is no method to give users notice of upgrade in advance.

@c0xc
Copy link

c0xc commented Dec 9, 2023

I know FoxyProxy is not super mission-critical but given its uses and general usage, breaking changes (as this update brought) should not be taken lightly for the sake of the user base; unfortunately it has consequences for people who use it seriously.

It is mission-critical in some environments where you'd have an ssh tunnel to a remote jump host to open admin pages from a device in that environment in Firefox. That's not possible anymore with Foxyproxy 8.

Workaround:

  1. Save all your Foxyproxy settings - manually, in a text file! Do NOT use the export function, it's broken as well, it won't allow you to import anything (or it'll import empty proxies called undef or something).
  2. Downgrade to version 7, for example by navigating to that release (click here) and there, download the file that ends with ".xpi". Firefox will ask you to install that addon, confirm.
  3. Go to Firefox settings, addons (about:addons), Foxyproxy, check that it shows version 7.
  4. Important: On that same page, set "Allow automatic updates" to off! Otherwise a new buggy version could be installed at any time.
  5. Open Foxyproxy itself (from the addons settings page, triple dot button, Preferences) and recreate all your previously configured proxies.

Also, Chromium users might want to consider installing "Proxy SwitchySharp" which does the same thing and seems to be more reliable (I used it in the past whenever Foxyproxy had issues).

@0xquad
Copy link
Author

0xquad commented Dec 10, 2023

Just a quick note on the history of v8
* The v8 development was started in 2022 and the first beta version was created in Aug 2022 (IIRC).
* Some of the changes are due to the limitations/changes impose by Google in manifest v3.
* The feature that are seen, like the filter, were requested by the users here and in the old repo for v7.
* There is a Help document included with the extension.
* The development has been discussed for the last 16 months.
* There is no method to contact extension users to inform them of he changes.
* There is no method to give users notice of upgrade in advance.

Thank you @erosman for responding and for chipping in with more information on the context, of which I wasn't aware at all.

I must say that I only partially agree with the points however. Being an extension with autoupdates, it would have been entirely possible to deploy new minor versions with warnings that show up in the popup menu of FoxyProxy in the Toolbar, or even a one-time popup upon starting the browser (which I see with other extensions sometimes). Again, this could have been done a long time ago (since 2022 in fact, like you mention), with clear warnings that breaking changes were coming on a given release date, in both the way proxies were handled and also in importing/exporting user configuration.

It would hardly be taken seriously by any user if I said at work that I had been working on a new version for a year as a justification that they should have been prepared somehow to the roll out they get one day that breaks their general usage of a product.

The other point I disagree with is about the removal of existing functionality for the sake of wanting to keep the code base as generic as possible because one browser is more restrictive than another. I think the user experience shouldn't have suffered from this since the feature was already implemented long ago and used by so many; this is not how I would approach evolving my software. But, granted, this is entirely subjective and up for debate depending on the school of thought. I'm a bit sad that it's the way to go for FoxyProxy because it heavily affects the user experience. As I see it, Firefox (for now) offers greater flexibility and thus gives greater power to the user by relaxing some restrictions - good; and the extension should continue taking advantage of this until there is no other choice but to comply (as was the case for the extension API changes in Firefox 53 [I believe]).

As for the filter feature well, that's excellent; I was just confused what it was but I blame it only on the fact that it stacked on top of all other changes that happened at once.

I'll certainly read the documentation for the new version when time comes, but for now version 8 for me is a no go because, again, it literally prevents me from doing my job (in infosec, fwiw).

@0xquad
Copy link
Author

0xquad commented Dec 10, 2023

Workaround:

I agree, thanks for explicitly documenting that procedure.

In my case, I have multiple Firefox profiles (up to 4-5, depending on my working environment), all of which have FoxyProxy installed. I got bit by the update upon opening my main Firefox profile only, fortunately, so I was able to recover my settings from the other profiles.

What I did is go through the file system and update the preference file of all other profiles to manually turn off the autoupdate for the FoxyProxy extension in all of them. I was then able to open one of those profiles, export my FoxyProxy settings 7.x from there, then use that exported settings file to import my proxies into my main profile where I downgraded to version 7.

On Windows for instance:

  1. open explorer and navigate to %APPDATA%\Roaming\Mozilla\Firefox\Profiles\xyz123xyz.profile2 (for example; and make sure that Firefox is closed for that profile)
  2. edit the file extensions.json and optionally format the JSON in your editor if needed for better readability (backup the file beforehand if you're unsure)
  3. find the FoxyProxy JSON block (simply search for "foxyproxy"), and locate the applyBackgroundUpdates key
  4. set its value to 0 like so: "applyBackgroundUpdates": 0, (meaning that it's turned off)
  5. save the file
  6. open Firefox with that profile (going to the about:profiles page if needed); FoxyProxy shouldn't be updated automatically anymore

@vladzcloudius
Copy link

I join all those that found the removing of 'localhost' proxying in v8 very unfortunate, @erosman.
The environment I'm using FoxyProxy is similar to what has been described here: #70 (comment)
In particular the only Proxy rules I have are 'localhost' based ones according to ssh tunnels created.

If support for proxying localhost was removed following somebody's request (why BTW?) that IMO should have been parametrized instead (not completely removed).
It's very unfortunate that because of that I can't use the latest and greatest v8.x which looks very impressive and seems to have a lot of work invested in it.

I'd really appreciate if 'localhost' proxying is brought back - I'd upgrade to the latest the same moment.
Till then I'll have to get stuck with v7 (as described above) till I find a better solution.

@erosman
Copy link
Collaborator

erosman commented Dec 11, 2023

If support for proxying localhost was removed following somebody's request (why BTW?)

It was implemented to match browser policy (of not proxying localhost) in Firefox & Chrome.

I'd really appreciate if 'localhost' proxying is brought back

It is already back since v8.4
Check About for more information.

@ericjung
Copy link
Contributor

I join all those that found the removing of 'localhost' proxying in v8 very unfortunate,

it is back. Pleas use 8.4 or above.

@stevie-
Copy link

stevie- commented Dec 12, 2023

localhost socks proxy via ssh doesnT work for me even with version 8.6. What am I doing wrong?

@asia-by-jalopy
Copy link

asia-by-jalopy commented Dec 12, 2023

localhost socks proxy via ssh doesnT work for me even with version 8.6. What am I doing wrong?

It works for me. I tested like this:

// setup SOCKS5 proxy server with no auth
ssh -D 1337 -N user@myserver.com

In FoxyProxy, I created SOCKS5 setting with hostname 'localhost', port 1337, and no username/password.

What is your setup?

@stevie-
Copy link

stevie- commented Dec 13, 2023

ssh -D 9090 -N user@server.com

FoxyProxy SOCKS5 localhost + 9090, no username/password.

It seems like i can't get any proxy to work. Even if I uses catch all.

Was working before upgrade extension to 8.x

@c0xc
Copy link

c0xc commented Dec 13, 2023

Was working before upgrade extension to 8.x

You can use the workaround as described in my comment above, that works for sure. In fact, I've just realized that this workaround has been copied into the official README file by the developer shortly after, so it is official advice now.

Personally, I don't have the time right now to play with yet another version, recover all settings again, so I'll stick with the old version and keep auto-updates disabled permanently everywhere, as suggested.

To disable addon updates globally (except for those that you want to keep up to date or that never have breaking changes):

  • In Firefox’s location bar, type about:config
  • In the Filter text box, type extensions.update.enabled.
  • Double click the extensions.update.enabled item to turn it from true to false

source

@Atera
Copy link

Atera commented Dec 14, 2023

I really didn't like how the changes to localhost were made when 8.x first released: an upcoming deprecation warning in the version update help pages for previous versions' upgrades would have been helpful had it appeared for several months leading up to the change. And once the synchronization bug was found, the next update should have attempted to restore old data, or ask the user what to do in case the synchronization bug had caused a change but the user had made conflicting changes so the old data couldn't be restored. However, I will say, that users reporting bugs here have been listened to with respect to reversing course on a number of issues. So I do want to express my respect to the developers and others involved that have stepped up to encourage discussion and have taken criticism to heart when deciding how to proceed. Seeing how users have been listened to (when reasonable) is really encouraging for a project like this.

@erosman
Copy link
Collaborator

erosman commented Dec 18, 2023

FoxyProxy Basic v8.0 was first released in Sep 2023 as a trial run since it had fewer users (26k on Chrome & Firefox).
We waited for 2 months for any bug reports before releasing FoxyProxy Standard.
Unfortunately, we didn't get any bug report about the data migration sync issue, or we would have fixed it before releasing the standard version.
We didn't get any reports about the localhost/local network pass-through either.
We didn't get any bug reports about Firefox on Android.
Above 3 have been the main causes of inconvenience among users.

an upcoming deprecation warning in the version update help pages for previous versions' upgrades would have been helpful had it appeared for several months leading up to the change.

It was not possible on Chrome web store since they have blocked the upload of MV2 extensions.
The code was rewritten from the ground up and there isn't any in-between version.

image

However, I will say, that users reporting bugs here have been listened to with respect to reversing course on a number of issues. So I do want to express my respect to the developers and others involved that have stepped up to encourage discussion and have taken criticism to heart when deciding how to proceed. Seeing how users have been listened to (when reasonable) is really encouraging for a project like this.

Thank you for your kind words.

@erosman erosman added the discussion Needs further discussion label Dec 19, 2023
@erosman erosman closed this as completed Jan 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Needs further discussion
Projects
None yet
Development

No branches or pull requests

8 participants