Title: [102148] trunk
Revision
102148
Author
a...@apple.com
Date
2011-12-06 09:36:48 -0800 (Tue, 06 Dec 2011)

Log Message

        REGRESSION (WebKit2): Kill ring is not cleared when selection changes
        https://bugs.webkit.org/show_bug.cgi?id=73888
        <rdar://problem/10532310>

        Reviewed by Mark Rowe.

        Test: editing/pasteboard/emacs-ctrl-k-with-move.html

        * editing/Editor.cpp: (WebCore::Editor::respondToChangedSelection): Moved the code to clear
        kill ring from Mac WebKit, as it's needed in all Mac ports at least.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (102147 => 102148)


--- trunk/LayoutTests/ChangeLog	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/LayoutTests/ChangeLog	2011-12-06 17:36:48 UTC (rev 102148)
@@ -1,3 +1,20 @@
+2011-12-06  Alexey Proskuryakov  <a...@apple.com>
+
+        REGRESSION (WebKit2): Kill ring is not cleared when selection changes
+        https://bugs.webkit.org/show_bug.cgi?id=73888
+        <rdar://problem/10532310>
+
+        Reviewed by Mark Rowe.
+
+        * editing/pasteboard/emacs-ctrl-k-with-move-expected.txt: Added.
+        * editing/pasteboard/emacs-ctrl-k-with-move.html: Added.
+
+        * platform/chromium/test_expectations.txt:
+        * platform/qt/Skipped:
+        * platform/win/Skipped:
+        * platform/wincairo/Skipped:
+        Platforms that fail other emacs key bindings tests likely fail this new one, too.
+
 2011-12-06  Vsevolod Vlasov  <vse...@chromium.org>
 
         Unreviewed chromium expectations update.

Added: trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move-expected.txt (0 => 102148)


--- trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move-expected.txt	2011-12-06 17:36:48 UTC (rev 102148)
@@ -0,0 +1,14 @@
+Test for bug 73888: Kill ring is not cleared when selection changes.
+
+one
+three
+five
+four
+
+Expected result:
+one
+three
+five
+four
+
+
Property changes on: trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move-expected.txt
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move.html (0 => 102148)


--- trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move.html	                        (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move.html	2011-12-06 17:36:48 UTC (rev 102148)
@@ -0,0 +1,36 @@
+<p>Test for <a href="" 73888</a>:
+Kill ring is not cleared when selection changes.</p>
+
+<div contenteditable id=ce>
+one
+<div>two</div>
+<div>three</div>
+<div>four</div>
+<div>five</div>
+<div><br></div>
+</div>
+
+<div>
+Expected result:
+<div>one</div>
+<div>three</div>
+<div>five</div>
+<div>four</div>
+<div><br></div>
+</div>
+
+<script>
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    document.getElementById("ce").focus();
+    layoutTestController.execCommand("moveDown");
+    layoutTestController.execCommand("deleteToEndOfParagraph");
+    layoutTestController.execCommand("deleteToEndOfParagraph");
+    layoutTestController.execCommand("moveDown");
+    layoutTestController.execCommand("deleteToEndOfParagraph");
+    layoutTestController.execCommand("deleteToEndOfParagraph");
+    layoutTestController.execCommand("moveDown");
+    layoutTestController.execCommand("yank");
+} else
+    document.write("This test only runs in automatic mode");
+</script>
Property changes on: trunk/LayoutTests/editing/pasteboard/emacs-ctrl-k-with-move.html
___________________________________________________________________

Added: svn:mime-type

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (102147 => 102148)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-12-06 17:36:48 UTC (rev 102148)
@@ -196,12 +196,14 @@
 // keybindings but they currently do not.
 WONTFIX WIN LINUX SKIP : editing/pasteboard/emacs-cntl-y-001.html = FAIL
 WONTFIX WIN LINUX SKIP : editing/pasteboard/emacs-ctrl-a-k-y.html = FAIL
+WONTFIX WIN LINUX SKIP : editing/pasteboard/emacs-ctrl-k-with-move.html = FAIL
 WONTFIX WIN LINUX SKIP : editing/pasteboard/emacs-ctrl-k-y-001.html = FAIL
 WONTFIX WIN LINUX SKIP : editing/input/emacs-ctrl-o.html = FAIL
 
 // These tests should pass on Mac
 BUGRNIWA MAC : editing/pasteboard/emacs-cntl-y-001.html = PASS FAIL
 BUGRNIWA MAC : editing/pasteboard/emacs-ctrl-a-k-y.html = PASS FAIL
+BUGRNIWA MAC : editing/pasteboard/emacs-ctrl-k-with-move.html = FAIL
 BUGRNIWA MAC : editing/pasteboard/emacs-ctrl-k-y-001.html = PASS FAIL
 BUGRNIWA MAC : editing/input/emacs-ctrl-o.html = PASS FAIL
 

Modified: trunk/LayoutTests/platform/qt/Skipped (102147 => 102148)


--- trunk/LayoutTests/platform/qt/Skipped	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/LayoutTests/platform/qt/Skipped	2011-12-06 17:36:48 UTC (rev 102148)
@@ -316,6 +316,7 @@
 editing/pasteboard/drop-link.html
 editing/pasteboard/drop-text-without-selection.html
 editing/pasteboard/emacs-ctrl-a-k-y.html
