<?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>160114</bug_id>
          
          <creation_ts>2016-07-22 22:10:19 -0700</creation_ts>
          <short_desc>Web Automation: All key events should be processed before sending response</short_desc>
          <delta_ts>2016-07-22 23:16:56 -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>Web Inspector</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1213839</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-22 22:10:19 -0700</bug_when>
    <thetext>Summary:
All key events should be processed before sending response.

For an automation test that does something like:

    element = self.driver.find_element_by_id(&quot;emptyTextArea&quot;)
    self.assertEqual(&quot;&quot;, element.get_attribute(&quot;value&quot;))
    element.send_keys(&quot;hello world&quot;)
    self.assertEqual(&quot;hello world&quot;, element.get_attribute(&quot;value&quot;))

Logging shows we send NSEvents for all the keyboard actions, but because WebPageProxy queues them, a later Automation event (evaluateJavaScriptFunction) happens before the keys have finished sending.

    Safari: (WebKit) &gt;&gt;&gt; WebAutomationSession::performKeyboardInteractions - start
    Safari: (WebKit) &gt;&gt;&gt; WebAutomationSession::performKeyboardInteractions - sending
    Safari: (WebKit) &gt;&gt;&gt; KEY DOWN: NSEvent: type=KeyDown loc=(0,600) time=490938962.2 flags=0 win=0x0 winNum=13545 ctxt=0x0 chars=&quot;h&quot; unmodchars=&quot;h&quot; repeat=0 keyCode=0
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::handleKeyboardEvent - 1
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::handleKeyboardEvent sending
    Safari: (WebKit) &gt;&gt;&gt; KEY UP: NSEvent: type=KeyUp loc=(0,600) time=490938962.2 flags=0 win=0x0 winNum=13545 ctxt=0x0 chars=&quot;h&quot; unmodchars=&quot;h&quot; repeat=0 keyCode=0
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::handleKeyboardEvent - 2
    Safari: (WebKit) &gt;&gt;&gt; KEY DOWN: NSEvent: type=KeyDown loc=(0,600) time=490938962.2 flags=0 win=0x0 winNum=13545 ctxt=0x0 chars=&quot;e&quot; unmodchars=&quot;e&quot; repeat=0 keyCode=0
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::handleKeyboardEvent - 3
    Safari: (WebKit) &gt;&gt;&gt; KEY UP: NSEvent: type=KeyUp loc=(0,600) time=490938962.2 flags=0 win=0x0 winNum=13545 ctxt=0x0 chars=&quot;e&quot; unmodchars=&quot;e&quot; repeat=0 keyCode=0
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::handleKeyboardEvent - 4
    ...
    Safari: (WebKit) &gt;&gt;&gt; KEY DOWN: NSEvent: type=KeyDown loc=(0,600) time=490938962.2 flags=0 win=0x0 winNum=13545 ctxt=0x0 chars=&quot;d&quot; unmodchars=&quot;d&quot; repeat=0 keyCode=0
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::handleKeyboardEvent - 21
    Safari: (WebKit) &gt;&gt;&gt; KEY UP: NSEvent: type=KeyUp loc=(0,600) time=490938962.2 flags=0 win=0x0 winNum=13545 ctxt=0x0 chars=&quot;d&quot; unmodchars=&quot;d&quot; repeat=0 keyCode=0
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::handleKeyboardEvent - 22
    Safari: (WebKit) &gt;&gt;&gt; WebAutomationSession::performKeyboardInteractions - done
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::didReceiveEvent sending
    Safari: (WebKit) &gt;&gt;&gt; WebAutomationSession::evaluateJavaScriptFunction - start
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::didReceiveEvent sending
    Safari: (WebKit) &gt;&gt;&gt; WebPageProxy::didReceiveEvent sending</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213840</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-22 22:10:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/27505943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213841</commentid>
    <comment_count>2</comment_count>
      <attachid>284402</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-22 22:13:32 -0700</bug_when>
    <thetext>Created attachment 284402
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213843</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-22 22:15:18 -0700</bug_when>
    <thetext>Attachment 284402 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Automation/WebAutomationSession.h:112:  The parameter name &quot;callback&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213844</commentid>
    <comment_count>4</comment_count>
      <attachid>284402</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-07-22 22:24:20 -0700</bug_when>
    <thetext>Comment on attachment 284402
