diff --git a/layout/generic/nsGfxScrollFrame.cpp b/layout/generic/nsGfxScrollFrame.cpp index 75a1c4e32974..4a9babb29e3e 100644 --- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -2189,17 +2189,8 @@ nsGfxScrollFrameInner::CreateAnonymousContent(nsTArray& aElements) } // Check if the frame is resizable. - nsIFrame* resizableFrame = mOuter; - if (parent) { - // For textarea, mOuter is the frame for the anonymous div element, - // so get the resizability from the parent textarea instead. - nsCOMPtr textAreaElement(do_QueryInterface(parent->GetContent())); - if (textAreaElement) { - resizableFrame = parent; - } - } - - PRBool isResizable = resizableFrame->GetStyleDisplay()->mResize != NS_STYLE_RESIZE_NONE; + PRInt8 resizeStyle = mOuter->GetStyleDisplay()->mResize; + PRBool isResizable = resizeStyle != NS_STYLE_RESIZE_NONE; nsIScrollableFrame *scrollable = do_QueryFrame(mOuter); @@ -2275,7 +2266,7 @@ nsGfxScrollFrameInner::CreateAnonymousContent(nsTArray& aElements) NS_ENSURE_SUCCESS(rv, rv); nsAutoString dir; - switch (resizableFrame->GetStyleDisplay()->mResize) { + switch (resizeStyle) { case NS_STYLE_RESIZE_HORIZONTAL: if (IsScrollbarOnRight()) { dir.AssignLiteral("right"); diff --git a/layout/reftests/forms/reftest.list b/layout/reftests/forms/reftest.list index 41eeeb46a1e5..90339d5b79df 100644 --- a/layout/reftests/forms/reftest.list +++ b/layout/reftests/forms/reftest.list @@ -12,6 +12,7 @@ HTTP(..) == text-control-baseline-1.html text-control-baseline-1-ref.html == input-text-dynamic-height-1.xul input-text-dynamic-height-1-ref.xul == textbox-align-baseline-1.xul textbox-align-baseline-1-ref.xul # test for bug 494901 == textbox-setsize.xul textbox-setsize-ref.xul +== textarea-resize.html textarea-resize-ref.html == radio-label-dynamic.html radio-label-dynamic-ref.html == out-of-bounds-selectedindex.html out-of-bounds-selectedindex-ref.html # test for bug 471741 diff --git a/layout/reftests/forms/textarea-resize-ref.html b/layout/reftests/forms/textarea-resize-ref.html new file mode 100644 index 000000000000..89c7c5819f34 --- /dev/null +++ b/layout/reftests/forms/textarea-resize-ref.html @@ -0,0 +1,3 @@ + +
+ diff --git a/layout/reftests/forms/textarea-resize.html b/layout/reftests/forms/textarea-resize.html new file mode 100644 index 000000000000..f513b4634f1a --- /dev/null +++ b/layout/reftests/forms/textarea-resize.html @@ -0,0 +1,3 @@ + + + diff --git a/layout/style/forms.css b/layout/style/forms.css index ad49bae367ee..acd129212e7e 100644 --- a/layout/style/forms.css +++ b/layout/style/forms.css @@ -152,6 +152,7 @@ input > .anonymous-div { but it's needed to make 'text-decoration' "work" on text inputs. */ text-decoration: inherit; ime-mode: inherit; + -moz-resize: inherit; } textarea > .anonymous-div.wrap, @@ -168,6 +169,7 @@ textarea > .placeholder { color: GrayText; overflow: hidden; pointer-events: none; + -moz-resize: none; } textarea > .placeholder {