<?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>78550</bug_id>
          
          <creation_ts>2012-02-13 16:40:28 -0800</creation_ts>
          <short_desc>Implement enough of ChromiumAndroidPort to make ChromiumAndroidPortTest pass</short_desc>
          <delta_ts>2012-02-13 17:35:10 -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>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>
          
          <blocked>78524</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>jnd</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555750</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-13 16:40:28 -0800</bug_when>
    <thetext>Implement enough of ChromiumAndroidPort to make ChromiumAndroidPortTest pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555753</commentid>
    <comment_count>1</comment_count>
      <attachid>126865</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-13 16:41:59 -0800</bug_when>
    <thetext>Created attachment 126865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555759</commentid>
    <comment_count>2</comment_count>
      <attachid>126865</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-13 16:47:16 -0800</bug_when>
    <thetext>Comment on attachment 126865
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:154
&gt; +    def _build_path(self, *comps):
&gt; +        return self._host_port._build_path(*comps)
&gt; +
&gt; +    def _path_to_apache(self):
&gt; +        return self._host_port._path_to_apache()
&gt; +
&gt; +    def _path_to_apache_config_file(self):
&gt; +        return self._host_port._path_to_apache_config_file()

I suspect we&apos;ll eventually want some sort of HostedPort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555760</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-13 16:47:58 -0800</bug_when>
    <thetext>&gt; I suspect we&apos;ll eventually want some sort of HostedPort.

