Fix bugs 24186, 26996, and 26998 by reworking the quirks-mode line-height handling so that inline elements that do not have text as children (or meet a few other conditions that show the author wants real CSS support) will not increase the size of the line, but will be as close to their correct size as possible without enlarging the line. This fix includes emulation of the strange Nav4/IE quirk that a block's line-height is enforced on the first line of LI elements and the last line of LI, DD, and DT elements. Many of the changes are removing an earlier fix for 24186.
r=buster
layout/base/public/nsIFrame.h
- Added GetContentAndOffsetsFromPoint() method. This
method will eventually replace GetPosition().
layout/base/public/nsIFrameSelection.h
- Added HandleDrag() and Start/StopAutoScrollTimer() methods.
layout/base/src/nsRangeList.cpp
- Added implementation for HandleDrag() and
Start/StopAutoScrollTimer() methods.
layout/html/base/src/nsBRFrame.cpp
- Added implementation for GetContentAndOffsetsFromPoint().
layout/html/base/src/nsFrame.cpp
layout/html/base/src/nsFrame.h
- Added implementation for GetContentAndOffsetsFromPoint().
- Added GetClosestViewForFrame() utility method.
- Modified HandleEvent() to call HandleRelease() which now
stops the auto scrolling timers.
- Modified HandleDrag() to call nsIFrameSelection's HandleDrag()
and Start/StopAutoScrollTimer() methods.
layout/html/base/src/nsTextFrame.cpp
- Added implementation for GetContentAndOffsetsFromPoint().