Commit Graph

97 Commits

Author SHA1 Message Date
Daniel Stenberg
bf30a5787b Bug 1503393 - never let "localhost" get sent to a proxy r=mayhemer 2018-12-03 16:27:11 +02:00
Sebastian Hengst
6635575d06 Backed out 4 changesets (bug 1503393) for failing various browser-chrome tests, e.g. browser_extension_controlled.js. CLOSED TREE
Backed out changeset 52e8ef71af9b (bug 1503393)
Backed out changeset 7878029aaba6 (bug 1503393)
Backed out changeset 02e383b73c97 (bug 1503393)
Backed out changeset 49428012434e (bug 1503393)
2018-12-03 17:28:06 +02:00
Daniel Stenberg
4a20f2d2ee bug 1503393 - never let "localhost" get sent to a proxy r=mayhemer 2018-12-03 16:27:11 +02:00
Tooru Fujisawa
5ef6d9cc06 Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Benjamin Bouvier
5e1b39e9bd Bug 1511383: Update vim modelines after clang-format; r=sylvestre
- modify line wrap up to 80 chars; (tw=80)
- modify size of tab to 2 chars everywhere; (sts=2, sw=2)
2018-11-30 16:39:55 +01:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Boris Zbarsky
a115e66ba1 Bug 1507540 part 3. Use more notxpcom attributes in netwerk/. r=valentin 2018-11-19 20:17:53 -05:00
Junior Hsu
c1fcc317ee Bug 1494364 - don't prune proxy if all non-direct proxies are disabled r=bagder
Differential Revision: https://phabricator.services.mozilla.com/D10625
2018-11-05 07:12:54 +00:00
Kershaw Chang
6d98f008e5 Bug 1219935 - Skip OCSP request if PAC download is in progress r=keeler,bagder
This is a straightforward patch.
Just add a new attribute in nsIProtocolProxyService to indicate whether PAC is still loading. If yes, fail the OCSP request.

Differential Revision: https://phabricator.services.mozilla.com/D9154
2018-10-22 09:07:51 +00:00
Eric Rahm
1186c1de5d Bug 1448034 - Part 1: Get rid of SysProxySetting threads. r=bagder 2018-07-10 18:02:21 -07:00
Coroiu Cristina
79792a5c8e Backed out 2 changesets (bug 1448034) for GTest failures
Backed out changeset 068bb4e7b849 (bug 1448034)
Backed out changeset eb542860b989 (bug 1448034)
2018-07-17 08:51:20 +03:00
Eric Rahm
00028a356f Bug 1448034 - Part 1: Get rid of SysProxySetting threads. r=bagder 2018-07-10 18:02:21 -07:00
Polly Shaw
723759fe28 Bug 356831 - Proxy autodiscovery doesn't check DHCP (option 252) r=bagder,valentin
This patch addresses an issue with Firefox's proxy detection on networks which
do not have their a proxy auto-configuration (PAC) file hosted at
http://wpad/wpad.dat, and instead make use of DHCP option 252 for broadcasting
the address of the PAC file. See https://findproxyforurl.com/wpad-introduction/
for an introduction to the protocol.

Prior to this patch, proxy auto-detect missed out the DHCP query stage, and just
 looked for a PAC file at http://wpad/wpad.dat


This patch only addresses the issue for Firefox on Windows, although it defines a
DHCP client interface which could be implemented on other platforms.

The high-level components of this patch are:
 * nsIDHCPClient.idl - this is an interface which has been defined for querying the
   DHCP server.
 * nsPACMan.cpp - where previously when the PAC URL was simply set to a constant of
   http://wpad/wpad.dat, it now dispatches an asynchronous command to the proxy
   thread. The class ExecutePACThreadAction has been augmented to include an
   instruction to 'ConfigureWPAD' (Configure Web-proxy auto-detect), and a new class,
   'ConfigureWPADComplete' has been created to relay the result (the URL of the PAC
   file) back to the nsPACMan object.
 * nsProtocolProxyService.cpp
   Minor changes to reflect the fact that the PAC URL not being set does not always
   mean there is no PAC to be used; instead it could be in the process of being
   detected.
 * TestPACMan.cpp
   This is a new file, and tests only the DHCP auto-detect functionality.
   Some tests use multiple threads, as they test the non-blocking proxy detection.
 * DHCPUtils.cpp
   A class containing the main logic for querying DHCP.
 * WindowsNetworkFunctionsWrapper.cpp
   A very thin wrapper around the Windows API calls needed by DHCPUtils.
   This class was introduced so it could be mocked out in tests.
 * nsWindowsDHCPClient.cpp
 * An implementation of the interface defined in nsIDHCPClient.idl. Fairly thin:
   most logic is implemented in DHCPUtils.
 * TestDHCPUtils.cpp
   Tests for DHCPUtils and nsWindowsDHCPClient

