summaryrefslogtreecommitdiffstats
path: root/net/proxy
Commit message (Collapse)AuthorAgeFilesLines
* Make HostResolver NonThreadSafe and not thread safe refcounted.willchan@chromium.org2010-06-033-119/+170
| | | | | | | | | | Required making SyncHostResolverBridge not use RefCountedThreadSafe. I refactored the innards to have a thread safe refcounted Core implementation. BUG=45298 Review URL: http://codereview.chromium.org/2122015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48867 0039d316-1c4b-4281-b951-d872f2087c98
* Rework the logging for sockets/connectjobs.eroman@chromium.org2010-06-031-1/+1
| | | | | | | | | | | | | | | | | | In particular, make it work better when using backup jobs / late binding (the display was very confused before because of how these asynchronous events would nest). Also changed the paradigm for how PassiveLogCollector preserves these async associations -- this fixes how it replays the events to net-internals. (Before we would collapse the event streams into the SOURCE_URL_REQUEST which lost some hiearchy.. now I keep the separate streams). Some of the particular changes to the event streams: * ConnectJobs now create their own source stream internally. * Sockets are now bounded by +SOCKET_ALIVE / -SOCKET_ALIVE events (removed the one-off SOCKET_DONE event). * The socket log streams contains +SOCKET_IN_USE / -SOCKET_IN_USE event blocks to show which URLRequest was controlling it at various points in time (this makes it much easier to understand which read/writes belonged to a particular network transaction when a socket gets re-used). * ConnectJobs are bounded by +SOCKET_POOL_CONNECT_JOB / - SOCKET_POOL_CONNECT_JOB events. * ConnectJobs log the net error they failed with. * Removed the SOCKET_BACKUP_TIMER_EXTENDED event. Review URL: http://codereview.chromium.org/2363003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48797 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Fix kde no_proxy environment variable handling.mattm@chromium.org2010-05-182-18/+96
| | | | | | | | | BUG=43176 TEST=net_unittests, manual Review URL: http://codereview.chromium.org/2115006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47592 0039d316-1c4b-4281-b951-d872f2087c98
* Log the OS error that getaddrinfo() failed with.eroman@chromium.org2010-05-161-1/+1
| | | | | | | | | - Display it on the about:net-internals page - Collect it in the histogram Net.OSErrorsForGetAddrinfo. Review URL: http://codereview.chromium.org/2134004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47386 0039d316-1c4b-4281-b951-d872f2087c98
* Try to fix a deadlock that happened when running the network diagnostic tool ↵eroman@chromium.org2010-05-131-24/+48
| | | | | | | | | | | | | | tests, by releasing the V8 lock while executing the JS bindings functions. I don't fully understand how the deadlock happens, but this is a desirable change anyway as it increases the parallelism when running concurrent proxy resolvers. BUG=44013,44005 Review URL: http://codereview.chromium.org/2023009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47181 0039d316-1c4b-4281-b951-d872f2087c98
* Http Cache: Add a backend factory class so that the callerrvargas@google.com2010-05-121-1/+1
| | | | | | | | | | | | has more control about the backend instantiation. BUG=none TEST=current unit tests. Review URL: http://codereview.chromium.org/2000011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47050 0039d316-1c4b-4281-b951-d872f2087c98
* Update V8 to version 2.2.9sgjesse@google.com2010-05-111-1/+1
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/2003010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46897 0039d316-1c4b-4281-b951-d872f2087c98
* Change the V8 proxy resolver bindings so that dnsResolve(XXX) returns null ↵eroman@chromium.org2010-05-052-31/+15
| | | | | | | | | | | | | when XXX is not a string. (The current behavior is to stringize XXX). This is consistent with other browsers. BUG=42646 TEST=ProxyResolverV8Test.V8indings Review URL: http://codereview.chromium.org/1954004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46487 0039d316-1c4b-4281-b951-d872f2087c98
* Replace CHECK(false) by LOG(FATAL) where appropriate.evan@chromium.org2010-05-051-2/+2
| | | | | | | | | The difference is that the error message doesn't contain "Assertion failed: false". Review URL: http://codereview.chromium.org/1970001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46422 0039d316-1c4b-4281-b951-d872f2087c98
* Add a tool for testing your network setup.eroman@chromium.org2010-05-042-0/+19
| | | | | | | | | | | | It runs a series of experiments using alternate network settings, to try and discover what the misconfiguration is. DESIGN=http://docs.google.com/Doc?id=dfhcnb2v_22cjtdznvg TEST=ConnectionTesterTest.* Review URL: http://codereview.chromium.org/1937001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46387 0039d316-1c4b-4281-b951-d872f2087c98
* Implement a 15 connection per proxy server limit.willchan@chromium.org2010-04-292-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we had a limit of 6 connections per proxy server, which was horrifically low. Connections to all endpoint hosts remains at 6. Basically, we have a map of socket pools, keyed by the proxy server. Each of these proxy socket pools has a socket limit of 15 and a connection limit per host of 6. The main TCP socket pool (non-proxied) has the standard 256 socket limit, and connection limit per host of 6. There are two maps currently, one for HTTP proxies and one for SOCKS proxies. Note that SSL tunnels over HTTP CONNECTs are still located within the standard http proxy socket pools. We depend on the fact that our code never returns a non-SSL connected socket to the pool for a |connection_group| that is to a HTTPS endpoint. A newly connected socket from the pool will only have the TCP connection done. An idle socket will have both the TCP and the HTTP CONNECT and the SSL handshake done for it. TODO(willchan): Remove the extra constructor overload for the old deprecated parameters. Switch to using HostPortPair everywhere. TODO(willchan): Finish SSL socket pools. TODO(willchan): Rip out the DoInitConnection() code so it can be shared by other caller (TCP pre-warming!). TODO(willchan): Flush out the socket pool maps when the proxy configuration changes. TODO(willchan): Fix up global socket limits. They're slightly broken in this case, since each pool instance has its own "global" limit, so obviously different pools don't share the same "global" limit. This is such a minor deal since the global limits are so small for proxy servers compared to the system global limits (256 vs 15), that it doesn't have a big effect. TODO(willchan): Drink moar b33r. BUG=12066 Review URL: http://codereview.chromium.org/1808001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45896 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove the implicit constructor for BoundNetLog that allowed ↵eroman@chromium.org2010-04-2810-182/+226
| | | | | | | | | passing NULL in place of a const BoundNetLog&. BUG=37421 Review URL: http://codereview.chromium.org/1783008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45851 0039d316-1c4b-4281-b951-d872f2087c98
* More cleanup to address TODOs in net_log.h.eroman@chromium.org2010-04-285-39/+43
| | | | | | | | | | | * Removes 9 methods: AddEventWithParameters, BeginEventWithParameters, EndEventWithParameters, BeginEventWithString, BeginEventWithInteger, AddEventWithString, AddEventWithInteger, EndEventWithParameters, EndEventWithInteger. This was becoming ridiculous, instead made the EventParameters* a required parameter. * Moves CapturingBoundNetLog / CapturingNetLog to its own file. BUG=37421 Review URL: http://codereview.chromium.org/1746012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45843 0039d316-1c4b-4281-b951-d872f2087c98
* Remove proxy_mode_ from the HttpNetworkTransaction since itmbelshe@chromium.org2010-04-281-0/+14
| | | | | | | | | | | is redundant with proxy_info_. BUG=none TEST=covered by existing tests. Review URL: http://codereview.chromium.org/1809001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45787 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Address some of the todos in net_log.heroman@chromium.org2010-04-273-42/+42
| | | | | | | | | | | - Get rid of the AddString() and AddStringLiteral() methods. - Make EventParameters able to serialize to JSON, instead of a string. BUG=37421 Review URL: http://codereview.chromium.org/1716007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45750 0039d316-1c4b-4281-b951-d872f2087c98
* bsd: refactor XDG bits of linux_util into a shared file.evan@chromium.org2010-04-221-1/+1
| | | | | | | | | This allows the shared code to build on the BSDs without them needing to build _linux files. Review URL: http://codereview.chromium.org/1701005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45380 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: correctly ignore KDE "indirect" environment variable proxy settings ↵mdm@chromium.org2010-04-181-0/+2
| | | | | | | | | | when they are unset BUG=41095 TEST=configure KDE to use proxy settings from unset environment variables, it should not try to use the variable names as proxies Review URL: http://codereview.chromium.org/1518036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44892 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a deadlock that could happen during shutdown if a host resolve request ↵eroman@chromium.org2010-04-179-116/+468
| | | | | | | | | | | | | was outstanding by a PAC script. The solution is to abort the oustanding host resolver request during shutdown, and wake-up the blocked PAC thread. BUG=41244 TEST=SingleThreadedProxyResolverWithBridgedHostResolverTest.ShutdownDeadlock Review URL: http://codereview.chromium.org/1527037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44864 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Explicitly add a bunch of missing includes.thestig@chromium.org2010-04-151-3/+5
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/1623014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44635 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for attaching custom parameters to NetLog events.eroman@chromium.org2010-04-091-3/+3
| | | | | | | | BUG=37421 Review URL: http://codereview.chromium.org/1556018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44057 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Use .kde4 for proxy settings when it is present and we are running ↵mdm@chromium.org2010-04-082-19/+160
| | | | | | | | | | under KDE4. Fall back to .kde if it is not present. Also, always respect $KDE_HOME if it is set. BUG=29927 TEST=configure a proxy on a distribution that uses .kde4 (most), we should detect it now Review URL: http://codereview.chromium.org/1524018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43969 0039d316-1c4b-4281-b951-d872f2087c98
* HostResolver now adds AI_CANONNAME to the hint flags if a requester needs ↵cbentzel@chromium.org2010-04-081-1/+2
| | | | | | | | | | | | | | | | the information. Requests which want the canonical name should be treated differently from requests that do not for the same host in both the HostCache as well as in the HostResolver when combining multiple outstanding requests into a job. The motivation for this is that Kerberos SPN's for a web server are typically generated using the canonical name of the server rather than a DNS alias (both Firefox and IE have this behavior). (note: I had to revert http://codereview.chromium.org/1566012/show because net_unittests were crashing/hanging on the main buildbot, even though they weren't on the trybots. Trying to figure out why). BUG=29862 TEST=net_unittests Review URL: http://codereview.chromium.org/1593015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43947 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 43826 - HostResolver now adds AI_CANONNAME to the hint flags if a ↵cbentzel@chromium.org2010-04-071-2/+1
| | | | | | | | | | | | | | | | | | requester needs the information. Requests which want the canonical name should be treated differently from requests that do not for the same host in both the HostCache as well as in the HostResolver when combining multiple outstanding requests into a job. The motivation for this is that Kerberos SPN's for a web server are typically generated using the canonical name of the server rather than a DNS alias (both Firefox and IE have this behavior). BUG=29862 TEST=net_unittests Review URL: http://codereview.chromium.org/1566012 TBR=cbentzel@chromium.org Review URL: http://codereview.chromium.org/1629005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43833 0039d316-1c4b-4281-b951-d872f2087c98
* HostResolver now adds AI_CANONNAME to the hint flags if a requester needs ↵cbentzel@chromium.org2010-04-071-1/+2
| | | | | | | | | | | | | | | the information. Requests which want the canonical name should be treated differently from requests that do not for the same host in both the HostCache as well as in the HostResolver when combining multiple outstanding requests into a job. The motivation for this is that Kerberos SPN's for a web server are typically generated using the canonical name of the server rather than a DNS alias (both Firefox and IE have this behavior). BUG=29862 TEST=net_unittests Review URL: http://codereview.chromium.org/1566012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43826 0039d316-1c4b-4281-b951-d872f2087c98
* Move EnvironmentVariableGetter from base/linux_util.h to base/env_var.h and ↵thestig@chromium.org2010-04-033-36/+31
| | | | | | | | | | rename it EnvVarGetter. Label base::SysInfo::{Get,Has}EnvVar as deprecated. BUG=none TEST=none Review URL: http://codereview.chromium.org/1606007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43559 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash when calling a PAC binding from the global scope.eroman@chromium.org2010-03-312-14/+40
| | | | | | | | | BUG=40026 TEST=ProxyResolverV8Test.BindingCalledDuringInitialization Review URL: http://codereview.chromium.org/1520009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43268 0039d316-1c4b-4281-b951-d872f2087c98
* GTK: Turn on the GTK+ integration by default.erg@chromium.org2010-03-261-0/+1
| | | | | | | | | | | | | | This will regress default startup time for users by 50ms. This doesn't matter because this is what the users want--I've lost count of the number bloggers, people on twitter, and people in our IRC channel complaining about the lack of GTK+ integration...when it's just not on by default. BUG=none TEST=none Review URL: http://codereview.chromium.org/1442001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42804 0039d316-1c4b-4281-b951-d872f2087c98
* Move over another legacy "LoadLog-style" event generator to routing its ↵eroman@chromium.org2010-03-163-51/+60
| | | | | | | | | | messages through the NetLog. BUG=37421 Review URL: http://codereview.chromium.org/1052002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41768 0039d316-1c4b-4281-b951-d872f2087c98
* Generalize the net module's LoadLog facility from a passive container, to an ↵eroman@chromium.org2010-03-1620-270/+279
| | | | | | | | | | | | | | | | event stream (NetLog). This makes it possible to associate a single NetLog with a URLRequestContext, and then attach observers to that log to watch the stream of events. This changelist attempts to do the most direct translation, so there will be subsequent iterations to clean up. The user-visible behavior should remain unchanged. BUG=37421 Review URL: http://codereview.chromium.org/848006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41689 0039d316-1c4b-4281-b951-d872f2087c98
* Remove LOG(WARNING)s for when fails to parse proxy bypass rules.eroman@chromium.org2010-03-111-5/+3
| | | | | | | | | | This can pollute the log since it gets hit often (each time poll for checks). BUG=none Review URL: http://codereview.chromium.org/781001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41243 0039d316-1c4b-4281-b951-d872f2087c98
* Use CHECK_* in netwillchan@chromium.org2010-03-021-2/+2
| | | | | | Review URL: http://codereview.chromium.org/660404 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40453 0039d316-1c4b-4281-b951-d872f2087c98
* ProxyConfig behaved like a struct, but was defined as a class.eroman@chromium.org2010-02-2415-452/+618
| | | | | | | | | Changed it to be a proper class with hidden implementation variables, setters etc. Also seized this opportunity to move the bypass list from being a member of ProxyConfig, to being a member of ProxyRules. This is a more correct hiearchy, since the bypass rules only apply to the manual settings. Lastly, this makes it possible to have the manual rules evaluation be a method on ProxyRules, and shift some more code out of proxy_service. Review URL: http://codereview.chromium.org/651070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39818 0039d316-1c4b-4281-b951-d872f2087c98
* Really connect to the same server in FTP network transaction.phajdan.jr@chromium.org2010-02-201-1/+1
| | | | | | | | | | | | Also create necessary infrastructure to know the address a client socket is connected to. TEST=Covered by net_unittests. BUG=35670 Review URL: http://codereview.chromium.org/598071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39559 0039d316-1c4b-4281-b951-d872f2087c98
* Split out the handling of proxy bypass rules into ProxyBypassRules. There ↵eroman@chromium.org2010-02-1916-569/+717
| | | | | | | | | | | | | | are some pretty complicated rules, and this helps isolate that code and better test it. This also lays a framework for addressing bug 9835 (IP/CIDR matching) Lastly, adds support for the exclusion format ".domain" on all platforms, which is interpreted as "*.domain". BUG=28112 TEST=ProxyBypassRulesTest.* Review URL: http://codereview.chromium.org/601070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39486 0039d316-1c4b-4281-b951-d872f2087c98
* Added factories for HttpAuthHandler.cbentzel@chromium.org2010-02-151-3/+5
| | | | | | | | | | | | | | | | | | | The driving rationale for this change was to prevent choosing an AuthHandler when it is not supported on the system due to a missing runtime component (such as not being able to locate a gssapi shared library when seeing a Negotiate scheme). It also has the advantage (currently unused) of determining some per-auth-scheme properties only the first time that a challenge for that scheme is seen (such as maximum token length for the SSPI implementation of NTLM). Finally, it may make unit tests easier to generate since the factory can be easily mocked. BUG=34795 TEST=New unit test for HttpAuthHandlerDispatchFactory. Review URL: http://codereview.chromium.org/582007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39065 0039d316-1c4b-4281-b951-d872f2087c98
* Minor unittest cleanup.eroman@chromium.org2010-02-051-24/+21
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/561082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38244 0039d316-1c4b-4281-b951-d872f2087c98
* Re-enable a unittest which failed on valgrind thread sanitizer.eroman@chromium.org2010-02-051-1/+5
| | | | | | | | | | | | | TSAN had reported a race on the bool |should_block_|, between BlockableProxyResolver::GetProxyForURL() and BlockableProxyResolver::Unblock(). I avoided the problem by calling WaitUntilBlocked() before Unblock(), which is the same pardigm used by the other tests. Really, the best fix is to remove that limitation from BlockableProxyResolver... left that as a future TODO. TBR=willchan Review URL: http://codereview.chromium.org/561083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38195 0039d316-1c4b-4281-b951-d872f2087c98
* Disable a test which is causing an error under valgrind TSAN.eroman@chromium.org2010-02-051-1/+1
| | | | | | | | | | It looks like there is a problem with the test setup (BlockableProxyResolver tests a bool outside of a lock). I will fix that next. TBR=willchan Review URL: http://codereview.chromium.org/578011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38194 0039d316-1c4b-4281-b951-d872f2087c98
* Add a timing measurement to LoadLog that shows how long a proxy resolve ↵eroman@chromium.org2010-02-052-2/+85
| | | | | | | | | request was stalled waiting to be scheduled to a thread. TEST=SingleThreadedProxyResolverTest.UpdatesLoadLogWithThreadWait Review URL: http://codereview.chromium.org/570019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38181 0039d316-1c4b-4281-b951-d872f2087c98
* Add unittest for r37566 (on PAC failure, should fallback to DIRECT).eroman@chromium.org2010-02-052-9/+23
| | | | | | | | | | | | To make it more testable, I had to move the fallback code in question from HttpNetworkTransaction to ProxyService. Although I think this is a better fit for that code anway, so it should be an overall readability improvement. BUG=32316 TEST=ProxyServiceTest.ProxyFallback_BadConfig, ProxyServiceTest.ProxyResolverFails Review URL: http://codereview.chromium.org/556087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38177 0039d316-1c4b-4281-b951-d872f2087c98
* Pass the NetworkChangeNotifier to HostResolver.willchan@chromium.org2010-02-043-7/+6
| | | | | | | | | | | | | | | This requires the following refactors: (1) NetworkChangeNotifier moves out of HttpNetworkSession into IOThread. (2) HostResolver gets initialized with NetworkChangeNotifier. (3) NetworkChangeNotifier needs to get passed into HttpCache and HttpNetworkSession (required updating a lot of files). (4) NetworkChangeNotifier is no longer reference counted. It is owned by IOThread. (5) IOThread gains a new struct: Globals. It can only be used on the io thread. (6) ChromeURLRequestContextFactory uses IOThread::Globals to initialize ChromeURLRequest objects with the host resolver and network change notifier. BUG=26159 Review URL: http://codereview.chromium.org/552117 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38052 0039d316-1c4b-4281-b951-d872f2087c98
* Add fine grain tracing to HostResolverImpl.eroman@chromium.org2010-02-021-1/+0
| | | | | | | | | | | | | This will help in diagnosing the "slow resolving host" bugs. Users can now click an "Enable tracing" button on "chrome://net-internals/hostresolver". This logs detailed information on the DNS requests flowing through the browser (when they were received, when they were posted to the thread pool, when they started running on the worker thread, etc...). BUG=12754 Review URL: http://codereview.chromium.org/556094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37776 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup the unittest helpers in load_log_unittest.h.eroman@chromium.org2010-01-293-65/+63
| | | | | | | | | | | Consolidates all the callers to using the testing::AssertionResult() flavor, and renames them to have "Event" in the name. This rename is in anticipation of adding testers for other entry types. BUG=NONE TEST=existing Review URL: http://codereview.chromium.org/551135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37501 0039d316-1c4b-4281-b951-d872f2087c98
* Add a histogram to record how long fetching the system proxy settings takes:eroman@chromium.org2010-01-281-0/+11
| | | | | | | | | | | Net.ProxyPollConfigurationTime On Windows, this corresponds to the duration of WinHttpGetIEProxyConfigForCurrentUser(), which we have seen can run very slowly on some systesm. This histogram tries to gauge the extent of the problem. BUG=12189 Review URL: http://codereview.chromium.org/553122 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37352 0039d316-1c4b-4281-b951-d872f2087c98
* Add more functionality to about:net-internals:eroman@chromium.org2010-01-132-0/+23
| | | | | | | | | | | | | (1) Display the cached bad proxies, and how long until they will be retried (addresses an old TODO). (2) Add a button to clear the bad proxies cache. (3) Add a button to force refetching of the proxy configuration (this can be used to force refetch of PAC files, very convenient when testing). BUG=none TEST=none Review URL: http://codereview.chromium.org/541045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36159 0039d316-1c4b-4281-b951-d872f2087c98
* Retry proxies which were cached as bad before giving up.eroman@chromium.org2010-01-126-17/+97
| | | | | | | | | | | This morphs ProxyList::RemoveBadProxies() into ProxyList::DeprioritizeBadProxies(), such that "bad proxies" are moved to the end of the fallback list rather than removed alltogether. BUG=31983 TEST=ProxyListTest.DeprioritizeBadProxies Review URL: http://codereview.chromium.org/542029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36054 0039d316-1c4b-4281-b951-d872f2087c98
* Adds a NetworkChangeNotifier dependency to ProxyService; when we observer a ↵eroman@chromium.org2010-01-083-50/+190
| | | | | | | | | | | | | | | network change through the notifier, the ProxyService re-configures itself. So for example, if you were to switch to VPN and are using a custom PAC URL, we will re-download that URL on the new network. Similarly if you are using auto-detect PAC settings, we will re-run the autodiscovery steps for the next resolve. Note that Chromium is still passing a NULL NetworkChangeNotifier dependency into its ProxyService -- until it passes a real implementation, this will not impact Chrome. BUG=12293 TEST=ProxyServiceTest.NetworkChangeTriggersPacRefetch Review URL: http://codereview.chromium.org/525104 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35772 0039d316-1c4b-4281-b951-d872f2087c98
* Log the results of proxy resolution to LoadLog when "full logging mode" is ↵eroman@chromium.org2010-01-075-17/+39
| | | | | | | | | | | | | | enabled. Examples of what the logged text looks like: "Resolved proxy list: PROXY foobar:6233" "Resolved proxy list: DIRECT" "Resolved proxy list: PROXY foobar:80;SOCKS5 baz:1080;DIRECT" Review URL: http://codereview.chromium.org/518042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35749 0039d316-1c4b-4281-b951-d872f2087c98
* Re-order some declarations in ProxyService, to ensure that deletion of ↵eroman@chromium.org2010-01-063-6/+78
| | | | | | | | | | | InitProxyResolver happens *after* the deletion of ProxyResolver. BUG=24864 TEST=ProxyServiceTest.DeleteWhileInitProxyResolverHasOutstandingFetch, ProxyServiceTest.DeleteWhileInitProxyResolverHasOutstandingSet Review URL: http://codereview.chromium.org/519060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35643 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the implicit fallback to DIRECT when proxies fail. This better ↵eroman@chromium.org2010-01-059-147/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | matches other browsers, and simplifies the code. To better understand what this means, here are some examples how the behaviors will differ for the user: (1) You start chrome with --proxy-server="foobar:80". The server "foobar:80" is refusing connections. Before: Would fallback to direct after failing to connect through foobar:80. Now: Will error-out with connection refused after failing to connect through foobar:80. (2) You start chrome with --proxy-pac-url="file:///foobar.pac". The server "foobar:80" is unreachable, and foobar.pac reads: function FindProxyForURL(url, host) { return "PROXY foobar:80"; } Before: Would fallback to direct after failing to connect through foobar:80. Now: Will error-out with connection refused after failing to connect through foobar:80. (3) You start chrome with --proxy-pac-url="file:///foobar.pac". The server "foobar:80" is unreachable, and foobar.pac reads: function FindProxyForURL(url, host) { return "PROXY foobar:80; DIRECT"; } *No change, since the fallback to DIRECT is explicit in the PAC script* BUG=12303 Review URL: http://codereview.chromium.org/502068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35549 0039d316-1c4b-4281-b951-d872f2087c98