From 00d42fc6ea29c7d306c67d01a6e56cf949c6ee6c Mon Sep 17 00:00:00 2001 From: rajendrant <rajendrant@chromium.org> Date: Fri, 4 Dec 2020 19:53:06 +0000 Subject: [PATCH] Rename RobotsRulesDecider to RobotsRulesParser Change-Id: I59d9725499dfabe490411391350f5050ebe326c8 Bug: 1152527 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2574258 Commit-Queue: rajendrant <rajendrant@chromium.org> Reviewed-by: Robert Ogden <robertogden@chromium.org> Cr-Commit-Position: refs/heads/master@{#833814} --- chrome/renderer/BUILD.gn | 4 +- ...ules_decider.cc => robots_rules_parser.cc} | 22 +- ..._rules_decider.h => robots_rules_parser.h} | 16 +- ...est.cc => robots_rules_parser_unittest.cc} | 225 ++++++++---------- chrome/test/BUILD.gn | 2 +- 5 files changed, 127 insertions(+), 142 deletions(-) rename chrome/renderer/subresource_redirect/{robots_rules_decider.cc => robots_rules_parser.cc} (89%) rename chrome/renderer/subresource_redirect/{robots_rules_decider.h => robots_rules_parser.h} (88%) rename chrome/renderer/subresource_redirect/{robots_rules_decider_unittest.cc => robots_rules_parser_unittest.cc} (55%) diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn index 01fc562b87d00..3ea05ee825757 100644 --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn @@ -98,8 +98,8 @@ static_library("renderer") { "previews/resource_loading_hints_agent.h", "subresource_redirect/public_image_hints_url_loader_throttle.cc", "subresource_redirect/public_image_hints_url_loader_throttle.h", - "subresource_redirect/robots_rules_decider.cc", - "subresource_redirect/robots_rules_decider.h", + "subresource_redirect/robots_rules_parser.cc", + "subresource_redirect/robots_rules_parser.h", "subresource_redirect/subresource_redirect_hints_agent.cc", "subresource_redirect/subresource_redirect_hints_agent.h", "subresource_redirect/subresource_redirect_params.cc", diff --git a/chrome/renderer/subresource_redirect/robots_rules_decider.cc b/chrome/renderer/subresource_redirect/robots_rules_parser.cc similarity index 89% rename from chrome/renderer/subresource_redirect/robots_rules_decider.cc rename to chrome/renderer/subresource_redirect/robots_rules_parser.cc index 6925f0dd6e86a..fe2f9909815c7 100644 --- a/chrome/renderer/subresource_redirect/robots_rules_decider.cc +++ b/chrome/renderer/subresource_redirect/robots_rules_parser.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/renderer/subresource_redirect/robots_rules_decider.h" +#include "chrome/renderer/subresource_redirect/robots_rules_parser.h" #include "base/callback.h" #include "base/logging.h" @@ -66,7 +66,7 @@ bool IsMatchingRobotsRule(const std::string& path, const std::string& pattern) { } void RecordRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult result) { + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult result) { UMA_HISTOGRAM_ENUMERATION( "SubresourceRedirect.RobotRulesDecider.ReceiveResult", result); } @@ -78,27 +78,27 @@ void RecordRobotsRulesApplyDurationHistogram(base::TimeDelta duration) { } // namespace -bool RobotsRulesDecider::RobotsRule::Match(const std::string& path) const { +bool RobotsRulesParser::RobotsRule::Match(const std::string& path) const { return IsMatchingRobotsRule(path, pattern_); } -RobotsRulesDecider::RobotsRulesDecider() { +RobotsRulesParser::RobotsRulesParser() { // Using base::Unretained(this) is safe here, since the timer // |rules_receive_timeout_timer_| is owned by |this| and destroyed before // |this|. rules_receive_timeout_timer_.Start( FROM_HERE, GetRobotsRulesReceiveTimeout(), - base::BindOnce(&RobotsRulesDecider::OnRulesReceiveTimeout, + base::BindOnce(&RobotsRulesParser::OnRulesReceiveTimeout, base::Unretained(this))); } -RobotsRulesDecider::~RobotsRulesDecider() { +RobotsRulesParser::~RobotsRulesParser() { // Consider this as a timeout if (rules_receive_timeout_timer_.IsRunning()) rules_receive_timeout_timer_.FireNow(); } -void RobotsRulesDecider::UpdateRobotsRules(const std::string& rules) { +void RobotsRulesParser::UpdateRobotsRules(const std::string& rules) { robots_rules_.reset(); rules_receive_timeout_timer_.Stop(); @@ -133,8 +133,8 @@ void RobotsRulesDecider::UpdateRobotsRules(const std::string& rules) { pending_check_requests_.clear(); } -void RobotsRulesDecider::CheckRobotsRules(const GURL& url, - CheckResultCallback callback) { +void RobotsRulesParser::CheckRobotsRules(const GURL& url, + CheckResultCallback callback) { std::string path_with_query = url.path(); if (url.has_query()) base::StrAppend(&path_with_query, {"?", url.query()}); @@ -149,7 +149,7 @@ void RobotsRulesDecider::CheckRobotsRules(const GURL& url, : CheckResult::kDisallowed); } -bool RobotsRulesDecider::IsAllowed(const std::string& url_path) const { +bool RobotsRulesParser::IsAllowed(const std::string& url_path) const { // Rules not received. Could be rule parse error or timeout. if (!robots_rules_) return false; @@ -167,7 +167,7 @@ bool RobotsRulesDecider::IsAllowed(const std::string& url_path) const { return true; } -void RobotsRulesDecider::OnRulesReceiveTimeout() { +void RobotsRulesParser::OnRulesReceiveTimeout() { DCHECK(!rules_receive_timeout_timer_.IsRunning()); for (auto& request : pending_check_requests_) std::move(request.first).Run(CheckResult::kTimedout); diff --git a/chrome/renderer/subresource_redirect/robots_rules_decider.h b/chrome/renderer/subresource_redirect/robots_rules_parser.h similarity index 88% rename from chrome/renderer/subresource_redirect/robots_rules_decider.h rename to chrome/renderer/subresource_redirect/robots_rules_parser.h index 012cd21130fcf..3522b942637c5 100644 --- a/chrome/renderer/subresource_redirect/robots_rules_decider.h +++ b/chrome/renderer/subresource_redirect/robots_rules_parser.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_RENDERER_SUBRESOURCE_REDIRECT_ROBOTS_RULES_DECIDER_H_ -#define CHROME_RENDERER_SUBRESOURCE_REDIRECT_ROBOTS_RULES_DECIDER_H_ +#ifndef CHROME_RENDERER_SUBRESOURCE_REDIRECT_ROBOTS_RULES_PARSER_H_ +#define CHROME_RENDERER_SUBRESOURCE_REDIRECT_ROBOTS_RULES_PARSER_H_ #include <map> #include <vector> @@ -20,7 +20,7 @@ namespace subresource_redirect { // url path is allowed or disallowed. Also supports a timeout to receive the // robots rules after which it will be treated as a full disallow. The check // result is delivered via callback asynchronously. -class RobotsRulesDecider { +class RobotsRulesParser { public: // The final result of robots rule retrieval. // This should be kept in sync with @@ -41,11 +41,11 @@ class RobotsRulesDecider { // Callback to notify the check robot rules result. using CheckResultCallback = base::OnceCallback<void(CheckResult)>; - RobotsRulesDecider(); - ~RobotsRulesDecider(); + RobotsRulesParser(); + ~RobotsRulesParser(); - RobotsRulesDecider(const RobotsRulesDecider&) = delete; - RobotsRulesDecider& operator=(const RobotsRulesDecider&) = delete; + RobotsRulesParser(const RobotsRulesParser&) = delete; + RobotsRulesParser& operator=(const RobotsRulesParser&) = delete; // Update the robots rules. This causes any pending check requests to be // processed immediately and called with th result. @@ -95,4 +95,4 @@ class RobotsRulesDecider { } // namespace subresource_redirect -#endif // CHROME_RENDERER_SUBRESOURCE_REDIRECT_ROBOTS_RULES_DECIDER_H_ +#endif // CHROME_RENDERER_SUBRESOURCE_REDIRECT_ROBOTS_RULES_PARSER_H_ diff --git a/chrome/renderer/subresource_redirect/robots_rules_decider_unittest.cc b/chrome/renderer/subresource_redirect/robots_rules_parser_unittest.cc similarity index 55% rename from chrome/renderer/subresource_redirect/robots_rules_decider_unittest.cc rename to chrome/renderer/subresource_redirect/robots_rules_parser_unittest.cc index 1153cdd5aba06..5a5204cbc8e4d 100644 --- a/chrome/renderer/subresource_redirect/robots_rules_decider_unittest.cc +++ b/chrome/renderer/subresource_redirect/robots_rules_parser_unittest.cc @@ -9,7 +9,7 @@ #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "base/time/time.h" -#include "chrome/renderer/subresource_redirect/robots_rules_decider.h" +#include "chrome/renderer/subresource_redirect/robots_rules_parser.h" #include "components/data_reduction_proxy/proto/robots_rules.pb.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/features.h" @@ -33,20 +33,20 @@ struct Rule { class CheckResultReceiver { public: - void OnCheckRobotsRulesResult(RobotsRulesDecider::CheckResult check_result) { + void OnCheckRobotsRulesResult(RobotsRulesParser::CheckResult check_result) { EXPECT_FALSE(did_receive_result_); did_receive_result_ = true; check_result_ = check_result; } - RobotsRulesDecider::CheckResultCallback GetCallback() { + RobotsRulesParser::CheckResultCallback GetCallback() { return base::BindOnce(&CheckResultReceiver::OnCheckRobotsRulesResult, weak_ptr_factory_.GetWeakPtr()); } - RobotsRulesDecider::CheckResult check_result() const { return check_result_; } + RobotsRulesParser::CheckResult check_result() const { return check_result_; } bool did_receive_result() const { return did_receive_result_; } private: - RobotsRulesDecider::CheckResult check_result_; + RobotsRulesParser::CheckResult check_result_; bool did_receive_result_ = false; base::WeakPtrFactory<CheckResultReceiver> weak_ptr_factory_{this}; }; @@ -64,9 +64,9 @@ std::string GetRobotsRulesProtoString(const std::vector<Rule>& patterns) { return robots_rules.SerializeAsString(); } -class SubresourceRedirectRobotsRulesDeciderTest : public testing::Test { +class SubresourceRedirectRobotsRulesParserTest : public testing::Test { public: - SubresourceRedirectRobotsRulesDeciderTest() + SubresourceRedirectRobotsRulesParserTest() : task_environment_(base::test::TaskEnvironment::TimeSource::MOCK_TIME) {} void SetUp() override { scoped_feature_list_.InitWithFeaturesAndParameters( @@ -74,14 +74,13 @@ class SubresourceRedirectRobotsRulesDeciderTest : public testing::Test { } void SetUpRobotsRules(const std::vector<Rule>& patterns) { - robots_rules_decider_.UpdateRobotsRules( - GetRobotsRulesProtoString(patterns)); + robots_rules_parser_.UpdateRobotsRules(GetRobotsRulesProtoString(patterns)); } void CheckRobotsRules(const std::string& url_path_with_query, - RobotsRulesDecider::CheckResult expected_result) { + RobotsRulesParser::CheckResult expected_result) { CheckResultReceiver result_receiver; - robots_rules_decider_.CheckRobotsRules( + robots_rules_parser_.CheckRobotsRules( GURL(kTestOrigin + url_path_with_query), result_receiver.GetCallback()); EXPECT_TRUE(result_receiver.did_receive_result()); EXPECT_EQ(expected_result, result_receiver.check_result()); @@ -90,14 +89,14 @@ class SubresourceRedirectRobotsRulesDeciderTest : public testing::Test { std::unique_ptr<CheckResultReceiver> CheckRobotsRulesAsync( const std::string& url_path_with_query) { auto result_receiver = std::make_unique<CheckResultReceiver>(); - robots_rules_decider_.CheckRobotsRules( + robots_rules_parser_.CheckRobotsRules( GURL(kTestOrigin + url_path_with_query), result_receiver->GetCallback()); return result_receiver; } void VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult result) { + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult result) { histogram_tester().ExpectUniqueSample( "SubresourceRedirect.RobotRulesDecider.ReceiveResult", result, 1); } @@ -118,60 +117,56 @@ class SubresourceRedirectRobotsRulesDeciderTest : public testing::Test { base::test::ScopedFeatureList scoped_feature_list_; base::test::TaskEnvironment task_environment_; base::HistogramTester histogram_tester_; - RobotsRulesDecider robots_rules_decider_; + RobotsRulesParser robots_rules_parser_; }; -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, +TEST_F(SubresourceRedirectRobotsRulesParserTest, InvalidProtoParseErrorDisallowsAllPaths) { - robots_rules_decider_.UpdateRobotsRules("INVALID PROTO"); + robots_rules_parser_.UpdateRobotsRules("INVALID PROTO"); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult:: kParseError); histogram_tester().ExpectTotalCount( "SubresourceRedirect.RobotRulesDecider.Count", 0); // All url paths should be disallowed. - CheckRobotsRules("", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo/bar.jpg", - RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo/bar.jpg", RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(0); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, EmptyRulesAllowsAllPaths) { +TEST_F(SubresourceRedirectRobotsRulesParserTest, EmptyRulesAllowsAllPaths) { SetUpRobotsRules({}); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kSuccess); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kSuccess); VerifyReceivedRobotsRulesCountHistogram(0); // All url paths should be allowed. - CheckRobotsRules("", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/foo/bar.jpg", RobotsRulesDecider::CheckResult::kAllowed); + CheckRobotsRules("", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/foo/bar.jpg", RobotsRulesParser::CheckResult::kAllowed); VerifyTotalRobotsRulesApplyHistograms(4); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, +TEST_F(SubresourceRedirectRobotsRulesParserTest, RulesReceiveTimeoutDisallowsAllPaths) { // Let the rule fetch timeout. task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10)); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kTimeout); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kTimeout); // All url paths should be disallowed. - CheckRobotsRules("", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo/bar.jpg", - RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo/bar.jpg", RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(0); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, +TEST_F(SubresourceRedirectRobotsRulesParserTest, CheckResultCallbackAfterRulesReceived) { auto receiver1 = CheckRobotsRulesAsync("/foo.jpg"); auto receiver2 = CheckRobotsRulesAsync("/bar"); @@ -182,55 +177,54 @@ TEST_F(SubresourceRedirectRobotsRulesDeciderTest, // Once the rules are received the callback should get called with the result. SetUpRobotsRules({{kRuleTypeAllow, "/foo"}, {kRuleTypeDisallow, "/"}}); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kSuccess); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kSuccess); VerifyReceivedRobotsRulesCountHistogram(2); EXPECT_TRUE(receiver1->did_receive_result()); EXPECT_TRUE(receiver2->did_receive_result()); - EXPECT_EQ(RobotsRulesDecider::CheckResult::kAllowed, + EXPECT_EQ(RobotsRulesParser::CheckResult::kAllowed, receiver1->check_result()); - EXPECT_EQ(RobotsRulesDecider::CheckResult::kDisallowed, + EXPECT_EQ(RobotsRulesParser::CheckResult::kDisallowed, receiver2->check_result()); VerifyTotalRobotsRulesApplyHistograms(2); - CheckRobotsRules("/foo.png", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/bar", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/baz", RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("/foo.png", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/bar", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/baz", RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(5); } // Verify if the callback is called before the decider gets destroyed. -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, +TEST_F(SubresourceRedirectRobotsRulesParserTest, VerifyCallbackCalledBeforeDeciderDestroy) { - auto robots_rules_decider = std::make_unique<RobotsRulesDecider>(); + auto robots_rules_parser = std::make_unique<RobotsRulesParser>(); auto receiver1 = std::make_unique<CheckResultReceiver>(); auto receiver2 = std::make_unique<CheckResultReceiver>(); - robots_rules_decider->CheckRobotsRules(GURL("https://test.com/foo.jpg"), - receiver1->GetCallback()); - robots_rules_decider->CheckRobotsRules(GURL("https://test.com/bar"), - receiver2->GetCallback()); + robots_rules_parser->CheckRobotsRules(GURL("https://test.com/foo.jpg"), + receiver1->GetCallback()); + robots_rules_parser->CheckRobotsRules(GURL("https://test.com/bar"), + receiver2->GetCallback()); EXPECT_FALSE(receiver1->did_receive_result()); EXPECT_FALSE(receiver2->did_receive_result()); VerifyTotalRobotsRulesApplyHistograms(0); - robots_rules_decider->UpdateRobotsRules(GetRobotsRulesProtoString( + robots_rules_parser->UpdateRobotsRules(GetRobotsRulesProtoString( {{kRuleTypeAllow, "/foo"}, {kRuleTypeDisallow, "/"}})); // Destroying the decider should trigger the callbacks. - robots_rules_decider.reset(); + robots_rules_parser.reset(); EXPECT_TRUE(receiver1->did_receive_result()); EXPECT_TRUE(receiver2->did_receive_result()); - EXPECT_EQ(RobotsRulesDecider::CheckResult::kAllowed, + EXPECT_EQ(RobotsRulesParser::CheckResult::kAllowed, receiver1->check_result()); - EXPECT_EQ(RobotsRulesDecider::CheckResult::kDisallowed, + EXPECT_EQ(RobotsRulesParser::CheckResult::kDisallowed, receiver2->check_result()); VerifyTotalRobotsRulesApplyHistograms(2); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, +TEST_F(SubresourceRedirectRobotsRulesParserTest, CheckResultCallbackAfterRulesReceiveTimeout) { auto receiver1 = CheckRobotsRulesAsync("/foo.jpg"); auto receiver2 = CheckRobotsRulesAsync("/bar"); @@ -242,104 +236,98 @@ TEST_F(SubresourceRedirectRobotsRulesDeciderTest, // result. task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10)); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kTimeout); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kTimeout); EXPECT_TRUE(receiver1->did_receive_result()); EXPECT_TRUE(receiver2->did_receive_result()); - EXPECT_EQ(RobotsRulesDecider::CheckResult::kTimedout, + EXPECT_EQ(RobotsRulesParser::CheckResult::kTimedout, receiver1->check_result()); - EXPECT_EQ(RobotsRulesDecider::CheckResult::kTimedout, + EXPECT_EQ(RobotsRulesParser::CheckResult::kTimedout, receiver2->check_result()); VerifyTotalRobotsRulesApplyHistograms(0); SetUpRobotsRules({{kRuleTypeAllow, "/foo"}, {kRuleTypeDisallow, "/"}}); - CheckRobotsRules("/foo.png", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/bar", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/baz", RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("/foo.png", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/bar", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/baz", RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(3); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, FullAllowRule) { +TEST_F(SubresourceRedirectRobotsRulesParserTest, FullAllowRule) { SetUpRobotsRules({{kRuleTypeAllow, "*"}}); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kSuccess); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kSuccess); VerifyReceivedRobotsRulesCountHistogram(1); // All url paths should be allowed. - CheckRobotsRules("", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/foo/bar.jpg", RobotsRulesDecider::CheckResult::kAllowed); + CheckRobotsRules("", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/foo/bar.jpg", RobotsRulesParser::CheckResult::kAllowed); VerifyTotalRobotsRulesApplyHistograms(4); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, FullDisallowRule) { +TEST_F(SubresourceRedirectRobotsRulesParserTest, FullDisallowRule) { SetUpRobotsRules({{kRuleTypeDisallow, "*"}}); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kSuccess); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kSuccess); VerifyReceivedRobotsRulesCountHistogram(1); // All url paths should be disallowed. - CheckRobotsRules("", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo/bar.jpg", - RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo/bar.jpg", RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(4); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, TwoAllowRules) { +TEST_F(SubresourceRedirectRobotsRulesParserTest, TwoAllowRules) { SetUpRobotsRules({{kRuleTypeAllow, "/foo"}, {kRuleTypeAllow, "/bar$"}, {kRuleTypeDisallow, "*"}}); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kSuccess); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kSuccess); VerifyReceivedRobotsRulesCountHistogram(3); - CheckRobotsRules("", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/foo/baz.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/bar", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/bar.jpg", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/baz", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("foo", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("bar", RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/foo/baz.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/bar", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/bar.jpg", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/baz", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("foo", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("bar", RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(9); } // When the URL path matches multiple allow and disallow rules, whichever rule // that comes first in the list should take precedence. -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, +TEST_F(SubresourceRedirectRobotsRulesParserTest, FirstAllowRuleMatchOverridesLaterDisallowRule) { SetUpRobotsRules({{kRuleTypeAllow, "/foo"}, {kRuleTypeDisallow, "/foo"}}); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kSuccess); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kSuccess); VerifyReceivedRobotsRulesCountHistogram(2); - CheckRobotsRules("/foo", RobotsRulesDecider::CheckResult::kAllowed); + CheckRobotsRules("/foo", RobotsRulesParser::CheckResult::kAllowed); SetUpRobotsRules({{kRuleTypeDisallow, "/foo"}, {kRuleTypeAllow, "/foo"}}); - CheckRobotsRules("/foo", RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("/foo", RobotsRulesParser::CheckResult::kDisallowed); SetUpRobotsRules({{kRuleTypeAllow, "/foo.jpg"}, {kRuleTypeDisallow, "/foo"}}); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/foo", RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/foo", RobotsRulesParser::CheckResult::kDisallowed); SetUpRobotsRules({{kRuleTypeDisallow, "/foo.jpg"}, {kRuleTypeAllow, "/foo"}}); - CheckRobotsRules("/foo.jpg", RobotsRulesDecider::CheckResult::kDisallowed); - CheckRobotsRules("/foo", RobotsRulesDecider::CheckResult::kAllowed); + CheckRobotsRules("/foo.jpg", RobotsRulesParser::CheckResult::kDisallowed); + CheckRobotsRules("/foo", RobotsRulesParser::CheckResult::kAllowed); VerifyTotalRobotsRulesApplyHistograms(6); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, TestURLWithArguments) { +TEST_F(SubresourceRedirectRobotsRulesParserTest, TestURLWithArguments) { SetUpRobotsRules({{kRuleTypeAllow, "/*.jpg$"}, {kRuleTypeDisallow, "/*.png?*arg_disallowed"}, {kRuleTypeAllow, "/*.png"}, @@ -347,46 +335,43 @@ TEST_F(SubresourceRedirectRobotsRulesDeciderTest, TestURLWithArguments) { {kRuleTypeAllow, "/*.gif"}, {kRuleTypeDisallow, "/"}}); VerifyRobotsRulesReceiveResultHistogram( - RobotsRulesDecider::SubresourceRedirectRobotsRulesReceiveResult:: - kSuccess); + RobotsRulesParser::SubresourceRedirectRobotsRulesReceiveResult::kSuccess); VerifyReceivedRobotsRulesCountHistogram(6); - CheckRobotsRules("/allowed.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/allowed.png", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/allowed.gif", RobotsRulesDecider::CheckResult::kAllowed); + CheckRobotsRules("/allowed.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/allowed.png", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/allowed.gif", RobotsRulesParser::CheckResult::kAllowed); CheckRobotsRules("/disallowed.jpg?arg", - RobotsRulesDecider::CheckResult::kDisallowed); + RobotsRulesParser::CheckResult::kDisallowed); CheckRobotsRules("/allowed.png?arg", - RobotsRulesDecider::CheckResult::kAllowed); + RobotsRulesParser::CheckResult::kAllowed); CheckRobotsRules("/allowed.png?arg_allowed", - RobotsRulesDecider::CheckResult::kAllowed); + RobotsRulesParser::CheckResult::kAllowed); CheckRobotsRules("/allowed.png?arg_allowed&arg_allowed2", - RobotsRulesDecider::CheckResult::kAllowed); + RobotsRulesParser::CheckResult::kAllowed); CheckRobotsRules("/allowed.png?arg_disallowed", - RobotsRulesDecider::CheckResult::kDisallowed); + RobotsRulesParser::CheckResult::kDisallowed); CheckRobotsRules("/allowed.png?arg_disallowed&arg_disallowed2", - RobotsRulesDecider::CheckResult::kDisallowed); + RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(9); } -TEST_F(SubresourceRedirectRobotsRulesDeciderTest, TestRulesAreCaseSensitive) { +TEST_F(SubresourceRedirectRobotsRulesParserTest, TestRulesAreCaseSensitive) { SetUpRobotsRules({{kRuleTypeAllow, "/allowed"}, {kRuleTypeAllow, "/CamelCase"}, {kRuleTypeAllow, "/CAPITALIZE"}, {kRuleTypeDisallow, "/"}}); VerifyReceivedRobotsRulesCountHistogram(4); - CheckRobotsRules("/allowed.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/CamelCase.jpg", RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/CAPITALIZE.jpg", - RobotsRulesDecider::CheckResult::kAllowed); - CheckRobotsRules("/Allowed.jpg", - RobotsRulesDecider::CheckResult::kDisallowed); + CheckRobotsRules("/allowed.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/CamelCase.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/CAPITALIZE.jpg", RobotsRulesParser::CheckResult::kAllowed); + CheckRobotsRules("/Allowed.jpg", RobotsRulesParser::CheckResult::kDisallowed); CheckRobotsRules("/camelcase.jpg", - RobotsRulesDecider::CheckResult::kDisallowed); + RobotsRulesParser::CheckResult::kDisallowed); CheckRobotsRules("/capitalize.jpg", - RobotsRulesDecider::CheckResult::kDisallowed); + RobotsRulesParser::CheckResult::kDisallowed); VerifyTotalRobotsRulesApplyHistograms(6); } diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 78ed54386171f..1a0ca458bed5b 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn @@ -3816,7 +3816,7 @@ test("unit_tests") { "../renderer/media/flash_embed_rewrite_unittest.cc", "../renderer/net/net_error_helper_core_unittest.cc", "../renderer/plugins/plugin_uma_unittest.cc", - "../renderer/subresource_redirect/robots_rules_decider_unittest.cc", + "../renderer/subresource_redirect/robots_rules_parser_unittest.cc", "../renderer/subresource_redirect/subresource_redirect_util_unittest.cc", "../renderer/v8_unwinder_unittest.cc", "../test/base/chrome_render_view_test.cc",