Commit 838bcedc authored by Tarun Bansal's avatar Tarun Bansal Committed by Commit Bot

Navigation Predictor: Simplify the browser tests

Simplify the browser tests by not checking for when the
experiment is disabled.

Also, add DCHECKs to the cc file to ensure that the
navigation predictor mojo binding object is
created only if the field trial is enabled.

Change-Id: I24189c75994e73a1f30d1a7aecc6d7bdaf4e8857
Bug: 903945
TBR: ryansturm@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1349873Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610915}
parent 4afcdb2f
...@@ -105,6 +105,11 @@ NavigationPredictor::~NavigationPredictor() { ...@@ -105,6 +105,11 @@ NavigationPredictor::~NavigationPredictor() {
void NavigationPredictor::Create( void NavigationPredictor::Create(
blink::mojom::AnchorElementMetricsHostRequest request, blink::mojom::AnchorElementMetricsHostRequest request,
content::RenderFrameHost* render_frame_host) { content::RenderFrameHost* render_frame_host) {
DCHECK(base::FeatureList::IsEnabled(
blink::features::kRecordAnchorMetricsClicked));
DCHECK(base::FeatureList::IsEnabled(
blink::features::kRecordAnchorMetricsVisible));
// Only valid for the main frame. // Only valid for the main frame.
if (render_frame_host->GetParent()) if (render_frame_host->GetParent())
return; return;
...@@ -195,6 +200,8 @@ TemplateURLService* NavigationPredictor::GetTemplateURLService() const { ...@@ -195,6 +200,8 @@ TemplateURLService* NavigationPredictor::GetTemplateURLService() const {
void NavigationPredictor::ReportAnchorElementMetricsOnClick( void NavigationPredictor::ReportAnchorElementMetricsOnClick(
blink::mojom::AnchorElementMetricsPtr metrics) { blink::mojom::AnchorElementMetricsPtr metrics) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(base::FeatureList::IsEnabled(
blink::features::kRecordAnchorMetricsClicked));
if (browser_context_->IsOffTheRecord()) if (browser_context_->IsOffTheRecord())
return; return;
...@@ -396,6 +403,9 @@ void NavigationPredictor::MergeMetricsSameTargetUrl( ...@@ -396,6 +403,9 @@ void NavigationPredictor::MergeMetricsSameTargetUrl(
void NavigationPredictor::ReportAnchorElementMetricsOnLoad( void NavigationPredictor::ReportAnchorElementMetricsOnLoad(
std::vector<blink::mojom::AnchorElementMetricsPtr> metrics) { std::vector<blink::mojom::AnchorElementMetricsPtr> metrics) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(base::FeatureList::IsEnabled(
blink::features::kRecordAnchorMetricsVisible));
// Each document should only report metrics once when page is loaded. // Each document should only report metrics once when page is loaded.
DCHECK(navigation_scores_map_.empty()); DCHECK(navigation_scores_map_.empty());
......
...@@ -8,10 +8,12 @@ ...@@ -8,10 +8,12 @@
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/test/metrics/histogram_tester.h" #include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "mojo/public/cpp/bindings/interface_request.h" #include "mojo/public/cpp/bindings/interface_request.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/loader/navigation_predictor.mojom.h" #include "third_party/blink/public/mojom/loader/navigation_predictor.mojom.h"
#include "url/gurl.h" #include "url/gurl.h"
...@@ -24,6 +26,10 @@ class TestNavigationPredictor : public NavigationPredictor { ...@@ -24,6 +26,10 @@ class TestNavigationPredictor : public NavigationPredictor {
content::RenderFrameHost* render_frame_host) content::RenderFrameHost* render_frame_host)
: NavigationPredictor(render_frame_host), binding_(this) { : NavigationPredictor(render_frame_host), binding_(this) {
binding_.Bind(std::move(request)); binding_.Bind(std::move(request));
const std::vector<base::Feature> features = {
blink::features::kRecordAnchorMetricsVisible,
blink::features::kRecordAnchorMetricsClicked};
feature_list_.InitWithFeatures(features, {});
} }
~TestNavigationPredictor() override {} ~TestNavigationPredictor() override {}
...@@ -46,6 +52,8 @@ class TestNavigationPredictor : public NavigationPredictor { ...@@ -46,6 +52,8 @@ class TestNavigationPredictor : public NavigationPredictor {
// Maps from target URL to area rank of the anchor element. // Maps from target URL to area rank of the anchor element.
mutable std::map<GURL, int> area_rank_map_; mutable std::map<GURL, int> area_rank_map_;
base::test::ScopedFeatureList feature_list_;
// Used to bind Mojo interface // Used to bind Mojo interface
mojo::Binding<AnchorElementMetricsHost> binding_; mojo::Binding<AnchorElementMetricsHost> binding_;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment