Title: [144221] trunk
Revision
144221
Author
[email protected]
Date
2013-02-27 12:20:37 -0800 (Wed, 27 Feb 2013)

Log Message

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

Patch by Manuel Rego Casasnovas <[email protected]> on 2013-02-27
Reviewed by Ryosuke Niwa.

Source/WebCore:

Covered by editing/deleting/smart-editing-disabled.html.

* page/Settings.in: Add new setting with true as initial value.

Source/WebKit2:

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode): Remove code related to
isSmartInsertDeleteEnabled.
* Shared/WebPageCreationParameters.h:
(WebPageCreationParameters): Remove isSmartInsertDeleteEnabled.
* Shared/WebPreferencesStore.h:
(WebKit): Add macro for smartInsertDeleteEnabled setting.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSmartInsertDeleteEnabled):
(WKPreferencesGetSmartInsertDeleteEnabled): Implement methods using the
new setting.
* UIProcess/API/C/WKPreferencesPrivate.h: Add new methods headers.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage): Set smartInsertDeleteEnabled
setting using m_isSmartInsertDeleteEnabled to keep initial value on Mac.
(WebKit::WebPageProxy::creationParameters): Remove usage of
parameters.isSmartInsertDeleteEnabled.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::smartInsertDeleteEnabled): Enable method for
all platforms.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Remove m_isSmartInsertDeleteEnabled
initialization.
(WebKit::WebPage::updatePreferences): Set smartInsertDeleteEnabled
setting.
(WebKit::WebPage::isSmartInsertDeleteEnabled): Implement method using
settings.
(WebKit):
(WebKit::WebPage::setSmartInsertDeleteEnabled): Implement method using
settings.
* WebProcess/WebPage/WebPage.h:
(WebPage): Enable methods dealing with smartInsertDeleteEnabled for all
platforms and remove m_isSmartInsertDeleteEnabled as it will be a
setting.

LayoutTests:

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

* 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:
* platform/wk2/TestExpectations: Unflag
editing/deleting/smart-editing-disabled.html as it passes now.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (144220 => 144221)


--- trunk/LayoutTests/ChangeLog	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/LayoutTests/ChangeLog	2013-02-27 20:20:37 UTC (rev 144221)
@@ -1,3 +1,21 @@
+2013-02-27  Manuel Rego Casasnovas  <[email protected]>
+
+        Add smartInsertDeleteEnabled setting to WebCore::Page
+        https://bugs.webkit.org/show_bug.cgi?id=107840
+
+        Reviewed by Ryosuke Niwa.
+
+        Replace testRunner.setSmartInsertDeleteEnabled by
+        internals.settings.setSmartInsertDeleteEnabled in tests.
+
+        * 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:
+        * platform/wk2/TestExpectations: Unflag
+        editing/deleting/smart-editing-disabled.html as it passes now.
+
 2013-02-27  Chris Fleizach  <[email protected]>
 
         WebSpeech: Support pause/resume ability

Modified: trunk/LayoutTests/editing/deleting/smart-editing-disabled.html (144220 => 144221)


