<?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>76356</bug_id>
          
          <creation_ts>2012-01-15 20:00:05 -0800</creation_ts>
          <short_desc>webkitpy: clean up chromium port code in preparation for static port names</short_desc>
          <delta_ts>2012-01-17 11:25:13 -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>76215</blocked>
    
    <blocked>76357</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>536334</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-15 20:00:05 -0800</bug_when>
    <thetext>webkitpy: clean up port code in preparation for static port names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536337</commentid>
    <comment_count>1</comment_count>
      <attachid>122585</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-15 20:05:30 -0800</bug_when>
    <thetext>Created attachment 122585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536969</commentid>
    <comment_count>2</comment_count>
      <attachid>122585</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-17 01:58:22 -0800</bug_when>
    <thetext>Comment on attachment 122585
Patch

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

Some of this code is pretty gross, but I see that it was here already and that you&apos;re just moving it around.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium.py:97
&gt; +    @classmethod
&gt; +    @memoized
&gt; +    def _chromium_base_dir(cls, filesystem):
&gt; +        module_path = filesystem.path_to_module(cls.__module__)
&gt; +        offset = module_path.find(&apos;third_party&apos;)
&gt; +        if offset == -1:
&gt; +            return filesystem.join(module_path[0:module_path.find(&apos;Tools&apos;)], &apos;Source&apos;, &apos;WebKit&apos;, &apos;chromium&apos;)
&gt; +        else:
&gt; +            return module_path[0:offset]

I see.  That&apos;s an interesting way of detecting this condition, but I guess that&apos;s what we&apos;ve been doing for a whioe.

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py:78
&gt; +    @staticmethod
&gt; +    def _static_build_path(filesystem, build_directory, chromium_base, webkit_base, *comps):
&gt; +        if build_directory:
&gt; +            return filesystem.join(build_directory, *comps)
&gt; +        if filesystem.exists(filesystem.join(chromium_base, &apos;sconsbuild&apos;)):
&gt; +            return filesystem.join(chromium_base, &apos;sconsbuild&apos;, *comps)
&gt; +        if filesystem.exists(filesystem.join(chromium_base, &apos;out&apos;, *comps)):
&gt; +            return filesystem.join(chromium_base, &apos;out&apos;, *comps)
&gt; +        if filesystem.exists(filesystem.join(webkit_base, &apos;sconsbuild&apos;)):
&gt; +            return filesystem.join(webkit_base, &apos;sconsbuild&apos;, *comps)
&gt; +        return filesystem.join(webkit_base, &apos;out&apos;, *comps)

This is kind of gross.  What if we add a new output directory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537219</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-17 11:18:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 122585 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122585&amp;action=review
&gt; 
&gt; Some of this code is pretty gross, but I see that it was here already and that you&apos;re just moving it around.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium.py:97
&gt; &gt; +    @classmethod
&gt; &gt; +    @memoized
&gt; &gt; +    def _chromium_base_dir(cls, filesystem):
&gt; &gt; +        module_path = filesystem.path_to_module(cls.__module__)
&gt; &gt; +        offset = module_path.find(&apos;third_party&apos;)
&gt; &gt; +        if offset == -1:
&gt; &gt; +            return filesystem.join(module_path[0:module_path.find(&apos;Tools&apos;)], &apos;Source&apos;, &apos;WebKit&apos;, &apos;chromium&apos;)
&gt; &gt; +        else:
&gt; &gt; +            return module_path[0:offset]
&gt; 
&gt; I see.  That&apos;s an interesting way of detecting this condition, but I guess that&apos;s what we&apos;ve been doing for a whioe.
&gt; 

