Title: [118317] trunk
Revision
118317
Author
[email protected]
Date
2012-05-23 20:45:18 -0700 (Wed, 23 May 2012)

Log Message

Document.caretRangeFromPoint exposes inner elemnet of Shadow DOM.
https://bugs.webkit.org/show_bug.cgi?id=87231

Reviewed by Dimitri Glazkov.

Source/WebCore:

Document::caretRangeFromPoint didn't consider nested Shadow DOM.
The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.

Test: fast/dom/shadow/caret-range-from-point-in-nested-shadow.html

* dom/Document.cpp:
(WebCore::Document::caretRangeFromPoint):

LayoutTests:

* fast/dom/shadow/caret-range-from-point-in-nested-shadow-expected.txt: Added.
* fast/dom/shadow/caret-range-from-point-in-nested-shadow.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (118316 => 118317)


--- trunk/LayoutTests/ChangeLog	2012-05-24 03:42:27 UTC (rev 118316)
+++ trunk/LayoutTests/ChangeLog	2012-05-24 03:45:18 UTC (rev 118317)
@@ -1,3 +1,13 @@
+2012-05-23  Shinya Kawanaka  <[email protected]>
+
+        Document.caretRangeFromPoint exposes inner elemnet of Shadow DOM.
+        https://bugs.webkit.org/show_bug.cgi?id=87231
+
+        Reviewed by Dimitri Glazkov.
+
+        * fast/dom/shadow/caret-range-from-point-in-nested-shadow-expected.txt: Added.
+        * fast/dom/shadow/caret-range-from-point-in-nested-shadow.html: Added.
+
 2012-05-23  Julien Chaffraix  <[email protected]>
 
         Crash in RenderTableCol::nextColumn

Added: trunk/LayoutTests/fast/dom/shadow/caret-range-from-point-in-nested-shadow-expected.txt (0 => 118317)


--- trunk/LayoutTests/fast/dom/shadow/caret-range-from-point-in-nested-shadow-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/caret-range-from-point-in-nested-shadow-expected.txt	2012-05-24 03:45:18 UTC (rev 118317)
@@ -0,0 +1,6 @@
+PASS internals.treeScopeRootNode(range.startContainer) is document
+PASS internals.treeScopeRootNode(range.endContainer) is document
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/dom/shadow/caret-range-from-point-in-nested-shadow.html (0 => 118317)


--- trunk/LayoutTests/fast/dom/shadow/caret-range-from-point-in-nested-shadow.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/caret-range-from-point-in-nested-shadow.html	2012-05-24 03:45:18 UTC (rev 118317)
@@ -0,0 +1,47 @@
+<!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 range = document.caretRangeFromPoint(x, y);
+
+shouldBe("internals.treeScopeRootNode(range.startContainer)", "document");
+shouldBe("internals.treeScopeRootNode(range.endContainer)", "document");
+
+var successfullyParsed = true;
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (118316 => 118317)


--- trunk/Source/WebCore/ChangeLog	2012-05-24 03:42:27 UTC (rev 118316)
+++ trunk/Source/WebCore/ChangeLog	2012-05-24 03:45:18 UTC (rev 118317)
@@ -1,3 +1,18 @@
+2012-05-23  Shinya Kawanaka  <[email protected]>
+
+        Document.caretRangeFromPoint exposes inner elemnet of Shadow DOM.
+        https://bugs.webkit.org/show_bug.cgi?id=87231
+
+        Reviewed by Dimitri Glazkov.
+
+        Document::caretRangeFromPoint didn't consider nested Shadow DOM.
+        The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
+
+        Test: fast/dom/shadow/caret-range-from-point-in-nested-shadow.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::caretRangeFromPoint):
+
 2012-05-23  Julien Chaffraix  <[email protected]>
 
         Crash in RenderTableCol::nextColumn

Modified: trunk/Source/WebCore/dom/Document.cpp (118316 => 118317)


--- trunk/Source/WebCore/dom/Document.cpp	2012-05-24 03:42:27 UTC (rev 118316)
+++ trunk/Source/WebCore/dom/Document.cpp	2012-05-24 03:45:18 UTC (rev 118317)
@@ -1427,7 +1427,7 @@
     if (!node)
         return 0;
 
-    Node* shadowAncestorNode = node->shadowAncestorNode();
+    Node* shadowAncestorNode = ancestorInThisScope(node);
     if (shadowAncestorNode != node) {
         unsigned offset = shadowAncestorNode->nodeIndex();
         ContainerNode* container = shadowAncestorNode->parentNode();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to