EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 0 of #text > DIV > BODY > HTML > #document to 11 of #text > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldDeleteDOMRange:range from 0 of #text > DIV > BODY > HTML > #document to 11 of #text > DIV > BODY > HTML > #document
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderBlock {HTML} at (0,0) size 800x600
    RenderBody {BODY} at (8,8) size 784x576
      RenderBlock (anonymous) at (0,0) size 784x174
        RenderIFrame {IFRAME} at (0,0) size 304x154 [border: (2px inset #000000)]
          layer at (0,0) size 300x150
            RenderView at (0,0) size 300x150
          layer at (0,0) size 300x150
            RenderBlock {HTML} at (0,0) size 300x150
              RenderBody {BODY} at (8,8) size 284x134 [bgcolor=#FFFFE0]
                RenderBlock {DIV} at (0,0) size 284x20
                  RenderBR {BR} at (0,0) size 0x19
        RenderBR {BR} at (304,139) size 0x19
        RenderBR {BR} at (0,154) size 0x19
      RenderBlock {P} at (0,190) size 784x40
        RenderInline {B} at (0,0) size 673x19
          RenderText {#text} at (0,0) size 673x19
            text run at (0,0) width 498: "This test uses the eventSender to do a mouse click to focus the subframe. "
            text run at (497,0) width 176: "It won't run interactively."
        RenderText {#text} at (672,0) size 731x39
          text run at (672,0) width 5: " "
          text run at (676,0) width 55: "To run it"
          text run at (0,20) width 362: "manually, click on the iframe, Select All, then hit delete."
      RenderBlock (anonymous) at (0,246) size 784x60
        RenderText {#text} at (0,0) size 779x59
          text run at (0,0) width 779: "Selecting all the content in a contenteditable iframe should select the iframe itself (to help the user delete the iframe) only"
          text run at (0,20) width 237: "if the iframe is in an editable region. "
          text run at (236,20) width 439: "This test loads ../resources/select-all-iframe-src.html into an iframe. "
          text run at (674,20) width 100: "That file does a"
          text run at (0,40) width 131: "Select All + Delete. "
          text run at (130,40) width 173: "Two things should happen:"
      RenderBlock {UL} at (0,322) size 784x60
        RenderListItem {LI} at (40,0) size 744x40
          RenderListMarker at (-18,0) size 7x19: bullet
          RenderText {#text} at (0,0) size 689x39
            text run at (0,0) width 462: "The Select All operation should not select the iframe, only it's contents. "
            text run at (461,0) width 228: "The results of the Select All will be"
            text run at (0,20) width 517: "apparent from the delegate messages that DumpRenderTree receives and dumps."
        RenderListItem {LI} at (40,40) size 744x20
          RenderListMarker at (-18,0) size 7x19: bullet
          RenderText {#text} at (0,0) size 344x19
            text run at (0,0) width 344: "The contents of the editable iframe should be deleted."
