Commit graph

82 commits

Author SHA1 Message Date
Chris Peterson
2afd829d0f 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

--HG--
extra : rebase_source : 4c1b2fc32b269342f07639266b64941e2270e9c4
extra : source : 907543f6eae716f23a6de52b1ffb1c82908d158a
2018-06-17 22:43:11 -07:00
Emilio Cobos Álvarez
fffb25b74f 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
8340513b0c 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

--HG--
extra : rebase_source : ace930129d85960d22bc3048ca3bb19bbbd4a63e
extra : histedit_source : 03a87f746d957789d41381e4e1bfcc4fd7eebaf2%2C9c5bae9feeeef7721105db67be0f83e0ded66bb7
2018-05-21 16:33:18 -07:00
Chris Peterson
71422dcaa9 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

--HG--
extra : source : c14655ab3df2c9b1465dd8102b9d25683359a37b
2018-04-28 12:50:58 -07:00
Andi-Bogdan Postelnicu
3f2298c2f6 Bug 1457411 - Update netwerk module to make use of newer methods introduced with c++11 and c++14. r=valentin
MozReview-Commit-ID: 666LNaHyiuQ

--HG--
extra : rebase_source : f3a24e0342d8dcdf9020dd473bc6b1045cbc533b
2018-04-30 19:46:04 +03:00
Valentin Gosu
6a2d43d5e7 Bug 1456863 - Backed out bug 356831 (changeset 204bb43af943) for leaks r=me 2018-04-30 15:34:39 +02:00
Polly Shaw
091db15fe1 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

--HG--
extra : rebase_source : cf29f76826cc7728fd36505c8271bf50001c644c
2018-04-22 18:13:11 +01:00
Margareta Eliza Balazs
0fe561286b 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
f95f738f4e 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

--HG--
extra : rebase_source : df2b80fcc03948e54f222e11060e1783f3b95421
2018-04-22 18:13:11 +01:00
Nika Layzell
0c3ba13e4c 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
2b985ab718 Bug 1451421 - Add a ToLowerCaseASCII utility method for nsAtom. r=hisvonen 2018-04-06 15:30:15 -07:00
Honza Bambas
7c8e2fe79d 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
a2b5ec45e8 Bug 1421793 - nsPACMan needs to be shutdown before dtor; r=schien
MozReview-Commit-ID: D2aKTC8s9MQ

--HG--
extra : rebase_source : e1442aebd9bd5f6e155ba4e33a9b30a97b3427e3
2017-12-01 15:10:36 +08:00
Nicholas Nethercote
9252435548 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

--HG--
extra : rebase_source : e6e4b15d6d210cfd93686f96400281f02bd1d06b
2017-10-27 10:30:33 +11:00
Valentin Gosu
dfab8e64b8 Bug 1403522 - 'No Proxy For' does not work right if it contains '<local>' only r=bagder
MozReview-Commit-ID: KRW15BxzcN3

--HG--
extra : rebase_source : 47a1b7860c83bc482c7b1e5d4a92401339f19ac5
2017-10-18 16:00:04 +02:00
Liang-Heng Chen
ef46bde5d2 Bug 1405496 - remove unnecessary assertion; r=bagder
The assertion does not have to be true.

MozReview-Commit-ID: HrXpPsO0rQd

--HG--
extra : rebase_source : 31cb1a715f5487ed32f9e3b31442904a185896d7
2017-10-05 10:59:11 +08:00
Nicholas Nethercote
025461bde7 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
cf00cf911b Bug 1379786, part 2 - Use nsContentUtils::GetSystemPrincipal in various places. r=mrbkap
MozReview-Commit-ID: KPXAqKeX4gI

--HG--
extra : rebase_source : 44fd734e7c5bbaba48bb25b882acc74cf0b81fb5
2017-07-10 14:24:54 -07:00
Andrea Marchesini
50f9ea47a3 Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
Kershaw Chang
5279c25aa6 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
a3cc60dae5 Bug 1177909 - Part 1: support perferred proxy type while using system proxy setting; r=bagder
MozReview-Commit-ID: 7C5pSxO1d2j

--HG--
extra : rebase_source : b22b533fd83ad377128781f44fe1fc0c66f5adc1
2017-06-12 11:41:14 +08:00
Bevis Tseng
d1637b9c5a 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
c7eec4fbc7 Bug 1371550 - create worker thread before it is required; r=bagder
MozReview-Commit-ID: 9DydRQwOHyT

--HG--
extra : rebase_source : 89b89f9139cc00176cdb29f23f172dab70f5ca44
2017-06-09 15:11:24 +08:00
Liang-Heng Chen
729b37b70f Bug 1366133 - Part 1: make nsISystemProxySettings::GetPACURI happen in another thread; r=bagder
MozReview-Commit-ID: FyiNM8KX0gk

--HG--
extra : rebase_source : 60bc91300a08f8df76f439d73739c34aa32b2f92
2017-05-24 14:36:53 +08:00
Patrick McManus
580ef98764 Bug 1362498 - cache some networking mozilla::services r=bagder
MozReview-Commit-ID: G61lDIOKcm

--HG--
extra : rebase_source : 83d3f8258234f85145f485ae35e6ac07e77bac98
2017-05-05 14:32:19 -04:00
Patrick McManus
e775512982 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

--HG--
extra : rebase_source : 054b01269d36dd8e8e24056f389c94a0d9183436
2017-04-19 08:42:09 -04:00
Valentin Gosu
1d52489dd5 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

--HG--
extra : rebase_source : 9fac33114b16d0910e63b474222acf0bc1db500f
2017-03-20 20:21:15 +01:00
Valentin Gosu
179c07ad0e 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

--HG--
extra : rebase_source : 757a19a50a50b2af232f0b44f6faacf7280b554a
2017-03-20 20:20:42 +01:00
Jun
98d60468d1 Bug 1337336 - Fix ReloadPAC() for the PROXYCONFIG_SYSTEM case. r=bagder 2017-03-15 03:21:00 -04:00
Valentin Gosu
724d134c92 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
5f8f360823 Bug 1060419 - make log_print use Printf.h, r=froydnj
MozReview-Commit-ID: BIZ1GQEZ1vs

--HG--
extra : rebase_source : 2f1f0aa12493c44f352d9a7e8683e7bb72d2d75b
2016-12-15 20:16:31 -07:00
Liang-Heng Chen
ce7d6c91d6 Bug 1028195 - make proxy bypass rule consistent; r=bagder
MozReview-Commit-ID: CMAUt1p3L3u

--HG--
extra : rebase_source : 4a33d2ebd55aa501acf74100273490af9c521c63
2017-02-08 15:10:02 +08:00
Jed Davis
eae6e4b98c Bug 778201 - Remove nsPluginHost::FindProxyByURL and nsProtocolProxyService::DeprecatedBlockingResolve. r=bsmedberg,mcmanus
MozReview-Commit-ID: 9xuddxdw5cd

--HG--
extra : rebase_source : 4eaa281e108545a98697712861a453d096120a24
2017-02-03 16:32:04 -07:00
Valentin Gosu
60dca5c744 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
f928a5954c 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
Carsten "Tomcat" Book
b0e2113477 Backed out changeset 41aca5073e9d (bug 1288308) for m-oth failures 2016-11-02 15:35:51 +01:00
Liang-Heng Chen
77847254f2 Bug 1288308 - Part 0: add Named Pipe type on Windows platform; r=bagder
MozReview-Commit-ID: It2l5BJuHiS
2016-11-02 18:43:29 +08:00
Ehsan Akhgari
ea467855d3 Bug 1310721 - Remove support for the b2g PAC generator; r=mcmanus
This effectively backs out bug 1115495.
2016-10-17 14:10:45 -04:00
Liang-Heng Chen
7041992f29 Bug 1211567 - Enable domain socket support for SOCKS; r=bagder
MozReview-Commit-ID: 9yMFckwPf6C

