<?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>42978</bug_id>
          
          <creation_ts>2010-07-26 10:41:18 -0700</creation_ts>
          <short_desc>Add a watchdog timer to WebGL to prevent bad shaders from running forever</short_desc>
          <delta_ts>2013-08-12 13:50:57 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>64497</dependson>
          <blocked>71392</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>dino</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
    
    <cc>stearns</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256096</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-07-26 10:41:18 -0700</bug_when>
    <thetext>If you create a trivially simply shader which infinite loops, it will hang Mac essentially forever. I need to experiment with the possibility of adding a watchdog timer to check for this condition and destroy the GL context when detected. This will hopefully get out of the hanging condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273607</commentid>
    <comment_count>1</comment_count>
      <attachid>66419</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-02 15:19:43 -0700</bug_when>
    <thetext>Created attachment 66419
WARNING! Run this in a browser that supports WebGL and your system may hang!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277295</commentid>
    <comment_count>2</comment_count>
      <attachid>67203</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-10 10:56:07 -0700</bug_when>
    <thetext>Created attachment 67203
Case which renders triangle over and over. Shader takes a long time, but is not infinite loop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277322</commentid>
    <comment_count>3</comment_count>
      <attachid>67207</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-10 11:24:56 -0700</bug_when>
    <thetext>Created attachment 67207
Even longer shader. This one flickers the background so you can see each render</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277498</commentid>
    <comment_count>4</comment_count>
      <attachid>67255</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-10 16:01:58 -0700</bug_when>
    <thetext>Created attachment 67255
Infinite loop in vertex shader, repeated every 100ms. Locks up WebKit!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277565</commentid>
    <comment_count>5</comment_count>
      <attachid>67273</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-09-10 17:41:51 -0700</bug_when>
    <thetext>Created attachment 67273
Infinite loop in fragment shader, repeated every 100ms, locks up WebKit!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524227</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-19 15:28:30 -0800</bug_when>
    <thetext>I noticed that this bug was just added as a blocker for the CSS Shader umbrella bug. Note that some progress has already been made on this issue on some platforms and ports, though more work is certainly needed. See https://bugs.webkit.org/show_bug.cgi?id=64497 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524251</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-12-19 16:06:11 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I noticed that this bug was just added as a blocker for the CSS Shader umbrella bug. Note that some progress has already been made on this issue on some platforms and ports, though more work is certainly needed. See https://bugs.webkit.org/show_bug.cgi?id=64497 .

I think this bug is irrelevant given our recent work with robustness and protection against runaway shaders. Our driver team doesn&apos;t think it would ever be possible to do this sort of thing in user level code. 

I suggest we close it as NTBF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524266</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-19 16:18:34 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; 
&gt; I think this bug is irrelevant given our recent work with robustness and protection against runaway shaders. Our driver team doesn&apos;t think it would ever be possible to do this sort of thing in user level code. 
&gt; 
&gt; I suggest we close it as NTBF

Sounds fine to me. Consider adding one or more of your test cases above to the denial of service samples in the public WebGL repository under sdk/tests/extra/. The infinite loop ones probably are not relevant as I believe ANGLE shouldn&apos;t allow those to compile any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916389</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-08-12 13:50:57 -0700</bug_when>
    <thetext>Covered by robustness stuff.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>66419</attachid>
            <date>2010-09-02 15:19:43 -0700</date>
            <delta_ts>2010-09-02 15:21:43 -0700</delta_ts>
            <desc>WARNING! Run this in a browser that supports WebGL and your system may hang!</desc>
            <filename>shader-freeze.html</filename>
            <type>text/html</type>
            <size>3242</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">PGhlYWQ+CjxzY3JpcHQgaWQ9InZlcnRleFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgogIGF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKCiAgdm9pZCBtYWluKCkgewogICAgIC8vIENv
