Add WTF::StringView and use it for grammar checking
https://bugs.webkit.org/show_bug.cgi?id=126644

Reviewed by Antti Koivisto.

Source/WebCore:

Use a StringView in TextCheckerClient::checkTextOfParagraph to avoid upconverting strings unnecessarily.

* editing/TextCheckingHelper.cpp:
(WebCore::checkTextOfParagraph):
Pass a StringView to TextCheckerClient::checkTextOfParagraph.

* loader/EmptyClients.h:
Update for TextCheckerClient changes.

* platform/text/TextCheckerClient.h:
Change TextCheckerClient::checkTextOfParagraph to take a StringView.

Source/WebKit/efl:

Update to match WebCore changes.

* WebCoreSupport/EditorClientEfl.h:
(WebCore::EditorClientEfl::checkTextOfParagraph):

Source/WebKit/mac:

* WebCoreSupport/WebEditorClient.h:
* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::checkTextOfParagraph):
Update to match the new signature.

(nsStringWithoutCopying):
New function that creates an NSString that references StringView data
without copying the data. (If this function proves to be useful elsewhere, it could
potentially be added to StringView).

Source/WebKit2:

Use a StringView and remove a FIXME.

* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::checkTextOfParagraph):
* WebProcess/WebCoreSupport/WebEditorClient.h:

Source/WTF:

Add a new StringView class which is an immutable reference to either an 8-bit or a 16-bit string.

This makes it easier to pass substrings around without having to either copy string data
or upconvert and use UChar pointers.

The StringView class is very loosely based on the std::string_view class which is proposed for a future version of C++,
see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3609.html for more details.

* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/Forward.h:
* wtf/text/StringView.h: Added.
(WTF::StringView::StringView):
(WTF::StringView::empty):
(WTF::StringView::characters8):
(WTF::StringView::characters16):
(WTF::StringView::isEmpty):
(WTF::StringView::length):
(WTF::StringView::is8Bit):
(WTF::StringView::substring):
(WTF::StringView::toString):
(WTF::StringView::toStringWithoutCopying):
(WTF::StringView::encodedCharacters):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r161517.
http://trac.webkit.org/changeset/161517
https://bugs.webkit.org/show_bug.cgi?id=126659

The fix didn't completely remove the problem and is now
standing in the way of the rollout of the offending patch
(Requested by zdobersek on #webkit).

Patch by Commit Queue <commit-queue@webkit.org> on 2014-01-08

* Scripts/webkitpy/port/gtk.py:
(GtkPort.__init__):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161519 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r161512.
http://trac.webkit.org/changeset/161512
https://bugs.webkit.org/show_bug.cgi?id=126655

Broke webkitpy tests (Requested by ap on #webkit).

Patch by Commit Queue <commit-queue@webkit.org> on 2014-01-08

* Scripts/webkitpy/port/gtk.py:
(GtkPort.__init__):
(GtkPort.setup_test_run):
(GtkPort._port_specific_expectations_files):
* Scripts/webkitpy/port/leakdetector_valgrind.py: Removed.
* Scripts/webkitpy/port/leakdetector_valgrind_unittest.py: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
a fractional value of the css letter-spacing property is not rendered as expected
https://bugs.webkit.org/show_bug.cgi?id=20606

Reviewed by Simon Fraser.

Source/WebCore:

This turns on fractional letter-spacing and word-spacing CSS values.
It is taken mostly from Blink r153727 and iOS. Updating the relevant
types is all that is necessary

Existing tests have been updated.

* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* platform/graphics/Font.cpp:
(WebCore::Font::Font):
(WebCore::Font::width):
* platform/graphics/Font.h:
(WebCore::Font::wordSpacing):
(WebCore::Font::letterSpacing):
(WebCore::Font::setWordSpacing):
(WebCore::Font::setLetterSpacing):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::wordSpacing):
(WebCore::RenderStyle::letterSpacing):
(WebCore::RenderStyle::setWordSpacing):
(WebCore::RenderStyle::setLetterSpacing):
* rendering/style/RenderStyle.h:

LayoutTests:

Manually verified that these tests are correct after enabling fractional letter-spacing and word spacing

* platform/mac/css1/text_properties/letter_spacing-expected.png:
* platform/mac/css1/text_properties/letter_spacing-expected.txt:
* platform/mac/css1/text_properties/word_spacing-expected.png:
* platform/mac/css1/text_properties/word_spacing-expected.txt:
* platform/mac/fast/text/basic/013-expected.png:
* platform/mac/fast/text/basic/013-expected.txt:
* platform/mac/fast/text/text-letter-spacing-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/text-spacing-01-b-expected.png:
* platform/mac/svg/W3C-SVG-1.1/text-spacing-01-b-expected.txt:
* platform/mac/svg/batik/text/textLayout-expected.txt:
* platform/mac/svg/custom/text-letter-spacing-expected.png:
* platform/mac/svg/custom/text-letter-spacing-expected.txt:
* platform/mac/svg/text/text-spacing-01-b-expected.png:
* platform/mac/svg/text/text-spacing-01-b-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161521 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove WKConnectionRef tests
https://bugs.webkit.org/show_bug.cgi?id=126666

Reviewed by Dan Bernstein.

The WKConnectionRef is poorly designed but thankfully not used anywhere.
Remove the API tests as a first step towards killing the entire thing.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2/WKConnection.cpp: Removed.
* TestWebKitAPI/Tests/WebKit2/WKConnection_Bundle.cpp: Removed.

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