WebCore:
authorjustin.garcia@apple.com <justin.garcia@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Feb 2008 05:14:32 +0000 (05:14 +0000)
committerjustin.garcia@apple.com <justin.garcia@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Feb 2008 05:14:32 +0000 (05:14 +0000)
        Reviewed by Oliver Hunt.

        Fixes the editing/deleting/5729680.html failure.  It succeeds when run by itself
        but fails when run with other tests because FramePrivate's m_selectionGranularity
        isn't reset when a Frame receives a new document.  It was also uninitialized in
        the constructor.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::clear): Initialize m_selectionGranularity.
        * page/Frame.cpp:
        (WebCore::FramePrivate::FramePrivate): Ditto.

LayoutTests:

        Reviewed by Oliver Hunt.

        * platform/mac/editing/deleting/table-cells-expected.checksum: Fixed.  Before, a space was
        incorrectly removed by a delete (this isn't a smart delete).
        * platform/mac/editing/deleting/table-cells-expected.png:
        * platform/mac/editing/deleting/table-cells-expected.txt:
        * platform/mac/editing/pasteboard/input-field-1-expected.checksum: Fixed.  Before a space
        was incorrectly added by paste (this isn't a smart paste).
        * platform/mac/editing/pasteboard/input-field-1-expected.png:
        * platform/mac/editing/pasteboard/input-field-1-expected.txt:

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

LayoutTests/ChangeLog
LayoutTests/platform/mac/editing/deleting/table-cells-expected.checksum
LayoutTests/platform/mac/editing/deleting/table-cells-expected.png
LayoutTests/platform/mac/editing/deleting/table-cells-expected.txt
LayoutTests/platform/mac/editing/pasteboard/input-field-1-expected.checksum
LayoutTests/platform/mac/editing/pasteboard/input-field-1-expected.png
LayoutTests/platform/mac/editing/pasteboard/input-field-1-expected.txt
WebCore/ChangeLog
WebCore/loader/FrameLoader.cpp
WebCore/page/Frame.cpp

index 81fdbe9..4e14414 100644 (file)
@@ -1,5 +1,18 @@
 2008-02-13  Justin Garcia  <justin.garcia@apple.com>
 
+        Reviewed by Oliver Hunt.
+
+        * platform/mac/editing/deleting/table-cells-expected.checksum: Fixed.  Before, a space was 
+        incorrectly removed by a delete (this isn't a smart delete).
+        * platform/mac/editing/deleting/table-cells-expected.png:
+        * platform/mac/editing/deleting/table-cells-expected.txt:
+        * platform/mac/editing/pasteboard/input-field-1-expected.checksum: Fixed.  Before a space 
+        was incorrectly added by paste (this isn't a smart paste).
+        * platform/mac/editing/pasteboard/input-field-1-expected.png:
+        * platform/mac/editing/pasteboard/input-field-1-expected.txt:
+
+2008-02-13  Justin Garcia  <justin.garcia@apple.com>
+
         Reviewed by Adam Roben.
         
         <rdar://problem/5729680> REGRESSION (r27873): Removing the last character of a word in Mail or Safari also removes the following space
index da9877b..055a8b3 100644 (file)
Binary files a/LayoutTests/platform/mac/editing/deleting/table-cells-expected.png and b/LayoutTests/platform/mac/editing/deleting/table-cells-expected.png differ
index 77a3a94..30273a2 100644 (file)
@@ -16,15 +16,15 @@ layer at (0,0) size 800x600
           text run at (0,0) width 361: "This tests deletion of a selection that spans multiple cells. "
           text run at (361,0) width 356: "Just table content should be removed, not table structure."
       RenderBlock {DIV} at (0,34) size 784x28
-        RenderTable {TABLE} at (0,0) size 339x28 [border: (1px outset #808080)]
-          RenderTableSection {TBODY} at (1,1) size 337x26
-            RenderTableRow {TR} at (0,2) size 337x22
+        RenderTable {TABLE} at (0,0) size 343x28 [border: (1px outset #808080)]
+          RenderTableSection {TBODY} at (1,1) size 341x26
+            RenderTableRow {TR} at (0,2) size 341x22
               RenderTableCell {TD} at (2,2) size 157x22 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderBlock {DIV} at (2,2) size 153x18
                   RenderText {#text} at (0,0) size 153x18
                     text run at (0,0) width 153: "These two pieces of text"
-              RenderTableCell {TD} at (161,2) size 174x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-                RenderBlock {DIV} at (2,2) size 170x18
-                  RenderText {#text} at (0,0) size 170x18
-                    text run at (0,0) width 170: "should be in different cells."
+              RenderTableCell {TD} at (161,2) size 178x22 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+                RenderBlock {DIV} at (2,2) size 174x18
+                  RenderText {#text} at (0,0) size 174x18
+                    text run at (0,0) width 174: " should be in different cells."
 caret: position 24 of child 0 {#text} of child 0 {DIV} of child 0 {TD} of child 0 {TR} of child 0 {TBODY} of child 0 {TABLE} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
index e5ed07c..9ee4269 100644 (file)
Binary files a/LayoutTests/platform/mac/editing/pasteboard/input-field-1-expected.png and b/LayoutTests/platform/mac/editing/pasteboard/input-field-1-expected.png differ
index 7bd36a9..2b79d8d 100644 (file)
@@ -5,7 +5,7 @@ EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotificatio
 EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document toDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
 EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
 EDITING DELEGATE: shouldInsertNode:#document-fragment replacingDOMRange:range from 1 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document givenAction:WebViewInsertActionPasted
-EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document toDOMRange:range from 3 of DIV > BODY > HTML > #document to 3 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
+EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 1 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document toDOMRange:range from 2 of DIV > BODY > HTML > #document to 2 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
 EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
 EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
 layer at (0,0) size 800x600
@@ -18,9 +18,7 @@ layer at (0,0) size 800x600
           text run at (0,0) width 235: "This tests Copy/Paste of a input field."
       RenderBlock {DIV} at (0,34) size 784x23
         RenderTextControl {INPUT} at (2,2) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
-        RenderText {#text} at (152,2) size 4x18
-          text run at (152,2) width 4: " "
-        RenderTextControl {INPUT} at (158,2) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
+        RenderTextControl {INPUT} at (154,2) size 148x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
       RenderBlock {UL} at (0,73) size 784x18
         RenderListItem {LI} at (40,0) size 744x18
           RenderListMarker at (-17,0) size 7x18: bullet
@@ -28,6 +26,6 @@ layer at (0,0) size 800x600
             text run at (0,0) width 43: "Passed"
 layer at (13,47) size 142x13
   RenderBlock {DIV} at (3,3) size 142x13
-layer at (169,47) size 142x13
+layer at (165,47) size 142x13
   RenderBlock {DIV} at (3,3) size 142x13
-caret: position 1 of child 2 {INPUT} of child 2 {DIV} of child 2 {BODY} of child 0 {HTML} of document
+caret: position 1 of child 1 {INPUT} of child 2 {DIV} of child 2 {BODY} of child 0 {HTML} of document
index fecbb61..32fdb92 100644 (file)
@@ -1,3 +1,17 @@
+2008-02-13  Justin Garcia  <justin.garcia@apple.com>
+
+        Reviewed by Oliver Hunt.
+
+        Fixes the editing/deleting/5729680.html failure.  It succeeds when run by itself
+        but fails when run with other tests because FramePrivate's m_selectionGranularity
+        isn't reset when a Frame receives a new document.  It was also uninitialized in
+        the constructor.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::clear): Initialize m_selectionGranularity.
+        * page/Frame.cpp:
+        (WebCore::FramePrivate::FramePrivate): Ditto.
+
 2008-02-13  Jon Honeycutt  <jhoneycutt@apple.com>
 
         Reviewed by Anders.
index ee36c72..e5a08d8 100644 (file)
@@ -808,6 +808,8 @@ void FrameLoader::clear(bool clearWindowProperties, bool clearScriptObjects)
     m_frame->eventHandler()->clear();
     if (m_frame->view())
         m_frame->view()->clear();
+    
+    m_frame->setSelectionGranularity(CharacterGranularity);
 
     // Do not drop the document before the script proxy and view are cleared, as some destructors
     // might still try to access the document.
index dc29663..01a576e 100644 (file)
@@ -1857,6 +1857,7 @@ FramePrivate::FramePrivate(Page* page, Frame* parent, Frame* thisFrame, HTMLFram
     , m_ownerElement(ownerElement)
     , m_jscript(0)
     , m_zoomFactor(parent ? parent->d->m_zoomFactor : 100)
+    , m_selectionGranularity(CharacterGranularity)
     , m_selectionController(thisFrame)
     , m_caretBlinkTimer(thisFrame, &Frame::caretBlinkTimerFired)
     , m_editor(thisFrame)