<?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>38910</bug_id>
          
          <creation_ts>2010-05-11 08:36:27 -0700</creation_ts>
          <short_desc>PageGroupLoadDeferrer should also defer executeScriptSoonTimer</short_desc>
          <delta_ts>2010-06-14 12:19:58 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>staikos</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223935</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-05-11 08:36:27 -0700</bug_when>
    <thetext>PageGroupLoadDeferrer suspends all active dom timers and loading jobs. But it doesn&apos;t suspend Document::m_executeScriptSoonTimer. In the case a m_executeScriptSoonTimer is already scheduled, and a JS alert window pops up (which is guarded by PageGroupLoadDeferrer), Document::m_executeScriptSoonTimer can still fire and run JS on the same doc, and then can schedule DOM timers on the doc.

I&apos;ve seen it results ASSERTION failure in DOMTimer when the PageGroupLoadDeferrer destructs. (it resumes dom timers, and every dom timer asserts that it is currently suspended.)

But this problem cannot be reproduced reliably because it depends on timing. It happens only when m_executeScriptSoonTimer has been scheduled by not fired yet before a PageGroupLoadDeferrer is constructed.

The solution is simple: Just suspend all executeScriptSoonTimer timers in PageGroupLoadDeferrer ctor, and resume them in PageGroupLoadDeferrer dtro.

But it&apos;s very hard to create a layout test for it. Help needed!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223943</commentid>
    <comment_count>1</comment_count>
      <attachid>55707</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-05-11 08:54:49 -0700</bug_when>
    <thetext>Created attachment 55707
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224007</commentid>
    <comment_count>2</comment_count>
      <attachid>55718</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-05-11 10:41:09 -0700</bug_when>
    <thetext>Created attachment 55718
fix merge error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230722</commentid>
    <comment_count>3</comment_count>
      <attachid>57099</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-05-26 08:31:42 -0700</bug_when>
    <thetext>Created attachment 57099
Test case included thanks to Robin!

Thanks to Robin Cao, who created the test case.

This test cast can reproduce the problem reliably.

Robin has verified this problem happens on both Safari for Windows and QtLauncher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230723</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-26 08:32:18 -0700</bug_when>
    <thetext>Attachment 57099 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/manual-tests/resources/load-deferrer-script-element.js:1:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 5 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230727</commentid>
    <comment_count>5</comment_count>
      <attachid>57102</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-05-26 08:52:54 -0700</bug_when>
    <thetext>Created attachment 57102
With enhanced test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237696</commentid>
    <comment_count>6</comment_count>
      <attachid>57102</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-13 21:27:53 -0700</bug_when>
    <thetext>Comment on attachment 57102
With enhanced test case

Can this work be put into the suspendActiveDOMObjects and resumeActiveDOMObjects function rather than adding two more member functions to Document? I’d prefer to do it that way. It’s OK this way, but I’d prefer not to modify Document.h and PageGroupLoadDeferrer.cpp.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237791</commentid>
    <comment_count>7</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2010-06-14 06:12:35 -0700</bug_when>
    <thetext>Let&apos;s open a second bug report to refactor it.  I think we have a couple of additional similar patches coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237844</commentid>
    <comment_count>8</comment_count>
      <attachid>57102</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-06-14 08:59:34 -0700</bug_when>
    <thetext>Comment on attachment 57102
With enhanced test case

I agree they should be merged into one function, but the old function name seems a little bit misleading. PageGroupLoadDeferrer needs to be purified more, and refactoring can be done in next patches. Committing it for now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237853</commentid>
    <comment_count>9</comment_count>
      <attachid>57102</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-14 09:27:21 -0700</bug_when>
    <thetext>Comment on attachment 57102
With enhanced test case

Clearing flags on attachment: 57102

Committed r61126: &lt;http://trac.webkit.org/changeset/61126&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237854</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-14 09:27:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55707</attachid>
            <date>2010-05-11 08:54:49 -0700</date>
            <delta_ts>2010-05-11 10:41:09 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>38910.patch</filename>
            <type>text/plain</type>
            <size>3741</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDExNWQ5NS4uYzBhOGFlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xMSAgWW9uZyBMaSAgPHlv
bGlAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MTAKKworICAg
ICAgICBTdXNwZW5kIERvY3VtZW50OjptX2V4ZWN1dGVTY3JpcHRTb29uVGltZXIgb2JqZWN0cyB3
aGVuIHRoZSBwYWdlIGlzIGRlZmVycmVkLgorICAgICAgICBUaGVyZSdzIG5vIHJlYXNvbiB3aHkg
d2Ugc3VzcGVuZCBhbGwgYWN0aXZlIERPTSB0aW1lcnMgb24gdGhlIHBhZ2UgYnV0IG5vdCBzdXNw
ZW5kCisgICAgICAgIHRoaXMgb25lLiBEb2N1bWVudDo6bV9leGVjdXRlU2NyaXB0U29vblRpbWVy
IGNhbiBydW4gSlMgYW5kIHNjaGVkdWxlIG1vcmUgRE9NIFRpbWVycy4KKworICAgICAgICBObyBs
YXllb3V0IHRlc3QgYmVjYXVzZSBpdCBpcyB0aW1pbmcgcmVsYXRlZCBhbmQgaGFyZCB0byByZXBy
b2R1Y2UgcmVsaWFibHkuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmV4ZWN1dGVTY3JpcHRTb29uKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpzdXNwZW5kRXhlY3V0ZVNjcmlwdFNvb25UaW1lcik6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVzdW1lRXhlY3V0ZVNjcmlwdFNvb25UaW1lcik6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2Fk
RGVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFn
ZUdyb3VwTG9hZERlZmVycmVyKToKKwogMjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAgPGF0cmVhdEBy
aW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
MDUyZDBmOC4uMGI4MGQ3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDU4NSw2ICs0NTg1LDE3IEBAIHZvaWQg
RG9jdW1lbnQ6OmV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1lbnREYXRhKiBkYXRhLCBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDCiAgICAgICAgIG1fZXhlY3V0ZVNjcmlwdFNvb25UaW1lci5zdGFy
dE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnN1c3BlbmRFeGVjdXRlU2NyaXB0U29v
blRpbWVyKCkKK3sKKyAgICBtX2V4ZWN1dGVTY3JpcHRTb29uVGltZXIuc3RvcCgpOworfQorCit2
b2lkIERvY3VtZW50OjpyZXN1bWVFeGVjdXRlU2NyaXB0U29vblRpbWVyKCkKK3sKKyAgICBpZiAo
IW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpKQorICAgICAgICBtX2V4ZWN1dGVTY3Jp
cHRTb29uVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCiAvLyBGRiBtZXRob2QgZm9yIGFjY2Vz
c2luZyB0aGUgc2VsZWN0aW9uIGFkZGVkIGZvciBjb21wYXRhYmlsaXR5LgogRE9NU2VsZWN0aW9u
KiBEb2N1bWVudDo6Z2V0U2VsZWN0aW9uKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDlmNDFhMWMuLjgw
NjA4MDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtNzcyLDYgKzc3Miw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZXhl
Y3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudERhdGEqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+KTsKIAorICAgIHZvaWQgc3VzcGVuZEV4ZWN1dGVTY3JpcHRTb29uVGltZXIo
KTsKKyAgICB2b2lkIHJlc3VtZUV4ZWN1dGVTY3JpcHRTb29uVGltZXIoKTsKKwogI2lmIEVOQUJM
RShYU0xUKQogICAgIHZvaWQgYXBwbHlYU0xUcmFuc2Zvcm0oUHJvY2Vzc2luZ0luc3RydWN0aW9u
KiBwaSk7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudD4gdHJhbnNmb3JtU291cmNlRG9jdW1lbnQo
KSB7IHJldHVybiBtX3RyYW5zZm9ybVNvdXJjZURvY3VtZW50OyB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuY3BwCmluZGV4IDEyMjY1OGIuLmNlZDhmMzYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCkBAIC00Myw4ICs0MywxMCBAQCBQYWdlR3JvdXBMb2Fk
RGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJlcihQYWdlKiBwYWdlLCBib29sIGRlZmVyU2Vs
ZikKIAogICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGlzIG5vdCBsb2dpY2FsbHkgcGFydCBvZiBs
b2FkIGRlZmVycmluZywgYnV0IHdlIGRvIG5vdCB3YW50IEpTIGNvZGUgZXhlY3V0ZWQgYmVuZWF0
aCBtb2RhbAogICAgICAgICAgICAgLy8gd2luZG93cyBvciBzaGVldHMsIHdoaWNoIGlzIGV4YWN0
bHkgd2hlbiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgaXMgdXNlZC4KLSAgICAgICAgICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFt
ZSA9IG90aGVyUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkt
PnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN1
c3BlbmRBY3RpdmVET01PYmplY3RzKCk7CisgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50
KCktPnN1c3BlbmRFeGVjdXRlU2NyaXB0U29vblRpbWVyKCk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAKQEAgLTYwLDggKzYyLDEwIEBAIFBhZ2VHcm91cExvYWREZWZlcnJlcjo6
flBhZ2VHcm91cExvYWREZWZlcnJlcigpCiAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9kZWZl
cnJlZEZyYW1lc1tpXS0+cGFnZSgpKSB7CiAgICAgICAgICAgICBwYWdlLT5zZXREZWZlcnNMb2Fk
aW5nKGZhbHNlKTsKIAotICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWlu
RnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisg
ICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAg
IGZyYW1lLT5kb2N1bWVudCgpLT5yZXN1bWVBY3RpdmVET01PYmplY3RzKCk7CisgICAgICAgICAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnJlc3VtZUV4ZWN1dGVTY3JpcHRTb29uVGltZXIoKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55718</attachid>
            <date>2010-05-11 10:41:09 -0700</date>
            <delta_ts>2010-05-26 08:31:42 -0700</delta_ts>
            <desc>fix merge error</desc>
            <filename>38910.patch</filename>
            <type>text/plain</type>
            <size>3749</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWNkOTkxMS4uMTZhYzdkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xMSAgWW9uZyBMaSAgPHlv
bGlAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MTAKKworICAg
ICAgICBTdXNwZW5kIERvY3VtZW50OjptX2V4ZWN1dGVTY3JpcHRTb29uVGltZXIgb2JqZWN0cyB3
aGVuIHRoZSBwYWdlIGlzIGRlZmVycmVkLgorICAgICAgICBUaGVyZSdzIG5vIHJlYXNvbiB3aHkg
d2Ugc3VzcGVuZCBhbGwgYWN0aXZlIERPTSB0aW1lcnMgb24gdGhlIHBhZ2UgYnV0IG5vdCBzdXNw
ZW5kCisgICAgICAgIHRoaXMgb25lLiBEb2N1bWVudDo6bV9leGVjdXRlU2NyaXB0U29vblRpbWVy
IGNhbiBydW4gSlMgYW5kIHNjaGVkdWxlIG1vcmUgRE9NIFRpbWVycy4KKworICAgICAgICBObyBs
YXllb3V0IHRlc3QgYmVjYXVzZSBpdCBpcyB0aW1pbmcgcmVsYXRlZCBhbmQgaGFyZCB0byByZXBy
b2R1Y2UgcmVsaWFibHkuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmV4ZWN1dGVTY3JpcHRTb29uKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpzdXNwZW5kRXhlY3V0ZVNjcmlwdFNvb25UaW1lcik6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVzdW1lRXhlY3V0ZVNjcmlwdFNvb25UaW1lcik6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2Fk
RGVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFn
ZUdyb3VwTG9hZERlZmVycmVyKToKKwogMjAxMC0wNS0xMSAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGVsZSBQZXRlcnNvbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCA5ODg0NjEwLi5kNWU4ZTZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NzM5LDYgKzQ3MzksMTcg
QEAgdm9pZCBEb2N1bWVudDo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudERhdGEqIGRh
dGEsIENhY2hlZFJlc291cmNlSGFuZGxlPEMKICAgICAgICAgbV9leGVjdXRlU2NyaXB0U29vblRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBEb2N1bWVudDo6c3VzcGVuZEV4ZWN1dGVT
Y3JpcHRTb29uVGltZXIoKQoreworICAgIG1fZXhlY3V0ZVNjcmlwdFNvb25UaW1lci5zdG9wKCk7
Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnJlc3VtZUV4ZWN1dGVTY3JpcHRTb29uVGltZXIoKQorewor
ICAgIGlmICghbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkpCisgICAgICAgIG1fZXhl
Y3V0ZVNjcmlwdFNvb25UaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKIC8vIEZGIG1ldGhvZCBm
b3IgYWNjZXNzaW5nIHRoZSBzZWxlY3Rpb24gYWRkZWQgZm9yIGNvbXBhdGliaWxpdHkuCiBET01T
ZWxlY3Rpb24qIERvY3VtZW50OjpnZXRTZWxlY3Rpb24oKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggN2Q0
ZjVlOS4uMzZlMzZjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC04MTEsNiArODExLDkgQEAgcHVibGljOgogCiAgICAg
dm9pZCBleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50RGF0YSosIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4pOwogCisgICAgdm9pZCBzdXNwZW5kRXhlY3V0ZVNjcmlwdFNv
b25UaW1lcigpOworICAgIHZvaWQgcmVzdW1lRXhlY3V0ZVNjcmlwdFNvb25UaW1lcigpOworCiAj
aWYgRU5BQkxFKFhTTFQpCiAgICAgdm9pZCBhcHBseVhTTFRyYW5zZm9ybShQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qIHBpKTsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50PiB0cmFuc2Zvcm1Tb3VyY2VE
b2N1bWVudCgpIHsgcmV0dXJuIG1fdHJhbnNmb3JtU291cmNlRG9jdW1lbnQ7IH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIGIvV2ViQ29yZS9wYWdl
L1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKaW5kZXggMTIyNjU4Yi4uY2VkOGYzNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKKysrIGIvV2ViQ29y
ZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKQEAgLTQzLDggKzQzLDEwIEBAIFBhZ2VH
cm91cExvYWREZWZlcnJlcjo6UGFnZUdyb3VwTG9hZERlZmVycmVyKFBhZ2UqIHBhZ2UsIGJvb2wg
ZGVmZXJTZWxmKQogCiAgICAgICAgICAgICAvLyBUaGlzIGNvZGUgaXMgbm90IGxvZ2ljYWxseSBw
YXJ0IG9mIGxvYWQgZGVmZXJyaW5nLCBidXQgd2UgZG8gbm90IHdhbnQgSlMgY29kZSBleGVjdXRl
ZCBiZW5lYXRoIG1vZGFsCiAgICAgICAgICAgICAvLyB3aW5kb3dzIG9yIHNoZWV0cywgd2hpY2gg
aXMgZXhhY3RseSB3aGVuIFBhZ2VHcm91cExvYWREZWZlcnJlciBpcyB1c2VkLgotICAgICAgICAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1l
bnQoKS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoKTsKKyAgICAgICAgICAgICAgICBmcmFtZS0+
ZG9jdW1lbnQoKS0+c3VzcGVuZEV4ZWN1dGVTY3JpcHRTb29uVGltZXIoKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KIApAQCAtNjAsOCArNjIsMTAgQEAgUGFnZUdyb3VwTG9hZERl
ZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKICAgICAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBtX2RlZmVycmVkRnJhbWVzW2ldLT5wYWdlKCkpIHsKICAgICAgICAgICAgIHBhZ2UtPnNldERl
ZmVyc0xvYWRpbmcoZmFsc2UpOwogCi0gICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBh
Z2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5l
eHQoKSkKKyAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAg
ICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnJlc3VtZUFjdGl2ZURPTU9iamVjdHMoKTsKKyAg
ICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVzdW1lRXhlY3V0ZVNjcmlwdFNvb25U
aW1lcigpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57099</attachid>
            <date>2010-05-26 08:31:42 -0700</date>
            <delta_ts>2010-05-26 08:46:49 -0700</delta_ts>
            <desc>Test case included thanks to Robin!</desc>
            <filename>38910withtestcase.patch</filename>
            <type>text/plain</type>
            <size>5676</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTA2OTU1Yy4uMTc3MDgyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wNS0yNiAgWW9uZyBMaSAgPHlv
bGlAcmltLmNvbT4KKworICAgICAgICBUZXN0IGNhc2VzIGNyZWF0ZWQgYnk6IFJvYmluIENhbyA8
cm9iaW4uY2FvQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg5MTAKKworICAgICAgICBTdXNwZW5kIERvY3VtZW50OjptX2V4ZWN1dGVTY3JpcHRT
b29uVGltZXIgb2JqZWN0cyB3aGVuIHRoZSBwYWdlIGlzIGRlZmVycmVkLgorICAgICAgICBUaGVy
ZSdzIG5vIHJlYXNvbiB3aHkgd2Ugc3VzcGVuZCBhbGwgYWN0aXZlIERPTSB0aW1lcnMgb24gdGhl
IHBhZ2UgYnV0IG5vdCBzdXNwZW5kCisgICAgICAgIHRoaXMgb25lLiBEb2N1bWVudDo6bV9leGVj
dXRlU2NyaXB0U29vblRpbWVyIGNhbiBydW4gSlMgYW5kIHNjaGVkdWxlIG1vcmUgRE9NIFRpbWVy
cy4KKworICAgICAgICBJdCBjYW4gb25seSBiZSB0ZXN0ZWQgbWFudWFsbHkuCisgICAgICAgICog
bWFudWFsLXRlc3RzL2xvYWQtZGVmZXJyZXItc2NyaXB0LWVsZW1lbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogbWFudWFsLXRlc3RzL3Jlc291cmNlcy9sb2FkLWRlZmVycmVyLXNjcmlwdC1lbGVt
ZW50LmpzOiBBZGRlZC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6ZXhlY3V0ZVNjcmlwdFNvb24pOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnN1c3BlbmRFeGVjdXRlU2NyaXB0U29vblRpbWVyKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lRXhlY3V0ZVNjcmlwdFNvb25UaW1lcik6IEFkZGVk
LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJlcjo6
UGFnZUdyb3VwTG9hZERlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWRE
ZWZlcnJlcjo6flBhZ2VHcm91cExvYWREZWZlcnJlcik6CisKIDIwMTAtMDUtMjAgIEFkYW0gUm9i
ZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhbiBIUkdOIGxlYWsgaW4gV0tD
QUNGTGF5ZXJSZW5kZXJlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGVhZWVkMTMuLjJlZGZlYzMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTQ3MjYsNiArNDcyNiwxNyBAQCB2b2lkIERvY3VtZW50OjpleGVjdXRlU2NyaXB0U29v
bihTY3JpcHRFbGVtZW50RGF0YSogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8QwogICAgICAg
ICBtX2V4ZWN1dGVTY3JpcHRTb29uVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIERv
Y3VtZW50OjpzdXNwZW5kRXhlY3V0ZVNjcmlwdFNvb25UaW1lcigpCit7CisgICAgbV9leGVjdXRl
U2NyaXB0U29vblRpbWVyLnN0b3AoKTsKK30KKwordm9pZCBEb2N1bWVudDo6cmVzdW1lRXhlY3V0
ZVNjcmlwdFNvb25UaW1lcigpCit7CisgICAgaWYgKCFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlz
RW1wdHkoKSkKKyAgICAgICAgbV9leGVjdXRlU2NyaXB0U29vblRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKK30KKwogLy8gRkYgbWV0aG9kIGZvciBhY2Nlc3NpbmcgdGhlIHNlbGVjdGlvbiBhZGRlZCBm
b3IgY29tcGF0aWJpbGl0eS4KIERPTVNlbGVjdGlvbiogRG9jdW1lbnQ6OmdldFNlbGVjdGlvbigp
IGNvbnN0CiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAppbmRleCBmMGZkZDUzLi40MjlhNWE1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTgxMyw2ICs4
MTMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1l
bnREYXRhKiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7CiAKKyAgICB2b2lk
IHN1c3BlbmRFeGVjdXRlU2NyaXB0U29vblRpbWVyKCk7CisgICAgdm9pZCByZXN1bWVFeGVjdXRl
U2NyaXB0U29vblRpbWVyKCk7CisKICNpZiBFTkFCTEUoWFNMVCkKICAgICB2b2lkIGFwcGx5WFNM
VHJhbnNmb3JtKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiogcGkpOwogICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IHRyYW5zZm9ybVNvdXJjZURvY3VtZW50KCkgeyByZXR1cm4gbV90cmFuc2Zvcm1Tb3Vy
Y2VEb2N1bWVudDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvbG9hZC1kZWZl
cnJlci1zY3JpcHQtZWxlbWVudC5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvbG9hZC1kZWZl
cnJlci1zY3JpcHQtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmUyYTAyZmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9sb2Fk
LWRlZmVycmVyLXNjcmlwdC1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Cit9
CisKK2Z1bmN0aW9uIGxvYWRKU0ZpbGUoKXsKKyAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NjcmlwdCcpCisgICAgcy5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGV4dC9qYXZhc2Ny
aXB0IikKKyAgICBzLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9sb2FkLWRlZmVycmVy
LXNjcmlwdC1lbGVtZW50LmpzIikKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocyk7Cit9CisKK2pzTG9hZGVkID0gZmFsc2U7CisKKy8v
IFRoaXMgbGluZSB3aWxsIGxvYWQgZXh0ZXJuYWwgc2NyaXB0IGludG8gbWVtb3J5LgorbG9hZEpT
RmlsZSgpOworCitmdW5jdGlvbiBydW5Nb2RhbCgpCit7CisgICAganNMb2FkZWQgPSB0cnVlOwor
ICAgIGxvYWRKU0ZpbGUoKTsKKworICAgIGFsZXJ0KCJTY3JpcHRzIHNob3VsZCBub3QgYmUgcnVu
bmluZyBpbiB0aGUgYmFja2dyb3VuZCEiKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorIAorPGJv
ZHk+CisgICAgCis8cD5UaGlzIHRlc3RzIHRoZSBidWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM4OTEwLgorQ2xpY2sgdGhlIGJ1dHRvbiwgd2FpdCBhIHNlY29uZCBh
bmQgY2xvc2UgaXQuCitUaGUgdGVzdCBwYXNzZXMgaWYgbm8gZXJyb3IgbWVzc2FnZXMgc2hvdyB1
cCBpbiB0aGUgcGFnZSE8L3A+Cis8aW5wdXQgaWQ9ImJ1dHRvbiIgdHlwZT0iYnV0dG9uIiB2YWx1
ZT0iY2xpY2sgbWUiIG9uY2xpY2s9InJ1bk1vZGFsKCkiLz4KKzxwIGlkPSJyZXN1bHQiPjwvcD4K
KworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbWFudWFsLXRlc3RzL3Jlc291cmNlcy9sb2FkLWRlZmVycmVyLXNjcmlwdC1l
bGVtZW50LmpzIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2xvYWQtZGVmZXJyZXIt
c2NyaXB0LWVsZW1lbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc3
M2E5MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3Jlc291cmNlcy9s
b2FkLWRlZmVycmVyLXNjcmlwdC1lbGVtZW50LmpzCkBAIC0wLDAgKzEsNSBAQAoraWYgKGpzTG9h
ZGVkKSB7DQorICAgIGxvZygiQnV0dG9uIHdhcyBjbGlja2VkLiIpOw0KKyAgICAvLyBVc2UgYSBi
aWcgdGltZW91dCB2YWx1ZSB0byBlbnN1cmUgdGhhdCBlcnJvciBtZXNzYWdlcyBkbyBub3Qgc2hv
dyB1cC4NCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgbG9nKCJFcnJvcjogVGhpcyBsaW5l
IHNob3VsZCBub3Qgc2hvdyB1cCEiKTsgfSwgMjApOw0KK30NCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwCmluZGV4IDEyMjY1OGIuLmNlZDhmMzYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwCkBAIC00Myw4ICs0MywxMCBAQCBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJlcihQYWdlKiBwYWdlLCBib29sIGRlZmVyU2VsZikK
IAogICAgICAgICAgICAgLy8gVGhpcyBjb2RlIGlzIG5vdCBsb2dpY2FsbHkgcGFydCBvZiBsb2Fk
IGRlZmVycmluZywgYnV0IHdlIGRvIG5vdCB3YW50IEpTIGNvZGUgZXhlY3V0ZWQgYmVuZWF0aCBt
b2RhbAogICAgICAgICAgICAgLy8gd2luZG93cyBvciBzaGVldHMsIHdoaWNoIGlzIGV4YWN0bHkg
d2hlbiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgaXMgdXNlZC4KLSAgICAgICAgICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9
IG90aGVyUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRy
YXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN1c3Bl
bmRBY3RpdmVET01PYmplY3RzKCk7CisgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCkt
PnN1c3BlbmRFeGVjdXRlU2NyaXB0U29vblRpbWVyKCk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTYwLDggKzYyLDEwIEBAIFBhZ2VHcm91cExvYWREZWZlcnJlcjo6flBh
Z2VHcm91cExvYWREZWZlcnJlcigpCiAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9kZWZlcnJl
ZEZyYW1lc1tpXS0+cGFnZSgpKSB7CiAgICAgICAgICAgICBwYWdlLT5zZXREZWZlcnNMb2FkaW5n
KGZhbHNlKTsKIAotICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAg
ICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAgIGZy
YW1lLT5kb2N1bWVudCgpLT5yZXN1bWVBY3RpdmVET01PYmplY3RzKCk7CisgICAgICAgICAgICAg
ICAgZnJhbWUtPmRvY3VtZW50KCktPnJlc3VtZUV4ZWN1dGVTY3JpcHRTb29uVGltZXIoKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57102</attachid>
            <date>2010-05-26 08:52:54 -0700</date>
            <delta_ts>2010-06-14 09:27:21 -0700</delta_ts>
            <desc>With enhanced test case</desc>
            <filename>38910withtestcase.patch</filename>
            <type>text/plain</type>
            <size>5741</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTA2OTU1Yy4uMTc3MDgyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wNS0yNiAgWW9uZyBMaSAgPHlv
bGlAcmltLmNvbT4KKworICAgICAgICBUZXN0IGNhc2VzIGNyZWF0ZWQgYnk6IFJvYmluIENhbyA8
cm9iaW4uY2FvQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg5MTAKKworICAgICAgICBTdXNwZW5kIERvY3VtZW50OjptX2V4ZWN1dGVTY3JpcHRT
b29uVGltZXIgb2JqZWN0cyB3aGVuIHRoZSBwYWdlIGlzIGRlZmVycmVkLgorICAgICAgICBUaGVy
ZSdzIG5vIHJlYXNvbiB3aHkgd2Ugc3VzcGVuZCBhbGwgYWN0aXZlIERPTSB0aW1lcnMgb24gdGhl
IHBhZ2UgYnV0IG5vdCBzdXNwZW5kCisgICAgICAgIHRoaXMgb25lLiBEb2N1bWVudDo6bV9leGVj
dXRlU2NyaXB0U29vblRpbWVyIGNhbiBydW4gSlMgYW5kIHNjaGVkdWxlIG1vcmUgRE9NIFRpbWVy
cy4KKworICAgICAgICBJdCBjYW4gb25seSBiZSB0ZXN0ZWQgbWFudWFsbHkuCisgICAgICAgICog
bWFudWFsLXRlc3RzL2xvYWQtZGVmZXJyZXItc2NyaXB0LWVsZW1lbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogbWFudWFsLXRlc3RzL3Jlc291cmNlcy9sb2FkLWRlZmVycmVyLXNjcmlwdC1lbGVt
ZW50LmpzOiBBZGRlZC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6ZXhlY3V0ZVNjcmlwdFNvb24pOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnN1c3BlbmRFeGVjdXRlU2NyaXB0U29vblRpbWVyKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lRXhlY3V0ZVNjcmlwdFNvb25UaW1lcik6IEFkZGVk
LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJlcjo6
UGFnZUdyb3VwTG9hZERlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWRE
ZWZlcnJlcjo6flBhZ2VHcm91cExvYWREZWZlcnJlcik6CisKIDIwMTAtMDUtMjAgIEFkYW0gUm9i
ZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhbiBIUkdOIGxlYWsgaW4gV0tD
QUNGTGF5ZXJSZW5kZXJlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGVhZWVkMTMuLjJlZGZlYzMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTQ3MjYsNiArNDcyNiwxNyBAQCB2b2lkIERvY3VtZW50OjpleGVjdXRlU2NyaXB0U29v
bihTY3JpcHRFbGVtZW50RGF0YSogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8QwogICAgICAg
ICBtX2V4ZWN1dGVTY3JpcHRTb29uVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIERv
Y3VtZW50OjpzdXNwZW5kRXhlY3V0ZVNjcmlwdFNvb25UaW1lcigpCit7CisgICAgbV9leGVjdXRl
U2NyaXB0U29vblRpbWVyLnN0b3AoKTsKK30KKwordm9pZCBEb2N1bWVudDo6cmVzdW1lRXhlY3V0
ZVNjcmlwdFNvb25UaW1lcigpCit7CisgICAgaWYgKCFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlz
RW1wdHkoKSkKKyAgICAgICAgbV9leGVjdXRlU2NyaXB0U29vblRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKK30KKwogLy8gRkYgbWV0aG9kIGZvciBhY2Nlc3NpbmcgdGhlIHNlbGVjdGlvbiBhZGRlZCBm
b3IgY29tcGF0aWJpbGl0eS4KIERPTVNlbGVjdGlvbiogRG9jdW1lbnQ6OmdldFNlbGVjdGlvbigp
IGNvbnN0CiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAppbmRleCBmMGZkZDUzLi40MjlhNWE1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTgxMyw2ICs4
MTMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1l
bnREYXRhKiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7CiAKKyAgICB2b2lk
IHN1c3BlbmRFeGVjdXRlU2NyaXB0U29vblRpbWVyKCk7CisgICAgdm9pZCByZXN1bWVFeGVjdXRl
U2NyaXB0U29vblRpbWVyKCk7CisKICNpZiBFTkFCTEUoWFNMVCkKICAgICB2b2lkIGFwcGx5WFNM
VHJhbnNmb3JtKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiogcGkpOwogICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IHRyYW5zZm9ybVNvdXJjZURvY3VtZW50KCkgeyByZXR1cm4gbV90cmFuc2Zvcm1Tb3Vy
Y2VEb2N1bWVudDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvbG9hZC1kZWZl
cnJlci1zY3JpcHQtZWxlbWVudC5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvbG9hZC1kZWZl
cnJlci1zY3JpcHQtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmMwYWQ3NzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9sb2Fk
LWRlZmVycmVyLXNjcmlwdC1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Cit9
CisKK2Z1bmN0aW9uIGxvYWRKU0ZpbGUoKXsKKyAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NjcmlwdCcpCisgICAgcy5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGV4dC9qYXZhc2Ny
aXB0IikKKyAgICBzLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9sb2FkLWRlZmVycmVy
LXNjcmlwdC1lbGVtZW50LmpzIikKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocyk7Cit9CisKK2pzTG9hZGVkID0gZmFsc2U7CitydW5u
aW5nTW9kYWwgPSBmYWxzZTsKKworLy8gVGhpcyBsaW5lIHdpbGwgbG9hZCBleHRlcm5hbCBzY3Jp
cHQgaW50byBtZW1vcnkuCitsb2FkSlNGaWxlKCk7CisKK2Z1bmN0aW9uIHJ1bk1vZGFsKCkKK3sK
KyAgICBqc0xvYWRlZCA9IHRydWU7CisgICAgbG9hZEpTRmlsZSgpOworIAorICAgIHJ1bm5pbmdN
b2RhbCA9IHRydWU7CisgICAgYWxlcnQoIlNjcmlwdHMgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGlu
IHRoZSBiYWNrZ3JvdW5kISIpOworICAgIHJ1bm5pbmdNb2RhbCA9IGZhbHNlOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+CisgCis8Ym9keT4KKyAgICAKKzxwPlRoaXMgdGVzdHMgdGhlIGJ1ZyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MTAuCitDbGljayB0aGUgYnV0
dG9uLCB3YWl0IDUgc2Vjb25kcyBhbmQgY2xvc2UgaXQuCitUaGUgdGVzdCBwYXNzZXMgaWYgbm8g
ZXJyb3IgbWVzc2FnZXMgc2hvdyB1cCBpbiB0aGUgcGFnZSE8L3A+Cis8aW5wdXQgaWQ9ImJ1dHRv
biIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iY2xpY2sgbWUiIG9uY2xpY2s9InJ1bk1vZGFsKCkiLz4K
KzxwIGlkPSJyZXN1bHQiPjwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2xvYWQtZGVmZXJyZXItc2NyaXB0LWVsZW1lbnQu
anMgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9yZXNvdXJjZXMvbG9hZC1kZWZlcnJlci1zY3JpcHQt
ZWxlbWVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGVjZGI0Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvcmVzb3VyY2VzL2xvYWQtZGVm
ZXJyZXItc2NyaXB0LWVsZW1lbnQuanMKQEAgLTAsMCArMSw1IEBACitpZiAoanNMb2FkZWQpIHsK
KyAgICBsb2coIkJ1dHRvbiB3YXMgY2xpY2tlZC4iKTsKKyAgICAvLyBVc2UgYSBiaWcgdGltZW91
dCB2YWx1ZSB0byBlbnN1cmUgdGhhdCBlcnJvciBtZXNzYWdlcyBkbyBub3Qgc2hvdyB1cC4KKyAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBpZiAocnVubmluZ01vZGFsKSBsb2coIkVycm9yOiBU
aGlzIGxpbmUgc2hvdWxkIG5vdCBzaG93IHVwISIpOyB9LCAzMDAwKTsKK30KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIGIvV2ViQ29yZS9wYWdlL1Bh
Z2VHcm91cExvYWREZWZlcnJlci5jcHAKaW5kZXggMTIyNjU4Yi4uY2VkOGYzNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKKysrIGIvV2ViQ29yZS9w
YWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKQEAgLTQzLDggKzQzLDEwIEBAIFBhZ2VHcm91
cExvYWREZWZlcnJlcjo6UGFnZUdyb3VwTG9hZERlZmVycmVyKFBhZ2UqIHBhZ2UsIGJvb2wgZGVm
ZXJTZWxmKQogCiAgICAgICAgICAgICAvLyBUaGlzIGNvZGUgaXMgbm90IGxvZ2ljYWxseSBwYXJ0
IG9mIGxvYWQgZGVmZXJyaW5nLCBidXQgd2UgZG8gbm90IHdhbnQgSlMgY29kZSBleGVjdXRlZCBi
ZW5lYXRoIG1vZGFsCiAgICAgICAgICAgICAvLyB3aW5kb3dzIG9yIHNoZWV0cywgd2hpY2ggaXMg
ZXhhY3RseSB3aGVuIFBhZ2VHcm91cExvYWREZWZlcnJlciBpcyB1c2VkLgotICAgICAgICAgICAg
Zm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgICAgIGZvciAoRnJhbWUq
IGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoKTsKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+c3VzcGVuZEV4ZWN1dGVTY3JpcHRTb29uVGltZXIoKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KIApAQCAtNjAsOCArNjIsMTAgQEAgUGFnZUdyb3VwTG9hZERlZmVy
cmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBt
X2RlZmVycmVkRnJhbWVzW2ldLT5wYWdlKCkpIHsKICAgICAgICAgICAgIHBhZ2UtPnNldERlZmVy
c0xvYWRpbmcoZmFsc2UpOwogCi0gICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2Ut
Pm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQo
KSkKKyAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnJlc3VtZUFjdGl2ZURPTU9iamVjdHMoKTsKKyAgICAg
ICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVzdW1lRXhlY3V0ZVNjcmlwdFNvb25UaW1l
cigpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>