Commit d5abd1df authored by Sophie Chang's avatar Sophie Chang Committed by Commit Bot

Remove sync ShouldTargetNavigation API

Bug: 1099371
Change-Id: If25b554b8316f64078325e1411872c33f7c2f5e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2303861Reviewed-by: default avatarMichael Crouse <mcrouse@chromium.org>
Commit-Queue: Sophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789983}
parent 170131c1
...@@ -161,33 +161,6 @@ void OptimizationGuideKeyedService::RegisterOptimizationTargets( ...@@ -161,33 +161,6 @@ void OptimizationGuideKeyedService::RegisterOptimizationTargets(
} }
} }
optimization_guide::OptimizationGuideDecision
OptimizationGuideKeyedService::ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
optimization_guide::proto::OptimizationTarget optimization_target) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(navigation_handle->IsInMainFrame());
if (!prediction_manager_) {
// We are not initialized yet, just return unknown.
return optimization_guide::OptimizationGuideDecision::kUnknown;
}
optimization_guide::OptimizationTargetDecision optimization_target_decision =
prediction_manager_->ShouldTargetNavigation(
navigation_handle, optimization_target,
/*override_client_model_feature_values=*/{});
base::UmaHistogramExactLinear(
"OptimizationGuide.TargetDecision." +
GetStringNameForOptimizationTarget(optimization_target),
static_cast<int>(optimization_target_decision),
static_cast<int>(
optimization_guide::OptimizationTargetDecision::kMaxValue));
return GetOptimizationGuideDecisionFromOptimizationTargetDecision(
optimization_target_decision);
}
void OptimizationGuideKeyedService::ShouldTargetNavigationAsync( void OptimizationGuideKeyedService::ShouldTargetNavigationAsync(
content::NavigationHandle* navigation_handle, content::NavigationHandle* navigation_handle,
optimization_guide::proto::OptimizationTarget optimization_target, optimization_guide::proto::OptimizationTarget optimization_target,
......
...@@ -54,10 +54,6 @@ class OptimizationGuideKeyedService ...@@ -54,10 +54,6 @@ class OptimizationGuideKeyedService
void RegisterOptimizationTargets( void RegisterOptimizationTargets(
const std::vector<optimization_guide::proto::OptimizationTarget>& const std::vector<optimization_guide::proto::OptimizationTarget>&
optimization_targets) override; optimization_targets) override;
optimization_guide::OptimizationGuideDecision ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
optimization_guide::proto::OptimizationTarget optimization_target)
override;
void ShouldTargetNavigationAsync( void ShouldTargetNavigationAsync(
content::NavigationHandle* navigation_handle, content::NavigationHandle* navigation_handle,
optimization_guide::proto::OptimizationTarget optimization_target, optimization_guide::proto::OptimizationTarget optimization_target,
......
...@@ -196,9 +196,6 @@ class OptimizationGuideConsumerWebContentsObserver ...@@ -196,9 +196,6 @@ class OptimizationGuideConsumerWebContentsObserver
OptimizationGuideKeyedService* service = OptimizationGuideKeyedService* service =
OptimizationGuideKeyedServiceFactory::GetForProfile( OptimizationGuideKeyedServiceFactory::GetForProfile(
Profile::FromBrowserContext(web_contents()->GetBrowserContext())); Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
last_should_target_decision_ = service->ShouldTargetNavigation(
navigation_handle,
optimization_guide::proto::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD);
if (callback_) { if (callback_) {
// Intentionally do not set client model feature values to override to // Intentionally do not set client model feature values to override to
// make sure decisions are the same in both sync and async variants. // make sure decisions are the same in both sync and async variants.
...@@ -214,15 +211,8 @@ class OptimizationGuideConsumerWebContentsObserver ...@@ -214,15 +211,8 @@ class OptimizationGuideConsumerWebContentsObserver
callback_ = std::move(callback); callback_ = std::move(callback);
} }
optimization_guide::OptimizationGuideDecision last_should_target_decision()
const {
return last_should_target_decision_;
}
private: private:
optimization_guide::OptimizationGuideTargetDecisionCallback callback_; optimization_guide::OptimizationGuideTargetDecisionCallback callback_;
optimization_guide::OptimizationGuideDecision last_should_target_decision_ =
optimization_guide::OptimizationGuideDecision::kUnknown;
}; };
} // namespace } // namespace
...@@ -537,6 +527,8 @@ IN_PROC_BROWSER_TEST_F( ...@@ -537,6 +527,8 @@ IN_PROC_BROWSER_TEST_F(
&histogram_tester, &histogram_tester,
"OptimizationGuide.PredictionManager.PredictionModelsStored", 1); "OptimizationGuide.PredictionManager.PredictionModelsStored", 1);
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content()); ui_test_utils::NavigateToURL(browser(), https_url_with_content());
histogram_tester.ExpectUniqueSample( histogram_tester.ExpectUniqueSample(
...@@ -548,6 +540,8 @@ IN_PROC_BROWSER_TEST_F( ...@@ -548,6 +540,8 @@ IN_PROC_BROWSER_TEST_F(
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"OptimizationGuide.ClearHostModelFeatures.StoreAvailable", true, 1); "OptimizationGuide.ClearHostModelFeatures.StoreAvailable", true, 1);
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content()); ui_test_utils::NavigateToURL(browser(), https_url_with_content());
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"OptimizationGuide.PredictionManager.HasHostModelFeaturesForHost", false, "OptimizationGuide.PredictionManager.HasHostModelFeaturesForHost", false,
...@@ -589,6 +583,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest, ...@@ -589,6 +583,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
&histogram_tester, &histogram_tester,
"OptimizationGuide.PredictionManager.PredictionModelsStored", 1); "OptimizationGuide.PredictionManager.PredictionModelsStored", 1);
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content()); ui_test_utils::NavigateToURL(browser(), https_url_with_content());
RetryForHistogramUntilCountReached( RetryForHistogramUntilCountReached(
&histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 1); &histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 1);
...@@ -597,6 +593,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest, ...@@ -597,6 +593,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
// Navigate to the same URL in the same tab. This should count as a // Navigate to the same URL in the same tab. This should count as a
// same-origin navigation. // same-origin navigation.
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content()); ui_test_utils::NavigateToURL(browser(), https_url_with_content());
RetryForHistogramUntilCountReached( RetryForHistogramUntilCountReached(
&histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 2); &histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 2);
...@@ -607,6 +605,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest, ...@@ -607,6 +605,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
// Navigate to a cross-origin URL. This should count as a cross-origin // Navigate to a cross-origin URL. This should count as a cross-origin
// navigation. // navigation.
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), GURL("https://www.google.com/")); ui_test_utils::NavigateToURL(browser(), GURL("https://www.google.com/"));
RetryForHistogramUntilCountReached( RetryForHistogramUntilCountReached(
&histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 3); &histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 3);
...@@ -618,8 +618,7 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest, ...@@ -618,8 +618,7 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
IN_PROC_BROWSER_TEST_F( IN_PROC_BROWSER_TEST_F(
PredictionManagerBrowserSameOriginTest, PredictionManagerBrowserSameOriginTest,
DISABLE_ON_WIN_MAC_CHROMEOS( DISABLE_ON_WIN_MAC_CHROMEOS(ShouldTargetNavigationAsync)) {
ShouldTargetNavigationAsyncAndSyncDecisionAreTheSameWithoutOverrides)) {
base::HistogramTester histogram_tester; base::HistogramTester histogram_tester;
RegisterWithKeyedService(); RegisterWithKeyedService();
...@@ -643,7 +642,10 @@ IN_PROC_BROWSER_TEST_F( ...@@ -643,7 +642,10 @@ IN_PROC_BROWSER_TEST_F(
[](base::RunLoop* run_loop, [](base::RunLoop* run_loop,
OptimizationGuideConsumerWebContentsObserver* consumer, OptimizationGuideConsumerWebContentsObserver* consumer,
optimization_guide::OptimizationGuideDecision decision) { optimization_guide::OptimizationGuideDecision decision) {
EXPECT_EQ(consumer->last_should_target_decision(), decision); // The model should be evaluated with an actual decision since the model
// and all features provided are valid.
EXPECT_NE(decision,
optimization_guide::OptimizationGuideDecision::kUnknown);
run_loop->Quit(); run_loop->Quit();
}, },
run_loop.get(), consumer())); run_loop.get(), consumer()));
......
...@@ -54,12 +54,6 @@ class OptimizationGuideDecider { ...@@ -54,12 +54,6 @@ class OptimizationGuideDecider {
virtual void RegisterOptimizationTargets( virtual void RegisterOptimizationTargets(
const std::vector<proto::OptimizationTarget>& optimization_targets) = 0; const std::vector<proto::OptimizationTarget>& optimization_targets) = 0;
// Returns whether the current conditions match |optimization_target|. This
// should only be called for main frame navigations.
virtual OptimizationGuideDecision ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target) = 0;
// Invokes |callback| with the decision for whether the current browser // Invokes |callback| with the decision for whether the current browser
// conditions, as expressed by |client_model_feature_values| and the // conditions, as expressed by |client_model_feature_values| and the
// |navigation_handle|, match |optimization_target|. // |navigation_handle|, match |optimization_target|.
......
...@@ -14,12 +14,6 @@ TestOptimizationGuideDecider::~TestOptimizationGuideDecider() = default; ...@@ -14,12 +14,6 @@ TestOptimizationGuideDecider::~TestOptimizationGuideDecider() = default;
void TestOptimizationGuideDecider::RegisterOptimizationTargets( void TestOptimizationGuideDecider::RegisterOptimizationTargets(
const std::vector<proto::OptimizationTarget>& optimization_targets) {} const std::vector<proto::OptimizationTarget>& optimization_targets) {}
OptimizationGuideDecision TestOptimizationGuideDecider::ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target) {
return OptimizationGuideDecision::kFalse;
}
void TestOptimizationGuideDecider::ShouldTargetNavigationAsync( void TestOptimizationGuideDecider::ShouldTargetNavigationAsync(
content::NavigationHandle* navigation_handle, content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target, proto::OptimizationTarget optimization_target,
......
...@@ -23,9 +23,6 @@ class TestOptimizationGuideDecider : public OptimizationGuideDecider { ...@@ -23,9 +23,6 @@ class TestOptimizationGuideDecider : public OptimizationGuideDecider {
// OptimizationGuideDecider implementation: // OptimizationGuideDecider implementation:
void RegisterOptimizationTargets(const std::vector<proto::OptimizationTarget>& void RegisterOptimizationTargets(const std::vector<proto::OptimizationTarget>&
optimization_targets) override; optimization_targets) override;
OptimizationGuideDecision ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target) override;
void ShouldTargetNavigationAsync( void ShouldTargetNavigationAsync(
content::NavigationHandle* navigation_handle, content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target, proto::OptimizationTarget optimization_target,
......
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