incognito support for proxy api

VERIFIED FIXED in Firefox 67

Status

enhancement
P1
normal
VERIFIED FIXED
4 months ago
11 days ago

People

(Reporter: mixedpuppy, Assigned: mixedpuppy)

Tracking

(Blocks 2 bugs, Regression, {dev-doc-complete})

unspecified
mozilla67
Dependency tree / graph

Firefox Tracking Flags

(firefox67 verified)

Details

Attachments

(2 attachments)

Assignee

Description

4 months ago

Proxy is a touch different in some ways.

  • onRequest can work fine in non-private contexts.
  • proxy.settings can affect private contexts, and since it can push data through a proxy, we should require private permissions.
  • proxy.register should die, but it hasn't. It should definitely require private permission.

We'll have to followup with a mechanism to remove settings on upgrade to a version of firefox that prefs on this feature, that is in bug 1525428.

We may need a followup bug if we decide we want to keep proxy extensions enabled in private browsing through the upgrade. ni?mconca for this.

Assignee

Updated

4 months ago
Flags: needinfo?(mconca)
Assignee

Updated

4 months ago
Blocks: 1525428
Assignee

Comment 2

4 months ago

@mconca, regarding proxy.register. After looking at the implementation, we do not get data in the proxy filter to know if the request is private or not. We'd have to do lower level changes to the proxy service to maybe get that data. As such, I'm leaving this disabled, requiring permission to use.

Assignee

Updated

4 months ago
Blocks: 1526299

Current plan is to leaving extensions enabled in pbm windows through an upgrade. This keeps proxy extensions working.

We should document the behavior of proxy in pbm and non-pbm windows so, for new installs, developers know what to expect and communicate with their users. Also, we should file a networking bug to separate the behaviors so that this issue eventually goes away.

Flags: needinfo?(mconca)
Assignee

Comment 4

4 months ago

doc: proxy.settings.set will require private window access. Other proxy APIs will otherwise work.

Keywords: dev-doc-needed

Comment 7

4 months ago
Pushed by scaraveo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/60cb2cb96e5e
support incognito setting in proxy api r=zombie
Assignee

Comment 9

4 months ago

(In reply to Arthur Iakab [arthur_iakab] from comment #8)

:mixedpuppy could you please take a look?

Test just needs to be disabled on android.

Flags: needinfo?(mixedpuppy)

Comment 10

4 months ago
Pushed by scaraveo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/96a79763127d
support incognito setting in proxy api r=zombie

Comment 11

4 months ago
bugherder
Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67

Comment 12

4 months ago

Verfied as fixed using Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0 , buildid 20190220040540.

I will attach a post fix video.

Status: RESOLVED → VERIFIED

Comment 13

4 months ago
Posted image Postfix video
Assignee

Updated

Last month
Regressed by: 1552248

Comment 14

29 days ago

Added a note on the proxy.settings page:

Note: The ability to change proxy settings when running in a private window or tab requires private window access.

I also added this to the release notes:

Using the proxy.settings.set() method to change {{WebExtAPIRef("types.BrowserSetting", "BrowserSetting")}} values will not work in private browsing mode when the extension doesn't have private window access ({{bug(1525447)}}).

Flags: needinfo?(mixedpuppy)

Updated

29 days ago
Assignee

Comment 15

29 days ago

This should be something like:

"The ability to change proxy settings requires private window access even if only used in non-private windows. This is because proxy settings will affect both private and non-private windows. If the user has not granted private window permission to the extension, using proxy.settings.set will throw an exception."

Flags: needinfo?(mixedpuppy) → needinfo?(ismith)

Comment 16

28 days ago

This is what I ended up with:

The ability to change proxy settings requires private window access because proxy settings affect both private and non-private windows. Therefore, if an extension has not been granted private window permission, calls to proxy.settings.set() will throw an exception.

Flags: needinfo?(ismith)
You need to log in before you can comment on or make changes to this bug.