<?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>59571</bug_id>
          
          <creation_ts>2011-04-26 18:42:23 -0700</creation_ts>
          <short_desc>[JSC] Nodes in shadow DOM should not be GCed while their hosts are alive and they have JS properties</short_desc>
          <delta_ts>2011-05-22 16:57: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>DOM</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>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>
          <dependson>59647</dependson>
    
    <dependson>61245</dependson>
          <blocked>59726</blocked>
    
    <blocked>59803</blocked>
    
    <blocked>59823</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Cooney">dominicc</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>393255</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-26 18:42:23 -0700</bug_when>
    <thetext>The related bug for the same problem in V8 is bug 59284.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393261</commentid>
    <comment_count>1</comment_count>
      <attachid>91208</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-26 18:47:15 -0700</bug_when>
    <thetext>Created attachment 91208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393699</commentid>
    <comment_count>2</comment_count>
      <attachid>91208</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-27 11:58:36 -0700</bug_when>
    <thetext>Comment on attachment 91208
Patch

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

It looks like your patch doesn&apos;t include any new test results. If we&apos;re going to make this change, I think we need a test with results that vary depending on whether this change is in the tree.

&gt; LayoutTests/fast/dom/shadow/gc-shadow.html:19
&gt; +    // Some ports (unfortunately) take GCController.collect as advisory.
&gt; +    for (var i = 0; i &lt; 10000; i++)
&gt; +        var s = new String(i);

Which ports take GCController.collect as advisory?