Yes, especially if other folks want to cross-compile (e.g., iOS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555762</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-13 16:48:21 -0800</bug_when>
    <thetext>Committed r107637: &lt;http://trac.webkit.org/changeset/107637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555764</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-13 16:50:17 -0800</bug_when>
    <thetext>+ddkilzer so he can see the HostedPort comment. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555766</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-02-13 16:54:01 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=126865&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:94
&gt; +        self._adb_command = [&apos;adb&apos;]

what&apos;s this used for? Did this creep in accidentally?

&gt; Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py:55
&gt; +    default_worker_model = &apos;processes&apos;

Nit: maybe rename this to expected_worker_model to reduce confusion with the port method of the same name and make the purpose clearer?

&gt; Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py:61
&gt; +            host.port_factory = factory.PortFactory(host)

Nit: I don&apos;t feel real warm and fuzzy about the polyfilling of the host object here ... in addition to the general shadiness of it, it might make it easier to write code in the actual port implementations that make it look like we have a full Host and not a SystemHost; I prefer the approach I used in mock_drt.py where we create a PortFactory(host) instead where it is needed.

Then again, I&apos;ve never felt great about the fact that the Host has the port_factory method ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555802</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-13 17:35:10 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126865&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:94
&gt; &gt; +        self._adb_command = [&apos;adb&apos;]
&gt; 
&gt; what&apos;s this used for? Did this creep in accidentally?

It will be used in the next patch.  It&apos;s used to communicate with the device.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py:55
&gt; &gt; +    default_worker_model = &apos;processes&apos;
&gt; 
&gt; Nit: maybe rename this to expected_worker_model to reduce confusion with the port method of the same name and make the purpose clearer?

Will do.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py:61
&gt; &gt; +            host.port_factory = factory.PortFactory(host)
&gt; 
&gt; Nit: I don&apos;t feel real warm and fuzzy about the polyfilling of the host object here ... in addition to the general shadiness of it, it might make it easier to write code in the actual port implementations that make it look like we have a full Host and not a SystemHost; I prefer the approach I used in mock_drt.py where we create a PortFactory(host) instead where it is needed.

Will do.

Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126865</attachid>
            <date>2012-02-13 16:41:59 -0800</date>
            <delta_ts>2012-02-13 16:47:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78550-20120213164208.patch</filename>
            <type>text/plain</type>
            <size>7244</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwNzYzNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDEyLTAyLTEzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgSW1wbGVtZW50IGVub3VnaCBvZiBDaHJvbWl1bUFuZHJvaWRQb3J0IHRvIG1ha2Ug
Q2hyb21pdW1BbmRyb2lkUG9ydFRlc3QgcGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNdWNoIG9mIHRoaXMgY29kZSBqdXN0IGZvcndhcmRzIHRvIHRo
ZSAiaG9zdCIgcG9ydCwgd2hpY2ggc2VlbXMgbGlrZSBhCisgICAgICAgIHJlYXNvbmFibGUgdGhp
bmcgdG8gZG8uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX2FuZHJvaWQucHk6CisgICAgICAgIChDaHJvbWl1bUFuZHJvaWRQb3J0Ll9faW5p
dF9fKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnQuc3RvcF9oZWxwZXIpOgorICAgICAg
ICAoQ2hyb21pdW1BbmRyb2lkUG9ydCk6CisgICAgICAgIChDaHJvbWl1bUFuZHJvaWRQb3J0Ll9i
dWlsZF9wYXRoKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnQuX3BhdGhfdG9fYXBhY2hl
KToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnQuX3BhdGhfdG9fYXBhY2hlX2NvbmZpZ19m
aWxlKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnQuX3BhdGhfdG9fZHJpdmVyKToKKyAg
ICAgICAgKENocm9taXVtQW5kcm9pZFBvcnQuX3BhdGhfdG9faGVscGVyKToKKyAgICAgICAgKENo
cm9taXVtQW5kcm9pZFBvcnQuX3BhdGhfdG9faW1hZ2VfZGlmZik6CisgICAgICAgIChDaHJvbWl1
bUFuZHJvaWRQb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkKToKKyAgICAgICAgKENocm9taXVtQW5kcm9p
ZFBvcnQuX3BhdGhfdG9fbGlnaHR0cGRfbW9kdWxlcyk6CisgICAgICAgIChDaHJvbWl1bUFuZHJv
aWRQb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkX3BocCk6CisgICAgICAgIChDaHJvbWl1bUFuZHJvaWRQ
b3J0Ll9wYXRoX3RvX3dkaWZmKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnQuX3NodXRf
ZG93bl9odHRwX3NlcnZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ2hyb21pdW1B
bmRyb2lkUG9ydFRlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKFBvcnRUZXN0Q2FzZSk6CisgICAgICAg
IChQb3J0VGVzdENhc2UubWFrZV9wb3J0KToKKyAgICAgICAgKFBvcnRUZXN0Q2FzZS50ZXN0X2Rl
ZmF1bHRfd29ya2VyX21vZGVsKToKKwogMjAxMi0wMi0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIGNocm9taXVtX2FuZHJvaWQucHkgc2hvdWxkIGltcGxlbWVu
dCAidmlydHVhbCIgbWV0aG9kcyBmcm9tIENocm9taXVtUG9ydApJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
YW5kcm9pZC5weQkocmV2aXNpb24gMTA3NjM0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkLnB5CSh3b3JraW5nIGNvcHkpCkBAIC04
Miw2ICs4MiwyMCBAQCBjbGFzcyBDaHJvbWl1bUFuZHJvaWRQb3J0KGNocm9taXVtLkNocm9tCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnRfbmFtZSwgKiprd2FyZ3MpOgogICAgICAg
ICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lLCAq
Kmt3YXJncykKIAorICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ2FuZHJvaWQnCisg
ICAgICAgIHNlbGYuX3ZlcnNpb24gPSAnaWNlY3JlYW1zYW5kd2ljaCcKKyAgICAgICAgIyBUT0RP
OiB3ZSBtYXkgc3VwcG9ydCBvdGhlciBhcmNoaXRlY3R1cmVzIGluIHRoZSBmdXR1cmUuCisgICAg
ICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9ICdhcm0nCisgICAgICAgIHNlbGYuX29yaWdpbmFsX2dv
dmVybm9yID0gTm9uZQorICAgICAgICBzZWxmLl9hbmRyb2lkX2Jhc2VfZGlyID0gTm9uZQorCisg
ICAgICAgIHNlbGYuX2hvc3RfcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldCgnY2hyb21pdW0n
LCAqKmt3YXJncykKKworICAgICAgICBzZWxmLl9hZGJfY29tbWFuZCA9IFsnYWRiJ10KKyAgICAg
ICAgYWRiX2FyZ3MgPSBzZWxmLmdldF9vcHRpb24oJ2FkYl9hcmdzJykKKyAgICAgICAgaWYgYWRi
X2FyZ3M6CisgICAgICAgICAgICBzZWxmLl9hZGJfY29tbWFuZCArPSBzaGxleC5zcGxpdChhZGJf
YXJncykKKwogICAgIGRlZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAg
IyBDdXJyZW50bHkgd2Ugb25seSB1c2Ugb25lIHByb2Nlc3MsIGJ1dCBpdCBtaWdodCBiZSBoZWxw
ZnVsIHRvIHVzZQogICAgICAgICAjIG1vcmUgdGhhdCBvbmUgcHJvY2VzcyBpbiB0aGUgZnV0dXJl
IHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuCkBAIC0xMjksMyArMTQzLDM5IEBAIGNsYXNzIENocm9t
aXVtQW5kcm9pZFBvcnQoY2hyb21pdW0uQ2hyb20KICAgICBkZWYgc3RvcF9oZWxwZXIoc2VsZik6
CiAgICAgICAgICMgRklYTUU6IE5vdCBpbXBsZW1lbnRlZCAoeWV0ISkKICAgICAgICAgcGFzcwor
CisgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYsICpjb21wcyk6CisgICAgICAgIHJldHVybiBzZWxm
Ll9ob3N0X3BvcnQuX2J1aWxkX3BhdGgoKmNvbXBzKQorCisgICAgZGVmIF9wYXRoX3RvX2FwYWNo
ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3RfcG9ydC5fcGF0aF90b19hcGFjaGUo
KQorCisgICAgZGVmIF9wYXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZShzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2hvc3RfcG9ydC5fcGF0aF90b19hcGFjaGVfY29uZmlnX2ZpbGUoKQorCisg
ICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmLCBjb25maWd1cmF0aW9uPU5vbmUpOgorICAgICAg
ICAjIFJldHVybnMgdGhlIGhvc3QgcGF0aCB0byBkcml2ZXIgd2hpY2ggd2lsbCBiZSBwdXNoZWQg
dG8gdGhlIGRldmljZS4KKyAgICAgICAgaWYgbm90IGNvbmZpZ3VyYXRpb246CisgICAgICAgICAg
ICBjb25maWd1cmF0aW9uID0gc2VsZi5nZXRfb3B0aW9uKCdjb25maWd1cmF0aW9uJykKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoY29uZmlndXJhdGlvbiwgJ0R1bXBSZW5kZXJUcmVl
JykKKworICAgIGRlZiBfcGF0aF90b19oZWxwZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9idWlsZF9wYXRoKHNlbGYuZ2V0X29wdGlvbignY29uZmlndXJhdGlvbicpLCAnZm9yd2FyZGVy
JykKKworICAgIGRlZiBfcGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5faG9zdF9wb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKQorCisgICAgZGVmIF9wYXRoX3Rv
X2xpZ2h0dHBkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5faG9zdF9wb3J0Ll9wYXRoX3Rv
X2xpZ2h0dHBkKCkKKworICAgIGRlZiBfcGF0aF90b19saWdodHRwZF9tb2R1bGVzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5faG9zdF9wb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkX21vZHVsZXMo
KQorCisgICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkX3BocChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2hvc3RfcG9ydC5fcGF0aF90b19saWdodHRwZF9waHAoKQorCisgICAgZGVmIF9wYXRo
X3RvX3dkaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5faG9zdF9wb3J0Ll9wYXRoX3Rv
X3dkaWZmKCkKKworICAgIGRlZiBfc2h1dF9kb3duX2h0dHBfc2VydmVyKHNlbGYsIHBpZCk6Cisg
ICAgICAgIHJldHVybiBzZWxmLl9ob3N0X3BvcnQuX3NodXRfZG93bl9odHRwX3NlcnZlcihwaWQp
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X2FuZHJvaWRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5CShyZXZpc2lv
biAxMDc2MzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX2FuZHJvaWRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDgg
QEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbQogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgY2hyb21pdW1fYW5kcm9pZAogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQogCi0jIEZJWE1FOiBBZGQg
dGhpcyB0ZXN0IG9uY2UgcnVucy4KLSMgY2xhc3MgQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3QocG9y
dF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgotIyAgICAgcG9ydF9uYW1lID0gJ2Nocm9taXVtLWFu
ZHJvaWQnCi0jICAgICBwb3J0X21ha2VyID0gY2hyb21pdW1fYW5kcm9pZC5DaHJvbWl1bUFuZHJv
aWRQb3J0CisKK2NsYXNzIENocm9taXVtQW5kcm9pZFBvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9y
dFRlc3RDYXNlKToKKyAgICBwb3J0X25hbWUgPSAnY2hyb21pdW0tYW5kcm9pZCcKKyAgICBwb3J0
X21ha2VyID0gY2hyb21pdW1fYW5kcm9pZC5DaHJvbWl1bUFuZHJvaWRQb3J0CisgICAgZGVmYXVs
dF93b3JrZXJfbW9kZWwgPSAnaW5saW5lJwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQkocmV2aXNp
b24gMTA3NTg4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9w
b3J0X3Rlc3RjYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMSArMzQsMTMgQEAgaW1wb3J0
IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCB1bml0dGVzdAogCi1mcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCBodHRwX3NlcnZlcl9iYXNlCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQotZnJvbSB3
ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucwogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9z
dAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycyBpbXBvcnQgaHR0cF9zZXJ2ZXJf
YmFzZQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycyBpbXBvcnQgaHR0cF9zZXJ2
ZXJfYmFzZQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgZmFjdG9yeQor
ZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucwogCiAKIGNsYXNz
IFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC01MCw5ICs1MiwxMyBAQCBjbGFz
cyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIG9zX25hbWUgPSBOb25lCiAg
ICAgb3NfdmVyc2lvbiA9IE5vbmUKICAgICBwb3J0X21ha2VyID0gTm9uZQorICAgIGRlZmF1bHRf
d29ya2VyX21vZGVsID0gJ3Byb2Nlc3NlcycKIAogICAgIGRlZiBtYWtlX3BvcnQoc2VsZiwgaG9z
dD1Ob25lLCBwb3J0X25hbWU9Tm9uZSwgb3B0aW9ucz1Ob25lLCBvc19uYW1lPU5vbmUsIG9zX3Zl
cnNpb249Tm9uZSwgKiprd2FyZ3MpOgotICAgICAgICBob3N0ID0gaG9zdCBvciBNb2NrU3lzdGVt
SG9zdChvc19uYW1lPShvc19uYW1lIG9yIHNlbGYub3NfbmFtZSksIG9zX3ZlcnNpb249KG9zX3Zl
cnNpb24gb3Igc2VsZi5vc192ZXJzaW9uKSkKKyAgICAgICAgaG9zdCA9IGhvc3QKKyAgICAgICAg
aWYgbm90IGhvc3Q6CisgICAgICAgICAgICBob3N0ID0gTW9ja1N5c3RlbUhvc3Qob3NfbmFtZT0o
b3NfbmFtZSBvciBzZWxmLm9zX25hbWUpLCBvc192ZXJzaW9uPShvc192ZXJzaW9uIG9yIHNlbGYu
b3NfdmVyc2lvbikpCisgICAgICAgICAgICBob3N0LnBvcnRfZmFjdG9yeSA9IGZhY3RvcnkuUG9y
dEZhY3RvcnkoaG9zdCkKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgb3IgTW9ja09wdGlvbnMo
Y29uZmlndXJhdGlvbj0nUmVsZWFzZScpCiAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSBv
ciBzZWxmLnBvcnRfbmFtZQogICAgICAgICBwb3J0X25hbWUgPSBzZWxmLnBvcnRfbWFrZXIuZGV0
ZXJtaW5lX2Z1bGxfcG9ydF9uYW1lKGhvc3QsIG9wdGlvbnMsIHBvcnRfbmFtZSkKQEAgLTYwLDcg
KzY2LDcgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRl
ZiB0ZXN0X2RlZmF1bHRfd29ya2VyX21vZGVsKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5t
YWtlX3BvcnQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGVmYXVsdF93b3JrZXJf
bW9kZWwoKSwgJ3Byb2Nlc3NlcycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kZWZh
dWx0X3dvcmtlcl9tb2RlbCgpLCBzZWxmLmRlZmF1bHRfd29ya2VyX21vZGVsKQogCiAgICAgZGVm
IHRlc3RfZHJpdmVyX2NtZF9saW5lKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3Bv
cnQoKQo=
</data>
<flag name="review"
          id="128814"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>