| Index: third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp | 
| diff --git a/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp b/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp | 
| index eda8efffeade6539327ad6e8cc91563fdbd92e02..539c1302aaa5d843a0c8fdcf7a04c7198c11d322 100644 | 
| --- a/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp | 
| +++ b/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp | 
| @@ -203,10 +203,52 @@ TEST(CSSSelectorParserTest, InvalidSimpleAfterPseudoElementInCompound) | 
| TEST(CSSSelectorParserTest, WorkaroundForInvalidCustomPseudoInUAStyle) | 
| { | 
| // See crbug.com/578131 | 
| -    CSSTokenizer::Scope scope("video::-webkit-media-text-track-region-container.scrolling"); | 
| -    CSSParserTokenRange range = scope.tokenRange(); | 
| -    CSSSelectorList list = CSSSelectorParser::parseSelector(range, CSSParserContext(UASheetMode, nullptr), nullptr); | 
| -    EXPECT_TRUE(list.isValid()); | 
| +    const char* testCases[] = { | 
| +        "video::-webkit-media-text-track-region-container.scrolling", | 
| +        "input[type=\"range\" i]::-webkit-media-slider-container > div" | 
| +    }; | 
| + | 
| +    for (auto testCase : testCases) { | 
| +        CSSTokenizer::Scope scope(testCase); | 
| +        CSSParserTokenRange range = scope.tokenRange(); | 
| +        CSSSelectorList list = CSSSelectorParser::parseSelector(range, CSSParserContext(UASheetMode, nullptr), nullptr); | 
| +        EXPECT_TRUE(list.isValid()); | 
| +    } | 
| +} | 
| + | 
| +TEST(CSSSelectorParserTest, ValidPseudoElementInNonRightmostCompound) | 
| +{ | 
| +    const char* testCases[] = { | 
| +        "::content *", | 
| +        "::shadow *", | 
| +        "::content div::before", | 
| +        "::shadow ::first-letter" | 
| +    }; | 
| + | 
| +    for (auto testCase : testCases) { | 
| +        CSSTokenizer::Scope scope(testCase); | 
| +        CSSParserTokenRange range = scope.tokenRange(); | 
| +        CSSSelectorList list = CSSSelectorParser::parseSelector(range, CSSParserContext(HTMLStandardMode, nullptr), nullptr); | 
| +        EXPECT_TRUE(list.isValid()); | 
| +    } | 
| +} | 
| + | 
| +TEST(CSSSelectorParserTest, InvalidPseudoElementInNonRightmostCompound) | 
| +{ | 
| +    const char* testCases[] = { | 
| +        "::-webkit-volume-slider *", | 
| +        "::before *", | 
| +        "::-webkit-scrollbar *", | 
| +        "::cue *", | 
| +        "::selection *" | 
| +    }; | 
| + | 
| +    for (auto testCase : testCases) { | 
| +        CSSTokenizer::Scope scope(testCase); | 
| +        CSSParserTokenRange range = scope.tokenRange(); | 
| +        CSSSelectorList list = CSSSelectorParser::parseSelector(range, CSSParserContext(HTMLStandardMode, nullptr), nullptr); | 
| +        EXPECT_FALSE(list.isValid()); | 
| +    } | 
| } | 
|  | 
| } // namespace | 
|  |