Merge r174207 - Web Inspector: [GTK] Missing icons and enhancing the proportion and visibility of some icons
https://bugs.webkit.org/show_bug.cgi?id=137248

Reviewed by Carlos Garcia Campos.

Add more free icons and removed some unused ones for the Web
Inspector in GTK+.
Also, enhanced the visibility and/or proportion of several of the
icons.

* UserInterface/Images/gtk/AUTHORS:
* UserInterface/Images/gtk/COPYING:
* UserInterface/Images/gtk/Checkers.svg: Added.
* UserInterface/Images/gtk/Circle.svg: Added.
* UserInterface/Images/gtk/CloseLarge.svg: Added.
* UserInterface/Images/gtk/CloseTimeline.png: Removed.
* UserInterface/Images/gtk/CloseTimeline@2x.png: Removed.
* UserInterface/Images/gtk/Crosshair.svg:
* UserInterface/Images/gtk/DOMCharacterData.svg:
* UserInterface/Images/gtk/DOMComment.svg:
* UserInterface/Images/gtk/DOMDocument.svg:
* UserInterface/Images/gtk/DOMDocumentType.svg:
* UserInterface/Images/gtk/DOMElement.svg:
* UserInterface/Images/gtk/DOMNode.svg:
* UserInterface/Images/gtk/DOMTextNode.svg:
* UserInterface/Images/gtk/DOMTree.svg:
* UserInterface/Images/gtk/EventListener.svg:
* UserInterface/Images/gtk/Exception.svg:
* UserInterface/Images/gtk/Function.svg:
* UserInterface/Images/gtk/GradientStop.png: Added.
* UserInterface/Images/gtk/GradientStop@2x.png: Added.
* UserInterface/Images/gtk/GradientStopSelected.png: Added.
* UserInterface/Images/gtk/GradientStopSelected@2x.png: Added.
* UserInterface/Images/gtk/Issues.svg:
* UserInterface/Images/gtk/IssuesEnabled.svg:
* UserInterface/Images/gtk/LessColumns.svg: Removed.
* UserInterface/Images/gtk/Logs.svg:
* UserInterface/Images/gtk/Memory.svg: Removed.
* UserInterface/Images/gtk/MoreColumns.svg: Removed.
* UserInterface/Images/gtk/Native.svg:
* UserInterface/Images/gtk/NavigationItemAngleBrackets.svg:
* UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg:
* UserInterface/Images/gtk/NavigationItemBug.svg:
* UserInterface/Images/gtk/NavigationItemFile.svg:
* UserInterface/Images/gtk/NavigationItemLayers.svg:
* UserInterface/Images/gtk/NavigationItemMagnifyingGlass.svg: Removed.
* UserInterface/Images/gtk/NavigationItemProbes.pdf: Added.
* UserInterface/Images/gtk/NavigationItemStopwatch.svg:
* UserInterface/Images/gtk/NavigationItemTypes.svg: Added.
* UserInterface/Images/gtk/PaintFlashing.svg: Added.
* UserInterface/Images/gtk/PseudoElement.svg:
* UserInterface/Images/gtk/Record.svg: Added.
* UserInterface/Images/gtk/Recording.png: Removed.
* UserInterface/Images/gtk/Recording@2x.png: Removed.
* UserInterface/Images/gtk/RecordingHovered.png: Removed.
* UserInterface/Images/gtk/RecordingHovered@2x.png: Removed.
* UserInterface/Images/gtk/RecordingStopped.png: Removed.
* UserInterface/Images/gtk/RecordingStopped@2x.png: Removed.
* UserInterface/Images/gtk/Reflection.svg:
* UserInterface/Images/gtk/ReplayPauseButton.svg: Added.
* UserInterface/Images/gtk/ReplayPlayButton.svg: Added.
* UserInterface/Images/gtk/ReplayRecordingButton.svg: Added.
* UserInterface/Images/gtk/Request.svg:
* UserInterface/Images/gtk/Resources.svg:
* UserInterface/Images/gtk/Response.svg:
* UserInterface/Images/gtk/ResultLine.svg:
* UserInterface/Images/gtk/SourceCode.svg:
* UserInterface/Images/gtk/Stop.svg: Added.
* UserInterface/Images/gtk/StyleRuleAuthor.svg:
* UserInterface/Images/gtk/StyleRuleInherited.svg:
* UserInterface/Images/gtk/StyleRuleInheritedElement.svg:
* UserInterface/Images/gtk/StyleRuleInspector.svg:
* UserInterface/Images/gtk/StyleRuleUser.svg:
* UserInterface/Images/gtk/StyleRuleUserAgent.svg:
* UserInterface/Images/gtk/Time.svg:
* UserInterface/Images/gtk/TimelineRecordAnimation.svg:
* UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Added.
* UserInterface/Images/gtk/TimelineRecordEvent.svg:
* UserInterface/Images/gtk/TimelineRecordLayout.svg:
* UserInterface/Images/gtk/TimelineRecordPaint.svg:
* UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Added.
* UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg:
* UserInterface/Images/gtk/TimelineRecordStyle.svg:
* UserInterface/Images/gtk/TimelineRecordTimer.svg:
* UserInterface/Images/gtk/Weight.svg:

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r174002 - [GTK] Fix support for the initial-letter CSS property to first-letter
https://bugs.webkit.org/show_bug.cgi?id=137108

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-09-26
Reviewed by Alejandro G. Castro.

Source/WebCore:

Add support for cap-height to the font system.

* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::platformInit):

LayoutTests:

Add missing GTK test expectation files after http://webkit.org/b/136484

* platform/gtk/fast/css-generated-content/initial-letter-basic-expected.txt: Added.
* platform/gtk/fast/css-generated-content/initial-letter-border-padding-expected.txt: Added.
* platform/gtk/fast/css-generated-content/initial-letter-clearance-expected.txt: Added.
* platform/gtk/fast/css-generated-content/initial-letter-descender-expected.txt: Added.
* platform/gtk/fast/css-generated-content/initial-letter-raised-expected.txt: Added.
* platform/gtk/fast/css-generated-content/initial-letter-sunken-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173776 - Multithreaded WebGL is a bad idea - remove it
https://bugs.webkit.org/show_bug.cgi?id=136964
<rdar://problem/18399858>

Reviewed by Brent Fulgham.

Source/WebCore:

We should not allow multithreaded GL access. Remove the
feature.

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create):
* page/Settings.in:
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::Attributes::Attributes):
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):

Source/WebKit/mac:

Remove the setting to allow multithreaded WebGL.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences multithreadedWebGLEnabled]): Deleted.
(-[WebPreferences setMultithreadedWebGLEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:

Remove the setting to allow multithreaded WebGL.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetMultithreadedWebGLEnabled): Deleted.
(WKPreferencesGetMultithreadedWebGLEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r174394 - [SOUP] TLS errors should take precedence over HTTP authentication
https://bugs.webkit.org/show_bug.cgi?id=137300

Reviewed by Sergio Villar Senin.

Source/WebCore:

Handle TLS errors in got-headers callback to make sure it happens
before starting the authentication process.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::handleUnignoredTLSErrors): Refactored to receive the
soup message.
(WebCore::gotHeadersCallback): Return early and cancel the request in case of TLS errors.
(WebCore::sendRequestCallback): Do not handle TLS errors here, the request should have already been
cancelled at this point in case of TLS errors.

Tools:

Add a test case to check that authenticate signal is not emitted
in case of TLS errors, and the load fails instead.

* TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp:
(webViewAuthenticationCallback):
(testTLSErrorsHTTPAuth):
(httpsServerCallback):
(beforeAll):

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174420 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r174093 - [GTK] [EFL] Install TestNetscapePlugin apart from the other libs.
https://bugs.webkit.org/show_bug.cgi?id=137212

This moves TestNetscapePlugin to a new folder (lib/plugins).
We should not use the same directory for TestNetscapePlugin and
the other libraries, because we end up scanning all the .so in the
lib dir for every test.

Reviewed by Carlos Garcia Campos.

* DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Set LIBRARY_OUTPUT_DIRECTORY to lib/plugins.
* Scripts/webkitpy/port/efl.py:
(EflPort.setup_environ_for_server): Update plugin path.
* Scripts/webkitpy/port/gtk.py:
(GtkPort.setup_environ_for_server): Update plugin path.
* TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Update plugin path.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174421 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r174316 - Unreviewed. Add missing inspector files to compilation.

* PlatformGTK.cmake: Add javascript sources in
WebInspectorUI/UserInterface/External/Esprima to the list of
inspector files.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r174327 - [GTK] The new web inspector can't be docked again once undocked
https://bugs.webkit.org/show_bug.cgi?id=121544

Reviewed by Martin Robinson.

Use a GtkHeaderBar for the inspector window to add dock buttons
when building with GTK+ >= 3.10.

* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
* UIProcess/WebInspectorProxy.h:
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::dockButtonClicked):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::updateInspectorWindowTitle):
(WebKit::WebInspectorProxy::platformInspectedURLChanged):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174425 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r174309 - [GTK] generate-gtkdoc crashes when generating HTML due to encoding issues
https://bugs.webkit.org/show_bug.cgi?id=135502

