Title: [141175] trunk/Source
Revision
141175
Author
espr...@chromium.org
Date
2013-01-29 16:02:15 -0800 (Tue, 29 Jan 2013)

Log Message

Refactor ShadowRoot exception handling
https://bugs.webkit.org/show_bug.cgi?id=108209

Reviewed by Dimitri Glazkov.

Source/WebCore:

Many of the exception cases for ShadowRoot are actually impossible and
should be asserts instead. We can also move the one case of exception logic,
for elements that don't allow author shadows into Element::createShadowRoot
instead of having it all over the ShadowRoot and ElementShadow classes. This
is the first step in centralizing all ShadowRoot creation inside ElementShadow.

No new tests, covered by existing tests.

* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::createShadowRoot): Be explicit about what kind of ShadowRoot you're creating.
(WebCore::Element::ensureUserAgentShadowRoot): No more exceptions.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot): This never actually throws exceptions, remove ExceptionCode.
* dom/ElementShadow.h:
(ElementShadow):
* dom/ShadowRoot.cpp:
(WebCore::determineUsageType): Merge with Element::createShadowRoot.
(WebCore):
(WebCore::ShadowRoot::ShadowRoot): Moved Histogram logic here since it's actually about the constructor anyway.
(WebCore::ShadowRoot::create): Removed overload that made the code less obvious.
* dom/ShadowRoot.h:
(ShadowRoot):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement):
* html/shadow/TextFieldDecorationElement.cpp:
(WebCore::getDecorationRootAndDecoratedRoot):
* testing/Internals.cpp:
(WebCore::Internals::ensureShadowRoot):
(WebCore::Internals::createShadowRoot):

Source/WebKit/win:

* WebKit.vcproj/WebKitExports.def.in: Swap ShadowRoot::create export with Element::createShadowRoot.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (141174 => 141175)


--- trunk/Source/WebCore/ChangeLog	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/ChangeLog	2013-01-30 00:02:15 UTC (rev 141175)
@@ -1,3 +1,40 @@
+2013-01-29  Elliott Sprehn  <espr...@chromium.org>
+        Refactor ShadowRoot exception handling
+        https://bugs.webkit.org/show_bug.cgi?id=108209
+
+        Reviewed by Dimitri Glazkov.
+
+        Many of the exception cases for ShadowRoot are actually impossible and
+        should be asserts instead. We can also move the one case of exception logic,
+        for elements that don't allow author shadows into Element::createShadowRoot
+        instead of having it all over the ShadowRoot and ElementShadow classes. This
+        is the first step in centralizing all ShadowRoot creation inside ElementShadow.
+
+        No new tests, covered by existing tests.
+
+        * WebCore.exp.in:
+        * dom/Element.cpp:
+        (WebCore::Element::createShadowRoot): Be explicit about what kind of ShadowRoot you're creating.
+        (WebCore::Element::ensureUserAgentShadowRoot): No more exceptions.
+        * dom/ElementShadow.cpp:
+        (WebCore::ElementShadow::addShadowRoot): This never actually throws exceptions, remove ExceptionCode.
+        * dom/ElementShadow.h:
+        (ElementShadow):
+        * dom/ShadowRoot.cpp:
+        (WebCore::determineUsageType): Merge with Element::createShadowRoot.
+        (WebCore):
+        (WebCore::ShadowRoot::ShadowRoot): Moved Histogram logic here since it's actually about the constructor anyway.
+        (WebCore::ShadowRoot::create): Removed overload that made the code less obvious.
+        * dom/ShadowRoot.h:
+        (ShadowRoot):
+        * html/HTMLKeygenElement.cpp:
+        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
+        * html/shadow/TextFieldDecorationElement.cpp:
+        (WebCore::getDecorationRootAndDecoratedRoot):
+        * testing/Internals.cpp:
+        (WebCore::Internals::ensureShadowRoot):
+        (WebCore::Internals::createShadowRoot):
+
 2013-01-29  Mark Lam  <mark....@apple.com>
 
         Change DatabaseContext lookup to be thread-safe.

Modified: trunk/Source/WebCore/WebCore.exp.in (141174 => 141175)