MozReview-Commit-ID: 4xFQz3tOLEx
2018-06-07 23:07:28 +01:00
Andreea Pavel
842a6663b7 Backed out changeset a7a1006e2f52 (bug 356831) for braking marionette on win asan on a CLOSED TREE 2018-07-10 18:42:01 +03:00
Polly Shaw
9818e26aae Bug 356831 - Proxy autodiscovery doesn't check DHCP (option 252) r=bagder,valentin
This patch addresses an issue with Firefox's proxy detection on networks which
do not have their a proxy auto-configuration (PAC) file hosted at
http://wpad/wpad.dat, and instead make use of DHCP option 252 for broadcasting
the address of the PAC file. See https://findproxyforurl.com/wpad-introduction/
for an introduction to the protocol.

Prior to this patch, proxy auto-detect missed out the DHCP query stage, and just
 looked for a PAC file at http://wpad/wpad.dat


This patch only addresses the issue for Firefox on Windows, although it defines a
DHCP client interface which could be implemented on other platforms.

The high-level components of this patch are:
 * nsIDHCPClient.idl - this is an interface which has been defined for querying the
   DHCP server.
 * nsPACMan.cpp - where previously when the PAC URL was simply set to a constant of
   http://wpad/wpad.dat, it now dispatches an asynchronous command to the proxy
   thread. The class ExecutePACThreadAction has been augmented to include an
   instruction to 'ConfigureWPAD' (Configure Web-proxy auto-detect), and a new class,
   'ConfigureWPADComplete' has been created to relay the result (the URL of the PAC
   file) back to the nsPACMan object.
 * nsProtocolProxyService.cpp
   Minor changes to reflect the fact that the PAC URL not being set does not always
   mean there is no PAC to be used; instead it could be in the process of being
   detected.
 * TestPACMan.cpp
   This is a new file, and tests only the DHCP auto-detect functionality.
   Some tests use multiple threads, as they test the non-blocking proxy detection.
 * DHCPUtils.cpp
   A class containing the main logic for querying DHCP.
 * WindowsNetworkFunctionsWrapper.cpp
   A very thin wrapper around the Windows API calls needed by DHCPUtils.
   This class was introduced so it could be mocked out in tests.
 * nsWindowsDHCPClient.cpp
 * An implementation of the interface defined in nsIDHCPClient.idl. Fairly thin:
   most logic is implemented in DHCPUtils.
 * TestDHCPUtils.cpp
   Tests for DHCPUtils and nsWindowsDHCPClient

MozReview-Commit-ID: 4xFQz3tOLEx
2018-06-07 23:07:28 +01:00
Chris Peterson
f7ceeaf5cf Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr
2018-06-17 22:43:11 -07:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Kris Maglione
0e9ef0c4fc Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz
Using concrete class types with static IIDs in QueryInterface methods is a
pretty common pattern which isn't supported by any existing helper macros.
That's lead to separate ad-hoc implementations, with varying degrees of
dodginess, being scattered around the tree.

This patch adds a helper macro with a canonical (and safe) implementation, and
updates existing ad-hoc users to use it.

