CSS 2.1 failure: Word-spacing affects each space and non-breaking space
https://bugs.webkit.org/show_bug.cgi?id=89826

Reviewed by Eric Seidel.

Source/WebCore:

Add word spacing to consecutive spaces in a run per http://www.w3.org/TR/CSS21/text.html#spacing-props.

Test: fast/css/word-spacing-characters.html
      fast/css/word-spacing-characters-complex-text.html
      fast/css/word-spacing-characters-linebreak.html
      css2.1/20110323/word-spacing-characters-002.htm
      css2.1/20110323/word-spacing-characters-003.htm
      css2.1/20110323/word-spacing-remove-space-001.htm
      css2.1/20110323/word-spacing-remove-space-002.htm
      css2.1/20110323/word-spacing-remove-space-003.htm
      css2.1/20110323/word-spacing-remove-space-004.htm
      css2.1/20110323/word-spacing-remove-space-005.htm
      css2.1/20110323/word-spacing-remove-space-006.htm
      css2.1/20110323/c541-word-sp-001.htm
      css2.1/20110323/c541-word-sp-000.htm

* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance): All spaces (ordinary space or &nbsp;) get word-spacing added, even
  if they are consecutive.
* platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
(WebCore::HarfBuzzShaperBase::isWordEnd): ditto, but for the complex text case on Chromium. Had to use
  m_run rather than m_normalizedBuffer here as m_normalizedBuffer turns tabs into spaces! Unlike the simple
  text path, '\n' gets word-spacing - I observed this from fast/text/atsui-spacing-features.html but can't
  find it specified anywhere.
* platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
(WebCore::HarfBuzzShaperBase::isCodepointSpace):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Tested by word-spacing-linebreak.html

LayoutTests:

* css2.1/20110323/c541-word-sp-000-expected.html: Added.
* css2.1/20110323/c541-word-sp-000.htm: Renamed from LayoutTests/css2.1/t1604-c541-word-sp-00-b-a.html.
* css2.1/20110323/c541-word-sp-001-expected.html: Added.
* css2.1/20110323/c541-word-sp-001.htm: Added.
  Replaces t1604-c541-word-sp-01-b-a.html below.
* css2.1/20110323/word-spacing-characters-002-expected.html: Added.
* css2.1/20110323/word-spacing-characters-002.htm: Added.
* css2.1/20110323/word-spacing-characters-003-expected.html: Added.
* css2.1/20110323/word-spacing-characters-003.htm: Added.
  These passed already.
* css2.1/20110323/word-spacing-remove-space-001-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-001.htm: Added.
* css2.1/20110323/word-spacing-remove-space-002-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-002.htm: Added.
* css2.1/20110323/word-spacing-remove-space-003-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-003.htm: Added.
* css2.1/20110323/word-spacing-remove-space-004-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-004.htm: Added.
* css2.1/20110323/word-spacing-remove-space-005-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-005.htm: Added.
* css2.1/20110323/word-spacing-remove-space-006-expected.html: Added.
* css2.1/20110323/word-spacing-remove-space-006.htm: Added.
  These 6 tests are fixed by this patch.
* css2.1/t1604-c541-word-sp-01-b-a.html: Removed.
  Per http://lists.w3.org/Archives/Public/public-css-testsuite/2010Jan/0029.html t1604-c541-word-sp-01-b-a.htm is
  now invalid and has been replaced by c541-word-sp-001.htm above.
* fast/css/word-spacing-characters-complex-text-expected.html: Added.
* fast/css/word-spacing-characters-complex-text.html: Added.
  This is a complex text version of word-spacing-characters-001.htm
* fast/css/word-spacing-characters-expected.html: Added.
* fast/css/word-spacing-characters.html: Added.
  The original test (word-spacing-characters-001.htm) has two spaces between the non-breaking spaces in the second last case.
  This causes WebKit to split the text into two-runs and drop the second of the two spaces. This entire test can be replaced
  with word-spacing-characters-001.htm from the css test suite when https://bugs.webkit.org/show_bug.cgi?id=89827 is fixed.
* fast/css/word-spacing-linebreak-expected.html: Added.
* fast/css/word-spacing-linebreak.html: Added.
* platform/chromium-linux/css2.1/t1604-c541-word-sp-00-b-a-expected.png: Removed.
* platform/chromium-linux/css2.1/t1604-c541-word-sp-00-b-a-expected.txt: Removed.
* platform/chromium-linux/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-linux/fast/css/word-space-extra-expected.png:
* platform/chromium-mac-snowleopard/css2.1/t1604-c541-word-sp-00-b-a-expected.png: Removed.
* platform/chromium-mac-snowleopard/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-mac/css2.1/t1604-c541-word-sp-00-b-a-expected.png: Removed.
* platform/chromium-mac/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-win/css2.1/t1604-c541-word-sp-00-b-a-expected.png: Removed.
* platform/chromium-win/css2.1/t1604-c541-word-sp-00-b-a-expected.txt: Removed.
* platform/chromium-win/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/chromium-win/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/chromium-win/fast/css/word-space-extra-expected.txt:
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/efl/css2.1/t1604-c541-word-sp-00-b-a-expected.png: Removed.
* platform/efl/css2.1/t1604-c541-word-sp-00-b-a-expected.txt: Removed.
* platform/efl/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/efl/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/gtk/TestExpectations:
* platform/gtk/css2.1/t1604-c541-word-sp-00-b-a-expected.png: Removed.
* platform/gtk/css2.1/t1604-c541-word-sp-00-b-a-expected.txt: Removed.
* platform/gtk/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/gtk/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/mac/TestExpectations:
* platform/mac/css2.1/t1604-c541-word-sp-00-b-a-expected.png: Removed.
* platform/mac/css2.1/t1604-c541-word-sp-00-b-a-expected.txt: Removed.
* platform/mac/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/mac/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/qt/TestExpectations:
* platform/qt/css2.1/t1604-c541-word-sp-00-b-a-expected.txt: Removed.
* platform/qt/css2.1/t1604-c541-word-sp-01-b-a-expected.png: Removed.
* platform/qt/css2.1/t1604-c541-word-sp-01-b-a-expected.txt: Removed.
* platform/win/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Plumb through EXT_debug_marker entry points
https://bugs.webkit.org/show_bug.cgi?id=93860