[PATCH] Proposed Fix

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

&gt; Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp:1006
&gt; +    if (auto callback = m_pendingKeyboardEventsFlushedCallbacksPerPage.take(page-&gt;pageID()))
&gt; +        callback-&gt;sendFailure(STRING_FOR_PREDEFINED_ERROR_NAME(Timeout));
&gt; +    m_pendingKeyboardEventsFlushedCallbacksPerPage.set(page-&gt;pageID(), WTFMove(callback));

This does multiple hash table lookups, and also, set is less efficient than add. The efficient way to code this is to call add with nullptr, like this:

    auto&amp; callbackInMap = m_pendingKeyboardEventsFlushedCallbacksPerPage.add(page-&gt;pageID(), nullptr).iterator-&gt;value;
    if (callbackInMap)
        callbackInMap-&gt;sendFailure(STRING_FOR_PREDEFINED_ERROR_NAME(Timeout))
    callbackInMap = WTFMove(callback);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213851</commentid>
    <comment_count>5</comment_count>
      <attachid>284402</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-07-22 23:02:00 -0700</bug_when>
    <thetext>Comment on attachment 284402
[PATCH] Proposed Fix

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

LGTM but please check EWS oranges.

&gt; Source/WebKit2/ChangeLog:16
&gt; +        notify it is complete only after WebPageProxy, notifies it of

Nit: extra ,

&gt; Source/WebKit2/ChangeLog:17
&gt; +        having exhausted its key of key events.

Nit: its key of key events?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213855</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-22 23:07:07 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 284402 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284402&amp;action=review
&gt; 
&gt; LGTM but please check EWS oranges.

The are all about &quot;editing/deleting/delete-emoji.html&quot; test failures happening everywhere right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213862</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-22 23:16:56 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/203635&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284402</attachid>
            <date>2016-07-22 22:13:32 -0700</date>
            <delta_ts>2016-07-22 22:24:37 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>key-events.patch</filename>
            <type>text/plain</type>
            <size>8654</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZDY2MjQwLi5mZGNiYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIg
QEAKIDIwMTYtMDctMjIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAor
ICAgICAgICBXZWIgQXV0b21hdGlvbjogQWxsIGtleSBldmVudHMgc2hvdWxkIGJlIHByb2Nlc3Nl
ZCBiZWZvcmUgc2VuZGluZyByZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMTE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzUwNTk0
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IGV2YWx1YXRpbmcgcGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zLCB3ZSB3ZXJlIHNlbmRpbmcg
YWxsCisgICAgICAgIE5TRXZlbnRzIHN5bmNocm9ub3VzbHksIGJ1dCBiZWNhdXNlIFdlYlBhZ2VQ
cm94eSB3YXMgZG9pbmcgaXRzCisgICAgICAgIG93biBxdWV1ZWluZyBhbmQgYXN5bmNocm9ub3Vz
IHByb2Nlc3Npbmcgb2YgdGhvc2Uga2V5IGV2ZW50cywgd2UKKyAgICAgICAgd291bGQgcmVjZWl2
ZSBhbmQgcmVzcG9uc2UgdG8gdGhlIG5leHQgQXV0b21hdGlvbiBjb21tYW5kIGJlZm9yZQorICAg
ICAgICBoYXZpbmcgY29tcGxldGVkIGFsbCBvZiB0aGUga2V5IGV2ZW50cy4KKworICAgICAgICBU
aGlzIG1ha2VzIHBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyBhc3luY2hyb25vdXMuIEl0IHdp
bGwKKyAgICAgICAgbm90aWZ5IGl0IGlzIGNvbXBsZXRlIG9ubHkgYWZ0ZXIgV2ViUGFnZVByb3h5
LCBub3RpZmllcyBpdCBvZgorICAgICAgICBoYXZpbmcgZXhoYXVzdGVkIGl0cyBrZXkgb2Yga2V5
IGV2ZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNv
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjprZXlib2FyZEV2ZW50
c0ZsdXNoZWRGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246
OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlRXZlbnQpOgorCisyMDE2LTA3LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEF1dG9tYXRpb246IFdlYkF1dG9tYXRpb25TZXNz
aW9uOjpkZWxldGVBbGxDb29raWVzIG5ldmVyIGNhbGxzIGNhbGxiYWNrLCBoYW5ncyBhdXRvbWF0
aW9uIHNlc3Npb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MDExMwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjczMDgxMjQ+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXgg
ZThmYWQyNy4uNDZjY2VhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1
dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgpAQCAtMzM5LDcgKzMzOSw4IEBACiAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIk
cmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxl
IGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB3aGljaCBzaG91bGQgcmVjZWl2ZSBrZXkuIiB9LAog
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW50ZXJhY3Rpb25zIiwgInR5cGUiOiAiYXJyYXki
LCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWJvYXJkSW50ZXJhY3Rpb24iIH0sICJkZXNjcmlwdGlv
biI6ICJBbiBvcmRlcmVkIGxpc3Qgb2Yga2V5IHNlcXVlbmNlcyB0byBiZSBkZWxpdmVyZWQgdXNp
bmcgbmF0aXZlIGtleSBldmVudHMuIiB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAg
ICAgICAibmFtZSI6ICJ0YWtlU2NyZWVuc2hvdCIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5k
ZXggMjM0ZGNiYS4uNzNhOWI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtNDcxLDYg
KzQ3MSwxMiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0b3JGcm9udGVuZExv
YWRlZChjb25zdCBXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3Vj
Y2VzcyhJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKIH0KIAordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6a2V5Ym9hcmRFdmVudHNGbHVzaGVkRm9yUGFnZShjb25zdCBXZWJQYWdlUHJveHkm
IHBhZ2UpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdLZXlib2FyZEV2ZW50
c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlLnRha2UocGFnZS5wYWdlSUQoKSkpCisgICAgICAgIGNh
bGxiYWNrLT5zZW5kU3VjY2VzcyhJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKK30KKwogdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVIYW5kbGUsIGNvbnN0IFN0cmlu
ZyYgZnVuY3Rpb24sIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yQXJyYXkmIGFyZ3VtZW50cywg
Y29uc3QgYm9vbCogb3B0aW9uYWxFeHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBjb25z
dCBpbnQqIG9wdGlvbmFsQ2FsbGJhY2tUaW1lb3V0LCBSZWY8RXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3
ZWJQYWdlUHJveHlGb3JIYW5kbGUoYnJvd3NpbmdDb250ZXh0SGFuZGxlKTsKQEAgLTkzMCw3ICs5
MzYsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwZXJmb3JtTW91c2VJbnRlcmFjdGlv
bihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvcgogI2VuZGlmIC8vIFVTRShBUFBLSVQpCiB9
CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9u
cyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJ
bnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMpCit2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMoRXJyb3JTdHJpbmcmIGVycm9y
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JB
cnJheSYgaW50ZXJhY3Rpb25zLCBSZWY8UGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zQ2FsbGJh
Y2s+JiYgY2FsbGJhY2spCiB7CiAjaWYgIVVTRShBUFBLSVQpCiAgICAgRkFJTF9XSVRIX1BSRURF
RklORURfRVJST1IoTm90SW1wbGVtZW50ZWQpOwpAQCAtOTkyLDkgKzk5OCwxNSBAQCB2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLAogICAgIH0KIAogICAgIEFTU0VSVChhY3Rpb25zVG9QZXJmb3JtLnNp
emUoKSk7CisgICAgaWYgKCFhY3Rpb25zVG9QZXJmb3JtLnNpemUoKSkKKyAgICAgICAgRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW50ZXJuYWxFcnJvciwgIk5vIGFjdGlv
bnMgdG8gcGVyZm9ybS4iKTsKKworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nS2V5
Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZS50YWtlKHBhZ2UtPnBhZ2VJRCgpKSkK
KyAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJP
Ul9OQU1FKFRpbWVvdXQpKTsKKyAgICBtX3BlbmRpbmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxs
YmFja3NQZXJQYWdlLnNldChwYWdlLT5wYWdlSUQoKSwgV1RGTW92ZShjYWxsYmFjaykpOworCiAg
ICAgZm9yIChhdXRvJiBhY3Rpb24gOiBhY3Rpb25zVG9QZXJmb3JtKQogICAgICAgICBhY3Rpb24o
KTsKLQogI2VuZGlmIC8vIFVTRShBUFBLSVQpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4
IGI2MTJmNTYuLjkwMDRmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtODQsNiArODQsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIG5hdmlnYXRpb25PY2N1cnJlZEZvclBhZ2UoY29uc3QgV2Vi
UGFnZVByb3h5Jik7CiAgICAgdm9pZCBpbnNwZWN0b3JGcm9udGVuZExvYWRlZChjb25zdCBXZWJQ
YWdlUHJveHkmKTsKKyAgICB2b2lkIGtleWJvYXJkRXZlbnRzRmx1c2hlZEZvclBhZ2UoY29uc3Qg
V2ViUGFnZVByb3h5Jik7CiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICAvLyBJ
bnNwZWN0b3I6OlJlbW90ZUF1dG9tYXRpb25UYXJnZXQgQVBJCkBAIC0xMDgsNyArMTA5LDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVBdXRvQ2Fw
dHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBv
cHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBjb25zdCBJbnNwZWN0
b3I6Okluc3BlY3RvckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRXhwZWN0
c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25hbENhbGxiYWNrVGlt
ZW91dCwgUmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcjo6
RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwZXJmb3JtTW91c2VJbnRlcmFjdGlvbihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiByZXF1ZXN0
ZWRQb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUJ1dHRvbiwgY29uc3QgU3RyaW5nJiBtb3Vz
ZUludGVyYWN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBrZXlNb2RpZmll
cnMsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQb2ludD4mIHVwZGF0
ZWRQb3NpdGlvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlv
bnMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJ
bnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMpIG92ZXJyaWRlOworICAgIHZv
aWQgcGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JBcnJheSYgaW50
ZXJhY3Rpb25zLCBSZWY8UGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zQ2FsbGJhY2s+JiYgY2Fs
bGJhY2spIG92ZXJyaWRlOwogICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoSW5zcGVjdG9yOjpFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBSZWY8SW5zcGVjdG9yOjpBdXRvbWF0aW9u
QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyOjpUYWtlU2NyZWVuc2hvdENhbGxiYWNrPiYmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5n
KiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBpbnQqIG9wdGlvbmFsT3JkaW5hbCwgY29uc3Qg
U3RyaW5nKiBvcHRpb25hbE5hbWUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxOb2RlSGFuZGxlLCBS
ZWY8UmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGZyYW1lSGFuZGxl
LCBSZWY8UmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwpAQCAt
MTc3LDggKzE3OCw4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBt
X2hhbmRsZVdlYkZyYW1lTWFwOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05hdmlnYXRp
b25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2U7Ci0KICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4g
bV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFnZTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9w
ZW5kaW5nS2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZTsKIAogICAgIHVpbnQ2
NF90IG1fbmV4dEV2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrSUQgeyAxIH07CiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVy
SGFuZGxlcjo6RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4+IG1fZXZhbHVhdGVK
YXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDg3YThmMjUuLjlmZjJkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00ODY4LDYgKzQ4NjgsMTAgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVUeXBlLCBib29sIGhhbmRs
ZWQpCiAKICAgICAgICAgaWYgKCFtX2tleUV2ZW50UXVldWUuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpLZXlFdmVudChtX2tleUV2ZW50
UXVldWUuZmlyc3QoKSksIG1fcGFnZUlEKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBp
ZiAoYXV0byogYXV0b21hdGlvblNlc3Npb24gPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRv
bWF0aW9uU2Vzc2lvbigpKQorICAgICAgICAgICAgICAgIGF1dG9tYXRpb25TZXNzaW9uLT5rZXli
b2FyZEV2ZW50c0ZsdXNoZWRGb3JQYWdlKCp0aGlzKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8v
IFRoZSBjYWxsIHRvIGRvbmVXaXRoS2V5RXZlbnQgbWF5IGNsb3NlIHRoaXMgV2ViUGFnZS4KICAg
ICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHRoaXMgYmVpbmcgZGVzdHJveWVkLgo=
</data>
<flag name="review"
          id="308051"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>