Add selectTrailingWhitespaceEnabled setting to WebCore::Page
https://bugs.webkit.org/show_bug.cgi?id=109404

Patch by Manuel Rego Casasnovas <rego@igalia.com> on 2013-03-14
Reviewed by Tony Chang.

Source/WebCore:

Covered by
editing/selection/doubleclick-inline-first-last-contenteditable.html.

* page/Settings.cpp:
(WebCore): Configure default value for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled seetings as they are different in
Chromium port depending on the OS.
* page/Settings.in: Add new setting.

Source/WebKit/blackberry:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

Remove code related to DRT as it is not needed anymore.

* Api/DumpRenderTreeClient.h:
* WebCoreSupport/EditorClientBlackBerry.cpp:
(WebCore::EditorClientBlackBerry::smartInsertDeleteEnabled):
(WebCore::EditorClientBlackBerry::isSelectTrailingWhitespaceEnabled):

Source/WebKit/chromium:

Use new Page settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled and update API accordingly.

WebSettings API is required by DRT in order to set the proper default
values which are different from browser defaults.

* public/WebSettings.h: Add new API to manage smartInsertDeleteEnabled
and selectTrailingWhitespaceEnabled settings.
* public/WebViewClient.h: Remove API related to smartInsertDeleteEnabled
and selectTrailingWhitespaceEnabled as they will be managed from page
settings from now on.
* src/EditorClientImpl.cpp:
(WebKit::EditorClientImpl::smartInsertDeleteEnabled):
(WebKit::EditorClientImpl::isSelectTrailingWhitespaceEnabled): Use new
settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.
* src/WebSettingsImpl.cpp: Implement methods establishing the page
settings.
(WebKit::WebSettingsImpl::setSelectTrailingWhitespaceEnabled):
(WebKit):
(WebKit::WebSettingsImpl::setSmartInsertDeleteEnabled):
* src/WebSettingsImpl.h:
(WebSettingsImpl): Implement new API to manage the new settings.

Source/WebKit/efl:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

Remove code related to DRT as it is not needed anymore.

* WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
* WebCoreSupport/DumpRenderTreeSupportEfl.h:
* WebCoreSupport/EditorClientEfl.cpp:
(WebCore::EditorClientEfl::smartInsertDeleteEnabled):
(WebCore::EditorClientEfl::isSelectTrailingWhitespaceEnabled):
(WebCore::EditorClientEfl::EditorClientEfl):
* WebCoreSupport/EditorClientEfl.h:
(EditorClientEfl):

Source/WebKit/gtk:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

Remove code related to DRT as it is not needed anymore.

* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
* WebCoreSupport/DumpRenderTreeSupportGtk.h:
(DumpRenderTreeSupportGtk):
* WebCoreSupport/EditorClientGtk.cpp:
(WebKit::EditorClient::smartInsertDeleteEnabled):
(WebKit::EditorClient::isSelectTrailingWhitespaceEnabled):
(WebKit::EditorClient::EditorClient):
* WebCoreSupport/EditorClientGtk.h:
(EditorClient):

Source/WebKit/mac:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::smartInsertDeleteEnabled):
(WebEditorClient::isSelectTrailingWhitespaceEnabled):
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]): Initialize
settings from NSUserDefaults.
(-[WebView setSelectTrailingWhitespaceEnabled:]):
(-[WebView isSelectTrailingWhitespaceEnabled]):
(-[WebView setSmartInsertDeleteEnabled:]):
(-[WebView smartInsertDeleteEnabled]):
* WebView/WebViewData.h:
* WebView/WebViewData.mm:
(-[WebViewPrivate init]):

Source/WebKit/qt:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

Remove code related to DRT as it is not needed anymore.

* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
* WebCoreSupport/DumpRenderTreeSupportQt.h:
* WebCoreSupport/EditorClientQt.cpp:
(WebCore::EditorClientQt::smartInsertDeleteEnabled):
(WebCore::EditorClientQt::toggleSmartInsertDelete):
(WebCore::EditorClientQt::isSelectTrailingWhitespaceEnabled):
(WebCore::EditorClientQt::EditorClientQt):
* WebCoreSupport/EditorClientQt.h:
(EditorClientQt):

Source/WebKit/win:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

