| Index: chrome/browser/net/dns_master.h
|
| diff --git a/chrome/browser/net/dns_master.h b/chrome/browser/net/dns_master.h
|
| index a78e0616e844207d3ae520b573f267aa996acebb..5dfb96842d9b18bf167f36992325680f6f3fd3ad 100644
|
| --- a/chrome/browser/net/dns_master.h
|
| +++ b/chrome/browser/net/dns_master.h
|
| @@ -33,7 +33,7 @@ typedef std::map<std::string, DnsHostInfo> Results;
|
| class DnsMaster {
|
| public:
|
| // Specify how many concurrent (paralell) prefetches will be performed.
|
| - explicit DnsMaster(size_t max_concurrent);
|
| + DnsMaster(size_t max_concurrent);
|
| ~DnsMaster();
|
|
|
| // Cancel pending requests and prevent new ones from being made.
|
| @@ -93,39 +93,10 @@ class DnsMaster {
|
| FRIEND_TEST(DnsMasterTest, SingleLookupTest);
|
| FRIEND_TEST(DnsMasterTest, ConcurrentLookupTest);
|
| FRIEND_TEST(DnsMasterTest, MassiveConcurrentLookupTest);
|
| - FRIEND_TEST(DnsMasterTest, PriorityQueuePushPopTest);
|
| - FRIEND_TEST(DnsMasterTest, PriorityQueueReorderTest);
|
| friend class WaitForResolutionHelper; // For testing.
|
|
|
| class LookupRequest;
|
|
|
| - // A simple priority queue for handling host names.
|
| - // Some names that are queued up have |motivation| that requires very rapid
|
| - // handling. For example, a sub-resource name lookup MUST be done before the
|
| - // actual sub-resource is fetched. In contrast, a name that was speculatively
|
| - // noted in a page has to be resolved before the user "gets around to"
|
| - // clicking on a link. By tagging (with a motivation) each push we make into
|
| - // this FIFO queue, the queue can re-order the more important names to service
|
| - // them sooner (relative to some low priority background resolutions).
|
| - class HostNameQueue {
|
| - public:
|
| - HostNameQueue();
|
| - ~HostNameQueue();
|
| - void Push(const std::string& hostname,
|
| - DnsHostInfo::ResolutionMotivation motivation);
|
| - bool IsEmpty() const;
|
| - std::string Pop();
|
| -
|
| - private:
|
| - // The names in the queue that should be serviced (popped) ASAP.
|
| - std::queue<std::string> rush_queue_;
|
| - // The names in the queue that should only be serviced when rush_queue is
|
| - // empty.
|
| - std::queue<std::string> background_queue_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(HostNameQueue);
|
| - };
|
| -
|
| // A map that is keyed with the hostnames that we've learned were the cause
|
| // of loading additional hostnames. The list of additional hostnames in held
|
| // in a Referrer instance, which is found in this type.
|
| @@ -162,29 +133,16 @@ class DnsMaster {
|
| DnsHostInfo* PreLockedResolve(const std::string& hostname,
|
| DnsHostInfo::ResolutionMotivation motivation);
|
|
|
| - // Check to see if too much queuing delay has been noted for the given info,
|
| - // which indicates that there is "congestion" or growing delay in handling the
|
| - // resolution of names. Rather than letting this congestion potentially grow
|
| - // without bounds, we abandon our queued efforts at pre-resolutions in such a
|
| - // case.
|
| - // To do this, we will recycle |info|, as well as all queued items, back to
|
| - // the state they had before they were queued up. We can't do anything about
|
| - // the resolutions we've already sent off for processing on another thread, so
|
| - // we just let them complete. On a slow system, subject to congestion, this
|
| - // will greatly reduce the number of resolutions done, but it will assure that
|
| - // any resolutions that are done, are in a timely and hence potentially
|
| - // helpful manner.
|
| - bool PreLockedCongestionControlPerformed(DnsHostInfo* info);
|
| -
|
| - // Take lookup requests from work_queue_ and tell HostResolver to look them up
|
| - // asynchronously, provided we don't exceed concurrent resolution limit.
|
| + // Take lookup requests from name_buffer_ and tell HostResolver
|
| + // to look them up asynchronously, provided we don't exceed
|
| + // concurrent resolution limit.
|
| void PreLockedScheduleLookups();
|
|
|
| // Synchronize access to variables listed below.
|
| Lock lock_;
|
|
|
| - // work_queue_ holds a list of names we need to look up.
|
| - HostNameQueue work_queue_;
|
| + // name_buffer_ holds a list of names we need to look up.
|
| + std::queue<std::string> name_buffer_;
|
|
|
| // results_ contains information for existing/prior prefetches.
|
| Results results_;
|
|
|