<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>26699</bug_id>
          
          <creation_ts>2009-06-24 17:36:56 -0700</creation_ts>
          <short_desc>[Win] HTML5 Drag and drop, dragend is not fired when pressing Esc</short_desc>
          <delta_ts>2009-07-02 18:07:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128042</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-06-24 17:36:56 -0700</bug_when>
    <thetext>A page that has HTML5 drag and drop support and listens to the dragend event will not get a callback if the user presses the escape key while dragging and the cursor is outside the current window.

This makes cleaning up from drag operations very hard.

This happens on Safari 4 and Chrome on Windows 7. It works fine for Safari 4 on Mac.

TC coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128043</commentid>
    <comment_count>1</comment_count>
      <attachid>31818</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-06-24 17:38:13 -0700</bug_when>
    <thetext>Created attachment 31818
Test case

Try dragging one of the images. Drag it outside the current browser window and press the escape key. Note that we do not get a dragend event in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128044</commentid>
    <comment_count>2</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-06-24 17:39:45 -0700</bug_when>
    <thetext>The TC exposes another related issue. If I press Esc over the current page I get a spurious dragstart event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128268</commentid>
    <comment_count>3</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-06-25 14:16:18 -0700</bug_when>
    <thetext>One more bug in the same spirit.

1. Drag an image out of the window.
2. Press Esc (but don&apos;t let go of the mouse button)
3. Move back over the window and the cancelled drag operation is resurrected with a new dragstart :&apos;(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129236</commentid>
    <comment_count>4</comment_count>
      <attachid>32104</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-06-30 19:21:55 -0700</bug_when>
    <thetext>Created attachment 32104
Patch

Calls dragSourceEndedAt when fEscapePressed is true in WebDropSource::QueryContinueDrag so we can fire the dragend event correctly.

When we end the drag and drop we set m_mouseDownMayStartDrag to false so that the mouse move after the dnd has ended does not start a new dnd session.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129285</commentid>
    <comment_count>5</comment_count>
      <attachid>32104</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-07-01 06:16:26 -0700</bug_when>
    <thetext>Comment on attachment 32104
Patch

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 45412)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,13 @@
&gt; +2009-06-30  Erik Arvidsson  &lt;arv@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Fixes issue where escape did not cancel the drag and drop operation on windows.

You should add the URL and title of this bug to your ChangeLogs.

&gt; Property changes on: WebCore/manual-tests/drag-escape.html
&gt; ___________________________________________________________________
&gt; Added: svn:executable
&gt;    + *

Please remove the executable bit. It would also be good to set svn:eol-style to native.

&gt; 
&gt; Index: WebCore/page/EventHandler.cpp
&gt; ===================================================================
&gt; --- WebCore/page/EventHandler.cpp	(revision 45393)
&gt; +++ WebCore/page/EventHandler.cpp	(working copy)
&gt; @@ -2102,6 +2102,7 @@ void EventHandler::dragSourceEndedAt(con
&gt;      }
&gt;      freeClipboard();
&gt;      dragState().m_dragSrc = 0;
&gt; +    m_mouseDownMayStartDrag = false;
&gt;  }

It&apos;s probably worth adding a comment here about why this is needed (i.e., to handle situations where the drag is cancelled while the mouse button is still down).