MozReview-Commit-ID: HaTGF7MN5Cv
2018-05-21 16:33:18 -07:00
Chris Peterson
5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Andi-Bogdan Postelnicu
99cba2dd23 Bug 1457411 - Update netwerk module to make use of newer methods introduced with c++11 and c++14. r=valentin
MozReview-Commit-ID: 666LNaHyiuQ
2018-04-30 19:46:04 +03:00
Valentin Gosu
4bb729eb0b Bug 1456863 - Backed out bug 356831 (changeset 204bb43af943) for leaks r=me 2018-04-30 15:34:39 +02:00
Polly Shaw
12d4f954e2 Bug 356831 - Proxy autodiscovery doesn't check DHCP (option 252) r=bagder,valentin
This patch addresses an issue with Firefox's proxy detection on networks which
do not have their a proxy auto-configuration (PAC) file hosted at
http://wpad/wpad.dat, and instead make use of DHCP option 252 for broadcasting
the address of the PAC file. See https://findproxyforurl.com/wpad-introduction/
for an introduction to the protocol.

Prior to this patch, proxy auto-detect missed out the DHCP query stage, and just
 looked for a PAC file at http://wpad/wpad.dat


This patch only addresses the issue for Firefox on Windows, although it defines a
DHCP client interface which could be implemented on other platforms.

The high-level components of this patch are:
 * nsIDHCPClient.idl - this is an interface which has been defined for querying the
   DHCP server.
 * nsPACMan.cpp - where previously when the PAC URL was simply set to a constant of
   http://wpad/wpad.dat, it now dispatches an asynchronous command to the proxy
   thread. The class ExecutePACThreadAction has been augmented to include an
   instruction to 'ConfigureWPAD' (Configure Web-proxy auto-detect), and a new class,
   'ConfigureWPADComplete' has been created to relay the result (the URL of the PAC
   file) back to the nsPACMan object.
 * nsProtocolProxyService.cpp
   Minor changes to reflect the fact that the PAC URL not being set does not always
   mean there is no PAC to be used; instead it could be in the process of being
   detected.
 * TestPACMan.cpp
   This is a new file, and tests only the DHCP auto-detect functionality.
   Some tests use multiple threads, as they test the non-blocking proxy detection.
 * DHCPUtils.cpp
   A class containing the main logic for querying DHCP.
 * WindowsNetworkFunctionsWrapper.cpp
   A very thin wrapper around the Windows API calls needed by DHCPUtils.
   This class was introduced so it could be mocked out in tests.
 * nsWindowsDHCPClient.cpp
 * An implementation of the interface defined in nsIDHCPClient.idl. Fairly thin:
   most logic is implemented in DHCPUtils.
 * TestDHCPUtils.cpp
   Tests for DHCPUtils and nsWindowsDHCPClient

MozReview-Commit-ID: HinC1UevOon
2018-04-22 18:13:11 +01:00
Margareta Eliza Balazs
1c02375b6e Backed out changeset 2a760b1c0759 (bug 356831) for adding files without having a bugzilla product and component 2018-04-24 19:33:00 +03:00
Polly Shaw
a516009546 Bug 356831 - Proxy autodiscovery doesn't check DHCP (option 252) r=bagder,valentin
This patch addresses an issue with Firefox's proxy detection on networks which
do not have their a proxy auto-configuration (PAC) file hosted at
http://wpad/wpad.dat, and instead make use of DHCP option 252 for broadcasting
the address of the PAC file. See https://findproxyforurl.com/wpad-introduction/
for an introduction to the protocol.

Prior to this patch, proxy auto-detect missed out the DHCP query stage, and just
 looked for a PAC file at http://wpad/wpad.dat


This patch only addresses the issue for Firefox on Windows, although it defines a
DHCP client interface which could be implemented on other platforms.

The high-level components of this patch are:
 * nsIDHCPClient.idl - this is an interface which has been defined for querying the
   DHCP server.
 * nsPACMan.cpp - where previously when the PAC URL was simply set to a constant of
   http://wpad/wpad.dat, it now dispatches an asynchronous command to the proxy
   thread. The class ExecutePACThreadAction has been augmented to include an
   instruction to 'ConfigureWPAD' (Configure Web-proxy auto-detect), and a new class,
   'ConfigureWPADComplete' has been created to relay the result (the URL of the PAC
   file) back to the nsPACMan object.
 * nsProtocolProxyService.cpp
   Minor changes to reflect the fact that the PAC URL not being set does not always
   mean there is no PAC to be used; instead it could be in the process of being
   detected.
 * TestPACMan.cpp
   This is a new file, and tests only the DHCP auto-detect functionality.
   Some tests use multiple threads, as they test the non-blocking proxy detection.
 * DHCPUtils.cpp
   A class containing the main logic for querying DHCP.
 * WindowsNetworkFunctionsWrapper.cpp
   A very thin wrapper around the Windows API calls needed by DHCPUtils.
   This class was introduced so it could be mocked out in tests.
 * nsWindowsDHCPClient.cpp
 * An implementation of the interface defined in nsIDHCPClient.idl. Fairly thin:
   most logic is implemented in DHCPUtils.
 * TestDHCPUtils.cpp
   Tests for DHCPUtils and nsWindowsDHCPClient

