Title: [118319] trunk
- Revision
- 118319
- Author
- [email protected]
- Date
- 2012-05-23 20:59:41 -0700 (Wed, 23 May 2012)
Log Message
Document.elementFromPoint exposes inner element of Shadow DOM.
https://bugs.webkit.org/show_bug.cgi?id=87235
Reviewed by Dimitri Glazkov.
Source/WebCore:
Document::elementFromPoint didn't consider nested Shadow DOM.
The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
Test: fast/dom/shadow/element-from-point-in-nested-shadow.html
* dom/Document.cpp:
(WebCore::Document::elementFromPoint):
LayoutTests:
* fast/dom/shadow/element-from-point-in-nested-shadow-expected.txt: Added.
* fast/dom/shadow/element-from-point-in-nested-shadow.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (118318 => 118319)
--- trunk/LayoutTests/ChangeLog 2012-05-24 03:48:39 UTC (rev 118318)
+++ trunk/LayoutTests/ChangeLog 2012-05-24 03:59:41 UTC (rev 118319)
@@ -1,3 +1,13 @@
+2012-05-23 Shinya Kawanaka <[email protected]>
+
+ Document.elementFromPoint exposes inner element of Shadow DOM.
+ https://bugs.webkit.org/show_bug.cgi?id=87235
+
+ Reviewed by Dimitri Glazkov.
+
+ * fast/dom/shadow/element-from-point-in-nested-shadow-expected.txt: Added.
+ * fast/dom/shadow/element-from-point-in-nested-shadow.html: Added.
+
2012-05-23 Sheriff Bot <[email protected]>
Unreviewed, rolling out r118297.
Added: trunk/LayoutTests/fast/dom/shadow/element-from-point-in-nested-shadow-expected.txt (0 => 118319)
--- trunk/LayoutTests/fast/dom/shadow/element-from-point-in-nested-shadow-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/element-from-point-in-nested-shadow-expected.txt 2012-05-24 03:59:41 UTC (rev 118319)
@@ -0,0 +1,5 @@
+PASS internals.treeScopeRootNode(element) is document
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/dom/shadow/element-from-point-in-nested-shadow.html (0 => 118319)
--- trunk/LayoutTests/fast/dom/shadow/element-from-point-in-nested-shadow.html (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/element-from-point-in-nested-shadow.html 2012-05-24 03:59:41 UTC (rev 118319)
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script src=""
+<script src=""
+</head>
+<body>
+
+<div id="host"></div>
+<pre id="console"></pre>
+
+<script>
+function createBox(name) {
+ var div = document.createElement('div');
+ div.style.width = '100px';
+ div.style.height = '100px';
+
+ div.addEventListener('drop', function(e) {
+ debug('PASS: drop event is fired.');
+ });
+
+ return div;
+}
+
+var shadowRoot = new WebKitShadowRoot(host);
+var div = document.createElement('div');
+shadowRoot.appendChild(div);
+
+var darkRoot = new WebKitShadowRoot(div);
+var box = createBox('dark');
+darkRoot.appendChild(box);
+
+var x = box.offsetLeft + box.offsetWidth / 2;
+var y = box.offsetTop + box.offsetHeight / 2;
+
+var element = document.elementFromPoint(x, y);
+
+shouldBe("internals.treeScopeRootNode(element)", "document");
+
+var successfullyParsed = true;
+</script>
+
+<script src=""
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (118318 => 118319)
--- trunk/Source/WebCore/ChangeLog 2012-05-24 03:48:39 UTC (rev 118318)
+++ trunk/Source/WebCore/ChangeLog 2012-05-24 03:59:41 UTC (rev 118319)
@@ -1,3 +1,18 @@
+2012-05-23 Shinya Kawanaka <[email protected]>
+
+ Document.elementFromPoint exposes inner element of Shadow DOM.
+ https://bugs.webkit.org/show_bug.cgi?id=87235
+
+ Reviewed by Dimitri Glazkov.
+
+ Document::elementFromPoint didn't consider nested Shadow DOM.
+ The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
+
+ Test: fast/dom/shadow/element-from-point-in-nested-shadow.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::elementFromPoint):
+
2012-05-23 Sheriff Bot <[email protected]>
Unreviewed, rolling out r118297.
Modified: trunk/Source/WebCore/dom/Document.cpp (118318 => 118319)
--- trunk/Source/WebCore/dom/Document.cpp 2012-05-24 03:48:39 UTC (rev 118318)
+++ trunk/Source/WebCore/dom/Document.cpp 2012-05-24 03:59:41 UTC (rev 118319)
@@ -1414,7 +1414,7 @@
while (node && !node->isElementNode())
node = node->parentNode();
if (node)
- node = node->shadowAncestorNode();
+ node = ancestorInThisScope(node);
return static_cast<Element*>(node);
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes