<?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>170090</bug_id>
          
          <creation_ts>2017-03-24 17:40:02 -0700</creation_ts>
          <short_desc>Web Inspector: WebSockets: Messages log should remain being scrolled to the bottom when a new message is added</short_desc>
          <delta_ts>2017-03-29 18:06:39 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>mattbaker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1291096</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-03-24 17:40:02 -0700</bug_when>
    <thetext>Adding a new message to WebSockets content view should scroll it to the bottom when WebSockets content view was scrolled to the bottom right before the new message being added.

In this regard, WebSockets content view should behave the same as the Console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291689</commentid>
    <comment_count>1</comment_count>
      <attachid>305527</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-03-27 17:00:53 -0700</bug_when>
    <thetext>Created attachment 305527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291730</commentid>
    <comment_count>2</comment_count>
      <attachid>305527</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-03-27 18:29:03 -0700</bug_when>
    <thetext>Comment on attachment 305527
Patch

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

r=me, with some style suggestions.

&gt; Source/WebInspectorUI/ChangeLog:16
&gt; +        Batch WebSocketContentView DOM modifications using requestAnimationFrames.

&quot;requestAnimationFrame&quot; should be singular.

&gt; Source/WebInspectorUI/UserInterface/Views/WebSocketContentView.js:103
&gt; +        this._scheduledUpdateFramesIdentifier = requestAnimationFrame(() =&gt; this._updateFrames());

Utilities.js defines Object.onNextFrame, which does exactly this! You could probably switch to that and remove a bunch of boilerplate.

For an example see TreeElement.js:194.

&gt; Source/WebInspectorUI/UserInterface/Views/WebSocketContentView.js:145
&gt; +            isText: opcode === WebInspector.WebSocketResource.OpCodes.TextFrame,

Since its value is used above, `isText` could be a stand-alone variable, defined and initialized above `nodeText`:

let isText = opcode === WebInspector.WebSocketResource.OpCodes.TextFrame;
let nodeText = isText ? data : WebInspector.WebSocketContentView.textForOpcode(opcode);

let attributes = {isOutgoing, isText};
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292648</commentid>
    <comment_count>3</comment_count>
      <attachid>305813</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-03-29 17:25:05 -0700</bug_when>
    <thetext>Created attachment 305813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292661</commentid>
    <comment_count>4</comment_count>
      <attachid>305813</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-29 18:06:34 -0700</bug_when>
    <thetext>Comment on attachment 305813
Patch

Clearing flags on attachment: 305813

Committed r214587: &lt;http://trac.webkit.org/changeset/214587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292662</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-29 18:06:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305527</attachid>
            <date>2017-03-27 17:00:53 -0700</date>
            <delta_ts>2017-03-29 17:25:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6574</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRlMDI3MDAuLmNiNzI2NzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTAzLTI3ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYlNv
Y2tldHM6IE1lc3NhZ2VzIGxvZyBzaG91bGQgcmVtYWluIGJlaW5nIHNjcm9sbGVkIHRvIHRoZSBi
b3R0b20gd2hlbiBhIG5ldyBtZXNzYWdlIGlzIGFkZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwOTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgbWFueSBXZWIgU29ja2V0IG1lc3NhZ2Vz
IHF1aWNrbHkgY2FuIGNyZWF0ZSBhIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2suIEJhdGNoIGFkZGl0
aW9uIG9mIERhdGFHcmlkIG5vZGVzCisgICAgICAgIHVzaW5nIHJlcXVlc3RBbmltYXRpb25GcmFt
ZSwgYW5kIHNjcm9sbCB0byB0aGUgYm90dG9tIG9mIHRoZSBEYXRhR3JpZCBhdCBtb3N0IG9uY2Ug
cGVyIGEgYmF0Y2ggdXBkYXRlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9XZWJT
b2NrZXRDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2NrZXRDb250
ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV2ViU29ja2V0Q29udGVudFZpZXcucHJv
dG90eXBlLnNob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2NrZXRDb250ZW50Vmll
dy5wcm90b3R5cGUuaGlkZGVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2NrZXRDb250
ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZUZyYW1lc1Nvb24pOgorICAgICAgICBCYXRjaCBXZWJT
b2NrZXRDb250ZW50VmlldyBET00gbW9kaWZpY2F0aW9ucyB1c2luZyByZXF1ZXN0QW5pbWF0aW9u
RnJhbWVzLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuV2ViU29ja2V0Q29udGVudFZpZXcucHJv
dG90eXBlLl91cGRhdGVGcmFtZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldlYlNvY2tldENv
bnRlbnRWaWV3LnByb3RvdHlwZS5fYWRkRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldl
YlNvY2tldENvbnRlbnRWaWV3LnByb3RvdHlwZS5hZGRGcmFtZSk6IERlbGV0ZWQuCisgICAgICAg
IE1ha2UgYWRkRnJhbWUgbWV0aG9kIHByaXZhdGUgc2luY2UgaXQgaXNuJ3QgdXNlZCBhbnl3aGVy
ZSBvdXRzaWRlIG9mIHRoaXMgY2xhc3MuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2Nr
ZXRDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZVN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAg
TWFrZSBfdXBkYXRlU3RhdGUgYSBwYXJ0IG9mIF91cGRhdGVGcmFtZXNTb29uLgorCiAyMDE3LTAz
LTI0ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJUTDogbnVtYmVyIHNjcmlwdHMgYXJlIHVzZWQgaW5jb25zaXN0ZW50bHkgdGhyb3VnaG91
dCB0aGUgVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1dlYlNvY2tldENvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvV2ViU29ja2V0Q29udGVudFZpZXcuanMKaW5kZXggNzMyYWZkMS4u
ZGNkZjc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvV2ViU29ja2V0Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvV2ViU29ja2V0Q29udGVudFZpZXcuanMKQEAgLTM0LDYgKzM0
LDcgQEAgV2ViSW5zcGVjdG9yLldlYlNvY2tldENvbnRlbnRWaWV3ID0gY2xhc3MgV2ViU29ja2V0
Q29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgdGhpcy5fcmVzb3VyY2UgPSBy
ZXNvdXJjZTsKICAgICAgICAgdGhpcy5fZnJhbWVzUmVuZGVyZWQgPSAwOwogICAgICAgICB0aGlz
Ll9sYXN0UmVuZGVyZWRSZWFkeVN0YXRlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fc2NoZWR1bGVk
VXBkYXRlRnJhbWVzSWRlbnRpZmllciA9IDA7CiAKICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAo
aU9TIDEwLjMpOiBgd2FsbHRpbWVgIGRpZCBub3QgZXhpc3QgaW4gMTAuMyBhbmQgZWFybGllci4K
ICAgICAgICAgdGhpcy5fc2hvd1RpbWVDb2x1bW4gPSBOZXR3b3JrQWdlbnQuaGFzRXZlbnRQYXJh
bWV0ZXIoIndlYlNvY2tldFdpbGxTZW5kSGFuZHNoYWtlUmVxdWVzdCIsICJ3YWxsdGltZSIpOwpA
QCAtODIsNTYgKzgzLDY5IEBAIFdlYkluc3BlY3Rvci5XZWJTb2NrZXRDb250ZW50VmlldyA9IGNs
YXNzIFdlYlNvY2tldENvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgc2hvd24oKQog
ICAgIHsKICAgICAgICAgdGhpcy5fdXBkYXRlRnJhbWVzKCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0
ZVN0YXRlKCk7Ci0KLSAgICAgICAgdGhpcy5fcmVzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZlbnQuRnJhbWVBZGRlZCwgdGhpcy5fdXBkYXRl
RnJhbWVzLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZlbnQuUmVhZHlTdGF0ZUNoYW5nZWQsIHRo
aXMuX3VwZGF0ZVN0YXRlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcmVzb3VyY2UuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZlbnQuRnJhbWVBZGRlZCwg
dGhpcy5fdXBkYXRlRnJhbWVzU29vbiwgdGhpcyk7CisgICAgICAgIHRoaXMuX3Jlc291cmNlLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLkV2ZW50LlJlYWR5
U3RhdGVDaGFuZ2VkLCB0aGlzLl91cGRhdGVGcmFtZXNTb29uLCB0aGlzKTsKICAgICB9CiAKICAg
ICBoaWRkZW4oKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2UucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZlbnQuRnJhbWVBZGRlZCwgdGhp
cy5fdXBkYXRlRnJhbWVzLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2UucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZlbnQuUmVhZHlTdGF0
ZUNoYW5nZWQsIHRoaXMuX3VwZGF0ZVN0YXRlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcmVzb3Vy
Y2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuRXZl
bnQuRnJhbWVBZGRlZCwgdGhpcy5fdXBkYXRlRnJhbWVzU29vbiwgdGhpcyk7CisgICAgICAgIHRo
aXMuX3Jlc291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJl
c291cmNlLkV2ZW50LlJlYWR5U3RhdGVDaGFuZ2VkLCB0aGlzLl91cGRhdGVGcmFtZXNTb29uLCB0
aGlzKTsKICAgICB9CiAKLSAgICBhZGRGcmFtZShkYXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHRp
bWUpCi0gICAgewotICAgICAgICBsZXQgbm9kZVRleHQ7Ci0gICAgICAgIGlmIChvcGNvZGUgPT09
IFdlYkluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5PcENvZGVzLlRleHRGcmFtZSkKLSAgICAg
ICAgICAgIG5vZGVUZXh0ID0gZGF0YTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbm9kZVRl
eHQgPSBXZWJJbnNwZWN0b3IuV2ViU29ja2V0Q29udGVudFZpZXcudGV4dEZvck9wY29kZShvcGNv
ZGUpOworICAgIC8vIFByaXZhdGUKIAotICAgICAgICBsZXQgYXR0cmlidXRlcyA9IHsKLSAgICAg
ICAgICAgIGlzT3V0Z29pbmcsCi0gICAgICAgICAgICBpc1RleHQ6IG9wY29kZSA9PT0gV2ViSW5z
cGVjdG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29kZXMuVGV4dEZyYW1lLAotICAgICAgICB9Owor
ICAgIF91cGRhdGVGcmFtZXNTb29uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zY2hlZHVs
ZWRVcGRhdGVGcmFtZXNJZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IHRoaXMuX2FkZFJvdyhub2RlVGV4dCwgdGltZSwgYXR0cmlidXRlcyk7CisgICAgICAgIHRoaXMu
X3NjaGVkdWxlZFVwZGF0ZUZyYW1lc0lkZW50aWZpZXIgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
KCkgPT4gdGhpcy5fdXBkYXRlRnJhbWVzKCkpOwogICAgIH0KIAotICAgIC8vIFByaXZhdGUKLQog
ICAgIF91cGRhdGVGcmFtZXMoKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NjaGVkdWxlZFVw
ZGF0ZUZyYW1lc0lkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1l
KHRoaXMuX3NjaGVkdWxlZFVwZGF0ZUZyYW1lc0lkZW50aWZpZXIpOworICAgICAgICAgICAgdGhp
cy5fc2NoZWR1bGVkVXBkYXRlRnJhbWVzSWRlbnRpZmllciA9IDA7CisgICAgICAgIH0KKworICAg
ICAgICBsZXQgc2hvdWxkU2Nyb2xsVG9Cb3R0b20gPSB0aGlzLl9kYXRhR3JpZC5pc1Njcm9sbGVk
VG9MYXN0Um93KCk7CisKICAgICAgICAgbGV0IGZyYW1lc0xlbmd0aCA9IHRoaXMuX3Jlc291cmNl
LmZyYW1lcy5sZW5ndGg7CiAgICAgICAgIGZvciAobGV0IGluZGV4ID0gdGhpcy5fZnJhbWVzUmVu
ZGVyZWQ7IGluZGV4IDwgZnJhbWVzTGVuZ3RoOyBpbmRleCsrKSB7CiAgICAgICAgICAgICBsZXQg
ZnJhbWUgPSB0aGlzLl9yZXNvdXJjZS5mcmFtZXNbaW5kZXhdOwogICAgICAgICAgICAgbGV0IHtk
YXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHdhbGx0aW1lfSA9IGZyYW1lOwotICAgICAgICAgICAg
dGhpcy5hZGRGcmFtZShkYXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHdhbGx0aW1lKTsKKyAgICAg
ICAgICAgIHRoaXMuX2FkZEZyYW1lKGRhdGEsIGlzT3V0Z29pbmcsIG9wY29kZSwgd2FsbHRpbWUp
OwogICAgICAgICB9CisKICAgICAgICAgdGhpcy5fZnJhbWVzUmVuZGVyZWQgPSBmcmFtZXNMZW5n
dGg7CisKKyAgICAgICAgaWYgKHRoaXMuX2xhc3RSZW5kZXJlZFJlYWR5U3RhdGUgIT09IHRoaXMu
X3Jlc291cmNlLnJlYWR5U3RhdGUpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9yZXNvdXJjZS5y
ZWFkeVN0YXRlID09PSBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuUmVhZHlTdGF0ZS5D
bG9zZWQpCisgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXBwZW5kQ2hpbGQobmV3IFdl
Ykluc3BlY3Rvci5TcGFubmluZ0RhdGFHcmlkTm9kZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNv
bm5lY3Rpb24gQ2xvc2VkIikpKTsKKworICAgICAgICAgICAgdGhpcy5fbGFzdFJlbmRlcmVkUmVh
ZHlTdGF0ZSA9IHRoaXMuX3Jlc291cmNlLnJlYWR5U3RhdGU7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoc2hvdWxkU2Nyb2xsVG9Cb3R0b20pCisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKCkgPT4gdGhpcy5fZGF0YUdyaWQuc2Nyb2xsVG9MYXN0Um93KCkpOwogICAgIH0KIAot
ICAgIF91cGRhdGVTdGF0ZShldmVudCkKKyAgICBfYWRkRnJhbWUoZGF0YSwgaXNPdXRnb2luZywg
b3Bjb2RlLCB0aW1lKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2xhc3RSZW5kZXJlZFJlYWR5
U3RhdGUgPT09IHRoaXMuX3Jlc291cmNlLnJlYWR5U3RhdGUpCi0gICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGxldCBub2RlVGV4dDsKKyAgICAgICAgaWYgKG9wY29kZSA9PT0gV2ViSW5zcGVj
dG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29kZXMuVGV4dEZyYW1lKQorICAgICAgICAgICAgbm9k
ZVRleHQgPSBkYXRhOworICAgICAgICBlbHNlCisgICAgICAgICAgICBub2RlVGV4dCA9IFdlYklu
c3BlY3Rvci5XZWJTb2NrZXRDb250ZW50Vmlldy50ZXh0Rm9yT3Bjb2RlKG9wY29kZSk7CiAKLSAg
ICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnJlYWR5U3RhdGUgPT09IFdlYkluc3BlY3Rvci5XZWJT
b2NrZXRSZXNvdXJjZS5SZWFkeVN0YXRlLkNsb3NlZCkKLSAgICAgICAgICAgIHRoaXMuX2RhdGFH
cmlkLmFwcGVuZENoaWxkKG5ldyBXZWJJbnNwZWN0b3IuU3Bhbm5pbmdEYXRhR3JpZE5vZGUoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJDb25uZWN0aW9uIENsb3NlZCIpKSk7CisgICAgICAgIGxldCBh
dHRyaWJ1dGVzID0geworICAgICAgICAgICAgaXNPdXRnb2luZywKKyAgICAgICAgICAgIGlzVGV4
dDogb3Bjb2RlID09PSBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BDb2Rlcy5UZXh0
RnJhbWUsCisgICAgICAgIH07CiAKLSAgICAgICAgdGhpcy5fbGFzdFJlbmRlcmVkUmVhZHlTdGF0
ZSA9IHRoaXMuX3Jlc291cmNlLnJlYWR5U3RhdGU7CisgICAgICAgIHRoaXMuX2FkZFJvdyhub2Rl
VGV4dCwgdGltZSwgYXR0cmlidXRlcyk7CiAgICAgfQogCiAgICAgX2FkZFJvdyhkYXRhLCB0aW1l
LCBhdHRyaWJ1dGVzID0ge30pCg==
</data>
<flag name="review"
          id="326968"
          type_id="1"
          status="+"
          setter="mattbaker"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305813</attachid>
            <date>2017-03-29 17:25:05 -0700</date>
            <delta_ts>2017-03-29 18:06:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5632</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ3YzMyNGQuLjFmMGRhZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTAzLTI5ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYlNv
Y2tldHM6IE1lc3NhZ2VzIGxvZyBzaG91bGQgcmVtYWluIGJlaW5nIHNjcm9sbGVkIHRvIHRoZSBi
b3R0b20gd2hlbiBhIG5ldyBtZXNzYWdlIGlzIGFkZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwOTAKKworICAgICAgICBSZXZpZXdlZCBieSBN
YXR0IEJha2VyLgorCisgICAgICAgIEFkZGluZyBtYW55IFdlYiBTb2NrZXQgbWVzc2FnZXMgcXVp
Y2tseSBjYW4gY3JlYXRlIGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjay4gQmF0Y2ggYWRkaXRpb24g
b2YgRGF0YUdyaWQgbm9kZXMKKyAgICAgICAgdXNpbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLCBh
bmQgc2Nyb2xsIHRvIHRoZSBib3R0b20gb2YgdGhlIERhdGFHcmlkIGF0IG1vc3Qgb25jZSBwZXIg
YSBiYXRjaCB1cGRhdGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1dlYlNvY2tl
dENvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldlYlNvY2tldENvbnRlbnRW
aWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2NrZXRDb250ZW50Vmlldy5wcm90b3R5
cGUuc2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldlYlNvY2tldENvbnRlbnRWaWV3LnBy
b3RvdHlwZS5oaWRkZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldlYlNvY2tldENvbnRlbnRW
aWV3LnByb3RvdHlwZS5fdXBkYXRlRnJhbWVzU29vbik6CisgICAgICAgIEJhdGNoIFdlYlNvY2tl
dENvbnRlbnRWaWV3IERPTSBtb2RpZmljYXRpb25zIHVzaW5nIHJlcXVlc3RBbmltYXRpb25GcmFt
ZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLldlYlNvY2tldENvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fdXBkYXRlRnJhbWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2NrZXRDb250ZW50
Vmlldy5wcm90b3R5cGUuX2FkZEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XZWJTb2Nr
ZXRDb250ZW50Vmlldy5wcm90b3R5cGUuYWRkRnJhbWUpOiBEZWxldGVkLgorICAgICAgICBNYWtl
IGFkZEZyYW1lIG1ldGhvZCBwcml2YXRlIHNpbmNlIGl0IGlzbid0IHVzZWQgYW55d2hlcmUgb3V0
c2lkZSBvZiB0aGlzIGNsYXNzLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuV2ViU29ja2V0Q29u
dGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIE1ha2Ug
X3VwZGF0ZVN0YXRlIGEgcGFydCBvZiBfdXBkYXRlRnJhbWVzU29vbi4KKwogMjAxNy0wMy0yOCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFVuYWJsZSB0byBGb3JtYXQgSlNPTiBSZXF1ZXN0IERhdGEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1dlYlNvY2tldENvbnRlbnRW
aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvV2ViU29j
a2V0Q29udGVudFZpZXcuanMKaW5kZXggNzMyYWZkMS4uYzg2MTU0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvV2ViU29ja2V0Q29udGVudFZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvV2Vi
U29ja2V0Q29udGVudFZpZXcuanMKQEAgLTgyLDU2ICs4Miw1NyBAQCBXZWJJbnNwZWN0b3IuV2Vi
U29ja2V0Q29udGVudFZpZXcgPSBjbGFzcyBXZWJTb2NrZXRDb250ZW50VmlldyBleHRlbmRzIFdl
Ykluc3BlYwogICAgIHNob3duKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUZyYW1lcygp
OwotICAgICAgICB0aGlzLl91cGRhdGVTdGF0ZSgpOwotCi0gICAgICAgIHRoaXMuX3Jlc291cmNl
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLkV2ZW50LkZy
YW1lQWRkZWQsIHRoaXMuX3VwZGF0ZUZyYW1lcywgdGhpcyk7Ci0gICAgICAgIHRoaXMuX3Jlc291
cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLkV2ZW50
LlJlYWR5U3RhdGVDaGFuZ2VkLCB0aGlzLl91cGRhdGVTdGF0ZSwgdGhpcyk7CisgICAgICAgIHRo
aXMuX3Jlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291
cmNlLkV2ZW50LkZyYW1lQWRkZWQsIHRoaXMuX3VwZGF0ZUZyYW1lc1Nvb24sIHRoaXMpOworICAg
ICAgICB0aGlzLl9yZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5XZWJTb2Nr
ZXRSZXNvdXJjZS5FdmVudC5SZWFkeVN0YXRlQ2hhbmdlZCwgdGhpcy5fdXBkYXRlRnJhbWVzU29v
biwgdGhpcyk7CiAgICAgfQogCiAgICAgaGlkZGVuKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Jl
c291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNl
LkV2ZW50LkZyYW1lQWRkZWQsIHRoaXMuX3VwZGF0ZUZyYW1lcywgdGhpcyk7Ci0gICAgICAgIHRo
aXMuX3Jlc291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLldlYlNvY2tldFJl
c291cmNlLkV2ZW50LlJlYWR5U3RhdGVDaGFuZ2VkLCB0aGlzLl91cGRhdGVTdGF0ZSwgdGhpcyk7
CisgICAgICAgIHRoaXMuX3Jlc291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LldlYlNvY2tldFJlc291cmNlLkV2ZW50LkZyYW1lQWRkZWQsIHRoaXMuX3VwZGF0ZUZyYW1lc1Nv
b24sIHRoaXMpOworICAgICAgICB0aGlzLl9yZXNvdXJjZS5yZW1vdmVFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5XZWJTb2NrZXRSZXNvdXJjZS5FdmVudC5SZWFkeVN0YXRlQ2hhbmdlZCwgdGhp
cy5fdXBkYXRlRnJhbWVzU29vbiwgdGhpcyk7CiAgICAgfQogCi0gICAgYWRkRnJhbWUoZGF0YSwg
aXNPdXRnb2luZywgb3Bjb2RlLCB0aW1lKQotICAgIHsKLSAgICAgICAgbGV0IG5vZGVUZXh0Owot
ICAgICAgICBpZiAob3Bjb2RlID09PSBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BD
b2Rlcy5UZXh0RnJhbWUpCi0gICAgICAgICAgICBub2RlVGV4dCA9IGRhdGE7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG5vZGVUZXh0ID0gV2ViSW5zcGVjdG9yLldlYlNvY2tldENvbnRlbnRW
aWV3LnRleHRGb3JPcGNvZGUob3Bjb2RlKTsKLQotICAgICAgICBsZXQgYXR0cmlidXRlcyA9IHsK
LSAgICAgICAgICAgIGlzT3V0Z29pbmcsCi0gICAgICAgICAgICBpc1RleHQ6IG9wY29kZSA9PT0g
V2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLk9wQ29kZXMuVGV4dEZyYW1lLAotICAgICAg
ICB9OworICAgIC8vIFByaXZhdGUKIAotICAgICAgICB0aGlzLl9hZGRSb3cobm9kZVRleHQsIHRp
bWUsIGF0dHJpYnV0ZXMpOworICAgIF91cGRhdGVGcmFtZXNTb29uKCkKKyAgICB7CisgICAgICAg
IHRoaXMub25OZXh0RnJhbWUuX3VwZGF0ZUZyYW1lcygpOwogICAgIH0KIAotICAgIC8vIFByaXZh
dGUKLQogICAgIF91cGRhdGVGcmFtZXMoKQogICAgIHsKKyAgICAgICAgbGV0IHNob3VsZFNjcm9s
bFRvQm90dG9tID0gdGhpcy5fZGF0YUdyaWQuaXNTY3JvbGxlZFRvTGFzdFJvdygpOworCiAgICAg
ICAgIGxldCBmcmFtZXNMZW5ndGggPSB0aGlzLl9yZXNvdXJjZS5mcmFtZXMubGVuZ3RoOwogICAg
ICAgICBmb3IgKGxldCBpbmRleCA9IHRoaXMuX2ZyYW1lc1JlbmRlcmVkOyBpbmRleCA8IGZyYW1l
c0xlbmd0aDsgaW5kZXgrKykgewogICAgICAgICAgICAgbGV0IGZyYW1lID0gdGhpcy5fcmVzb3Vy
Y2UuZnJhbWVzW2luZGV4XTsKICAgICAgICAgICAgIGxldCB7ZGF0YSwgaXNPdXRnb2luZywgb3Bj
b2RlLCB3YWxsdGltZX0gPSBmcmFtZTsKLSAgICAgICAgICAgIHRoaXMuYWRkRnJhbWUoZGF0YSwg
aXNPdXRnb2luZywgb3Bjb2RlLCB3YWxsdGltZSk7CisgICAgICAgICAgICB0aGlzLl9hZGRGcmFt
ZShkYXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHdhbGx0aW1lKTsKICAgICAgICAgfQorCiAgICAg
ICAgIHRoaXMuX2ZyYW1lc1JlbmRlcmVkID0gZnJhbWVzTGVuZ3RoOworCisgICAgICAgIGlmICh0
aGlzLl9sYXN0UmVuZGVyZWRSZWFkeVN0YXRlICE9PSB0aGlzLl9yZXNvdXJjZS5yZWFkeVN0YXRl
KSB7CisgICAgICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2UucmVhZHlTdGF0ZSA9PT0gV2ViSW5z
cGVjdG9yLldlYlNvY2tldFJlc291cmNlLlJlYWR5U3RhdGUuQ2xvc2VkKQorICAgICAgICAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkLmFwcGVuZENoaWxkKG5ldyBXZWJJbnNwZWN0b3IuU3Bhbm5pbmdE
YXRhR3JpZE5vZGUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25uZWN0aW9uIENsb3NlZCIpKSk7
CisKKyAgICAgICAgICAgIHRoaXMuX2xhc3RSZW5kZXJlZFJlYWR5U3RhdGUgPSB0aGlzLl9yZXNv
dXJjZS5yZWFkeVN0YXRlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNob3VsZFNjcm9sbFRv
Qm90dG9tKQorICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQub25OZXh0RnJhbWUuc2Nyb2xsVG9M
YXN0Um93KCk7CiAgICAgfQogCi0gICAgX3VwZGF0ZVN0YXRlKGV2ZW50KQorICAgIF9hZGRGcmFt
ZShkYXRhLCBpc091dGdvaW5nLCBvcGNvZGUsIHRpbWUpCiAgICAgewotICAgICAgICBpZiAodGhp
cy5fbGFzdFJlbmRlcmVkUmVhZHlTdGF0ZSA9PT0gdGhpcy5fcmVzb3VyY2UucmVhZHlTdGF0ZSkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2UucmVhZHlT
dGF0ZSA9PT0gV2ViSW5zcGVjdG9yLldlYlNvY2tldFJlc291cmNlLlJlYWR5U3RhdGUuQ2xvc2Vk
KQotICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXBwZW5kQ2hpbGQobmV3IFdlYkluc3BlY3Rv
ci5TcGFubmluZ0RhdGFHcmlkTm9kZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbm5lY3Rpb24g
Q2xvc2VkIikpKTsKKyAgICAgICAgbGV0IG5vZGVUZXh0OworICAgICAgICBsZXQgaXNUZXh0ID0g
b3Bjb2RlID09PSBXZWJJbnNwZWN0b3IuV2ViU29ja2V0UmVzb3VyY2UuT3BDb2Rlcy5UZXh0RnJh
bWU7CisgICAgICAgIGlmIChpc1RleHQpCisgICAgICAgICAgICBub2RlVGV4dCA9IGRhdGE7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5vZGVUZXh0ID0gV2ViSW5zcGVjdG9yLldlYlNvY2tl
dENvbnRlbnRWaWV3LnRleHRGb3JPcGNvZGUob3Bjb2RlKTsKIAotICAgICAgICB0aGlzLl9sYXN0
UmVuZGVyZWRSZWFkeVN0YXRlID0gdGhpcy5fcmVzb3VyY2UucmVhZHlTdGF0ZTsKKyAgICAgICAg
dGhpcy5fYWRkUm93KG5vZGVUZXh0LCB0aW1lLCB7aXNPdXRnb2luZywgaXNUZXh0fSk7CiAgICAg
fQogCiAgICAgX2FkZFJvdyhkYXRhLCB0aW1lLCBhdHRyaWJ1dGVzID0ge30pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>