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

Side by Side Diff: components/data_use_measurement/core/data_use_ascriber.h

Issue 2462983003: Move data use measurement to DataUseNetworkDelegate (Closed)
Patch Set: Move DataUseMeasurement to core Created 4 years, 1 month 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_ASCRIBER_H_ 5 #ifndef COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_ASCRIBER_H_
6 #define COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_ASCRIBER_H_ 6 #define COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_ASCRIBER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
11 11
12 #include "components/data_use_measurement/core/data_use_measurement.h"
13 #include "components/metrics/data_use_tracker.h"
12 #include "url/gurl.h" 14 #include "url/gurl.h"
13 15
14 namespace net { 16 namespace net {
15 class NetworkDelegate; 17 class NetworkDelegate;
16 class URLRequest; 18 class URLRequest;
17 } 19 }
18 20
19 namespace data_use_measurement { 21 namespace data_use_measurement {
20 22
21 class DataUseRecorder; 23 class DataUseRecorder;
22 24
23 // Abstract class that manages instances of DataUseRecorder and maps 25 // Abstract class that manages instances of DataUseRecorder and maps
24 // a URLRequest instance to its appropriate DataUseRecorder. An embedder 26 // a URLRequest instance to its appropriate DataUseRecorder. An embedder
25 // should provide an override if it is interested in tracking data usage. Data 27 // should provide an override if it is interested in tracking data usage. Data
26 // use from all URLRequests mapped to the same DataUseRecorder will be grouped 28 // use from all URLRequests mapped to the same DataUseRecorder will be grouped
27 // together and reported as a single use. 29 // together and reported as a single use.
28 class DataUseAscriber { 30 class DataUseAscriber {
29 public: 31 public:
30 virtual ~DataUseAscriber() {} 32 virtual ~DataUseAscriber() {}
31 33
32 // Creates a network delegate that will be used to track data use. 34 // Creates a network delegate that will be used to track data use.
33 std::unique_ptr<net::NetworkDelegate> CreateNetworkDelegate( 35 std::unique_ptr<net::NetworkDelegate> CreateNetworkDelegate(
34 std::unique_ptr<net::NetworkDelegate> wrapped_network_delegate); 36 std::unique_ptr<net::NetworkDelegate> wrapped_network_delegate,
37 const DataUseMeasurement::IsUserInitiatedRequestCallbackType&
38 is_user_initiated_request_callback,
39 const metrics::UpdateUsagePrefCallbackType& metrics_data_use_forwarder);
35 40
36 // Returns the DataUseRecorder to which data usage for the given URL should 41 // Returns the DataUseRecorder to which data usage for the given URL should
37 // be ascribed. If no existing DataUseRecorder exists, a new one will be 42 // be ascribed. If no existing DataUseRecorder exists, a new one will be
38 // created. 43 // created.
39 virtual DataUseRecorder* GetDataUseRecorder(net::URLRequest* request) = 0; 44 virtual DataUseRecorder* GetDataUseRecorder(net::URLRequest* request) = 0;
40 45
41 // Methods called by DataUseNetworkDelegate to propagate data use information: 46 // Methods called by DataUseNetworkDelegate to propagate data use information:
42 virtual void OnBeforeUrlRequest(net::URLRequest* request); 47 virtual void OnBeforeUrlRequest(net::URLRequest* request);
43 48
44 virtual void OnBeforeRedirect(net::URLRequest* request, 49 virtual void OnBeforeRedirect(net::URLRequest* request,
45 const GURL& new_location); 50 const GURL& new_location);
46 51
47 virtual void OnNetworkBytesSent(net::URLRequest* request, int64_t bytes_sent); 52 virtual void OnNetworkBytesSent(net::URLRequest* request, int64_t bytes_sent);
48 53
49 virtual void OnNetworkBytesReceived(net::URLRequest* request, 54 virtual void OnNetworkBytesReceived(net::URLRequest* request,
50 int64_t bytes_received); 55 int64_t bytes_received);
51 56
52 virtual void OnUrlRequestCompleted(net::URLRequest* request, bool started); 57 virtual void OnUrlRequestCompleted(net::URLRequest* request, bool started);
53 }; 58 };
54 59
55 } // namespace data_use_measurement 60 } // namespace data_use_measurement
56 61
57 #endif // COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_ASCRIBER_H_ 62 #endif // COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_ASCRIBER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698