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 784x332
        RenderBlock {DIV} at (0,0) size 784x296
          RenderBlock {DIV} at (0,0) size 784x20
            RenderText {#text} at (0,0) size 299x19
              text run at (0,0) width 299: "On Feb 1, 2006, at 7:37 PM, David Hyatt wrote:"
          RenderBlock (anonymous) at (0,20) size 784x20
            RenderBR {BR} at (0,0) size 0x19
          RenderBlock {BLOCKQUOTE} at (40,56) size 704x240 [color=#0000FF]
            RenderBlock {DIV} at (0,0) size 704x80
              RenderText {#text} at (0,0) size 413x19
                text run at (0,0) width 413: "While reworking images I ran into something that really concerns me."
              RenderInline {SPAN} at (0,0) size 4x19
                RenderText {#text} at (413,0) size 4x19
                  text run at (413,0) width 4: " "
              RenderText {#text} at (417,0) size 692x39
                text run at (417,0) width 271: "WebElementImageKey is a key added to the"
                text run at (688,0) width 4: " "
                text run at (0,20) width 370: "elementAtPoint dictionary and the key's value is an NSImage."
              RenderInline {SPAN} at (0,0) size 4x19
                RenderText {#text} at (370,20) size 4x19
                  text run at (370,20) width 4: " "
              RenderText {#text} at (374,20) size 245x19
                text run at (374,20) width 245: "Unfortunately we use CGImageRef now."
              RenderInline {SPAN} at (0,0) size 4x19
                RenderText {#text} at (619,20) size 4x19
                  text run at (619,20) width 4: " "
              RenderText {#text} at (623,20) size 687x59
                text run at (623,20) width 57: "What this"
                text run at (680,20) width 4: " "
                text run at (0,40) width 683: "means is that as you move the mouse around a web page we are aggressively mallocing NSImages that then move"
                text run at (683,40) width 4: " "
                text run at (0,60) width 604: "into our image cache and stay around until the CGImageRef goes away (which could be a long time)."
            RenderBlock {DIV} at (0,80) size 704x20
              RenderBR {BR} at (0,0) size 0x19
            RenderBlock {DIV} at (0,100) size 704x60
              RenderText {#text} at (0,0) size 297x19
                text run at (0,0) width 297: "I think this is terrible but am not sure how to fix it."
              RenderInline {SPAN} at (0,0) size 4x19
                RenderText {#text} at (297,0) size 4x19
                  text run at (297,0) width 4: " "
              RenderText {#text} at (301,0) size 189x19
                text run at (301,0) width 189: "I assume this key is public API."
              RenderInline {SPAN} at (0,0) size 4x19
                RenderText {#text} at (490,0) size 4x19
                  text run at (490,0) width 4: " "
              RenderText {#text} at (494,0) size 695x39
                text run at (494,0) width 197: "Could we change the key's value"
                text run at (691,0) width 4: " "
                text run at (0,20) width 179: "to be a CGImageRef instead?"
              RenderInline {SPAN} at (0,0) size 4x19
                RenderText {#text} at (179,20) size 4x19
                  text run at (179,20) width 4: " "
              RenderText {#text} at (183,20) size 701x39
                text run at (183,20) width 514: "Could we just eliminate the key in favor of a DOM extension method for accessing an"
                text run at (697,20) width 4: " "
                text run at (0,40) width 65: "NSImage?"
            RenderBlock {DIV} at (0,160) size 704x20
              RenderBR {BR} at (0,0) size 0x19
            RenderBlock {DIV} at (0,180) size 704x20
              RenderText {#text} at (0,0) size 29x19
                text run at (0,0) width 29: "dave"
            RenderBlock {DIV} at (0,200) size 704x20
              RenderText {#text} at (0,0) size 117x19
                text run at (0,0) width 117: "(hyatt@apple.com)"
            RenderBlock {DIV} at (0,220) size 704x20
              RenderBR {BR} at (0,0) size 0x19
        RenderBlock (anonymous) at (0,312) size 784x20
          RenderBR {BR} at (0,0) size 0x19
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