--- trunk/Source/WebCore/WebCore.exp.in	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/WebCore.exp.in	2013-01-30 00:02:15 UTC (rev 141175)
@@ -83,7 +83,6 @@
 __ZN7WebCore10ScrollView24windowResizerRectChangedEv
 __ZN7WebCore10ScrollView8addChildEN3WTF10PassRefPtrINS_6WidgetEEE
 __ZNK7WebCore14ScrollableArea17reportMemoryUsageEPN3WTF16MemoryObjectInfoE
-__ZN7WebCore10ShadowRoot6createEPNS_7ElementERi
 __ZN7WebCore10deleteFileERKN3WTF6StringE
 __ZN7WebCore10setCookiesEPNS_8DocumentERKNS_4KURLERKN3WTF6StringE
 __ZN7WebCore10toDocumentEN3JSC7JSValueE
@@ -898,6 +897,7 @@
 __ZN7WebCore7Element9innerTextEv
 __ZN7WebCore7Element9setPseudoERKN3WTF12AtomicStringE
 __ZNK7WebCore7Element13pseudoElementENS_8PseudoIdE
+__ZN7WebCore7Element16createShadowRootERi
 __ZN7WebCore7IntRect5scaleEf
 __ZN7WebCore7IntRect5uniteERKS0_
 __ZN7WebCore7IntRect9intersectERKS0_

Modified: trunk/Source/WebCore/dom/Element.cpp (141174 => 141175)


--- trunk/Source/WebCore/dom/Element.cpp	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/dom/Element.cpp	2013-01-30 00:02:15 UTC (rev 141175)
@@ -1450,7 +1450,19 @@
 
 PassRefPtr<ShadowRoot> Element::createShadowRoot(ExceptionCode& ec)
 {
-    return ShadowRoot::create(this, ec);
+#if ENABLE(SHADOW_DOM)
+    if (RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled())
+        return ShadowRoot::create(this, ShadowRoot::AuthorShadowRoot);
+#endif
+
+    // Since some elements recreates shadow root dynamically, multiple shadow
+    // subtrees won't work well in that element. Until they are fixed, we disable
+    // adding author shadow root for them.
+    if (!areAuthorShadowsAllowed()) {
+        ec = HIERARCHY_REQUEST_ERR;
+        return 0;
+    }
+    return ShadowRoot::create(this, ShadowRoot::AuthorShadowRoot);
 }
 
 ShadowRoot* Element::shadowRoot() const
@@ -1480,7 +1492,7 @@
 {
     if (ShadowRoot* shadowRoot = userAgentShadowRoot())
         return shadowRoot;
-    ShadowRoot* shadowRoot = ShadowRoot::create(this, ShadowRoot::UserAgentShadowRoot, ASSERT_NO_EXCEPTION).get();
+    ShadowRoot* shadowRoot = ShadowRoot::create(this, ShadowRoot::UserAgentShadowRoot).get();
     didAddUserAgentShadowRoot(shadowRoot);
     return shadowRoot;
 }

Modified: trunk/Source/WebCore/dom/ElementShadow.cpp (141174 => 141175)


--- trunk/Source/WebCore/dom/ElementShadow.cpp	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/dom/ElementShadow.cpp	2013-01-30 00:02:15 UTC (rev 141175)
@@ -32,32 +32,13 @@
 
 namespace WebCore {
 
-static bool validateShadowRoot(Document* document, ShadowRoot* shadowRoot, ExceptionCode& ec)
+void ElementShadow::addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot> shadowRoot, ShadowRoot::ShadowRootType type)
 {
-    if (!shadowRoot)
-        return true;
-
-    if (shadowRoot->host()) {
-        ec = HIERARCHY_REQUEST_ERR;
-        return false;
-    }
-
-    if (shadowRoot->document() != document) {
-        ec = WRONG_DOCUMENT_ERR;
-        return false;
-    }
-
-    return true;
-}
-
-void ElementShadow::addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot> shadowRoot, ShadowRoot::ShadowRootType type, ExceptionCode& ec)
-{
     ASSERT(shadowHost);
     ASSERT(shadowRoot);
+    ASSERT(!shadowRoot->host());
+    ASSERT(shadowHost->document() == shadowRoot->document());
 
-    if (!validateShadowRoot(shadowHost->document(), shadowRoot.get(), ec))
-        return;
-
     if (type == ShadowRoot::AuthorShadowRoot)
         shadowHost->willAddAuthorShadowRoot();
 

Modified: trunk/Source/WebCore/dom/ElementShadow.h (141174 => 141175)


--- trunk/Source/WebCore/dom/ElementShadow.h	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/dom/ElementShadow.h	2013-01-30 00:02:15 UTC (rev 141175)
@@ -56,7 +56,7 @@
     ShadowRoot* oldestShadowRoot() const { return m_shadowRoots.tail(); }
     ElementShadow* containingShadow() const;
 
-    void addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot>, ShadowRoot::ShadowRootType, ExceptionCode&);
+    void addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot>, ShadowRoot::ShadowRootType);
 
     void attach();
     void detach();