Yup. I&apos;m open to suggestions :).

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py:78
&gt; &gt; +    @staticmethod
&gt; &gt; +    def _static_build_path(filesystem, build_directory, chromium_base, webkit_base, *comps):
&gt; &gt; +        if build_directory:
&gt; &gt; +            return filesystem.join(build_directory, *comps)
&gt; &gt; +        if filesystem.exists(filesystem.join(chromium_base, &apos;sconsbuild&apos;)):
&gt; &gt; +            return filesystem.join(chromium_base, &apos;sconsbuild&apos;, *comps)
&gt; &gt; +        if filesystem.exists(filesystem.join(chromium_base, &apos;out&apos;, *comps)):
&gt; &gt; +            return filesystem.join(chromium_base, &apos;out&apos;, *comps)
&gt; &gt; +        if filesystem.exists(filesystem.join(webkit_base, &apos;sconsbuild&apos;)):
&gt; &gt; +            return filesystem.join(webkit_base, &apos;sconsbuild&apos;, *comps)
&gt; &gt; +        return filesystem.join(webkit_base, &apos;out&apos;, *comps)
&gt; 
&gt; This is kind of gross.  What if we add a new output directory?

We have to add it to the list, unfortunately. I should circle back w/ Tony in a separate patch and see if we can remove some of these things now, but I don&apos;t know how to eliminate this completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537224</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-17 11:25:13 -0800</bug_when>
    <thetext>Committed r105177: &lt;http://trac.webkit.org/changeset/105177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122585</attachid>
            <date>2012-01-15 20:05:30 -0800</date>
            <delta_ts>2012-01-17 01:58:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76356-20120115200529.patch</filename>
            <type>text/plain</type>
            <size>10095</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDM0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODUyMGZiZGI3MTIwMjQ0YjRjZmZjNGNlZTFjZjE5YTkw