--- trunk/LayoutTests/editing/deleting/smart-editing-disabled.html	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/LayoutTests/editing/deleting/smart-editing-disabled.html	2013-02-27 20:20:37 UTC (rev 144221)
@@ -4,7 +4,7 @@
 
 if (window.testRunner) {
     testRunner.dumpAsText();
-    testRunner.setSmartInsertDeleteEnabled(false);
+    internals.settings.setSmartInsertDeleteEnabled(false);
 }
 
 function editingTest() {

Modified: trunk/LayoutTests/editing/selection/doubleclick-beside-cr-span.html (144220 => 144221)


--- trunk/LayoutTests/editing/selection/doubleclick-beside-cr-span.html	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/LayoutTests/editing/selection/doubleclick-beside-cr-span.html	2013-02-27 20:20:37 UTC (rev 144221)
@@ -3,7 +3,7 @@
 <script>
 if (window.testRunner) {
      testRunner.dumpAsText();
-     testRunner.setSmartInsertDeleteEnabled(false);
+     internals.settings.setSmartInsertDeleteEnabled(false);
      testRunner.setSelectTrailingWhitespaceEnabled(true);
 }
 

Modified: trunk/LayoutTests/editing/selection/doubleclick-whitespace-crash.html (144220 => 144221)


--- trunk/LayoutTests/editing/selection/doubleclick-whitespace-crash.html	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/LayoutTests/editing/selection/doubleclick-whitespace-crash.html	2013-02-27 20:20:37 UTC (rev 144221)
@@ -3,7 +3,7 @@
 <script>
 if (window.testRunner) {
      testRunner.dumpAsText();
-     testRunner.setSmartInsertDeleteEnabled(false);
+     internals.settings.setSmartInsertDeleteEnabled(false);
      testRunner.setSelectTrailingWhitespaceEnabled(true);
 }
 </script>

Modified: trunk/LayoutTests/editing/selection/doubleclick-whitespace-img-crash.html (144220 => 144221)


--- trunk/LayoutTests/editing/selection/doubleclick-whitespace-img-crash.html	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/LayoutTests/editing/selection/doubleclick-whitespace-img-crash.html	2013-02-27 20:20:37 UTC (rev 144221)
@@ -3,7 +3,7 @@
 <script>
 if (window.testRunner) {
      testRunner.dumpAsText();
-     testRunner.setSmartInsertDeleteEnabled(false);
+     internals.settings.setSmartInsertDeleteEnabled(false);
      testRunner.setSelectTrailingWhitespaceEnabled(true);
      testRunner.waitUntilDone();
 }

Modified: trunk/LayoutTests/editing/selection/doubleclick-whitespace.html (144220 => 144221)


--- trunk/LayoutTests/editing/selection/doubleclick-whitespace.html	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/LayoutTests/editing/selection/doubleclick-whitespace.html	2013-02-27 20:20:37 UTC (rev 144221)
@@ -3,7 +3,7 @@
 <script>
 if (window.testRunner) {
      testRunner.dumpAsText();
-     testRunner.setSmartInsertDeleteEnabled(false);
+     internals.settings.setSmartInsertDeleteEnabled(false);
      testRunner.setSelectTrailingWhitespaceEnabled(true);
 }
 

Modified: trunk/LayoutTests/platform/wk2/TestExpectations (144220 => 144221)


--- trunk/LayoutTests/platform/wk2/TestExpectations	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/LayoutTests/platform/wk2/TestExpectations	2013-02-27 20:20:37 UTC (rev 144221)
@@ -367,9 +367,6 @@
 # WebKitTestRunner should dump text/plain content as text
 http/tests/incremental/slow-utf8-text.pl
 
-# WebKitTestRunner needs layoutTestController.setSmartInsertDeleteEnabled
-editing/deleting/smart-editing-disabled.html
-
 # WebKitTestRunner needs plainText.plainText
 editing/text-iterator/basic-iteration.html
 

Modified: trunk/Source/WebCore/ChangeLog (144220 => 144221)


--- trunk/Source/WebCore/ChangeLog	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 20:20:37 UTC (rev 144221)
@@ -1,3 +1,14 @@
+2013-02-27  Manuel Rego Casasnovas  <[email protected]>
+
+        Add smartInsertDeleteEnabled setting to WebCore::Page
+        https://bugs.webkit.org/show_bug.cgi?id=107840
+
+        Reviewed by Ryosuke Niwa.
+
+        Covered by editing/deleting/smart-editing-disabled.html.
+
+        * page/Settings.in: Add new setting with true as initial value.
+
 2013-02-27  Chris Fleizach  <[email protected]>
 
         WebSpeech: Support pause/resume ability

Modified: trunk/Source/WebCore/page/Settings.in (144220 => 144221)


--- trunk/Source/WebCore/page/Settings.in	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebCore/page/Settings.in	2013-02-27 20:20:37 UTC (rev 144221)
@@ -194,3 +194,5 @@
 unifiedTextCheckerEnabled initial=defaultUnifiedTextCheckerEnabled
 
 logsPageMessagesToSystemConsoleEnabled initial=false
+
+smartInsertDeleteEnabled initial=true

Modified: trunk/Source/WebKit2/ChangeLog (144220 => 144221)


--- trunk/Source/WebKit2/ChangeLog	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-27 20:20:37 UTC (rev 144221)
@@ -1,3 +1,47 @@
+2013-02-27  Manuel Rego Casasnovas  <[email protected]>
+
+        Add smartInsertDeleteEnabled setting to WebCore::Page
+        https://bugs.webkit.org/show_bug.cgi?id=107840
+
+        Reviewed by Ryosuke Niwa.
+
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode):
+        (WebKit::WebPageCreationParameters::decode): Remove code related to
+        isSmartInsertDeleteEnabled.
+        * Shared/WebPageCreationParameters.h:
+        (WebPageCreationParameters): Remove isSmartInsertDeleteEnabled.
+        * Shared/WebPreferencesStore.h:
+        (WebKit): Add macro for smartInsertDeleteEnabled setting.
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetSmartInsertDeleteEnabled):
+        (WKPreferencesGetSmartInsertDeleteEnabled): Implement methods using the
+        new setting.
+        * UIProcess/API/C/WKPreferencesPrivate.h: Add new methods headers.
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::initializeWebPage): Set smartInsertDeleteEnabled
+        setting using m_isSmartInsertDeleteEnabled to keep initial value on Mac.
+        (WebKit::WebPageProxy::creationParameters): Remove usage of
+        parameters.isSmartInsertDeleteEnabled.
+        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+        (WebKit::WebEditorClient::smartInsertDeleteEnabled): Enable method for
+        all platforms.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage): Remove m_isSmartInsertDeleteEnabled
+        initialization.
+        (WebKit::WebPage::updatePreferences): Set smartInsertDeleteEnabled
+        setting.
+        (WebKit::WebPage::isSmartInsertDeleteEnabled): Implement method using
+        settings.
+        (WebKit):
+        (WebKit::WebPage::setSmartInsertDeleteEnabled): Implement method using
+        settings.
+        * WebProcess/WebPage/WebPage.h:
+        (WebPage): Enable methods dealing with smartInsertDeleteEnabled for all
+        platforms and remove m_isSmartInsertDeleteEnabled as it will be a
+        setting.
+
+
 2013-02-27  Anders Carlsson  <[email protected]>
 
         More storage scaffolding

Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp (144220 => 144221)


