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