<?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>79736</bug_id>
          
          <creation_ts>2012-02-27 19:19:05 -0800</creation_ts>
          <short_desc>nrwt: support more than two drivers in DriverProxy</short_desc>
          <delta_ts>2012-03-20 00:52:49 -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>New Bugs</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>
          <dependson>79733</dependson>
          <blocked>79431</blocked>
    
    <blocked>79737</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>566283</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-27 19:19:05 -0800</bug_when>
    <thetext>nrwt: support more than two drivers in DriverProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566287</commentid>
    <comment_count>1</comment_count>
      <attachid>129167</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-27 19:23:54 -0800</bug_when>
    <thetext>Created attachment 129167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566755</commentid>
    <comment_count>2</comment_count>
      <attachid>129167</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-28 09:00:11 -0800</bug_when>
    <thetext>Comment on attachment 129167
Patch

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

&gt; Tools/ChangeLog:9
&gt; +        Now that we can support per-test command lines for
&gt; +        Drivers, modify DriverProxy to keep a map of running

I&apos;m not sure what this is referring to.  Are you saying this is needed for testing?  Does that mean tests are reusing the same instance of DriverProxy?  Should we just mock out DriverProxy instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566772</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-28 09:12:29 -0800</bug_when>
    <thetext>I see, I followed the bug chain to find bug 76501.  Did you find out the answer to the question in bug 76501 comment 1?  I don&apos;t want us to do all this work to find out that it still doesn&apos;t work with the tools (garden-o-matic, webkit-patch rebaseline-expectations, etc).

Also, virtual directories have an extra cost in that we have to teach gardeners about them.

How many gpu configurations do we have to support? Can we just have separate bots run those specific tests (the bots should cycle quickly since it&apos;s only a subset of the test suite)?  Would it be sufficient to just have a win7, mac SL and linux bot in these configurations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567030</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-28 13:26:58 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I see, I followed the bug chain to find bug 76501.  Did you find out the answer to the question in bug 76501 comment 1?

I don&apos;t know the answer to the question in comment #1 beyond what I said in comment #2 - namely, it should theoretically work but there may be a few bugs

&gt;  I don&apos;t want us to do all this work to find out that it still doesn&apos;t work with the tools (garden-o-matic, webkit-patch rebaseline-expectations, etc).
&gt;

I don&apos;t really know of any way of finding that out for sure except to do the work and see what happens. It&apos;s also important to keep in mind that garden-o-matic doesn&apos;t work with the gpu ports today.

 &gt; Also, virtual directories have an extra cost in that we have to teach gardeners about them.

They&apos;ll pretty much work like regular directories (except that the actual tests will be located elsewhere), so I don&apos;t think this&apos;ll be a big deal; it&apos;s no worse than subclassing objects.

&gt; 
&gt; How many gpu configurations do we have to support? Can we just have separate bots run those specific tests (the bots should cycle quickly since it&apos;s only a subset of the test suite)?  Would it be sufficient to just have a win7, mac SL and linux bot in these configurations?

What problem would that solve? We already run the gpu tests on the bots, in all the layout test configurations; the problem is that the existence of the gpu port themselves complicates things.

I have come to believe that the virtual test dir thing is just a better solution, and once it&apos;s there, we&apos;ll find other uses for it as well (I already have at least one in mind that&apos;ll be needed for the apple win port).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567062</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-28 13:55:45 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; How many gpu configurations do we have to support? Can we just have separate bots run those specific tests (the bots should cycle quickly since it&apos;s only a subset of the test suite)?  Would it be sufficient to just have a win7, mac SL and linux bot in these configurations?
&gt; 
&gt; What problem would that solve? We already run the gpu tests on the bots, in all the layout test configurations; the problem is that the existence of the gpu port themselves complicates things.

I thought the main problem we were trying to solve is that the tools don&apos;t work with the gpu port.  I.e., it&apos;s hard to rebaseline and garden-o-matic doesn&apos;t know about them.  That said, it doesn&apos;t help with the test_expectations.txt mess, while virtual directories does.

&gt; I have come to believe that the virtual test dir thing is just a better solution, and once it&apos;s there, we&apos;ll find other uses for it as well (I already have at least one in mind that&apos;ll be needed for the apple win port).

I think we&apos;re trading one set of problems for another set of problems, but I&apos;m not opposed to trying it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567063</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-28 13:56:25 -0800</bug_when>
    <thetext>About this review in particular, it would be better if we could make this runtime configurable through layoutTestController rather than having to launch new processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567066</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-28 14:00:45 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; About this review in particular, it would be better if we could make this runtime configurable through layoutTestController rather than having to launch new processes.

Sorry, I just realized you can&apos;t use layoutTestController since the tests are virtual directories.

You could however do this by communicating with DRT via stdin. In hindsight, I should have done the same for ref tests + --no-pixel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567120</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-28 14:46:52 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; How many gpu configurations do we have to support? Can we just have separate bots run those specific tests (the bots should cycle quickly since it&apos;s only a subset of the test suite)?  Would it be sufficient to just have a win7, mac SL and linux bot in these configurations?
&gt; &gt; 
&gt; &gt; What problem would that solve? We already run the gpu tests on the bots, in all the layout test configurations; the problem is that the existence of the gpu port themselves complicates things.
&gt; 
&gt; I thought the main problem we were trying to solve is that the tools don&apos;t work with the gpu port.  I.e., it&apos;s hard to rebaseline and garden-o-matic doesn&apos;t know about them.  That said, it doesn&apos;t help with the test_expectations.txt mess, while virtual directories does.
&gt; 

Right. The main problem we&apos;re trying to solve is the proliferation of ports, especially ports that reflect the desire to just run certain subsets of tests differently :) (ports in the physical class sense should really have to map onto things that are built).

It would&apos;ve been easier to fix the tools.

&gt; &gt; I have come to believe that the virtual test dir thing is just a better solution, and once it&apos;s there, we&apos;ll find other uses for it as well (I already have at least one in mind that&apos;ll be needed for the apple win port).
&gt; 
&gt; I think we&apos;re trading one set of problems for another set of problems, but I&apos;m not opposed to trying it.

Could be ... guess we&apos;ll see. JamesR&apos;s almost managed to kill off the gpu tests anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567124</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-28 14:49:00 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; About this review in particular, it would be better if we could make this runtime configurable through layoutTestController rather than having to launch new processes.
&gt; 
&gt; Sorry, I just realized you can&apos;t use layoutTestController since the tests are virtual directories.
&gt; 
&gt; You could however do this by communicating with DRT via stdin. In hindsight, I should have done the same for ref tests + --no-pixel.

