Title: [123548] branches/chromium/1180/Source/WebCore
Revision
123548
Author
[email protected]
Date
2012-07-24 16:34:46 -0700 (Tue, 24 Jul 2012)

Log Message

Merge 123180 - Introduce Node::shadowHost()
https://bugs.webkit.org/show_bug.cgi?id=91814

Reviewed by Hajime Morita.

Introduce Node::shadowHost(), which return the host element, or 0.
Node::shadowAncestorNode() is used to obtain a shadow host. However it
is confusing because it returns 'this' if this is not in a shadow tree.

Replaces one callsite of shadowAncestorNode() with shadowHost().

No behavior change.

* dom/Node.cpp:
(WebCore::Node::shadowHost): Added.
* dom/Node.h:
(Node): Declare shadowHost(), and add a comment to shadowAncestorNode().
* html/shadow/CalendarPickerElement.cpp:
(WebCore::CalendarPickerElement::hostInput):
Replace shadowAncestorNode() with shaodwHost().

[email protected]
BUG=crbug.com/136145
Review URL: https://chromiumcodereview.appspot.com/10823003

Modified Paths

Diff

Modified: branches/chromium/1180/Source/WebCore/dom/Node.cpp (123547 => 123548)


--- branches/chromium/1180/Source/WebCore/dom/Node.cpp	2012-07-24 23:12:35 UTC (rev 123547)
+++ branches/chromium/1180/Source/WebCore/dom/Node.cpp	2012-07-24 23:34:46 UTC (rev 123548)
@@ -1412,6 +1412,12 @@
     return parentOrHostNode() ? parentOrHostNode()->canStartSelection() : true;
 }
 
+Element* Node::shadowHost() const
+{
+    if (ShadowRoot* root = shadowRoot())
+        return root->host();
+    return 0;
+}
 
 Node* Node::shadowAncestorNode() const
 {

Modified: branches/chromium/1180/Source/WebCore/dom/Node.h (123547 => 123548)


--- branches/chromium/1180/Source/WebCore/dom/Node.h	2012-07-24 23:12:35 UTC (rev 123547)
+++ branches/chromium/1180/Source/WebCore/dom/Node.h	2012-07-24 23:34:46 UTC (rev 123548)
@@ -222,6 +222,10 @@
     bool hasAttrList() const { return getFlag(HasAttrListFlag); }
     bool hasCustomCallbacks() const { return getFlag(HasCustomCallbacksFlag); }
 
+    // If this node is in a shadow tree, returns its shadow host. Otherwise, returns 0.
+    Element* shadowHost() const;
+    // If this node is in a shadow tree, returns its shadow host. Otherwise, returns this.
+    // Deprecated. Should use shadowHost() and check the return value.
     Node* shadowAncestorNode() const;
     ShadowRoot* shadowRoot() const;
     ShadowRoot* youngestShadowRoot() const;

Modified: branches/chromium/1180/Source/WebCore/html/shadow/CalendarPickerElement.cpp (123547 => 123548)


--- branches/chromium/1180/Source/WebCore/html/shadow/CalendarPickerElement.cpp	2012-07-24 23:12:35 UTC (rev 123547)
+++ branches/chromium/1180/Source/WebCore/html/shadow/CalendarPickerElement.cpp	2012-07-24 23:34:46 UTC (rev 123548)
@@ -81,9 +81,11 @@
 
 inline HTMLInputElement* CalendarPickerElement::hostInput()
 {
-    ASSERT(shadowAncestorNode());
-    ASSERT(shadowAncestorNode()->hasTagName(inputTag));
-    return static_cast<HTMLInputElement*>(shadowAncestorNode());
+    // _javascript_ code can't create CalendarPickerElement objects. This is
+    // always in shadow of <input>.
+    ASSERT(shadowHost());
+    ASSERT(shadowHost()->hasTagName(inputTag));
+    return static_cast<HTMLInputElement*>(shadowHost());
 }
 
 void CalendarPickerElement::defaultEventHandler(Event* event)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to