Commit 5ba9f083 authored by Tarun Bansal's avatar Tarun Bansal Committed by Commit Bot

Navigation Predictor: Skip iframe elements

Skip iframe elements when predicting the next navigation.

Change-Id: I2720ad4e59b70ca40a385e966e4c38844c83a1e2
Bug: 903884
Reviewed-on: https://chromium-review.googlesource.com/c/1328708Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Reviewed-by: default avatarDoug Arnett <dougarnett@chromium.org>
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606925}
parent 28dfa4c3
...@@ -265,6 +265,12 @@ void NavigationPredictor::MergeMetricsSameTargetUrl( ...@@ -265,6 +265,12 @@ void NavigationPredictor::MergeMetricsSameTargetUrl(
if (metric->target_url == metric->source_url) if (metric->target_url == metric->source_url)
continue; continue;
// Currently, all predictions are made based on elements that are within the
// main frame since it is unclear if we can pre* the target of the elements
// within iframes.
if (metric->is_in_iframe)
continue;
const std::string& key = metric->target_url.spec(); const std::string& key = metric->target_url.spec();
auto iter = metrics_map.find(key); auto iter = metrics_map.find(key);
if (iter == metrics_map.end()) { if (iter == metrics_map.end()) {
......
...@@ -129,15 +129,17 @@ IN_PROC_BROWSER_TEST_P(NavigationPredictorBrowserTest, PipelineAdsFrameTagged) { ...@@ -129,15 +129,17 @@ IN_PROC_BROWSER_TEST_P(NavigationPredictorBrowserTest, PipelineAdsFrameTagged) {
if (base::FeatureList::IsEnabled( if (base::FeatureList::IsEnabled(
blink::features::kRecordAnchorMetricsVisible)) { blink::features::kRecordAnchorMetricsVisible)) {
histogram_tester.ExpectUniqueSample( histogram_tester.ExpectUniqueSample(
"AnchorElementMetrics.Visible.NumberOfAnchorElements", 2, 1); "AnchorElementMetrics.Visible.NumberOfAnchorElements", 5, 1);
histogram_tester.ExpectUniqueSample(
"AnchorElementMetrics.Visible.NumberOfAnchorElementsAfterMerge", 2, 1);
RetryForHistogramUntilCountReached( RetryForHistogramUntilCountReached(
&histogram_tester, "AnchorElementMetrics.IsAdFrameElement", 4); &histogram_tester, "AnchorElementMetrics.IsAdFrameElement", 4);
histogram_tester.ExpectTotalCount("AnchorElementMetrics.IsAdFrameElement", histogram_tester.ExpectTotalCount("AnchorElementMetrics.IsAdFrameElement",
4); 7);
histogram_tester.ExpectBucketCount("AnchorElementMetrics.IsAdFrameElement", histogram_tester.ExpectBucketCount("AnchorElementMetrics.IsAdFrameElement",
0 /* false */, 2); 0 /* false */, 5);
histogram_tester.ExpectBucketCount("AnchorElementMetrics.IsAdFrameElement", histogram_tester.ExpectBucketCount("AnchorElementMetrics.IsAdFrameElement",
1 /* true */, 2); 1 /* true */, 2);
...@@ -160,13 +162,15 @@ IN_PROC_BROWSER_TEST_P(NavigationPredictorBrowserTest, ...@@ -160,13 +162,15 @@ IN_PROC_BROWSER_TEST_P(NavigationPredictorBrowserTest,
if (base::FeatureList::IsEnabled( if (base::FeatureList::IsEnabled(
blink::features::kRecordAnchorMetricsVisible)) { blink::features::kRecordAnchorMetricsVisible)) {
histogram_tester.ExpectUniqueSample( histogram_tester.ExpectUniqueSample(
"AnchorElementMetrics.Visible.NumberOfAnchorElements", 4, 1); "AnchorElementMetrics.Visible.NumberOfAnchorElements", 7, 1);
histogram_tester.ExpectUniqueSample(
"AnchorElementMetrics.Visible.NumberOfAnchorElementsAfterMerge", 2, 1);
RetryForHistogramUntilCountReached( RetryForHistogramUntilCountReached(
&histogram_tester, "AnchorElementMetrics.IsAdFrameElement", 4); &histogram_tester, "AnchorElementMetrics.IsAdFrameElement", 7);
histogram_tester.ExpectUniqueSample("AnchorElementMetrics.IsAdFrameElement", histogram_tester.ExpectUniqueSample("AnchorElementMetrics.IsAdFrameElement",
0 /* false */, 4); 0 /* false */, 7);
} else { } else {
histogram_tester.ExpectTotalCount( histogram_tester.ExpectTotalCount(
......
<html>
<head>
</head>
<body>
<a id="google" href="https://google.com">Google</a>
<a id="google2" href="https://google.com">Google2</a>
<a id="imageSameHref" href="https://google.com"><img height="1" width="1"></a>
</body>
</html>
\ No newline at end of file
...@@ -5,5 +5,6 @@ ...@@ -5,5 +5,6 @@
<a id="google" href="https://google.com">Google</a> <a id="google" href="https://google.com">Google</a>
<a id="example" href="https://example.com">Example</a> <a id="example" href="https://example.com">Example</a>
<iframe src="iframe_ads_simple_page_with_anchors.html"></iframe> <iframe src="iframe_ads_simple_page_with_anchors.html"></iframe>
<iframe src="iframe_simple_page_with_anchors.html"></iframe>
</body> </body>
</html> </html>
\ No newline at end of file
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