Replace RenderListBox::updateLogicalHeight with RenderListBox::computeLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=97263

Reviewed by Ojan Vafai.

This is part of making computeLogicalHeight virtual so with any RenderBox pointer, one
can compute the logical height without mutating the RenderBox.

No new tests, this is a refactor and existing list box tests should pass.

* rendering/RenderBox.h:
(RenderBox):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::layout): Move layout related logic here.
(WebCore::RenderListBox::computeLogicalHeight): Use const version and remove layout related code.
* rendering/RenderListBox.h:
(RenderListBox): Override computeLogicalHeight.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Improve glyph selection of HarfBuzzShaper
https://bugs.webkit.org/show_bug.cgi?id=97164

Reviewed by Tony Chang.

Source/WebCore:

Take into account clusters for selection.

Test: fast/text/international/hebrew-selection.html

* platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Removed m_logClusters.
m_logCluster is no longer used.
(WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
- If targetX is in the left side of the first cluster, return the leftmost character index.
- If targetX is in the right side of the last cluster, return the rightmost character index.
- If targetX is between the right side of the cluster N and the left side of the cluster N+1, then:
  - return N+1 for LTR.
  - return N for RTL.
(WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
Find the cluster of index in question, then:
- return the left side boundary of the cluster for LTR.
- return the right side boundary of the cluster for RTL.
* platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
(HarfBuzzRun):

LayoutTests:

Added a test for complex text selection.

* fast/text/international/hebrew-selection-expected.html: Added.
* fast/text/international/hebrew-selection.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129175 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Kerning never occurs between a space and the following glyph
https://bugs.webkit.org/show_bug.cgi?id=97269

Reviewed by Tim Horton.

Source/WebCore: 

Covered by several existing tests.

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Changed to not reset the advance
of a space, and added a comment about how this also needs to be fixed for other characters
that are treated as spaces.

LayoutTests: 

* platform/mac/fast/text/emphasis-expected.png:
* platform/mac/fast/text/emphasis-expected.txt:
* platform/mac/fast/text/sticky-typesetting-features-expected.png:
* platform/mac/fast/text/sticky-typesetting-features-expected.txt:
* platform/mac/fast/text/thai-combining-mark-positioning-expected.png:
* platform/mac/fast/text/thai-combining-mark-positioning-expected.txt:
* platform/mac/fast/writing-mode/text-orientation-basic-expected.png:
* platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:



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