| Index: content/browser/service_worker/service_worker_version_unittest.cc
|
| diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc
|
| index 6f4c737b03c5004a6e1a2a90884fed9f4b15cdf2..34b4c61bf0bc0f8e38a6d0761bc3e26e6389cde3 100644
|
| --- a/content/browser/service_worker/service_worker_version_unittest.cc
|
| +++ b/content/browser/service_worker/service_worker_version_unittest.cc
|
| @@ -1700,157 +1700,4 @@ TEST_F(ServiceWorkerVersionTest, DispatchEvent_MultipleResponse) {
|
| base::Time::Now()));
|
| }
|
|
|
| -class ServiceWorkerNavigationHintUMATest : public ServiceWorkerVersionTest {
|
| - protected:
|
| - ServiceWorkerNavigationHintUMATest() : ServiceWorkerVersionTest() {}
|
| -
|
| - void StartWorker(ServiceWorkerMetrics::EventType purpose) {
|
| - ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE;
|
| - version_->StartWorker(purpose, CreateReceiverOnCurrentThread(&status));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(SERVICE_WORKER_OK, status);
|
| - }
|
| -
|
| - void StopWorker() {
|
| - ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE;
|
| - version_->StopWorker(CreateReceiverOnCurrentThread(&status));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(SERVICE_WORKER_OK, status);
|
| - }
|
| -
|
| - void SimpleNavigationHintTest(
|
| - ServiceWorkerMetrics::EventType purpose,
|
| - const char* changed_historam_name,
|
| - const std::vector<const char*>& unchanged_historam_names) {
|
| - version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
|
| - StartWorker(purpose);
|
| - StopWorker();
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, true, 0);
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, false, 1);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, true, 0);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, false, 1);
|
| - for (const char* unchanged_historam_name : unchanged_historam_names)
|
| - histogram_tester_.ExpectTotalCount(unchanged_historam_name, 0);
|
| -
|
| - StartWorker(purpose);
|
| - SimulateDispatchEvent(ServiceWorkerMetrics::EventType::MESSAGE);
|
| - StopWorker();
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, true, 0);
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, false, 2);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, true, 0);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, false, 2);
|
| - for (const char* unchanged_historam_name : unchanged_historam_names)
|
| - histogram_tester_.ExpectTotalCount(unchanged_historam_name, 0);
|
| -
|
| - StartWorker(purpose);
|
| - SimulateDispatchEvent(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME);
|
| - StopWorker();
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, true, 1);
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, false, 2);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, true, 1);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, false, 2);
|
| - for (const char* unchanged_historam_name : unchanged_historam_names)
|
| - histogram_tester_.ExpectTotalCount(unchanged_historam_name, 0);
|
| -
|
| - StartWorker(purpose);
|
| - SimulateDispatchEvent(ServiceWorkerMetrics::EventType::FETCH_SUB_FRAME);
|
| - StopWorker();
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, true, 2);
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, false, 2);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, true, 2);
|
| - histogram_tester_.ExpectBucketCount(changed_historam_name, false, 2);
|
| - for (const char* unchanged_historam_name : unchanged_historam_names)
|
| - histogram_tester_.ExpectTotalCount(unchanged_historam_name, 0);
|
| - }
|
| -
|
| - static const char kNavigationHintPrecision[];
|
| - static const char kLinkMouseDown[];
|
| - static const char kLinkTapUnconfirmed[];
|
| - static const char kLinkTapDown[];
|
| -
|
| - base::HistogramTester histogram_tester_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ServiceWorkerNavigationHintUMATest);
|
| -};
|
| -
|
| -const char ServiceWorkerNavigationHintUMATest::kNavigationHintPrecision[] =
|
| - "ServiceWorker.NavigationHintPrecision";
|
| -const char ServiceWorkerNavigationHintUMATest::kLinkMouseDown[] =
|
| - "ServiceWorker.NavigationHintPrecision.LINK_MOUSE_DOWN";
|
| -const char ServiceWorkerNavigationHintUMATest::kLinkTapUnconfirmed[] =
|
| - "ServiceWorker.NavigationHintPrecision.LINK_TAP_UNCONFIRMED";
|
| -const char ServiceWorkerNavigationHintUMATest::kLinkTapDown[] =
|
| - "ServiceWorker.NavigationHintPrecision.LINK_TAP_DOWN";
|
| -
|
| -TEST_F(ServiceWorkerNavigationHintUMATest, LinkMouseDown) {
|
| - SimpleNavigationHintTest(
|
| - ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN,
|
| - kLinkMouseDown, {kLinkTapUnconfirmed, kLinkTapDown});
|
| -}
|
| -
|
| -TEST_F(ServiceWorkerNavigationHintUMATest, LinkTapUnconfirmed) {
|
| - SimpleNavigationHintTest(
|
| - ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED,
|
| - kLinkTapUnconfirmed, {kLinkMouseDown, kLinkTapDown});
|
| -}
|
| -
|
| -TEST_F(ServiceWorkerNavigationHintUMATest, LinkTapDown) {
|
| - SimpleNavigationHintTest(
|
| - ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_TAP_DOWN,
|
| - kLinkTapDown, {kLinkMouseDown, kLinkTapUnconfirmed});
|
| -}
|
| -
|
| -TEST_F(ServiceWorkerNavigationHintUMATest, ConcurrentStart) {
|
| - version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
|
| - ServiceWorkerStatusCode status1 = SERVICE_WORKER_ERROR_MAX_VALUE;
|
| - ServiceWorkerStatusCode status2 = SERVICE_WORKER_ERROR_MAX_VALUE;
|
| - version_->StartWorker(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME,
|
| - CreateReceiverOnCurrentThread(&status1));
|
| - version_->StartWorker(
|
| - ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN,
|
| - CreateReceiverOnCurrentThread(&status2));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(SERVICE_WORKER_OK, status1);
|
| - EXPECT_EQ(SERVICE_WORKER_OK, status2);
|
| - StopWorker();
|
| - // The first purpose of starting worker was not a navigation hint.
|
| - histogram_tester_.ExpectTotalCount(kNavigationHintPrecision, 0);
|
| -
|
| - status1 = SERVICE_WORKER_ERROR_MAX_VALUE;
|
| - status2 = SERVICE_WORKER_ERROR_MAX_VALUE;
|
| - version_->StartWorker(
|
| - ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN,
|
| - CreateReceiverOnCurrentThread(&status2));
|
| - version_->StartWorker(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME,
|
| - CreateReceiverOnCurrentThread(&status1));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(SERVICE_WORKER_OK, status1);
|
| - EXPECT_EQ(SERVICE_WORKER_OK, status2);
|
| - SimulateDispatchEvent(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME);
|
| - StopWorker();
|
| - // The first purpose of starting worker was a navigation hint.
|
| - histogram_tester_.ExpectTotalCount(kNavigationHintPrecision, 1);
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, true, 1);
|
| - histogram_tester_.ExpectBucketCount(kNavigationHintPrecision, false, 0);
|
| -}
|
| -
|
| -TEST_F(ServiceWorkerNavigationHintUMATest, StartWhileStopping) {
|
| - StartWorker(ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN);
|
| - ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE;
|
| - version_->StopWorker(CreateReceiverOnCurrentThread(&status));
|
| - EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, version_->running_status());
|
| - histogram_tester_.ExpectTotalCount(kLinkMouseDown, 0);
|
| -
|
| - StartWorker(ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_TAP_DOWN);
|
| - // The UMA for kLinkMouseDown must be recorded while restarting.
|
| - histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1);
|
| - histogram_tester_.ExpectTotalCount(kLinkTapDown, 0);
|
| - EXPECT_EQ(SERVICE_WORKER_OK, status);
|
| - StopWorker();
|
| - // The UMA for kLinkMouseDown must be recorded when the worker stopped.
|
| - histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1);
|
| - histogram_tester_.ExpectTotalCount(kLinkTapDown, 1);
|
| -}
|
| -
|
| } // namespace content
|
|
|