&gt;  STDMETHODIMP WebDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState)
&gt;  {
&gt; -    if(fEscapePressed)
&gt; -        return DRAGDROP_S_CANCEL;
&gt; -
&gt; -    if(!(grfKeyState &amp; (MK_LBUTTON|MK_RBUTTON))) {
&gt; -        m_dropped = true;
&gt; +    if(fEscapePressed || !(grfKeyState &amp; (MK_LBUTTON|MK_RBUTTON))) {

Please add a space after &quot;if&quot; while you&apos;re modifying this line.

&gt; +        m_dropped = !fEscapePressed;
&gt;          if (Page* page = m_webView-&gt;page())
&gt;              if (Frame* frame = page-&gt;mainFrame()) 
&gt;                  //FIXME: We need to figure out how to find out what actually happened in the drag &lt;rdar://problem/5015961&gt;
&gt;                  frame-&gt;eventHandler()-&gt;dragSourceEndedAt(generateMouseEvent(m_webView.get(), false), DragOperationCopy);

It doesn&apos;t seem right to pass DragOperationCopy if Escape was pressed.

&gt; -        return DRAGDROP_S_DROP;
&gt; +		return fEscapePressed? DRAGDROP_S_CANCEL : DRAGDROP_S_DROP;

Tabs! Please use 4-space indents.

Thanks for looking at this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129328</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-01 11:57:23 -0700</bug_when>
    <thetext>&gt; Property changes on: WebCore/manual-tests/drag-escape.html
&gt; ___________________________________________________________________
&gt; Added: svn:executable
&gt;    + *

Please remove the executable bit. It would also be good to set svn:eol-style to
native.

We need some sort of script to remove these for you.  Windows SVN adds them *all the time*.  Windows SVN also gets the mime types of added images wrong too.

I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=26895 to track creation of such a script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129338</commentid>
    <comment_count>7</comment_count>
      <attachid>32133</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2009-07-01 12:48:47 -0700</bug_when>
    <thetext>Created attachment 32133
Fixed Adam&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129354</commentid>
    <comment_count>8</comment_count>
      <attachid>32133</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-07-01 13:38:47 -0700</bug_when>
    <thetext>Comment on attachment 32133
Fixed Adam&apos;s comments

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129641</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-02 18:07:24 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	A	WebCore/manual-tests/drag-escape.html
	M	WebCore/page/EventHandler.cpp
	M	WebKit/win/ChangeLog
	M	WebKit/win/WebDropSource.cpp
Committed r45515
	M	WebKit/win/ChangeLog
	M	WebKit/win/WebDropSource.cpp
	M	WebCore/ChangeLog
	M	WebCore/page/EventHandler.cpp
	A	WebCore/manual-tests/drag-escape.html
r45515 = e9a38090ac268a71d0631db21ea0212e575d7316 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/45515</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>31818</attachid>
            <date>2009-06-24 17:38:13 -0700</date>
            <delta_ts>2009-06-24 17:38:13 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>dnd2.html</filename>
            <type>text/html</type>
            <size>1977</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPHRpdGxlPkRyYWcgYW5kIERyb3A8L3RpdGxl
Pgo8c3R5bGU+CgppbWcgeyBoZWlnaHQ6IDRlbTsgfQpkaXYgeyBtYXJnaW46IDFlbSAyZW07IGJv
cmRlcjogYmxhY2sgc29saWQ7IHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgaGVpZ2h0OiA5ZW07
IHdpZHRoOiAxMmVtOyBmbG9hdDogbGVmdDsgfQpwIHsgY2xlYXI6IGxlZnQ7IH0KCjwvc3R5bGU+
CjwvaGVhZD4KPGJvZHkgb25kcmFnZW5kPSJkcmFnRW5kKGV2ZW50KSI+CjxoMT5EcmFnIGFuZCBE
cm9wPC9oMT4KCjxkaXYgb25kcm9wPSJkcm9wKHRoaXMsIGV2ZW50KSIgb25kcmFnZW50ZXI9ImRy
YWdFbnRlcih0aGlzLCBldmVudCkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25k
cmFnb3Zlcj0iZHJhZ092ZXIodGhpcywgZXZlbnQpIj4KICA8cD5Hb29kPC9wPgo8L2Rpdj4KCjxk
aXYgb25kcm9wPSJkcm9wKHRoaXMsIGV2ZW50KSIgb25kcmFnZW50ZXI9ImRyYWdFbnRlcih0aGlz
LCBldmVudCkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25kcmFnb3Zlcj0iZHJh
Z092ZXIodGhpcywgZXZlbnQpIj4KICA8cD5CYWQ8L3A+CjwvZGl2PgoKPHA+CiAgPGltZyBzcmM9
Imh0dHA6Ly93d3cud2hhdHdnLm9yZy9kZW1vcy8yMDA4LXNlcHQvZG5kL3NwYW0uZ2lmIiBpZD1z
cGFtCiAgICAgICBhbHQ9IlNwYW0iIG9uZHJhZ3N0YXJ0PSJkcmFnU3RhcnQodGhpcywgZXZlbnQp
Ij4KICA8aW1nIHNyYz0iaHR0cDovL3d3dy53aGF0d2cub3JnL2RlbW9zLzIwMDgtc2VwdC9kbmQv
ZWdnLmdpZiIgaWQ9ZWdnCiAgICAgICBhbHQ9IkVnZyIgb25kcmFnc3RhcnQ9ImRyYWdTdGFydCh0
aGlzLCBldmVudCkiPgogIDxpbWcgc3JjPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvZGVtb3MvMjAw
OC1zZXB0L2RuZC9jYXQucG5nIiBpZD1jYXQKICAgICAgIGFsdD0iQ2F0IiBvbmRyYWdzdGFydD0i
ZHJhZ1N0YXJ0KHRoaXMsIGV2ZW50KSI+CjwvcD4KCjxwcmUgaWQ9Im91dCI+PC9wcmU+Cgo8c2Ny
aXB0PgoKaWYgKCFFdmVudC5wcm90b3R5cGUucHJldmVudERlZmF1bHQpIHsKICBFdmVudC5wcm90
b3R5cGUucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbigpIHsKICAgIHRoaXMucmV0dXJuVmFsdWUg
PSBmYWxzZTsKICB9Owp9Cgp2YXIgZWZmZWN0QWxsb3dlZCA9ICdjb3B5TGluayc7CnZhciBkcm9w
RWZmZWN0ID0gJ2NvcHknOwoKZnVuY3Rpb24gZHJhZ1N0YXJ0KHRhcmdldCwgZSkgewogIHByaW50
RXZlbnQoZSkKICBlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCdUZXh0JywgdGFyZ2V0LmlkKTsKICBl
LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gZWZmZWN0QWxsb3dlZDsKfQoKZnVuY3Rpb24g
ZHJvcCh0YXJnZXQsIGUpIHsKICBwcmludEV2ZW50KGUpCiAgdmFyIGlkID0gZS5kYXRhVHJhbnNm
ZXIuZ2V0RGF0YSgnVGV4dCcpOwogIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCkpOwogIGUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSBkcm9wRWZmZWN0Owog
IGUucHJldmVudERlZmF1bHQoKTsKfQoKZnVuY3Rpb24gZHJhZ0VudGVyKHRhcmdldCwgZSkgewog
IHByaW50RXZlbnQoZSkKICBlLnByZXZlbnREZWZhdWx0KCk7Cn0KCmZ1bmN0aW9uIGRyYWdPdmVy
KHRhcmdldCwgZSkgewogIHByaW50RXZlbnQoZSkKICBlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0
ID0gZHJvcEVmZmVjdDsKICBlLnByZXZlbnREZWZhdWx0KCk7Cn0KCmZ1bmN0aW9uIGRyYWdFbmQo
ZSkgewogIHByaW50RXZlbnQoZSkKfQoKZnVuY3Rpb24gcHJpbnRFdmVudChlKSB7CiAgdmFyIGVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dCcpOwogIHZhciB0biA9IGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKGUudHlwZSArICdcbicpOwogIGVsLmluc2VydEJlZm9yZSh0biwgZWwuZmly
c3RDaGlsZCk7Cn0KCjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32104</attachid>
            <date>2009-06-30 19:21:55 -0700</date>
            <delta_ts>2009-07-01 12:54:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>dnd-esc.patch</filename>
            <type>text/plain</type>
            <size>4481</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTQxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMDktMDYtMzAgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXhlcyBpc3N1ZSB3aGVyZSBlc2NhcGUgZGlkIG5vdCBjYW5jZWwgdGhlIGRyYWcgYW5kIGRyb3Ag
b3BlcmF0aW9uIG9uIHdpbmRvd3MuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvZHJhZy1lc2Nh
cGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdCk6CisKIDIwMDktMDYt
MzAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9kcmFnLWVz
Y2FwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRlc3RzL2RyYWctZXNjYXBl
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9kcmFnLWVzY2FwZS5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0PgorCit2YXIgZXhwZWN0ZWRFdmVudHMgPSBbImRyYWdzdGFydCIs
ICJkcmFnZW5kIl07Cit2YXIgaSA9IDA7CisKK2Z1bmN0aW9uIHJlY29yZEV2ZW50KGUpIHsKKyAg
ICBsb2coZS50eXBlKTsKKyAgICBpZiAoZS50eXBlICE9PSBleHBlY3RlZEV2ZW50c1tpXSkgewor
ICAgICAgICBsb2coIkZBSUwgLSBleHBlY3RlZCAiICsgZXhwZWN0ZWRFdmVudHNbaV0gKyAiIGJ1
dCBnb3QgIiArIGUudHlwZSk7CisgICAgfSBlbHNlIGlmIChpID09IGV4cGVjdGVkRXZlbnRzLmxl
bmd0aCAtIDEpIHsKKyAgICAgICAgbG9nKCJTVUNDRVNTIik7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgaSsrOworICAgIH0KK30KKworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgdmFyIHRuID0g
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsgIlxuIik7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImxvZyIpLmFwcGVuZENoaWxkKHRuKTsKK30KKworZnVuY3Rpb24gZHJhZ1N0YXJ0
KGUpIHsKKyAgICByZWNvcmRFdmVudChlKTsKK30KKworZG9jdW1lbnQub25kcmFnZW5kID0gZnVu
Y3Rpb24oZSkgeworICAgIHJlY29yZEV2ZW50KGUpOworfTsKKworZG9jdW1lbnQub25kcm9wID0g
ZnVuY3Rpb24oZSkgeworICAgIGxvZygiRkFJTCAtIHdlIHNob3VsZCBub3QgZ2V0IGEgIiArIGUu
dHlwZSk7Cit9OworCitkb2N1bWVudC5vbmRyYWdlbnRlciA9IGRvY3VtZW50Lm9uZHJhZ292ZXIg
PSBmdW5jdGlvbihlKSB7CisgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfTsKKworCis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjY5OSI+aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2Njk5PC9hPjwvcD4KKworICAgIDxwPkluc3RydWN0aW9uczog
PC9wPgorCisgICAgPHA+RHJhZyB0aGUgIkRyYWcgTWUhIiBsaW5rIGJlbG93PC9wPgorICAgIDxw
PlByZXNzIGVzY2FwZTwvcD4KKworICAgIDxhIGlkPSJ0ZXN0LWxpbmsiIGhyZWY9Imh0dHA6Ly93
ZWJraXQub3JnIiBvbmRyYWdzdGFydD0iZHJhZ1N0YXJ0KGV2ZW50KSI+RHJhZyBNZSE8L2E+CisK
KyAgICA8cHJlIGlkPSJsb2ciPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hh
bmdlcyBvbjogV2ViQ29yZS9tYW51YWwtdGVzdHMvZHJhZy1lc2NhcGUuaHRtbApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAko
cmV2aXNpb24gNDUzOTMpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEwMiw2ICsyMTAyLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRyYWdTb3Vy
Y2VFbmRlZEF0KGNvbgogICAgIH0KICAgICBmcmVlQ2xpcGJvYXJkKCk7CiAgICAgZHJhZ1N0YXRl
KCkubV9kcmFnU3JjID0gMDsKKyAgICBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyA9IGZhbHNlOwog
fQogICAgIAogLy8gcmV0dXJucyBpZiB3ZSBzaG91bGQgY29udGludWUgImRlZmF1bHQgcHJvY2Vz
c2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnRoYW5kbGVyIGNhbmNlbGVkCkluZGV4OiBXZWJLaXQv
d2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNp
b24gNDU0MTIpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDA5LTA2LTMwICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMg
aXNzdWUgd2hlcmUgZXNjYXBlIGRpZCBub3QgY2FuY2VsIHRoZSBkcmFnIGFuZCBkcm9wIG9wZXJh
dGlvbiBvbiB3aW5kb3dzLgorCisgICAgICAgICogV2ViRHJvcFNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJEcm9wU291cmNlOjpRdWVyeUNvbnRpbnVlRHJhZyk6CisKIDIwMDktMDYtMjkgIERhdmlk
IEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBXaW5kb3dzIGJ1c3RhZ2Uu
ICBNaXNzZWQgdHdvIGNvbmZpZ3VyYXRpb25zIGZvciBlbmFibGluZyBEQVRBR1JJRC4KSW5kZXg6
IFdlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9X
ZWJEcm9wU291cmNlLmNwcAkocmV2aXNpb24gNDUzOTMpCisrKyBXZWJLaXQvd2luL1dlYkRyb3BT
b3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsMTYgKzEwNCwxMyBAQCBQbGF0Zm9ybU1v
dXNlRXZlbnQgZ2VuZXJhdGVNb3VzZUV2ZW50KFdlCiAKIFNURE1FVEhPRElNUCBXZWJEcm9wU291
cmNlOjpRdWVyeUNvbnRpbnVlRHJhZyhCT09MIGZFc2NhcGVQcmVzc2VkLCBEV09SRCBncmZLZXlT
dGF0ZSkKIHsKLSAgICBpZihmRXNjYXBlUHJlc3NlZCkKLSAgICAgICAgcmV0dXJuIERSQUdEUk9Q
X1NfQ0FOQ0VMOwotCi0gICAgaWYoIShncmZLZXlTdGF0ZSAmIChNS19MQlVUVE9OfE1LX1JCVVRU
T04pKSkgewotICAgICAgICBtX2Ryb3BwZWQgPSB0cnVlOworICAgIGlmKGZFc2NhcGVQcmVzc2Vk
IHx8ICEoZ3JmS2V5U3RhdGUgJiAoTUtfTEJVVFRPTnxNS19SQlVUVE9OKSkpIHsKKyAgICAgICAg
bV9kcm9wcGVkID0gIWZFc2NhcGVQcmVzc2VkOwogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1f
d2ViVmlldy0+cGFnZSgpKQogICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1h
aW5GcmFtZSgpKSAKICAgICAgICAgICAgICAgICAvL0ZJWE1FOiBXZSBuZWVkIHRvIGZpZ3VyZSBv
dXQgaG93IHRvIGZpbmQgb3V0IHdoYXQgYWN0dWFsbHkgaGFwcGVuZWQgaW4gdGhlIGRyYWcgPHJk
YXI6Ly9wcm9ibGVtLzUwMTU5NjE+CiAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxl
cigpLT5kcmFnU291cmNlRW5kZWRBdChnZW5lcmF0ZU1vdXNlRXZlbnQobV93ZWJWaWV3LmdldCgp
LCBmYWxzZSksIERyYWdPcGVyYXRpb25Db3B5KTsKLSAgICAgICAgcmV0dXJuIERSQUdEUk9QX1Nf
RFJPUDsKKwkJcmV0dXJuIGZFc2NhcGVQcmVzc2VkPyBEUkFHRFJPUF9TX0NBTkNFTCA6IERSQUdE
Uk9QX1NfRFJPUDsKICAgICB9IGVsc2UgaWYgKFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2Uo
KSkKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKSAKICAgICAg
ICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZHJhZ1NvdXJjZU1vdmVkVG8oZ2VuZXJhdGVN
b3VzZUV2ZW50KG1fd2ViVmlldy5nZXQoKSwgdHJ1ZSkpOwo=
</data>
<flag name="review"
          id="16619"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32133</attachid>
            <date>2009-07-01 12:48:47 -0700</date>
            <delta_ts>2009-07-01 13:38:47 -0700</delta_ts>
            <desc>Fixed Adam&apos;s comments</desc>
            <filename>dnd-esc.patch</filename>
            <type>text/plain</type>
            <size>4805</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTQxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDctMDEgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
V2luXSBIVE1MNSBEcmFnIGFuZCBkcm9wLCBkcmFnZW5kIGlzIG5vdCBmaXJlZCB3aGVuIHByZXNz
aW5nIEVzYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjY2OTkKKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9kcmFnLWVzY2FwZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KToKKwogMjAwOS0wNi0zMCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudC4KSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL2RyYWctZXNjYXBlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvZHJhZy1lc2NhcGUuaHRtbAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL2RyYWctZXNjYXBlLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQ+CisKK3ZhciBleHBlY3RlZEV2ZW50cyA9IFsiZHJhZ3N0YXJ0IiwgImRyYWdlbmQiXTsKK3Zh
ciBpID0gMDsKKworZnVuY3Rpb24gcmVjb3JkRXZlbnQoZSkgeworICAgIGxvZyhlLnR5cGUpOwor
ICAgIGlmIChlLnR5cGUgIT09IGV4cGVjdGVkRXZlbnRzW2ldKSB7CisgICAgICAgIGxvZygiRkFJ
TCAtIGV4cGVjdGVkICIgKyBleHBlY3RlZEV2ZW50c1tpXSArICIgYnV0IGdvdCAiICsgZS50eXBl
KTsKKyAgICB9IGVsc2UgaWYgKGkgPT0gZXhwZWN0ZWRFdmVudHMubGVuZ3RoIC0gMSkgeworICAg
ICAgICBsb2coIlNVQ0NFU1MiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpKys7CisgICAgfQor
fQorCisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICB2YXIgdG4gPSBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShtc2cgKyAiXG4iKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIiku
YXBwZW5kQ2hpbGQodG4pOworfQorCitmdW5jdGlvbiBkcmFnU3RhcnQoZSkgeworICAgIHJlY29y
ZEV2ZW50KGUpOworfQorCitkb2N1bWVudC5vbmRyYWdlbmQgPSBmdW5jdGlvbihlKSB7CisgICAg
cmVjb3JkRXZlbnQoZSk7Cit9OworCitkb2N1bWVudC5vbmRyb3AgPSBmdW5jdGlvbihlKSB7Cisg
ICAgbG9nKCJGQUlMIC0gd2Ugc2hvdWxkIG5vdCBnZXQgYSAiICsgZS50eXBlKTsKK307CisKK2Rv
Y3VtZW50Lm9uZHJhZ2VudGVyID0gZG9jdW1lbnQub25kcmFnb3ZlciA9IGZ1bmN0aW9uKGUpIHsK
KyAgICBlLnByZXZlbnREZWZhdWx0KCk7Cit9OworCisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI2Njk5Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjY2OTk8L2E+PC9wPgorCisgICAgPHA+SW5zdHJ1Y3Rpb25zOiA8L3A+CisKKyAgICA8cD5E
cmFnIHRoZSAiRHJhZyBNZSEiIGxpbmsgYmVsb3c8L3A+CisgICAgPHA+UHJlc3MgZXNjYXBlPC9w
PgorCisgICAgPGEgaWQ9InRlc3QtbGluayIgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmciIG9uZHJh
Z3N0YXJ0PSJkcmFnU3RhcnQoZXZlbnQpIj5EcmFnIE1lITwvYT4KKworICAgIDxwcmUgaWQ9Imxv
ZyI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2
aXNpb24gNDUzOTMpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjEwMiw2ICsyMTAyLDkgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRyYWdTb3VyY2VF
bmRlZEF0KGNvbgogICAgIH0KICAgICBmcmVlQ2xpcGJvYXJkKCk7CiAgICAgZHJhZ1N0YXRlKCku
bV9kcmFnU3JjID0gMDsKKyAgICAvLyBJbiBjYXNlIHRoZSBkcmFnIHdhcyBlbmRlZCBkdWUgdG8g
YW4gZXNjYXBlIGtleSBwcmVzcyB3ZSBuZWVkIHRvIGVuc3VyZQorICAgIC8vIHRoYXQgY29uc2Vj
dXRpdmUgbW91c2Vtb3ZlIGV2ZW50cyBkb24ndCByZWluaXRpYXRlIHRoZSBkcmFnIGFuZCBkcm9w
LgorICAgIG1fbW91c2VEb3duTWF5U3RhcnREcmFnID0gZmFsc2U7CiB9CiAgICAgCiAvLyByZXR1
cm5zIGlmIHdlIHNob3VsZCBjb250aW51ZSAiZGVmYXVsdCBwcm9jZXNzaW5nIiwgaS5lLiwgd2hl
dGhlciBldmVudGhhbmRsZXIgY2FuY2VsZWQKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA0NTQxMikKKysrIFdl
YktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDkt
MDctMDEgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV2luXSBIVE1MNSBEcmFnIGFuZCBk
cm9wLCBkcmFnZW5kIGlzIG5vdCBmaXJlZCB3aGVuIHByZXNzaW5nIEVzYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY2OTkKKworICAgICAgICAqIFdl
YkRyb3BTb3VyY2UuY3BwOgorICAgICAgICAoV2ViRHJvcFNvdXJjZTo6UXVlcnlDb250aW51ZURy
YWcpOgorCiAyMDA5LTA2LTI5ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXggV2luZG93cyBidXN0YWdlLiAgTWlzc2VkIHR3byBjb25maWd1cmF0aW9ucyBmb3Ig
ZW5hYmxpbmcgREFUQUdSSUQuCkluZGV4OiBXZWJLaXQvd2luL1dlYkRyb3BTb3VyY2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAJKHJldmlzaW9uIDQ1Mzkz
KQorKysgV2ViS2l0L3dpbi9XZWJEcm9wU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0
LDIyICsxMDQsMTggQEAgUGxhdGZvcm1Nb3VzZUV2ZW50IGdlbmVyYXRlTW91c2VFdmVudChXZQog
CiBTVERNRVRIT0RJTVAgV2ViRHJvcFNvdXJjZTo6UXVlcnlDb250aW51ZURyYWcoQk9PTCBmRXNj
YXBlUHJlc3NlZCwgRFdPUkQgZ3JmS2V5U3RhdGUpCiB7Ci0gICAgaWYoZkVzY2FwZVByZXNzZWQp
Ci0gICAgICAgIHJldHVybiBEUkFHRFJPUF9TX0NBTkNFTDsKLQotICAgIGlmKCEoZ3JmS2V5U3Rh
dGUgJiAoTUtfTEJVVFRPTnxNS19SQlVUVE9OKSkpIHsKLSAgICAgICAgbV9kcm9wcGVkID0gdHJ1
ZTsKKyAgICBpZiAoZkVzY2FwZVByZXNzZWQgfHwgIShncmZLZXlTdGF0ZSAmIChNS19MQlVUVE9O
fE1LX1JCVVRUT04pKSkgeworICAgICAgICBtX2Ryb3BwZWQgPSAhZkVzY2FwZVByZXNzZWQ7CiAg
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgICAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCkpIAogICAgICAgICAgICAgICAgIC8v
RklYTUU6IFdlIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gZmluZCBvdXQgd2hhdCBhY3R1YWxs
eSBoYXBwZW5lZCBpbiB0aGUgZHJhZyA8cmRhcjovL3Byb2JsZW0vNTAxNTk2MT4KLSAgICAgICAg
ICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRyYWdTb3VyY2VFbmRlZEF0KGdlbmVyYXRl
TW91c2VFdmVudChtX3dlYlZpZXcuZ2V0KCksIGZhbHNlKSwgRHJhZ09wZXJhdGlvbkNvcHkpOwot
ICAgICAgICByZXR1cm4gRFJBR0RST1BfU19EUk9QOworICAgICAgICAgICAgICAgIGZyYW1lLT5l
dmVudEhhbmRsZXIoKS0+ZHJhZ1NvdXJjZUVuZGVkQXQoZ2VuZXJhdGVNb3VzZUV2ZW50KG1fd2Vi
Vmlldy5nZXQoKSwgZmFsc2UpLCBmRXNjYXBlUHJlc3NlZCA/IERyYWdPcGVyYXRpb25Ob25lIDog
RHJhZ09wZXJhdGlvbkNvcHkpOworICAgICAgICByZXR1cm4gZkVzY2FwZVByZXNzZWQ/IERSQUdE
Uk9QX1NfQ0FOQ0VMIDogRFJBR0RST1BfU19EUk9QOwogICAgIH0gZWxzZSBpZiAoUGFnZSogcGFn
ZSA9IG1fd2ViVmlldy0+cGFnZSgpKQogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGFnZS0+
bWFpbkZyYW1lKCkpIAogICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kcmFnU291
cmNlTW92ZWRUbyhnZW5lcmF0ZU1vdXNlRXZlbnQobV93ZWJWaWV3LmdldCgpLCB0cnVlKSk7CiAK
ICAgICByZXR1cm4gU19PSzsKLQogfQogCiBTVERNRVRIT0RJTVAgV2ViRHJvcFNvdXJjZTo6R2l2
ZUZlZWRiYWNrKERXT1JEKQo=
</data>
<flag name="review"
          id="16637"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>