Chromium Code Reviews| Index: chrome/browser/data_use_measurement/chrome_data_use_ascriber.h |
| diff --git a/chrome/browser/data_use_measurement/chrome_data_use_ascriber.h b/chrome/browser/data_use_measurement/chrome_data_use_ascriber.h |
| index e926ebf3cc9494cb8aaac758b7ac0dcae08559eb..08003b6a9cff5f8f4e8a1b4771b7c1513df89e78 100644 |
| --- a/chrome/browser/data_use_measurement/chrome_data_use_ascriber.h |
| +++ b/chrome/browser/data_use_measurement/chrome_data_use_ascriber.h |
| @@ -7,6 +7,8 @@ |
| #include <list> |
| #include <memory> |
| +#include <string> |
| +#include <tuple> |
| #include <unordered_map> |
| #include <utility> |
| @@ -14,6 +16,7 @@ |
| #include "base/hash.h" |
| #include "base/macros.h" |
| #include "base/supports_user_data.h" |
| +#include "chrome/browser/data_use_measurement/chrome_data_use_recorder.h" |
| #include "components/data_use_measurement/core/data_use_ascriber.h" |
| #include "content/public/browser/global_request_id.h" |
| #include "url/gurl.h" |
| @@ -52,12 +55,11 @@ class ChromeDataUseAscriber : public DataUseAscriber { |
| ~ChromeDataUseAscriber() override; |
| // DataUseAscriber implementation: |
| - DataUseRecorder* GetDataUseRecorder(net::URLRequest* request) override; |
| + ChromeDataUseRecorder* GetDataUseRecorder(net::URLRequest* request, |
| + bool can_create_new) override; |
| - // Called before a request is sent. |
| void OnBeforeUrlRequest(net::URLRequest* request) override; |
|
RyanSturm
2016/11/29 20:32:59
Remove vertical whitespace between DataUseAscriber
Not at Google. Contact bengr
2016/11/30 00:21:15
Done.
|
| - // Called when a URLRequest is being destroyed. |
| void OnUrlRequestDestroyed(net::URLRequest* request) override; |
| std::unique_ptr<URLRequestClassifier> CreateURLRequestClassifier() |
| @@ -91,21 +93,15 @@ class ChromeDataUseAscriber : public DataUseAscriber { |
| bool is_same_page_navigation, |
| void* navigation_handle); |
| - // Called when a main frame navigation is redirected. |
| - void DidRedirectMainFrameNavigation(GURL gurl, |
| - int render_process_id, |
| - int render_frame_id, |
| - void* navigation_handle); |
| private: |
| - // Use as a key in the render frame map. Corresponds to a unique |
| - // RenderFrameHost. |
| - typedef std::pair<int, int> RenderFrameHostID; |
| + friend class ChromeDataUseAscriberTest; |
| // Entry in the |data_use_recorders_| list which owns all instances of |
| // DataUseRecorder. |
| - typedef std::list<std::unique_ptr<data_use_measurement::DataUseRecorder>>:: |
| - iterator DataUseRecorderEntry; |
| + typedef std::list< |
| + std::unique_ptr<data_use_measurement::ChromeDataUseRecorder>>::iterator |
| + DataUseRecorderEntry; |
|
RyanSturm
2016/11/29 20:32:59
nit: IMO, this would be easier to read if you adde
Not at Google. Contact bengr
2016/11/30 00:21:15
Done.
|
| struct GlobalRequestIDHash { |
| public: |
| @@ -128,13 +124,22 @@ class ChromeDataUseAscriber : public DataUseAscriber { |
| DataUseRecorderEntry entry_; |
| }; |
| - void DeletePendingNavigationEntry(content::GlobalRequestID global_request_id); |
| + DataUseRecorderEntry GetDataUseRecorderEntry(net::URLRequest* request, |
| + bool can_create_new); |
| + |
| + void OnDataUseCompleted(DataUseRecorderEntry entry); |
| + |
| + DataUseRecorderEntry CreateNewDataUseRecorder(net::URLRequest* request); |
| + |
| + bool IsRecorderInPendingNavigationMap(net::URLRequest* request); |
| + |
| + bool IsRecorderInRenderFrameMap(net::URLRequest* request); |
| // Owner for all instances of DataUseRecorder. An instance is kept in this |
| // list if any entity (render frame hosts, URLRequests, pending navigations) |
| // that ascribe data use to the instance exists, and deleted when all |
| // ascribing entities go away. |
| - std::list<std::unique_ptr<DataUseRecorder>> data_use_recorders_; |
| + std::list<std::unique_ptr<ChromeDataUseRecorder>> data_use_recorders_; |
|
RyanSturm
2016/11/29 20:32:59
Is there a reason why this is std::list<std::uniqu
Not at Google. Contact bengr
2016/11/30 00:21:15
Switched to std::list<ChromeDataUseRecorder>.
Usi
RyanSturm
2016/12/01 00:40:46
I think it improves syntax, and if you use emplace
Not at Google. Contact bengr
2016/12/01 01:23:39
Yes, don't see a reason to std::move the unique pt
|
| // Map from RenderFrameHost to the DataUseRecorderEntry in |
| // |data_use_recorders_| that the frame ascribe data use to. |