Modified: trunk/Source/WebCore/dom/ShadowRoot.cpp (141174 => 141175)


--- trunk/Source/WebCore/dom/ShadowRoot.cpp	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/dom/ShadowRoot.cpp	2013-01-30 00:02:15 UTC (rev 141175)
@@ -63,6 +63,23 @@
 
 COMPILE_ASSERT(sizeof(ShadowRoot) == sizeof(SameSizeAsShadowRoot), shadowroot_should_stay_small);
 
+enum ShadowRootUsageOriginType {
+    ShadowRootUsageOriginWeb = 0,
+    ShadowRootUsageOriginNotWeb,
+    ShadowRootUsageOriginTypes
+};
+
+static inline ShadowRootUsageOriginType determineUsageType(Document* document)
+{
+    // Enables only on CHROMIUM since this cost won't worth paying for platforms which don't collect this metrics.
+#if PLATFORM(CHROMIUM)
+    return document->url().string().startsWith("http") ? ShadowRootUsageOriginWeb : ShadowRootUsageOriginNotWeb;
+#else
+    UNUSED_PARAM(document);
+    return ShadowRootUsageOriginWeb;
+#endif
+}
+
 ShadowRoot::ShadowRoot(Document* document, ShadowRootType type)
     : DocumentFragment(document, CreateShadowRoot)
     , TreeScope(this, document)
@@ -76,6 +93,9 @@
 {
     ASSERT(document);
     setTreeScope(this);
+
+    if (type == ShadowRoot::AuthorShadowRoot)
+        HistogramSupport::histogramEnumeration("WebCore.ShadowRoot.constructor", determineUsageType(document), ShadowRootUsageOriginTypes);
 }
 
 ShadowRoot::~ShadowRoot()
@@ -94,62 +114,16 @@
         clearRareData();
 }
 
-static bool allowsAuthorShadowRoot(Element* element)
+PassRefPtr<ShadowRoot> ShadowRoot::create(Element* element, ShadowRootType type)
 {
-#if ENABLE(SHADOW_DOM)
-    if (RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled())
-        return true;
-#endif
-    return element->areAuthorShadowsAllowed();
-}
+    ASSERT(element);
 
-enum ShadowRootUsageOriginType {
-    ShadowRootUsageOriginWeb = 0,
-    ShadowRootUsageOriginNotWeb,
-    ShadowRootUsageOriginTypes
-};
-
-static inline ShadowRootUsageOriginType determineUsageType(Element* host)
-{
-    // Enables only on CHROMIUM since this cost won't worth paying for platforms which don't collect this metrics.
-#if PLATFORM(CHROMIUM)
-    if (!host)
-        return ShadowRootUsageOriginWeb;
-    return host->document()->url().string().startsWith("http") ? ShadowRootUsageOriginWeb : ShadowRootUsageOriginNotWeb;
-#else
-    UNUSED_PARAM(host);
-    return ShadowRootUsageOriginWeb;
-#endif
-}
-
-PassRefPtr<ShadowRoot> ShadowRoot::create(Element* element, ExceptionCode& ec)
-{
-    HistogramSupport::histogramEnumeration("WebCore.ShadowRoot.constructor", determineUsageType(element), ShadowRootUsageOriginTypes);
-    return create(element, AuthorShadowRoot, ec);
-}
-
-PassRefPtr<ShadowRoot> ShadowRoot::create(Element* element, ShadowRootType type, ExceptionCode& ec)
-{
-    if (!element) {
-        ec = HIERARCHY_REQUEST_ERR;
-        return 0;
-    }
-
-    // Since some elements recreates shadow root dynamically, multiple shadow subtrees won't work well in that element.
-    // Until they are fixed, we disable adding author shadow root for them.
-    if (type == AuthorShadowRoot && !allowsAuthorShadowRoot(element)) {
-        ec = HIERARCHY_REQUEST_ERR;
-        return 0;
-    }
-
     RefPtr<ShadowRoot> shadowRoot = adoptRef(new ShadowRoot(element->document(), type));
 
-    ec = 0;
-    element->ensureShadow()->addShadowRoot(element, shadowRoot, type, ec);
-    if (ec)
-        return 0;
+    element->ensureShadow()->addShadowRoot(element, shadowRoot, type);
     ASSERT(element == shadowRoot->host());
     ASSERT(element->shadow());
+
     return shadowRoot.release();
 }
 

Modified: trunk/Source/WebCore/dom/ShadowRoot.h (141174 => 141175)


--- trunk/Source/WebCore/dom/ShadowRoot.h	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/dom/ShadowRoot.h	2013-01-30 00:02:15 UTC (rev 141175)
@@ -46,8 +46,6 @@
 class ShadowRoot : public DocumentFragment, public TreeScope, public DoublyLinkedListNode<ShadowRoot> {
     friend class WTF::DoublyLinkedListNode<ShadowRoot>;
 public:
-    static PassRefPtr<ShadowRoot> create(Element*, ExceptionCode&);
-
     // FIXME: We will support multiple shadow subtrees, however current implementation does not work well
     // if a shadow root is dynamically created. So we prohibit multiple shadow subtrees
     // in several elements for a while.
@@ -56,7 +54,7 @@
         UserAgentShadowRoot = 0,
         AuthorShadowRoot
     };
-    static PassRefPtr<ShadowRoot> create(Element*, ShadowRootType, ExceptionCode& = ASSERT_NO_EXCEPTION);
+    static PassRefPtr<ShadowRoot> create(Element*, ShadowRootType);
 
     void recalcStyle(StyleChange);
 

Modified: trunk/Source/WebCore/html/HTMLKeygenElement.cpp (141174 => 141175)


--- trunk/Source/WebCore/html/HTMLKeygenElement.cpp	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/html/HTMLKeygenElement.cpp	2013-01-30 00:02:15 UTC (rev 141175)
@@ -82,9 +82,7 @@
         option->appendChild(Text::create(document, keys[i]), ec);
     }
 
-    ASSERT(!shadow());
-    RefPtr<ShadowRoot> root = ShadowRoot::create(this, ShadowRoot::UserAgentShadowRoot);
-    root->appendChild(select, ec);
+    ensureUserAgentShadowRoot()->appendChild(select, ec);
 }
 
 PassRefPtr<HTMLKeygenElement> HTMLKeygenElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form)

Modified: trunk/Source/WebCore/html/shadow/TextFieldDecorationElement.cpp (141174 => 141175)


--- trunk/Source/WebCore/html/shadow/TextFieldDecorationElement.cpp	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/html/shadow/TextFieldDecorationElement.cpp	2013-01-30 00:02:15 UTC (rev 141175)
@@ -90,7 +90,7 @@
     if (newRoot)
         newRoot->removeChild(newRoot->firstChild());
     else
-        newRoot = ShadowRoot::create(input, ShadowRoot::UserAgentShadowRoot, ASSERT_NO_EXCEPTION).get();
+        newRoot = input->ensureUserAgentShadowRoot();
     decorationRoot = newRoot;
     decoratedRoot = existingRoot;
 }

Modified: trunk/Source/WebCore/testing/Internals.cpp (141174 => 141175)


--- trunk/Source/WebCore/testing/Internals.cpp	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebCore/testing/Internals.cpp	2013-01-30 00:02:15 UTC (rev 141175)
@@ -580,7 +580,7 @@
     if (ElementShadow* shadow = host->shadow())
         return shadow->youngestShadowRoot();
 