bW1lbnQgb3V0IHRoZSBsaW5lIGJlbG93IGFuZCB0aGUgc2hhZGVyIHdvcmtzIG5vcm1hbGx5Cgkg
d2hpbGUodHJ1ZSkge307CiAgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CiAgfQo8L3Njcmlw
dD4KCjxzY3JpcHQgaWQ9ImZyYWdtZW50U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50
Ij4KICB2b2lkIG1haW4oKSB7CiAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAxLjAsIDAu
MCwgMS4wKTsgLy8gZ3JlZW4gY29sb3IKICB9Cjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgp2YXIgZ2wgPSBudWxsOyAvLyBIb2xkIFdlYkdMIGNvbnRleHQgb2JqZWN0
CgpmdW5jdGlvbiBkcmF3KCkgeyAvLyBEcmF3IHRoZSBwaWN0dXJlCiAgICB2YXIgdmVydGljZXMg
PSBbIDAuMCwgMC41LCAwLjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMC41LCAtMC41
LCAwLjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIDAuMCBdOyAKICAg
IGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KHZlcnRpY2Vz
KSwgZ2wuU1RBVElDX0RSQVcpOwoKICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wu
RkxPQVQsIGZhbHNlLCAwLCAwKTsgLy8gTG9hZCB0aGUgdmVydGV4IGRhdGEKICAgIGdsLmVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KDApOyAKICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAw
LCAzKTsgCiAgICBnbC5mbHVzaCgpOwp9CgpmdW5jdGlvbiBlcnJvcihlcnJvck1lc3NhZ2UpIHsK
ICAgIGFsZXJ0KGVycm9yTWVzc2FnZSk7IAp9CgpmdW5jdGlvbiBnZXRGcmFnbWVudFNoYWRlcigp
IHsKICAgIHZhciBzaGFkZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYWdtZW50
U2hhZGVyIik7IC8vIGZyYWdtZW50U2hhZGVyIGhhcyBiZWVuIGRlZmluZWQgYXQgdGhlIHRvcAog
ICAgdmFyIHNoYWRlclNvdXJjZSA9IGdldFNoYWRlclNvdXJjZShzaGFkZXJOb2RlKTsKCiAgICB2
YXIgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CiAgICBnbC5z
aGFkZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTb3VyY2UpOwogICAgZ2wuY29tcGlsZVNoYWRlcihz
aGFkZXIpOwoKICAgIHJldHVybiBzaGFkZXI7Cn0KCmZ1bmN0aW9uIGdldEdsKCkgeyAKICAgIHZh
ciB0aGVDYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2ViR2xDYW52YXMiKTsKCiAg
ICBnbCA9IHRoZUNhbnZhcy5nZXRDb250ZXh0KCJtb3otd2ViZ2wiKTsgLy8gRmlyZWZveAogICAg
aWYgKCFnbCkKICAgICAgICBnbCA9IHRoZUNhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwt
d2ViZ2wiKTsgLy8gU2FmYXJpIG9yIENocm9tZQoKICAgIGlmICghZ2wpCiAgICAgICAgZXJyb3Io
IkZhaWxlZCB0byBnZXQgV2ViR0wgY29udGV4dC4iKTsKfQoKZnVuY3Rpb24gZ2V0U2hhZGVyU291
cmNlKHNoYWRlck5vZGUpIHsKICAgIHZhciBzaGFkZXJTb3VyY2UgPSAiIjsKICAgIHZhciBub2Rl
ID0gc2hhZGVyTm9kZS5maXJzdENoaWxkOwogICAgd2hpbGUgKG5vZGUpIHsKICAgICAgICBpZiAo
bm9kZS5ub2RlVHlwZSA9PSAzKSAvLyBOb2RlLlRFWFRfTk9ERQogICAgICAgICAgICBzaGFkZXJT
b3VyY2UgKz0gbm9kZS50ZXh0Q29udGVudDsKICAgICAgICBub2RlID0gbm9kZS5uZXh0U2libGlu
ZzsKICAgIH0KCiAgICByZXR1cm4gc2hhZGVyU291cmNlOwp9CgpmdW5jdGlvbiBnZXRWZXJ0ZXhT
aGFkZXIoKSB7CiAgICB2YXIgc2hhZGVyTm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2
ZXJ0ZXhTaGFkZXIiKTsgLy8gdmVydGV4U2hhZGVyIGhhcyBiZWVuIGRlZmluZWQgYXQgdGhlIHRv
cAogICAgdmFyIHNoYWRlclNvdXJjZSA9IGdldFNoYWRlclNvdXJjZShzaGFkZXJOb2RlKTsKCiAg
ICB2YXIgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOwogICAgZ2wu
c2hhZGVyU291cmNlKHNoYWRlciwgc2hhZGVyU291cmNlKTsKICAgIGdsLmNvbXBpbGVTaGFkZXIo
c2hhZGVyKTsKCiAgICByZXR1cm4gc2hhZGVyOwp9CgpmdW5jdGlvbiBpbml0aWFsaXplKCkgewog
ICAgZ2V0R2woKTsKCiAgICB2YXIgdmVydGV4U2hhZGVyID0gZ2V0VmVydGV4U2hhZGVyKCk7CiAg
ICB2YXIgZnJhZ21lbnRTaGFkZXIgPSBnZXRGcmFnbWVudFNoYWRlcigpOwoKICAgIHZhciBzaGFk
ZXJQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwogICAgZ2wuYXR0YWNoU2hhZGVyKHNoYWRl
clByb2dyYW0sIHZlcnRleFNoYWRlcik7CiAgICBnbC5hdHRhY2hTaGFkZXIoc2hhZGVyUHJvZ3Jh
bSwgZnJhZ21lbnRTaGFkZXIpOwogICAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHNoYWRlclByb2dy
YW0sIDAsICJ2UG9zaXRpb24iKTsgLy8gdlBvc2l0aW9uIGhhcyBiZWVuIGRlZmluZWQgYXQgdGhl
IHRvcAogICAgZ2wubGlua1Byb2dyYW0oc2hhZGVyUHJvZ3JhbSk7CgogICAgZ2wudXNlUHJvZ3Jh
bShzaGFkZXJQcm9ncmFtKTsKCiAgICAgdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwog
ICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcik7IC8vIEJpbmQgYSBidWZm
ZXIgb2JqZWN0LiBBY2NlcHRlZCB2YWx1ZXMgZm9yIHRhcmdldCBhcmU6IEFSUkFZX0JVRkZFUiBv
ciBFTEVNRU5UX0FSUkFZX0JVRkZFUiAKCn0KCi8vIE1haW4gcHJvZ3JhbSBzdGFydHMgaGVyZS4g
VGhlIGFib3ZlIGZ1bmN0aW9ucyBhcmUgYWxwaGFiZXRpY2FsIG9yZGVyCmZ1bmN0aW9uIG1haW4o
KSB7IAogICAgaW5pdGlhbGl6ZSgpOwogICAgZHJhdygpOwp9IC8vIG1haW4KCndpbmRvdy5vbmxv
YWQgPSBtYWluOyAvLyBDYWxsIHRoZSBtYWluKCkgZnVuY3Rpb24gd2hlbiB0aGUgd2luZG93IGhh
cyBiZWVuIGxvYWRlZAoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo8L3Nj
cmlwdD4KPC9oZWFkPgoKPGNhbnZhcyBpZD0id2ViR2xDYW52YXMiIHN0eWxlPSJib3JkZXI6IDFw
eCBzb2xpZCBncmVlbiIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiPjwvY2FudmFzPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>67203</attachid>
            <date>2010-09-10 10:56:07 -0700</date>
            <delta_ts>2010-09-10 10:56:07 -0700</delta_ts>
            <desc>Case which renders triangle over and over. Shader takes a long time, but is not infinite loop</desc>
            <filename>shader-long-loop.html</filename>
            <type>text/html</type>
            <size>3327</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">PGhlYWQ+CjxzY3JpcHQgaWQ9InZlcnRleFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgogIGF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKCiAgdm9pZCBtYWluKCkgewogICAgIC8vIENv
