REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
https://bugs.webkit.org/show_bug.cgi?id=97390

Reviewed by Ojan Vafai.

Source/WebCore:

In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
in layout() will be the base's true height, without any flexbox stretching.

Tested by existing tests.

* rendering/mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::fixAnonymousStyles):
(WebCore::RenderMathMLSubSup::addChild):
(WebCore::RenderMathMLSubSup::styleDidChange):
* rendering/mathml/RenderMathMLSubSup.h:
(RenderMathMLSubSup):

LayoutTests:

* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133221 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Fix Windows build by re-adding a #include
https://bugs.webkit.org/show_bug.cgi?id=100986

Patch by Alec Flett <alecflett@chromium.org> on 2012-11-01
Reviewed by Stephen White.

Fix #include that broke windows.

* Modules/indexeddb/IDBCallbacks.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133223 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Part2 of: Extend -webkit-user-select with new value "all"
<rdar://problem/10161404>
https://bugs.webkit.org/show_bug.cgi?id=91912

Reviewed by Ryosuke Niwa.

Source/WebCore: 

The new value "all" for -webkit-user-select property gives content none-or-all selection option.
The patch was originally prepared by Alice Cheng but the approach has been changed.
The idea is to treat these elements like non editable, meaning that we should skip over them entirely
when moving the cursor and a deletion should delete the element and all its descentants at once.
The key change is in Node::rendererIsEditable where we now return false if the element style is
userSelect: all. The other change is in the way we create the selection on mouse click and dragging
over the element. In both cases we force the selection to extend over the entire element with
the user-select: all attribute.
This is currently enabled only for the Mac port.

Test: editing/selection/user-select-all-selection.html

* dom/Node.cpp: Added a parameter to isContentEditable to behave differently
when called from JavaScript. Internally isContentEditable returns false on
nodes with user-select: all style.
(WebCore::Node::isContentEditable):
(WebCore::Node::isContentRichlyEditable):
(WebCore::Node::rendererIsEditable):
(WebCore::Node::shouldUseInputMethod):
(WebCore::Node::willRespondToMouseClickEvents):
* dom/Node.h:
(WebCore::Node::rendererIsEditable):
(WebCore::Node::rendererIsRichlyEditable):
* dom/Position.cpp:
(WebCore::Position::nodeIsUserSelectAll): Added.
(WebCore::Position::rootUserSelectAllForNode): Added.
* dom/Position.h: Added static functions described above.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
isContentEditable() call.
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
isContentEditable() call.
* editing/DeleteFromTextNodeCommand.cpp:
(WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
isContentEditable() call.
* editing/FrameSelection.cpp:
(WebCore::adjustForwardPositionForUserSelectAll): New helper function.
(WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modify):
(WebCore::CaretBase::invalidateCaretRect): Added parameter to
isContentEditable() call.
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply): Ditto.
(WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doApply): Ditto.
* editing/visible_units.cpp:
(WebCore::startOfParagraph): We should not consider a paragraph break and element
with user-select: all style, like we do at the border of editability.
(WebCore::endOfParagraph): Ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
around the element whose style is user-select: all.
(WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
we should return the selection state as SelectionBoth, assuming we went past the end selection.
This avoids doing an incorrect gap filling for the selection highlighting.

LayoutTests: 

Testing moving and extending selections with the new CSS propertyvalue, with mouse movements
and with the keyboard.
Updated test expectations for all the platforms, since this is only enabled for the Mac port.

* editing/selection/user-select-all-selection-expected.txt: Added.
* editing/selection/user-select-all-selection.html: Added.
* platform/chromium/TestExpectations:
* platform/qt/TestExpectations:
* platform/gtk/TestExpectations:
* platform/win/TestExpectations:
* platform/efl/TestExpectations:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK1] Fixed-position elements jiggle up and down slightly during scrolling on a Retina display
https://bugs.webkit.org/show_bug.cgi?id=100957

Reviewed by Simon Fraser.

WebCore doesn't yet support subpixel scrolling. WebKit2 forces
scrolling to always be integral. Now WebKit1 forces this as well.

I'm not sure how to write a test for this.

* WebView/WebDynamicScrollBarsView.mm:
(shouldRoundScrollOrigin): Returns YES if there are any position:fixed
or position:sticky elements in the page.
(-[WebDynamicScrollBarsView scrollClipView:toPoint:]): Round the
scroll origin to the nearest pixel if needed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Unreviewed; marking another inspector test as flaky.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133226 268f45cc-cd09-0410-ab3c-d52691b4dbfc