MozReview-Commit-ID: HinC1UevOon
2018-04-22 18:13:11 +01:00
Nika Layzell
b4c313c43d Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
Bobby Holley
890fb6182f Bug 1451421 - Add a ToLowerCaseASCII utility method for nsAtom. r=hisvonen 2018-04-06 15:30:15 -07:00
Honza Bambas
3442befe67 Bug 1152332 - Let connection proxy filters return the result asynchronously - core changes, r=michal 2018-02-08 07:18:00 +02:00
Liang-Heng Chen
53a1b27cad Bug 1421793 - nsPACMan needs to be shutdown before dtor; r=schien
MozReview-Commit-ID: D2aKTC8s9MQ
2017-12-01 15:10:36 +08:00
Nicholas Nethercote
b627e2c831 Bug 1410794 (attempt 2) - Change some |string| occurrences in nsIPrefBranch.idl to |ACString|. r=erahm.
This makes the code nicer. In particular, it removes many getter_Copies()
calls. The patch also converts a lot of nsCStrings to nsAutoCString, which will
avoid heap allocation in the common case.

The patch also renames PREF_CopyCharPref() as PREF_GetCStringPref(), because
it's actually getting a string, not a char, and that matches the existing
GetCString() and GetDefaultCString() methods. Correspondingly, it also renames
PREF_SetCharPref() as PREF_SetCStringPref().

The |aPrefName| arguments in nsIPrefBranch.idl remain as |string| because they
almost always involve passing in C string literals, and passing "foo" is much
nicer than passing NS_LITERAL_CSTRING("foo").

It's worth noting that early versions of this patch used |AUTF8String| instead
of |ACString|. But it turns out that libpref stores prefs internally as Latin1.
And |ACString| is compatible with Latin1 but |AUTF8String| isn't, because
non-ASCII Latin1 strings are not valid UTF-8!

MozReview-Commit-ID: D3f7a1Vl1oE
2017-10-27 10:30:33 +11:00
Valentin Gosu
a6bd4d32ec Bug 1403522 - 'No Proxy For' does not work right if it contains '<local>' only r=bagder
MozReview-Commit-ID: KRW15BxzcN3
2017-10-18 16:00:04 +02:00
Liang-Heng Chen
5110c26122 Bug 1405496 - remove unnecessary assertion; r=bagder
The assertion does not have to be true.

MozReview-Commit-ID: HrXpPsO0rQd
2017-10-05 10:59:11 +08:00
Nicholas Nethercote
b7346a7502 Bug 1390428 (part 1) - Remove many nsXPIDLCString local variables. r=erahm.
These are all easy cases where an nsXPIDLCString local variable is set via
getter_Copies() and then is only used in ways that nsCStrings can also be used
(i.e. no null checks or implicit conversions to |char*|).

