summaryrefslogtreecommitdiffstats
path: root/net/base/host_resolver_unittest.cc
Commit message (Collapse)AuthorAgeFilesLines
* Refactorings surrounding HostResolver:ericroman@google.com2009-07-151-899/+0
| | | | | | | | | | | | | | | | | | | | | | (1) Extract HostResolver to an interface. The existing concrete implementation is now named HostResolverImpl. This makes it possible to create mocks with more complex behavior (i.e. choose via rules if response will be sync vs async). (2) Transform HostMapper into HostResolverProc. Conceptually HostResolverProc maps a hostname to a socket address, whereas HostMapper mapped a hostname to another hostname (so you were still at the mercy of the system's host resolver). With HostResolverProc you can specify the exact AddressList, making it possible to run tests requiring IPv6 socketaddrs on systems (like WinXP) that don't actually support it. (3) Add a MockHostResolver implementation of HostResolver. This replaces the [ScopedHostMapper + RuleBasedHostMapper + HostResolver] combo. It is less clunky and a bit more expressive. BUG=http://crbug.com/16452 R=willchan TEST=existing Review URL: http://codereview.chromium.org/149511 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20795 0039d316-1c4b-4281-b951-d872f2087c98
* Make net::HostResolver refcounted.ericroman@google.com2009-06-271-57/+64
| | | | | | | | | | | This way it can be properly shared between the url request contexts, and the dns prefetcher, and dns observer. BUG=http://crbug.com/14664 TEST=existing unit tests. Review URL: http://codereview.chromium.org/149053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19451 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 19425.ericroman@google.com2009-06-261-64/+57
| | | | | | Review URL: http://codereview.chromium.org/147242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19432 0039d316-1c4b-4281-b951-d872f2087c98
* Make net::HostResolver refcounted.ericroman@google.com2009-06-261-57/+64
| | | | | | | | | | | This way it can be properly shared between the url request contexts, and the dns prefetcher, and dns observer. BUG=http://crbug.com/14664 TEST=existing unit tests. Review URL: http://codereview.chromium.org/149053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19425 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land final subset of r18520.ericroman@google.com2009-06-171-9/+1
| | | | | | | | | | | | The original code review that this belongs to is: <http://codereview.chromium.org/125171>. (BUG=14138) The original was backed out because of a valgrind linux error (BUG=14218), so I relanded it in smaller chunks to see at which point problem happens. This differs from the original, in that I have changed the unit-test to no longer use ScopedMapper + WaitingMapper, which I believe was the source of a race. Review URL: http://codereview.chromium.org/125232 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18587 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land second-to-last subset of r18520 (now everything is relanded except ↵ericroman@google.com2009-06-171-3/+4
| | | | | | | | | | | | notification of cancellation during destruction). The original code review that this belongs to is:<http://codereview.chromium.org/125171>. (BUG=14138) The original was backed out because of a valgrind linux error (BUG=14218), so I am now re-landing in smaller chunks to identify where the problem resides Review URL: http://codereview.chromium.org/126254 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18583 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land another subset of r18520.ericroman@google.com2009-06-171-8/+99
| | | | | | | | | | | | This particular subset should be a no-op: It adds an unused interface method (OnResolutionCancelled), and an unused test (CancelObserver), and lastly renames Cancel --> MarkAsCanceled(). The code in "dns_global.cc" is also unused since it is unreachable. The original code review that this belongs to is:<http://codereview.chromium.org/125171>. (BUG=14138) The original was backed out because of a valgrind linux error (BUG=14218), so I am now re-landing in smaller chunks to identify where the problem resides. Review URL: http://codereview.chromium.org/126253 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18581 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land a subset of r18520.ericroman@google.com2009-06-171-13/+29
| | | | | | | | | | | | | | | | The original code review for this change was: <http://codereview.chromium.org/125171> The particular subset is the third bullet point in original description: * Fix a bug where completion notification wasn't being sent when the response was cached. (BUG=14188) Note that the original was rolled-back because something was upsetting valgrind (BUG=14218). Review URL: http://codereview.chromium.org/125227 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18579 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 18520.ericroman@google.com2009-06-171-124/+17
| | | | | | | | | | | | | | The original code review for this change was: <http://codereview.chromium.org/125171> It is being reverted because it seems to have caused a valgrind on linux regression: <http://crbug.com14218> BUG=14218,14138,14188 Review URL: http://codereview.chromium.org/126248 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18574 0039d316-1c4b-4281-b951-d872f2087c98
* * Add an OnCancelResolution() notifier to HostResolver::Observer, so ↵ericroman@google.com2009-06-161-17/+124
| | | | | | | | | | | | | | | observers can tell when a request has been cancelled. * Use OnCancelResolution() in DNS prefetcher observer, to avoid leaking entries in the |resolution| table when requests are cancelled. (BUG=14138) * Fix a bug where completion notification wasn't being sent when the response was cached. (BUG=14188) BUG=14138,14188 TEST=HostResolverTest.CancellationObserver, HostResolverTest.Observer Review URL: http://codereview.chromium.org/125171 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18520 0039d316-1c4b-4281-b951-d872f2087c98
* [Refactor] Rename DnsResolutionObserver --> HostResolver::Observer.ericroman@google.com2009-06-151-2/+1
| | | | | | | | | | TEST=this is striclty a refactoring; just needs to compile and pass existing tests. BUG=14056 Review URL: http://codereview.chromium.org/126110 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18372 0039d316-1c4b-4281-b951-d872f2087c98
* * Move the global "DnsResolutionObserver" code depended on by DNS ↵ericroman@google.com2009-06-151-18/+190
| | | | | | | | | | | | | | prefetcher, into HostResolver. This has the advantage that consumers of DNS no longer have to remember to call "DidFinishDnsResolutionWithStatus()" followed by "DidStartDnsResolution()" in order for the prefetcher to observe the resolution. Instead it just happens automatically, and subscribers register via HostResolver::AddObserver() on a particular resolver instance. * To accomodate the prefetcher's observer, HostResolver::Resolve() needs an additional "referrer" parameter. This is slightly awkward since "referrer" has nothing to do with the actual resolve request. To simplify plumbing through this and other optional parameters, Resolve() was changed to take a "RequestInfo&" parameter in place of say {hostname, port, flags}. * Added an option to HostResolver::Resolve() for disallowing cached responses (RequestInfo::allow_cached_response). This will be used when you refresh a page, to bypass the host cache. The code to do this has been added to HttpNetworkTransaction, but is commented out pending an appropriate unit-test to verify it. BUG=14056 Review URL: http://codereview.chromium.org/125107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18371 0039d316-1c4b-4281-b951-d872f2087c98
* * Avoid doing concurrent DNS resolves of the same hostname in HostResolver.ericroman@google.com2009-06-121-6/+430
| | | | | | | | | | | | | | | | * Add a 1 minute cache for host resolves. * Refactor HostResolver to handle multiple requests. * Make HostResolver a dependency of URLRequestContext. operate the HostResolver in async mode for proxy resolver (bridging to IO thread). TEST=unittests BUG=13163 Review URL: http://codereview.chromium.org/118100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18236 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up some unit tests for HostResolver:wtc@chromium.org2009-05-071-4/+55
| | | | | | | | | | | | | | | | | | | | | | | - When testing IPv4 addresses, use a pass-through HostMapper. The previous version wasn't actually testing anything, because there's a default HostMapper which maps all unknown inputs to 127.0.0.1 - Make sure bare IPv6 literals can be resolved. This was going to handle [brackets], but we've decided these should be stripped at a higher layer. - Add an empty address test. The patch is contributed by Paul Marks of Google. Original review: http://codereview.chromium.org/113026 R=wtc BUG=N/A TEST=N/A Review URL: http://codereview.chromium.org/113066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15483 0039d316-1c4b-4281-b951-d872f2087c98
* Add more unit tests for net/base/host_resolver.phajdan.jr@chromium.org2009-01-291-2/+110
| | | | | | | | BUG=6661 Review URL: http://codereview.chromium.org/18775 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8872 0039d316-1c4b-4281-b951-d872f2087c98
* Allow optimized builds on Linux.evanm@google.com2008-11-131-2/+2
| | | | | | | Review URL: http://codereview.chromium.org/10857 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5406 0039d316-1c4b-4281-b951-d872f2087c98
* Build host_resolver on the Macmmentovai@google.com2008-09-091-8/+5
| | | | | | Review URL: http://codereview.chromium.org/1839 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1896 0039d316-1c4b-4281-b951-d872f2087c98
* This fixes the "passing NULL to non-pointer argument" warning when compiling ↵mmoss@google.com2008-09-051-1/+1
| | | | | | | | with gcc 4.1, and is consistent with the way EXPECT_EQ uses NULL elsewhere in Chrome. Review URL: http://codereview.chromium.org/267 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1813 0039d316-1c4b-4281-b951-d872f2087c98
* Modify HostResolver slightly to build on posix as well as windows.dkegel@google.com2008-09-051-0/+41
Review URL: http://codereview.chromium.org/403 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1799 0039d316-1c4b-4281-b951-d872f2087c98