summaryrefslogtreecommitdiffstats
path: root/net/proxy/proxy_service.h
Commit message (Collapse)AuthorAgeFilesLines
* Add skeleton for an about:net-internal page.eroman@chromium.org2009-09-011-5/+10
| | | | | | | | | | | | | | | | | | This page contains low-level debug information that is of interest to power users, and bug investigators. The output can be filtered by using special sub-URLs. The sub-URLs themselves are listed when visiting about:net-internal, but to give an idea: about:net-internal -- everything about:net-internal/proxyservice -- all things proxy about:net-internal/proxyservice.config -- current settings about:net-internal/hostresolver.hostcache -- dns cache BUG=http://crbug.com/14478 R=darin Review URL: http://codereview.chromium.org/173024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25109 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: get GNOME or KDE proxy settings.mdm@chromium.org2009-08-281-4/+5
| | | | | | | | | BUG=17363, 20407 TEST=none Review URL: http://codereview.chromium.org/174327 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24831 0039d316-1c4b-4281-b951-d872f2087c98
* Remove an unused header from proxy_service.h.ericroman@google.com2009-08-181-2/+0
| | | | | | Review URL: http://codereview.chromium.org/164545 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23615 0039d316-1c4b-4281-b951-d872f2087c98
* Reference count ProxyService.eroman@chromium.org2009-08-181-3/+2
| | | | | | | | | | | | | This is necessary since ProxyService is getting shared between chrome's url request contexts (off the record, media), and the current way it is being shared could result in free memory read/writes during shutdown. This is a step towards fixing http://crbug.com/15289. BUG=http://crbug.com/15289 TEST=The existing tests should continue to pass following this refactor. Review URL: http://codereview.chromium.org/165430 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23612 0039d316-1c4b-4281-b951-d872f2087c98
* Instrument ProxyService and InitProxyResolver with LoadLog.eroman@chromium.org2009-08-171-0/+10
| | | | | | | | BUG=http://crbug.com/14478 Review URL: http://codereview.chromium.org/172020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23573 0039d316-1c4b-4281-b951-d872f2087c98
* LoadLog is used as an output parameter, reorder it to the last parameter.willchan@chromium.org2009-08-141-12/+11
| | | | | | Review URL: http://codereview.chromium.org/164531 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23419 0039d316-1c4b-4281-b951-d872f2087c98
* Update a comment to reflect the new truth.ericroman@google.com2009-08-141-7/+5
| | | | | | Review URL: http://codereview.chromium.org/165519 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23417 0039d316-1c4b-4281-b951-d872f2087c98
* Add a "LoadLog" parameter to transactions, hostresolver, clientsocketpool ↵ericroman@google.com2009-08-121-6/+14
| | | | | | | | and proyxservice.This dependency comes from the parent URLRequest, and is used as a container for per-request profiling data.This change is strictly a no-op refactor -- the parameter is unused, and LoadLog does nothing.BUG=http://crbug.com/14478TEST=none -- just needs to compile and pass existing tests.DESIGN=<http://docs.google.com/Doc?id=dfhcnb2v_21gbtrcpr3&hl=en> Review URL: http://codereview.chromium.org/126303 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23127 0039d316-1c4b-4281-b951-d872f2087c98
* Don't mutate |config_| after failing proxy-autodetect.eroman@chromium.org2009-08-051-0/+5
| | | | | | | | | | | | Otherwise when polling for configuration changes, we think the current configuration is different than the fetched one. This was a recent regression from r22485. BUG=http://crbug.com/18526 TEST=ProxyServiceTest.UpdateConfigAfterFailedAutodetect Review URL: http://codereview.chromium.org/160654 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22504 0039d316-1c4b-4281-b951-d872f2087c98
* Better match IE's proxy settings.ericroman@google.com2009-08-041-31/+19
| | | | | | | | | | | | | | | | * When BOTH autodetect and custom PAC script are given, try both. * Use successful PAC parsing as the heuristic for determining when a script is valid (rather than first-request). * Only apply the proxy bypass list when using non-PAC. The high level explanation on how this works: http://sites.google.com/a/chromium.org/dev/developers/design-documents/proxy-settings-fallback BUG= http://crbug.com/18271, http://crbug.com/9985 TEST=unit tests. Review URL: http://codereview.chromium.org/160510 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22430 0039d316-1c4b-4281-b951-d872f2087c98
* Consider "127.0.0.1" and "[::1]" local addresses for the purposes of proxy ↵ericroman@google.com2009-07-281-2/+7
| | | | | | | | | | | bypass. BUG=http://crbug.com/17903 TEST=ProxyServiceTest.IsLocalName Review URL: http://codereview.chromium.org/159526 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21876 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the concept of threading from ProxyService, and move it into the ↵ericroman@google.com2009-07-261-19/+25
| | | | | | | | | | | | | | | | | | | | | | | | ProxyResolver dependency. ProxyResolver may now complete requests asynchronously, and is defined to handle multiple requests. The code from ProxyService that queued requests onto the single PAC thread has moved into SingleThreadedProxyResolver. This refactor lays the groundwork for: (1) http://crbug.com/11746 -- Run PAC proxy resolving out of process. (Can inject an IPC bridge implementation of ProxyResolver) (2) http://crbug.com/11079 -- Run PAC proxy resolving on multiple threads. (Can implement a MultithreadedProxyResolver type class; still complications around v8 threadsafety though). BUG=http://crbug.com/11746, http://crbug.com/11079 TEST=existing unit-tests. Review URL: http://codereview.chromium.org/149525 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21631 0039d316-1c4b-4281-b951-d872f2087c98
* Re-do of r16741 (http://codereview.chromium.org/113482).robertshield@google.com2009-05-221-0/+7
| | | | | | | | | | Moved the new automation message in automation_messages_internal.h to the END of the enum as per the large scary warning that I skillfully missed last time around. TBR=amit Review URL: http://codereview.chromium.org/115711 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16754 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of r16741 which appeared to cause a perf regression (???) on the ↵robertshield@google.com2009-05-221-7/+0
| | | | | | | | | | builder. TBR=thomasvl Review URL: http://codereview.chromium.org/115708 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16742 0039d316-1c4b-4281-b951-d872f2087c98
* Adding the ability to alter Chrome's proxy settings via the automation ↵robertshield@google.com2009-05-221-0/+7
| | | | | | | | interface for automated testing. Review URL: http://codereview.chromium.org/113482 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16741 0039d316-1c4b-4281-b951-d872f2087c98
* Fix gconf for the linux proxy config service.sdoyon@chromium.org2009-05-221-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | -Reenables fetching of settings from gconf. -Moves all gconf access to happen from the UI thread only, (where the default glib main loop runs). -Adds support for gconf notifications, avoiding having to poll the settings. -Fixes a small initialization glitch in the unittest. Plus minor code style tweaks. -Permanently removes gdk and glib threading initialization calls that were previously disabled. -Slight reorganization of ProxyService creation to pass down the IO thread MessageLoop. BUG=11111 TEST=none Review URL: http://codereview.chromium.org/113043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16739 0039d316-1c4b-4281-b951-d872f2087c98
* Reorganize the ProxyService::Create() and ↵eroman@chromium.org2009-05-191-0/+8
| | | | | | | | | | | ProxyService::CreateWithoutV8Resolver() methods. Instead of using a NULL ProxyResolver dependency in cases where PAC is not supported, it uses a ProxyResolverNull (always fail) implementation. This is to avoid needing to check in other cases (when v8 is unsupported) if there is a non-null ProxyResolver. Review URL: http://codereview.chromium.org/115532 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16413 0039d316-1c4b-4281-b951-d872f2087c98
* Making command-line specified proxy settings more flexible - allowing for ↵robertshield@google.com2009-05-121-5/+5
| | | | | | | | | | setting of auto-detect, pac url, per-schema proxy settings, proxy bypass urls. BUG=http://crbug.com/266 Review URL: http://codereview.chromium.org/115029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15855 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of the static next_id_ counter, to make construction of ProxyConfig ↵ericroman@google.com2009-05-041-4/+12
| | | | | | | | | on different threads safe. BUG=11323 Review URL: http://codereview.chromium.org/102023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15209 0039d316-1c4b-4281-b951-d872f2087c98
* Extract the parsing of proxy rules to ProxyConfig::ProxyRules, and unit-test.ericroman@google.com2009-03-311-0/+5
| | | | | | | | | | This avoids re-parsing the rules every time a proxy resolve is done, and also adds extra tolerance for white space. The other motivation is to not have to fiddle around with strings as much in the various ProxyConfigServceXXXX implementations. Review URL: http://codereview.chromium.org/57011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12829 0039d316-1c4b-4281-b951-d872f2087c98
* NO CODE CHANGEdeanm@chromium.org2009-03-111-1/+0
| | | | | | | | | Normalize end of file newlines in net/. All files end in a single newline. Review URL: http://codereview.chromium.org/43079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11442 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes CRLF and trailing white spaces.maruel@chromium.org2009-03-051-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10982 0039d316-1c4b-4281-b951-d872f2087c98
* Add a command line flag --v8-proxy-resolver, to select the new PAC ↵ericroman@google.com2009-03-031-3/+18
| | | | | | | | | | | | | | | | | | implementation. When running in single process mode, this flag has no effect (since we can't run side by side with the renderer's V8). In regular mode, the v8 resolver is currently running in the browser process. This means it has to share with the v8 debugger shell. Added locking around the debugger shell so they can peacefully co-exist. When this flag is enabled, PAC scripts are downloaded through the browser. BUG=74,2764 Review URL: http://codereview.chromium.org/27365 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10827 0039d316-1c4b-4281-b951-d872f2087c98
* split up proxy_service into several files (one per class).ericroman@google.com2009-03-021-229/+7
| | | | | | Review URL: http://codereview.chromium.org/28278 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10739 0039d316-1c4b-4281-b951-d872f2087c98
* Add support to ProxyService for downloading a PAC script on behalf of the ↵ericroman@google.com2009-02-231-0/+87
| | | | | | | | ProxyResolver. A ProxyResolver can select this new behavior by subclassing ProxyResolver with |does_fetch = false|. A consequence of this change is that proxy resolve requests are maintained in a queue by ProxyService (rather than implicitly in a queue on the PAC thread's message loop). This simplifies cancellation.This solves issue 7461, and is work-in-progress towards {2764, 74}BUG=7461 Review URL: http://codereview.chromium.org/21328 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10197 0039d316-1c4b-4281-b951-d872f2087c98
* Add parsing for PAC result strings -- ProxyInfo::UsePacString().ericroman@google.com2009-02-191-23/+53
| | | | | | | | | | | Added the support class ProxyServer to avoid losing the proxy server's type information (http, socks) when populating the list. The format of the configuration strings has been extended accordingly to include an optional [<scheme>"://"] prefix. (i.e. "http://", "socks4://", "socks5://"). Review URL: http://codereview.chromium.org/20398 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10010 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of synchronous ResolveProxy API.ericroman@google.com2009-01-311-12/+3
| | | | | | | Also remove the ProxyInfo::Apply method. Review URL: http://codereview.chromium.org/19502 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9015 0039d316-1c4b-4281-b951-d872f2087c98
* Move proxy resolve requests out of plugin/renderer process, and into the ↵ericroman@google.com2009-01-311-0/+26
| | | | | | | | browser. Review URL: http://codereview.chromium.org/14142 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9006 0039d316-1c4b-4281-b951-d872f2087c98
* post-winhttp cleanup: remove a todo.ericroman@google.com2009-01-151-9/+0
| | | | | | Review URL: http://codereview.chromium.org/18219 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8086 0039d316-1c4b-4281-b951-d872f2087c98
* Split ProxyResolver into two interfaces: A. interface for retrieving the ↵ericroman@google.com2008-12-191-7/+21
| | | | | | | | system proxy settings (ProxyConfigService) B. interface for resolving the proxy (ProxyResolver)The motivation behind this change is: 1. Simplify sharing the WinHTTP code that fetches IE settings, with the V8 proxy resolver (avoids having platform-specific code in ProxyResolverV8). 2. Restrict objects to one thread. (ProxyService calls the config getter on IO thread, and the proxy resolving on the PAC thread).(ProxyResolver is now only 1 method, but this will grow shortly). Review URL: http://codereview.chromium.org/15070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7323 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 6966.ericroman@google.com2008-12-131-5/+1
| | | | | | | this failed UI tests catastrophically Review URL: http://codereview.chromium.org/14103 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6968 0039d316-1c4b-4281-b951-d872f2087c98
* Use automatic memory management for URLRequestContext's members.ericroman@google.com2008-12-131-1/+5
| | | | | | | | Also make ProxyService refcounted so the sharing between profiles is explicit. Review URL: http://codereview.chromium.org/13701 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6966 0039d316-1c4b-4281-b951-d872f2087c98
* Misc proxy service changes.ericroman@google.com2008-12-101-14/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (1) Changed the proxy service ownership model -- rather than being a detail of the HTTP stack, it is now a dependency owned by UrlRequestContext. - ProxyService is owned by UrlRequestContext (before was HttpNetworkSession) - ProxyResolver is owned by ProxyService (before was HttpNetworkSession) Being able to share the proxy service is needed in several places, including incognito mode http context (http://crbug.com/3564), and for proxy resolving in the new FTP stack. (2) Added an IPC for getting of the ProxyResolverWinHttp dependency in the plugin process. Not hooked up yet, but intent is to route the proxy resolve requests through the browser process. (3) Changed some unit tests which were depending on the system proxy settings (this was a sideffect of their calling HttpNetworkLayer::CreateFactory(NULL)). (4) Moved the first-time ProxyService::UpdateConfig out of the constructor and into the initial request. Done to avoid startup perf regressions, since the ProxyService construction is now done earlier (on the startup critical path). BUG=3564 Review URL: http://codereview.chromium.org/12938 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6693 0039d316-1c4b-4281-b951-d872f2087c98
* Refactoring: replace some raw strings with GURL.ericroman@google.com2008-12-021-3/+4
| | | | | | | | Also address a TODO about stripping references from proxy resolve requests. Review URL: http://codereview.chromium.org/13029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6207 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding of r4221, initial proxy support for the Macavi@google.com2008-10-311-4/+8
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4293 0039d316-1c4b-4281-b951-d872f2087c98
* oops; will reland once tree is openavi@google.com2008-10-301-8/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4223 0039d316-1c4b-4281-b951-d872f2087c98
* Initial Mac proxy implementationavi@google.com2008-10-301-4/+8
| | | | | | Review URL: http://codereview.chromium.org/8671 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4221 0039d316-1c4b-4281-b951-d872f2087c98
* Move Time, TimeDelta and TimeTicks into namespace base.dsh@google.com2008-10-271-3/+3
| | | | | | Review URL: http://codereview.chromium.org/7995 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4022 0039d316-1c4b-4281-b951-d872f2087c98
* Allow consumers of MessageLoop to specify the type of MessageLoop they want.darin@google.com2008-08-261-2/+2
| | | | | | | | | | | | | | | | This CL introduces a Type enum to MessageLoop, and I also created subclasses of MessageLoop corresponding to the non-default types: MessageLoopForIO and MessageLoopForUI. I moved all of the platform-specific MessageLoop APIs onto either MessageLoopForIO or MessageLoopForUI. MessageLoopForIO gets the Watcher API, and MessageLoopForUI gets the Observer and Dispatcher APIs. Under the hood, both are implemented in terms of MessagePumpWin, but that will change in a future CL. The Thread class is changed to allow the consumer to specify the Type of MessageLoop they want to have setup on the created thread. I re-organized message_loop_unittest.cc and timer_unittest.cc so that I could exercise all (or most) of the tests against each type of MessageLoop. Note: I know that "explicit MessageLoop(Type type = TYPE_DEFAULT);" is in violation to the style-guide's restriction against default arguments. I'm working on finding a decent solution to that problem. Please ignore this issue for now. The corresponding chrome/ changes are coming in a separate CL due to Reitveld data size limitations. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1362 0039d316-1c4b-4281-b951-d872f2087c98
* Use a more compact license header in source files.license.bot2008-08-241-28/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1287 0039d316-1c4b-4281-b951-d872f2087c98
* Merge some changes from branches/mac_july_2008 to trunk.ericroman@google.com2008-08-181-0/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1002 0039d316-1c4b-4281-b951-d872f2087c98
* Change the ProxyService to work with ASCII strings.darin@google.com2008-08-121-15/+13
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@711 0039d316-1c4b-4281-b951-d872f2087c98
* Rename HttpProxy* classes to Proxy*. Move them into a net/proxy/ subdirectory.darin@google.com2008-08-111-0/+303
I'm making this change because proxy resolution is really not specific to the HTTP protocol. We need to use the proxy service in our FTP implementation, for example. I made a separate directory instead of just putting these in base, because I anticipate more files once we have our own PAC implementation. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@651 0039d316-1c4b-4281-b951-d872f2087c98