In every case the patch trivially replaces the nsXPIDLCString with an
nsCString. (Also, there are a couple of unused nsXPIDLCString variables that
the patch simply removes.)
2017-08-16 13:58:35 +10:00
Andrew McCreight
3c9e7a55b7 Bug 1379786, part 2 - Use nsContentUtils::GetSystemPrincipal in various places. r=mrbkap
MozReview-Commit-ID: KPXAqKeX4gI
2017-07-10 14:24:54 -07:00
Andrea Marchesini
9e8ae1dfd0 Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
Kershaw Chang
ba589d5bca Bug 1343741 - Part3: Pass labelled event target to nsIProtocolProxyService::AsyncResolve, r=mayhemer
For dispatching runnable in nsPACMan, this patch sends a labelled event target via nsIProtocolProxyService::AsyncResolve.
2017-07-05 00:48:00 +02:00
Liang-Heng Chen
2dee6fa6b8 Bug 1177909 - Part 1: support perferred proxy type while using system proxy setting; r=bagder
MozReview-Commit-ID: 7C5pSxO1d2j
2017-06-12 11:41:14 +08:00
Bevis Tseng
e6dc9e02bc Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm
MozReview-Commit-ID: LYhSWnZkq0i
2017-06-14 09:27:17 +08:00
Liang-Heng Chen
3acf537675 Bug 1371550 - create worker thread before it is required; r=bagder
MozReview-Commit-ID: 9DydRQwOHyT
2017-06-09 15:11:24 +08:00
Liang-Heng Chen
ab019fbd70 Bug 1366133 - Part 1: make nsISystemProxySettings::GetPACURI happen in another thread; r=bagder
MozReview-Commit-ID: FyiNM8KX0gk
2017-05-24 14:36:53 +08:00
Patrick McManus
2162f6b405 Bug 1362498 - cache some networking mozilla::services r=bagder
MozReview-Commit-ID: G61lDIOKcm
2017-05-05 14:32:19 -04:00
Patrick McManus
53ffb246d5 Bug 1297481 - add shutdown state to protocolproxyservice r=bagder
the protocol proxy service asserts that is in a clean state at dtor -
normally this happens through observe("xpcom-shutdown") but its
actually possible of other events in the xpcom run queue to
'unitialize' things before the dtor.. add a state in which fail codes
are returned instead.

MozReview-Commit-ID: XaNQEZUsRP
2017-04-19 08:42:09 -04:00
Valentin Gosu
d211fae10c Bug 1334443 - Rewrite nsProtocolProxyService::LoadHostFilters to use Tokenizer r=bagder
This eliminates some of the pointer math and makes the method a bit safer.
The function's behaviour remains the same as before.

MozReview-Commit-ID: 94wBk6xvkd6
2017-03-20 20:21:15 +01:00
Valentin Gosu
7c04cb23f3 Bug 1334443 - Add gtest for nsProtocolProxyService::{LoadHostFilters,CanUseProxy} and fix IPv6 parsing r=bagder
While writing a gtest I discovered the parsing an IPv6 address didn't work due to the brackets.

MozReview-Commit-ID: 9mmKS72hf7Y
2017-03-20 20:20:42 +01:00
Jun
d07b9ddecf Bug 1337336 - Fix ReloadPAC() for the PROXYCONFIG_SYSTEM case. r=bagder 2017-03-15 03:21:00 -04:00
Valentin Gosu
923d522e46 Bug 1346711 - Backout changeset 36839839cfa7 (bug 1334443) a=backout
proxy_GetStringPref also strips whitespace, thus it breaks parsing a space separated list

MozReview-Commit-ID: F9SoMkbI28z
2017-03-14 15:28:48 +01:00
Tom Tromey
a4b717ab39 Bug 1060419 - make log_print use Printf.h, r=froydnj
MozReview-Commit-ID: BIZ1GQEZ1vs
2016-12-15 20:16:31 -07:00
Liang-Heng Chen
c974104639 Bug 1028195 - make proxy bypass rule consistent; r=bagder
MozReview-Commit-ID: CMAUt1p3L3u
2017-02-08 15:10:02 +08:00
Jed Davis
b86735cec2 Bug 778201 - Remove nsPluginHost::FindProxyByURL and nsProtocolProxyService::DeprecatedBlockingResolve. r=bsmedberg,mcmanus
MozReview-Commit-ID: 9xuddxdw5cd
2017-02-03 16:32:04 -07:00
Valentin Gosu
1b7f28a033 Bug 1334443 - Crash in mozilla::net::nsProtocolProxyService::LoadHostFilters r=bagder
MozReview-Commit-ID: JugUEnMzQ4r
2017-02-01 02:29:17 +01:00
Liang-Heng Chen
f34a426e4d Bug 1288308 - Part 0: add Named Pipe type on Windows platform; r=bagder
MozReview-Commit-ID: It2l5BJuHiS
2016-11-03 18:15:07 +08:00