NjM1ZTA2ZS4uNzBkMDkxMjg1Y2JjZDI1NTBlNjMxNWE1MjQ4NDA3NTA4NDRmODA3MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDEyLTAxLTE1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiBjbGVhbiB1cCBwb3J0IGNvZGUgaW4gcHJlcGFyYXRpb24gZm9yIHN0
YXRpYyBwb3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NjM1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRvIGZpeCBidWcgNzYyMTUgYW5kIGJlIGFibGUgdG8gZGV0ZXJtaW5lIGFwcHJvcHJp
YXRlIHBvcnQgbmFtZXMKKyAgICAgICAgaW4gd2Via2l0cHkgd2l0aG91dCBhY3R1YWxseSBjb25z
dHJ1Y3RpbmcgUG9ydCBvYmplY3RzLCB3ZSBuZWVkCisgICAgICAgIHRvIHNodWZmbGUgc29tZSBs
b2dpYyBpbiB0aGUgY2hyb21pdW0gcG9ydHMgdG8gYmUgYWJsZSB0byBmaWd1cmUKKyAgICAgICAg
b3V0IHdoZXRoZXIgd2UgYnVpbHQgRFJUIGluIDMyIG9yIDY0LWJpdCBtb2RlLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAg
ICAgKENocm9taXVtUG9ydCk6CisgICAgICAgIChDaHJvbWl1bVBvcnQuX2Nocm9taXVtX2Jhc2Vf
ZGlyKToKKyAgICAgICAgKENocm9taXVtUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChDaHJvbWl1
bVBvcnQucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHk6CisgICAgICAgIChDaHJvbWl1
bUxpbnV4UG9ydCk6CisgICAgICAgIChDaHJvbWl1bUxpbnV4UG9ydC5fZGV0ZXJtaW5lX2RyaXZl
cl9wYXRoX3N0YXRpY2FsbHkpOgorICAgICAgICAoQ2hyb21pdW1MaW51eFBvcnQuX3N0YXRpY19i
dWlsZF9wYXRoKToKKyAgICAgICAgKENocm9taXVtTGludXhQb3J0Ll9kZXRlcm1pbmVfYXJjaGl0
ZWN0dXJlKToKKyAgICAgICAgKENocm9taXVtTGludXhQb3J0Ll9faW5pdF9fKToKKyAgICAgICAg
KENocm9taXVtTGludXhQb3J0Ll9idWlsZF9wYXRoKToKKwogMjAxMi0wMS0xNSAgUGFibG8gRmxv
dXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgRml4IGNvbXBpbGF0aW9uIGVy
cm9ycyBvbiBidWlsZC13ZWJraXQgLS1kZWJ1ZyAtLW5vLXZpZGVvIG9uIG1hYy4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5Cmlu
ZGV4IGE2ZjYxMTIzZGU1MjZkOTFlMjJlZWJkZGZjNjY4NjE4YzBhNGJkODcuLjcwNmVkODU2ZGZm
MmQ0MDk3NDhmMWRmMTU0ZmY5Y2Q5Y2UyMjJlZDkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtNDAsNiArNDAsNyBA
QCBpbXBvcnQgdGltZQogaW1wb3J0IHdlYmJyb3dzZXIKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
Y29uZmlnIGltcG9ydCB1cmxzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQg
bWVtb2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZXhlY3V0aXZlCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ucGF0aCBpbXBvcnQgY3lncGF0aAogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMubWFuYWdlciBpbXBvcnQgTWFuYWdlcgpAQCAt
ODUsMTEgKzg2LDIwIEBAIGNsYXNzIENocm9taXVtUG9ydChQb3J0KToKICAgICAgICAgJ2xpbnV4
JzogWydsdWNpZCddLAogICAgIH0KIAorICAgIEBjbGFzc21ldGhvZAorICAgIEBtZW1vaXplZAor
ICAgIGRlZiBfY2hyb21pdW1fYmFzZV9kaXIoY2xzLCBmaWxlc3lzdGVtKToKKyAgICAgICAgbW9k
dWxlX3BhdGggPSBmaWxlc3lzdGVtLnBhdGhfdG9fbW9kdWxlKGNscy5fX21vZHVsZV9fKQorICAg
ICAgICBvZmZzZXQgPSBtb2R1bGVfcGF0aC5maW5kKCd0aGlyZF9wYXJ0eScpCisgICAgICAgIGlm
IG9mZnNldCA9PSAtMToKKyAgICAgICAgICAgIHJldHVybiBmaWxlc3lzdGVtLmpvaW4obW9kdWxl
X3BhdGhbMDptb2R1bGVfcGF0aC5maW5kKCdUb29scycpXSwgJ1NvdXJjZScsICdXZWJLaXQnLCAn
Y2hyb21pdW0nKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIG1vZHVsZV9wYXRo
WzA6b2Zmc2V0XQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsICoqa3dhcmdzKToKICAg
ICAgICAgUG9ydC5fX2luaXRfXyhzZWxmLCBob3N0LCAqKmt3YXJncykKICAgICAgICAgIyBBbGwg
c3ViLWNsYXNzZXMgb3ZlcnJpZGUgdGhpcywgYnV0IHdlIG5lZWQgYW4gaW5pdGlhbCB2YWx1ZSBm
b3IgdGVzdGluZy4KICAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICd4cCcKLSAgICAgICAgc2VsZi5f
Y2hyb21pdW1fYmFzZV9kaXIgPSBOb25lCiAKICAgICBkZWYgX2NoZWNrX2ZpbGVfZXhpc3RzKHNl
bGYsIHBhdGhfdG9fZmlsZSwgZmlsZV9kZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG92ZXJyaWRlX3N0ZXA9Tm9uZSwgbG9nZ2luZz1UcnVlKToKQEAgLTIyMCwxNCArMjMw
LDcgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KFBvcnQpOgogICAgIGRlZiBwYXRoX2Zyb21fY2hyb21p
dW1fYmFzZShzZWxmLCAqY29tcHMpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBhdGgg
dG8gcGF0aCBtYWRlIGJ5IGpvaW5pbmcgdGhlIHRvcCBvZiB0aGUKICAgICAgICAgQ2hyb21pdW0g
c291cmNlIHRyZWUgYW5kIHRoZSBsaXN0IG9mIHBhdGggY29tcG9uZW50cyBpbiB8KmNvbXBzfC4i
IiIKLSAgICAgICAgaWYgbm90IHNlbGYuX2Nocm9taXVtX2Jhc2VfZGlyOgotICAgICAgICAgICAg
Y2hyb21pdW1fbW9kdWxlX3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLnBhdGhfdG9fbW9kdWxlKHNl
bGYuX19tb2R1bGVfXykKLSAgICAgICAgICAgIG9mZnNldCA9IGNocm9taXVtX21vZHVsZV9wYXRo
LmZpbmQoJ3RoaXJkX3BhcnR5JykKLSAgICAgICAgICAgIGlmIG9mZnNldCA9PSAtMToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9jaHJvbWl1bV9iYXNlX2RpciA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9p
bihjaHJvbWl1bV9tb2R1bGVfcGF0aFswOmNocm9taXVtX21vZHVsZV9wYXRoLmZpbmQoJ1Rvb2xz
JyldLCAnU291cmNlJywgJ1dlYktpdCcsICdjaHJvbWl1bScpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2Nocm9taXVtX2Jhc2VfZGlyID0gY2hyb21pdW1fbW9kdWxl
X3BhdGhbMDpvZmZzZXRdCi0gICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2Vs
Zi5fY2hyb21pdW1fYmFzZV9kaXIsICpjb21wcykKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVz
eXN0ZW0uam9pbihzZWxmLl9jaHJvbWl1bV9iYXNlX2RpcihzZWxmLl9maWxlc3lzdGVtKSwgKmNv
bXBzKQogCiAgICAgZGVmIHBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZShzZWxmKToKICAg
ICAgICAgcmV0dXJuIHNlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdMYXlvdXRUZXN0cycsICdw
bGF0Zm9ybScsICdjaHJvbWl1bScsICd0ZXN0X2V4cGVjdGF0aW9ucy50eHQnKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51
eC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
bGludXgucHkKaW5kZXggNmI2ZThlZjQ5NGIwNmZhNTdmNDc3ZjQ0YzM1YTQ3MTYxZDhhMjE3Ni4u
NGY1MDBjNjU0NjE3ZTA0ZjcxOWYwNDNmY2EwNmNlMzc4MzhkNjI2YSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xp
bnV4LnB5CkBAIC0yOCw3ICsyOCw4IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBsb2dnaW5n
Ci1pbXBvcnQgY2hyb21pdW0KK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0
IGNocm9taXVtCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBjb25maWcK
IAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCkBAIC01NSwxMyArNTYsNTQg
QEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAg
ICAgXSwKICAgICB9CiAKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2RldGVybWluZV9kcml2
ZXJfcGF0aF9zdGF0aWNhbGx5KGNscywgaG9zdCwgb3B0aW9ucyk6CisgICAgICAgIGNvbmZpZ19v
YmplY3QgPSBjb25maWcuQ29uZmlnKGhvc3QuZXhlY3V0aXZlLCBob3N0LmZpbGVzeXN0ZW0pCisg
ICAgICAgIGJ1aWxkX2RpcmVjdG9yeSA9IGdldGF0dHIob3B0aW9ucywgJ2J1aWxkX2RpcmVjdG9y
eScsIE5vbmUpCisgICAgICAgIHdlYmtpdF9iYXNlID0gY29uZmlnX29iamVjdC5wYXRoX2Zyb21f
d2Via2l0X2Jhc2UoKQorICAgICAgICBjaHJvbWl1bV9iYXNlID0gY2xzLl9jaHJvbWl1bV9iYXNl
X2Rpcihob3N0LmZpbGVzeXN0ZW0pCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBnZXRhdHRyKG9w
dGlvbnMsICdjb25maWd1cmF0aW9uJywgY29uZmlnX29iamVjdC5kZWZhdWx0X2NvbmZpZ3VyYXRp
b24oKSkKKyAgICAgICAgcmV0dXJuIGNscy5fc3RhdGljX2J1aWxkX3BhdGgoaG9zdC5maWxlc3lz
dGVtLCBidWlsZF9kaXJlY3RvcnksIGNocm9taXVtX2Jhc2UsIHdlYmtpdF9iYXNlLCBjb25maWd1
cmF0aW9uLCAnRHVtcFJlbmRlclRyZWUnKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBf
c3RhdGljX2J1aWxkX3BhdGgoZmlsZXN5c3RlbSwgYnVpbGRfZGlyZWN0b3J5LCBjaHJvbWl1bV9i
YXNlLCB3ZWJraXRfYmFzZSwgKmNvbXBzKToKKyAgICAgICAgaWYgYnVpbGRfZGlyZWN0b3J5Ogor
ICAgICAgICAgICAgcmV0dXJuIGZpbGVzeXN0ZW0uam9pbihidWlsZF9kaXJlY3RvcnksICpjb21w
cykKKyAgICAgICAgaWYgZmlsZXN5c3RlbS5leGlzdHMoZmlsZXN5c3RlbS5qb2luKGNocm9taXVt
X2Jhc2UsICdzY29uc2J1aWxkJykpOgorICAgICAgICAgICAgcmV0dXJuIGZpbGVzeXN0ZW0uam9p
bihjaHJvbWl1bV9iYXNlLCAnc2NvbnNidWlsZCcsICpjb21wcykKKyAgICAgICAgaWYgZmlsZXN5
c3RlbS5leGlzdHMoZmlsZXN5c3RlbS5qb2luKGNocm9taXVtX2Jhc2UsICdvdXQnLCAqY29tcHMp
KToKKyAgICAgICAgICAgIHJldHVybiBmaWxlc3lzdGVtLmpvaW4oY2hyb21pdW1fYmFzZSwgJ291
dCcsICpjb21wcykKKyAgICAgICAgaWYgZmlsZXN5c3RlbS5leGlzdHMoZmlsZXN5c3RlbS5qb2lu
KHdlYmtpdF9iYXNlLCAnc2NvbnNidWlsZCcpKToKKyAgICAgICAgICAgIHJldHVybiBmaWxlc3lz
dGVtLmpvaW4od2Via2l0X2Jhc2UsICdzY29uc2J1aWxkJywgKmNvbXBzKQorICAgICAgICByZXR1
cm4gZmlsZXN5c3RlbS5qb2luKHdlYmtpdF9iYXNlLCAnb3V0JywgKmNvbXBzKQorCisgICAgQHN0
YXRpY21ldGhvZAorICAgIGRlZiBfZGV0ZXJtaW5lX2FyY2hpdGVjdHVyZShmaWxlc3lzdGVtLCBl
eGVjdXRpdmUsIGRyaXZlcl9wYXRoKToKKyAgICAgICAgZmlsZV9vdXRwdXQgPSAnJworICAgICAg
ICBpZiBmaWxlc3lzdGVtLmV4aXN0cyhkcml2ZXJfcGF0aCk6CisgICAgICAgICAgICAjIFRoZSAt
LWRlcmVmZXJlbmNlIGZsYWcgdGVsbHMgZmlsZSB0byBmb2xsb3cgc3ltbGlua3MKKyAgICAgICAg
ICAgIGZpbGVfb3V0cHV0ID0gZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsnZmlsZScsICctLWRlcmVm
ZXJlbmNlJywgZHJpdmVyX3BhdGhdLCByZXR1cm5fc3RkZXJyPVRydWUpCisKKyAgICAgICAgaWYg
J0VMRiAzMi1iaXQgTFNCIGV4ZWN1dGFibGUnIGluIGZpbGVfb3V0cHV0OgorICAgICAgICAgICAg
cmV0dXJuICd4ODYnCisgICAgICAgIGlmICdFTEYgNjQtYml0IExTQiBleGVjdXRhYmxlJyBpbiBm
aWxlX291dHB1dDoKKyAgICAgICAgICAgIHJldHVybiAneDg2XzY0JworICAgICAgICBpZiBmaWxl
X291dHB1dDoKKyAgICAgICAgICAgIF9sb2cud2FybmluZygnQ291bGQgbm90IGRldGVybWluZSBh
cmNoaXRlY3R1cmUgZnJvbSAiZmlsZSIgb3V0cHV0OiAlcycgJSBmaWxlX291dHB1dCkKKworICAg
ICAgICAjIFdlIGRvbid0IGtub3cgd2hhdCB0aGUgYXJjaGl0ZWN0dXJlIGlzOyBkZWZhdWx0IHRv
ICd4ODYnIGJlY2F1c2UKKyAgICAgICAgIyBtYXliZSB3ZSdyZSByZWJhc2VsaW5pbmcgYW5kIHRo
ZSBiaW5hcnkgZG9lc24ndCBhY3R1YWxseSBleGlzdCwKKyAgICAgICAgIyBvciBzb21ldGhpbmcg
ZWxzZSB3ZWlyZCBpcyBnb2luZyBvbi4gSXQncyBva2F5IHRvIGRvIHRoaXMgYmVjYXVzZQorICAg
ICAgICAjIGlmIHdlIGFjdHVhbGx5IHRyeSB0byB1c2UgdGhlIGJpbmFyeSwgY2hlY2tfYnVpbGQo
KSBzaG91bGQgZmFpbC4KKyAgICAgICAgcmV0dXJuICd4ODZfNjQnCisKICAgICBkZWYgX19pbml0
X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgcG9ydF9u
YW1lID0gcG9ydF9uYW1lIG9yICdjaHJvbWl1bS1saW51eCcKICAgICAgICAgY2hyb21pdW0uQ2hy
b21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dh
cmdzKQogICAgICAgICAjIFdlIHJlLXNldCB0aGUgcG9ydCBuYW1lIG9uY2UgdGhlIGJhc2Ugb2Jq
ZWN0IGlzIGZ1bGx5IGluaXRpYWxpemVkCiAgICAgICAgICMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0
byBmaW5kIHRoZSBEUlQgYmluYXJ5IHByb3Blcmx5LgogICAgICAgICBpZiBwb3J0X25hbWUuZW5k
c3dpdGgoJy1saW51eCcpOgotICAgICAgICAgICAgc2VsZi5fYXJjaGl0ZWN0dXJlID0gc2VsZi5f
ZGV0ZXJtaW5lX2FyY2hpdGVjdHVyZSgpCisgICAgICAgICAgICBzZWxmLl9hcmNoaXRlY3R1cmUg
PSBzZWxmLl9kZXRlcm1pbmVfYXJjaGl0ZWN0dXJlKHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX2V4
ZWN1dGl2ZSwgc2VsZi5fZGV0ZXJtaW5lX2RyaXZlcl9wYXRoX3N0YXRpY2FsbHkoaG9zdCwgc2Vs
Zi5fb3B0aW9ucykpCiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGFuIHVnbHkgaGFjayB0
byBhdm9pZCByZW5hbWluZyB0aGUgR1BVIHBvcnQuCiAgICAgICAgICAgICBpZiBwb3J0X25hbWUg
PT0gJ2Nocm9taXVtLWxpbnV4JzoKICAgICAgICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25h
bWUgKyAnLScgKyBzZWxmLl9hcmNoaXRlY3R1cmUKQEAgLTc2LDI2ICsxMTgsNiBAQCBjbGFzcyBD
aHJvbWl1bUxpbnV4UG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICBzZWxmLl9u
YW1lID0gcG9ydF9uYW1lCiAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSAnbHVjaWQnICAjIFdlIG9u
bHkgc3VwcG9ydCBsdWNpZCByaWdodCBub3cuCiAKLSAgICBkZWYgX2RldGVybWluZV9hcmNoaXRl
Y3R1cmUoc2VsZik6Ci0gICAgICAgIGRyaXZlcl9wYXRoID0gc2VsZi5fcGF0aF90b19kcml2ZXIo
KQotICAgICAgICBmaWxlX291dHB1dCA9ICcnCi0gICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0u
ZXhpc3RzKGRyaXZlcl9wYXRoKToKLSAgICAgICAgICAgICMgVGhlIC0tZGVyZWZlcmVuY2UgZmxh
ZyB0ZWxscyBmaWxlIHRvIGZvbGxvdyBzeW1saW5rcwotICAgICAgICAgICAgZmlsZV9vdXRwdXQg
PSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWydmaWxlJywgJy0tZGVyZWZlcmVuY2UnLCBk
cml2ZXJfcGF0aF0sIHJldHVybl9zdGRlcnI9VHJ1ZSkKLQotICAgICAgICBpZiAnRUxGIDMyLWJp
dCBMU0IgZXhlY3V0YWJsZScgaW4gZmlsZV9vdXRwdXQ6Ci0gICAgICAgICAgICByZXR1cm4gJ3g4
NicKLSAgICAgICAgaWYgJ0VMRiA2NC1iaXQgTFNCIGV4ZWN1dGFibGUnIGluIGZpbGVfb3V0cHV0
OgotICAgICAgICAgICAgcmV0dXJuICd4ODZfNjQnCi0gICAgICAgIGlmIGZpbGVfb3V0cHV0Ogot
ICAgICAgICAgICAgX2xvZy53YXJuaW5nKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGFyY2hpdGVjdHVy
ZSBmcm9tICJmaWxlIiBvdXRwdXQ6ICVzJyAlIGZpbGVfb3V0cHV0KQotCi0gICAgICAgICMgV2Ug
ZG9uJ3Qga25vdyB3aGF0IHRoZSBhcmNoaXRlY3R1cmUgaXM7IGRlZmF1bHQgdG8gJ3g4NicgYmVj
YXVzZQotICAgICAgICAjIG1heWJlIHdlJ3JlIHJlYmFzZWxpbmluZyBhbmQgdGhlIGJpbmFyeSBk
b2Vzbid0IGFjdHVhbGx5IGV4aXN0LAotICAgICAgICAjIG9yIHNvbWV0aGluZyBlbHNlIHdlaXJk
IGlzIGdvaW5nIG9uLiBJdCdzIG9rYXkgdG8gZG8gdGhpcyBiZWNhdXNlCi0gICAgICAgICMgaWYg
d2UgYWN0dWFsbHkgdHJ5IHRvIHVzZSB0aGUgYmluYXJ5LCBjaGVja19idWlsZCgpIHNob3VsZCBm
YWlsLgotICAgICAgICByZXR1cm4gJ3g4Nl82NCcKLQogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hf
cGF0aChzZWxmKToKICAgICAgICAgcG9ydF9uYW1lcyA9IHNlbGYuRkFMTEJBQ0tfUEFUSFNbc2Vs
Zi5fYXJjaGl0ZWN0dXJlXQogICAgICAgICByZXR1cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGlu
ZV9wYXRoLCBwb3J0X25hbWVzKQpAQCAtMTE4LDE4ICsxNDAsNyBAQCBjbGFzcyBDaHJvbWl1bUxp
bnV4UG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICMKIAogICAgIGRlZiBfYnVpbGRf
cGF0aChzZWxmLCAqY29tcHMpOgotICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ2J1aWxkX2Rp
cmVjdG9yeScpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxm
LmdldF9vcHRpb24oJ2J1aWxkX2RpcmVjdG9yeScpLCAqY29tcHMpCi0KLSAgICAgICAgYmFzZSA9
IHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoKQotICAgICAgICBpZiBzZWxmLl9maWxlc3lz
dGVtLmV4aXN0cyhzZWxmLl9maWxlc3lzdGVtLmpvaW4oYmFzZSwgJ3Njb25zYnVpbGQnKSk6Ci0g
ICAgICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKGJhc2UsICdzY29uc2J1aWxk
JywgKmNvbXBzKQotICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhzZWxmLl9maWxl
c3lzdGVtLmpvaW4oYmFzZSwgJ291dCcsICpjb21wcykpOgotICAgICAgICAgICAgcmV0dXJuIHNl
bGYuX2ZpbGVzeXN0ZW0uam9pbihiYXNlLCAnb3V0JywgKmNvbXBzKQotICAgICAgICBiYXNlID0g
c2VsZi5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoKQotICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVt
LmV4aXN0cyhzZWxmLl9maWxlc3lzdGVtLmpvaW4oYmFzZSwgJ3Njb25zYnVpbGQnKSk6Ci0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKGJhc2UsICdzY29uc2J1aWxkJywg
KmNvbXBzKQotICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKGJhc2UsICdvdXQn
LCAqY29tcHMpCisgICAgICAgIHJldHVybiBzZWxmLl9zdGF0aWNfYnVpbGRfcGF0aChzZWxmLl9m
aWxlc3lzdGVtLCBzZWxmLmdldF9vcHRpb24oJ2J1aWxkX2RpcmVjdG9yeScpLCBzZWxmLnBhdGhf
ZnJvbV9jaHJvbWl1bV9iYXNlKCksIHNlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCksICpjb21w
cykKIAogICAgIGRlZiBfY2hlY2tfYXBhY2hlX2luc3RhbGwoc2VsZik6CiAgICAgICAgIHJlc3Vs
dCA9IHNlbGYuX2NoZWNrX2ZpbGVfZXhpc3RzKHNlbGYuX3BhdGhfdG9fYXBhY2hlKCksICJhcGFj
aGUyIikK
</data>
<flag name="review"
          id="123420"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>