bW1lbnQgb3V0IHRoZSBsaW5lIGJlbG93IGFuZCB0aGUgc2hhZGVyIHdvcmtzIG5vcm1hbGx5Cgkg
Ly8gd2hpbGUodHJ1ZSkge307CiAgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CiAgfQo8L3Nj
cmlwdD4KCjxzY3JpcHQgaWQ9ImZyYWdtZW50U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdt
ZW50Ij4KICB2b2lkIG1haW4oKSB7CiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzAwMDA7ICsr
aSkgewogICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAxLjAsIDAuMCwgMS4wKTsgLy8g
Z3JlZW4gY29sb3IKICAgICAgfQogIH0KPC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CnZhciBnbCA9IG51bGw7IC8vIEhvbGQgV2ViR0wgY29udGV4dCBvYmplY3QKCmZ1
bmN0aW9uIGRyYXcoKSB7IC8vIERyYXcgdGhlIHBpY3R1cmUKICAgIHZhciB2ZXJ0aWNlcyA9IFsg
MC4wLCAwLjUsIDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsIDAu
MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgMC4wIF07IAogICAgZ2wu
YnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkodmVydGljZXMpLCBn
bC5TVEFUSUNfRFJBVyk7CgogICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9B
VCwgZmFsc2UsIDAsIDApOyAvLyBMb2FkIHRoZSB2ZXJ0ZXggZGF0YQogICAgZ2wuZW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkoMCk7IAogICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDMp
OyAKICAgIGdsLmZsdXNoKCk7Cn0KCmZ1bmN0aW9uIGVycm9yKGVycm9yTWVzc2FnZSkgewogICAg
YWxlcnQoZXJyb3JNZXNzYWdlKTsgCn0KCmZ1bmN0aW9uIGdldEZyYWdtZW50U2hhZGVyKCkgewog
ICAgdmFyIHNoYWRlck5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhZ21lbnRTaGFk
ZXIiKTsgLy8gZnJhZ21lbnRTaGFkZXIgaGFzIGJlZW4gZGVmaW5lZCBhdCB0aGUgdG9wCiAgICB2
YXIgc2hhZGVyU291cmNlID0gZ2V0U2hhZGVyU291cmNlKHNoYWRlck5vZGUpOwoKICAgIHZhciBz
aGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKTsKICAgIGdsLnNoYWRl
clNvdXJjZShzaGFkZXIsIHNoYWRlclNvdXJjZSk7CiAgICBnbC5jb21waWxlU2hhZGVyKHNoYWRl
cik7CgogICAgcmV0dXJuIHNoYWRlcjsKfQoKZnVuY3Rpb24gZ2V0R2woKSB7IAogICAgdmFyIHRo
ZUNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWJHbENhbnZhcyIpOwoKICAgIGds
ID0gdGhlQ2FudmFzLmdldENvbnRleHQoIm1vei13ZWJnbCIpOyAvLyBGaXJlZm94CiAgICBpZiAo
IWdsKQogICAgICAgIGdsID0gdGhlQ2FudmFzLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJn
bCIpOyAvLyBTYWZhcmkgb3IgQ2hyb21lCgogICAgaWYgKCFnbCkKICAgICAgICBlcnJvcigiRmFp
bGVkIHRvIGdldCBXZWJHTCBjb250ZXh0LiIpOwp9CgpmdW5jdGlvbiBnZXRTaGFkZXJTb3VyY2Uo
c2hhZGVyTm9kZSkgewogICAgdmFyIHNoYWRlclNvdXJjZSA9ICIiOwogICAgdmFyIG5vZGUgPSBz
aGFkZXJOb2RlLmZpcnN0Q2hpbGQ7CiAgICB3aGlsZSAobm9kZSkgewogICAgICAgIGlmIChub2Rl
Lm5vZGVUeXBlID09IDMpIC8vIE5vZGUuVEVYVF9OT0RFCiAgICAgICAgICAgIHNoYWRlclNvdXJj
ZSArPSBub2RlLnRleHRDb250ZW50OwogICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwog
ICAgfQoKICAgIHJldHVybiBzaGFkZXJTb3VyY2U7Cn0KCmZ1bmN0aW9uIGdldFZlcnRleFNoYWRl
cigpIHsKICAgIHZhciBzaGFkZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlcnRl
eFNoYWRlciIpOyAvLyB2ZXJ0ZXhTaGFkZXIgaGFzIGJlZW4gZGVmaW5lZCBhdCB0aGUgdG9wCiAg
ICB2YXIgc2hhZGVyU291cmNlID0gZ2V0U2hhZGVyU291cmNlKHNoYWRlck5vZGUpOwoKICAgIHZh
ciBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CiAgICBnbC5zaGFk
ZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTb3VyY2UpOwogICAgZ2wuY29tcGlsZVNoYWRlcihzaGFk
ZXIpOwoKICAgIHJldHVybiBzaGFkZXI7Cn0KCmZ1bmN0aW9uIGluaXRpYWxpemUoKSB7CiAgICBn
ZXRHbCgpOwoKICAgIHZhciB2ZXJ0ZXhTaGFkZXIgPSBnZXRWZXJ0ZXhTaGFkZXIoKTsKICAgIHZh
ciBmcmFnbWVudFNoYWRlciA9IGdldEZyYWdtZW50U2hhZGVyKCk7CgogICAgdmFyIHNoYWRlclBy
b2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CiAgICBnbC5hdHRhY2hTaGFkZXIoc2hhZGVyUHJv
Z3JhbSwgdmVydGV4U2hhZGVyKTsKICAgIGdsLmF0dGFjaFNoYWRlcihzaGFkZXJQcm9ncmFtLCBm
cmFnbWVudFNoYWRlcik7CiAgICBnbC5iaW5kQXR0cmliTG9jYXRpb24oc2hhZGVyUHJvZ3JhbSwg
MCwgInZQb3NpdGlvbiIpOyAvLyB2UG9zaXRpb24gaGFzIGJlZW4gZGVmaW5lZCBhdCB0aGUgdG9w
CiAgICBnbC5saW5rUHJvZ3JhbShzaGFkZXJQcm9ncmFtKTsKCiAgICBnbC51c2VQcm9ncmFtKHNo
YWRlclByb2dyYW0pOwoKICAgIHZhciBidWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKICAgIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWZmZXIpOyAvLyBCaW5kIGEgYnVmZmVyIG9i
amVjdC4gQWNjZXB0ZWQgdmFsdWVzIGZvciB0YXJnZXQgYXJlOiBBUlJBWV9CVUZGRVIgb3IgRUxF
TUVOVF9BUlJBWV9CVUZGRVIgCgp9CgovLyBNYWluIHByb2dyYW0gc3RhcnRzIGhlcmUuIFRoZSBh
Ym92ZSBmdW5jdGlvbnMgYXJlIGFscGhhYmV0aWNhbCBvcmRlcgpmdW5jdGlvbiBtYWluKCkgeyAK
ICAgIGluaXRpYWxpemUoKTsKICAgIHNldEludGVydmFsKGZ1bmN0aW9uKCkgeyBkcmF3KCkgfSwg
MTAwKTsKfSAvLyBtYWluCgp3aW5kb3cub25sb2FkID0gbWFpbjsgLy8gQ2FsbCB0aGUgbWFpbigp
IGZ1bmN0aW9uIHdoZW4gdGhlIHdpbmRvdyBoYXMgYmVlbiBsb2FkZWQKCi8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KPC9zY3JpcHQ+CjwvaGVhZD4KCjxjYW52YXMgaWQ9Indl
YkdsQ2FudmFzIiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgZ3JlZW4iIHdpZHRoPSIzMDAiIGhl
aWdodD0iMzAwIj48L2NhbnZhcz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>67207</attachid>
            <date>2010-09-10 11:24:56 -0700</date>
            <delta_ts>2010-09-10 11:24:56 -0700</delta_ts>
            <desc>Even longer shader. This one flickers the background so you can see each render</desc>
            <filename>shader-loop-longer-flicker.html</filename>
            <type>text/html</type>
            <size>3472</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">PGhlYWQ+CjxzY3JpcHQgaWQ9InZlcnRleFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgogIGF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKCiAgdm9pZCBtYWluKCkgewogICAgIC8vIENv