If there is a port like that, it&apos;s broken. I don&apos;t think we should make this test 2-3X slower on all ports just because some ports are broken. If window.GCController is defined, we should call collect() and return early.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393814</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-27 14:18:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/85082 might have broken Leopard Intel Debug (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393881</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-04-27 15:25:59 -0700</bug_when>
    <thetext>Why is this right behavior. Why is keeping the shadow DOMs wrappers alive important or necessary? Is it detectable from a web page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393906</commentid>
    <comment_count>5</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-27 15:49:36 -0700</bug_when>
    <thetext>re: Geoffrey’s r-

My choice of words—“advisory”—was not right. I’ve done some debugging and the test was erroneously passing on Mac because as written, the shadow root wrapper was still alive in the machine thread roots.

Peturbing the test causes it drop out of the root set, for example replacing this line:

GCController.collect();

with this:

if (window.GCController)
    GCController.collect();

is enough to make the shadow root wrapper disappear from machineThreadRoots.

What’s your advice here? Don’t allocate the objects (a given), use this if test, and check in failures for Mac? What do you recommend as a robust way to make the thread roots reflect the state of variables in the script?

re: Sam’s comment—why are we doing this

Shadow roots aren’t exposed to script. But at some point down the road they should be, as part of the component model. This change is some incremental progress towards that goal. Making the change now makes sense because it means we can keep pushing on component model plumbing in layout tests, without exposing any component model API prematurely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393938</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-04-27 16:21:14 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; re: Sam’s comment—why are we doing this
&gt; 
&gt; Shadow roots aren’t exposed to script. But at some point down the road they should be, as part of the component model. This change is some incremental progress towards that goal. Making the change now makes sense because it means we can keep pushing on component model plumbing in layout tests, without exposing any component model API prematurely.

Can you give me an example (e.g. imagine we support XBL2) of what this would look like?  In general, we don&apos;t want to keep wrappers alive longer than necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393964</commentid>
    <comment_count>7</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-27 16:39:24 -0700</bug_when>
    <thetext>Ah! This doesn’t prevent the wrapper being collected if it has no properties/event listeners (isn’t &quot;observable.&quot;) I have updated the bug title to reflect this. The patch just extends the notion of &quot;connected&quot; from parentNode to parentNode and shadowHost.

As for what this looks like in the API—we don’t have a specific proposal yet. But we expect scenarios such as: the script &quot;inside&quot; the component boundary adds event listeners to nodes in shadow DOM defined by the component; etc. The XBL2 analogy is adding event listeners or properties to elements in shadowTree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394017</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-27 17:10:51 -0700</bug_when>
    <thetext>&gt; What do you recommend as a robust way to make the thread roots reflect the state of variables in the script?

Our typical solution is to test a few different elements in a loop. So, put 10 &apos;p&apos; elements in an array, ensureShadowRoot and tatoo each of them in a loop, gc, and then test all 10 shadow roots for the tatoo in a loop. Since the same code tatoos each element, it&apos;s extremely likely -- pretty much guaranteed -- to overwrite old references with new references, leaving at least some of the tested elements completely unreferenced.

So, to clarify what I think is needed here:

1. Early return after calling GCController.collect if GCController exists.

2. A looping test that would fail on Mac without your change, but passes with your change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394086</commentid>
    <comment_count>9</comment_count>
      <attachid>91403</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-27 18:47:08 -0700</bug_when>
    <thetext>Created attachment 91403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394097</commentid>
    <comment_count>10</comment_count>
      <attachid>91405</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-27 18:56:50 -0700</bug_when>
    <thetext>Created attachment 91405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394103</commentid>
    <comment_count>11</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-27 19:01:54 -0700</bug_when>
    <thetext>Neat suggestion—the patch on bug 59647 implements the loop.

I have updated this patch to base if off the patch on bug 59647.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394609</commentid>
    <comment_count>12</comment_count>
      <attachid>91405</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-28 11:41:30 -0700</bug_when>
    <thetext>Comment on attachment 91405
Patch

Nice. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394616</commentid>
    <comment_count>13</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-28 11:44:03 -0700</bug_when>
    <thetext>Committed r85216: &lt;http://trac.webkit.org/changeset/85216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394669</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-28 12:45:38 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/85216 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395083</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-28 21:02:20 -0700</bug_when>
    <thetext>*** Bug 59708 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395084</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-28 21:05:08 -0700</bug_when>
    <thetext>There are still crashes happening on the bots: &lt;http://build.webkit.org/results/Leopard%20Intel%20Debug%20(Tests)/r85290%20(29645)/results.html&gt;.

I skipped all of fast/dom/shadow in r85298.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395096</commentid>
    <comment_count>17</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-28 21:34:13 -0700</bug_when>
    <thetext>Thank you Adam! We should&apos;ve been watching the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395097</commentid>
    <comment_count>18</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-28 21:34:33 -0700</bug_when>
    <thetext>Thank you for skipping; I will debug. I have not been able to repro these crashes on Snow Leopard debug but I will keep trying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407527</commentid>
    <comment_count>19</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-05-21 04:33:11 -0700</bug_when>
    <thetext>I can reliably reproduce this crash on Leopard Debug (but *only* on Leopard). The culprit is
fast/dom/shadow/layout-tests-can-access-shadow.html running this and another test (another of the same or fast/dom/shadow/no-renderers-for-light-children.html) crashes with this callstack.

/me continues to investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407717</commentid>
    <comment_count>20</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-05-22 16:57:57 -0700</bug_when>
    <thetext>I am closing this now since the fast/dom/shadow tests are running on Leopard without crashes now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91208</attachid>
            <date>2011-04-26 18:47:15 -0700</date>
            <delta_ts>2011-04-27 18:47:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59571-20110426184714.patch</filename>
            <type>text/plain</type>
            <size>2938</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ5OTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzYyOGVmMjc0MzliYjVkM2I1ZDAx
MDMyYmNmYWEzN2ExYzAxNzEzLi4xNDRhNzVhMTkxNjI1YzQyZjcyMzk4MjA1MjU5NWFlOWE3NGY3
YTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDQtMjYgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdhbGsgc2hhZG93SG9zdHMgYXMgd2VsbCBhcyBwYXJlbnROb2RlcyB3
aGVuIGZpbmRpbmcgb3BhcXVlIHJvb3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTk1NzEKKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9nYy1z
aGFkb3cuaHRtbDogdGlja2xlIEdDIGJ5IG1ha2luZyBnYXJiYWdlCisKIDIwMTEtMDQtMjYgIEFs
ZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGd0
ayBzcGVjaWZpYyByZW5kZXIgZXhwZWN0YXRpb25zIGFmdGVyIHRoZSB0ZXN0cyB3ZXJlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwKaW5kZXggYmUyOGI1ZGFkYTlm
NmQzMzMwYzViYTcyMDVmMzM3ZWE5MWNhN2I0Yi4uMzUzNWIxOWYzZWE0YTJmM2Y0ZmM2YzU4ODBk
ZjJjZDczYTVhYzg3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dj
LXNoYWRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nYy1zaGFkb3cu
aHRtbApAQCAtMTAsMTMgKzEwLDIyIEBAIGFyZSBub3QgcHJlbWF0dXJlbHkgZ2FyYmFnZSBjb2xs
ZWN0ZWQuCiAKIDwvcHJlPgogPHNjcmlwdD4KK2Z1bmN0aW9uIGdjKCkgeworICAgIGlmICh3aW5k
b3cuR0NDb250cm9sbGVyKQorICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworCisgICAg
Ly8gU29tZSBwb3J0cyAodW5mb3J0dW5hdGVseSkgdGFrZSBHQ0NvbnRyb2xsZXIuY29sbGVjdCBh
cyBhZHZpc29yeS4KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspCisgICAgICAg
IHZhciBzID0gbmV3IFN0cmluZyhpKTsKK30KKwogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewogICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwogICAgIHZh
ciBzaGFkb3cgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5lbnN1cmVTaGFkb3dSb290KHApOwogICAg
IHNoYWRvdy50YXR0b28gPSAnSSA8MyBXZWJLaXQnOwogICAgIHNoYWRvdyA9IG51bGw7CiAKLSAg
ICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworICAgIGdjKCk7CiAKICAgICBzaGFkb3cgPSBsYXlv
dXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHApOwogICAgIHNob3VsZEJlKCdzaGFkb3cudGF0
dG9vJywgJyJJIDwzIFdlYktpdCInKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYWFjMDA1ZjA4ZTA2NjZkNTM1
ZWRiNTViNmE5Nzg3Yzk2MDVjMWQyLi5lYjIxYzU2NDdkYjJiOWY2YTA3MjQyYTE3NWQ4MWFkNDhj
NGRlNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDQtMjYgIERvbWluaWMg
Q29vbmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdhbGsgc2hhZG93SG9zdHMgYXMgd2VsbCBhcyBwYXJl
bnROb2RlcyB3aGVuIGZpbmRpbmcgb3BhcXVlIHJvb3RzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk1NzEKKworICAgICAgICBUZXN0OiBmYXN0L2Rv
bS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6cm9vdCk6IHdhbGsgc2hhZG93IGhvc3RzIGFzIHdl
bGwgYXMgcGFyZW50IG5vZGVzCisKIDIwMTEtMDQtMjYgIENodW4tTHVuZyBIdWFuZyAgPGFsdmlu
Y2wuaHVhbmdAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCBmYzYzM2I4
NjA0NThkOGE0ZjAzZDlkNmFmYjA3OTc0MjU0YmFiODY2Li43ODViNzU2YTdjYTFlNDg0OTI5Zjcw
MjhhYmY1NDgwMGE0YmFhYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaApAQCAtMjAzLDggKzIwMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
aWYgKG5vZGUtPmluRG9jdW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiBub2RlLT5kb2N1bWVu
dCgpOwogCi0gICAgICAgIHdoaWxlIChub2RlLT5wYXJlbnROb2RlKCkpCi0gICAgICAgICAgICBu
b2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAgICAgICB3aGlsZSAobm9kZS0+cGFyZW50T3JI
b3N0Tm9kZSgpKQorICAgICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE9ySG9zdE5vZGUoKTsK
ICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91403</attachid>
            <date>2011-04-27 18:47:08 -0700</date>
            <delta_ts>2011-04-27 18:56:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59571-20110427184707.patch</filename>
            <type>text/plain</type>
            <size>1958</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODUwODkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNTczNjY1MDA0MTA5YTc1OWZjMTY4
MmQzOWNlYThkOTJmNjhiZDE4Li43MGQyYWI0OWE2MzE4ZWMyYzAxYWQzYjFkZmIzMWI2ZDkyNWYz
YjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMjcgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdhbGsgc2hhZG93IGhvc3RzIGFzIHdlbGwgYXMgcGFyZW50IG5vZGVz
IHdoZW4gZmluZGluZyBvcGFxdWUgcm9vdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01OTU3MQorCisgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbiBv
ZiBmYWlsdXJlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3NoYWRvdy9nYy1z
aGFkb3ctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDExLTA0LTI3ICBPamFuIFZhZmFpICA8
b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggODEwMDNiNTBjYmE5MzJjN2MwNmYwZmZiNTM2MGQ0OGVmNDY5ZTgwYy4uMjc1
MDFhZjkyMWUzZGQ4YjMwYmYxN2QzZmVlNmVlYzVlYzg5NjJmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTA0LTI3ICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
YWxrIHNoYWRvdyBob3N0cyBhcyB3ZWxsIGFzIHBhcmVudCBub2RlcyB3aGVuIGZpbmRpbmcgb3Bh
cXVlIHJvb3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTk1NzEKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29y
ZTo6cm9vdCk6CisKIDIwMTEtMDQtMjAgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggOGIyM2YwMjYxNTQ2ZDI2ZTk2
NTNhNTNlZjIxOTkwY2U4NDZjNzRjNy4uOWY4ZmQzYzhkMzhlNDI2NmU1ODhlOWZmM2Q3NjFlYWVi
NjdlMWUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAg
LTE3Miw4ICsxNzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGlmIChub2RlLT5p
bkRvY3VtZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKTsKIAotICAg
ICAgICB3aGlsZSAobm9kZS0+cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgbm9kZSA9IG5vZGUt
PnBhcmVudE5vZGUoKTsKKyAgICAgICAgd2hpbGUgKG5vZGUtPnBhcmVudE9ySG9zdE5vZGUoKSkK
KyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3ROb2RlKCk7CiAgICAgICAgIHJl
dHVybiBub2RlOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91405</attachid>
            <date>2011-04-27 18:56:50 -0700</date>
            <delta_ts>2011-04-28 21:05:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59571-20110427185649.patch</filename>
            <type>text/plain</type>
            <size>3750</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODUwODkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNTczNjY1MDA0MTA5YTc1OWZjMTY4
MmQzOWNlYThkOTJmNjhiZDE4Li43MGQyYWI0OWE2MzE4ZWMyYzAxYWQzYjFkZmIzMWI2ZDkyNWYz
YjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMjcgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdhbGsgc2hhZG93IGhvc3RzIGFzIHdlbGwgYXMgcGFyZW50IG5vZGVz
IHdoZW4gZmluZGluZyBvcGFxdWUgcm9vdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01OTU3MQorCisgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbiBv
ZiBmYWlsdXJlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3NoYWRvdy9nYy1z
aGFkb3ctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDExLTA0LTI3ICBPamFuIFZhZmFpICA8
b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vc2hhZG93L2djLXNo
YWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vc2hh
ZG93L2djLXNoYWRvdy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg3MDQxYzY4Y2EzMjdlNDlhODkxZWM3YzExNzYwYmJkMThjODhlNzguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvZG9tL3NoYWRvdy9nYy1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTcgKzAsMCBAQAotVGhpcyB0ZXN0cyB0aGF0IHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2Jq
ZWN0cyBvZiBzaGFkb3cgRE9NIG9iamVjdHMKLWFyZSBub3QgcHJlbWF0dXJlbHkgZ2FyYmFnZSBj
b2xsZWN0ZWQuCi0KLUZBSUwgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChwc1swXSku
dGF0dG9vIHNob3VsZCBiZSBJIDwzIFdlYktpdCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgdW5kZWZp
bmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCi1GQUlMIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRv
d1Jvb3QocHNbMV0pLnRhdHRvbyBzaG91bGQgYmUgSSA8MyBXZWJLaXQgKG9mIHR5cGUgc3RyaW5n
KS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgotRkFJTCBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zaGFkb3dSb290KHBzWzJdKS50YXR0b28gc2hvdWxkIGJlIEkgPDMgV2ViS2l0IChv
ZiB0eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KLUZBSUwg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChwc1szXSkudGF0dG9vIHNob3VsZCBiZSBJ
IDwzIFdlYktpdCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVm
aW5lZCkuCi1GQUlMIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QocHNbNF0pLnRhdHRv
byBzaG91bGQgYmUgSSA8MyBXZWJLaXQgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAo
b2YgdHlwZSB1bmRlZmluZWQpLgotRkFJTCBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290
KHBzWzVdKS50YXR0b28gc2hvdWxkIGJlIEkgPDMgV2ViS2l0IChvZiB0eXBlIHN0cmluZykuIFdh
cyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KLUZBSUwgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2hhZG93Um9vdChwc1s2XSkudGF0dG9vIHNob3VsZCBiZSBJIDwzIFdlYktpdCAob2YgdHlw
ZSBzdHJpbmcpLiBXYXMgdW5kZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCi1GQUlMIGxheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QocHNbN10pLnRhdHRvbyBzaG91bGQgYmUgSSA8MyBX
ZWJLaXQgKG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQp
LgotRkFJTCBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHBzWzhdKS50YXR0b28gc2hv
dWxkIGJlIEkgPDMgV2ViS2l0IChvZiB0eXBlIHN0cmluZykuIFdhcyB1bmRlZmluZWQgKG9mIHR5
cGUgdW5kZWZpbmVkKS4KLUZBSUwgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChwc1s5
XSkudGF0dG9vIHNob3VsZCBiZSBJIDwzIFdlYktpdCAob2YgdHlwZSBzdHJpbmcpLiBXYXMgdW5k
ZWZpbmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgxMDAzYjUwY2JhOTMyYzdjMDZm
MGZmYjUzNjBkNDhlZjQ2OWU4MGMuLjI3NTAxYWY5MjFlM2RkOGIzMGJmMTdkM2ZlZTZlZWM1ZWM4
OTYyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNC0yNyAgRG9taW5pYyBD
b29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2FsayBzaGFkb3cgaG9zdHMgYXMgd2VsbCBhcyBwYXJl
bnQgbm9kZXMgd2hlbiBmaW5kaW5nIG9wYXF1ZSByb290cy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5NTcxCisKKyAgICAgICAgVGVzdDogZmFzdC9k
b20vc2hhZG93L2djLXNoYWRvdy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OnJvb3QpOgorCiAyMDExLTA0LTIwICBEaW1pdHJp
IEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CmluZGV4IDhiMjNmMDI2MTU0NmQyNmU5NjUzYTUzZWYyMTk5MGNlODQ2Yzc0YzcuLjlmOGZkM2M4
ZDM4ZTQyNjZlNTg4ZTlmZjNkNzYxZWFlYjY3ZTFlMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC0xNzIsOCArMTcyLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBpZiAobm9kZS0+aW5Eb2N1bWVudCgpKQogICAgICAgICAgICAgcmV0dXJu
IG5vZGUtPmRvY3VtZW50KCk7CiAKLSAgICAgICAgd2hpbGUgKG5vZGUtPnBhcmVudE5vZGUoKSkK
LSAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CisgICAgICAgIHdoaWxlIChu
b2RlLT5wYXJlbnRPckhvc3ROb2RlKCkpCisgICAgICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50
T3JIb3N0Tm9kZSgpOwogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>