Reviewed by Martin Robinson.

When writing to stdout/stderr fails due to a UnicodeDecodeError
exception, try again without encoding the output.

* gtk/gtkdoc.py:
(GTKDoc._run_command):

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174426 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173769 - Add a size check for CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=136882

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-09-19
Reviewed by Christophe Dumez.

* css/CSSSelector.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174427 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173783 - Minimize virtual function calls in MarkupAccumulator
https://bugs.webkit.org/show_bug.cgi?id=136957

Reviewed by Benjamin Poulain.

This patch minimizes the number of virtual function calls in
MarkupAccumulator by:
- De-virtualizing MarkupAccumulator::appendString(), which is never
  overridden
- Having MarkupAccumulator::appendEndTag() virtual function take an
  Element in argument instead of a Node, as it only applies to Element.
  Also add a non-virtual overload that takes a Node in argument and
  that does the isElementNode() check so that we don't need to explicitly
  do the check at each call site.

No new tests, no behavior change.

* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendEndTag):
(WebCore::MarkupAccumulator::shouldSelfClose):
(WebCore::MarkupAccumulator::appendEndMarkup):
* editing/MarkupAccumulator.h:
(WebCore::MarkupAccumulator::appendEndTag):
* page/PageSerializer.cpp:
(WebCore::SerializerMarkupAccumulator::appendEndTag):

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174428 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173766 - Provide a default argument for the most commonly used HitTestRequest variant
https://bugs.webkit.org/show_bug.cgi?id=136653

Reviewed by Darin Adler.

Make the default HitTestRequest flags be ReadOnly | Active | DisallowShadowContent
and change call sites using the default flags to use a HitTestRequest temporary.

Source/WebCore:

* dom/TreeScope.cpp:
(WebCore::nodeFromPoint):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::contains):
* page/DragController.cpp:
(WebCore::elementUnderMouse):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::handleMousePressEvent):
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::HitTestRequest):

Source/WebKit2:

* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173784 - Latching in iframes is not working as expected
https://bugs.webkit.org/show_bug.cgi?id=136729
<rdar://problem/18370549>

Reviewed by Simon Fraser.

Source/WebCore:

Test: platform/mac/fast/scrolling/scrolling-iframe-100pct.html

Correct latching behavior by moving the concept of latching from the event handler to the main frame.
The event handlers are per-document, and can improperly latch to the iframe element (rather than the
scrollable content of the iframe) resulting in incorrect behavior.

Also move the wheel event delta tracking to the main frame, as this is similarly "top-level" in nature.