--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp	2013-02-27 20:20:37 UTC (rev 144221)
@@ -60,7 +60,6 @@
     encoder << mayStartMediaWhenInWindow;
 
 #if PLATFORM(MAC)
-    encoder << isSmartInsertDeleteEnabled;
     encoder.encodeEnum(layerHostingMode);
     encoder << colorSpace;
 #endif
@@ -120,8 +119,6 @@
         return false;
 
 #if PLATFORM(MAC)
-    if (!decoder.decode(parameters.isSmartInsertDeleteEnabled))
-        return false;
     if (!decoder.decodeEnum(parameters.layerHostingMode))
         return false;
     if (!decoder.decode(parameters.colorSpace))

Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.h (144220 => 144221)


--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.h	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.h	2013-02-27 20:20:37 UTC (rev 144221)
@@ -88,7 +88,6 @@
     bool mayStartMediaWhenInWindow;
 
 #if PLATFORM(MAC)
-    bool isSmartInsertDeleteEnabled;
     LayerHostingMode layerHostingMode;
     ColorSpaceData colorSpace;
 #endif

Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (144220 => 144221)


--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2013-02-27 20:20:37 UTC (rev 144221)
@@ -140,6 +140,7 @@
     macro(QTKitEnabled, isQTKitEnabled, Bool, bool, true) \
     macro(LogsPageMessagesToSystemConsoleEnabled, logsPageMessagesToSystemConsoleEnabled, Bool, bool, false) \
     macro(PageVisibilityBasedProcessSuppressionEnabled, pageVisibilityBasedProcessSuppressionEnabled, Bool, bool, false) \
+    macro(SmartInsertDeleteEnabled, smartInsertDeleteEnabled, Bool, bool, true) \
     \
 
 #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (144220 => 144221)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2013-02-27 20:20:37 UTC (rev 144221)
@@ -1033,3 +1033,13 @@
 {
     return toImpl(preferencesRef)->pageVisibilityBasedProcessSuppressionEnabled();
 }
+
+void WKPreferencesSetSmartInsertDeleteEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setSmartInsertDeleteEnabled(enabled);
+}
+
+bool WKPreferencesGetSmartInsertDeleteEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->smartInsertDeleteEnabled();
+}

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h (144220 => 144221)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2013-02-27 20:20:37 UTC (rev 144221)
@@ -249,6 +249,10 @@
 
 WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);
 