--HG--
extra : rebase_source : 17f006f17f97f015403153879cd8b50e482cfc8c
2016-06-30 11:23:40 +08:00
Andi-Bogdan Postelnicu
1239223ba1 Bug 1276642 - initialize member variable |mStatus|. r=valentin
MozReview-Commit-ID: DREwq15bAAe

--HG--
extra : rebase_source : 833daa0edd45c5f4207cabb07f2807d90a56c696
2016-05-30 15:37:47 +03:00
Patrick McManus
2cd574f25f Bug 1274376 - more mozilla::net namespaces r=dragana
--HG--
extra : rebase_source : 914d48f23a4a5db052a789b9e21c1ff922533d35
2016-05-18 22:02:57 -04:00
Daniel Stenberg
7c81f56832 Bug 1260407 - added logging for proxy/pac to aid debugging, r=mcmanus 2016-03-29 05:23:00 +02:00
Christoph Kerschbaumer
f29ec8d62f Bug 1254689 - Remove SEC_NORMAL where loadingPrincipal is SystemPrincipal or NullPrincipal. r=sicking 2016-03-09 13:55:59 -08:00
Wes Kocher
817d8829fc Backed out changeset 7cbab9ec76d5 (bug 1254689) for browser_dbg_addon-sources.js failures
MozReview-Commit-ID: 3zPliH7mmPj

--HG--
extra : rebase_source : 90a6c96c2106ec23043160ed93041cd7e15b1640
2016-03-09 10:56:23 -08:00
Christoph Kerschbaumer
007c074be0 Bug 1254689 - Remove SEC_NORMAL where loadingPrincipal is SystemPrincipal or NullPrincipal (r=sicking)
MozReview-Commit-ID: LKK3MGMODNI
2016-03-09 09:01:45 -08:00
J. Ryan Stinnett
5bede71f0d Bug 1238160 - Rename nsILoadContext::GetIsInBrowserElement. r=smaug,mayhemer
This change renames nsILoadContext::GetIsInBrowserElement to
GetIsInIsolatedMozBrowserElement.  Other methods that pass these values around
also have name changes.

Tokens such as "isInBrowserElement" have previously been serialized into cache
keys, used as DB column names, stored in app registries, etc.  No changes are
made to any serialization formats.  Only runtime method and variable names are
updated.

No behavior changes are made in this patch, so some renamed methods may have
nonsensical implementations.  These are corrected in subsequent patches
focused on behavior.

MozReview-Commit-ID: CUttXANQjSv
2016-03-02 10:35:56 -06:00
Paul Bignier
1d1fd489f5 Bug 1245106 - necko compilation warnings r=mcmanus
--HG--
extra : rebase_source : 6f4adf253af73a58d3ff5561e33e34eed94e456b
2016-02-26 11:29:28 -05:00
Aidin Gharibnavaz
686438c658 Bug 1164581 - Adding an overload for NS_ProxyRelease that accepts already_AddRefed, and removing all the others. r=bobbyholley 2016-02-10 08:23:00 +01:00
Carsten "Tomcat" Book
5b358688b7 Backed out changeset c18e29c1b369 (bug 1164581) for cpp unit tests test failures
--HG--
extra : rebase_source : fb6fd434c8e3f4b5fa53ea645a54c07cab207894
2016-02-08 11:17:38 +01:00
Aidin Gharibnavaz
69cf7e035f Bug 1164581 - Adding an overload for NS_ProxyRelease that accepts already_AddRefed, and removing all the others. r=bobbyholley
--HG--
extra : rebase_source : 3c6bba6613a14e48239d302bdd0f7fe2e322265d
2016-02-07 10:56:00 +01:00