bW1lbnQgb3V0IHRoZSBsaW5lIGJlbG93IGFuZCB0aGUgc2hhZGVyIHdvcmtzIG5vcm1hbGx5Cgkg
Ly8gd2hpbGUodHJ1ZSkge307CiAgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CiAgfQo8L3Nj
cmlwdD4KCjxzY3JpcHQgaWQ9ImZyYWdtZW50U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdt
ZW50Ij4KICB2b2lkIG1haW4oKSB7CiAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzAwMDA7ICsr
aSkKICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgNTAwOyArK2opCiAgICAgICAgICAgIGds
X0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAxLjAsIDAuMCwgMS4wKTsgLy8gZ3JlZW4gY29sb3IKICB9
Cjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgZ2wgPSBudWxs
OyAvLyBIb2xkIFdlYkdMIGNvbnRleHQgb2JqZWN0Cgpjb2xvciA9IDA7CgpmdW5jdGlvbiBkcmF3
KCkgeyAvLyBEcmF3IHRoZSBwaWN0dXJlCiAgICBjb2xvciA9IGNvbG9yID8gMCA6IDAuNTsKICAg
IGdsLmNsZWFyQ29sb3IoY29sb3IsIDAsIDAsIDEpOwogICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCk7CiAgICB2YXIgdmVydGljZXMgPSBbIDAuMCwgMC41LCAwLjAsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAwLjAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjUsIC0wLjUsIDAuMCBdOyAKICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCBuZXcgRmxvYXQzMkFycmF5KHZlcnRpY2VzKSwgZ2wuU1RBVElDX0RSQVcpOwoKICAgIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsgLy8gTG9hZCB0
aGUgdmVydGV4IGRhdGEKICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOyAKICAgIGds
LmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTsgCiAgICBnbC5mbHVzaCgpOwp9CgpmdW5j
dGlvbiBlcnJvcihlcnJvck1lc3NhZ2UpIHsKICAgIGFsZXJ0KGVycm9yTWVzc2FnZSk7IAp9Cgpm
dW5jdGlvbiBnZXRGcmFnbWVudFNoYWRlcigpIHsKICAgIHZhciBzaGFkZXJOb2RlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZyYWdtZW50U2hhZGVyIik7IC8vIGZyYWdtZW50U2hhZGVyIGhh
cyBiZWVuIGRlZmluZWQgYXQgdGhlIHRvcAogICAgdmFyIHNoYWRlclNvdXJjZSA9IGdldFNoYWRl
clNvdXJjZShzaGFkZXJOb2RlKTsKCiAgICB2YXIgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGds
LkZSQUdNRU5UX1NIQURFUik7CiAgICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTb3Vy
Y2UpOwogICAgZ2wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwoKICAgIHJldHVybiBzaGFkZXI7Cn0K
CmZ1bmN0aW9uIGdldEdsKCkgeyAKICAgIHZhciB0aGVDYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgid2ViR2xDYW52YXMiKTsKCiAgICBnbCA9IHRoZUNhbnZhcy5nZXRDb250ZXh0KCJt
b3otd2ViZ2wiKTsgLy8gRmlyZWZveAogICAgaWYgKCFnbCkKICAgICAgICBnbCA9IHRoZUNhbnZh
cy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiKTsgLy8gU2FmYXJpIG9yIENocm9tZQoK
ICAgIGlmICghZ2wpCiAgICAgICAgZXJyb3IoIkZhaWxlZCB0byBnZXQgV2ViR0wgY29udGV4dC4i
KTsKfQoKZnVuY3Rpb24gZ2V0U2hhZGVyU291cmNlKHNoYWRlck5vZGUpIHsKICAgIHZhciBzaGFk
ZXJTb3VyY2UgPSAiIjsKICAgIHZhciBub2RlID0gc2hhZGVyTm9kZS5maXJzdENoaWxkOwogICAg
d2hpbGUgKG5vZGUpIHsKICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAzKSAvLyBOb2RlLlRF
WFRfTk9ERQogICAgICAgICAgICBzaGFkZXJTb3VyY2UgKz0gbm9kZS50ZXh0Q29udGVudDsKICAg
ICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZzsKICAgIH0KCiAgICByZXR1cm4gc2hhZGVyU291
cmNlOwp9CgpmdW5jdGlvbiBnZXRWZXJ0ZXhTaGFkZXIoKSB7CiAgICB2YXIgc2hhZGVyTm9kZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJ0ZXhTaGFkZXIiKTsgLy8gdmVydGV4U2hhZGVy
IGhhcyBiZWVuIGRlZmluZWQgYXQgdGhlIHRvcAogICAgdmFyIHNoYWRlclNvdXJjZSA9IGdldFNo
YWRlclNvdXJjZShzaGFkZXJOb2RlKTsKCiAgICB2YXIgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVy
KGdsLlZFUlRFWF9TSEFERVIpOwogICAgZ2wuc2hhZGVyU291cmNlKHNoYWRlciwgc2hhZGVyU291
cmNlKTsKICAgIGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKCiAgICByZXR1cm4gc2hhZGVyOwp9
CgpmdW5jdGlvbiBpbml0aWFsaXplKCkgewogICAgZ2V0R2woKTsKCiAgICB2YXIgdmVydGV4U2hh
ZGVyID0gZ2V0VmVydGV4U2hhZGVyKCk7CiAgICB2YXIgZnJhZ21lbnRTaGFkZXIgPSBnZXRGcmFn
bWVudFNoYWRlcigpOwoKICAgIHZhciBzaGFkZXJQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgp
OwogICAgZ2wuYXR0YWNoU2hhZGVyKHNoYWRlclByb2dyYW0sIHZlcnRleFNoYWRlcik7CiAgICBn
bC5hdHRhY2hTaGFkZXIoc2hhZGVyUHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpOwogICAgZ2wuYmlu
ZEF0dHJpYkxvY2F0aW9uKHNoYWRlclByb2dyYW0sIDAsICJ2UG9zaXRpb24iKTsgLy8gdlBvc2l0
aW9uIGhhcyBiZWVuIGRlZmluZWQgYXQgdGhlIHRvcAogICAgZ2wubGlua1Byb2dyYW0oc2hhZGVy
UHJvZ3JhbSk7CgogICAgZ2wudXNlUHJvZ3JhbShzaGFkZXJQcm9ncmFtKTsKCiAgICB2YXIgYnVm
ZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CiAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZF
UiwgYnVmZmVyKTsgLy8gQmluZCBhIGJ1ZmZlciBvYmplY3QuIEFjY2VwdGVkIHZhbHVlcyBmb3Ig
dGFyZ2V0IGFyZTogQVJSQVlfQlVGRkVSIG9yIEVMRU1FTlRfQVJSQVlfQlVGRkVSIAoKfQoKLy8g
TWFpbiBwcm9ncmFtIHN0YXJ0cyBoZXJlLiBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBhbHBoYWJl
dGljYWwgb3JkZXIKZnVuY3Rpb24gbWFpbigpIHsgCiAgICBpbml0aWFsaXplKCk7CiAgICBzZXRJ
bnRlcnZhbChmdW5jdGlvbigpIHsgZHJhdygpIH0sIDEwMCk7Cn0gLy8gbWFpbgoKd2luZG93Lm9u
bG9hZCA9IG1haW47IC8vIENhbGwgdGhlIG1haW4oKSBmdW5jdGlvbiB3aGVuIHRoZSB3aW5kb3cg
aGFzIGJlZW4gbG9hZGVkCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCjwv
c2NyaXB0Pgo8L2hlYWQ+Cgo8Y2FudmFzIGlkPSJ3ZWJHbENhbnZhcyIgc3R5bGU9ImJvcmRlcjog
MXB4IHNvbGlkIGdyZWVuIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCI+PC9jYW52YXM+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>67255</attachid>
            <date>2010-09-10 16:01:58 -0700</date>
            <delta_ts>2010-09-10 16:01:58 -0700</delta_ts>
            <desc>Infinite loop in vertex shader, repeated every 100ms. Locks up WebKit!</desc>
            <filename>shader-freeze-lockup.html</filename>
            <type>text/html</type>
            <size>3400</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">PGhlYWQ+CjxzY3JpcHQgaWQ9InZlcnRleFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgogIGF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKCiAgdm9pZCBtYWluKCkgewogICAgIC8vIENv
