<?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>18677</bug_id>
          
          <creation_ts>2008-04-22 11:31:34 -0700</creation_ts>
          <short_desc>Synchronous event dispatch confuses the popup blocker into incorrectly blocking chat popups @ gmail.com</short_desc>
          <delta_ts>2008-04-24 17:50:13 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Mark Rowe (bdash)">mrowe</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78546</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-04-22 11:31:34 -0700</bug_when>
    <thetext>Feng Qian on the GMail team provided this diagnosis.

WORKS (popout escapes blocker):

Click on &apos;New window&apos; in conversation view
Shift-C keyboard shortcut
Shift-R keyboard shortcut


DOES NOT WORK (grrrrr):

Shift-click on &apos;compose mail&apos;
Shift-click on thread in threadlist view
Pop out chat

Looks like the issue is nested event handling.

If a event handler triggers another event handler synchronizely, window.event is gone after exiting the nested event handler. The code causing trouble is in handleEvent function of kjs_events.cpp.

windowWrapper-&gt;window()-&gt;setCurrentEvent(event);
....
windowWrapper-&gt;window()-&gt;setCurrentEvent(0);

If we save the old event and resotre it after calling the function, it should work. e.g.,

Event* saved_evt = windowWrapper-&gt;window()-&gt;currentEvent();
windowWrapper-&gt;window()-&gt;setCurrentEvent(event);
....
windowWrapper-&gt;window()-&gt;setCurrentEvent(saved_evt);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78547</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-04-22 11:32:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/5880560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78551</commentid>
    <comment_count>2</comment_count>
      <attachid>20751</attachid>
    <who name="Feng Qian">ian.eng.webkit</who>
    <bug_when>2008-04-22 11:59:48 -0700</bug_when>
    <thetext>Created attachment 20751
A patch of a layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78552</commentid>
    <comment_count>3</comment_count>
      <attachid>20752</attachid>
    <who name="Feng Qian">ian.eng.webkit</who>
    <bug_when>2008-04-22 12:00:49 -0700</bug_when>
    <thetext>Created attachment 20752
Patch of kjs_events.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78651</commentid>
    <comment_count>4</comment_count>
      <attachid>20751</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-04-23 07:51:50 -0700</bug_when>
    <thetext>Comment on attachment 20751
A patch of a layout test

+if (window.layoutTestController) {
+  layoutTestController.dumpAsText();
+}

According to our style guidelines, this one-line if body should not include braces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78652</commentid>
    <comment_count>5</comment_count>
      <attachid>20752</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-04-23 07:52:38 -0700</bug_when>
    <thetext>Comment on attachment 20752
Patch of kjs_events.cpp

+        Event* saved_event = windowWrapper-&gt;window()-&gt;currentEvent();

According to our style guidelines, variable names should use camelCase, so &quot;saved_event&quot; should be named &quot;savedEvent&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78653</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-04-23 07:52:58 -0700</bug_when>
    <thetext>Thanks for fixing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78662</commentid>
    <comment_count>7</comment_count>
    <who name="Feng Qian">ian.eng.webkit</who>
    <bug_when>2008-04-23 09:05:46 -0700</bug_when>
    <thetext>ggaren, thanks for you review. You can take the patch and make changes as you suggested and land the patch. I don&apos;t have SVN checkin right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78838</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-04-24 17:13:38 -0700</bug_when>
    <thetext>I&apos;m making the requested changes and will land this shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78839</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-04-24 17:50:13 -0700</bug_when>
    <thetext>Landed in r32525.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20751</attachid>
            <date>2008-04-22 11:59:48 -0700</date>
            <delta_ts>2008-04-23 07:51:50 -0700</delta_ts>
            <desc>A patch of a layout test</desc>
            <filename>bug-18677-test.patch</filename>
            <type>text/plain</type>
            <size>1962</size>
            <attacher name="Feng Qian">ian.eng.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyNDAw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDgtMDQt
MjIgIEZlbmcgUWlhbiAgPGlhbi5lbmcud2Via2l0QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGZvciBuZXN0ZWQgZXZlbnQg
aGFuZGxlcnMuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9uZXN0ZWQtd2luZG93LWV2ZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvbmVzdGVkLXdpbmRvdy1l
dmVudC5odG1sOiBBZGRlZC4KKwogMjAwOC0wNC0yMiAgQWxpY2UgTGl1ICA8YWxpY2UubGl1QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuIGFuZCBBZGFtIFJv
YmVuLgpJbmRleDogZmFzdC9ldmVudHMvbmVzdGVkLXdpbmRvdy1ldmVudC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gZmFzdC9ldmVudHMvbmVzdGVkLXdpbmRvdy1ldmVudC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBmYXN0L2V2ZW50cy9uZXN0ZWQtd2luZG93LWV2ZW50LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitUaGlzIHRlc3RzIHdpbmRvdy5l
dmVudCB3YXMga2VwdCB0aGUgc2FtZSB3aGVuIG5lc3RlZCBldmVudCBoYW5kbGluZyB3YXMgY2Fs
bGVkLiBZb3Ugc2hvdWxkIHNlZSAnUEFTUycgaWYgdGhlIHRlc3QgcGFzc2VzLiANCitQQVNTDQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogZmFzdC9ldmVudHMvbmVzdGVkLXdpbmRvdy1ldmVudC1leHBl
Y3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDog
ZmFzdC9ldmVudHMvbmVzdGVkLXdpbmRvdy1ldmVudC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGZhc3Qv
ZXZlbnRzL25lc3RlZC13aW5kb3ctZXZlbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIGZhc3QvZXZl
bnRzL25lc3RlZC13aW5kb3ctZXZlbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBA
QAorPGh0bWw+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gcnVu
X3Rlc3QoKSB7CisgIHZhciBvbGRfZXZ0ID0gd2luZG93LmV2ZW50OworICB2YXIgeGhyID0gbmV3
IFhNTEh0dHBSZXF1ZXN0KCk7CisgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigp
IHt9CisgIHhoci5vcGVuKCJHRVQiLCAidGVzdC5odG1sIik7CisgIHhoci5zZW5kKCk7CisgIC8v
IHdpbmRvdy5ldmVudCBzaG91bGQgZXhpc3QsIGFuZCBzYW1lIGFzIG9sZF9ldnQuCisgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0KKyAgICBvbGRfZXZ0ID09
IHdpbmRvdy5ldmVudCA/ICdQQVNTJyA6ICdGQUlMJzsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJydW5fdGVzdCgpIj4KK1RoaXMgdGVzdHMgd2luZG93LmV2ZW50IHdhcyBrZXB0IHRoZSBz
YW1lIHdoZW4gbmVzdGVkIGV2ZW50CitoYW5kbGluZyB3YXMgY2FsbGVkLiBZb3Ugc2hvdWxkIHNl
ZSAnUEFTUycgaWYgdGhlIHRlc3QgcGFzc2VzLgorPGJyPgorPGRpdiBpZD0nY29uc29sZSc+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+ICAK
</data>
<flag name="review"
          id="9085"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20752</attachid>
            <date>2008-04-22 12:00:49 -0700</date>
            <delta_ts>2008-04-23 07:52:38 -0700</delta_ts>
            <desc>Patch of kjs_events.cpp</desc>
            <filename>bug-18677.patch</filename>
            <type>text/plain</type>
            <size>1460</size>
            <attacher name="Feng Qian">ian.eng.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyNDAw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDgtMDQt
MjIgIEZlbmcgUWlhbiAgPGlhbi5lbmcud2Via2l0QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGhlIGJ1ZyAxODY3NzogU3lu
Y2hyb25pemVkIGV2ZW50IGRpc3BhdGNoIGNvbmZ1c2VzIHRoZSBwb3B1cCBibG9ja2VyIGludG8g
aW5jb3JyZWN0bHkgYmxvY2tpbmcgY2hhciBwb3B1cHMgaW4gZ21haWwuY29tLgorCisgICAgICAg
IFRlc3Q6IGZhc3QvZXZlbnRzL25lc3RlZC13aW5kb3ctZXZlbnQuaHRtbAorCisgICAgICAgICog
YmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Fic3RyYWN0
RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorCiAyMDA4LTA0LTIyICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCklu
ZGV4OiBiaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9q
cy9ranNfZXZlbnRzLmNwcAkocmV2aXNpb24gMzIzOTYpCisrKyBiaW5kaW5ncy9qcy9ranNfZXZl
bnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsOCBAQCB2b2lkIEpTQWJzdHJhY3RF
dmVudExpc3RlbmVyOjpoYW5kbGVFdmVuCiAKICAgICAgICAgTGlzdCBhcmdzOwogICAgICAgICBh
cmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGV2ZW50KSk7Ci0KKwkKKyAgICAgICAgRXZlbnQqIHNhdmVk
X2V2ZW50ID0gd2luZG93V3JhcHBlci0+d2luZG93KCktPmN1cnJlbnRFdmVudCgpOwogICAgICAg
ICB3aW5kb3dXcmFwcGVyLT53aW5kb3coKS0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsKIAogICAg
ICAgICBKU1ZhbHVlKiByZXR2YWw7CkBAIC0xMDAsNyArMTAxLDcgQEAgdm9pZCBKU0Fic3RyYWN0
RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbgogICAgICAgICB9CiAgICAgICAgIHdpbmRvd1dyYXBw
ZXItPndpbmRvdygpLT5zdG9wVGltZW91dENoZWNrKCk7CiAKLSAgICAgICAgd2luZG93V3JhcHBl
ci0+d2luZG93KCktPnNldEN1cnJlbnRFdmVudCgwKTsKKyAgICAgICAgd2luZG93V3JhcHBlci0+
d2luZG93KCktPnNldEN1cnJlbnRFdmVudChzYXZlZF9ldmVudCk7CiAKICAgICAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICBKU09iamVjdCogZXhjZXB0aW9uID0g
ZXhlYy0+ZXhjZXB0aW9uKCktPnRvT2JqZWN0KGV4ZWMpOwo=
</data>
<flag name="review"
          id="9073"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>