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

Switch DelayAsyncScriptExecution to use the any metadata field

Bug: 1113287
Change-Id: I0dd3b14bc9538b71686e9dbac9b258eaec0a2015
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2356749Reviewed-by: default avatarMichael Crouse <mcrouse@chromium.org>
Commit-Queue: Sophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798728}
parent 959eab0e
...@@ -94,8 +94,7 @@ class BlinkOptimizationGuideBrowserTest ...@@ -94,8 +94,7 @@ class BlinkOptimizationGuideBrowserTest
case proto::OptimizationType::DELAY_ASYNC_SCRIPT_EXECUTION: { case proto::OptimizationType::DELAY_ASYNC_SCRIPT_EXECUTION: {
proto::DelayAsyncScriptExecutionMetadata metadata; proto::DelayAsyncScriptExecutionMetadata metadata;
metadata.set_delay_type(proto::DelayType::DELAY_TYPE_FINISHED_PARSING); metadata.set_delay_type(proto::DelayType::DELAY_TYPE_FINISHED_PARSING);
optimization_guide_metadata.set_delay_async_script_execution_metadata( optimization_guide_metadata.SetAnyMetadataForTesting(metadata);
metadata);
break; break;
} }
default: default:
......
...@@ -86,7 +86,8 @@ CreateDelayAsyncScriptExecutionHints( ...@@ -86,7 +86,8 @@ CreateDelayAsyncScriptExecutionHints(
// Give up providing the hints when the metadata is not available. // Give up providing the hints when the metadata is not available.
base::Optional<proto::DelayAsyncScriptExecutionMetadata> metadata = base::Optional<proto::DelayAsyncScriptExecutionMetadata> metadata =
result->data.metadata.delay_async_script_execution_metadata(); result->data.metadata
.ParsedMetadata<proto::DelayAsyncScriptExecutionMetadata>();
if (!metadata || !metadata->delay_type()) if (!metadata || !metadata->delay_type())
return nullptr; return nullptr;
......
...@@ -165,11 +165,6 @@ bool IsOptimizationTypeAllowed( ...@@ -165,11 +165,6 @@ bool IsOptimizationTypeAllowed(
optimization_metadata->set_loading_predictor_metadata( optimization_metadata->set_loading_predictor_metadata(
optimization.loading_predictor_metadata()); optimization.loading_predictor_metadata());
break; break;
case optimization_guide::proto::Optimization::
kDelayAsyncScriptExecutionMetadata:
optimization_metadata->set_delay_async_script_execution_metadata(
optimization.delay_async_script_execution_metadata());
break;
case optimization_guide::proto::Optimization::kAnyMetadata: case optimization_guide::proto::Optimization::kAnyMetadata:
optimization_metadata->set_any_metadata(optimization.any_metadata()); optimization_metadata->set_any_metadata(optimization.any_metadata());
break; break;
...@@ -1431,9 +1426,6 @@ void OptimizationGuideHintsManager::AddHintForTesting( ...@@ -1431,9 +1426,6 @@ void OptimizationGuideHintsManager::AddHintForTesting(
} else if (metadata->public_image_metadata()) { } else if (metadata->public_image_metadata()) {
*optimization->mutable_public_image_metadata() = *optimization->mutable_public_image_metadata() =
*metadata->public_image_metadata(); *metadata->public_image_metadata();
} else if (metadata->delay_async_script_execution_metadata()) {
*optimization->mutable_delay_async_script_execution_metadata() =
*metadata->delay_async_script_execution_metadata();
} else if (metadata->any_metadata()) { } else if (metadata->any_metadata()) {
*optimization->mutable_any_metadata() = *metadata->any_metadata(); *optimization->mutable_any_metadata() = *metadata->any_metadata();
} else { } else {
......
...@@ -1595,50 +1595,6 @@ TEST_F(OptimizationGuideHintsManagerTest, ...@@ -1595,50 +1595,6 @@ TEST_F(OptimizationGuideHintsManagerTest,
optimization_type_decision); optimization_type_decision);
} }
TEST_F(OptimizationGuideHintsManagerTest,
CanApplyOptimizationAndPopulatesDelayAsyncScriptExecutionMetadata) {
hints_manager()->RegisterOptimizationTypes(
{optimization_guide::proto::DELAY_ASYNC_SCRIPT_EXECUTION});
optimization_guide::proto::Configuration config;
optimization_guide::proto::Hint* hint = config.add_hints();
hint->set_key("somedomain.org");
hint->set_key_representation(optimization_guide::proto::HOST);
hint->set_version("someversion");
optimization_guide::proto::PageHint* page_hint = hint->add_page_hints();
page_hint->set_page_pattern("/news/");
optimization_guide::proto::Optimization* opt =
page_hint->add_whitelisted_optimizations();
opt->set_optimization_type(
optimization_guide::proto::DELAY_ASYNC_SCRIPT_EXECUTION);
opt->mutable_delay_async_script_execution_metadata()->set_delay_type(
optimization_guide::proto::DelayType::DELAY_TYPE_FINISHED_PARSING);
ProcessHints(config, "1.0.0.0");
std::unique_ptr<content::MockNavigationHandle> navigation_handle =
CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
url_with_hints());
base::RunLoop run_loop;
hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
run_loop.QuitClosure());
run_loop.Run();
optimization_guide::OptimizationMetadata optimization_metadata;
optimization_guide::OptimizationTypeDecision optimization_type_decision =
hints_manager()->CanApplyOptimization(
navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
optimization_guide::proto::DELAY_ASYNC_SCRIPT_EXECUTION,
&optimization_metadata);
// Make sure delay async script execution metadata is populated.
EXPECT_TRUE(optimization_metadata.delay_async_script_execution_metadata()
.has_value());
EXPECT_EQ(optimization_guide::proto::DelayType::DELAY_TYPE_FINISHED_PARSING,
optimization_metadata.delay_async_script_execution_metadata()
->delay_type());
EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kAllowedByHint,
optimization_type_decision);
}
TEST_F(OptimizationGuideHintsManagerTest, TEST_F(OptimizationGuideHintsManagerTest,
CanApplyOptimizationAndPopulatesAnyMetadata) { CanApplyOptimizationAndPopulatesAnyMetadata) {
hints_manager()->RegisterOptimizationTypes( hints_manager()->RegisterOptimizationTypes(
......
...@@ -98,17 +98,6 @@ class OptimizationMetadata { ...@@ -98,17 +98,6 @@ class OptimizationMetadata {
loading_predictor_metadata_ = loading_predictor_metadata; loading_predictor_metadata_ = loading_predictor_metadata;
} }
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
delay_async_script_execution_metadata() const {
return delay_async_script_execution_metadata_;
}
void set_delay_async_script_execution_metadata(
const proto::DelayAsyncScriptExecutionMetadata&
delay_async_script_execution_metadata) {
delay_async_script_execution_metadata_ =
delay_async_script_execution_metadata;
}
private: private:
// Metadata applicable to the optimization type. // Metadata applicable to the optimization type.
// //
...@@ -127,10 +116,6 @@ class OptimizationMetadata { ...@@ -127,10 +116,6 @@ class OptimizationMetadata {
// Only applicable for the LOADING_PREDICTOR optimization type. // Only applicable for the LOADING_PREDICTOR optimization type.
base::Optional<proto::LoadingPredictorMetadata> loading_predictor_metadata_; base::Optional<proto::LoadingPredictorMetadata> loading_predictor_metadata_;
// Only applicable for the DELAY_ASYNC_SCRIPT_EXECUTION optimization type.
base::Optional<proto::DelayAsyncScriptExecutionMetadata>
delay_async_script_execution_metadata_;
}; };
} // namespace optimization_guide } // namespace optimization_guide
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "components/optimization_guide/optimization_metadata.h" #include "components/optimization_guide/optimization_metadata.h"
#include "components/optimization_guide/proto/delay_async_script_execution_metadata.pb.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace optimization_guide { namespace optimization_guide {
......
...@@ -10,7 +10,6 @@ option java_outer_classname = "HintsProto"; ...@@ -10,7 +10,6 @@ option java_outer_classname = "HintsProto";
package optimization_guide.proto; package optimization_guide.proto;
import "common_types.proto"; import "common_types.proto";
import "delay_async_script_execution_metadata.proto";
import "loading_predictor_metadata.proto"; import "loading_predictor_metadata.proto";
import "performance_hints_metadata.proto"; import "performance_hints_metadata.proto";
import "previews_metadata.proto"; import "previews_metadata.proto";
...@@ -169,7 +168,7 @@ enum KeyRepresentation { ...@@ -169,7 +168,7 @@ enum KeyRepresentation {
} }
message Optimization { message Optimization {
reserved 2, 3; reserved 2, 3, 14;
// The type of optimization the hint applies to. // The type of optimization the hint applies to.
optional OptimizationType optimization_type = 1; optional OptimizationType optimization_type = 1;
// The experiment name that activates the optimization. // The experiment name that activates the optimization.
...@@ -205,8 +204,6 @@ message Optimization { ...@@ -205,8 +204,6 @@ message Optimization {
PerformanceHintsMetadata performance_hints_metadata = 11; PerformanceHintsMetadata performance_hints_metadata = 11;
PublicImageMetadata public_image_metadata = 12; PublicImageMetadata public_image_metadata = 12;
LoadingPredictorMetadata loading_predictor_metadata = 13; LoadingPredictorMetadata loading_predictor_metadata = 13;
DelayAsyncScriptExecutionMetadata delay_async_script_execution_metadata =
14;
Any any_metadata = 15; Any any_metadata = 15;
} }
} }
......
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