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