+editing/pasteboard/emacs-ctrl-k-with-move.html
 editing/pasteboard/emacs-ctrl-k-y-001.html
 editing/pasteboard/smart-drag-drop.html
 editing/pasteboard/subframe-dragndrop-1.html

Modified: trunk/LayoutTests/platform/win/Skipped (102147 => 102148)


--- trunk/LayoutTests/platform/win/Skipped	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/LayoutTests/platform/win/Skipped	2011-12-06 17:36:48 UTC (rev 102148)
@@ -235,6 +235,7 @@
 # emacs key bindings <rdar://problem/4883609> Support for kill rings
 editing/input/emacs-ctrl-o.html
 editing/pasteboard/emacs-ctrl-a-k-y.html
+editing/pasteboard/emacs-ctrl-k-with-move.html
 editing/pasteboard/emacs-ctrl-k-y-001.html
 editing/pasteboard/emacs-cntl-y-001.html
 

Modified: trunk/LayoutTests/platform/wincairo/Skipped (102147 => 102148)


--- trunk/LayoutTests/platform/wincairo/Skipped	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/LayoutTests/platform/wincairo/Skipped	2011-12-06 17:36:48 UTC (rev 102148)
@@ -755,6 +755,7 @@
 # emacs key bindings <rdar://problem/4883609> Support for kill rings
 editing/input/emacs-ctrl-o.html
 editing/pasteboard/emacs-ctrl-a-k-y.html
+editing/pasteboard/emacs-ctrl-k-with-move.html
 editing/pasteboard/emacs-ctrl-k-y-001.html
 editing/pasteboard/emacs-cntl-y-001.html
 

Modified: trunk/Source/WebCore/ChangeLog (102147 => 102148)


--- trunk/Source/WebCore/ChangeLog	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/Source/WebCore/ChangeLog	2011-12-06 17:36:48 UTC (rev 102148)
@@ -1,3 +1,16 @@
+2011-12-06  Alexey Proskuryakov  <a...@apple.com>
+
+        REGRESSION (WebKit2): Kill ring is not cleared when selection changes
+        https://bugs.webkit.org/show_bug.cgi?id=73888
+        <rdar://problem/10532310>
+
+        Reviewed by Mark Rowe.
+
+        Test: editing/pasteboard/emacs-ctrl-k-with-move.html
+
+        * editing/Editor.cpp: (WebCore::Editor::respondToChangedSelection): Moved the code to clear
+        kill ring from Mac WebKit, as it's needed in all Mac ports at least.
+
 2011-12-06  Darin Adler  <da...@apple.com>
 
         Use HashMap<OwnPtr> in CollectionCache

Modified: trunk/Source/WebCore/editing/Editor.cpp (102147 => 102148)


--- trunk/Source/WebCore/editing/Editor.cpp	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/Source/WebCore/editing/Editor.cpp	2011-12-06 17:36:48 UTC (rev 102148)
@@ -484,6 +484,7 @@
 {
     if (client())
         client()->respondToChangedSelection(m_frame);
+    setStartNewKillRingSequence(true);
     m_deleteButtonController->respondToChangedSelection(oldSelection);
     m_spellingCorrector->respondToChangedSelection(oldSelection);
 }

Modified: trunk/Source/WebKit/mac/ChangeLog (102147 => 102148)


--- trunk/Source/WebKit/mac/ChangeLog	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/Source/WebKit/mac/ChangeLog	2011-12-06 17:36:48 UTC (rev 102148)
@@ -1,3 +1,16 @@
+2011-12-06  Alexey Proskuryakov  <a...@apple.com>
+
+        REGRESSION (WebKit2): Kill ring is not cleared when selection changes
+        https://bugs.webkit.org/show_bug.cgi?id=73888
+        <rdar://problem/10532310>
+
+        Reviewed by Mark Rowe.
+
+        * WebView/WebHTMLView.mm:
+        (-[WebHTMLView becomeFirstResponder]): Added a FIXME comment.
+        (-[WebHTMLView _selectionChanged]): Moved the code to clear kill ring to WebCore. The rest
+        of kill ring implementation is there, so it makes no sense to have this call in WebKits.
+
 2011-12-05  Anders Carlsson  <ander...@apple.com>
 
         Make LayerFlushSchedulerClient::flushLayers indicate whether the flush was successful or not

Modified: trunk/Source/WebKit/mac/WebView/WebHTMLView.mm (102147 => 102148)


--- trunk/Source/WebKit/mac/WebView/WebHTMLView.mm	2011-12-06 17:30:00 UTC (rev 102147)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLView.mm	2011-12-06 17:36:48 UTC (rev 102148)
@@ -3771,6 +3771,7 @@
     [self _updateSecureInputState];
     _private->_forceUpdateSecureInputState = NO;
 
+    // FIXME: Kill ring handling is mostly in WebCore, so this call should also be moved there.
     frame->editor()->setStartNewKillRingSequence(true);
 
     Page* page = frame->page();
@@ -5011,8 +5012,6 @@
 {
     [self _updateSelectionForInputManager];
     [self _updateFontPanel];
-    if (Frame* coreFrame = core([self _frame]))
-        coreFrame->editor()->setStartNewKillRingSequence(true);
 }
 
 - (void)_updateFontPanel
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to