EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600 LayoutBlockFlow {HTML} at (0,0) size 800x600 LayoutBlockFlow {BODY} at (8,8) size 784x584 LayoutBlockFlow {P} at (0,0) size 784x36 LayoutText {#text} at (0,0) size 762x35 text run at (0,0) width 762: "When the selection to delete ends at the end of a paragraph, that paragraph will be completely deleted, but a <br> or an" text run at (0,18) width 567: "empty block will remain. Merging must happen to remove that <br> or prune that block." LayoutBlockFlow {P} at (0,52) size 784x36 LayoutText {#text} at (0,0) size 779x35 text run at (0,0) width 779: "This test illustrates a case where merging wasn't allowed to happen just because the end of the selection to delete was in a" text run at (0,18) width 243: "fully selected line, which is nonsense." LayoutBlockFlow {P} at (0,104) size 784x54 LayoutText {#text} at (0,0) size 783x53 text run at (0,0) width 321: "Fixing that bug exposed a problem with merging. " text run at (320,0) width 459: "If deletion empties out the block that contained the start of the selection" text run at (0,18) width 498: "to delete, that block can collapse away and become impossible to merge into. " text run at (497,18) width 286: "So we insert a placeholder to prop it open so" text run at (0,36) width 172: "that the merge can happen." LayoutBlockFlow {DIV} at (5,174) size 774x32 [border: (1px solid #000000)] LayoutBlockFlow {DIV} at (6,6) size 762x20 [border: (1px solid #FF0000)] LayoutBR {BR} at (1,1) size 0x17 caret: position 0 of child 0 {BR} of child 0 {DIV} of child 6 {DIV} of body