EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 4 of DIV > BODY > HTML > #document
EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > DIV > DIV > BODY > HTML > #document to 0 of DIV > DIV > DIV > BODY > HTML > #document toDOMRange:range from 0 of #text > DIV > DIV > DIV > BODY > HTML > #document to 2 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
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 784x584
      RenderBlock {DIV} at (0,0) size 784x320
        RenderBlock {DIV} at (0,0) size 784x286
          RenderBlock {DIV} at (0,0) size 784x18
            RenderText {#text} at (0,0) size 311x18
              text run at (0,0) width 311: "On Feb 1, 2006, at 7:37 PM, David Hyatt wrote:"
          RenderBlock (anonymous) at (0,18) size 784x18
            RenderBR {BR} at (0,0) size 0x18
          RenderBlock {BLOCKQUOTE} at (40,52) size 704x234 [color=#0000FF]
            RenderBlock {DIV} at (0,0) size 704x90
              RenderText {#text} at (0,0) size 449x18
                text run at (0,0) width 449: "While reworking images I ran into something that really concerns me."
              RenderInline {SPAN} at (0,0) size 5x18
                RenderText {#text} at (448,0) size 5x18
                  text run at (448,0) width 5: " "
              RenderText {#text} at (452,0) size 701x36
                text run at (452,0) width 245: "WebElementImageKey is a key added"
                text run at (696,0) width 5: " "
                text run at (0,18) width 437: "to the elementAtPoint dictionary and the key's value is an NSImage."
              RenderInline {SPAN} at (0,0) size 4x18
                RenderText {#text} at (437,18) size 4x18
                  text run at (437,18) width 4: " "
              RenderText {#text} at (441,18) size 262x18
                text run at (441,18) width 262: "Unfortunately we use CGImageRef now."
              RenderInline {SPAN} at (0,0) size 2x18
                RenderText {#text} at (702,18) size 2x18
                  text run at (702,18) width 2: " "
              RenderText {#text} at (0,36) size 701x54
                text run at (0,36) width 697: "What this means is that as you move the mouse around a web page we are aggressively mallocing NSImages"
                text run at (696,36) width 5: " "
                text run at (0,54) width 674: "that then move into our image cache and stay around until the CGImageRef goes away (which could be a"
                text run at (673,54) width 5: " "
                text run at (0,72) width 71: "long time)."
            RenderBlock {DIV} at (0,90) size 704x18
              RenderBR {BR} at (0,0) size 0x18
            RenderBlock {DIV} at (0,108) size 704x54
              RenderText {#text} at (0,0) size 324x18
                text run at (0,0) width 324: "I think this is terrible but am not sure how to fix it."
              RenderInline {SPAN} at (0,0) size 5x18
                RenderText {#text} at (323,0) size 5x18
                  text run at (323,0) width 5: " "
              RenderText {#text} at (327,0) size 204x18
                text run at (327,0) width 204: "I assume this key is public API."
              RenderInline {SPAN} at (0,0) size 5x18
                RenderText {#text} at (530,0) size 5x18
                  text run at (530,0) width 5: " "
              RenderText {#text} at (534,0) size 673x36
                text run at (534,0) width 135: "Could we change the"
                text run at (668,0) width 5: " "
                text run at (0,18) width 264: "key's value to be a CGImageRef instead?"
              RenderInline {SPAN} at (0,0) size 5x18
                RenderText {#text} at (263,18) size 5x18
                  text run at (263,18) width 5: " "
              RenderText {#text} at (267,18) size 664x36
                text run at (267,18) width 393: "Could we just eliminate the key in favor of a DOM extension"
                text run at (659,18) width 5: " "
                text run at (0,36) width 227: "method for accessing an NSImage?"
            RenderBlock {DIV} at (0,162) size 704x18
              RenderBR {BR} at (0,0) size 0x18
            RenderBlock {DIV} at (0,180) size 704x18
              RenderText {#text} at (0,0) size 31x18
                text run at (0,0) width 31: "dave"
            RenderBlock {DIV} at (0,198) size 704x18
              RenderText {#text} at (0,0) size 124x18
                text run at (0,0) width 124: "(hyatt@apple.com)"
            RenderBlock {DIV} at (0,216) size 704x18
              RenderBR {BR} at (0,0) size 0x18
        RenderBlock (anonymous) at (0,302) size 784x18
          RenderBR {BR} at (0,0) size 0x18
caret: position 0 of child 0 {BR} of child 6 {DIV} of child 2 {BLOCKQUOTE} of child 1 {DIV} of child 1 {DIV} of body
