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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client_unittest.cc

Issue 2833523002: Adding opt out and previews type information to DRP pingback (Closed)
Patch Set: bengr comments Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client_unittest.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client_unittest.cc
index de728bf6852dc2e96e089cb795a6078e726793f9..65c03f3309aa720eb66ee0d4cbb5941c9fb960d5 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_pingback_client_unittest.cc
@@ -6,6 +6,7 @@
#include <stdint.h>
+#include <list>
#include <memory>
#include <string>
@@ -13,6 +14,7 @@
#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
#include "base/optional.h"
+#include "base/run_loop.h"
#include "base/test/histogram_tester.h"
#include "base/time/time.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_data.h"
@@ -41,7 +43,6 @@ static const char kSessionKey[] = "fake-session";
static const char kFakeURL[] = "http://www.google.com/";
static const int64_t kBytes = 10000;
static const int64_t kBytesOriginal = 1000000;
-static const uint64_t kPageId = 1;
} // namespace
@@ -87,25 +88,7 @@ class TestDataReductionProxyPingbackClient
class DataReductionProxyPingbackClientTest : public testing::Test {
public:
- DataReductionProxyPingbackClientTest()
- : timing_(
- base::Time::FromJsTime(1500) /* navigation_start */,
- base::Optional<base::TimeDelta>(
- base::TimeDelta::FromMilliseconds(1600)) /* response_start */,
- base::Optional<base::TimeDelta>(
- base::TimeDelta::FromMilliseconds(1700)) /* load_event_start */,
- base::Optional<base::TimeDelta>(base::TimeDelta::FromMilliseconds(
- 1800)) /* first_image_paint */,
- base::Optional<base::TimeDelta>(base::TimeDelta::FromMilliseconds(
- 1900)) /* first_contentful_paint */,
- base::Optional<base::TimeDelta>(base::TimeDelta::FromMilliseconds(
- 2000)) /* experimental_first_meaningful_paint */,
- base::Optional<base::TimeDelta>(base::TimeDelta::FromMilliseconds(
- 100)) /* parse_blocked_on_script_load_duration */,
- base::Optional<base::TimeDelta>(
- base::TimeDelta::FromMilliseconds(2000)) /* parse_stop */,
- kBytes /* network_bytes */,
- kBytesOriginal /* original_network_bytes */) {}
+ DataReductionProxyPingbackClientTest() {}
TestDataReductionProxyPingbackClient* pingback_client() const {
return pingback_client_.get();
@@ -117,32 +100,60 @@ class DataReductionProxyPingbackClientTest : public testing::Test {
pingback_client_ = base::WrapUnique<TestDataReductionProxyPingbackClient>(
new TestDataReductionProxyPingbackClient(
request_context_getter_.get()));
+ page_id_ = 0u;
}
- void CreateAndSendPingback() {
+ void CreateAndSendPingback(bool lofi_received,
+ bool lite_page_received,
+ bool app_background_occurred) {
+ timing_ = base::MakeUnique<DataReductionProxyPageLoadTiming>(
+ base::Time::FromJsTime(1500) /* navigation_start */,
+ base::Optional<base::TimeDelta>(
+ base::TimeDelta::FromMilliseconds(1600)) /* response_start */,
+ base::Optional<base::TimeDelta>(
+ base::TimeDelta::FromMilliseconds(1700)) /* load_event_start */,
+ base::Optional<base::TimeDelta>(
+ base::TimeDelta::FromMilliseconds(1800)) /* first_image_paint */,
+ base::Optional<base::TimeDelta>(base::TimeDelta::FromMilliseconds(
+ 1900)) /* first_contentful_paint */,
+ base::Optional<base::TimeDelta>(base::TimeDelta::FromMilliseconds(
+ 2000)) /* experimental_first_meaningful_paint */,
+ base::Optional<base::TimeDelta>(base::TimeDelta::FromMilliseconds(
+ 100)) /* parse_blocked_on_script_load_duration */,
+ base::Optional<base::TimeDelta>(
+ base::TimeDelta::FromMilliseconds(2000)) /* parse_stop */,
+ kBytes /* network_bytes */, kBytesOriginal /* original_network_bytes */,
+ app_background_occurred /* app_background_occurred */);
+
DataReductionProxyData request_data;
request_data.set_session_key(kSessionKey);
request_data.set_request_url(GURL(kFakeURL));
request_data.set_effective_connection_type(
net::EFFECTIVE_CONNECTION_TYPE_OFFLINE);
- request_data.set_page_id(kPageId);
+ request_data.set_lofi_received(lofi_received);
+ request_data.set_lite_page_received(lite_page_received);
+ request_data.set_page_id(page_id_);
factory()->set_remove_fetcher_on_delete(true);
- pingback_client()->SendPingback(request_data, timing_);
+ pingback_client()->SendPingback(request_data, *timing_);
+ page_id_++;
}
net::TestURLFetcherFactory* factory() { return &factory_; }
- const DataReductionProxyPageLoadTiming& timing() { return timing_; }
+ const DataReductionProxyPageLoadTiming& timing() { return *timing_; }
const base::HistogramTester& histogram_tester() { return histogram_tester_; }
+ uint64_t page_id() const { return page_id_; }
+
private:
base::MessageLoopForIO message_loop_;
scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
std::unique_ptr<TestDataReductionProxyPingbackClient> pingback_client_;
net::TestURLFetcherFactory factory_;
- DataReductionProxyPageLoadTiming timing_;
+ std::unique_ptr<DataReductionProxyPageLoadTiming> timing_;
base::HistogramTester histogram_tester_;
+ uint64_t page_id_;
};
TEST_F(DataReductionProxyPingbackClientTest, VerifyPingbackContent) {
@@ -152,7 +163,10 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyPingbackContent) {
pingback_client()->SetPingbackReportingFraction(1.0f);
base::Time current_time = base::Time::UnixEpoch();
pingback_client()->set_current_time(current_time);
- CreateAndSendPingback();
+ uint64_t data_page_id = page_id();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
EXPECT_EQ(test_fetcher->upload_content_type(), "application/x-protobuf");
@@ -191,7 +205,12 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyPingbackContent) {
EXPECT_EQ(kFakeURL, pageload_metrics.first_request_url());
EXPECT_EQ(kBytes, pageload_metrics.compressed_page_size_bytes());
EXPECT_EQ(kBytesOriginal, pageload_metrics.original_page_size_bytes());
- EXPECT_EQ(kPageId, pageload_metrics.page_id());
+ EXPECT_EQ(data_page_id, pageload_metrics.page_id());
+
+ EXPECT_EQ(PageloadMetrics_PreviewsType_NONE,
+ pageload_metrics.previews_type());
+ EXPECT_EQ(PageloadMetrics_PreviewsOptOut_UNKNOWN,
+ pageload_metrics.previews_opt_out());
EXPECT_EQ(
PageloadMetrics_EffectiveConnectionType_EFFECTIVE_CONNECTION_TYPE_OFFLINE,
@@ -209,13 +228,22 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyTwoPingbacksBatchedContent) {
base::Time current_time = base::Time::UnixEpoch();
pingback_client()->set_current_time(current_time);
// First pingback
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
// Two more pingbacks batched together.
- CreateAndSendPingback();
+ std::list<uint64_t> page_ids;
+ page_ids.push_back(page_id());
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 2);
- CreateAndSendPingback();
+ page_ids.push_back(page_id());
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 3);
// Ignore the first pingback.
@@ -264,7 +292,8 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyTwoPingbacksBatchedContent) {
EXPECT_EQ(kFakeURL, pageload_metrics.first_request_url());
EXPECT_EQ(kBytes, pageload_metrics.compressed_page_size_bytes());
EXPECT_EQ(kBytesOriginal, pageload_metrics.original_page_size_bytes());
- EXPECT_EQ(kPageId, pageload_metrics.page_id());
+ EXPECT_EQ(page_ids.front(), pageload_metrics.page_id());
+ page_ids.pop_front();
EXPECT_EQ(
PageloadMetrics_EffectiveConnectionType_EFFECTIVE_CONNECTION_TYPE_OFFLINE,
pageload_metrics.effective_connection_type());
@@ -280,9 +309,13 @@ TEST_F(DataReductionProxyPingbackClientTest, SendTwoPingbacks) {
EXPECT_FALSE(factory()->GetFetcherByID(0));
pingback_client()->OverrideRandom(true, 0.5f);
pingback_client()->SetPingbackReportingFraction(1.0f);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 2);
net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
@@ -301,7 +334,9 @@ TEST_F(DataReductionProxyPingbackClientTest, NoPingbackSent) {
EXPECT_FALSE(factory()->GetFetcherByID(0));
pingback_client()->OverrideRandom(true, 0.5f);
pingback_client()->SetPingbackReportingFraction(0.0f);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, false, 1);
histogram_tester().ExpectTotalCount(kHistogramSucceeded, 0);
EXPECT_FALSE(factory()->GetFetcherByID(0));
@@ -315,7 +350,9 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyReportingBehvaior) {
// pingback is created.
pingback_client()->SetPingbackReportingFraction(0.5f);
pingback_client()->OverrideRandom(true, 0.4f);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
EXPECT_TRUE(test_fetcher);
@@ -325,7 +362,9 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyReportingBehvaior) {
// Verify that if the random number is greater than the reporting fraction,
// the pingback is not created.
pingback_client()->OverrideRandom(true, 0.6f);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectBucketCount(kHistogramAttempted, false, 1);
test_fetcher = factory()->GetFetcherByID(0);
EXPECT_FALSE(test_fetcher);
@@ -335,7 +374,9 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyReportingBehvaior) {
// and the random number is zero, no pingback is sent.
pingback_client()->SetPingbackReportingFraction(0.0f);
pingback_client()->OverrideRandom(true, 0.0f);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectBucketCount(kHistogramAttempted, false, 2);
test_fetcher = factory()->GetFetcherByID(0);
EXPECT_FALSE(test_fetcher);
@@ -345,7 +386,9 @@ TEST_F(DataReductionProxyPingbackClientTest, VerifyReportingBehvaior) {
data_reduction_proxy::switches::kEnableDataReductionProxyForcePingback);
pingback_client()->SetPingbackReportingFraction(0.0f);
pingback_client()->OverrideRandom(true, 1.0f);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectBucketCount(kHistogramAttempted, true, 2);
test_fetcher = factory()->GetFetcherByID(0);
EXPECT_TRUE(test_fetcher);
@@ -358,7 +401,9 @@ TEST_F(DataReductionProxyPingbackClientTest, FailedPingback) {
EXPECT_FALSE(factory()->GetFetcherByID(0));
pingback_client()->OverrideRandom(true, 0.5f);
pingback_client()->SetPingbackReportingFraction(1.0f);
- CreateAndSendPingback();
+ CreateAndSendPingback(false /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
EXPECT_TRUE(test_fetcher);
@@ -369,4 +414,166 @@ TEST_F(DataReductionProxyPingbackClientTest, FailedPingback) {
histogram_tester().ExpectUniqueSample(kHistogramSucceeded, false, 1);
}
+TEST_F(DataReductionProxyPingbackClientTest, VerifyLoFiContentNoOptOut) {
+ Init();
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+ pingback_client()->OverrideRandom(true, 0.5f);
+ pingback_client()->SetPingbackReportingFraction(1.0f);
+ base::Time current_time = base::Time::UnixEpoch();
+ pingback_client()->set_current_time(current_time);
+ CreateAndSendPingback(true /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
+ histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
+ net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
+ EXPECT_EQ(test_fetcher->upload_content_type(), "application/x-protobuf");
+ RecordPageloadMetricsRequest batched_request;
+ batched_request.ParseFromString(test_fetcher->upload_data());
+ EXPECT_EQ(batched_request.pageloads_size(), 1);
+ PageloadMetrics pageload_metrics = batched_request.pageloads(0);
+ EXPECT_EQ(PageloadMetrics_PreviewsType_LOFI,
+ pageload_metrics.previews_type());
+ EXPECT_EQ(PageloadMetrics_PreviewsOptOut_NON_OPT_OUT,
+ pageload_metrics.previews_opt_out());
+
+ test_fetcher->delegate()->OnURLFetchComplete(test_fetcher);
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+}
+
+TEST_F(DataReductionProxyPingbackClientTest, VerifyLoFiContentOptOut) {
+ Init();
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+ pingback_client()->OverrideRandom(true, 0.5f);
+ pingback_client()->SetPingbackReportingFraction(1.0f);
+ base::Time current_time = base::Time::UnixEpoch();
+ pingback_client()->set_current_time(current_time);
+ pingback_client()->AddOptOut(NavigationID(page_id(), kSessionKey));
+ CreateAndSendPingback(true /* lofi_received */,
+ false /* lite_page_received */,
+ false /* app_background_occurred */);
+ histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
+ net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
+ EXPECT_EQ(test_fetcher->upload_content_type(), "application/x-protobuf");
+ RecordPageloadMetricsRequest batched_request;
+ batched_request.ParseFromString(test_fetcher->upload_data());
+ EXPECT_EQ(batched_request.pageloads_size(), 1);
+ PageloadMetrics pageload_metrics = batched_request.pageloads(0);
+ EXPECT_EQ(PageloadMetrics_PreviewsType_LOFI,
+ pageload_metrics.previews_type());
+ EXPECT_EQ(PageloadMetrics_PreviewsOptOut_OPT_OUT,
+ pageload_metrics.previews_opt_out());
+
+ test_fetcher->delegate()->OnURLFetchComplete(test_fetcher);
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+}
+
+TEST_F(DataReductionProxyPingbackClientTest, VerifyLoFiContentBackground) {
+ Init();
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+ pingback_client()->OverrideRandom(true, 0.5f);
+ pingback_client()->SetPingbackReportingFraction(1.0f);
+ base::Time current_time = base::Time::UnixEpoch();
+ pingback_client()->set_current_time(current_time);
+ pingback_client()->AddOptOut(NavigationID(page_id(), kSessionKey));
+ CreateAndSendPingback(true /* lofi_received */,
+ false /* lite_page_received */,
+ true /* app_background_occurred */);
+ histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
+ net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
+ EXPECT_EQ(test_fetcher->upload_content_type(), "application/x-protobuf");
+ RecordPageloadMetricsRequest batched_request;
+ batched_request.ParseFromString(test_fetcher->upload_data());
+ EXPECT_EQ(batched_request.pageloads_size(), 1);
+ PageloadMetrics pageload_metrics = batched_request.pageloads(0);
+ EXPECT_EQ(PageloadMetrics_PreviewsType_LOFI,
+ pageload_metrics.previews_type());
+ EXPECT_EQ(PageloadMetrics_PreviewsOptOut_UNKNOWN,
+ pageload_metrics.previews_opt_out());
+
+ test_fetcher->delegate()->OnURLFetchComplete(test_fetcher);
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+}
+
+TEST_F(DataReductionProxyPingbackClientTest, VerifyLitePageContent) {
+ Init();
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+ pingback_client()->OverrideRandom(true, 0.5f);
+ pingback_client()->SetPingbackReportingFraction(1.0f);
+ base::Time current_time = base::Time::UnixEpoch();
+ pingback_client()->set_current_time(current_time);
+ pingback_client()->AddOptOut(NavigationID(page_id(), kSessionKey));
+ CreateAndSendPingback(false /* lofi_received */,
+ true /* lite_page_received */,
+ false /* app_background_occurred */);
+ histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 1);
+ net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
+ EXPECT_EQ(test_fetcher->upload_content_type(), "application/x-protobuf");
+ RecordPageloadMetricsRequest batched_request;
+ batched_request.ParseFromString(test_fetcher->upload_data());
+ EXPECT_EQ(batched_request.pageloads_size(), 1);
+ PageloadMetrics pageload_metrics = batched_request.pageloads(0);
+ EXPECT_EQ(PageloadMetrics_PreviewsType_LITE_PAGE,
+ pageload_metrics.previews_type());
+ EXPECT_EQ(PageloadMetrics_PreviewsOptOut_OPT_OUT,
+ pageload_metrics.previews_opt_out());
+
+ test_fetcher->delegate()->OnURLFetchComplete(test_fetcher);
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+}
+
+TEST_F(DataReductionProxyPingbackClientTest, VerifyTwoLitePagePingbacks) {
+ Init();
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+ pingback_client()->OverrideRandom(true, 0.5f);
+ pingback_client()->SetPingbackReportingFraction(1.0f);
+ base::Time current_time = base::Time::UnixEpoch();
+ pingback_client()->set_current_time(current_time);
+ pingback_client()->AddOptOut(NavigationID(page_id(), kSessionKey));
+ CreateAndSendPingback(false /* lofi_received */,
+ true /* lite_page_received */,
+ false /* app_background_occurred */);
+ pingback_client()->AddOptOut(NavigationID(page_id(), kSessionKey));
+ CreateAndSendPingback(false /* lofi_received */,
+ true /* lite_page_received */,
+ false /* app_background_occurred */);
+ histogram_tester().ExpectUniqueSample(kHistogramAttempted, true, 2);
+ net::TestURLFetcher* test_fetcher = factory()->GetFetcherByID(0);
+ EXPECT_EQ(test_fetcher->upload_content_type(), "application/x-protobuf");
+ RecordPageloadMetricsRequest batched_request;
+ batched_request.ParseFromString(test_fetcher->upload_data());
+ EXPECT_EQ(batched_request.pageloads_size(), 1);
+ PageloadMetrics pageload_metrics = batched_request.pageloads(0);
+ EXPECT_EQ(PageloadMetrics_PreviewsType_LITE_PAGE,
+ pageload_metrics.previews_type());
+ EXPECT_EQ(PageloadMetrics_PreviewsOptOut_OPT_OUT,
+ pageload_metrics.previews_opt_out());
+ test_fetcher->delegate()->OnURLFetchComplete(test_fetcher);
+ test_fetcher = factory()->GetFetcherByID(0);
+ EXPECT_EQ(test_fetcher->upload_content_type(), "application/x-protobuf");
+ batched_request.ParseFromString(test_fetcher->upload_data());
+ EXPECT_EQ(batched_request.pageloads_size(), 1);
+ pageload_metrics = batched_request.pageloads(0);
+ EXPECT_EQ(PageloadMetrics_PreviewsType_LITE_PAGE,
+ pageload_metrics.previews_type());
+ EXPECT_EQ(PageloadMetrics_PreviewsOptOut_OPT_OUT,
+ pageload_metrics.previews_opt_out());
+ test_fetcher->delegate()->OnURLFetchComplete(test_fetcher);
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+}
+
+TEST_F(DataReductionProxyPingbackClientTest, VerifyClearingPendingLoads) {
+ Init();
+ EXPECT_FALSE(factory()->GetFetcherByID(0));
+ pingback_client()->OverrideRandom(true, 0.5f);
+ pingback_client()->SetPingbackReportingFraction(1.0f);
+ base::Time current_time = base::Time::UnixEpoch();
+ pingback_client()->set_current_time(current_time);
+ pingback_client()->AddOptOut(NavigationID(page_id(), kSessionKey));
+ EXPECT_EQ(1u, pingback_client()->OptOutsSizeForTesting());
+ pingback_client()->ClearNavigationKeyAsync(
+ NavigationID(page_id(), kSessionKey));
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(0u, pingback_client()->OptOutsSizeForTesting());
+}
+
} // namespace data_reduction_proxy

Powered by Google App Engine
This is Rietveld 408576698