<?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>174987</bug_id>
          
          <creation_ts>2017-07-31 13:09:01 -0700</creation_ts>
          <short_desc>Web Automation: add event to notify service when a page&apos;s main frame window object has cleared</short_desc>
          <delta_ts>2017-08-01 16:53:25 -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>WebKit2</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>beidson</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1333502</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-31 13:09:01 -0700</bug_when>
    <thetext>Needed by safaridriver to prune old element handles that are no longer valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333503</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-31 13:09:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/36602634&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333504</commentid>
    <comment_count>2</comment_count>
      <attachid>316796</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-31 13:12:32 -0700</bug_when>
    <thetext>Created attachment 316796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333667</commentid>
    <comment_count>3</comment_count>
      <attachid>316796</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-31 23:07:59 -0700</bug_when>
    <thetext>Comment on attachment 316796
Patch

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

LGTM, do we need a WebKit2 owner approval for this?

&gt; Source/WebKit/UIProcess/Automation/Automation.json:530
&gt; +        {
&gt; +            &quot;name&quot;: &quot;browsingContextCleared&quot;,
&gt; +            &quot;description&quot;: &quot;Fired when the specified browsing context has navigated or closed. Existing element references from the browsing context are no longer valid.&quot;,
&gt; +            &quot;parameters&quot;: [
&gt; +                { &quot;name&quot;: &quot;browsingContextHandle&quot;, &quot;$ref&quot;: &quot;BrowsingContextHandle&quot; }
&gt; +            ]

What does safaridriver do in response to this? element references are in the automation proxy in the web process, no? or does safaridriver keep also a cache of element references?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333772</commentid>
    <comment_count>4</comment_count>
      <attachid>316796</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-01 08:59:47 -0700</bug_when>
    <thetext>Comment on attachment 316796
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Automation/Automation.json:530
&gt;&gt; +            ]
&gt; 
&gt; What does safaridriver do in response to this? element references are in the automation proxy in the web process, no? or does safaridriver keep also a cache of element references?

This is part of our implementation of file upload. The W3C specification states that sendKeys to an &lt;input type=file multiple&gt; should append, not replace, the file list. I don&apos;t want to encode the append semantics into the protocol. So safaridriver keeps a map of (element handle) -&gt; (last file list selection). This allows it to send a new Automation.setFilesToSelectForFileUpload command with the new file appended. We also double-check the FileList of `element.files` to make sure that it hasn&apos;t been cleared out from under us via element.form.reset() or whatever.

If we didn&apos;t keep a map of element -&gt; last file selection, then we&apos;d not be able to emulate appending files. We&apos;d also not be able to re-match the already selected files (which lack a full path, we just know the basename+mtime+filesize) to the full file paths that we need to pass to setFilesToSelectForFileUpload.

So, with all that in mind, this event lets safaridriver clear out element handles from the aforementioned map when the corresponding browsing context clears its window object. Otherwise, we&apos;d retain a handle in the map for every element used as a file upload target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333773</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-01 09:00:55 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; Comment on attachment 316796 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=316796&amp;action=review
&gt; 
&gt; LGTM, do we need a WebKit2 owner approval for this?

Maybe officially, but not really? I&apos;ll cc Tim and Brady but usually things unrelated to API are less important to get reviewed by that team.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333778</commentid>
    <comment_count>6</comment_count>
      <attachid>316796</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-01 09:04:45 -0700</bug_when>
    <thetext>Comment on attachment 316796
Patch

s&apos;fine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333806</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-01 09:25:30 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #4)
&gt; Comment on attachment 316796 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=316796&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/Automation/Automation.json:530
&gt; &gt;&gt; +            ]
&gt; &gt; 
&gt; &gt; What does safaridriver do in response to this? element references are in the automation proxy in the web process, no? or does safaridriver keep also a cache of element references?
&gt; 
&gt; This is part of our implementation of file upload. The W3C specification
&gt; states that sendKeys to an &lt;input type=file multiple&gt; should append, not
&gt; replace, the file list. I don&apos;t want to encode the append semantics into the
&gt; protocol. So safaridriver keeps a map of (element handle) -&gt; (last file list
&gt; selection). This allows it to send a new
&gt; Automation.setFilesToSelectForFileUpload command with the new file appended.
&gt; We also double-check the FileList of `element.files` to make sure that it
&gt; hasn&apos;t been cleared out from under us via element.form.reset() or whatever.
&gt; 
&gt; If we didn&apos;t keep a map of element -&gt; last file selection, then we&apos;d not be
&gt; able to emulate appending files. We&apos;d also not be able to re-match the
&gt; already selected files (which lack a full path, we just know the
&gt; basename+mtime+filesize) to the full file paths that we need to pass to
&gt; setFilesToSelectForFileUpload.
&gt; 
&gt; So, with all that in mind, this event lets safaridriver clear out element
&gt; handles from the aforementioned map when the corresponding browsing context
&gt; clears its window object. Otherwise, we&apos;d retain a handle in the map for
&gt; every element used as a file upload target.

