| Index: third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/SelectorChecker.cpp b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| index 86a68368667e7ce6e0f9daff6d0c8b93e0a910f4..049b269a99f5e363fadc20a39271793451ab11b5 100644
|
| --- a/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| +++ b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| @@ -260,6 +260,17 @@ SelectorChecker::MatchStatus SelectorChecker::MatchForSubSelector(
|
| dynamic_pseudo != kPseudoIdNone &&
|
| (scrollbar_ || dynamic_pseudo == kPseudoIdScrollbarCorner ||
|
| dynamic_pseudo == kPseudoIdResizer);
|
| +
|
| + // Only match pseudo classes following scrollbar pseudo elements while
|
| + // actually computing style for scrollbar pseudo elements. This is to
|
| + // avoid incorrectly setting affected-by flags on actual elements for
|
| + // cases like: div::-webkit-scrollbar-thumb:hover { }
|
| + if (context.in_rightmost_compound && dynamic_pseudo != kPseudoIdNone &&
|
| + dynamic_pseudo != kPseudoIdSelection &&
|
| + !next_context.has_scrollbar_pseudo) {
|
| + return kSelectorFailsCompletely;
|
| + }
|
| +
|
| next_context.has_selection_pseudo = dynamic_pseudo == kPseudoIdSelection;
|
| next_context.is_sub_selector = true;
|
| return MatchSelector(next_context, result);
|
|
|