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(
}
}
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(
content::NavigationHandle* navigation_handle,
optimization_guide::proto::OptimizationTarget optimization_target,
......
......@@ -54,10 +54,6 @@ class OptimizationGuideKeyedService
void RegisterOptimizationTargets(
const std::vector<optimization_guide::proto::OptimizationTarget>&
optimization_targets) override;
optimization_guide::OptimizationGuideDecision ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
optimization_guide::proto::OptimizationTarget optimization_target)
override;
void ShouldTargetNavigationAsync(
content::NavigationHandle* navigation_handle,
optimization_guide::proto::OptimizationTarget optimization_target,
......
......@@ -196,9 +196,6 @@ class OptimizationGuideConsumerWebContentsObserver
OptimizationGuideKeyedService* service =
OptimizationGuideKeyedServiceFactory::GetForProfile(
Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
last_should_target_decision_ = service->ShouldTargetNavigation(
navigation_handle,
optimization_guide::proto::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD);
if (callback_) {
// Intentionally do not set client model feature values to override to
// make sure decisions are the same in both sync and async variants.
......@@ -214,15 +211,8 @@ class OptimizationGuideConsumerWebContentsObserver
callback_ = std::move(callback);
}
optimization_guide::OptimizationGuideDecision last_should_target_decision()
const {
return last_should_target_decision_;
}
private:
optimization_guide::OptimizationGuideTargetDecisionCallback callback_;
optimization_guide::OptimizationGuideDecision last_should_target_decision_ =
optimization_guide::OptimizationGuideDecision::kUnknown;
};
} // namespace
......@@ -537,6 +527,8 @@ IN_PROC_BROWSER_TEST_F(
&histogram_tester,
"OptimizationGuide.PredictionManager.PredictionModelsStored", 1);
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content());
histogram_tester.ExpectUniqueSample(
......@@ -548,6 +540,8 @@ IN_PROC_BROWSER_TEST_F(
histogram_tester.ExpectBucketCount(
"OptimizationGuide.ClearHostModelFeatures.StoreAvailable", true, 1);
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content());
histogram_tester.ExpectBucketCount(
"OptimizationGuide.PredictionManager.HasHostModelFeaturesForHost", false,
......@@ -589,6 +583,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
&histogram_tester,
"OptimizationGuide.PredictionManager.PredictionModelsStored", 1);
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content());
RetryForHistogramUntilCountReached(
&histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 1);
......@@ -597,6 +593,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
// Navigate to the same URL in the same tab. This should count as a
// same-origin navigation.
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), https_url_with_content());
RetryForHistogramUntilCountReached(
&histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 2);
......@@ -607,6 +605,8 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
// Navigate to a cross-origin URL. This should count as a cross-origin
// navigation.
SetCallbackOnConsumer(base::BindOnce(
[](optimization_guide::OptimizationGuideDecision decision) {}));
ui_test_utils::NavigateToURL(browser(), GURL("https://www.google.com/"));
RetryForHistogramUntilCountReached(
&histogram_tester, "OptimizationGuide.PredictionManager.IsSameOrigin", 3);
......@@ -618,8 +618,7 @@ IN_PROC_BROWSER_TEST_F(PredictionManagerBrowserSameOriginTest,
IN_PROC_BROWSER_TEST_F(
PredictionManagerBrowserSameOriginTest,
DISABLE_ON_WIN_MAC_CHROMEOS(
ShouldTargetNavigationAsyncAndSyncDecisionAreTheSameWithoutOverrides)) {
DISABLE_ON_WIN_MAC_CHROMEOS(ShouldTargetNavigationAsync)) {
base::HistogramTester histogram_tester;
RegisterWithKeyedService();
......@@ -643,7 +642,10 @@ IN_PROC_BROWSER_TEST_F(
[](base::RunLoop* run_loop,
OptimizationGuideConsumerWebContentsObserver* consumer,
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.get(), consumer()));
......
......@@ -54,12 +54,6 @@ class OptimizationGuideDecider {
virtual void RegisterOptimizationTargets(
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
// conditions, as expressed by |client_model_feature_values| and the
// |navigation_handle|, match |optimization_target|.
......
......@@ -14,12 +14,6 @@ TestOptimizationGuideDecider::~TestOptimizationGuideDecider() = default;
void TestOptimizationGuideDecider::RegisterOptimizationTargets(
const std::vector<proto::OptimizationTarget>& optimization_targets) {}
OptimizationGuideDecision TestOptimizationGuideDecider::ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target) {
return OptimizationGuideDecision::kFalse;
}
void TestOptimizationGuideDecider::ShouldTargetNavigationAsync(
content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target,
......
......@@ -23,9 +23,6 @@ class TestOptimizationGuideDecider : public OptimizationGuideDecider {
// OptimizationGuideDecider implementation:
void RegisterOptimizationTargets(const std::vector<proto::OptimizationTarget>&
optimization_targets) override;
OptimizationGuideDecision ShouldTargetNavigation(
content::NavigationHandle* navigation_handle,
proto::OptimizationTarget optimization_target) override;
void ShouldTargetNavigationAsync(
content::NavigationHandle* navigation_handle,
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