Index: Source/core/dom/Element.cpp |
diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp |
index 290f998146c07346171f9e3a57a6e38c9eda8ce4..35d1ec67935b893be57c6b966e3e3bde8ae2842f 100644 |
--- a/Source/core/dom/Element.cpp |
+++ b/Source/core/dom/Element.cpp |
@@ -1697,6 +1697,21 @@ PassRefPtrWillBeRawPtr<ShadowRoot> Element::createShadowRoot(ExceptionState& exc |
return PassRefPtrWillBeRawPtr<ShadowRoot>(ensureShadow().addShadowRoot(*this, ShadowRoot::AuthorShadowRoot)); |
} |
+PassRefPtrWillBeRawPtr<ShadowRoot> Element::createUserAgentShadowRoot(ExceptionState& exceptionState) |
haraken
2014/08/11 11:09:33
As discussed offline, we won't need this.
|
+{ |
+ ensureUserAgentShadowRoot(); |
+ |
+ // Some elements make assumptions about what kind of renderers they allow |
+ // as children so we can't allow author shadows on them for now. An override |
+ // flag is provided for testing how author shadows interact on these elements. |
+ if (!areAuthorShadowsAllowed() && !RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled()) { |
+ exceptionState.throwDOMException(HierarchyRequestError, "Author-created shadow roots are disabled for this element."); |
+ return nullptr; |
+ } |
+ |
+ return PassRefPtrWillBeRawPtr<ShadowRoot>(ensureShadow().addShadowRoot(*this, ShadowRoot::AuthorShadowRoot)); |
+} |
+ |
ShadowRoot* Element::shadowRoot() const |
{ |
ElementShadow* elementShadow = shadow(); |