Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer.h

Issue 2857063002: Add a way to send the resource percentage signal to the RC. (Closed)
Patch Set: CR Feedback per Dimich, BMcQuade, and CSHarrison Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_RESOURCE_TRACKING_PAGE_LOAD_M ETRICS_OBSERVER_H_ 5 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_RESOURCE_TRACKING_PAGE_LOAD_M ETRICS_OBSERVER_H_
6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_RESOURCE_TRACKING_PAGE_LOAD_M ETRICS_OBSERVER_H_ 6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_RESOURCE_TRACKING_PAGE_LOAD_M ETRICS_OBSERVER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" 10 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
11 #include "components/offline_pages/core/background/offliner.h"
12 #include "content/public/common/resource_type.h"
13
14 namespace offline_pages {
15 class ResourceTrackerObserver;
16 }
11 17
12 namespace page_load_metrics { 18 namespace page_load_metrics {
13 19
14 class ResourceTrackingPageLoadMetricsObserver 20 class ResourceTrackingPageLoadMetricsObserver
15 : public page_load_metrics::PageLoadMetricsObserver { 21 : public page_load_metrics::PageLoadMetricsObserver {
16 public: 22 public:
17 ResourceTrackingPageLoadMetricsObserver(); 23 ResourceTrackingPageLoadMetricsObserver();
18 ~ResourceTrackingPageLoadMetricsObserver() override; 24 ~ResourceTrackingPageLoadMetricsObserver() override;
19 25
20 // Called by the PageLoadMetrics framework when we start a new request, so we 26 // Called by the PageLoadMetrics framework when we start a new request, so we
21 // can update our data structures to be able to calculate a resource done 27 // can update our data structures to be able to calculate a resource done
22 // percentage. 28 // percentage.
23 void OnStartedResource( 29 void OnStartedResource(
24 const ExtraRequestStartInfo& extra_request_start_info) override; 30 const ExtraRequestStartInfo& extra_request_start_info) override;
25 31
26 // Called by the PageLoadMetrics framework when we start a new request, so we 32 // Called by the PageLoadMetrics framework when we start a new request, so we
27 // can update our data structures to be able to calculate a resource done 33 // can update our data structures to be able to calculate a resource done
28 // percentage. 34 // percentage.
29 void OnLoadedResource( 35 void OnLoadedResource(
30 const ExtraRequestCompleteInfo& extra_request_complete_info) override; 36 const ExtraRequestCompleteInfo& extra_request_complete_info) override;
31 37
32 // For the specified type, get the count of requests started and completed. 38 // Called when the page load commits, we return STOP_OBSERVING if the page is
33 // TODO(petewil) Note that type is not used yet, code to use it is coming 39 // not part of an offlining attempt.
34 // soon. 40 ObservePolicy OnCommit(content::NavigationHandle* navigation_handle) override;
35 void GetCountsForTypeForTesting(const content::ResourceType type,
36 int64_t* started_count,
37 int64_t* completed_count);
38 41
39 private: 42 private:
43 void InformClient(const content::ResourceType type);
44
40 // TODO(petewil): Some way to keep track of what we've seen 45 // TODO(petewil): Some way to keep track of what we've seen
41 // TODO(petewil): Some way to inform our keeper of aggregate results when they 46 // TODO(petewil): Some way to inform our keeper of aggregate results when they
42 // change. 47 // change.
43 int64_t started_count_; 48 int64_t started_count_;
44 int64_t completed_count_; 49 int64_t completed_count_;
50 // Unowned pointer to the ResourceTrackerObserver for this profile, it must be
51 // kept valid by the caller for the lifetime of the PageLoadMetricsObserver.
Dmitry Titov 2017/05/24 23:09:35 It is hard to say if "must be kept valid" requirem
52 offline_pages::Offliner* offliner_;
45 }; 53 };
46 54
47 } // namespace page_load_metrics 55 } // namespace page_load_metrics
48 56
49 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_RESOURCE_TRACKING_PAGE_LOA D_METRICS_OBSERVER_H_ 57 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_RESOURCE_TRACKING_PAGE_LOA D_METRICS_OBSERVER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698