<?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>31544</bug_id>
          
          <creation_ts>2009-11-16 04:18:21 -0800</creation_ts>
          <short_desc>Move StyleQueue over to using PatchCollection</short_desc>
          <delta_ts>2009-11-16 08:46:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>163937</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-16 04:18:21 -0800</bug_when>
    <thetext>That&apos;s what infrastructure is for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163938</commentid>
    <comment_count>1</comment_count>
      <attachid>43291</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-16 04:19:20 -0800</bug_when>
    <thetext>Created attachment 43291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163939</commentid>
    <comment_count>2</comment_count>
      <attachid>43292</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-16 04:20:37 -0800</bug_when>
    <thetext>Created attachment 43292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163941</commentid>
    <comment_count>3</comment_count>
      <attachid>43292</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-16 04:26:10 -0800</bug_when>
    <thetext>Comment on attachment 43292
Patch

I think add_all should be add_patches
add() doens&apos;t need to exist.

The tests will need to update names if you do that.

There is likely some super-slick python way to do this, by implementing the right bits to be a sequence type, but that&apos;s more python than I know.  I&apos;ll CC some python folks though and they can give post-landing comments if they choose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163943</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-16 04:29:43 -0800</bug_when>
    <thetext>	M	WebKitTools/ChangeLog
	M	WebKitTools/Scripts/bugzilla-tool
	M	WebKitTools/Scripts/modules/patchcollection.py
	M	WebKitTools/Scripts/modules/patchcollection_unittest.py
Committed r51030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164003</commentid>
    <comment_count>5</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-11-16 08:46:00 -0800</bug_when>
    <thetext>Not quite sure what you&apos;re asking, but if it&apos;s about add vs add_all, you can do something like


def add(self, *patches):
  use patches like an array


foobar.add(somepatch)       # works, passes a one-length array
foobar.add(patch1, patch2)  # also works
foobar.add(*patches)        # can also pass arrays


so you&apos;d have stuff like

+    def add_all_from_bug(self, bug_id):
+        self.add_all(self._bugs.fetch_patches_from_bug(bug_id))
instead be
def add_from_bug(self, bug_id):
  self.add(*self._bugs.fetch_patches_from_bug(bug_id))</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43291</attachid>
            <date>2009-11-16 04:19:20 -0800</date>
            <delta_ts>2009-11-16 04:20:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-31544-20091116041918.patch</filename>
            <type>text/plain</type>
            <size>8008</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiZjJkZjEyLi45YTc2N2NhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMDktMTEt
MTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFN0eWxlUXVldWUgb3ZlciB0byB1c2lu
ZyBQYXRjaENvbGxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMxNTQ0CisKKyAgICAgICAgVGhhdCdzIHdoYXQgdGhlIGNsYXNzIGlmIGZvci4K
KworICAgICAgICAqIFNjcmlwdHMvYnVnemlsbGEtdG9vbDoKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvcGF0Y2hjb2xsZWN0aW9uLnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9wYXRj
aGNvbGxlY3Rpb25fdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy9tb2R1bGVzL3dvcmtx
dWV1ZS5weToKKworMjAwOS0xMS0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgor
CiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgogCiAgICAgICAgIEltcGxlbWVudCBQ
YXRjaENvbGxlY3Rpb24KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEt
dG9vbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbAppbmRleCBiMzY2OTEwLi43
NThhOTkzIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sCkBAIC00NSw2ICs0NSw3IEBAIGZy
b20gbW9kdWxlcy5idWd6aWxsYSBpbXBvcnQgQnVnemlsbGEsIHBhcnNlX2J1Z19pZAogZnJvbSBt
b2R1bGVzLmNoYW5nZWxvZ3MgaW1wb3J0IENoYW5nZUxvZwogZnJvbSBtb2R1bGVzLmNvbW1lbnRz
IGltcG9ydCBidWdfY29tbWVudF9mcm9tX2NvbW1pdF90ZXh0CiBmcm9tIG1vZHVsZXMubG9nZ2lu
ZyBpbXBvcnQgZXJyb3IsIGxvZywgdGVlCitmcm9tIG1vZHVsZXMucGF0Y2hjb2xsZWN0aW9uIGlt
cG9ydCBQYXRjaENvbGxlY3Rpb24KIGZyb20gbW9kdWxlcy5zY20gaW1wb3J0IENvbW1pdE1lc3Nh
Z2UsIGRldGVjdF9zY21fc3lzdGVtLCBTY3JpcHRFcnJvciwgQ2hlY2tvdXROZWVkc1VwZGF0ZQog
ZnJvbSBtb2R1bGVzLmJ1aWxkYm90IGltcG9ydCBCdWlsZEJvdAogZnJvbSBtb2R1bGVzLnN0YXR1
c2JvdCBpbXBvcnQgU3RhdHVzQm90CkBAIC03NDUsNiArNzQ2LDkgQEAgY2xhc3MgQWJzdHJhY3RR
dWV1ZShDb21tYW5kLCBXb3JrUXVldWVEZWxlZ2F0ZSk6CiAgICAgICAgIGJ1Z3ppbGxhX3Rvb2xf
YXJncyA9IFtidWd6aWxsYV90b29sX3BhdGhdICsgYXJncwogICAgICAgICBXZWJLaXRMYW5kaW5n
U2NyaXB0cy5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVnemlsbGFfdG9vbF9hcmdzKQogCisgICAg
ZGVmIGxvZ19wcm9ncmVzcyhzZWxmLCBwYXRjaF9pZHMpOgorICAgICAgICBsb2coIiVzIGluICVz
IFslc10iICUgKHBsdXJhbGl6ZSgncGF0Y2gnLCBsZW4ocGF0Y2hfaWRzKSksIHNlbGYuX25hbWUs
ICIsICIuam9pbihwYXRjaF9pZHMpKSkKKwogICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMs
IGFyZ3MsIHRvb2wpOgogICAgICAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIHNl
bGYudG9vbCA9IHRvb2wKQEAgLTc5MSwxNyArNzk1LDE2IEBAIGNsYXNzIENvbW1pdFF1ZXVlKEFi
c3RyYWN0UXVldWUpOgogCiBjbGFzcyBTdHlsZVF1ZXVlKEFic3RyYWN0UXVldWUpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5wYXRjaGVzID0gW10KICAgICAgICAgQWJz
dHJhY3RRdWV1ZS5fX2luaXRfXyhzZWxmLCAic3R5bGUtcXVldWUiKQogCisgICAgZGVmIGJlZ2lu
X3dvcmtfcXVldWUoc2VsZik6CisgICAgICAgIEFic3RyYWN0UXVldWUuYmVnaW5fd29ya19xdWV1
ZShzZWxmKQorICAgICAgICBzZWxmLl9wYXRjaGVzID0gUGF0Y2hDb2xsZWN0aW9uKHNlbGYudG9v
bC5idWdzKQorICAgICAgICBzZWxmLl9wYXRjaGVzLmFkZF9hbGwoc2VsZi50b29sLmJ1Z3MuZmV0
Y2hfcGF0Y2hlc19mcm9tX3Jldmlld19xdWV1ZShsaW1pdD0xMCkpCisKICAgICBkZWYgbmV4dF93
b3JrX2l0ZW0oc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLnBhdGNoZXM6Ci0gICAgICAgICAg
ICBzZWxmLnBhdGNoZXMgPSBzZWxmLnRvb2wuYnVncy5mZXRjaF9wYXRjaGVzX2Zyb21fcmV2aWV3
X3F1ZXVlKGxpbWl0PTEwKQotICAgICAgICAgICAgaWYgbm90IHNlbGYucGF0Y2hlczoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBwYXRjaF9pZHMgPSBtYXAobGFtYmRhIHBh
dGNoOiBwYXRjaFsnaWQnXSwgc2VsZi5wYXRjaGVzKQotICAgICAgICBsb2coIiVzIGluIHJldmll
dyBxdWV1ZSBbJXNdIiAlIChwbHVyYWxpemUoJ3BhdGNoJywgbGVuKHNlbGYucGF0Y2hlcykpLCAi
LCAiLmpvaW4ocGF0Y2hfaWRzKSkpCi0gICAgICAgIHJldHVybiBzZWxmLnBhdGNoZXMucG9wKDAp
CisgICAgICAgIHNlbGYubG9nX3Byb2dyZXNzKHNlbGYuX3BhdGNoZXMucGF0Y2hfaWRzKCkpCisg
ICAgICAgIHJldHVybiBzZWxmLl9wYXRjaGVzLm5leHQoKQogCiAgICAgZGVmIHNob3VsZF9wcm9j
ZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJuIChUcnVlLCAi
Q2hlY2tpbmcgc3R5bGUgZm9yIHBhdGNoICVzIG9uIGJ1ZyAlcy4iICUgKHBhdGNoWydpZCddLCBw
YXRjaFsnYnVnX2lkJ10pLCBwYXRjaFsnYnVnX2lkJ10pCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL21vZHVsZXMvcGF0Y2hjb2xsZWN0aW9uLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy9tb2R1bGVzL3BhdGNoY29sbGVjdGlvbi5weQppbmRleCBmZWU1ZDI0Li45NDFlOTQ4IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvcGF0Y2hjb2xsZWN0aW9uLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9wYXRjaGNvbGxlY3Rpb24ucHkKQEAgLTMz
LDIzICszMywyNyBAQCBjbGFzcyBQYXRjaENvbGxlY3Rpb246CiAgICAgICAgIHNlbGYuX2ZpbHRl
ciA9IGZpbHRlcgogICAgICAgICBzZWxmLl9wYXRjaGVzID0gW10KIAotICAgIGRlZiBhZGQoc2Vs
ZiwgcGF0Y2hfaWQpOgotICAgICAgICBwYXRjaCA9IHNlbGYuX2J1Z3MuZmV0Y2hfYXR0YWNobWVu
dChwYXRjaF9pZCkKLSAgICAgICAgaWYgbm90IHBhdGNoOgotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIGlmIHNlbGYuX2ZpbHRlciBhbmQgbm90IHNlbGYuX2ZpbHRlcihwYXRjaCk6Ci0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5fcGF0Y2hlcy5hcHBlbmQocGF0Y2gpCisgICAg
ZGVmIGFkZChzZWxmLCBwYXRjaCk6CisgICAgICAgIHNlbGYuYWRkX2FsbChbcGF0Y2hdKQogCi0g
ICAgZGVmIGFkZF9hbGxfZnJvbV9idWcoc2VsZiwgYnVnX2lkKToKLSAgICAgICAgcGF0Y2hlcyA9
IHNlbGYuX2J1Z3MuZmV0Y2hfcGF0Y2hlc19mcm9tX2J1ZyhidWdfaWQpCisgICAgZGVmIGFkZF9h
bGwoc2VsZiwgcGF0Y2hlcyk6CiAgICAgICAgIGZvciBwYXRjaCBpbiBwYXRjaGVzOgorICAgICAg
ICAgICAgaWYgbm90IHBhdGNoOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAg
ICBpZiBzZWxmLl9maWx0ZXIgYW5kIG5vdCBzZWxmLl9maWx0ZXIocGF0Y2gpOgogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBzZWxmLl9wYXRjaGVzLmFwcGVuZChwYXRjaCkK
IAorICAgIGRlZiBhZGRfYWxsX2Zyb21fYnVnKHNlbGYsIGJ1Z19pZCk6CisgICAgICAgIHNlbGYu
YWRkX2FsbChzZWxmLl9idWdzLmZldGNoX3BhdGNoZXNfZnJvbV9idWcoYnVnX2lkKSkKKwogICAg
IGRlZiBuZXh0KHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5fcGF0Y2hlczoKKyAgICAgICAg
ICAgIHJldHVybiBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLl9wYXRjaGVzLnBvcCgwKQogCisg
ICAgZGVmIHBhdGNoX2lkcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIG1hcChsYW1iZGEgcGF0Y2g6
IHBhdGNoWydpZCddLCBzZWxmLl9wYXRjaGVzKQorCiAgICAgZGVmIF9fbGVuX18oc2VsZik6CiAg
ICAgICAgIHJldHVybiBsZW4oc2VsZi5fcGF0Y2hlcykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvbW9kdWxlcy9wYXRjaGNvbGxlY3Rpb25fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL21vZHVsZXMvcGF0Y2hjb2xsZWN0aW9uX3VuaXR0ZXN0LnB5CmluZGV4IDg2ZGU4
MWYuLjg3N2Q0MjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9wYXRj
aGNvbGxlY3Rpb25fdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVz
L3BhdGNoY29sbGVjdGlvbl91bml0dGVzdC5weQpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBQYXRj
aENvbGxlY3Rpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgYnVncyA9IE1vY2tC
dWd6aWxsYSgpCiAgICAgICAgIHBhdGNoZXMgPSBQYXRjaENvbGxlY3Rpb24oYnVncywgZmlsdGVy
PXRlc3RfZmlsdGVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXRjaGVzKSwgMCkK
LSAgICAgICAgcGF0Y2hlcy5hZGQoNDIpCisgICAgICAgIHBhdGNoZXMuYWRkKGJ1Z3MuZmV0Y2hf
YXR0YWNobWVudCg0MikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHBhdGNoZXMpLCAx
KQogICAgICAgICBwYXRjaCA9IHBhdGNoZXMubmV4dCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocGF0Y2gsIE1vY2tCdWd6aWxsYS5wYXRjaF8xKQpAQCAtNzksMTAgKzc5LDI4IEBAIGNsYXNz
IFBhdGNoQ29sbGVjdGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBidWdzID0g
TW9ja0VtcHR5QnVnemlsbGEoKQogICAgICAgICBwYXRjaGVzID0gUGF0Y2hDb2xsZWN0aW9uKGJ1
Z3MsIGZpbHRlcj10ZXN0X2ZpbHRlcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGF0
Y2hlcyksIDApCi0gICAgICAgIHBhdGNoZXMuYWRkKDQyKQorICAgICAgICBwYXRjaGVzLmFkZChi
dWdzLmZldGNoX2F0dGFjaG1lbnQoNDIpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihw
YXRjaGVzKSwgMCkKICAgICAgICAgcGF0Y2hlcy5hZGRfYWxsX2Zyb21fYnVnKDM4KQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXRjaGVzKSwgMCkKIAorICAgIGRlZiB0ZXN0X2FkZF9h
bGwoc2VsZik6CisgICAgICAgIHBhdGNoZXMgPSBQYXRjaENvbGxlY3Rpb24oTm9uZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwYXRjaGVzLnBhdGNoX2lkcygpLCBbXSkKKyAgICAgICAgcGF0
Y2hlcy5hZGRfYWxsKFt7J2lkJzogNDJ9LCB7J2lkJzogNzR9XSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4ocGF0Y2hlcyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0Y2hl
cy5wYXRjaF9pZHMoKSwgWzQyLCA3NF0pCisKKyAgICBkZWYgdGVzdF9wYXRjaF9pZHMoc2VsZik6
CisgICAgICAgIHBhdGNoZXMgPSBQYXRjaENvbGxlY3Rpb24oTm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwYXRjaGVzLnBhdGNoX2lkcygpLCBbXSkKKyAgICAgICAgcGF0Y2hlcy5hZGQo
eydpZCc6IDQyfSkKKyAgICAgICAgcGF0Y2hlcy5hZGQoeydpZCc6IDc0fSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwYXRjaGVzLnBhdGNoX2lkcygpLCBbNDIsIDc0XSkKKworICAgIGRlZiB0
ZXN0X2VtcHR5KHNlbGYpOgorICAgICAgICBwYXRjaGVzID0gUGF0Y2hDb2xsZWN0aW9uKE5vbmUp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0Y2hlcy5uZXh0KCksIE5vbmUpCisKIGlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvd29ya3F1ZXVlLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9tb2R1bGVzL3dvcmtxdWV1ZS5weQppbmRleCA1Njk4ZjA1Li40OTI0NWQ4IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvd29ya3F1ZXVlLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvbW9kdWxlcy93b3JrcXVldWUucHkKQEAgLTkwLDIwICs5MCwyMCBAQCBj
bGFzcyBXb3JrUXVldWU6CiAgICAgICAgIHNlbGYuX2RlbGVnYXRlLmJlZ2luX3dvcmtfcXVldWUo
KQogICAgICAgICB3aGlsZSAoc2VsZi5fZGVsZWdhdGUuc2hvdWxkX2NvbnRpbnVlX3dvcmtfcXVl
dWUoKSk6CiAgICAgICAgICAgICBzZWxmLl9lbnN1cmVfd29ya19sb2dfY2xvc2VkKCkKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3b3JrX2l0ZW0gPSBzZWxmLl9kZWxlZ2F0ZS5u
ZXh0X3dvcmtfaXRlbSgpCi0gICAgICAgICAgICAgICAgaWYgbm90IHdvcmtfaXRlbToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1c19hbmRfc2xlZXAoIkVtcHR5IHF1ZXVl
LiIpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgKHNhZmVf
dG9fcHJvY2VlZCwgd2FpdGluZ19tZXNzYWdlLCBidWdfaWQpID0gc2VsZi5fZGVsZWdhdGUuc2hv
dWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0od29ya19pdGVtKQotICAgICAgICAgICAgICAgIGlm
IG5vdCBzYWZlX3RvX3Byb2NlZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9z
dGF0dXNfYW5kX3NsZWVwKHdhaXRpbmdfbWVzc2FnZSwgYnVnX2lnPWJ1Z19pZCkKLSAgICAgICAg
ICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXR1c19ib3QudXBk
YXRlX3N0YXR1cyh3YWl0aW5nX21lc3NhZ2UsIGJ1Z19pZD1idWdfaWQpCi0gICAgICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgICMgRG9uJ3QgdHJ5IHRlbGwgdGhl
IHN0YXR1cyBib3QsIGluIGNhc2UgdGVsbGluZyBpdCBjYXVzZXMgYW4gZXhjZXB0aW9uLgotICAg
ICAgICAgICAgICAgIHNlbGYuX3NsZWVwKCJFeGNlcHRpb24gd2hpbGUgcHJlcGFyaW5nIHF1ZXVl
OiAlcy4iICUgZSkKKyAgICAgICAgICAgICN0cnk6CisgICAgICAgICAgICB3b3JrX2l0ZW0gPSBz
ZWxmLl9kZWxlZ2F0ZS5uZXh0X3dvcmtfaXRlbSgpCisgICAgICAgICAgICBpZiBub3Qgd29ya19p
dGVtOgorICAgICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXNfYW5kX3NsZWVwKCJFbXB0
eSBxdWV1ZS4iKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAoc2FmZV90
b19wcm9jZWVkLCB3YWl0aW5nX21lc3NhZ2UsIGJ1Z19pZCkgPSBzZWxmLl9kZWxlZ2F0ZS5zaG91
bGRfcHJvY2VlZF93aXRoX3dvcmtfaXRlbSh3b3JrX2l0ZW0pCisgICAgICAgICAgICBpZiBub3Qg
c2FmZV90b19wcm9jZWVkOgorICAgICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXNfYW5k
X3NsZWVwKHdhaXRpbmdfbWVzc2FnZSwgYnVnX2lnPWJ1Z19pZCkKICAgICAgICAgICAgICAgICBj
b250aW51ZQorICAgICAgICAgICAgc2VsZi5zdGF0dXNfYm90LnVwZGF0ZV9zdGF0dXMod2FpdGlu
Z19tZXNzYWdlLCBidWdfaWQ9YnVnX2lkKQorICAgICAgICAgICAgI2V4Y2VwdCBFeGNlcHRpb24s
IGU6CisgICAgICAgICAgICAgICAgIyBEb24ndCB0cnkgdGVsbCB0aGUgc3RhdHVzIGJvdCwgaW4g
Y2FzZSB0ZWxsaW5nIGl0IGNhdXNlcyBhbiBleGNlcHRpb24uCisgICAgICAgICAgICAgICAgI3Nl
bGYuX3NsZWVwKCJFeGNlcHRpb24gd2hpbGUgcHJlcGFyaW5nIHF1ZXVlOiAlcy4iICUgZSkKKyAg
ICAgICAgICAgICAgICAjY29udGludWUKIAogICAgICAgICAgICAgc2VsZi5fb3Blbl93b3JrX2xv
ZyhidWdfaWQpCiAgICAgICAgICAgICB0cnk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43292</attachid>
            <date>2009-11-16 04:20:37 -0800</date>
            <delta_ts>2009-11-16 04:26:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-31544-20091116042035.patch</filename>
            <type>text/plain</type>
            <size>5987</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiZjJkZjEyLi5kYjU1NTY4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMDktMTEt
MTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFN0eWxlUXVldWUgb3ZlciB0byB1c2lu
ZyBQYXRjaENvbGxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMxNTQ0CisKKyAgICAgICAgVGhhdCdzIHdoYXQgdGhlIGNsYXNzIGlmIGZvci4K
KworICAgICAgICAqIFNjcmlwdHMvYnVnemlsbGEtdG9vbDoKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvcGF0Y2hjb2xsZWN0aW9uLnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9wYXRj
aGNvbGxlY3Rpb25fdW5pdHRlc3QucHk6CisKKzIwMDktMTEtMTYgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KIAogICAg
ICAgICBJbXBsZW1lbnQgUGF0Y2hDb2xsZWN0aW9uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL2J1Z3ppbGxhLXRvb2wgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wK
aW5kZXggYjM2NjkxMC4uNzU4YTk5MyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9i
dWd6aWxsYS10b29sCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbApAQCAt
NDUsNiArNDUsNyBAQCBmcm9tIG1vZHVsZXMuYnVnemlsbGEgaW1wb3J0IEJ1Z3ppbGxhLCBwYXJz
ZV9idWdfaWQKIGZyb20gbW9kdWxlcy5jaGFuZ2Vsb2dzIGltcG9ydCBDaGFuZ2VMb2cKIGZyb20g
bW9kdWxlcy5jb21tZW50cyBpbXBvcnQgYnVnX2NvbW1lbnRfZnJvbV9jb21taXRfdGV4dAogZnJv
bSBtb2R1bGVzLmxvZ2dpbmcgaW1wb3J0IGVycm9yLCBsb2csIHRlZQorZnJvbSBtb2R1bGVzLnBh
dGNoY29sbGVjdGlvbiBpbXBvcnQgUGF0Y2hDb2xsZWN0aW9uCiBmcm9tIG1vZHVsZXMuc2NtIGlt
cG9ydCBDb21taXRNZXNzYWdlLCBkZXRlY3Rfc2NtX3N5c3RlbSwgU2NyaXB0RXJyb3IsIENoZWNr
b3V0TmVlZHNVcGRhdGUKIGZyb20gbW9kdWxlcy5idWlsZGJvdCBpbXBvcnQgQnVpbGRCb3QKIGZy
b20gbW9kdWxlcy5zdGF0dXNib3QgaW1wb3J0IFN0YXR1c0JvdApAQCAtNzQ1LDYgKzc0Niw5IEBA
IGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgV29ya1F1ZXVlRGVsZWdhdGUpOgogICAgICAg
ICBidWd6aWxsYV90b29sX2FyZ3MgPSBbYnVnemlsbGFfdG9vbF9wYXRoXSArIGFyZ3MKICAgICAg
ICAgV2ViS2l0TGFuZGluZ1NjcmlwdHMucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1Z3ppbGxhX3Rv
b2xfYXJncykKIAorICAgIGRlZiBsb2dfcHJvZ3Jlc3Moc2VsZiwgcGF0Y2hfaWRzKToKKyAgICAg
ICAgbG9nKCIlcyBpbiAlcyBbJXNdIiAlIChwbHVyYWxpemUoJ3BhdGNoJywgbGVuKHBhdGNoX2lk
cykpLCBzZWxmLl9uYW1lLCAiLCAiLmpvaW4ocGF0Y2hfaWRzKSkpCisKICAgICBkZWYgZXhlY3V0
ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0
aW9ucwogICAgICAgICBzZWxmLnRvb2wgPSB0b29sCkBAIC03OTEsMTcgKzc5NSwxNiBAQCBjbGFz
cyBDb21taXRRdWV1ZShBYnN0cmFjdFF1ZXVlKToKIAogY2xhc3MgU3R5bGVRdWV1ZShBYnN0cmFj
dFF1ZXVlKToKICAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYucGF0Y2hlcyA9
IFtdCiAgICAgICAgIEFic3RyYWN0UXVldWUuX19pbml0X18oc2VsZiwgInN0eWxlLXF1ZXVlIikK
IAorICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgorICAgICAgICBBYnN0cmFjdFF1ZXVl
LmJlZ2luX3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAgc2VsZi5fcGF0Y2hlcyA9IFBhdGNoQ29s
bGVjdGlvbihzZWxmLnRvb2wuYnVncykKKyAgICAgICAgc2VsZi5fcGF0Y2hlcy5hZGRfYWxsKHNl
bGYudG9vbC5idWdzLmZldGNoX3BhdGNoZXNfZnJvbV9yZXZpZXdfcXVldWUobGltaXQ9MTApKQor
CiAgICAgZGVmIG5leHRfd29ya19pdGVtKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5wYXRj
aGVzOgotICAgICAgICAgICAgc2VsZi5wYXRjaGVzID0gc2VsZi50b29sLmJ1Z3MuZmV0Y2hfcGF0
Y2hlc19mcm9tX3Jldmlld19xdWV1ZShsaW1pdD0xMCkKLSAgICAgICAgICAgIGlmIG5vdCBzZWxm
LnBhdGNoZXM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcGF0Y2hfaWRz
ID0gbWFwKGxhbWJkYSBwYXRjaDogcGF0Y2hbJ2lkJ10sIHNlbGYucGF0Y2hlcykKLSAgICAgICAg
bG9nKCIlcyBpbiByZXZpZXcgcXVldWUgWyVzXSIgJSAocGx1cmFsaXplKCdwYXRjaCcsIGxlbihz
ZWxmLnBhdGNoZXMpKSwgIiwgIi5qb2luKHBhdGNoX2lkcykpKQotICAgICAgICByZXR1cm4gc2Vs
Zi5wYXRjaGVzLnBvcCgwKQorICAgICAgICBzZWxmLmxvZ19wcm9ncmVzcyhzZWxmLl9wYXRjaGVz
LnBhdGNoX2lkcygpKQorICAgICAgICByZXR1cm4gc2VsZi5fcGF0Y2hlcy5uZXh0KCkKIAogICAg
IGRlZiBzaG91bGRfcHJvY2VlZF93aXRoX3dvcmtfaXRlbShzZWxmLCBwYXRjaCk6CiAgICAgICAg
IHJldHVybiAoVHJ1ZSwgIkNoZWNraW5nIHN0eWxlIGZvciBwYXRjaCAlcyBvbiBidWcgJXMuIiAl
IChwYXRjaFsnaWQnXSwgcGF0Y2hbJ2J1Z19pZCddKSwgcGF0Y2hbJ2J1Z19pZCddKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3BhdGNoY29sbGVjdGlvbi5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9wYXRjaGNvbGxlY3Rpb24ucHkKaW5kZXggZmVlNWQy
NC4uOTQxZTk0OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3BhdGNo
Y29sbGVjdGlvbi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvcGF0Y2hjb2xs
ZWN0aW9uLnB5CkBAIC0zMywyMyArMzMsMjcgQEAgY2xhc3MgUGF0Y2hDb2xsZWN0aW9uOgogICAg
ICAgICBzZWxmLl9maWx0ZXIgPSBmaWx0ZXIKICAgICAgICAgc2VsZi5fcGF0Y2hlcyA9IFtdCiAK
LSAgICBkZWYgYWRkKHNlbGYsIHBhdGNoX2lkKToKLSAgICAgICAgcGF0Y2ggPSBzZWxmLl9idWdz
LmZldGNoX2F0dGFjaG1lbnQocGF0Y2hfaWQpCi0gICAgICAgIGlmIG5vdCBwYXRjaDoKLSAgICAg
ICAgICAgIHJldHVybgotICAgICAgICBpZiBzZWxmLl9maWx0ZXIgYW5kIG5vdCBzZWxmLl9maWx0
ZXIocGF0Y2gpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuX3BhdGNoZXMuYXBw
ZW5kKHBhdGNoKQorICAgIGRlZiBhZGQoc2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLmFkZF9h
bGwoW3BhdGNoXSkKIAotICAgIGRlZiBhZGRfYWxsX2Zyb21fYnVnKHNlbGYsIGJ1Z19pZCk6Ci0g
ICAgICAgIHBhdGNoZXMgPSBzZWxmLl9idWdzLmZldGNoX3BhdGNoZXNfZnJvbV9idWcoYnVnX2lk
KQorICAgIGRlZiBhZGRfYWxsKHNlbGYsIHBhdGNoZXMpOgogICAgICAgICBmb3IgcGF0Y2ggaW4g
cGF0Y2hlczoKKyAgICAgICAgICAgIGlmIG5vdCBwYXRjaDoKKyAgICAgICAgICAgICAgICBjb250
aW51ZQogICAgICAgICAgICAgaWYgc2VsZi5fZmlsdGVyIGFuZCBub3Qgc2VsZi5fZmlsdGVyKHBh
dGNoKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgc2VsZi5fcGF0Y2hl
cy5hcHBlbmQocGF0Y2gpCiAKKyAgICBkZWYgYWRkX2FsbF9mcm9tX2J1ZyhzZWxmLCBidWdfaWQp
OgorICAgICAgICBzZWxmLmFkZF9hbGwoc2VsZi5fYnVncy5mZXRjaF9wYXRjaGVzX2Zyb21fYnVn
KGJ1Z19pZCkpCisKICAgICBkZWYgbmV4dChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuX3Bh
dGNoZXM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5fcGF0
Y2hlcy5wb3AoMCkKIAorICAgIGRlZiBwYXRjaF9pZHMoc2VsZik6CisgICAgICAgIHJldHVybiBt
YXAobGFtYmRhIHBhdGNoOiBwYXRjaFsnaWQnXSwgc2VsZi5fcGF0Y2hlcykKKwogICAgIGRlZiBf
X2xlbl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gbGVuKHNlbGYuX3BhdGNoZXMpCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvcGF0Y2hjb2xsZWN0aW9uX3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3BhdGNoY29sbGVjdGlvbl91bml0dGVz
dC5weQppbmRleCA4NmRlODFmLi44NzdkNDIwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL21vZHVsZXMvcGF0Y2hjb2xsZWN0aW9uX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvbW9kdWxlcy9wYXRjaGNvbGxlY3Rpb25fdW5pdHRlc3QucHkKQEAgLTYwLDcgKzYw
LDcgQEAgY2xhc3MgUGF0Y2hDb2xsZWN0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIGJ1Z3MgPSBNb2NrQnVnemlsbGEoKQogICAgICAgICBwYXRjaGVzID0gUGF0Y2hDb2xsZWN0
aW9uKGJ1Z3MsIGZpbHRlcj10ZXN0X2ZpbHRlcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4ocGF0Y2hlcyksIDApCi0gICAgICAgIHBhdGNoZXMuYWRkKDQyKQorICAgICAgICBwYXRjaGVz
LmFkZChidWdzLmZldGNoX2F0dGFjaG1lbnQoNDIpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihwYXRjaGVzKSwgMSkKICAgICAgICAgcGF0Y2ggPSBwYXRjaGVzLm5leHQoKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBhdGNoLCBNb2NrQnVnemlsbGEucGF0Y2hfMSkKQEAgLTc5LDEw
ICs3OSwyOCBAQCBjbGFzcyBQYXRjaENvbGxlY3Rpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgYnVncyA9IE1vY2tFbXB0eUJ1Z3ppbGxhKCkKICAgICAgICAgcGF0Y2hlcyA9IFBh
dGNoQ29sbGVjdGlvbihidWdzLCBmaWx0ZXI9dGVzdF9maWx0ZXIpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGVuKHBhdGNoZXMpLCAwKQotICAgICAgICBwYXRjaGVzLmFkZCg0MikKKyAgICAg
ICAgcGF0Y2hlcy5hZGQoYnVncy5mZXRjaF9hdHRhY2htZW50KDQyKSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4ocGF0Y2hlcyksIDApCiAgICAgICAgIHBhdGNoZXMuYWRkX2FsbF9mcm9t
X2J1ZygzOCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGF0Y2hlcyksIDApCiAKKyAg
ICBkZWYgdGVzdF9hZGRfYWxsKHNlbGYpOgorICAgICAgICBwYXRjaGVzID0gUGF0Y2hDb2xsZWN0
aW9uKE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0Y2hlcy5wYXRjaF9pZHMoKSwg
W10pCisgICAgICAgIHBhdGNoZXMuYWRkX2FsbChbeydpZCc6IDQyfSwgeydpZCc6IDc0fV0pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHBhdGNoZXMpLCAyKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHBhdGNoZXMucGF0Y2hfaWRzKCksIFs0MiwgNzRdKQorCisgICAgZGVmIHRlc3Rf
cGF0Y2hfaWRzKHNlbGYpOgorICAgICAgICBwYXRjaGVzID0gUGF0Y2hDb2xsZWN0aW9uKE5vbmUp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0Y2hlcy5wYXRjaF9pZHMoKSwgW10pCisgICAg
ICAgIHBhdGNoZXMuYWRkKHsnaWQnOiA0Mn0pCisgICAgICAgIHBhdGNoZXMuYWRkKHsnaWQnOiA3
NH0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0Y2hlcy5wYXRjaF9pZHMoKSwgWzQyLCA3
NF0pCisKKyAgICBkZWYgdGVzdF9lbXB0eShzZWxmKToKKyAgICAgICAgcGF0Y2hlcyA9IFBhdGNo
Q29sbGVjdGlvbihOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhdGNoZXMubmV4dCgp
LCBOb25lKQorCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4o
KQo=
</data>
<flag name="review"
          id="24996"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>