* WebCore.vcxproj/WebCore.vcxproj: Add new LatchedState class.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Update constructor after moving some members to the new
LatchedState object.
(WebCore::EventHandler::clear): Call 'clear' on the LatchedState class.
(WebCore::EventHandler::platformRecordWheelEvent):  Update for new LatchedState class.
(WebCore::EventHandler::handleWheelEvent): Ditto.
(WebCore::EventHandler::clearLatchedState): Ditto.
(WebCore::EventHandler::defaultWheelEventHandler): Ditto.
* page/EventHandler.h:
* page/LatchedState.cpp: Added.
(WebCore::LatchedState::LatchedState):
(WebCore::LatchedState::~LatchedState):
(WebCore::LatchedState::clear):
(WebCore::LatchedState::setWheelEventElement):
(WebCore::LatchedState::setWidgetIsLatched):
(WebCore::LatchedState::setPreviousWheelScrolledElement):
(WebCore::LatchedState::setScrollableContainer):
* page/LatchedState.h: Added.
(WebCore::LatchedState::wheelEventElement):
(WebCore::LatchedState::frame):
(WebCore::LatchedState::setFrame):
(WebCore::LatchedState::widgetIsLatched):
(WebCore::LatchedState::previousWheelScrolledElement):
(WebCore::LatchedState::scrollableContainer):
(WebCore::LatchedState::startedGestureAtScrollLimit):
(WebCore::LatchedState::setStartedGestureAtScrollLimit):
* page/MainFrame.cpp:
(WebCore::MainFrame::MainFrame): Update for new members (LatchedState and WheelEventDeltaTracker)
* page/MainFrame.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::platformPrepareForWheelEvents): Use mainFrame-located latching information.
(WebCore::EventHandler::platformRecordWheelEvent): Use mainFrame-located wheel event delta tracking.
(WebCore::EventHandler::platformCompleteWheelEvent): Make sure to use the latched frame as well as
the latched element so that events get routed properly.
(WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Update for new mainFrame
location for latched state information.

LayoutTests:

* platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt: Added.
* platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173865 - Ensure that layout is up-to-date before hit-testing via RenderView
https://bugs.webkit.org/show_bug.cgi?id=136651

Reviewed by David Hyatt.

Ensure that layout is up-to-date before we do hit-testing via the RenderView.
Previously, RenderLayer::hitTest() called updateLayout(), but it's better
to push that responsibility onto RenderView before entering the RenderLayer
tree.

Make callers a little more consistent in getting the RenderView via
Frame::contentRenderer(), though perhaps we should remove that and just
call Document::renderView() everywhere.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::press): Hit test via the RenderView, rather
than doing so on the RenderView's layer, to ensure that we updateLayout().
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityHitTest): This code calls
hitTest() on arbitrary layers, so needs to explicitly update layout.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::contains):
* page/EventHandler.cpp:
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::hitTestResultAtPoint): The explicit updateLayout() is
no longer needed.
(WebCore::EventHandler::updateCursor):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::hitTestResultInFrame):
* page/Frame.cpp:
(WebCore::Frame::contentRenderer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
* rendering/RenderView.cpp:
(WebCore::RenderView::hitTest): Here's where we ensure that layout is up-to-date.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173887 - [Tools] git-commit uses wrong ChangeLog when run from a subdirectory
https://bugs.webkit.org/show_bug.cgi?id=137031

Reviewed by Joseph Pecoraro.

commit-log-editor is run from the top of the Git checkout, even when git-commit is invoked
from a subdirectory, making the parsed locations of ChangeLog files incorrect. Git provides
a mapping prefix in the GIT_PREFIX environment variable, so apply this prefix to the parsed
ChangeLog locations before passing them to createCommitMessage().

* Scripts/commit-log-editor:

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173906 - The style resolution cache applies properties incorrectly whenever direction != ltr
https://bugs.webkit.org/show_bug.cgi?id=137052

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-09-23
Reviewed by Andreas Kling.

Source/WebCore:

The optimization r135021 introduced a bug whenever the direction of subtree is not
uniform in the whole page.

When StyleResolver::applyMatchedProperties() resolves the style, some properties are
resolved differently based on the writing-mode and the direction.

In isCacheableInMatchedPropertiesCache(), the cases for writing-mode are already handled
by not caching any style with anything else than the default.
The direction was ignored, causing the bugs solved here.

Tests: css3/flexbox/flex-flow-2.html
       fast/css/style-resolver-cache-direction-1.html
       fast/css/style-resolver-cache-direction-2.html
       fast/css/style-resolver-cache-direction-3.html

* css/StyleResolver.cpp:
(WebCore::isCacheableInMatchedPropertiesCache):

LayoutTests:

* css3/flexbox/flex-flow-2-expected.txt: Added.
* css3/flexbox/flex-flow-2.html: Added.
The test flex-flow.html should have uncovered the bug. It did not because it uses
:nth-child(), which disable style optimizations.

flex-flow-2.html is a copy of flex-flow.html using classes instead of :nth-child().
This would have caught the bug.

* fast/css/style-resolver-cache-direction-1-expected.html: Added.
* fast/css/style-resolver-cache-direction-1.html: Added.
* fast/css/style-resolver-cache-direction-2-expected.html: Added.
* fast/css/style-resolver-cache-direction-2.html: Added.
* fast/css/style-resolver-cache-direction-3-expected.html: Added.
* fast/css/style-resolver-cache-direction-3.html: Added.
New basic tests for the fix.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173941 - REGRESSION: Text with a zero offset, zero blur shadow vanishes
https://bugs.webkit.org/show_bug.cgi?id=136801

Reviewed by Darin Adler.

Source/WebCore:

This patch performs some cleanup regarding TextPainter's shadow logic and handles an
additional case of empty shadows. Previously, there was tight coupling between
applyShadowToGraphicalContext() and paintTextWithShadows(), as they both used a
collection of variables to determine how shadows are to be drawn. This complexity has
been moved into a helper class, ShadowApplier, which performs what
applyShadowToGraphicsContext() used to do, and cleans up correctly in its destructor.
This removes the tight coupling mentioned earlier.

Test: fast/text/empty-shadow.html

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::applyShadowToGraphicsContext): Moved to ShadowApplier.
* rendering/InlineTextBox.h: Deleted applyShadowToGraphicsContext signature.
* rendering/TextPainter.cpp:
(WebCore::ShadowApplier::ShadowApplier): Perform the contents of applyShadowToGraphicsContext()
(WebCore::ShadowApplier::~ShadowApplier): Undo the work done previously
(WebCore::paintTextWithShadows): Create a ShadowApplier to do the relevant shadow work. In addition,
refactor some boolean flags to more meaningful ones with relation to the computation at hand.
(WebCore::isEmptyShadow): Moved to TextPainter.h, named shadowIsCompletelyCoveredByText()
* rendering/TextPainter.h:
(WebCore::ShadowApplier::ShadowApplier): Moved from InlineTextBox::applyShadowToGraphicsContext().
(WebCore::ShadowApplier::extraOffset): Getter.
(WebCore::ShadowApplier::~ShadowApplier): Moved from TextPainter::paintTextWithShadows().
(WebCore::isLastShadowIteration): Helper function.
(WebCore::shadowIsCompletelyCoveredByText): Determines whether or not we should not draw the shadow.
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintTextWithShadows): Update to use ShadowApplier.

