Commit d3db171f authored by Pauline Anthonysamy's avatar Pauline Anthonysamy Committed by Commit Bot

Add invalid pattern exception when there is a dot between ] and hostname.

Add equivalent component test.

Bug: 823706
Change-Id: I4f4b549bde567ea70e25afae86704b45820b9acb
Reviewed-on: https://chromium-review.googlesource.com/c/1475189Reviewed-by: default avatarMartin Šrámek <msramek@chromium.org>
Reviewed-by: default avatarKamila Hasanbega <hkamila@google.com>
Reviewed-by: default avatarBalazs Engedy <engedy@chromium.org>
Commit-Queue: Pauline Anthonysamy <anthonysp@google.com>
Cr-Commit-Position: refs/heads/master@{#634763}
parent 263c7193
......@@ -20,6 +20,10 @@ const char kPortWildcard[] = "*";
const char kSchemeWildcard[] = "*";
const char kUrlPathSeparator[] = "/";
const char kUrlPortSeparator[] = ":";
// A domain wildcard pattern involves exactly one separating dot,
// inside the square brackets. This is a common misunderstanding of that
// pattern that we want to check for. See: https://crbug.com/823706.
const char kDomainWildcardWithSuperfluousDot[] = "[*.].";
} // namespace
......@@ -130,6 +134,12 @@ void PatternParser::Parse(base::StringPiece pattern_spec,
return;
}
if (base::StartsWith(host_piece, kDomainWildcardWithSuperfluousDot,
base::CompareCase::SENSITIVE)) {
builder->Invalid();
return;
}
host_piece.remove_prefix(kDomainWildcardLength);
builder->WithDomainWildcard();
builder->WithHost(host_piece.as_string());
......
......@@ -150,6 +150,16 @@ TEST(ContentSettingsPatternParserTest, ParsePatterns) {
::testing::Return(&builder));
content_settings::PatternParser::Parse("www.youtube.com*", &builder);
::testing::Mock::VerifyAndClear(&builder);
// Test for kDomainWildcardWithSuperfluousDot
EXPECT_CALL(builder, WithSchemeWildcard())
.Times(1)
.WillOnce(::testing::Return(&builder));
EXPECT_CALL(builder, Invalid())
.Times(1)
.WillOnce(::testing::Return(&builder));
content_settings::PatternParser::Parse("[*.].youtube.com", &builder);
::testing::Mock::VerifyAndClear(&builder);
}
TEST(ContentSettingsPatternParserTest, ParseFilePatterns) {
......
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