bW1lbnQgb3V0IHRoZSBsaW5lIGJlbG93IGFuZCB0aGUgc2hhZGVyIHdvcmtzIG5vcm1hbGx5Cgkg
d2hpbGUodHJ1ZSkge307CiAgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CiAgfQo8L3Njcmlw
dD4KCjxzY3JpcHQgaWQ9ImZyYWdtZW50U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50
Ij4KICB2b2lkIG1haW4oKSB7CiAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAxLjAsIDAu
MCwgMS4wKTsgLy8gZ3JlZW4gY29sb3IKICB9Cjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgp2YXIgZ2wgPSBudWxsOyAvLyBIb2xkIFdlYkdMIGNvbnRleHQgb2JqZWN0
Cgpjb2xvciA9IDA7CgpmdW5jdGlvbiBkcmF3KCkgeyAvLyBEcmF3IHRoZSBwaWN0dXJlCiAgICBj
b2xvciA9IGNvbG9yID8gMCA6IDAuNTsKICAgIGdsLmNsZWFyQ29sb3IoY29sb3IsIDAsIDAsIDEp
OwogICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgICB2YXIgdmVydGljZXMgPSBb
IDAuMCwgMC41LCAwLjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAw
LjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIDAuMCBdOyAKICAgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KHZlcnRpY2VzKSwg
Z2wuU1RBVElDX0RSQVcpOwoKICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxP
QVQsIGZhbHNlLCAwLCAwKTsgLy8gTG9hZCB0aGUgdmVydGV4IGRhdGEKICAgIGdsLmVuYWJsZVZl
cnRleEF0dHJpYkFycmF5KDApOyAKICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAz
KTsgCiAgICBnbC5mbHVzaCgpOwp9CgpmdW5jdGlvbiBlcnJvcihlcnJvck1lc3NhZ2UpIHsKICAg
IGFsZXJ0KGVycm9yTWVzc2FnZSk7IAp9CgpmdW5jdGlvbiBnZXRGcmFnbWVudFNoYWRlcigpIHsK
ICAgIHZhciBzaGFkZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYWdtZW50U2hh
ZGVyIik7IC8vIGZyYWdtZW50U2hhZGVyIGhhcyBiZWVuIGRlZmluZWQgYXQgdGhlIHRvcAogICAg
dmFyIHNoYWRlclNvdXJjZSA9IGdldFNoYWRlclNvdXJjZShzaGFkZXJOb2RlKTsKCiAgICB2YXIg
c2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CiAgICBnbC5zaGFk
ZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTb3VyY2UpOwogICAgZ2wuY29tcGlsZVNoYWRlcihzaGFk
ZXIpOwoKICAgIHJldHVybiBzaGFkZXI7Cn0KCmZ1bmN0aW9uIGdldEdsKCkgeyAKICAgIHZhciB0
aGVDYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2ViR2xDYW52YXMiKTsKCiAgICBn
bCA9IHRoZUNhbnZhcy5nZXRDb250ZXh0KCJtb3otd2ViZ2wiKTsgLy8gRmlyZWZveAogICAgaWYg
KCFnbCkKICAgICAgICBnbCA9IHRoZUNhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2Vi
Z2wiKTsgLy8gU2FmYXJpIG9yIENocm9tZQoKICAgIGlmICghZ2wpCiAgICAgICAgZXJyb3IoIkZh
aWxlZCB0byBnZXQgV2ViR0wgY29udGV4dC4iKTsKfQoKZnVuY3Rpb24gZ2V0U2hhZGVyU291cmNl
KHNoYWRlck5vZGUpIHsKICAgIHZhciBzaGFkZXJTb3VyY2UgPSAiIjsKICAgIHZhciBub2RlID0g
c2hhZGVyTm9kZS5maXJzdENoaWxkOwogICAgd2hpbGUgKG5vZGUpIHsKICAgICAgICBpZiAobm9k
ZS5ub2RlVHlwZSA9PSAzKSAvLyBOb2RlLlRFWFRfTk9ERQogICAgICAgICAgICBzaGFkZXJTb3Vy
Y2UgKz0gbm9kZS50ZXh0Q29udGVudDsKICAgICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZzsK
ICAgIH0KCiAgICByZXR1cm4gc2hhZGVyU291cmNlOwp9CgpmdW5jdGlvbiBnZXRWZXJ0ZXhTaGFk
ZXIoKSB7CiAgICB2YXIgc2hhZGVyTm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJ0
ZXhTaGFkZXIiKTsgLy8gdmVydGV4U2hhZGVyIGhhcyBiZWVuIGRlZmluZWQgYXQgdGhlIHRvcAog
ICAgdmFyIHNoYWRlclNvdXJjZSA9IGdldFNoYWRlclNvdXJjZShzaGFkZXJOb2RlKTsKCiAgICB2
YXIgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOwogICAgZ2wuc2hh
ZGVyU291cmNlKHNoYWRlciwgc2hhZGVyU291cmNlKTsKICAgIGdsLmNvbXBpbGVTaGFkZXIoc2hh
ZGVyKTsKCiAgICByZXR1cm4gc2hhZGVyOwp9CgpmdW5jdGlvbiBpbml0aWFsaXplKCkgewogICAg
Z2V0R2woKTsKCiAgICB2YXIgdmVydGV4U2hhZGVyID0gZ2V0VmVydGV4U2hhZGVyKCk7CiAgICB2
YXIgZnJhZ21lbnRTaGFkZXIgPSBnZXRGcmFnbWVudFNoYWRlcigpOwoKICAgIHZhciBzaGFkZXJQ
cm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwogICAgZ2wuYXR0YWNoU2hhZGVyKHNoYWRlclBy
b2dyYW0sIHZlcnRleFNoYWRlcik7CiAgICBnbC5hdHRhY2hTaGFkZXIoc2hhZGVyUHJvZ3JhbSwg
ZnJhZ21lbnRTaGFkZXIpOwogICAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHNoYWRlclByb2dyYW0s
IDAsICJ2UG9zaXRpb24iKTsgLy8gdlBvc2l0aW9uIGhhcyBiZWVuIGRlZmluZWQgYXQgdGhlIHRv
cAogICAgZ2wubGlua1Byb2dyYW0oc2hhZGVyUHJvZ3JhbSk7CgogICAgZ2wudXNlUHJvZ3JhbShz
aGFkZXJQcm9ncmFtKTsKCiAgICAgdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwogICAg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcik7IC8vIEJpbmQgYSBidWZmZXIg
b2JqZWN0LiBBY2NlcHRlZCB2YWx1ZXMgZm9yIHRhcmdldCBhcmU6IEFSUkFZX0JVRkZFUiBvciBF
TEVNRU5UX0FSUkFZX0JVRkZFUiAKCn0KCi8vIE1haW4gcHJvZ3JhbSBzdGFydHMgaGVyZS4gVGhl
IGFib3ZlIGZ1bmN0aW9ucyBhcmUgYWxwaGFiZXRpY2FsIG9yZGVyCmZ1bmN0aW9uIG1haW4oKSB7
IAogICAgaW5pdGlhbGl6ZSgpOwogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7IGRyYXcoKSB9
LCAxMDApOwogICAgLy9kcmF3KCk7Cn0gLy8gbWFpbgoKd2luZG93Lm9ubG9hZCA9IG1haW47IC8v
IENhbGwgdGhlIG1haW4oKSBmdW5jdGlvbiB3aGVuIHRoZSB3aW5kb3cgaGFzIGJlZW4gbG9hZGVk
CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCjwvc2NyaXB0Pgo8L2hlYWQ+
Cgo8Y2FudmFzIGlkPSJ3ZWJHbENhbnZhcyIgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGdyZWVu
IiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCI+PC9jYW52YXM+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>67273</attachid>
            <date>2010-09-10 17:41:51 -0700</date>
            <delta_ts>2010-09-10 17:41:51 -0700</delta_ts>
            <desc>Infinite loop in fragment shader, repeated every 100ms, locks up WebKit!</desc>
            <filename>shader-loop-lockup-frag.html</filename>
            <type>text/html</type>
            <size>3405</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">PGhlYWQ+CjxzY3JpcHQgaWQ9InZlcnRleFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgogIGF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKCiAgdm9pZCBtYWluKCkgewogICAgIC8vIENv
