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