Closed Bug 217664 Opened 18 years ago Closed 17 years ago

Ability to use same proxy for all protocols


(Firefox :: Preferences, enhancement, P3)






(Reporter: mikel, Assigned: mconnor)



(Keywords: fixed-aviary1.0, Whiteboard: [have patch])


(3 files, 4 obsolete files)

The Connection preferences dialog allows the user to select manual proxy
configuration and enter the host and port name for five protocols
(HTTP, HTTPS, FTP, Gopher, SOCKS).  If the user has the same proxy for all
protocols (as is common), he must type the same information five times.
It would be very useful if there was a way to specify the proxy host and
port once then reuse this information for the other protocols.
-> taking

usability win
Assignee: blake → mpconnor
Summary: pref to use same same proxy for all protocols → Ability to use same proxy for all protocols
Target Milestone: --- → Firebird0.8
Attached patch provisional patch (obsolete) — Splinter Review
similar to IE's implementation.  this isn't 100% final since my head's all
messed right now, should be good
Comment on attachment 131478 [details] [diff] [review]
provisional patch

built from a clean CVS tree with this patch, looks good after a night's sleep
Attachment #131478 - Flags: review?(noririty)
Blocks: 193834
is patch ready to land ? :)
Attachment #131478 - Flags: review?(noririty) → review?(bugs)
Can you provide a screenshot?
Attached patch checked (obsolete) — Splinter Review
Attachment #135435 - Attachment is obsolete: true
Attached image unchecked
Comment on attachment 131478 [details] [diff] [review]
provisional patch

small regression (bitrot?) new patch once I update my tree
Attachment #131478 - Flags: review?(bugs)
Attached patch patch (obsolete) — Splinter Review
Attachment #135440 - Flags: review?(bugs)
-> 0.9
Target Milestone: Firebird0.8 → Firebird0.9
Attachment #131478 - Attachment is obsolete: true
Priority: -- → P3
Blocks: 241416
pushing to 1.0beta as this needs to be looked at post-0.9 when the new prefpanel
Target Milestone: Firefox0.9 → Firefox1.0beta
No longer blocks: 241416
What does this UI look like?

Use consistent ' vs. " too ;-) 
Flags: blocking-aviary1.0RC1+
- 1.0 since there are localization changes I'll review this week see if you can
get it in asap. 
Flags: blocking-aviary1.0+ → blocking-aviary1.0-
Whiteboard: [have patch]
Attached patch unbitrotted patch (obsolete) — Splinter Review
Attachment #135440 - Attachment is obsolete: true
Attachment #135440 - Flags: review?(bugs)
Attachment #154156 - Flags: review?(bugs)
Comment on attachment 154156 [details] [diff] [review]
unbitrotted patch

Pretty much only nits. 

>+  var proxycheckbox = document.getElementById("proxycheckbox");

Can we get something slightly more descriptive here, "shareAllProxies"

>+  var manual2 = [ http, httpPort, noProxy, proxycheckbox];

nit: leading whitespace inside array.

>   switch ( radiogroup.value ) {

nix the wacky whitespace

>@@ -66,15 +68,21 @@ function DoEnabling()
>         auto[i].setAttribute( "disabled", "true" );

kill extra whitespace here, and all subsequent cases.

>+  if (!document.getElementById('proxycheckbox').checked)
>+    return;

The rest of the quotes are double quotes, don't use single here. 

>+            <hbox>
>+              <checkbox id="proxycheckbox" oncommand="toggleProxySettings();" label="&shareproxy.label;"
>+                        accesskey="&shareproxy.accesskey;"
>+                        preftype="bool" prefstring="network.proxy.share_proxy_settings"/>

Formatting: bring label down onto the same line as accesskey
Attachment #154156 - Flags: review?(bugs) → review+
fixed on aviary branch.  Thanks Ben!
Attachment #154156 - Attachment is obsolete: true
Keywords: fixed-aviary1.0
Do we want to fix the IE migrator to set this pref if IE is set in this mode as
well?  We already detect it, but expand the settings out explicitly.  Not
critical, but might be a nice polish item.
i don't know if this is intended behavior, but the socks-field isn't filled in
when clicking the checkbox...

you can also see that on the screenshot
yes, its intentional.  SOCKS is something a little different, and if you do this
in IE, it doesn't fill in the SOCKS entry.

I spun off shaver's idea in Bug 253008.
*** Bug 255384 has been marked as a duplicate of this bug. ***
(In reply to comment #20)
> yes, its intentional.  SOCKS is something a little different, and if you do this
> in IE, it doesn't fill in the SOCKS entry.

But why are the SOCKS UI elements disabled when the checkbox is selected? I
don't think this makes sense, because:

1. As far as I know the SOCKS proxy is used as a fallback value when the other
configured proxy isn't reachable or can't handle a certain application level
2. You can still change the SOCKS Proxy when you deselect the checkbox, change
the SOCKS config and select the checkbox again. When this works, why do I have
to deal with the checkbox at all?
3. The SOCKS proxy can still be a different proxy when the checkbox is selected.
So the label and the behaviour of the checkbox is misleading currently.
OS: Windows 2000 → All
Hardware: PC → All
Closed: 17 years ago
Resolution: --- → FIXED
So the pref (network.proxy.share_proxy_settings) was first added to the branch,
and then introduced to the trunk later, in the WPAD rewrite?
sorry for bugspam, long-overdue mass reassign of ancient QA contact bugs,
filter on "beltznerLovesGoats" to get rid of this mass change
QA Contact: mconnor → preferences
I finally had some time to look at this, in FF2.

This is what I found:

The checkbox controls the values for all other proxy values. In other words, we have a UI mode which is a single proxy host:port.

It affects all fields, including SOCKS.

After playing with the settings for a while, I have to admin, I like the all-in-one implementation BETTER than the all-application proxys (but not SOCKS) implementation, for two reasons:

1- "SSL" is also a circuit-level proxy, we just never properly enabled its usage for historical Netscape reasons.

2- If the goal is to simplify life for the user, the "all-in-one" user is much more common than the SOCKS + all-the-rest-in-one user.

One last question:

I was reading the nsProtocolProxyService.cpp code, and I noticed that it listens to network.proxy.*.

Is there any benefit/concern that we added these new prefs:


Does that bloat the overhead of the prefs observer? Just curious.

I'll summarize some test results and attach them, so it doesn't clutter up search by comment results.
You need to log in before you can comment on or make changes to this bug.