bW1lbnQgb3V0IHRoZSBsaW5lIGJlbG93IGFuZCB0aGUgc2hhZGVyIHdvcmtzIG5vcm1hbGx5CiAg
ICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CiAgfQo8L3NjcmlwdD4KCjxzY3JpcHQgaWQ9ImZy
YWdtZW50U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KICB2b2lkIG1haW4oKSB7
CiAgICAgIGZvciAoOyB0cnVlOyApCiAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIDEu
MCwgMC4wLCAxLjApOyAvLyBncmVlbiBjb2xvcgogIH0KPC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CnZhciBnbCA9IG51bGw7IC8vIEhvbGQgV2ViR0wgY29udGV4dCBv
YmplY3QKCmNvbG9yID0gMDsKCmZ1bmN0aW9uIGRyYXcoKSB7IC8vIERyYXcgdGhlIHBpY3R1cmUK
ICAgIGNvbG9yID0gY29sb3IgPyAwIDogMC41OwogICAgZ2wuY2xlYXJDb2xvcihjb2xvciwgMCwg
MCwgMSk7CiAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKICAgIHZhciB2ZXJ0aWNl
cyA9IFsgMC4wLCAwLjUsIDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0wLjUsIC0w
LjUsIDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgMC4wIF07IAog
ICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkodmVydGlj
ZXMpLCBnbC5TVEFUSUNfRFJBVyk7CgogICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBn
bC5GTE9BVCwgZmFsc2UsIDAsIDApOyAvLyBMb2FkIHRoZSB2ZXJ0ZXggZGF0YQogICAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoMCk7IAogICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMs
IDAsIDMpOyAKICAgIGdsLmZsdXNoKCk7Cn0KCmZ1bmN0aW9uIGVycm9yKGVycm9yTWVzc2FnZSkg
ewogICAgYWxlcnQoZXJyb3JNZXNzYWdlKTsgCn0KCmZ1bmN0aW9uIGdldEZyYWdtZW50U2hhZGVy
KCkgewogICAgdmFyIHNoYWRlck5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhZ21l
bnRTaGFkZXIiKTsgLy8gZnJhZ21lbnRTaGFkZXIgaGFzIGJlZW4gZGVmaW5lZCBhdCB0aGUgdG9w
CiAgICB2YXIgc2hhZGVyU291cmNlID0gZ2V0U2hhZGVyU291cmNlKHNoYWRlck5vZGUpOwoKICAg
IHZhciBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKTsKICAgIGds
LnNoYWRlclNvdXJjZShzaGFkZXIsIHNoYWRlclNvdXJjZSk7CiAgICBnbC5jb21waWxlU2hhZGVy
KHNoYWRlcik7CgogICAgcmV0dXJuIHNoYWRlcjsKfQoKZnVuY3Rpb24gZ2V0R2woKSB7IAogICAg
dmFyIHRoZUNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWJHbENhbnZhcyIpOwoK
ICAgIGdsID0gdGhlQ2FudmFzLmdldENvbnRleHQoIm1vei13ZWJnbCIpOyAvLyBGaXJlZm94CiAg
ICBpZiAoIWdsKQogICAgICAgIGdsID0gdGhlQ2FudmFzLmdldENvbnRleHQoImV4cGVyaW1lbnRh
bC13ZWJnbCIpOyAvLyBTYWZhcmkgb3IgQ2hyb21lCgogICAgaWYgKCFnbCkKICAgICAgICBlcnJv
cigiRmFpbGVkIHRvIGdldCBXZWJHTCBjb250ZXh0LiIpOwp9CgpmdW5jdGlvbiBnZXRTaGFkZXJT
b3VyY2Uoc2hhZGVyTm9kZSkgewogICAgdmFyIHNoYWRlclNvdXJjZSA9ICIiOwogICAgdmFyIG5v
ZGUgPSBzaGFkZXJOb2RlLmZpcnN0Q2hpbGQ7CiAgICB3aGlsZSAobm9kZSkgewogICAgICAgIGlm
IChub2RlLm5vZGVUeXBlID09IDMpIC8vIE5vZGUuVEVYVF9OT0RFCiAgICAgICAgICAgIHNoYWRl
clNvdXJjZSArPSBub2RlLnRleHRDb250ZW50OwogICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJs
aW5nOwogICAgfQoKICAgIHJldHVybiBzaGFkZXJTb3VyY2U7Cn0KCmZ1bmN0aW9uIGdldFZlcnRl
eFNoYWRlcigpIHsKICAgIHZhciBzaGFkZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InZlcnRleFNoYWRlciIpOyAvLyB2ZXJ0ZXhTaGFkZXIgaGFzIGJlZW4gZGVmaW5lZCBhdCB0aGUg
dG9wCiAgICB2YXIgc2hhZGVyU291cmNlID0gZ2V0U2hhZGVyU291cmNlKHNoYWRlck5vZGUpOwoK
ICAgIHZhciBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CiAgICBn
bC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTb3VyY2UpOwogICAgZ2wuY29tcGlsZVNoYWRl
cihzaGFkZXIpOwoKICAgIHJldHVybiBzaGFkZXI7Cn0KCmZ1bmN0aW9uIGluaXRpYWxpemUoKSB7
CiAgICBnZXRHbCgpOwoKICAgIHZhciB2ZXJ0ZXhTaGFkZXIgPSBnZXRWZXJ0ZXhTaGFkZXIoKTsK
ICAgIHZhciBmcmFnbWVudFNoYWRlciA9IGdldEZyYWdtZW50U2hhZGVyKCk7CgogICAgdmFyIHNo
YWRlclByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CiAgICBnbC5hdHRhY2hTaGFkZXIoc2hh
ZGVyUHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKICAgIGdsLmF0dGFjaFNoYWRlcihzaGFkZXJQcm9n
cmFtLCBmcmFnbWVudFNoYWRlcik7CiAgICBnbC5iaW5kQXR0cmliTG9jYXRpb24oc2hhZGVyUHJv
Z3JhbSwgMCwgInZQb3NpdGlvbiIpOyAvLyB2UG9zaXRpb24gaGFzIGJlZW4gZGVmaW5lZCBhdCB0
aGUgdG9wCiAgICBnbC5saW5rUHJvZ3JhbShzaGFkZXJQcm9ncmFtKTsKCiAgICBnbC51c2VQcm9n
cmFtKHNoYWRlclByb2dyYW0pOwoKICAgICB2YXIgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7
CiAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyKTsgLy8gQmluZCBhIGJ1
ZmZlciBvYmplY3QuIEFjY2VwdGVkIHZhbHVlcyBmb3IgdGFyZ2V0IGFyZTogQVJSQVlfQlVGRkVS
IG9yIEVMRU1FTlRfQVJSQVlfQlVGRkVSIAoKfQoKLy8gTWFpbiBwcm9ncmFtIHN0YXJ0cyBoZXJl
LiBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBhbHBoYWJldGljYWwgb3JkZXIKZnVuY3Rpb24gbWFp
bigpIHsgCiAgICBpbml0aWFsaXplKCk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsgZHJh
dygpIH0sIDEwMCk7CiAgICAvL2RyYXcoKTsKfSAvLyBtYWluCgp3aW5kb3cub25sb2FkID0gbWFp
bjsgLy8gQ2FsbCB0aGUgbWFpbigpIGZ1bmN0aW9uIHdoZW4gdGhlIHdpbmRvdyBoYXMgYmVlbiBs
b2FkZWQKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KPC9zY3JpcHQ+Cjwv
aGVhZD4KCjxjYW52YXMgaWQ9IndlYkdsQ2FudmFzIiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQg
Z3JlZW4iIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48L2NhbnZhcz4K
</data>

          </attachment>
      

    </bug>

</bugzilla>