RenderMathML* should modify the rendertree during layout or have preferred widths depend on height
https://bugs.webkit.org/show_bug.cgi?id=107197

Patch by Ojan Vafai <ojan@chromium.org> on 2013-01-17
Reviewed by NOBODY (OOPS!).

No new tests (OOPS!).

The big crux of this change is that we use transforms to stretch operators
instead of using multiple glyphs, so we don't need to modify the render tree
or have the preferred width depend on the height. There are some cases where
this looks better and some where it looks worse than the old rendering.

* css/mathml.css:
Not sure what this line-height:0 was here for, but it caused bugs with the new code.

* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::attach):
(WebCore):
(WebCore::MathMLTextElement::childrenChanged):
Need to update the anonymous render tree below <mo> elements when their
children change or when the renderer is first attached.

* mathml/MathMLTextElement.h:
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
Now that the preferred width doesn't depend on the height, we don't
need to override computePreferredLogicalWidths at all.

* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::styleDidChange):
Need to update the anonymous renderers for the anonymous RenderMathMLOperators.

* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::expandedStretchHeight):
Store the non-expanded stretch height so that we can detect when the height
actually changed.

(WebCore::RenderMathMLOperator::stretchToHeight):
Only update the style on the anonymous render tree since this is called
from RenderMathMLRow::layout.

(WebCore::RenderMathMLOperator::styleDidChange):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::updateStyle):
Use transforms instead of multiple glyphs to stretch operators.

(WebCore::RenderMathMLOperator::firstLineBoxBaseline):
* rendering/mathml/RenderMathMLOperator.h:
(WebCore::RenderMathMLOperator::stretchHeight):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::index):
(WebCore::RenderMathMLRoot::layout):
* rendering/mathml/RenderMathMLRoot.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
* rendering/mathml/RenderMathMLRow.h: