<?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>96790</bug_id>
          
          <creation_ts>2012-09-14 08:25:23 -0700</creation_ts>
          <short_desc>[V8] Prevent workers from calling back into other worlds</short_desc>
          <delta_ts>2012-09-14 14:09:27 -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 JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>0</everconfirmed>
          <reporter name="Dan Carney">dcarney</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720784</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-09-14 08:25:23 -0700</bug_when>
    <thetext>Prevent workers from calling back into other worlds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720793</commentid>
    <comment_count>1</comment_count>
      <attachid>164161</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-09-14 08:35:53 -0700</bug_when>
    <thetext>Created attachment 164161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720796</commentid>
    <comment_count>2</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-09-14 08:36:35 -0700</bug_when>
    <thetext>trying to track down cause of this flake:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;showLargeExpectations=true&amp;tests=close-code-and-reason.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721071</commentid>
    <comment_count>3</comment_count>
      <attachid>164161</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 13:09:48 -0700</bug_when>
    <thetext>Comment on attachment 164161
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=164161&amp;action=review

&gt; Source/WebCore/bindings/v8/WorldContextHandle.cpp:51
&gt; +    if (v8::Context::InContext()) {
&gt; +        v8::Handle&lt;v8::Context&gt; context = v8::Context::GetCurrent();
&gt; +        if (!context.IsEmpty()) {

This is somewhat redundant.  You can skip the v8::Context::InContext() call and just test whether v8::Context::GetCurrent() returns an empty handle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721082</commentid>
    <comment_count>4</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-09-14 13:26:51 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 164161 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164161&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/WorldContextHandle.cpp:51
&gt; &gt; +    if (v8::Context::InContext()) {
&gt; &gt; +        v8::Handle&lt;v8::Context&gt; context = v8::Context::GetCurrent();
&gt; &gt; +        if (!context.IsEmpty()) {
&gt; 
&gt; This is somewhat redundant.  You can skip the v8::Context::InContext() call and just test whether v8::Context::GetCurrent() returns an empty handle.

That&apos;s what I had at first, but v8 crashes on GetCurrent when not in context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721095</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 13:40:08 -0700</bug_when>
    <thetext>&gt; That&apos;s what I had at first, but v8 crashes on GetCurrent when not in context.

Really!  I didn&apos;t know that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721115</commentid>
    <comment_count>6</comment_count>
      <attachid>164161</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 14:09:24 -0700</bug_when>
    <thetext>Comment on attachment 164161
Patch

Clearing flags on attachment: 164161

Committed r128651: &lt;http://trac.webkit.org/changeset/128651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721116</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 14:09:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164161</attachid>
            <date>2012-09-14 08:35:53 -0700</date>
            <delta_ts>2012-09-14 14:09:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96790-20120914173524.patch</filename>
            <type>text/plain</type>
            <size>5264</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIyMzhkZTlmMmYzYmQ4
MTExNDA4OTE4Nzk1MDNmNTg3ODgzNjhkZC4uNmMxNWRjNGQwNTE1ZWVmYzk1N2M3YjRjNTU3Mjc1
YTQxYWMxZWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTE0ICBEYW4g
Q2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIFByZXZlbnQgd29ya2VycyBm
cm9tIGNhbGxpbmcgYmFjayBpbnRvIG90aGVyIHdvcmxkcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3OTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGZldyBzYW5pdHkgY2hlY2tzIHRvIGVu
c3VyZSBjYWxsYmFja3MgYXJlIGFsd2F5cyB1c2luZyB0aGUgY29ycmVjdCB3b3JsZC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIE5vIG5ldyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
OERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4
TGF6eUV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMYXp5RXZlbnRMaXN0
ZW5lcjo6cHJlcGFyZUxpc3RlbmVyT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3Js
ZENvbnRleHRIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ybGRDb250ZXh0SGFuZGxl
OjpXb3JsZENvbnRleHRIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ybGRDb250ZXh0SGFu
ZGxlOjphZGp1c3RlZENvbnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmxkQ29udGV4
dEhhbmRsZS5oOgorCiAyMDEyLTA5LTE0ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBv
emRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEF0dGVtcHQgdG8gY3JlYXRlIGEg
dGhlbWUgZm9yIDAgc2l6ZWQgZWxlbWVudCBsZWFkcyB0byBhc3NlcnRpb24gaGl0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAppbmRleCBiMjg4YTZmODEyZjlh
ZjI2ZDM3NWIwMDI2OWZiMDVmNWM5N2VkZDY4Li5mZWJhZTc1YTFhZjNmNTY2ZmEzNjM0OTUxMzA1
ZWRmMzJhYTBjZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBl
ci5jcHAKQEAgLTIwMSw4ICsyMDEsNyBAQCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IFY4RE9N
V3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcih2ODo6TG9jYWw8djg6OlZhbHVlPiB2YQogICAgICAg
ICByZXR1cm4gMDsKICAgICBpZiAobG9va3VwID09IExpc3RlbmVyRmluZE9ubHkpCiAgICAgICAg
IHJldHVybiBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kV3JhcHBlcih2YWx1ZSwgaXNBdHRyaWJ1
dGUpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZ2xvYmFsUHJvdG90eXBlID0gdjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChjb250ZXh0LT5HbG9iYWwoKS0+R2V0UHJvdG90eXBlKCkp
OwotICAgIGlmIChpc1dyYXBwZXJPZlR5cGUoZ2xvYmFsUHJvdG90eXBlLCAmVjhET01XaW5kb3c6
OmluZm8pKQorICAgIGlmIChpc1dyYXBwZXJPZlR5cGUodG9Jbm5lckdsb2JhbE9iamVjdChjb250
ZXh0KSwgJlY4RE9NV2luZG93OjppbmZvKSkKICAgICAgICAgcmV0dXJuIFY4RXZlbnRMaXN0ZW5l
ckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhFdmVudExpc3RlbmVyPih2YWx1ZSwgaXNBdHRy
aWJ1dGUpOwogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIHJldHVybiBWOEV2ZW50TGlzdGVuZXJM
aXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXI+KHZh
bHVlLCBpc0F0dHJpYnV0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOExhenlFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
TGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGNkYjAwMTc5ZjkzYWRhNWJmOTQ2MTEwMTljMTc3
OWFiOGM1OTRkYmIuLmE0MGJmMWE2MzA5YTIyOGNmNjA3MjBkMGYwNTE3ZDU4ZjM3ZDA4MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIu
Y3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBWOExhenlFdmVudExpc3RlbmVyOjpwcmVwYXJl
TGlzdGVuZXJPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICBpZiAo
IWZyYW1lLT5zY3JpcHQoKS0+Y2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3Jp
cHQpKQogICAgICAgICByZXR1cm47CiAgICAgLy8gVXNlIHRoZSBvdXRlciBzY29wZSB0byBob2xk
IGNvbnRleHQuCi0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSB3b3JsZENv
bnRleHQoKS5hZGp1c3RlZENvbnRleHQoZnJhbWUtPnNjcmlwdCgpKTsKKyAgICB2ODo6TG9jYWw8
djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHRvVjhDb250ZXh0KGNvbnRleHQsIHdvcmxkQ29udGV4
dCgpKTsKICAgICAvLyBCYWlsIG91dCBpZiB3ZSBjYW5ub3QgZ2V0IHRoZSBjb250ZXh0LgogICAg
IGlmICh2OENvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JsZENvbnRleHRIYW5kbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ybGRDb250ZXh0SGFuZGxlLmNwcAppbmRleCAxODAyODBh
YmMxYzEzMzkzN2ViMTU0NTI4MzIwN2Q3ZTcwYjVjMWQ0Li4zNGI5YzE5YmY1OTgwODUxZjJmMjZi
MmZiYTNjYjRlNzM4MjY1OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JsZENvbnRleHRIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1dvcmxkQ29udGV4dEhhbmRsZS5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJXb3Js
ZENvbnRleHRIYW5kbGUuaCIKIAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlY4
RE9NV2luZG93U2hlbGwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOSArNDEsMjIg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV29ybGRDb250ZXh0SGFuZGxlOjpXb3JsZENvbnRleHRI
YW5kbGUoV29ybGRUb1VzZSB3b3JsZFRvVXNlKQogICAgIDogbV93b3JsZFRvVXNlKHdvcmxkVG9V
c2UpCiB7Ci0gICAgaWYgKHdvcmxkVG9Vc2UgPT0gVXNlTWFpbldvcmxkKQorICAgIGlmICh3b3Js
ZFRvVXNlID09IFVzZU1haW5Xb3JsZCB8fCB3b3JsZFRvVXNlID09IFVzZVdvcmtlcldvcmxkKQog
ICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoV09SS0VSUykKKyAgICAvLyBGSVhNRSBXZSBh
cmUgZHVwbGljYXRpbmcgYSBsb3Qgb2YgZWZmb3J0IGhlcmUgY2hlY2tpbmcgdGhlIGNvbnRleHQg
Zm9yIHRoZSB3b3JrZXIgYW5kIGZvciB0aGUgaXNvbGF0ZWQgd29ybGQuCisgICAgaWYgKHY4OjpD
b250ZXh0OjpJbkNvbnRleHQoKSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBj
b250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKKyAgICAgICAgaWYgKCFjb250ZXh0
LklzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFWOERPTVdyYXBwZXI6Omlz
V3JhcHBlck9mVHlwZSh0b0lubmVyR2xvYmFsT2JqZWN0KGNvbnRleHQpLCAmVjhET01XaW5kb3c6
OmluZm8pKSkgeworICAgICAgICAgICAgICAgIG1fd29ybGRUb1VzZSA9IFVzZVdvcmtlcldvcmxk
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKyNlbmRpZgorCiAgICAgVjhET01XaW5kb3dTaGVsbCogc2hlbGwgPSBWOERPTVdpbmRvd1No
ZWxsOjpnZXRFbnRlcmVkKCk7CiAgICAgaWYgKExJS0VMWSghc2hlbGwpKSB7CiAgICAgICAgIG1f
d29ybGRUb1VzZSA9IFVzZU1haW5Xb3JsZDsKQEAgLTU0LDYgKzY5LDcgQEAgV29ybGRDb250ZXh0
SGFuZGxlOjpXb3JsZENvbnRleHRIYW5kbGUoV29ybGRUb1VzZSB3b3JsZFRvVXNlKQogCiB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+IFdvcmxkQ29udGV4dEhhbmRsZTo6YWRqdXN0ZWRDb250ZXh0KFNj
cmlwdENvbnRyb2xsZXIqIHNjcmlwdCkgY29uc3QKIHsKKyAgICBBU1NFUlQobV93b3JsZFRvVXNl
ICE9IFVzZVdvcmtlcldvcmxkKTsKICAgICBpZiAobV93b3JsZFRvVXNlID09IFVzZU1haW5Xb3Js
ZCkKICAgICAgICAgcmV0dXJuIHNjcmlwdC0+bWFpbldvcmxkQ29udGV4dCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JsZENvbnRleHRIYW5kbGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmxkQ29udGV4dEhhbmRsZS5oCmluZGV4IDU1NzQ3
NDJhZWMxNDQwOWIxMDIyMDJjMGU4NWRiYzAxYWMwMGMyNDkuLjc1NjVkMTVjZDMyMzI1YWFlYWYx
MzE4NDdmNTAxNzc3YzM1NjU5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmxkQ29udGV4dEhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1dvcmxkQ29udGV4dEhhbmRsZS5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgU2NyaXB0Q29udHJvbGxlcjsKIAotZW51bSBXb3JsZFRvVXNlIHsgVXNlTWFp
bldvcmxkLCBVc2VDdXJyZW50V29ybGQgfTsKK2VudW0gV29ybGRUb1VzZSB7IFVzZU1haW5Xb3Js
ZCwgVXNlQ3VycmVudFdvcmxkLCBVc2VXb3JrZXJXb3JsZCB9OwogCiBjbGFzcyBXb3JsZENvbnRl
eHRIYW5kbGUgewogcHVibGljOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>