Title: [118338] trunk
Revision
118338
Author
[email protected]
Date
2012-05-24 02:17:05 -0700 (Thu, 24 May 2012)

Log Message

Elements in Shadow DOM are not resizable.
https://bugs.webkit.org/show_bug.cgi?id=87342

Reviewed by Ryosuke Niwa.

Source/WebCore:

In RenderLayer::resize(), shadowAncestorNode() was used but if the ancestor node is used,
it is not possible to resize elements in Shadow DOM.

The comments said it is necessary for textarea, however actually it is not necessary now.
Existing test (fast/css/resize-corner-tracking) covers it.

Test: fast/dom/shadow/resize-in-shadow-dom.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize):

LayoutTests:

* fast/dom/shadow/resize-in-shadow-dom-expected.txt: Added.
* fast/dom/shadow/resize-in-shadow-dom.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (118337 => 118338)


--- trunk/LayoutTests/ChangeLog	2012-05-24 09:13:20 UTC (rev 118337)
+++ trunk/LayoutTests/ChangeLog	2012-05-24 09:17:05 UTC (rev 118338)
@@ -1,3 +1,13 @@
+2012-05-24  Shinya Kawanaka  <[email protected]>
+
+        Elements in Shadow DOM are not resizable.
+        https://bugs.webkit.org/show_bug.cgi?id=87342
+
+        Reviewed by Ryosuke Niwa.
+
+        * fast/dom/shadow/resize-in-shadow-dom-expected.txt: Added.
+        * fast/dom/shadow/resize-in-shadow-dom.html: Added.
+
 2012-05-24  Vsevolod Vlasov  <[email protected]>
 
         Unreviewed, skipping failing tests on chromium.

Added: trunk/LayoutTests/fast/dom/shadow/resize-in-shadow-dom-expected.txt (0 => 118338)


--- trunk/LayoutTests/fast/dom/shadow/resize-in-shadow-dom-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/resize-in-shadow-dom-expected.txt	2012-05-24 09:17:05 UTC (rev 118338)
@@ -0,0 +1,6 @@
+PASS box.offsetWidth is 114
+PASS box.offsetHeight is 114
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/dom/shadow/resize-in-shadow-dom.html (0 => 118338)


--- trunk/LayoutTests/fast/dom/shadow/resize-in-shadow-dom.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/resize-in-shadow-dom.html	2012-05-24 09:17:05 UTC (rev 118338)
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src=""
+<script src=""
+<script src=""
+
+<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.style.resize = 'both';
+    div.style.overflow = 'hidden';
+    div.style.background = '';
+
+    return div;
+}
+
+var shadowRoot = new WebKitShadowRoot(host);
+var box = createBox('dark');
+shadowRoot.appendChild(box);
+
+var x = box.offsetLeft + box.offsetWidth;
+var y = box.offsetLeft + box.offsetWidth;
+
+eventSender.mouseMoveTo(x - 7, y - 7);
+eventSender.mouseDown();
+eventSender.mouseMoveTo(x + 7, y + 7);
+eventSender.mouseUp();
+
+shouldBe('box.offsetWidth', '114');
+shouldBe('box.offsetHeight', '114');
+
+var successfullyParsed = true;
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (118337 => 118338)


--- trunk/Source/WebCore/ChangeLog	2012-05-24 09:13:20 UTC (rev 118337)
+++ trunk/Source/WebCore/ChangeLog	2012-05-24 09:17:05 UTC (rev 118338)
@@ -1,3 +1,21 @@
+2012-05-24  Shinya Kawanaka  <[email protected]>
+
+        Elements in Shadow DOM are not resizable.
+        https://bugs.webkit.org/show_bug.cgi?id=87342
+
+        Reviewed by Ryosuke Niwa.
+
+        In RenderLayer::resize(), shadowAncestorNode() was used but if the ancestor node is used,
+        it is not possible to resize elements in Shadow DOM.
+
+        The comments said it is necessary for textarea, however actually it is not necessary now.
+        Existing test (fast/css/resize-corner-tracking) covers it.
+
+        Test: fast/dom/shadow/resize-in-shadow-dom.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::resize):
+
 2012-05-24  Antti Koivisto  <[email protected]>
 
         Move StyleSheetContents to a separate file

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (118337 => 118338)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2012-05-24 09:13:20 UTC (rev 118337)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2012-05-24 09:17:05 UTC (rev 118338)
@@ -1855,9 +1855,8 @@
     if (!inResizeMode() || !renderer()->hasOverflowClip() || !renderer()->node())
         return;
 
-    // Set the width and height of the shadow ancestor node if there is one.
-    // This is necessary for textarea elements since the resizable layer is in the shadow content.
-    Element* element = static_cast<Element*>(renderer()->node()->shadowAncestorNode());
+    ASSERT(renderer()->node()->isElementNode());
+    Element* element = static_cast<Element*>(renderer()->node());
     RenderBox* renderer = toRenderBox(element->renderer());
 
     EResize resize = renderer->style()->resize();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to