+// Defaults to true
+WK_EXPORT void WKPreferencesSetSmartInsertDeleteEnabled(WKPreferencesRef preferences, bool enabled);
+WK_EXPORT bool WKPreferencesGetSmartInsertDeleteEnabled(WKPreferencesRef preferences);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (144220 => 144221)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-02-27 20:20:37 UTC (rev 144221)
@@ -452,6 +452,10 @@
 #elif ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
     m_process->send(Messages::WebPage::SetVisibilityState(m_isVisible ? PageVisibilityStateVisible : PageVisibilityStateHidden, /* isInitialState */ true), m_pageID);
 #endif
+
+#if PLATFORM(MAC)
+    m_process->send(Messages::WebPage::SetSmartInsertDeleteEnabled(m_isSmartInsertDeleteEnabled), m_pageID);
+#endif
 }
 
 void WebPageProxy::close()
@@ -3834,7 +3838,6 @@
     parameters.mayStartMediaWhenInWindow = m_mayStartMediaWhenInWindow;
 
 #if PLATFORM(MAC)
-    parameters.isSmartInsertDeleteEnabled = m_isSmartInsertDeleteEnabled;
     parameters.layerHostingMode = m_layerHostingMode;
     parameters.colorSpace = m_pageClient->colorSpace();
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp (144220 => 144221)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp	2013-02-27 20:20:37 UTC (rev 144221)
@@ -82,12 +82,7 @@
 
 bool WebEditorClient::smartInsertDeleteEnabled()
 {
-    // FIXME: Why isn't this Mac specific like toggleSmartInsertDeleteEnabled?
-#if PLATFORM(MAC)
     return m_page->isSmartInsertDeleteEnabled();
-#else
-    return true;
-#endif
 }
  
 bool WebEditorClient::isSelectTrailingWhitespaceEnabled()

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (144220 => 144221)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-02-27 20:20:37 UTC (rev 144221)
@@ -237,7 +237,6 @@
 #if PLATFORM(MAC)
     , m_pdfPluginEnabled(false)
     , m_windowIsVisible(false)
-    , m_isSmartInsertDeleteEnabled(parameters.isSmartInsertDeleteEnabled)
     , m_layerHostingMode(parameters.layerHostingMode)
     , m_keyboardEventBeingInterpreted(0)
 #elif PLATFORM(GTK)
@@ -2391,6 +2390,8 @@
 
     settings->setLogsPageMessagesToSystemConsoleEnabled(store.getBoolValueForKey(WebPreferencesKey::logsPageMessagesToSystemConsoleEnabledKey()));
 
+    settings->setSmartInsertDeleteEnabled(store.getBoolValueForKey(WebPreferencesKey::smartInsertDeleteEnabledKey()));
+
     platformPreferencesDidChange(store);
 
     if (m_drawingArea)
@@ -3782,4 +3783,14 @@
         corePage()->mainFrame()->view()->enableAutoSizeMode(false, IntSize(), IntSize());
 }
 
+bool WebPage::isSmartInsertDeleteEnabled()
+{
+    return m_page->settings()->smartInsertDeleteEnabled();
+}
+
+void WebPage::setSmartInsertDeleteEnabled(bool enabled)
+{
+    m_page->settings()->setSmartInsertDeleteEnabled(enabled);
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (144220 => 144221)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2013-02-27 20:14:45 UTC (rev 144220)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2013-02-27 20:20:37 UTC (rev 144221)
@@ -480,9 +480,11 @@
     void speak(const String&);
     void stopSpeaking();
 
-    bool isSmartInsertDeleteEnabled() const { return m_isSmartInsertDeleteEnabled; }
 #endif
 
+    bool isSmartInsertDeleteEnabled();
+    void setSmartInsertDeleteEnabled(bool);
+
     void replaceSelectionWithText(WebCore::Frame*, const String&);
     void clearSelection();
 
@@ -768,10 +770,6 @@
     void capitalizeWord();
 #endif
 
-#if PLATFORM(MAC)
-    void setSmartInsertDeleteEnabled(bool isSmartInsertDeleteEnabled) { m_isSmartInsertDeleteEnabled = isSmartInsertDeleteEnabled; }
-#endif
-
 #if ENABLE(CONTEXT_MENUS)
     void didSelectItemFromActiveContextMenu(const WebContextMenuItemData&);
 #endif
@@ -822,9 +820,6 @@
     // Whether the containing window is visible or not.
     bool m_windowIsVisible;
 
-    // Whether smart insert/delete is enabled or not.
-    bool m_isSmartInsertDeleteEnabled;
-
     // The frame of the containing window in screen coordinates.
     WebCore::IntRect m_windowFrameInScreenCoordinates;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to