Ah, ok, I haven&apos;t implemented yet the file uploads, so I didn&apos;t know that. I&apos;ll do it after list box elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333808</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-01 09:26:44 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #5)
&gt; (In reply to Carlos Garcia Campos from comment #3)
&gt; &gt; Comment on attachment 316796 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=316796&amp;action=review
&gt; &gt; 
&gt; &gt; LGTM, do we need a WebKit2 owner approval for this?
&gt; 
&gt; Maybe officially, but not really? I&apos;ll cc Tim and Brady but usually things
&gt; unrelated to API are less important to get reviewed by that team.

I guess I&apos;m too used to ask owners approval for all cross-platform changes in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334021</commentid>
    <comment_count>9</comment_count>
      <attachid>316796</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-01 16:31:50 -0700</bug_when>
    <thetext>Comment on attachment 316796
Patch

Clearing flags on attachment: 316796

Committed r220115: &lt;http://trac.webkit.org/changeset/220115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334022</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-01 16:31:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334034</commentid>
    <comment_count>11</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-01 16:52:30 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334035</commentid>
    <comment_count>12</comment_count>
      <attachid>316912</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-01 16:52:30 -0700</bug_when>
    <thetext>Created attachment 316912
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334036</commentid>
    <comment_count>13</comment_count>
      <attachid>316912</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-01 16:53:10 -0700</bug_when>
    <thetext>Comment on attachment 316912
Proposed Fix

webkit-patch got confused.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316796</attachid>
            <date>2017-07-31 13:12:32 -0700</date>
            <delta_ts>2017-08-01 16:52:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174987-20170731131231.patch</filename>
            <type>text/plain</type>
            <size>5209</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1YzAwZjJjNjgwZmU1ZTkx
ZjMwYjdkNGY1ODk2MzI4OGVhNmVmYjAuLjQxZmE1MWZhMjU5M2VmN2ZjYzdkNzk3MjFmZmRiYzcy
N2NjNTczYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTctMDctMzEgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEF1dG9tYXRpb246IGFkZCBldmVu
dCB0byBub3RpZnkgc2VydmljZSB3aGVuIGEgcGFnZSdzIG1haW4gZnJhbWUgd2luZG93IG9iamVj
dCBoYXMgY2xlYXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc0OTg3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjYwMjYzND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL0F1dG9tYXRpb24uanNvbjogQWRkIG5ldyBldmVudC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2lsbENsb3NlUGFnZSk6CisgICAg
ICAgIFdoZW4gYSBXZWJQYWdlIG5hdmlnYXRlcyBvciBjbG9zZXMsIHNlbmQgdGhlIGJyb3dzaW5n
Q29udGV4dENsZWFyZWQgZXZlbnQuCisgICAgICAgIEFueSBlbGVtZW50IGhhbmRsZXMgZm9yIGVs
ZW1lbnRzIGluIHRoZSBicm93c2luZyBjb250ZXh0IGFyZSBubyBsb25nZXIgdmFsaWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpjbG9zZSk6CisgICAgICAgIEFkZCBhIG5ldyBob29rIGludG8gdGhlIGFjdGl2
ZSBhdXRvbWF0aW9uIHNlc3Npb24gc28gaXQgaXMgbm90aWZpZWQgd2hlbiBhIHBhZ2UgY2xvc2Vz
LgorCiAyMDE3LTA3LTMxICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmVtb3ZlIHVubmVjZXNzYXJ5IGV4Y2VwdGlvbnMgZnJvbSBzdG9yYWdlIGNvZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXgg
MGYyNTk2MTI4YzY2MjVkYTE0MmNmMDJkOTViZGVlMGU2ZmU4NTY4YS4uZjE0ZmJlZGQxMDNhY2Zj
NDBjMTlkYmRkMGMwNjUzMTdiMDE0MDViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KQEAgLTUyMSw2ICs1MjEsMTMgQEAKICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjog
IkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0
aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZWxl
Y3Rpb25DYW5jZWxsZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIklmIHRy
dWUsIHRoZSBjaG9vc2VyIHdhcyBkaXNtaXNzZWQgYmVjYXVzZSBmaWxlIHNlbGVjdGlvbiB3YXMg
Y2FuY2VsbGVkLiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJicm93c2luZ0NvbnRleHRDbGVhcmVkIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dCBo
YXMgbmF2aWdhdGVkIG9yIGNsb3NlZC4gRXhpc3RpbmcgZWxlbWVudCByZWZlcmVuY2VzIGZyb20g
dGhlIGJyb3dzaW5nIGNvbnRleHQgYXJlIG5vIGxvbmdlciB2YWxpZC4iLAorICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiIH0KKyAgICAgICAgICAg
IF0KICAgICAgICAgfQogICAgIF0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggZWYyNjVh
ODkxNTdiMmQ1ZGU4YTI0OTliZjU4NmVhYmFiOGQ3MjVmYi4uMDc2NmFiY2E0N2NmYmYzMDNlMDI2
OTU1MDdjYmQ3Mjk2ZDJjMWMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTQ5OSw2ICs0
OTksNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JG
cmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZQogICAgICAgICAgICAgbV9sb2FkVGltZXIu
c3RvcCgpOwogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCkpOwogICAgICAgICB9CisgICAgICAgIG1fZG9tYWluTm90aWZpZXItPmJyb3dz
aW5nQ29udGV4dENsZWFyZWQoaGFuZGxlRm9yV2ViUGFnZVByb3h5KCpmcmFtZS5wYWdlKCkpKTsK
ICAgICB9IGVsc2UgewogICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmln
YXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRha2UoZnJhbWUuZnJhbWVJ
RCgpKSkgewogICAgICAgICAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNTE5LDYgKzUyMCwx
MiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjprZXlib2FyZEV2ZW50c0ZsdXNoZWRGb3JQ
YWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYgcGFnZQogICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nl
c3MoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CiB9CiAKK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OndpbGxDbG9zZVBhZ2UoY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlKQoreworICAgIFN0
cmluZyBoYW5kbGUgPSBoYW5kbGVGb3JXZWJQYWdlUHJveHkocGFnZSk7CisgICAgbV9kb21haW5O
b3RpZmllci0+YnJvd3NpbmdDb250ZXh0Q2xlYXJlZChoYW5kbGUpOworfQorICAgIAogdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlUnVuT3BlblBhbmVsKGNvbnN0IFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgV2ViRnJhbWVQcm94eSYsIGNvbnN0IEFQSTo6T3BlblBhbmVsUGFyYW1l
dGVycyYgcGFyYW1ldGVycywgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSYgcmVzdWx0
TGlzdGVuZXIpCiB7CiAgICAgaWYgKCFtX2ZpbGVzVG9TZWxlY3RGb3JGaWxlVXBsb2FkLnNpemUo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDUyMWI0MTliMzEwODRiMzU1YjBkMGNkYWM0NjBi
N2ZkMWJkZGM3ODIuLjdiNzY1N2E5NWNjOWJhNmQyMjYxZjkxNzQzNzUyOTE2YzViMGRjZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmgKQEAgLTk2LDYgKzk2LDcgQEAgcHVibGljOgogICAgIHZvaWQgbmF2
aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUoY29uc3QgV2ViRnJhbWVQcm94eSYpOwogICAgIHZvaWQg
aW5zcGVjdG9yRnJvbnRlbmRMb2FkZWQoY29uc3QgV2ViUGFnZVByb3h5Jik7CiAgICAgdm9pZCBr
ZXlib2FyZEV2ZW50c0ZsdXNoZWRGb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYpOworICAgIHZv
aWQgd2lsbENsb3NlUGFnZShjb25zdCBXZWJQYWdlUHJveHkmKTsKICAgICB2b2lkIGhhbmRsZVJ1
bk9wZW5QYW5lbChjb25zdCBXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJGcmFtZVByb3h5JiwgY29u
c3QgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzJiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eSYpOwogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyMmFmYTIzNjZmYTkyNGU4YmNjZTc4NmYyZjU2
YzllZTAzZjU1YzdlLi5jMGY1MTJlNTlmZTFkNTk5OGI3OTZmNjQ2ZDg0OWU5YTdiNmIwOWM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0MCw2ICs3NDAs
MTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlKCkKICAgICBpZiAobV9hY3RpdmVQb3B1cE1l
bnUpCiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51LT5jYW5jZWxUcmFja2luZygpOwogCisgICAg
aWYgKG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbikgeworICAgICAgICBpZiAoYXV0byogYXV0b21h
dGlvblNlc3Npb24gPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRvbWF0aW9uU2Vzc2lvbigp
KQorICAgICAgICAgICAgYXV0b21hdGlvblNlc3Npb24tPndpbGxDbG9zZVBhZ2UoKnRoaXMpOwor
ICAgIH0KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIG1fYWN0aXZlQ29udGV4dE1l
bnUgPSBudWxscHRyOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316912</attachid>
            <date>2017-08-01 16:52:30 -0700</date>
            <delta_ts>2017-08-01 16:53:10 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-174987-20170801165148.patch</filename>
            <type>text/plain</type>
            <size>5632</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcxNTJhODRjMWQ3NmY0OGNi
Njg2YWFhZTM1OTZlY2Q5NTRhZDA2ZDkuLmJlZTJjOWFmNTZmMzhlODhjZjc1M2QxNzRmNmE4NzNl
YzJkN2I5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMDgtMDEgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEF1dG9tYXRpb246IGZpbGVzIHNl
bGVjdGVkIGZvciB1cGxvYWQgc2hvdWxkIGJlIGNoZWNrZWQgYWdhaW5zdCB2YWx1ZXMgb2YgdGhl
ICdhY2NlcHQnIGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc0ODAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzUxNDE5MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIHBh
cnNlZCB2YWx1ZXMgb2YgdGhlIGZpbGUgaW5wdXQgZWxlbWVudCdzICJhY2NlcHQiIGF0dHJpYnV0
ZSB0byByZWplY3QKKyAgICAgICAgZmlsZXMgdGhhdCBkb24ndCBtYXRjaCB0aGUgc3BlY2lmaWVk
IHZhbHVlcy4gVGhpcyBpcyBub3JtYWxseSBkb25lIGJ5IFNhZmFyaQorICAgICAgICB1c2luZyBO
U09wZW5QYW5lbCwgYnV0IHNpbmNlIGEgcmVhbCBvcGVuIHBhbmVsIGlzbid0IHNob3duIGR1cmlu
ZyBhdXRvbWF0aW9uLAorICAgICAgICBpdCBuZWVkcyB0byBiZSBkb25lIGhlcmUuCisKKyAgICAg
ICAgU3VwcG9ydCBmb3IgbGltaXRpbmcgYWNjZXB0ZWQgZmlsZXMgYnkgZmlsZSBleHRlbnNpb25z
IHdpbGwgYmUgYWRkZWQgd2hlbiB0aGUKKyAgICAgICAgc2FtZSBpcyBpbXBsZW1lbnRlZCBpbiB0
aGUgbm9ybWFsIGNvZGUgcGF0aCBmb3IgdGhlIEMgYW5kIE9iamVjdGl2ZS1DIEFQSXMuCisKKyAg
ICAgICAgVGhpcyBjaGFuZ2UgaXMgY292ZXJlZCBieSBpbnRlcm5hbCBXZWJEcml2ZXIgdGVzdHMg
dGhhdCB3aWxsIGJlIHJld3JpdHRlbiBmb3IgdGhlCisgICAgICAgIHB1YmxpYyBXZWJkcml2ZXIg
VzNDIHRlc3Qgc3VpdGUgc29tZWRheSwgd2hlbiBzYWZhcmlkcml2ZXIgcnVucyB0aG9zZSB0ZXN0
cyBpdHNlbGYuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5k
bGVSdW5PcGVuUGFuZWwpOgorICAgICAgICBTaW5jZSB3ZSBhbHJlYWR5IGhhdmUgdGhlIHByb3Bv
c2VkIGZpbGVzLCB0aGVyZSdzIG5vIG5lZWQgdG8gY29tcHV0ZSBhIGxpc3Qgb2YKKyAgICAgICAg
c3VwcG9ydGVkIGV4dGVuc2lvbnMgYmFzZWQgb24gd2lsZGNhcmQgTUlNRSB0eXBlcy4gRmlyc3Qg
Y2hlY2sgdGhlIGV4dGVuc2lvbiwKKyAgICAgICAgdGhlbiB0aGUgaW5mZXJyZWQgTUlNRSB0eXBl
IGZvciB0aGUgZXh0ZW5zaW9uLCBhbmQgdGhlbiB0aGUgd2lsZGNhcmQgTUlNRSB0eXBlCisgICAg
ICAgIGlmIHRoZSBpbmZlcnJlZCB0eXBlIGlzIG5vdCBhbiBleGFjdCBtYXRjaC4KKwogMjAxNy0w
OC0wMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUGFydCAx
IG9mOiBSZW5hbWUgRGF0YWJhc2VQcm9jZXNzIHRvIFN0b3JhZ2VQcm9jZXNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcAppbmRleCBlZjI2NWE4OTE1N2IyZDVkZThhMjQ5OWJmNTg2ZWFiYWI4ZDcyNWZi
Li40YWY2YzBiOWMzYTEzN2I3MTUwMmI0YTFhNTAzZjlhNjg3MTc1MWM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAKKyNpbmNsdWRlICJBUElBcnJheS5oIgogI2lu
Y2x1ZGUgIkFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJT3BlblBh
bmVsUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCIK
QEAgLTM4LDYgKzM5LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1
ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTMzLDE5ICs1MzUs
NTggQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlUnVuT3BlblBhbmVsKGNvbnN0
IFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2UKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAor
ICAgIEhhc2hTZXQ8U3RyaW5nPiBhbGxvd2VkTUlNRVR5cGVzOworICAgIFJlZjxBUEk6OkFycmF5
PiBhY2NlcHRNSU1FVHlwZXMgPSBwYXJhbWV0ZXJzLmFjY2VwdE1JTUVUeXBlcygpOworICAgIGZv
ciAoYXV0byB0eXBlIDogYWNjZXB0TUlNRVR5cGVzLT5lbGVtZW50c09mVHlwZTxBUEk6OlN0cmlu
Zz4oKSkKKyAgICAgICAgYWxsb3dlZE1JTUVUeXBlcy5hZGQodHlwZS0+c3RyaW5nKCkpOworCisg
ICAgYm9vbCBmaWxlc0FyZVZhbGlkID0gdHJ1ZTsKICAgICAvLyBQZXIgwqcxNC4zLjEwLjUgaW4g
dGhlIFczQyBzcGVjLCBpZiBhdCBsZWFzdCBvbmUgZmlsZSBubyBsb25nZXIgZXhpc3RzLCB0aGUg
Y29tbWFuZCBzaG91bGQgZmFpbC4KICAgICAvLyBUaGUgUkVTVCBBUEkgc2VydmljZSBjYW4gdGVs
bCB0aGF0IHRoaXMgZmFpbGVkIGJ5IGNoZWNraW5nIHRoZSAidmFsdWUiIGF0dHJpYnV0ZSBvZiB0
aGUgaW5wdXQgZWxlbWVudC4KICAgICBmb3IgKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUgOiBtX2Zp
bGVzVG9TZWxlY3RGb3JGaWxlVXBsb2FkKSB7CiAgICAgICAgIGlmICghV2ViQ29yZTo6ZmlsZUV4
aXN0cyhmaWxlbmFtZSkpIHsKLSAgICAgICAgICAgIHJlc3VsdExpc3RlbmVyLmNhbmNlbCgpOwot
ICAgICAgICAgICAgbV9kb21haW5Ob3RpZmllci0+ZmlsZUNob29zZXJEaXNtaXNzZWQobV9hY3Rp
dmVCcm93c2luZ0NvbnRleHRIYW5kbGUsIHRydWUpOwotICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgZmlsZXNBcmVWYWxpZCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoIWFsbG93ZWRNSU1FVHlwZXMuc2l6ZSgpKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgLy8gVmFsaWRhdGUgZmlsZW5hbWVzIGFnYWluc3QgYWxs
b3dlZCBNSU1FIHR5cGVzIGJlZm9yZSBjaG9vc2luZyB0aGVtLgorICAgICAgICAvLyBGSVhNRTog
dmFsaWRhdGUgYWdhaW5zdCBhbGxvd2VkIGZpbGUgZXh0ZW5zaW9ucyB3aGVuIDxodHRwczovL3dl
YmtpdC5vcmcvYi85NTY5OD4gaXMgZml4ZWQuCisgICAgICAgIFN0cmluZyBleHRlbnNpb24gPSBm
aWxlbmFtZS5zdWJzdHJpbmcoZmlsZW5hbWUucmV2ZXJzZUZpbmQoJy4nKSArIDEpOworICAgICAg
ICBTdHJpbmcgbWFwcGVkTUlNRVR5cGUgPSBXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRN
SU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pOworCisgICAgICAgIC8vIElmIHdlIGNhbid0
IGluZmVyIGEgTUlNRSB0eXBlIGZyb20gdGhlIGV4dGVuc2lvbiwgdGhlbiB3ZSBjYW4ndCBmYWxs
IGJhY2sgdG8gYSB3aWxkY2FyZCBtYXRjaC4KKyAgICAgICAgaWYgKG1hcHBlZE1JTUVUeXBlLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgZmlsZXNBcmVWYWxpZCA9IGZhbHNlOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWxsb3dlZE1JTUVUeXBlcy5jb250
YWlucyhtYXBwZWRNSU1FVHlwZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAv
LyBGYWxsIGJhY2sgdG8gY2hlY2tpbmcgZm9yIGEgTUlNRSB0eXBlIHdpbGRjYXJkIGlmIGFuIGV4
YWN0IG1hdGNoIGlzIG5vdCBmb3VuZC4KKyAgICAgICAgVmVjdG9yPFN0cmluZz4gY29tcG9uZW50
czsKKyAgICAgICAgbWFwcGVkTUlNRVR5cGUuc3BsaXQoJy8nLCBmYWxzZSwgY29tcG9uZW50cyk7
CisgICAgICAgIGlmIChjb21wb25lbnRzLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBmaWxl
c0FyZVZhbGlkID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIFN0cmluZyB3aWxkY2FyZGVkTUlNRVR5cGUgPSBtYWtlU3RyaW5nKGNvbXBvbmVudHNbMF0s
ICIvKiIpOworICAgICAgICBpZiAoIWFsbG93ZWRNSU1FVHlwZXMuY29udGFpbnMod2lsZGNhcmRl
ZE1JTUVUeXBlKSkgeworICAgICAgICAgICAgZmlsZXNBcmVWYWxpZCA9IGZhbHNlOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgIAorICAgIGlmIChmaWxlc0FyZVZhbGlk
KQorICAgICAgICByZXN1bHRMaXN0ZW5lci5jaG9vc2VGaWxlcyhtX2ZpbGVzVG9TZWxlY3RGb3JG
aWxlVXBsb2FkKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdExpc3RlbmVyLmNhbmNlbCgpOwog
Ci0gICAgLy8gRklYTUU6IHZhbGlkYXRlIGZpbGVuYW1lcyBhZ2FpbnN0IGFsbG93ZWQgTUlNRSB0
eXBlcyBiZWZvcmUgY2hvb3NpbmcgdGhlbS4gPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NDgwMz4K
LSAgICByZXN1bHRMaXN0ZW5lci5jaG9vc2VGaWxlcyhtX2ZpbGVzVG9TZWxlY3RGb3JGaWxlVXBs
b2FkKTsKLSAgICBtX2RvbWFpbk5vdGlmaWVyLT5maWxlQ2hvb3NlckRpc21pc3NlZChtX2FjdGl2
ZUJyb3dzaW5nQ29udGV4dEhhbmRsZSwgZmFsc2UpOworICAgIG1fZG9tYWluTm90aWZpZXItPmZp
bGVDaG9vc2VyRGlzbWlzc2VkKG1fYWN0aXZlQnJvd3NpbmdDb250ZXh0SGFuZGxlLCAhZmlsZXNB
cmVWYWxpZCk7CiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1l
SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rv
ckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRXhwZWN0c0ltcGxpY2l0Q2Fs
bGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25hbENhbGxiYWNrVGltZW91dCwgUmVmPEV2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>