* WebCoreSupport/WebEditorClient.cpp:
(WebEditorClient::smartInsertDeleteEnabled):
(WebEditorClient::isSelectTrailingWhitespaceEnabled):
* WebView.cpp:
(WebView::WebView):
(WebView::setSmartInsertDeleteEnabled):
(WebView::smartInsertDeleteEnabled):
(WebView::setSelectTrailingWhitespaceEnabled):
(WebView::isSelectTrailingWhitespaceEnabled):
* WebView.h:
(WebView):

Source/WebKit/wince:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

* WebCoreSupport/EditorClientWinCE.cpp:
(WebKit::EditorClientWinCE::smartInsertDeleteEnabled):
(WebKit::EditorClientWinCE::isSelectTrailingWhitespaceEnabled):

Source/WebKit/wx:

Use new settings for smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled.

* WebKitSupport/EditorClientWx.cpp:
(WebCore::EditorClientWx::smartInsertDeleteEnabled):
(WebCore::EditorClientWx::isSelectTrailingWhitespaceEnabled):

Tools:

Removes all the code related to smartInsertDeleteEnabled and
selectTrailingWhitespaceEnabled settings as they will be managed from
internals from now on.

* DumpRenderTree/TestRunner.cpp:
(TestRunner::staticFunctions):
* DumpRenderTree/TestRunner.h:
(TestRunner):
* DumpRenderTree/blackberry/DumpRenderTree.cpp:
(WebKit):
(BlackBerry::WebKit::DumpRenderTree::resetToConsistentStateBeforeTesting):
* DumpRenderTree/blackberry/DumpRenderTreeBlackBerry.h:
(DumpRenderTree):
* DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp:
* DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:
(WebTestRunner::WebTestProxy::didStopLoading):
* DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:
(WebTestRunner::TestRunner::TestRunner):
(WebTestRunner::TestRunner::reset):
* DumpRenderTree/chromium/TestRunner/src/TestRunner.h:
(TestRunner):
* DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp:
(WebTestRunner::WebPreferences::applyTo): Set default values for
smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled settings as
Chromium DRT default values are different from Chromium browser.
* DumpRenderTree/chromium/TestRunner/src/WebTestProxy.cpp:
* DumpRenderTree/chromium/WebViewHost.cpp:
* DumpRenderTree/chromium/WebViewHost.h:
(WebViewHost):
* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::resetDefaultsToConsistentValues):
* DumpRenderTree/efl/TestRunnerEfl.cpp:
* DumpRenderTree/gtk/DumpRenderTree.cpp:
(resetDefaultsToConsistentValues):
* DumpRenderTree/gtk/TestRunnerGtk.cpp:
* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting):
* DumpRenderTree/mac/TestRunnerMac.mm:
* DumpRenderTree/qt/DumpRenderTreeQt.cpp:
(WebCore::WebPage::resetSettings):
* DumpRenderTree/qt/TestRunnerQt.cpp:
* DumpRenderTree/qt/TestRunnerQt.h:
(TestRunnerQt):
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebViewToConsistentStateBeforeTesting):
* DumpRenderTree/win/TestRunnerWin.cpp:
* DumpRenderTree/wx/TestRunnerWx.cpp:

LayoutTests:

Replace testRunner.setSelectTrailingWhitespaceEnabled by
internals.settings.setSelectTrailingWhitespaceEnabled in tests.

Be sure that trailingWhitespaceEnabled and
selectTrailingWhitespaceEnabled are set to opposite values as they are
mutually exclusive.

* editing/deleting/smart-editing-disabled.html:
* editing/selection/doubleclick-beside-cr-span.html:
* editing/selection/doubleclick-whitespace-crash.html:
* editing/selection/doubleclick-whitespace-img-crash.html:
* editing/selection/doubleclick-whitespace.html:
* editing/selection/script-tests/doubleclick-inline-first-last-contenteditable.js:
* editing/spelling/resources/util.js:
(initSpellTest):
* editing/spelling/spelling-double-clicked-word-with-underscores.html:
* editing/spelling/spelling-double-clicked-word.html:
* platform/wk2/TestExpectations: Unflag
editing/selection/doubleclick-inline-first-last-contenteditable.html
as it passes now.

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