<?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>22200</bug_id>
          
          <creation_ts>2008-11-11 23:42:33 -0800</creation_ts>
          <short_desc>Crash when close event is dispatched to MessagePort due to document destruction</short_desc>
          <delta_ts>2008-11-12 23:33:08 -0800</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>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></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>98445</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-11 23:42:33 -0800</bug_when>
    <thetext>According to current HTML5 text, a close event should be dispatched to MessagePorts whose entangled ports belong to a document that is being destructed.

This causes crashes for us in some circumstances, because the document can be destroyed from the same GC run that destroys ports and their event listeners. But also, this requirement is logically incorrect, because it makes behavior depend on GC order in some cases.

This has not been resolved in HTML5 yet, but I want to fix the crash anyway. Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98447</commentid>
    <comment_count>1</comment_count>
      <attachid>25091</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-12 00:21:14 -0800</bug_when>
    <thetext>Created attachment 25091
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98470</commentid>
    <comment_count>2</comment_count>
      <attachid>25091</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-11-12 07:41:17 -0800</bug_when>
    <thetext>Comment on attachment 25091
proposed fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98594</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-12 23:33:08 -0800</bug_when>
    <thetext>Committed revision 38366.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25091</attachid>
            <date>2008-11-12 00:21:14 -0800</date>
            <delta_ts>2008-11-12 07:41:17 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>CloseEventCrash.txt</filename>
            <type>text/plain</type>
            <size>6689</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODMyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDgtMTEtMTIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMAorICAgICAgICBD
cmFzaCB3aGVuIGNsb3NlIGV2ZW50IGlzIGRpc3BhdGNoZWQgdG8gTWVzc2FnZVBvcnQgZHVlIHRv
IGRvY3VtZW50IGRlc3RydWN0aW9uCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvbWVzc2Fn
ZS1wb3J0LW9uY2xvc2UuaHRtbAorCisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0LmNwcDogKFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0Ojpjb250ZXh0RGVzdHJveWVkKToKKyAgICAgICAgRG9uJ3QgZGlz
cGF0Y2ggY2xvc2UgZXZlbnQsIGV2ZW4gdGhvdWdoIEhUTUw1IGN1cnJlbnRseSBzYXlzIHRoYXQg
d2Ugc2hvdWxkLiBJdCBpcyBub3QKKyAgICAgICAgcmlnaHQgZm9yIEdDIHRvIGhhdmUgb2JzZXJ2
YWJsZSBlZmZlY3RzLgorCiAyMDA4LTExLTExICBTdGVwaGFuaWUgIDxzbGV3aXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBXZWJDb3JlL2Rv
bS9NZXNzYWdlUG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQu
Y3BwCShyZXZpc2lvbiAzODMyOSkKKysrIFdlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA5LDEyICsyMDksOCBAQCB2b2lkIE1lc3NhZ2VQb3J0Ojp1bmVudGFu
Z2xlKCkKIAogdm9pZCBNZXNzYWdlUG9ydDo6Y29udGV4dERlc3Ryb3llZCgpCiB7Ci0gICAgaWYg
KG1fZW50YW5nbGVkUG9ydCkgewotICAgICAgICBSZWZQdHI8TWVzc2FnZVBvcnQ+IHN1cnZpdmlu
Z1BvcnQgPSBtX2VudGFuZ2xlZFBvcnQ7CisgICAgaWYgKG1fZW50YW5nbGVkUG9ydCkKICAgICAg
ICAgdW5lbnRhbmdsZSgpOwotICAgICAgICBpZiAoc3Vydml2aW5nUG9ydC0+bV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0ICE9IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgLy8gT3RoZXJ3aXNlLCBz
dXJ2aXZpbmdQb3J0IHdvbid0IHJlYWxseSBzdXJ2aXZlLgotICAgICAgICAgICAgc3Vydml2aW5n
UG9ydC0+cXVldWVDbG9zZUV2ZW50KCk7Ci0gICAgfQogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCA9IDA7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM4MzI5KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDgtMTEtMTIgIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjIwMAorICAgICAgICBDcmFzaCB3aGVuIGNsb3NlIGV2ZW50IGlzIGRpc3Bh
dGNoZWQgdG8gTWVzc2FnZVBvcnQgZHVlIHRvIGRvY3VtZW50IGRlc3RydWN0aW9uCisKKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtb25jbG9zZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL21lc3NhZ2UtcG9ydC1vbmNsb3NlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9tZXNzYWdlLXBvcnQtaWZyYW1lLmh0
bWw6CisgICAgICAgIEFkZGVkIG1vcmUgdGVzdHMgZm9yIGNsb3NlIGV2ZW50IGRpc3BhdGNoLgor
CiAyMDA4LTExLTExICBTdGVwaGFuaWUgIDxzbGV3aXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9t
ZXNzYWdlLXBvcnQtb25jbG9zZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW9uY2xvc2UtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW9uY2xvc2UtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBjbG9zZSBl
dmVudCBoYW5kbGVyIGlzIGludm9rZWQgd2hlbiBhIE1lc3NhZ2VQb3J0IGlzIGNsb3NlZC4KKwor
UEFTUworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNz
YWdlLXBvcnQtb25jbG9zZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10
eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW9uY2xvc2UuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtb25jbG9zZS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0
LW9uY2xvc2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDEgQEAKKzxib2R5PgorPHA+
VGVzdCB0aGF0IGNsb3NlIGV2ZW50IGhhbmRsZXIgaXMgaW52b2tlZCB3aGVuIGEgTWVzc2FnZVBv
cnQgaXMgY2xvc2VkLjwvcD4KKzxwcmUgaWQ9bG9nPjwvcHJlPgorPHNjcmlwdD4KK2Z1bmN0aW9u
IGdjKCkKK3sKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIEdD
Q29udHJvbGxlci5jb2xsZWN0KCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBp
KyspIHsgLy8gPiBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0IDlL
IGFsbG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCisgICAgICAgIHZhciBzID0gbmV3IFN0cmlu
ZygiYWJjIik7CisgICAgfQorfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7
Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAvLyBTaW5nbGUgZnJhbWUu
CisgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWw7CisgICAgdmFyIGNsb3NlQ291
bnQgPSAwOworICAgIGZ1bmN0aW9uIG9uY2xvc2UoKQorICAgIHsKKyAgICAgICAgKytjbG9zZUNv
dW50OworICAgICAgICBpZiAoY2xvc2VDb3VudCA9PSA0KQorICAgICAgICAgICAgdGVzdDIoKTsK
KyAgICB9CisKKyAgICBjaGFubmVsLnBvcnQxLm9uY2xvc2UgPSBvbmNsb3NlOworICAgIGNoYW5u
ZWwucG9ydDIub25jbG9zZSA9IG9uY2xvc2U7CisgICAgY2hhbm5lbC5wb3J0MS5hZGRFdmVudExp
c3RlbmVyKCJjbG9zZSIsIG9uY2xvc2UsIGZhbHNlKTsKKyAgICBjaGFubmVsLnBvcnQyLmFkZEV2
ZW50TGlzdGVuZXIoImNsb3NlIiwgb25jbG9zZSwgZmFsc2UpOworICAgIAorICAgIGdjKCk7Cisg
ICAgY2hhbm5lbC5wb3J0MS5zdGFydCgpOworICAgIGNoYW5uZWwucG9ydDIuc3RhcnQoKTsKKyAg
ICBjaGFubmVsLnBvcnQxLmNsb3NlKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QyKCkKK3sKKyAgICAv
LyBDcm9zcy1mcmFtZS4KKyAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbDsKKyAg
ICB3aW5kb3cuZnJhbWVzWzBdLnBvc3RNZXNzYWdlKCJtc2ciLCBjaGFubmVsLnBvcnQyLCAiKiIp
OworCisgICAgdmFyIG1haW5Qb3J0ID0gY2hhbm5lbC5wb3J0MTsKKyAgICBtYWluUG9ydC5zdGFy
dCgpOworCisgICAgdmFyIGNsb3NlQ291bnQgPSAwOworICAgIGZ1bmN0aW9uIG9uY2xvc2UoKQor
ICAgIHsKKyAgICAgICAgKytjbG9zZUNvdW50OworICAgICAgICBpZiAoY2xvc2VDb3VudCA9PSAy
KQorICAgICAgICAgICAgdGVzdDMoKTsKKyAgICB9CisKKyAgICBtYWluUG9ydC5wb3N0TWVzc2Fn
ZSgiY2xvc2VQb3J0Iik7CisgICAgbWFpblBvcnQub25jbG9zZSA9IG9uY2xvc2U7CisgICAgbWFp
blBvcnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCBvbmNsb3NlLCBmYWxzZSk7CisgICAgZ2Mo
KTsKK30KKworZnVuY3Rpb24gdGVzdDMoKQoreworICAgIC8vIERvY3VtZW50IGRlc3Ryb3llZC4K
KyAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbDsKKyAgICB3aW5kb3cuZnJhbWVz
WzBdLnBvc3RNZXNzYWdlKCJtc2ciLCBjaGFubmVsLnBvcnQyLCAiKiIpOworCisgICAgdmFyIG1h
aW5Qb3J0ID0gY2hhbm5lbC5wb3J0MTsKKyAgICBtYWluUG9ydC5zdGFydCgpOworCisgICAgdmFy
IGNsb3NlQ291bnQgPSAwOworICAgIGZ1bmN0aW9uIG9uY2xvc2UoKQorICAgIHsKKyAgICAgICAg
KytjbG9zZUNvdW50OworICAgICAgICBsb2coIkZBSUw6IHVuZXhwZWN0ZWQgY2xvc2UgZXZlbnQg
ZnJvbSBkb2N1bWVudCBkZXN0cnVjdGlvbi4iKTsKKyAgICB9CisKKyAgICBtYWluUG9ydC5wb3N0
TWVzc2FnZSgiY2xvc2VGcmFtZSIpOworICAgIG1haW5Qb3J0Lm9uY2xvc2UgPSBvbmNsb3NlOwor
ICAgIG1haW5Qb3J0LmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwgb25jbG9zZSwgZmFsc2UpOwor
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmIChjbG9zZUNvdW50ID09IDAp
CisgICAgICAgICAgICBsb2coIlBBU1MiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICB9LCA1MCk7CisKKyAgICBnYygpOworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0i
cmVzb3VyY2VzL21lc3NhZ2UtcG9ydC1pZnJhbWUuaHRtbCIgb25sb2FkPSJ0ZXN0KCkiPjwvaWZy
YW1lPgorPC9ib2R5PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvbWVzc2FnZS1wb3J0LW9uY2xvc2UuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvbWVzc2FnZS1wb3J0LWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3Jlc291cmNlcy9tZXNzYWdlLXBvcnQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDM4
MzI5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL21lc3NhZ2UtcG9ydC1p
ZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDE0IEBACiA8c2NyaXB0PgorZnVu
Y3Rpb24gZ2MoKQoreworICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICByZXR1
cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVxdWlyZXMgYWJv
dXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkKKyAgICAgICAgdmFyIHMgPSBuZXcg
U3RyaW5nKCJhYmMiKTsKKyAgICB9Cit9CisKIHZhciBwb3J0OwogZnVuY3Rpb24gb25NZXNzYWdl
KGV2dCkgewogICAgIGlmIChldnQuZGF0YSA9PSAicGluZyIpCkBAIC0xNCw2ICsyNCwxMiBAQCBm
dW5jdGlvbiBvbk1lc3NhZ2UoZXZ0KSB7CiAgICAgICAgIGFsZXJ0KGV2dC5kYXRhLnN1YnN0cig2
KSk7CiAgICAgZWxzZSBpZiAoZXZ0LmRhdGEgPT0gImZyZWV6ZSIpCiAgICAgICAgIHdoaWxlICgx
KSB7fQorICAgIGVsc2UgaWYgKGV2dC5kYXRhID09ICJjbG9zZVBvcnQiKQorICAgICAgICB0aGlz
LmNsb3NlKCk7CisgICAgZWxzZSBpZiAoZXZ0LmRhdGEgPT0gImNsb3NlRnJhbWUiKSB7CisgICAg
ICAgIGZyYW1lRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZyYW1lRWxlbWVudCk7Cisg
ICAgICAgIGdjKCk7CisgICAgfQogfQogCiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGZ1bmN0aW9uKGV2dCkgewo=
</data>
<flag name="review"
          id="11546"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>