| Index: Source/core/css/SelectorChecker.cpp
|
| diff --git a/Source/core/css/SelectorChecker.cpp b/Source/core/css/SelectorChecker.cpp
|
| index 026f4f9f9a40b923e146a551342791cecf866859..3dff0a3c6d52688f3f4a8310b1ce0c1dbf2cc49a 100644
|
| --- a/Source/core/css/SelectorChecker.cpp
|
| +++ b/Source/core/css/SelectorChecker.cpp
|
| @@ -960,9 +960,9 @@
|
| case CSSSelector::PseudoScope:
|
| if (m_mode == SharingRules)
|
| return true;
|
| - if (context.scope == element.document())
|
| - return element == element.document().documentElement();
|
| - return context.scope == element;
|
| + if (context.scope)
|
| + return context.scope == element;
|
| + return element == element.document().documentElement();
|
| case CSSSelector::PseudoUnresolved:
|
| return element.isUnresolvedCustomElement();
|
| case CSSSelector::PseudoHost:
|
| @@ -1050,6 +1050,8 @@
|
| if (m_mode == SharingRules)
|
| return true;
|
| // :host only matches a shadow host when :host is in a shadow tree of the shadow host.
|
| + if (!context.scope)
|
| + return false;
|
| const ContainerNode* shadowHost = context.scope->shadowHost();
|
| if (!shadowHost || shadowHost != element)
|
| return false;
|
|
|