Patch by Gregg Tavares <gman@google.com> on 2012-08-14
Reviewed by Kenneth Russell.

Source/Platform:

insertEventMarkerEXT, pushGroupMarkerEXT, popGroupMarkerEXT are
all entry points exposed by the OpenGL ES EXT_debug_marker
extension.

* chromium/public/WebGraphicsContext3D.h:
(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::insertEventMarkerEXT):
(WebKit::WebGraphicsContext3D::pushGroupMarkerEXT):
(WebKit::WebGraphicsContext3D::popGroupMarkerEXT):

Source/WebCore:

insertEventMarkerEXT, pushGroupMarkerEXT, popGroupMarkerEXT,
are all entry points exposed by the OpenGL ES
EXT_debug_marker extension

No new tests as no new functionality exposed to web.

* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::create):
* platform/chromium/support/Extensions3DChromium.cpp:
(WebCore::Extensions3DChromium::insertEventMarkerEXT):
(WebCore):
(WebCore::Extensions3DChromium::pushGroupMarkerEXT):
(WebCore::Extensions3DChromium::popGroupMarkerEXT):
* platform/graphics/Extensions3D.h:
(Extensions3D):
* platform/graphics/chromium/Extensions3DChromium.h:
(Extensions3DChromium):
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::insertEventMarkerEXT):
(WebCore):
(WebCore::Extensions3DOpenGL::pushGroupMarkerEXT):
(WebCore::Extensions3DOpenGL::popGroupMarkerEXT):
* platform/graphics/opengl/Extensions3DOpenGL.h:
(Extensions3DOpenGL):
* platform/graphics/opengl/Extensions3DOpenGLES.cpp:
(WebCore::Extensions3DOpenGLES::insertEventMarkerEXT):
(WebCore):
(WebCore::Extensions3DOpenGLES::pushGroupMarkerEXT):
(WebCore::Extensions3DOpenGLES::popGroupMarkerEXT):
* platform/graphics/opengl/Extensions3DOpenGLES.h:
(Extensions3DOpenGLES):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125580 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Add a test to WebFrameTest for selectRange and visiblePositionForWindowPoint.
https://bugs.webkit.org/show_bug.cgi?id=93108

Patch by Iain Merrick <husky@chromium.org> on 2012-08-14
Reviewed by Adam Barth.

Adds a new test WebFrameTest.SelectRange. This tests WebFrameImpl::selectRange,
and also serves to test WebFrameImpl::visiblePositionForWindowPoint as it is
used by selectRange.

The test uses sample files that contain selected text on load. The test uses
WebViewImpl::selectionBounds to get the coordinates, deselects all, then
calls WebFrameImpl::selectRange to attempt to reselect the same text.

Four cases are tested:
- the basic case
- the case where the selected text is offscreen due to a scroll
- the case where the selected text is in an iframe
- the case where the selected text is in an editable element

* tests/WebFrameTest.cpp:
* tests/data/select_range_basic.html: Added.
* tests/data/select_range_editable.html: Added.
* tests/data/select_range_iframe.html: Added.
* tests/data/select_range_scroll.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125581 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Mark inspector/debugger tests as flaky timeout on Win7
https://bugs.webkit.org/show_bug.cgi?id=94002

Unreviewed gardening. Update expectations.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125582 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Gtk] Include all files guarded by ENABLE_* guards in Source/WebCore/GNUmakefile.list.am into the build
https://bugs.webkit.org/show_bug.cgi?id=90696

Reviewed by Philippe Normand.

Include all files in the Autotools build that are currently guarded by ENABLE_* guards in
the WebCore GNUmakefile.list.am, regardless of the feature being enabled. Compilation should
rely on proper use of guards inside source files and preprocessor work to keep the disabled
features out.

The only exception left is the ENABLE_WEBGL guard that includes the ANGLE into compilation
only if WebGL feature is enabled.

No new tests - no new functionality.

* GNUmakefile.am:
* GNUmakefile.list.am:
* bindings/gobject/GNUmakefile.am: Add StorageInfo to the DOM bindings, despite
the feature being currently disabled.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125583 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Fix use of endsWith to use string instead of char.
https://bugs.webkit.org/show_bug.cgi?id=93994

Reviewed by Antonio Gomes.

Regex comparison should use string instead of char comparison.

* WebKitSupport/DOMSupport.cpp:
(BlackBerry::WebKit::DOMSupport::elementPatternMatches):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125584 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Use constructor to initialize rect in TouchEventHandler::drawTapHighlight()
https://bugs.webkit.org/show_bug.cgi?id=93988

Reviewed by Antonio Gomes.

Use constructor to initialize rect in TouchEventHandler::drawTapHighlight()

* WebKitSupport/TouchEventHandler.cpp:
(BlackBerry::WebKit::TouchEventHandler::drawTapHighlight):


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