Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client.h |
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client.h |
index a91a44cf0d9dac350922339e08c146670b768e6b..2d296ed36b7d8ca4116b720855c99a4399f0f870 100644 |
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client.h |
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client.h |
@@ -5,6 +5,8 @@ |
#ifndef COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_PINGBACK_CLIENT_H_ |
#define COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_DATA_REDUCTION_PROXY_PINGBACK_CLIENT_H_ |
+#include <stdint.h> |
+ |
#include <memory> |
#include <string> |
@@ -40,12 +42,23 @@ class DataReductionProxyPingbackClient : public net::URLFetcherDelegate { |
// Sends a pingback to the data saver proxy server about various timing |
// information. |
virtual void SendPingback(const DataReductionProxyData& data, |
- const DataReductionProxyPageLoadTiming& timing); |
+ const DataReductionProxyPageLoadTiming& timing, |
+ const void* tab_identifier_key); |
// Sets the probability of actually sending a pingback to the server for any |
// call to SendPingback. |
void SetPingbackReportingFraction(float pingback_reporting_fraction); |
+ // Adds an opt out for |tab_identifier_key| for a data saver |page_id|. |
bengr
2017/04/20 17:36:19
What's an opt out? Define somewhere.
RyanSturm
2017/04/20 20:25:45
Done.
|
+ void AddOptOut(const void* tab_identifier_key, uint64_t page_id); |
+ |
+ // Removes any stored data associated with |tab_identifier_key| in a task that |
+ // runs later. |
+ void ClearTabKeyAsync(const void* tab_identifier_key); |
+ |
+ // The total number of pending loads being tracked due to opt outs. |
+ size_t PendingTabLoadsForTesting() const; |
+ |
protected: |
// Generates a float in the range [0, 1). Virtualized in testing. |
virtual float GenerateRandomFloat() const; |
@@ -66,6 +79,9 @@ class DataReductionProxyPingbackClient : public net::URLFetcherDelegate { |
// reset to an empty RecordPageloadMetricsRequest. |
void CreateFetcherForDataAndStart(); |
+ // Removes any stored data associated with |tab_identifier_key|. |
+ void ClearTabKeySync(const void* tab_identifier_key); |
+ |
net::URLRequestContextGetter* url_request_context_; |
// The URL for the data saver proxy's ping back service. |
@@ -80,6 +96,9 @@ class DataReductionProxyPingbackClient : public net::URLFetcherDelegate { |
// The probability of sending a pingback to the server. |
float pingback_reporting_fraction_; |
+ // The map of tab identifier keys to page IDs. |
+ std::map<const void*, uint64_t> tab_page_id_map_; |
+ |
base::ThreadChecker thread_checker_; |
DISALLOW_COPY_AND_ASSIGN(DataReductionProxyPingbackClient); |