-    return ShadowRoot::create(host, ec).get();
+    return host->createShadowRoot(ec).get();
 }
 
 Internals::ShadowRootIfShadowDOMEnabledOrNode* Internals::createShadowRoot(Element* host, ExceptionCode& ec)
@@ -589,7 +589,7 @@
         ec = INVALID_ACCESS_ERR;
         return 0;
     }
-    return ShadowRoot::create(host, ec).get();
+    return host->createShadowRoot(ec).get();
 }
 
 Internals::ShadowRootIfShadowDOMEnabledOrNode* Internals::shadowRoot(Element* host, ExceptionCode& ec)

Modified: trunk/Source/WebKit/win/ChangeLog (141174 => 141175)


--- trunk/Source/WebKit/win/ChangeLog	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebKit/win/ChangeLog	2013-01-30 00:02:15 UTC (rev 141175)
@@ -1,3 +1,12 @@
+2013-01-29  Elliott Sprehn  <espr...@chromium.org>
+
+        Refactor ShadowRoot exception handling
+        https://bugs.webkit.org/show_bug.cgi?id=108209
+
+        Reviewed by Dimitri Glazkov.
+
+        * WebKit.vcproj/WebKitExports.def.in: Swap ShadowRoot::create export with Element::createShadowRoot.
+
 2013-01-29  Nate Chapin  <jap...@chromium.org>
 
         Enable reuse of cached main resources

Modified: trunk/Source/WebKit/win/WebKit.vcproj/WebKitExports.def.in (141174 => 141175)


--- trunk/Source/WebKit/win/WebKit.vcproj/WebKitExports.def.in	2013-01-30 00:00:39 UTC (rev 141174)
+++ trunk/Source/WebKit/win/WebKit.vcproj/WebKitExports.def.in	2013-01-30 00:02:15 UTC (rev 141175)
@@ -176,7 +176,7 @@
         ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@PAVExecState@JSC@@VJSValue@6@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@4@PAV?$Vector@V?$RefPtr@VArrayBuffer@WTF@@@WTF@@$00@4@W4SerializationErrorMode@2@@Z
-        ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z
+        ?createShadowRoot@Element@WebCore@@QAE?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@AAH@Z
         ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
         ?deserialize@SerializedScriptValue@WebCore@@QAE?AVJSValue@JSC@@PAVExecState@4@PAVJSGlobalObject@4@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@WTF@@W4SerializationErrorMode@2@@Z
         ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ
@@ -564,7 +564,7 @@
         ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@PAVExecState@JSC@@VJSValue@6@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@4@PAV?$Vector@V?$RefPtr@VArrayBuffer@WTF@@@WTF@@$00@4@W4SerializationErrorMode@2@@Z
-        ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z
+        ?createShadowRoot@Element@WebCore@@QAE?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@AAH@Z
         ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
         ?deserialize@SerializedScriptValue@WebCore@@QAE?AVJSValue@JSC@@PAVExecState@4@PAVJSGlobalObject@4@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@WTF@@W4SerializationErrorMode@2@@Z
         ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ
@@ -950,7 +950,7 @@
         ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@PAVExecState@JSC@@VJSValue@6@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@4@PAV?$Vector@V?$RefPtr@VArrayBuffer@WTF@@@WTF@@$00@4@W4SerializationErrorMode@2@@Z
-        ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z
+        ?createShadowRoot@Element@WebCore@@QAE?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@AAH@Z
         ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
         ?deserialize@SerializedScriptValue@WebCore@@QAE?AVJSValue@JSC@@PAVExecState@4@PAVJSGlobalObject@4@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@WTF@@W4SerializationErrorMode@2@@Z
         ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ
@@ -1336,7 +1336,7 @@
         ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z
         ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@PAVExecState@JSC@@VJSValue@6@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@4@PAV?$Vector@V?$RefPtr@VArrayBuffer@WTF@@@WTF@@$00@4@W4SerializationErrorMode@2@@Z
-        ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z
+        ?createShadowRoot@Element@WebCore@@QAE?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@AAH@Z
         ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
         ?deserialize@SerializedScriptValue@WebCore@@QAE?AVJSValue@JSC@@PAVExecState@4@PAVJSGlobalObject@4@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@WTF@@W4SerializationErrorMode@2@@Z
         ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to