| Index: third_party/WebKit/Source/core/css/ActiveStyleSheetsTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/ActiveStyleSheetsTest.cpp b/third_party/WebKit/Source/core/css/ActiveStyleSheetsTest.cpp
|
| index 2bd50f808ca48327badfb29223c54a495427d841..9bd366506938c98ac67e6bc41efc1fc25de0f4f5 100644
|
| --- a/third_party/WebKit/Source/core/css/ActiveStyleSheetsTest.cpp
|
| +++ b/third_party/WebKit/Source/core/css/ActiveStyleSheetsTest.cpp
|
| @@ -7,7 +7,9 @@
|
| #include "core/css/CSSStyleSheet.h"
|
| #include "core/css/MediaQueryEvaluator.h"
|
| #include "core/css/StyleSheetContents.h"
|
| +#include "core/css/StyleSheetList.h"
|
| #include "core/css/parser/CSSParserMode.h"
|
| +#include "core/dom/StyleEngine.h"
|
| #include "core/dom/shadow/ShadowRoot.h"
|
| #include "core/dom/shadow/ShadowRootInit.h"
|
| #include "core/frame/FrameView.h"
|
| @@ -403,4 +405,31 @@ TEST_F(ApplyRulesetsTest, AddFontFaceRuleToShadowTree) {
|
| EXPECT_FALSE(document().needsLayoutTreeUpdate());
|
| }
|
|
|
| +TEST_F(ApplyRulesetsTest, RemoveSheetFromShadowTree) {
|
| + document().body()->setInnerHTML("<div id=host></div>", ASSERT_NO_EXCEPTION);
|
| + Element* host = document().getElementById("host");
|
| + ASSERT_TRUE(host);
|
| +
|
| + ShadowRoot& shadowRoot = attachShadow(*host);
|
| + shadowRoot.setInnerHTML("<style>::slotted(#dummy){color:pink}</style>",
|
| + ASSERT_NO_EXCEPTION);
|
| + document().view()->updateAllLifecyclePhases();
|
| +
|
| + EXPECT_EQ(1u, styleEngine().treeBoundaryCrossingScopes().size());
|
| + ASSERT_EQ(1u, shadowRoot.styleSheets().length());
|
| +
|
| + StyleSheet* sheet = shadowRoot.styleSheets().item(0);
|
| + ASSERT_TRUE(sheet);
|
| + ASSERT_TRUE(sheet->isCSSStyleSheet());
|
| +
|
| + CSSStyleSheet* cssSheet = toCSSStyleSheet(sheet);
|
| + ActiveStyleSheetVector oldStyleSheets;
|
| + oldStyleSheets.append(
|
| + std::make_pair(cssSheet, &cssSheet->contents()->ruleSet()));
|
| + applyRuleSetChanges(styleEngine(), shadowRoot, oldStyleSheets,
|
| + ActiveStyleSheetVector());
|
| +
|
| + EXPECT_TRUE(styleEngine().treeBoundaryCrossingScopes().isEmpty());
|
| +}
|
| +
|
| } // namespace blink
|
|
|