Yeah, unfortunately that&apos;s going to take changing all the DRTs as NRWT code. Probably a good thing to do down the road. I can file a separate bug for that; it would be easy to do that at the same time as when I try to fix the bugs keeping us from using webkit-style DRT protocol instead of the test_shell protocol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567140</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-28 15:06:56 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; About this review in particular, it would be better if we could make this runtime configurable through layoutTestController rather than having to launch new processes.
&gt; &gt; 
&gt; &gt; Sorry, I just realized you can&apos;t use layoutTestController since the tests are virtual directories.
&gt; &gt; 
&gt; &gt; You could however do this by communicating with DRT via stdin. In hindsight, I should have done the same for ref tests + --no-pixel.
&gt; 
&gt; Yeah, unfortunately that&apos;s going to take changing all the DRTs as NRWT code. Probably a good thing to do down the road. I can file a separate bug for that; it would be easy to do that at the same time as when I try to fix the bugs keeping us from using webkit-style DRT protocol instead of the test_shell protocol.

In the case of the GPU tests, you would only have to change Chromium&apos;s DRT.  That seems more focused than trying to change common NRWT code for a Chromium specific need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567159</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-28 15:21:24 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; In the case of the GPU tests, you would only have to change Chromium&apos;s DRT.  That seems more focused than trying to change common NRWT code for a Chromium specific need.

I&apos;m a bit confused ... are you talking about just this specific patch, or the larger &apos;remove gpu ports, and virtual test dirs&apos; idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567189</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-28 16:02:34 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; In the case of the GPU tests, you would only have to change Chromium&apos;s DRT.  That seems more focused than trying to change common NRWT code for a Chromium specific need.
&gt; 
&gt; I&apos;m a bit confused ... are you talking about just this specific patch, or the larger &apos;remove gpu ports, and virtual test dirs&apos; idea?

Sorry, I&apos;m not trying to be confusing.  This specific patch.

Rather than supporting any number of drivers, would it be possible to reusing the existing drivers?  E.g., for a given virtual directory that needs a different configuration, we would pass a command via stdin to DRT to switch it to the right configuration for that test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567198</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-28 16:13:15 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; In the case of the GPU tests, you would only have to change Chromium&apos;s DRT.  That seems more focused than trying to change common NRWT code for a Chromium specific need.
&gt; &gt; 
&gt; &gt; I&apos;m a bit confused ... are you talking about just this specific patch, or the larger &apos;remove gpu ports, and virtual test dirs&apos; idea?
&gt; 
&gt; Sorry, I&apos;m not trying to be confusing.  This specific patch.
&gt; 
&gt; Rather than supporting any number of drivers, would it be possible to reusing the existing drivers?  E.g., for a given virtual directory that needs a different configuration, we would pass a command via stdin to DRT to switch it to the right configuration for that test.

OK. I am a bit worried about what sort of bugs (if any) we might run into doing that and how much work that would be (although I don&apos;t think it&apos;ll be that hard or that risky, I just don&apos;t know that code that well). 

So, I would prefer to land this solution as is, finish the reset of this chain of bugs, and then come back to this idea. I do like the idea of just keeping on DRT around and changing its configuration as needed rather than starting and stopping them.

Does that work for you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567839</commentid>
    <comment_count>14</comment_count>
      <attachid>129491</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-29 12:48:31 -0800</bug_when>
    <thetext>Created attachment 129491
fix bad merge in webkit.py - driver_input.args doesn&apos;t exist yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567891</commentid>
    <comment_count>15</comment_count>
      <attachid>129491</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-29 13:49:31 -0800</bug_when>
    <thetext>Comment on attachment 129491
fix bad merge in webkit.py - driver_input.args doesn&apos;t exist yet

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

Why do some of these methods refer to self._driver whereas other iterate over all the drivers?

&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:-160
&gt; -    def start(self):
&gt; -        raise NotImplementedError(&apos;Driver.start&apos;)

Why did you remove this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567894</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-29 13:53:54 -0800</bug_when>
    <thetext>Tony, the bigger picture here is that we&apos;ve had a lot of trouble managing the expectations for the GPU configuration because it multiplies the number of configurations by two.  For example, when we add Android bots, we need to add two Android configurations: one for GPU and one for non-GPU.

Dirk&apos;s idea with virtual directories is to make the GPU configuration basically invisible to almost all of the tools.  Because we run only a small number of tests in the GPU and non-GPU configuration, running the GPU configuration all the time won&apos;t increase the number of tests we run very much.

I agree that re-configuring a running DRT instance is better than having multiple instance of DRT to manage.  We already re-configure the DRT based on test path, so doing something similar here would make sense.

That said, I think it&apos;s ok to proceed with this patch as is.  Hopefully Dirk will come back and improve the design once we&apos;ve got the new approach working end-to-end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567895</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-29 13:55:02 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 129491 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129491&amp;action=review
&gt; 
&gt; Why do some of these methods refer to self._driver whereas other iterate over all the drivers?
&gt;

The ones that refer to self._driver are really calling methods that just need *a* driver to be valid. Those routines should probably actually either be @classmethod or routines on the Port object instead, but I didn&apos;t really want to make those changes as part of this patch (Was planning to do so in a subsequent patch). I will add a FIXME for now and come back to this.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:-160
&gt; &gt; -    def start(self):
&gt; &gt; -        raise NotImplementedError(&apos;Driver.start&apos;)
&gt; 
&gt; Why did you remove this?

Whoops. Bad merge :(. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567901</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-29 14:01:06 -0800</bug_when>
    <thetext>Yeah, having the self._driver member is an invitation to bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567903</commentid>
    <comment_count>19</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-29 14:05:56 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Tony, the bigger picture here is that we&apos;ve had a lot of trouble managing the expectations for the GPU configuration because it multiplies the number of configurations by two.  For example, when we add Android bots, we need to add two Android configurations: one for GPU and one for non-GPU.
&gt; 
&gt; Dirk&apos;s idea with virtual directories is to make the GPU configuration basically invisible to almost all of the tools.  Because we run only a small number of tests in the GPU and non-GPU configuration, running the GPU configuration all the time won&apos;t increase the number of tests we run very much.

I don&apos;t have a problem with these changes as I said in comment #5.

&gt; I agree that re-configuring a running DRT instance is better than having multiple instance of DRT to manage.  We already re-configure the DRT based on test path, so doing something similar here would make sense.
&gt; 
&gt; That said, I think it&apos;s ok to proceed with this patch as is.  Hopefully Dirk will come back and improve the design once we&apos;ve got the new approach working end-to-end.

I don&apos;t see the advantage of checking in code if everyone agrees it&apos;s a sub optimal design and we&apos;re going to rewrite it immediately.  That just makes the rewrite harder, the reviewing harder, and the extra changes increase the chance of breaking the tree.

This doesn&apos;t seem that time critical-- we&apos;re talking about an extra week or two on the bots and maybe an extra day of Dirk&apos;s time.  But as I told Dirk in IM, I don&apos;t feel strongly enough against it to r- it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567960</commentid>
    <comment_count>20</comment_count>
      <attachid>129522</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-29 14:39:58 -0800</bug_when>
    <thetext>Created attachment 129522
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567961</commentid>
    <comment_count>21</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-29 14:40:36 -0800</bug_when>
    <thetext>Committed r109264: &lt;http://trac.webkit.org/changeset/109264&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568008</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-29 15:32:32 -0800</bug_when>
    <thetext>&gt; I don&apos;t see the advantage of checking in code if everyone agrees it&apos;s a sub optimal design and we&apos;re going to rewrite it immediately.  That just makes the rewrite harder, the reviewing harder, and the extra changes increase the chance of breaking the tree.

I certainly understand your perspective.  I think the idea here is to ship early and iterate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582830</commentid>
    <comment_count>23</comment_count>
      <attachid>129522</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-20 00:52:49 -0700</bug_when>
    <thetext>Comment on attachment 129522
patch for landing

Cleared review? from attachment 129522 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129167</attachid>
            <date>2012-02-27 19:23:54 -0800</date>
            <delta_ts>2012-02-29 12:46:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79736-20120227192353.patch</filename>
            <type>text/plain</type>
            <size>5094</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjY3MGJiZWMxZmY5NzBkYjUzNTI5OGU1NmVhNDMyZDI5
NmVjZmZiYi4uMTRlYjBmMDc4Njk5ZGNhNmU2ZDdkMmNiZWY5NjIxNTJiZTBkYTQwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQz
IEBACiAyMDEyLTAyLTI3ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHN1cHBvcnQgbW9yZSB0aGFuIHR3byBkcml2ZXJzIGluIERyaXZlclByb3h5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTczNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0
IHdlIGNhbiBzdXBwb3J0IHBlci10ZXN0IGNvbW1hbmQgbGluZXMgZm9yCisgICAgICAgIERyaXZl
cnMsIG1vZGlmeSBEcml2ZXJQcm94eSB0byBrZWVwIGEgbWFwIG9mIHJ1bm5pbmcKKyAgICAgICAg
ZHJpdmVycyBmb3IgZWFjaCBuZWVkZWQgY29tbWFuZC1saW5lOyB0aGlzIHdpbGwgYWxsb3cKKyAg
ICAgICAgdXMgdG8gdHJhbnNwYXJlbnRseSBtYWludGFpbiBhIHBvb2wgb2YgYXBwcm9wcmlhdGVs
eQorICAgICAgICBjb25maWd1cmVkIERSVHMgd2l0aG91dCBoYXZpbmcgdG8gY29uc3RhbnRseSBz
dGFydCBhbmQgc3RvcAorICAgICAgICB0aGVtLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBv
dGVudGlhbGx5IHJhaXNlcyBhIGdhcmJhZ2UgY29sbGVjdGlvbgorICAgICAgICBwcm9ibGVtIC0g
dGhlIG51bWJlciBvZiBydW5uaW5nIERSVHMgd2lsbCBncm93IHdpdGggdGhlCisgICAgICAgIG51
bWJlciBvZiBkaWZmZXJlbnQgc2V0cyBvZiBjb21tYW5kIGxpbmUgYXJncy4gRm9yIG5vdworICAg
ICAgICB0aGlzIGlzIG5vIHdvcnNlIHRoYW4gdGhlIGN1cnJlbnQgY29kZSAtIGlmIHlvdSdyZSBy
dW5uaW5nCisgICAgICAgIHdpdGggcGl4ZWwgdGVzdHMsIHlvdSB3aWxsIG9ubHkgbmVlZCBvbmUg
RFJUIHBlciB3b3JrZXIsCisgICAgICAgIGFuZCBpZiB5b3UgYXJlbid0LCB5b3UnbGwgbmVlZCB0
d28gKG9uZSBmb3IgdGV4dC1vbmx5IHRlc3RzLAorICAgICAgICBhbmQgb25lIGZvciByZWZ0ZXN0
cykuCisKKyAgICAgICAgQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gb25seSBldmVyIGhhdmUg
b25lIHJ1bm5pbmcgZHJpdmVyLAorICAgICAgICBhbmQgcmVzdGFydCB0aGUgZHJpdmVyIGFzIHRo
ZSBjb21tYW5kIGxpbmUgY2hhbmdlcywgYnV0IHRoaXMKKyAgICAgICAgbWlnaHQgKD8pIHNsb3cg
ZG93biBleGVjdXRpb24gaW4gdGhlIHRleHQtb25seSBjYXNlIC0gd2UKKyAgICAgICAgc2hvdWxk
IGJlbmNobWFyayB0aGlzIGJlY2F1c2UgaXQgd291bGQgYmUgc2ltcGxlciBhbmQgcG9zc2libHkK
KyAgICAgICAgYWxsb3cgdXMgdG8gZWxpbWluYXRlIERyaXZlclByb3h5IGFsdG9nZXRoZXIuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weToK
KyAgICAgICAgKERyaXZlclByb3h5Ll9faW5pdF9fKToKKyAgICAgICAgKERyaXZlclByb3h5KToK
KyAgICAgICAgKERyaXZlclByb3h5Ll9tYWtlX2RyaXZlcik6CisgICAgICAgIChEcml2ZXJQcm94
eS5ydW5fdGVzdCk6CisgICAgICAgIChEcml2ZXJQcm94eS5oYXNfY3Jhc2hlZCk6CisgICAgICAg
IChEcml2ZXJQcm94eS5zdG9wKToKKyAgICAgICAgKERyaXZlclByb3h5LmNtZF9saW5lKToKKyAg
ICAgICAgKERyaXZlclByb3h5Ll9jbWRfbGluZV9hc19rZXkpOgorCisyMDEyLTAyLTI3ICBEaXJr
IFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIG5yd3Q6IHBvcnQvRHJp
dmVyIG5lZWRzIHRvIHN1cHBvcnQgcGVyLXRlc3QgY29tbWFuZCBsaW5lIGFyZ3MKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NzMzCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKaW5kZXgg
ODhlODRhZjQ1MmRjODdlNjE1ZTViNTUyM2FlMWZlYTY3MGY5NjU4Yi4uOWYwNmExZWIzMGYxYzg0
NmM4NTJmNmFkNmIzZTBjNGM5ODFlODVkMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKQEAgLTE2OSwxMSArMTY5LDE4IEBAIGNs
YXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAgc2luZ2xlIGRyaXZlci4iIiIKIAogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyLCBkcml2ZXJfaW5zdGFuY2VfY29u
c3RydWN0b3IsIHBpeGVsX3Rlc3RzLCBub190aW1lb3V0KToKLSAgICAgICAgc2VsZi5fZHJpdmVy
ID0gZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yKHBvcnQsIHdvcmtlcl9udW1iZXIsIHBpeGVs
X3Rlc3RzLCBub190aW1lb3V0KQotICAgICAgICBpZiBwaXhlbF90ZXN0czoKLSAgICAgICAgICAg
IHNlbGYuX3JlZnRlc3RfZHJpdmVyID0gc2VsZi5fZHJpdmVyCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBzZWxmLl9yZWZ0ZXN0X2RyaXZlciA9IGRyaXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3Rv
cihwb3J0LCB3b3JrZXJfbnVtYmVyLCBUcnVlLCBub190aW1lb3V0KQorICAgICAgICBzZWxmLl9w
b3J0ID0gcG9ydAorICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgor
ICAgICAgICBzZWxmLl9kcml2ZXJfaW5zdGFuY2VfY29uc3RydWN0b3IgPSBkcml2ZXJfaW5zdGFu
Y2VfY29uc3RydWN0b3IKKyAgICAgICAgc2VsZi5fbm9fdGltZW91dCA9IG5vX3RpbWVvdXQKKyAg
ICAgICAgc2VsZi5fcGl4ZWxfdGVzdHMgPSBwaXhlbF90ZXN0cworCisgICAgICAgIHNlbGYuX2Ry
aXZlciA9IHNlbGYuX21ha2VfZHJpdmVyKHBpeGVsX3Rlc3RzKQorICAgICAgICBzZWxmLl9ydW5u
aW5nX2RyaXZlcnMgPSB7fQorICAgICAgICBzZWxmLl9ydW5uaW5nX2RyaXZlcnNbc2VsZi5fY21k
X2xpbmVfYXNfa2V5KHBpeGVsX3Rlc3RzLCBbXSldID0gc2VsZi5fZHJpdmVyCisKKyAgICBkZWYg
X21ha2VfZHJpdmVyKHNlbGYsIHBpeGVsX3Rlc3RzKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Ry
aXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3RvcihzZWxmLl9wb3J0LCBzZWxmLl93b3JrZXJfbnVtYmVy
LCBwaXhlbF90ZXN0cywgc2VsZi5fbm9fdGltZW91dCkKIAogICAgIGRlZiBpc19odHRwX3Rlc3Qo
c2VsZiwgdGVzdF9uYW1lKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5pc19odHRwX3Rl
c3QodGVzdF9uYW1lKQpAQCAtMTg1LDE5ICsxOTIsMjIgQEAgY2xhc3MgRHJpdmVyUHJveHkob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci51cmlfdG9fdGVzdCh1cmkpCiAKICAg
ICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZHJpdmVyX2lucHV0KToKLSAgICAgICAgaWYgZHJpdmVyX2lu
cHV0LmlzX3JlZnRlc3Q6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVmdGVzdF9kcml2ZXIu
cnVuX3Rlc3QoZHJpdmVyX2lucHV0KQotICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLnJ1bl90
ZXN0KGRyaXZlcl9pbnB1dCkKKyAgICAgICAgcGl4ZWxfdGVzdHNfbmVlZGVkID0gc2VsZi5fcGl4
ZWxfdGVzdHMgb3IgZHJpdmVyX2lucHV0LmlzX3JlZnRlc3QKKyAgICAgICAgY21kX2xpbmVfa2V5
ID0gc2VsZi5fY21kX2xpbmVfYXNfa2V5KHBpeGVsX3Rlc3RzX25lZWRlZCwgW10pCisgICAgICAg
IGlmIG5vdCBjbWRfbGluZV9rZXkgaW4gc2VsZi5fcnVubmluZ19kcml2ZXJzOgorICAgICAgICAg
ICAgc2VsZi5fcnVubmluZ19kcml2ZXJzW2NtZF9saW5lX2tleV0gPSBzZWxmLl9tYWtlX2RyaXZl
cihwaXhlbF90ZXN0c19uZWVkZWQpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bm5pbmdfZHJp
dmVyc1tjbWRfbGluZV9rZXldLnJ1bl90ZXN0KGRyaXZlcl9pbnB1dCkKIAogICAgIGRlZiBoYXNf
Y3Jhc2hlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5oYXNfY3Jhc2hlZCgp
IG9yIHNlbGYuX3JlZnRlc3RfZHJpdmVyLmhhc19jcmFzaGVkKCkKKyAgICAgICAgcmV0dXJuIGFu
eShkcml2ZXIuaGFzX2NyYXNoZWQoKSBmb3IgZHJpdmVyIGluIHNlbGYuX3J1bm5pbmdfZHJpdmVy
cy52YWx1ZXMoKSkKIAogICAgIGRlZiBzdG9wKHNlbGYpOgotICAgICAgICBzZWxmLl9kcml2ZXIu
c3RvcCgpCi0gICAgICAgIHNlbGYuX3JlZnRlc3RfZHJpdmVyLnN0b3AoKQorICAgICAgICBmb3Ig
ZHJpdmVyIGluIHNlbGYuX3J1bm5pbmdfZHJpdmVycy52YWx1ZXMoKToKKyAgICAgICAgICAgIGRy
aXZlci5zdG9wKCkKIAotICAgIGRlZiBjbWRfbGluZShzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rl
c3RfYXJncyk6Ci0gICAgICAgIGNtZF9saW5lID0gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBpeGVs
X3Rlc3RzLCBwZXJfdGVzdF9hcmdzKQotICAgICAgICBpZiBzZWxmLl9kcml2ZXIgIT0gc2VsZi5f
cmVmdGVzdF9kcml2ZXI6Ci0gICAgICAgICAgICBjbWRfbGluZSArPSBbJzsgJ10gKyBzZWxmLl9y
ZWZ0ZXN0X2RyaXZlci5jbWRfbGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncykKLSAgICAg
ICAgcmV0dXJuIGNtZF9saW5lCisgICAgZGVmIGNtZF9saW5lKHNlbGYsIHBpeGVsX3Rlc3RzPU5v
bmUsIHBlcl90ZXN0X2FyZ3M9Tm9uZSk6CisgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXIuY21k
X2xpbmUocGl4ZWxfdGVzdHMgb3Igc2VsZi5fcGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3Mgb3Ig
W10pCisKKyAgICBkZWYgX2NtZF9saW5lX2FzX2tleShzZWxmLCBwaXhlbF90ZXN0cywgcGVyX3Rl
c3RfYXJncyk6CisgICAgICAgIHJldHVybiAnICcuam9pbihzZWxmLmNtZF9saW5lKHBpeGVsX3Rl
c3RzLCBwZXJfdGVzdF9hcmdzKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129491</attachid>
            <date>2012-02-29 12:48:31 -0800</date>
            <delta_ts>2012-02-29 14:39:54 -0800</delta_ts>
            <desc>fix bad merge in webkit.py - driver_input.args doesn&apos;t exist yet</desc>
            <filename>bug-79736-20120229124830.patch</filename>
            <type>text/plain</type>
            <size>5512</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MjQ0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTU2MjFkODMyMjA5NDZlNWFhNjg5ZDU1NDlkNzViNzIx
OGExYTkzNS4uYTAwZDFiZjI5NWEyZDAyYmJhOGM1NDEwYmE0YTE3YzkxYTA5M2MxMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDEyLTAyLTI5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG5yd3Q6IHN1cHBvcnQgbW9yZSB0aGFuIHR3byBkcml2ZXJzIGluIERyaXZlclByb3h5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTczNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0
IHdlIGNhbiBzdXBwb3J0IHBlci10ZXN0IGNvbW1hbmQgbGluZXMgZm9yCisgICAgICAgIERyaXZl
cnMsIG1vZGlmeSBEcml2ZXJQcm94eSB0byBrZWVwIGEgbWFwIG9mIHJ1bm5pbmcKKyAgICAgICAg
ZHJpdmVycyBmb3IgZWFjaCBuZWVkZWQgY29tbWFuZC1saW5lOyB0aGlzIHdpbGwgYWxsb3cKKyAg
ICAgICAgdXMgdG8gdHJhbnNwYXJlbnRseSBtYWludGFpbiBhIHBvb2wgb2YgYXBwcm9wcmlhdGVs
eQorICAgICAgICBjb25maWd1cmVkIERSVHMgd2l0aG91dCBoYXZpbmcgdG8gY29uc3RhbnRseSBz
dGFydCBhbmQgc3RvcAorICAgICAgICB0aGVtLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBv
dGVudGlhbGx5IHJhaXNlcyBhIGdhcmJhZ2UgY29sbGVjdGlvbgorICAgICAgICBwcm9ibGVtIC0g
dGhlIG51bWJlciBvZiBydW5uaW5nIERSVHMgd2lsbCBncm93IHdpdGggdGhlCisgICAgICAgIG51
bWJlciBvZiBkaWZmZXJlbnQgc2V0cyBvZiBjb21tYW5kIGxpbmUgYXJncy4gRm9yIG5vdworICAg
ICAgICB0aGlzIGlzIG5vIHdvcnNlIHRoYW4gdGhlIGN1cnJlbnQgY29kZSAtIGlmIHlvdSdyZSBy
dW5uaW5nCisgICAgICAgIHdpdGggcGl4ZWwgdGVzdHMsIHlvdSB3aWxsIG9ubHkgbmVlZCBvbmUg
RFJUIHBlciB3b3JrZXIsCisgICAgICAgIGFuZCBpZiB5b3UgYXJlbid0LCB5b3UnbGwgbmVlZCB0
d28gKG9uZSBmb3IgdGV4dC1vbmx5IHRlc3RzLAorICAgICAgICBhbmQgb25lIGZvciByZWZ0ZXN0
cykuCisKKyAgICAgICAgQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gb25seSBldmVyIGhhdmUg
b25lIHJ1bm5pbmcgZHJpdmVyLAorICAgICAgICBhbmQgcmVzdGFydCB0aGUgZHJpdmVyIGFzIHRo
ZSBjb21tYW5kIGxpbmUgY2hhbmdlcywgYnV0IHRoaXMKKyAgICAgICAgbWlnaHQgKD8pIHNsb3cg
ZG93biBleGVjdXRpb24gaW4gdGhlIHRleHQtb25seSBjYXNlIC0gd2UKKyAgICAgICAgc2hvdWxk
IGJlbmNobWFyayB0aGlzIGJlY2F1c2UgaXQgd291bGQgYmUgc2ltcGxlciBhbmQgcG9zc2libHkK
KyAgICAgICAgYWxsb3cgdXMgdG8gZWxpbWluYXRlIERyaXZlclByb3h5IGFsdG9nZXRoZXIuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weToK
KyAgICAgICAgKERyaXZlclByb3h5Ll9faW5pdF9fKToKKyAgICAgICAgKERyaXZlclByb3h5KToK
KyAgICAgICAgKERyaXZlclByb3h5Ll9tYWtlX2RyaXZlcik6CisgICAgICAgIChEcml2ZXJQcm94
eS5ydW5fdGVzdCk6CisgICAgICAgIChEcml2ZXJQcm94eS5oYXNfY3Jhc2hlZCk6CisgICAgICAg
IChEcml2ZXJQcm94eS5zdG9wKToKKyAgICAgICAgKERyaXZlclByb3h5LmNtZF9saW5lKToKKyAg
ICAgICAgKERyaXZlclByb3h5Ll9jbWRfbGluZV9hc19rZXkpOgorCiAyMDEyLTAyLTI5ICBHcmVn
IEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIHRlc3Rz
IGZvciB3ZWIgaW50ZW50cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2RyaXZlci5weQppbmRleCA0NzVjYzJlNGY4M2FmMzNkZjk0MjE1NmMzNjU5NTVj
MDg5MTg1OWMwLi5hZWU2ZWQ2NDUxZjI5MWRiMmMzYjUwODE0ZGZmODc5OWM4OGFiNDIyIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5w
eQpAQCAtMTU2LDkgKzE1Niw2IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgIGRlZiBoYXNf
Y3Jhc2hlZChzZWxmKToKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgc3RhcnQoc2Vs
Zik6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ0RyaXZlci5zdGFydCcpCi0K
ICAgICBkZWYgc3RvcChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcign
RHJpdmVyLnN0b3AnKQogCkBAIC0xNzIsMTIgKzE2OSwxOCBAQCBjbGFzcyBEcml2ZXJQcm94eShv
YmplY3QpOgogICAgIHNpbmdsZSBkcml2ZXIuIiIiCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydCwgd29ya2VyX251bWJlciwgZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yLCBwaXhlbF90
ZXN0cywgbm9fdGltZW91dCk6CisgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CisgICAgICAgIHNl
bGYuX3dvcmtlcl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCisgICAgICAgIHNlbGYuX2RyaXZlcl9p
bnN0YW5jZV9jb25zdHJ1Y3RvciA9IGRyaXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3RvcgorICAgICAg
ICBzZWxmLl9ub190aW1lb3V0ID0gbm9fdGltZW91dAogICAgICAgICBzZWxmLl9waXhlbF90ZXN0
cyA9IHBpeGVsX3Rlc3RzCi0gICAgICAgIHNlbGYuX2RyaXZlciA9IGRyaXZlcl9pbnN0YW5jZV9j
b25zdHJ1Y3Rvcihwb3J0LCB3b3JrZXJfbnVtYmVyLCBwaXhlbF90ZXN0cywgbm9fdGltZW91dCkK
LSAgICAgICAgaWYgcGl4ZWxfdGVzdHM6Ci0gICAgICAgICAgICBzZWxmLl9yZWZ0ZXN0X2RyaXZl
ciA9IHNlbGYuX2RyaXZlcgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fcmVmdGVz
dF9kcml2ZXIgPSBkcml2ZXJfaW5zdGFuY2VfY29uc3RydWN0b3IocG9ydCwgd29ya2VyX251bWJl
ciwgVHJ1ZSwgbm9fdGltZW91dCkKKworICAgICAgICBzZWxmLl9kcml2ZXIgPSBzZWxmLl9tYWtl
X2RyaXZlcihwaXhlbF90ZXN0cykKKyAgICAgICAgc2VsZi5fcnVubmluZ19kcml2ZXJzID0ge30K
KyAgICAgICAgc2VsZi5fcnVubmluZ19kcml2ZXJzW3NlbGYuX2NtZF9saW5lX2FzX2tleShwaXhl
bF90ZXN0cywgW10pXSA9IHNlbGYuX2RyaXZlcgorCisgICAgZGVmIF9tYWtlX2RyaXZlcihzZWxm
LCBwaXhlbF90ZXN0cyk6CisgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXJfaW5zdGFuY2VfY29u
c3RydWN0b3Ioc2VsZi5fcG9ydCwgc2VsZi5fd29ya2VyX251bWJlciwgcGl4ZWxfdGVzdHMsIHNl
bGYuX25vX3RpbWVvdXQpCiAKICAgICBkZWYgaXNfaHR0cF90ZXN0KHNlbGYsIHRlc3RfbmFtZSk6
CiAgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXIuaXNfaHR0cF90ZXN0KHRlc3RfbmFtZSkKQEAg
LTE4OSwxMiArMTkyLDEyIEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiBzZWxmLl9kcml2ZXIudXJpX3RvX3Rlc3QodXJpKQogCiAgICAgZGVmIHJ1bl90ZXN0KHNl
bGYsIGRyaXZlcl9pbnB1dCk6Ci0gICAgICAgIGlmIGRyaXZlcl9pbnB1dC5pc19yZWZ0ZXN0Ogot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JlZnRlc3RfZHJpdmVyLnJ1bl90ZXN0KGRyaXZlcl9p
bnB1dCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5ydW5fdGVzdChkcml2ZXJfaW5wdXQp
CisgICAgICAgIHBpeGVsX3Rlc3RzX25lZWRlZCA9IHNlbGYuX3BpeGVsX3Rlc3RzIG9yIGRyaXZl
cl9pbnB1dC5pc19yZWZ0ZXN0CisgICAgICAgIGNtZF9saW5lX2tleSA9IHNlbGYuX2NtZF9saW5l
X2FzX2tleShwaXhlbF90ZXN0c19uZWVkZWQsIFtdKQorICAgICAgICBpZiBub3QgY21kX2xpbmVf
a2V5IGluIHNlbGYuX3J1bm5pbmdfZHJpdmVyczoKKyAgICAgICAgICAgIHNlbGYuX3J1bm5pbmdf
ZHJpdmVyc1tjbWRfbGluZV9rZXldID0gc2VsZi5fbWFrZV9kcml2ZXIocGl4ZWxfdGVzdHNfbmVl
ZGVkKQogCi0gICAgZGVmIGhhc19jcmFzaGVkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5f
ZHJpdmVyLmhhc19jcmFzaGVkKCkgb3Igc2VsZi5fcmVmdGVzdF9kcml2ZXIuaGFzX2NyYXNoZWQo
KQorICAgICAgICByZXR1cm4gc2VsZi5fcnVubmluZ19kcml2ZXJzW2NtZF9saW5lX2tleV0ucnVu
X3Rlc3QoZHJpdmVyX2lucHV0KQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgogICAgICAgICAjIEZJ
WE1FOiBDYWxsZXJzIHNob3VsZG4ndCBub3JtYWxseSBjYWxsIHRoaXMsIHNpbmNlIHRoaXMgcm91
dGluZQpAQCAtMjA2LDEyICsyMDksMTUgQEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKICAg
ICAgICAgIyBpbnRvIHJ1bl90ZXN0KCkgZGlyZWN0bHkuCiAgICAgICAgIHNlbGYuX2RyaXZlci5z
dGFydChzZWxmLl9waXhlbF90ZXN0cywgW10pCiAKKyAgICBkZWYgaGFzX2NyYXNoZWQoc2VsZik6
CisgICAgICAgIHJldHVybiBhbnkoZHJpdmVyLmhhc19jcmFzaGVkKCkgZm9yIGRyaXZlciBpbiBz
ZWxmLl9ydW5uaW5nX2RyaXZlcnMudmFsdWVzKCkpCisKICAgICBkZWYgc3RvcChzZWxmKToKLSAg
ICAgICAgc2VsZi5fZHJpdmVyLnN0b3AoKQotICAgICAgICBzZWxmLl9yZWZ0ZXN0X2RyaXZlci5z
dG9wKCkKKyAgICAgICAgZm9yIGRyaXZlciBpbiBzZWxmLl9ydW5uaW5nX2RyaXZlcnMudmFsdWVz
KCk6CisgICAgICAgICAgICBkcml2ZXIuc3RvcCgpCiAKLSAgICBkZWYgY21kX2xpbmUoc2VsZiwg
cGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgotICAgICAgICBjbWRfbGluZSA9IHNlbGYuX2Ry
aXZlci5jbWRfbGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncykKLSAgICAgICAgaWYgc2Vs
Zi5fZHJpdmVyICE9IHNlbGYuX3JlZnRlc3RfZHJpdmVyOgotICAgICAgICAgICAgY21kX2xpbmUg
Kz0gWyc7ICddICsgc2VsZi5fcmVmdGVzdF9kcml2ZXIuY21kX2xpbmUocGl4ZWxfdGVzdHMsIHBl
cl90ZXN0X2FyZ3MpCi0gICAgICAgIHJldHVybiBjbWRfbGluZQorICAgIGRlZiBjbWRfbGluZShz
ZWxmLCBwaXhlbF90ZXN0cz1Ob25lLCBwZXJfdGVzdF9hcmdzPU5vbmUpOgorICAgICAgICByZXR1
cm4gc2VsZi5fZHJpdmVyLmNtZF9saW5lKHBpeGVsX3Rlc3RzIG9yIHNlbGYuX3BpeGVsX3Rlc3Rz
LCBwZXJfdGVzdF9hcmdzIG9yIFtdKQorCisgICAgZGVmIF9jbWRfbGluZV9hc19rZXkoc2VsZiwg
cGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgorICAgICAgICByZXR1cm4gJyAnLmpvaW4oc2Vs
Zi5jbWRfbGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncykpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129522</attachid>
            <date>2012-02-29 14:39:58 -0800</date>
            <delta_ts>2012-03-20 00:52:49 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-79736-20120229143957.patch</filename>
            <type>text/plain</type>
            <size>5747</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MjYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDUwODhhZjUyZWRhMjY0ZTQ4MTk3YTMwMWU4NGIwNTM4
ZmQ1MTk0NS4uNzA5ZmM3N2Q3NDI5NGZlZTk5MjE4NWI0YTQxODMzMGVhNjgyNzhhYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDEyLTAyLTI5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG5yd3Q6IHN1cHBvcnQgbW9yZSB0aGFuIHR3byBkcml2ZXJzIGluIERyaXZlclByb3h5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTczNgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgTm93IHRoYXQgd2Ug
Y2FuIHN1cHBvcnQgcGVyLXRlc3QgY29tbWFuZCBsaW5lcyBmb3IKKyAgICAgICAgRHJpdmVycywg
bW9kaWZ5IERyaXZlclByb3h5IHRvIGtlZXAgYSBtYXAgb2YgcnVubmluZworICAgICAgICBkcml2
ZXJzIGZvciBlYWNoIG5lZWRlZCBjb21tYW5kLWxpbmU7IHRoaXMgd2lsbCBhbGxvdworICAgICAg
ICB1cyB0byB0cmFuc3BhcmVudGx5IG1haW50YWluIGEgcG9vbCBvZiBhcHByb3ByaWF0ZWx5Cisg
ICAgICAgIGNvbmZpZ3VyZWQgRFJUcyB3aXRob3V0IGhhdmluZyB0byBjb25zdGFudGx5IHN0YXJ0
IGFuZCBzdG9wCisgICAgICAgIHRoZW0uCisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgcG90ZW50
aWFsbHkgcmFpc2VzIGEgZ2FyYmFnZSBjb2xsZWN0aW9uCisgICAgICAgIHByb2JsZW0gLSB0aGUg
bnVtYmVyIG9mIHJ1bm5pbmcgRFJUcyB3aWxsIGdyb3cgd2l0aCB0aGUKKyAgICAgICAgbnVtYmVy
IG9mIGRpZmZlcmVudCBzZXRzIG9mIGNvbW1hbmQgbGluZSBhcmdzLiBGb3Igbm93CisgICAgICAg
IHRoaXMgaXMgbm8gd29yc2UgdGhhbiB0aGUgY3VycmVudCBjb2RlIC0gaWYgeW91J3JlIHJ1bm5p
bmcKKyAgICAgICAgd2l0aCBwaXhlbCB0ZXN0cywgeW91IHdpbGwgb25seSBuZWVkIG9uZSBEUlQg
cGVyIHdvcmtlciwKKyAgICAgICAgYW5kIGlmIHlvdSBhcmVuJ3QsIHlvdSdsbCBuZWVkIHR3byAo
b25lIGZvciB0ZXh0LW9ubHkgdGVzdHMsCisgICAgICAgIGFuZCBvbmUgZm9yIHJlZnRlc3RzKS4K
KworICAgICAgICBBbiBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBvbmx5IGV2ZXIgaGF2ZSBvbmUg
cnVubmluZyBkcml2ZXIsCisgICAgICAgIGFuZCByZXN0YXJ0IHRoZSBkcml2ZXIgYXMgdGhlIGNv
bW1hbmQgbGluZSBjaGFuZ2VzLCBidXQgdGhpcworICAgICAgICBtaWdodCAoPykgc2xvdyBkb3du
IGV4ZWN1dGlvbiBpbiB0aGUgdGV4dC1vbmx5IGNhc2UgLSB3ZQorICAgICAgICBzaG91bGQgYmVu
Y2htYXJrIHRoaXMgYmVjYXVzZSBpdCB3b3VsZCBiZSBzaW1wbGVyIGFuZCBwb3NzaWJseQorICAg
ICAgICBhbGxvdyB1cyB0byBlbGltaW5hdGUgRHJpdmVyUHJveHkgYWx0b2dldGhlci4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5OgorICAg
ICAgICAoRHJpdmVyUHJveHkuX19pbml0X18pOgorICAgICAgICAoRHJpdmVyUHJveHkpOgorICAg
ICAgICAoRHJpdmVyUHJveHkuX21ha2VfZHJpdmVyKToKKyAgICAgICAgKERyaXZlclByb3h5LnJ1
bl90ZXN0KToKKyAgICAgICAgKERyaXZlclByb3h5Lmhhc19jcmFzaGVkKToKKyAgICAgICAgKERy
aXZlclByb3h5LnN0b3ApOgorICAgICAgICAoRHJpdmVyUHJveHkuY21kX2xpbmUpOgorICAgICAg
ICAoRHJpdmVyUHJveHkuX2NtZF9saW5lX2FzX2tleSk6CisKIDIwMTItMDItMjkgIEFkcmllbm5l
IFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhZGQgbXlz
ZWxmIGFzIGEgcmV2aWV3ZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9kcml2ZXIucHkKaW5kZXggNDc1Y2MyZTRmODNhZjMzZGY5NDIxNTZjMzY1OTU1
YzA4OTE4NTljMC4uNDU0Mzc2NjI2MTljODg4NThlZDdkYTk3NmVkM2U5ZDI2M2RkMGI5YyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIu
cHkKQEAgLTE3MiwyOSArMTcyLDM5IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAg
c2luZ2xlIGRyaXZlci4iIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCB3b3JrZXJf
bnVtYmVyLCBkcml2ZXJfaW5zdGFuY2VfY29uc3RydWN0b3IsIHBpeGVsX3Rlc3RzLCBub190aW1l
b3V0KToKKyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5fd29ya2VyX251
bWJlciA9IHdvcmtlcl9udW1iZXIKKyAgICAgICAgc2VsZi5fZHJpdmVyX2luc3RhbmNlX2NvbnN0
cnVjdG9yID0gZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yCisgICAgICAgIHNlbGYuX25vX3Rp
bWVvdXQgPSBub190aW1lb3V0CiAgICAgICAgIHNlbGYuX3BpeGVsX3Rlc3RzID0gcGl4ZWxfdGVz
dHMKLSAgICAgICAgc2VsZi5fZHJpdmVyID0gZHJpdmVyX2luc3RhbmNlX2NvbnN0cnVjdG9yKHBv
cnQsIHdvcmtlcl9udW1iZXIsIHBpeGVsX3Rlc3RzLCBub190aW1lb3V0KQotICAgICAgICBpZiBw
aXhlbF90ZXN0czoKLSAgICAgICAgICAgIHNlbGYuX3JlZnRlc3RfZHJpdmVyID0gc2VsZi5fZHJp
dmVyCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9yZWZ0ZXN0X2RyaXZlciA9IGRy
aXZlcl9pbnN0YW5jZV9jb25zdHJ1Y3Rvcihwb3J0LCB3b3JrZXJfbnVtYmVyLCBUcnVlLCBub190
aW1lb3V0KQogCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCBuZWVkIHRvIGNyZWF0ZSBh
IGRyaXZlciB1bnRpbCB3ZSBhY3R1YWxseSBydW4gYSB0ZXN0LgorICAgICAgICBzZWxmLl9kcml2
ZXIgPSBzZWxmLl9tYWtlX2RyaXZlcihwaXhlbF90ZXN0cykKKyAgICAgICAgc2VsZi5fcnVubmlu
Z19kcml2ZXJzID0ge30KKyAgICAgICAgc2VsZi5fcnVubmluZ19kcml2ZXJzW3NlbGYuX2NtZF9s
aW5lX2FzX2tleShwaXhlbF90ZXN0cywgW10pXSA9IHNlbGYuX2RyaXZlcgorCisgICAgZGVmIF9t
YWtlX2RyaXZlcihzZWxmLCBwaXhlbF90ZXN0cyk6CisgICAgICAgIHJldHVybiBzZWxmLl9kcml2
ZXJfaW5zdGFuY2VfY29uc3RydWN0b3Ioc2VsZi5fcG9ydCwgc2VsZi5fd29ya2VyX251bWJlciwg
cGl4ZWxfdGVzdHMsIHNlbGYuX25vX3RpbWVvdXQpCisKKyAgICAjIEZJWE1FOiB0aGlzIHNob3Vs
ZCBiZSBhIEBjbGFzc21ldGhvZCAob3IgaW1wbGVtZW50ZWQgb24gUG9ydCBpbnN0ZWFkKS4KICAg
ICBkZWYgaXNfaHR0cF90ZXN0KHNlbGYsIHRlc3RfbmFtZSk6CiAgICAgICAgIHJldHVybiBzZWxm
Ll9kcml2ZXIuaXNfaHR0cF90ZXN0KHRlc3RfbmFtZSkKIAorICAgICMgRklYTUU6IHRoaXMgc2hv
dWxkIGJlIGEgQGNsYXNzbWV0aG9kIChvciBpbXBsZW1lbnRlZCBvbiBQb3J0IGluc3RlYWQpLgog
ICAgIGRlZiB0ZXN0X3RvX3VyaShzZWxmLCB0ZXN0X25hbWUpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5fZHJpdmVyLnRlc3RfdG9fdXJpKHRlc3RfbmFtZSkKIAorICAgICMgRklYTUU6IHRoaXMgc2hv
dWxkIGJlIGEgQGNsYXNzbWV0aG9kIChvciBpbXBsZW1lbnRlZCBvbiBQb3J0IGluc3RlYWQpLgog
ICAgIGRlZiB1cmlfdG9fdGVzdChzZWxmLCB1cmkpOgogICAgICAgICByZXR1cm4gc2VsZi5fZHJp
dmVyLnVyaV90b190ZXN0KHVyaSkKIAogICAgIGRlZiBydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5w
dXQpOgotICAgICAgICBpZiBkcml2ZXJfaW5wdXQuaXNfcmVmdGVzdDoKLSAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9yZWZ0ZXN0X2RyaXZlci5ydW5fdGVzdChkcml2ZXJfaW5wdXQpCi0gICAgICAg
IHJldHVybiBzZWxmLl9kcml2ZXIucnVuX3Rlc3QoZHJpdmVyX2lucHV0KQorICAgICAgICBwaXhl
bF90ZXN0c19uZWVkZWQgPSBzZWxmLl9waXhlbF90ZXN0cyBvciBkcml2ZXJfaW5wdXQuaXNfcmVm
dGVzdAorICAgICAgICBjbWRfbGluZV9rZXkgPSBzZWxmLl9jbWRfbGluZV9hc19rZXkocGl4ZWxf
dGVzdHNfbmVlZGVkLCBbXSkKKyAgICAgICAgaWYgbm90IGNtZF9saW5lX2tleSBpbiBzZWxmLl9y
dW5uaW5nX2RyaXZlcnM6CisgICAgICAgICAgICBzZWxmLl9ydW5uaW5nX2RyaXZlcnNbY21kX2xp
bmVfa2V5XSA9IHNlbGYuX21ha2VfZHJpdmVyKHBpeGVsX3Rlc3RzX25lZWRlZCkKIAotICAgIGRl
ZiBoYXNfY3Jhc2hlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5oYXNfY3Jh
c2hlZCgpIG9yIHNlbGYuX3JlZnRlc3RfZHJpdmVyLmhhc19jcmFzaGVkKCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bm5pbmdfZHJpdmVyc1tjbWRfbGluZV9rZXldLnJ1bl90ZXN0KGRyaXZlcl9p
bnB1dCkKIAogICAgIGRlZiBzdGFydChzZWxmKToKICAgICAgICAgIyBGSVhNRTogQ2FsbGVycyBz
aG91bGRuJ3Qgbm9ybWFsbHkgY2FsbCB0aGlzLCBzaW5jZSB0aGlzIHJvdXRpbmUKQEAgLTIwNiwx
MiArMjE2LDE2IEBAIGNsYXNzIERyaXZlclByb3h5KG9iamVjdCk6CiAgICAgICAgICMgaW50byBy
dW5fdGVzdCgpIGRpcmVjdGx5LgogICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoc2VsZi5fcGl4
ZWxfdGVzdHMsIFtdKQogCisgICAgZGVmIGhhc19jcmFzaGVkKHNlbGYpOgorICAgICAgICByZXR1
cm4gYW55KGRyaXZlci5oYXNfY3Jhc2hlZCgpIGZvciBkcml2ZXIgaW4gc2VsZi5fcnVubmluZ19k
cml2ZXJzLnZhbHVlcygpKQorCiAgICAgZGVmIHN0b3Aoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Ry
aXZlci5zdG9wKCkKLSAgICAgICAgc2VsZi5fcmVmdGVzdF9kcml2ZXIuc3RvcCgpCisgICAgICAg
IGZvciBkcml2ZXIgaW4gc2VsZi5fcnVubmluZ19kcml2ZXJzLnZhbHVlcygpOgorICAgICAgICAg
ICAgZHJpdmVyLnN0b3AoKQogCi0gICAgZGVmIGNtZF9saW5lKHNlbGYsIHBpeGVsX3Rlc3RzLCBw
ZXJfdGVzdF9hcmdzKToKLSAgICAgICAgY21kX2xpbmUgPSBzZWxmLl9kcml2ZXIuY21kX2xpbmUo
cGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpCi0gICAgICAgIGlmIHNlbGYuX2RyaXZlciAhPSBz
ZWxmLl9yZWZ0ZXN0X2RyaXZlcjoKLSAgICAgICAgICAgIGNtZF9saW5lICs9IFsnOyAnXSArIHNl
bGYuX3JlZnRlc3RfZHJpdmVyLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKQot
ICAgICAgICByZXR1cm4gY21kX2xpbmUKKyAgICAjIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBhIEBj
bGFzc21ldGhvZCAob3IgaW1wbGVtZW50ZWQgb24gUG9ydCBpbnN0ZWFkKS4KKyAgICBkZWYgY21k
X2xpbmUoc2VsZiwgcGl4ZWxfdGVzdHM9Tm9uZSwgcGVyX3Rlc3RfYXJncz1Ob25lKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2RyaXZlci5jbWRfbGluZShwaXhlbF90ZXN0cyBvciBzZWxmLl9waXhl
bF90ZXN0cywgcGVyX3Rlc3RfYXJncyBvciBbXSkKKworICAgIGRlZiBfY21kX2xpbmVfYXNfa2V5
KHNlbGYsIHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKToKKyAgICAgICAgcmV0dXJuICcgJy5q
b2luKHNlbGYuY21kX2xpbmUocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>