LayoutTests:

This test should be a comprehensive test of empty shadows. It tests every
combination of one and two shadows being empty, as well as transparent and
opaque text.

After updating fast/text/empty-shadow.html, fast/text/empty-shadow-with-color.html
is no longer necessary.

* fast/text/empty-shadow-expected.html:
* fast/text/empty-shadow-with-color-expected.html: Removed.
* fast/text/empty-shadow-with-color.html: Removed.
* fast/text/empty-shadow.html:

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173943 - Old Turkic characters behave as left-to-right instead of right-to-left, because they are encoded as surrogate pairs.
https://bugs.webkit.org/show_bug.cgi?id=70029

Reviewed by Dan Bernstein.

Source/WebCore:

Test: fast/text/international/old-turkic-direction.html

* CMakeLists.txt: Added InlineIterator.cpp.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* rendering/RenderingAllInOne.cpp: Ditto.

* rendering/InlineIterator.cpp: Added.
(WebCore::InlineIterator::surrogateTextDirection): New function used to compute the direction
when a surrogate pair is involved.
* rendering/InlineIterator.h: Made the characterAt function private.
(WebCore::InlineIterator::previousInSameNode): Took out unneeded range check. A zero will underflow
and become a large number and the characterAt function will return 0 in that case.
(WebCore::InlineIterator::direction): Added code to check U16_IS_SINGLE before calling
u_charDirection, and call surrogateTextDirection instead.

LayoutTests:

* fast/text/international/old-turkic-direction.html: Added.
* fast/text/international/old-turkic-direction-expected.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174436 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173945 - Use tighter typing for render objects in RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=137102

Reviewed by Ryosuke Niwa.

Use tighter typing for render objects in RenderGeometryMap for clarity
and efficiency.

In particular, using RenderElement type instead of RenderObject
in canMapBetweenRenderers() allows us to call the faster
RenderElement::style() instead of RenderObject::style().

No new tests, no behavior change.

* rendering/RenderGeometryMap.cpp:
(WebCore::canMapBetweenRenderers):
(WebCore::RenderGeometryMap::pushMappingsToAncestor):

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173965 - ASSERTION FAILED: columnCount in WebCore::CSSParser::parseGridTemplateAreasRow
https://bugs.webkit.org/show_bug.cgi?id=136945

Reviewed by Sergio Villar Senin.

Source/WebCore:

Checking out whether the grid-template-areas value contains a white-space only
string, which is not valid as it does not produce a cell token.

Test: fast/css-grid-layout/grid-template-areas-empty-string-crash.html

* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTemplateAreasRow):

LayoutTests:

Testing the different types of white-space only strings for the grid-template-areas
property, which is not valid as it does not produce a cell token.

* fast/css-grid-layout/grid-template-areas-empty-string-crash-expected.txt: Added.
* fast/css-grid-layout/grid-template-areas-empty-string-crash.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174438 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge r173973 - CommitLayerTree decode fails in 32-bit apps on 64-bit devices (TransformationMatrix alignment differs)
https://bugs.webkit.org/show_bug.cgi?id=136444
<rdar://problem/17952526>

Reviewed by Anders Carlsson.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TransformationMatrix>::encode):
(IPC::ArgumentCoder<TransformationMatrix>::decode):
Stop using SimpleArgumentCoder to encode/decode TransformationMatrix,
because the alignment of TransformationMatrix differs between architectures,
and there's no guarantee that both sides of a connection are the same architecture.

git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.6@174439 268f45cc-cd09-0410-ab3c-d52691b4dbfc