Chromium Code Reviews| Index: content/browser/loader/resource_dispatcher_host_impl.h |
| diff --git a/content/browser/loader/resource_dispatcher_host_impl.h b/content/browser/loader/resource_dispatcher_host_impl.h |
| index 3f5aa959c691d7b6d091ec99a4a24a06c1ffc08a..a02a757c071ddfe263ad6c8fe92a31da500e4aca 100644 |
| --- a/content/browser/loader/resource_dispatcher_host_impl.h |
| +++ b/content/browser/loader/resource_dispatcher_host_impl.h |
| @@ -457,6 +457,13 @@ class CONTENT_EXPORT ResourceDispatcherHostImpl |
| int count, |
| ResourceRequestInfoImpl* info); |
| + // Called from IncrementOutstandingRequestsCount to update the per-tab |
| + // request stats in |outstanding_requests_per_tab_map_|. |
| + // TODO(ksakamoto): This is just for temporary metrics collection for the |
| + // Loading Dispatcher v0 (crbug.com/723233), and will be removed soon. |
| + void IncrementOutstandingRequestsPerTab(int count, |
| + const ResourceRequestInfoImpl& info); |
| + |
| // Estimate how much heap space |request| will consume to run. |
| static int CalculateApproximateMemoryCost(net::URLRequest* request); |
| @@ -513,6 +520,10 @@ class CONTENT_EXPORT ResourceDispatcherHostImpl |
| // Checks all pending requests and updates the load info if necessary. |
| void UpdateLoadInfo(); |
| + // Records statistics about outstanding requests since the last call, and |
| + // reset the stats. |
| + void RecordOutstandingRequestsStats(); |
| + |
| // Resumes or cancels (if |cancel_requests| is true) any blocked requests. |
| void ProcessBlockedRequestsForRoute( |
| const GlobalFrameRoutingId& global_routing_id, |
| @@ -695,6 +706,10 @@ class CONTENT_EXPORT ResourceDispatcherHostImpl |
| bool must_download, |
| bool is_new_request); |
| + // Returns true if there are two or more tabs that are not network 2-quiet |
| + // (i.e. have at least three outstanding requests). |
| + bool HasRequestsFromMultipleActiveTabs(); |
| + |
| LoaderMap pending_loaders_; |
| // Collection of temp files downloaded for child processes via |
| @@ -710,6 +725,10 @@ class CONTENT_EXPORT ResourceDispatcherHostImpl |
| // not empty and at least one RenderViewHost is loading. |
| std::unique_ptr<base::RepeatingTimer> update_load_states_timer_; |
| + // A timer that periodically calls RecordOutstandingRequestsStats. |
| + std::unique_ptr<base::RepeatingTimer> |
| + record_outstanding_requests_stats_timer_; |
| + |
| // Request ID for browser initiated requests. request_ids generated by |
| // child processes are counted up from 0, while browser created requests |
| // start at -2 and go down from there. (We need to start at -2 because -1 is |
| @@ -732,6 +751,14 @@ class CONTENT_EXPORT ResourceDispatcherHostImpl |
| typedef std::map<int, OustandingRequestsStats> OutstandingRequestsStatsMap; |
| OutstandingRequestsStatsMap outstanding_requests_stats_map_; |
| + // Maps (child_id, route_id) to the number of outstanding requests. |
| + // Used only when OOPIF is not enabled, since in OOPIF modes routing_id |
| + // doesn't represent tabs. |
| + // TODO(ksakamoto): This is just for temporary metrics collection for the |
| + // Loading Dispatcher v0 (crbug.com/723233), and will be removed soon. |
| + typedef std::map<std::pair<int, int>, int> OutstandingRequestsPerTabMap; |
| + OutstandingRequestsPerTabMap outstanding_requests_per_tab_map_; |
| + |
| // |num_in_flight_requests_| is the total number of requests currently issued |
| // summed across all renderers. |
| int num_in_flight_requests_; |
| @@ -763,6 +790,15 @@ class CONTENT_EXPORT ResourceDispatcherHostImpl |
| // Largest number of outstanding requests seen so far in any single process. |
| int largest_outstanding_request_per_process_count_seen_; |
| + // Largest number of outstanding requests seen since the last call to |
| + // RecordOutstandingRequestsStats. |
| + int peak_outstanding_request_count_; |
|
Charlie Harrison
2017/06/22 12:33:46
= 0
Kunihiko Sakamoto
2017/06/23 04:22:06
Done.
|
| + |
| + // Largest number of outstanding requests seen while there are outstanding |
| + // requests from two or more tabs, since the last call to |
| + // RecordOutstandingRequestsStats. |
| + int peak_outstanding_request_count_multitab_ = 0; |
| + |
| // Time of the last user gesture. Stored so that we can add a load |
| // flag to requests occurring soon after a gesture to indicate they |
| // may be because of explicit user action. |