Title: [122530] trunk/Source/WebCore
- Revision
- 122530
- Author
- [email protected]
- Date
- 2012-07-12 17:09:21 -0700 (Thu, 12 Jul 2012)
Log Message
Needs callback before AuthorShadowRoot is added.
https://bugs.webkit.org/show_bug.cgi?id=91167
Reviewed by Hajime Morita.
This is a preliminary patch for adding multiple Shadow DOM support for media elements and form elements.
They assume that UserAgentShadowRoot is the oldest, however currently a page author may try to add
AuthorShadowRoot before adding UserAgentShadowRoot.
This patch adds a callback before AuthorShadowRoot is being added, and allow us to add UserAgentShadowRoot
for those elements. See also Bug 77936, Bug 77937, Bug 90532.
* dom/Element.h:
(WebCore::Element::willAddAuthorShadowRoot):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot):
* dom/ElementShadow.h:
(ElementShadow):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::create):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (122529 => 122530)
--- trunk/Source/WebCore/ChangeLog 2012-07-12 23:38:44 UTC (rev 122529)
+++ trunk/Source/WebCore/ChangeLog 2012-07-13 00:09:21 UTC (rev 122530)
@@ -1,3 +1,26 @@
+2012-07-12 Shinya Kawanaka <[email protected]>
+
+ Needs callback before AuthorShadowRoot is added.
+ https://bugs.webkit.org/show_bug.cgi?id=91167
+
+ Reviewed by Hajime Morita.
+
+ This is a preliminary patch for adding multiple Shadow DOM support for media elements and form elements.
+ They assume that UserAgentShadowRoot is the oldest, however currently a page author may try to add
+ AuthorShadowRoot before adding UserAgentShadowRoot.
+
+ This patch adds a callback before AuthorShadowRoot is being added, and allow us to add UserAgentShadowRoot
+ for those elements. See also Bug 77936, Bug 77937, Bug 90532.
+
+ * dom/Element.h:
+ (WebCore::Element::willAddAuthorShadowRoot):
+ * dom/ElementShadow.cpp:
+ (WebCore::ElementShadow::addShadowRoot):
+ * dom/ElementShadow.h:
+ (ElementShadow):
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::create):
+
2012-07-12 Dana Jansens <[email protected]>
[chromium] Remove the RenderPass pointer from RenderPassDrawQuad
Modified: trunk/Source/WebCore/dom/Element.h (122529 => 122530)
--- trunk/Source/WebCore/dom/Element.h 2012-07-12 23:38:44 UTC (rev 122529)
+++ trunk/Source/WebCore/dom/Element.h 2012-07-13 00:09:21 UTC (rev 122530)
@@ -269,6 +269,7 @@
ElementShadow* shadow() const;
ElementShadow* ensureShadow();
+ virtual void willAddAuthorShadowRoot() { }
// FIXME: Remove Element::ensureShadowRoot
// https://bugs.webkit.org/show_bug.cgi?id=77608
Modified: trunk/Source/WebCore/dom/ElementShadow.cpp (122529 => 122530)
--- trunk/Source/WebCore/dom/ElementShadow.cpp 2012-07-12 23:38:44 UTC (rev 122529)
+++ trunk/Source/WebCore/dom/ElementShadow.cpp 2012-07-13 00:09:21 UTC (rev 122530)
@@ -65,7 +65,7 @@
return true;
}
-void ElementShadow::addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot> shadowRoot, ExceptionCode& ec)
+void ElementShadow::addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot> shadowRoot, ShadowRoot::ShadowRootType type, ExceptionCode& ec)
{
ASSERT(shadowHost);
ASSERT(shadowRoot);
@@ -73,6 +73,9 @@
if (!validateShadowRoot(shadowHost->document(), shadowRoot.get(), ec))
return;
+ if (type == ShadowRoot::AuthorShadowRoot)
+ shadowHost->willAddAuthorShadowRoot();
+
shadowRoot->setHost(shadowHost);
shadowRoot->setParentTreeScope(shadowHost->treeScope());
m_shadowRoots.push(shadowRoot.get());
Modified: trunk/Source/WebCore/dom/ElementShadow.h (122529 => 122530)
--- trunk/Source/WebCore/dom/ElementShadow.h 2012-07-12 23:38:44 UTC (rev 122529)
+++ trunk/Source/WebCore/dom/ElementShadow.h 2012-07-13 00:09:21 UTC (rev 122530)
@@ -53,7 +53,7 @@
ShadowRoot* oldestShadowRoot() const;
void removeAllShadowRoots();
- void addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot>, ExceptionCode&);
+ void addShadowRoot(Element* shadowHost, PassRefPtr<ShadowRoot>, ShadowRoot::ShadowRootType, ExceptionCode&);
void attach();
void detach();
Modified: trunk/Source/WebCore/dom/ShadowRoot.cpp (122529 => 122530)
--- trunk/Source/WebCore/dom/ShadowRoot.cpp 2012-07-12 23:38:44 UTC (rev 122529)
+++ trunk/Source/WebCore/dom/ShadowRoot.cpp 2012-07-13 00:09:21 UTC (rev 122530)
@@ -122,7 +122,7 @@
#endif
ec = 0;
- element->ensureShadow()->addShadowRoot(element, shadowRoot, ec);
+ element->ensureShadow()->addShadowRoot(element, shadowRoot, type, ec);
if (ec)
return 0;
ASSERT(element == shadowRoot->host());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes