<?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>145554</bug_id>
          
          <creation_ts>2015-06-02 10:58:32 -0700</creation_ts>
          <short_desc>Calling FrameView::viewportContentsChanged() after style recalcs is too expensive</short_desc>
          <delta_ts>2015-06-02 13:21:10 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1098796</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-02 10:58:32 -0700</bug_when>
    <thetext>Calling FrameView::viewportContentsChanged() after style recalcs is too expensive and slows down scrolling on some sites. The reason will call FrameView::viewportContentsChanged() after style recalc is to resume animations in case a composited animation brings an element inside the viewport (as these don&apos;t necessarily cause a layout). However, it is very wasteful to cause viewportContentsChanged() for every style recalc as most of them cannot cause an element to be visible without causing a layout.

We should probably rely on compositing layers being updated after the style recalc instead.

Radar: &lt;rdar://problem/21189478&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098804</commentid>
    <comment_count>1</comment_count>
      <attachid>254075</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-02 11:31:47 -0700</bug_when>
    <thetext>Created attachment 254075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098815</commentid>
    <comment_count>2</comment_count>
      <attachid>254075</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-02 12:06:23 -0700</bug_when>
    <thetext>Comment on attachment 254075
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        No new tests, already covered by:
&gt; +        fast/images/animated-gif-webkit-transform.html

Unfortunate that there is no way to test the performance improvement and catch if we screw it up. We should think about a way to regression test this kind of change. I have a similar issue with my patch that cuts down on unnecessary layout when updating an image but not its dimensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098827</commentid>
    <comment_count>3</comment_count>
      <attachid>254075</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-02 12:24:00 -0700</bug_when>
    <thetext>Comment on attachment 254075
Patch

Simon, can you please take a quick look as well before I land?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098828</commentid>
    <comment_count>4</comment_count>
      <attachid>254075</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-06-02 12:25:47 -0700</bug_when>
    <thetext>Comment on attachment 254075
Patch

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.h:124
&gt; +    void didRecalcStyleWithNoPendingLayout(bool&amp; updatedCompositedLayers);

I think it would be nicer if this were just the return value, with a comment saying what the return value means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098833</commentid>
    <comment_count>5</comment_count>
      <attachid>254080</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-02 12:30:01 -0700</bug_when>
    <thetext>Created attachment 254080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098834</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-02 12:30:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 254075 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=254075&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.h:124
&gt; &gt; +    void didRecalcStyleWithNoPendingLayout(bool&amp; updatedCompositedLayers);
&gt; 
&gt; I think it would be nicer if this were just the return value, with a comment
&gt; saying what the return value means.

Ok, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098861</commentid>
    <comment_count>7</comment_count>
      <attachid>254080</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 13:21:06 -0700</bug_when>
    <thetext>Comment on attachment 254080
Patch

Clearing flags on attachment: 254080

Committed r185118: &lt;http://trac.webkit.org/changeset/185118&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098862</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 13:21:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254075</attachid>
            <date>2015-06-02 11:31:47 -0700</date>
            <delta_ts>2015-06-02 12:29:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145554-20150602113128.patch</filename>
            <type>text/plain</type>
            <size>9310</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY5YTU3NmVlYzIzOGNi
NTEzY2Q0YjgzNzdlNGI5MGIwMThiNThjYi4uNzM5ZTViZGI0MWE0ZmQ5ZjU0NGM2ZGJkM2YxYzRk
MTUwMDRhNDczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE1LTA2LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBGcmFtZVZpZXc6
OnZpZXdwb3J0Q29udGVudHNDaGFuZ2VkKCkgYWZ0ZXIgc3R5bGUgcmVjYWxjcyBpcyB0b28gZXhw
ZW5zaXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDU1NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxMTg5NDc4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9ubHkgY2FsbCBGcmFtZVZpZXc6OnZp
ZXdwb3J0Q29udGVudHNDaGFuZ2VkKCkgYWZ0ZXIgYSBzdHlsZSByZWNhbGMgaWYKKyAgICAgICAg
Y29tcG9zaXRlZCBsYXllcnMgaGF2ZSBiZWVuIHVwZGF0ZWQgKGFuZCB0aGVyZSBpcyBubyBwZW5k
aW5nIGxheW91dCkuCisKKyAgICAgICAgV2UgYWxyZWFkeSB2aWV3cG9ydENvbnRlbnRzQ2hhbmdl
ZCgpIGFmdGVyIGxheW91dCBzbyB3ZSBvbmx5IG5lZWQgdG8KKyAgICAgICAgY2FsbCB2aWV3cG9y
dENvbnRlbnRzQ2hhbmdlZCgpIGFmdGVyIGEgc3R5bGUgcmVjYWxjIGlmIGl0IGRpZCBub3QgY2F1
c2UKKyAgICAgICAgYSBsYXlvdXQgYnV0IG1heSBoYXZlIGNhdXNlZCBhbiBlbGVtZW50IHRvIGJl
Y29tZSB2aXNpYmxlLiBJbgorICAgICAgICBwYXJ0aWN1bGFyLCB0aGlzIGNhbiBoYXBwZW4gaW4g
dGhlIGNhc2Ugb2YgY29tcG9zaXRlZCBhbmltYXRpb25zIChlLmcuCisgICAgICAgIHVzaW5nIC13
ZWJraXQtdHJhbnNmb3JtIHRvIG1vdmUgYW4gZWxlbWVudCBpbnNpZGUgdGhlIHZpZXdwb3J0KS4K
KyAgICAgICAgVGhlcmVmb3JlLCB3ZSBub3cgb25seSBjYWxsIHZpZXdwb3J0Q29udGVudHNDaGFu
Z2VkKCkgYWZ0ZXIgYSBzdHlsZQorICAgICAgICByZWNhbGMgaWYgaXQgY2F1c2VkIGNvbXBvc2l0
ZWQgbGF5ZXJzIHRvIGJlIHVwZGF0ZWQuIFRoaXMgYXZvaWRzIGEgbG90CisgICAgICAgIG9mIHVu
bmVjZXNzYXJ5IGNhbGxzIHRvIHZpZXdwb3J0Q29udGVudHNDaGFuZ2VkKCksIHdoaWNoIGlzIGV4
cGVuc2l2ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieToKKyAg
ICAgICAgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXdlYmtpdC10cmFuc2Zvcm0uaHRtbAorCisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpy
ZWNhbGNTdHlsZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU3R5bGVDaGFuZ2Up
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmRpZFJlY2FsY1N0eWxlV2l0aE5vUGVuZGluZ0xheW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisKIDIwMTUtMDYtMDIg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBT
aGFyZWRCdWZmZXI6OmNvcHkgc2hvdWxkIHJldHVybiBhIFJlZjxTaGFyZWRCdWZmZXI+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA0NmExM2Q1MTBkYmY3OTk1ZTQ2NzljZmUyMjU4MmE3NzIy
YjUxMTkzLi5hZjVkYmU3ZTNhOGMyNTNhODRjNTIzZmFiYTM2NzNhNWJmZDIzNzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE3NjcsNiArMTc2Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJl
Y2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UgY2hhbmdlKQogICAgIC8vIGkuZS4gdXBkYXRpbmcgdGhl
IGZsYWcgaGVyZSB3b3VsZCBiZSB0b28gbGF0ZS4KIAogICAgIG1faW5TdHlsZVJlY2FsYyA9IHRy
dWU7CisgICAgYm9vbCB1cGRhdGVkQ29tcG9zaXRpbmdMYXllcnMgPSBmYWxzZTsKICAgICB7CiAg
ICAgICAgIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgZGlzYWJsZXIoKnRo
aXMpOwogICAgICAgICBXaWRnZXRIaWVyYXJjaHlVcGRhdGVzU3VzcGVuc2lvblNjb3BlIHN1c3Bl
bmRXaWRnZXRIaWVyYXJjaHlVcGRhdGVzOwpAQCAtMTc4MSw3ICsxNzgyLDcgQEAgdm9pZCBEb2N1
bWVudDo6cmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2UpCiAKICAgICAgICAgU3R5bGU6
OnJlc29sdmVUcmVlKCp0aGlzLCBjaGFuZ2UpOwogCi0gICAgICAgIGZyYW1lVmlldy51cGRhdGVD
b21wb3NpdGluZ0xheWVyc0FmdGVyU3R5bGVDaGFuZ2UoKTsKKyAgICAgICAgdXBkYXRlZENvbXBv
c2l0aW5nTGF5ZXJzID0gZnJhbWVWaWV3LnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTdHls
ZUNoYW5nZSgpOwogCiAgICAgICAgIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOwogICAgICAgICBj
bGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwpAQCAtMTgwNyw3ICsxODA4LDcgQEAgdm9pZCBE
b2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2UpCiAgICAgLy8gU29tZSBh
bmltYXRlZCBpbWFnZXMgbWF5IG5vdyBiZSBpbnNpZGUgdGhlIHZpZXdwb3J0IGR1ZSB0byBzdHls
ZSByZWNhbGMsCiAgICAgLy8gcmVzdW1lIHRoZW0gaWYgbmVjZXNzYXJ5IGlmIHRoZXJlIGlzIG5v
IGxheW91dCBwZW5kaW5nLiBPdGhlcndpc2UsIHdlJ2xsCiAgICAgLy8gY2hlY2sgaWYgdGhleSBu
ZWVkIHRvIGJlIHJlc3VtZWQgYWZ0ZXIgbGF5b3V0LgotICAgIGlmICghZnJhbWVWaWV3Lm5lZWRz
TGF5b3V0KCkpCisgICAgaWYgKHVwZGF0ZWRDb21wb3NpdGluZ0xheWVycyAmJiAhZnJhbWVWaWV3
Lm5lZWRzTGF5b3V0KCkpCiAgICAgICAgIGZyYW1lVmlldy52aWV3cG9ydENvbnRlbnRzQ2hhbmdl
ZCgpOwogCiAgICAgLy8gQXMgYSByZXN1bHQgb2YgdGhlIHN0eWxlIHJlY2FsY3VsYXRpb24sIHRo
ZSBjdXJyZW50bHkgaG92ZXJlZCBlbGVtZW50IG1pZ2h0IGhhdmUgYmVlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IDA2MWQzZDljZmFkZWZiYWQ2MTUxMjliZmE2YTg1MDVkNzg3OGM5
YmEuLjg1NGU5OTc4NWZiZjA2ZmE4OGFhODA3NzYyOGVkYjJkNWNkYWNmNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTc1OCwxNyArNzU4LDE5IEBAIHZvaWQgRnJhbWVWaWV3Ojp3
aWxsUmVjYWxjU3R5bGUoKQogICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS53aWxsUmVjYWxj
U3R5bGUoKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0
ZXJTdHlsZUNoYW5nZSgpCitib29sIEZyYW1lVmlldzo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNB
ZnRlclN0eWxlQ2hhbmdlKCkKIHsKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+
cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiB3ZSBleHBlY3QgdG8gdXBkYXRlIGNvbXBv
c2l0aW5nIGFmdGVyIGFuIGluY2lwaWVudCBsYXlvdXQsIGRvbid0IGRvIHNvIGhlcmUuCiAgICAg
aWYgKGluUHJlTGF5b3V0U3R5bGVVcGRhdGUoKSB8fCBsYXlvdXRQZW5kaW5nKCkgfHwgcmVuZGVy
Vmlldy0+bmVlZHNMYXlvdXQoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuZGlkUmVjYWxjU3R5bGVXaXRoTm9Q
ZW5kaW5nTGF5b3V0KCk7CisgICAgYm9vbCB1cGRhdGVkQ29tcG9zaXRlZExheWVycyA9IGZhbHNl
OworICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5kaWRSZWNhbGNTdHlsZVdpdGhOb1BlbmRp
bmdMYXlvdXQodXBkYXRlZENvbXBvc2l0ZWRMYXllcnMpOworICAgIHJldHVybiB1cGRhdGVkQ29t
cG9zaXRlZExheWVyczsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5
ZXJzQWZ0ZXJMYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZTYxYzFhNjIxMTU4
OTEwNmQzOGZhOWFmMjJhMmQ5YzcxZjM4ZTE3Zi4uZGJhNmVjZTg1OTVmYjEyZjQ3ZjljOTBkMjIx
NjhiNjFiZTQwNTU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0xNDksNyArMTQ5LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHdpbGxSZWNhbGNTdHlsZSgpOwotICAgIHZv
aWQgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclN0eWxlQ2hhbmdlKCk7CisgICAgYm9vbCB1
cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU3R5bGVDaGFuZ2UoKTsKICAgICB2b2lkIHVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJMYXlvdXQoKTsKICAgICBib29sIGZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNGcmFtZShGcmFtZSogcm9vdEZyYW1lRm9yRmx1c2gpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4
IDU0YmQ1NjI2YmNiMDAwZTljMzZjYWY3NjM5NzEzNjFlN2I2Y2FhZTEuLjBiNjlmYTVjMjM3NGZm
ZDZhMGRkNjYxODk5Njc4OTIyZjVkNjE1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0zODQsMTMgKzM4NCwxMyBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6d2lsbFJlY2FsY1N0eWxlKCkKICAgICBtX2xheWVy
TmVlZHNDb21wb3NpdGluZ1VwZGF0ZSA9IGZhbHNlOwogfQogCi12b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6ZGlkUmVjYWxjU3R5bGVXaXRoTm9QZW5kaW5nTGF5b3V0KCkKK3ZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpkaWRSZWNhbGNTdHlsZVdpdGhOb1BlbmRpbmdMYXlvdXQoYm9vbCYg
dXBkYXRlZENvbXBvc2l0ZWRMYXllcnMpCiB7CiAgICAgaWYgKCFtX2xheWVyTmVlZHNDb21wb3Np
dGluZ1VwZGF0ZSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGNhY2hlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZsYWdzKCk7Ci0gICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRp
bmdVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKTsKKyAgICB1cGRhdGVkQ29tcG9zaXRlZExheWVycyA9
IHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlQWZ0ZXJTdHlsZUNoYW5n
ZSk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjdXN0b21Qb3NpdGlvbkZvclZp
c2libGVSZWN0Q29tcHV0YXRpb24oY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwg
RmxvYXRQb2ludCYgcG9zaXRpb24pIGNvbnN0CkBAIC02NjMsNyArNjYzLDcgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmNhbmNlbENvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKQogICAgIG1f
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lci5zdG9wKCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5
cGUgdXBkYXRlVHlwZSwgUmVuZGVyTGF5ZXIqIHVwZGF0ZVJvb3QpCitib29sIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVUeXBl
IHVwZGF0ZVR5cGUsIFJlbmRlckxheWVyKiB1cGRhdGVSb290KQogewogICAgIExPRyhDb21wb3Np
dGluZywgIlJlbmRlckxheWVyQ29tcG9zaXRvciAlcCB1cGRhdGVDb21wb3NpdGluZ0xheWVycyAl
ZCAlcCIsIHRoaXMsIHVwZGF0ZVR5cGUsIHVwZGF0ZVJvb3QpOwogCkBAIC02NzMsMTcgKzY3Mywx
NyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMo
Q29tcG9zaXRpbmdVcGRhdGVUeXBlIHVwZGF0ZQogICAgIAogICAgIC8vIENvbXBvc2l0aW5nIGxh
eWVycyB3aWxsIGJlIHVwZGF0ZWQgaW4gRG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2Vk
KGJvb2wpIGlmIHN1cHByZXNzZWQgaGVyZS4KICAgICBpZiAoIW1fcmVuZGVyVmlldy5kb2N1bWVu
dCgpLnZpc3VhbFVwZGF0ZXNBbGxvd2VkKCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgLy8gQXZvaWQgdXBkYXRpbmcgdGhlIGxheWVycyB3aXRoIG9sZCB2
YWx1ZXMuIENvbXBvc2l0aW5nIGxheWVycyB3aWxsIGJlIHVwZGF0ZWQgYWZ0ZXIgdGhlIGxheW91
dCBpcyBmaW5pc2hlZC4KICAgICBpZiAobV9yZW5kZXJWaWV3Lm5lZWRzTGF5b3V0KCkpCi0gICAg
ICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKChtX2ZvcmNlQ29t
cG9zaXRpbmdNb2RlIHx8IG1fcmVuZGVyVmlldy5mcmFtZSgpLm1haW5GcmFtZSgpLnBhZ2VPdmVy
bGF5Q29udHJvbGxlcigpLm92ZXJsYXlDb3VudCgpKSAmJiAhbV9jb21wb3NpdGluZykKICAgICAg
ICAgZW5hYmxlQ29tcG9zaXRpbmdNb2RlKHRydWUpOwogCiAgICAgaWYgKCFtX3JlZXZhbHVhdGVD
b21wb3NpdGluZ0FmdGVyTGF5b3V0ICYmICFtX2NvbXBvc2l0aW5nKQotICAgICAgICByZXR1cm47
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICsrbV9jb21wb3NpdGluZ1VwZGF0ZUNvdW50
OwogCkBAIC03MTEsNyArNzExLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGUKICAgICB9CiAK
ICAgICBpZiAoIWNoZWNrRm9ySGllcmFyY2h5VXBkYXRlICYmICFuZWVkR2VvbWV0cnlVcGRhdGUp
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBuZWVk
SGllcmFyY2h5VXBkYXRlID0gbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkOwogICAgIGJv
b2wgaXNGdWxsVXBkYXRlID0gIXVwZGF0ZVJvb3Q7CkBAIC04MDAsNiArODAwLDggQEAgdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5n
VXBkYXRlVHlwZSB1cGRhdGUKIAogICAgIC8vIEluZm9ybSB0aGUgaW5zcGVjdG9yIHRoYXQgdGhl
IGxheWVyIHRyZWUgaGFzIGNoYW5nZWQuCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjps
YXllclRyZWVEaWRDaGFuZ2UocGFnZSgpKTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YXBwZW5kRG9jdW1lbnRPdmVybGF5TGF5ZXJzKFZlY3Rv
cjxHcmFwaGljc0xheWVyKj4mIGNoaWxkTGlzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAzYThlMWJlMDQ3M2VkZDU3YjlhN2Ez
MjgyZjZlNWNkZjgxODkxMWNjLi5iZGZlMWRhNzAxNGVjODVhOWM3MWE2MjVjMzg5YWYzNmY4ZjRk
YmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5oCkBAIC0xMjEsNyArMTIxLDcgQEAgcHVibGljOgogICAgIGJvb2wgY29tcG9zaXRpbmdM
YXllcnNOZWVkUmVidWlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRpbmdMYXllcnNOZWVk
UmVidWlsZDsgfQogICAgIAogICAgIHZvaWQgd2lsbFJlY2FsY1N0eWxlKCk7Ci0gICAgdm9pZCBk
aWRSZWNhbGNTdHlsZVdpdGhOb1BlbmRpbmdMYXlvdXQoKTsKKyAgICB2b2lkIGRpZFJlY2FsY1N0
eWxlV2l0aE5vUGVuZGluZ0xheW91dChib29sJiB1cGRhdGVkQ29tcG9zaXRlZExheWVycyk7CiAK
ICAgICAvLyBHcmFwaGljc0xheWVycyBidWZmZXIgc3RhdGUsIHdoaWNoIGdldHMgcHVzaGVkIHRv
IHRoZSB1bmRlcmx5aW5nIHBsYXRmb3JtIGxheWVycwogICAgIC8vIGF0IHNwZWNpZmljIHRpbWVz
LgpAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENoYW5nZVZpc2libGVS
ZWN0KCk7CiAgICAgCiAgICAgLy8gUmVidWlsZCB0aGUgdHJlZSBvZiBjb21wb3NpdGluZyBsYXll
cnMKLSAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlw
ZSwgUmVuZGVyTGF5ZXIqIHVwZGF0ZVJvb3QgPSBudWxscHRyKTsKKyAgICBib29sIHVwZGF0ZUNv
bXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSwgUmVuZGVyTGF5ZXIqIHVwZGF0
ZVJvb3QgPSBudWxscHRyKTsKICAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCB3aGVuIHN0YXRlIGNo
YW5nZXMgYW5kIHdlIGRvIG5vdCBleGVwZWN0IGEgc3R5bGUgdXBkYXRlIG9yIGxheW91dCB0byBo
YXBwZW4gc29vbiAoZS5nLiB3aGVuCiAgICAgLy8gd2UgZGlzY292ZXIgdGhhdCBhbiBpZnJhbWUg
aXMgb3ZlcmxhcHBlZCBkdXJpbmcgcGFpbnRpbmcpLgogICAgIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyVXBkYXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254080</attachid>
            <date>2015-06-02 12:30:01 -0700</date>
            <delta_ts>2015-06-02 13:21:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145554-20150602122942.patch</filename>
            <type>text/plain</type>
            <size>9245</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY5YTU3NmVlYzIzOGNi
NTEzY2Q0YjgzNzdlNGI5MGIwMThiNThjYi4uM2JmYjZmZDMxNjIwODg4ZGM4NDkwMmQxMGIxZWY3
ZjA4OTIzNGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE1LTA2LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbGluZyBGcmFtZVZpZXc6
OnZpZXdwb3J0Q29udGVudHNDaGFuZ2VkKCkgYWZ0ZXIgc3R5bGUgcmVjYWxjcyBpcyB0b28gZXhw
ZW5zaXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDU1NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxMTg5NDc4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyIGFuZCBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgT25seSBjYWxs
IEZyYW1lVmlldzo6dmlld3BvcnRDb250ZW50c0NoYW5nZWQoKSBhZnRlciBhIHN0eWxlIHJlY2Fs
YyBpZgorICAgICAgICBjb21wb3NpdGVkIGxheWVycyBoYXZlIGJlZW4gdXBkYXRlZCAoYW5kIHRo
ZXJlIGlzIG5vIHBlbmRpbmcgbGF5b3V0KS4KKworICAgICAgICBXZSBhbHJlYWR5IHZpZXdwb3J0
Q29udGVudHNDaGFuZ2VkKCkgYWZ0ZXIgbGF5b3V0IHNvIHdlIG9ubHkgbmVlZCB0bworICAgICAg
ICBjYWxsIHZpZXdwb3J0Q29udGVudHNDaGFuZ2VkKCkgYWZ0ZXIgYSBzdHlsZSByZWNhbGMgaWYg
aXQgZGlkIG5vdCBjYXVzZQorICAgICAgICBhIGxheW91dCBidXQgbWF5IGhhdmUgY2F1c2VkIGFu
IGVsZW1lbnQgdG8gYmVjb21lIHZpc2libGUuIEluCisgICAgICAgIHBhcnRpY3VsYXIsIHRoaXMg
Y2FuIGhhcHBlbiBpbiB0aGUgY2FzZSBvZiBjb21wb3NpdGVkIGFuaW1hdGlvbnMgKGUuZy4KKyAg
ICAgICAgdXNpbmcgLXdlYmtpdC10cmFuc2Zvcm0gdG8gbW92ZSBhbiBlbGVtZW50IGluc2lkZSB0
aGUgdmlld3BvcnQpLgorICAgICAgICBUaGVyZWZvcmUsIHdlIG5vdyBvbmx5IGNhbGwgdmlld3Bv
cnRDb250ZW50c0NoYW5nZWQoKSBhZnRlciBhIHN0eWxlCisgICAgICAgIHJlY2FsYyBpZiBpdCBj
YXVzZWQgY29tcG9zaXRlZCBsYXllcnMgdG8gYmUgdXBkYXRlZC4gVGhpcyBhdm9pZHMgYSBsb3QK
KyAgICAgICAgb2YgdW5uZWNlc3NhcnkgY2FsbHMgdG8gdmlld3BvcnRDb250ZW50c0NoYW5nZWQo
KSwgd2hpY2ggaXMgZXhwZW5zaXZlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxyZWFkeSBj
b3ZlcmVkIGJ5OgorICAgICAgICBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtd2Via2l0LXRyYW5z
Zm9ybS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0
ZXJTdHlsZUNoYW5nZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQ29tcG9zaXRvcjo6ZGlkUmVjYWxjU3R5bGVXaXRoTm9QZW5kaW5nTGF5b3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRp
bmdMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoK
KwogMjAxNS0wNi0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZy
PgogCiAgICAgICAgIFNoYXJlZEJ1ZmZlcjo6Y29weSBzaG91bGQgcmV0dXJuIGEgUmVmPFNoYXJl
ZEJ1ZmZlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2YTEzZDUxMGRiZjc5OTVlNDY3
OWNmZTIyNTgyYTc3MjJiNTExOTMuLmFmNWRiZTdlM2E4YzI1M2E4NGM1MjNmYWJhMzY3M2E1YmZk
MjM3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc2Nyw2ICsxNzY3LDcgQEAgdm9p
ZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2UpCiAgICAgLy8gaS5l
LiB1cGRhdGluZyB0aGUgZmxhZyBoZXJlIHdvdWxkIGJlIHRvbyBsYXRlLgogCiAgICAgbV9pblN0
eWxlUmVjYWxjID0gdHJ1ZTsKKyAgICBib29sIHVwZGF0ZWRDb21wb3NpdGluZ0xheWVycyA9IGZh
bHNlOwogICAgIHsKICAgICAgICAgU3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxl
ciBkaXNhYmxlcigqdGhpcyk7CiAgICAgICAgIFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5z
aW9uU2NvcGUgc3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXM7CkBAIC0xNzgxLDcgKzE3ODIs
NyBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIGNoYW5nZSkKIAog
ICAgICAgICBTdHlsZTo6cmVzb2x2ZVRyZWUoKnRoaXMsIGNoYW5nZSk7CiAKLSAgICAgICAgZnJh
bWVWaWV3LnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAg
ICB1cGRhdGVkQ29tcG9zaXRpbmdMYXllcnMgPSBmcmFtZVZpZXcudXBkYXRlQ29tcG9zaXRpbmdM
YXllcnNBZnRlclN0eWxlQ2hhbmdlKCk7CiAKICAgICAgICAgY2xlYXJOZWVkc1N0eWxlUmVjYWxj
KCk7CiAgICAgICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CkBAIC0xODA3LDcgKzE4
MDgsNyBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIGNoYW5nZSkK
ICAgICAvLyBTb21lIGFuaW1hdGVkIGltYWdlcyBtYXkgbm93IGJlIGluc2lkZSB0aGUgdmlld3Bv
cnQgZHVlIHRvIHN0eWxlIHJlY2FsYywKICAgICAvLyByZXN1bWUgdGhlbSBpZiBuZWNlc3Nhcnkg
aWYgdGhlcmUgaXMgbm8gbGF5b3V0IHBlbmRpbmcuIE90aGVyd2lzZSwgd2UnbGwKICAgICAvLyBj
aGVjayBpZiB0aGV5IG5lZWQgdG8gYmUgcmVzdW1lZCBhZnRlciBsYXlvdXQuCi0gICAgaWYgKCFm
cmFtZVZpZXcubmVlZHNMYXlvdXQoKSkKKyAgICBpZiAodXBkYXRlZENvbXBvc2l0aW5nTGF5ZXJz
ICYmICFmcmFtZVZpZXcubmVlZHNMYXlvdXQoKSkKICAgICAgICAgZnJhbWVWaWV3LnZpZXdwb3J0
Q29udGVudHNDaGFuZ2VkKCk7CiAKICAgICAvLyBBcyBhIHJlc3VsdCBvZiB0aGUgc3R5bGUgcmVj
YWxjdWxhdGlvbiwgdGhlIGN1cnJlbnRseSBob3ZlcmVkIGVsZW1lbnQgbWlnaHQgaGF2ZSBiZWVu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMDYxZDNkOWNmYWRlZmJhZDYxNTEyOWJm
YTZhODUwNWQ3ODc4YzliYS4uZTE2ZTMzZTJjMDdjNjg4NDhiMjQ0MmY2MTMzYzJlM2RmYjMzYzgy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNzU4LDE3ICs3NTgsMTcgQEAgdm9p
ZCBGcmFtZVZpZXc6OndpbGxSZWNhbGNTdHlsZSgpCiAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRv
cigpLndpbGxSZWNhbGNTdHlsZSgpOwogfQogCi12b2lkIEZyYW1lVmlldzo6dXBkYXRlQ29tcG9z
aXRpbmdMYXllcnNBZnRlclN0eWxlQ2hhbmdlKCkKK2Jvb2wgRnJhbWVWaWV3Ojp1cGRhdGVDb21w
b3NpdGluZ0xheWVyc0FmdGVyU3R5bGVDaGFuZ2UoKQogewogICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIElmIHdlIGV4cGVjdCB0
byB1cGRhdGUgY29tcG9zaXRpbmcgYWZ0ZXIgYW4gaW5jaXBpZW50IGxheW91dCwgZG9uJ3QgZG8g
c28gaGVyZS4KICAgICBpZiAoaW5QcmVMYXlvdXRTdHlsZVVwZGF0ZSgpIHx8IGxheW91dFBlbmRp
bmcoKSB8fCByZW5kZXJWaWV3LT5uZWVkc0xheW91dCgpKQotICAgICAgICByZXR1cm47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5kaWRSZWNh
bGNTdHlsZVdpdGhOb1BlbmRpbmdMYXlvdXQoKTsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+Y29t
cG9zaXRvcigpLmRpZFJlY2FsY1N0eWxlV2l0aE5vUGVuZGluZ0xheW91dCgpOwogfQogCiB2b2lk
IEZyYW1lVmlldzo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlckxheW91dCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAppbmRleCBlNjFjMWE2MjExNTg5MTA2ZDM4ZmE5YWYyMmEyZDljNzFmMzhl
MTdmLi5kYmE2ZWNlODU5NWZiMTJmNDdmOWM5MGQyMjE2OGI2MWJlNDA1NTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IHZvaWQgd2lsbFJlY2FsY1N0eWxlKCk7Ci0gICAgdm9pZCB1cGRhdGVDb21wb3NpdGluZ0xheWVy
c0FmdGVyU3R5bGVDaGFuZ2UoKTsKKyAgICBib29sIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0
ZXJTdHlsZUNoYW5nZSgpOwogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlckxh
eW91dCgpOwogICAgIGJvb2wgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0ZyYW1lKEZyYW1l
KiByb290RnJhbWVGb3JGbHVzaCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNTRiZDU2MjZiY2IwMDBlOWMzNmNhZjc2
Mzk3MTM2MWU3YjZjYWFlMS4uZjIxN2U3OWRmNjMzNzhiYmE4OGQ1OTZiMDAwNjFiOWU5MGE1OWM2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKQEAgLTM4NCwxMyArMzg0LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp3aWxsUmVjYWxjU3R5bGUoKQogICAgIG1fbGF5ZXJOZWVkc0NvbXBvc2l0aW5nVXBkYXRlID0g
ZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRSZWNhbGNTdHlsZVdp
dGhOb1BlbmRpbmdMYXlvdXQoKQorYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpZFJlY2Fs
Y1N0eWxlV2l0aE5vUGVuZGluZ0xheW91dCgpCiB7CiAgICAgaWYgKCFtX2xheWVyTmVlZHNDb21w
b3NpdGluZ1VwZGF0ZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgCiAgICAgY2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRmxhZ3MoKTsKLSAgICB1cGRhdGVD
b21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UpOworICAg
IHJldHVybiB1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZUFmdGVyU3R5
bGVDaGFuZ2UpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y3VzdG9tUG9zaXRp
b25Gb3JWaXNpYmxlUmVjdENvbXB1dGF0aW9uKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIsIEZsb2F0UG9pbnQmIHBvc2l0aW9uKSBjb25zdApAQCAtNjYzLDcgKzY2Myw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5jZWxDb21wb3NpdGluZ0xheWVyVXBkYXRlKCkK
ICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIuc3RvcCgpOwogfQogCi12b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdV
cGRhdGVUeXBlIHVwZGF0ZVR5cGUsIFJlbmRlckxheWVyKiB1cGRhdGVSb290KQorYm9vbCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBk
YXRlVHlwZSB1cGRhdGVUeXBlLCBSZW5kZXJMYXllciogdXBkYXRlUm9vdCkKIHsKICAgICBMT0co
Q29tcG9zaXRpbmcsICJSZW5kZXJMYXllckNvbXBvc2l0b3IgJXAgdXBkYXRlQ29tcG9zaXRpbmdM
YXllcnMgJWQgJXAiLCB0aGlzLCB1cGRhdGVUeXBlLCB1cGRhdGVSb290KTsKIApAQCAtNjczLDE3
ICs2NzMsMTcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGUKICAgICAKICAgICAvLyBDb21wb3Np
dGluZyBsYXllcnMgd2lsbCBiZSB1cGRhdGVkIGluIERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVz
QWxsb3dlZChib29sKSBpZiBzdXBwcmVzc2VkIGhlcmUuCiAgICAgaWYgKCFtX3JlbmRlclZpZXcu
ZG9jdW1lbnQoKS52aXN1YWxVcGRhdGVzQWxsb3dlZCgpKQotICAgICAgICByZXR1cm47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEF2b2lkIHVwZGF0aW5nIHRoZSBsYXllcnMgd2l0
aCBvbGQgdmFsdWVzLiBDb21wb3NpdGluZyBsYXllcnMgd2lsbCBiZSB1cGRhdGVkIGFmdGVyIHRo
ZSBsYXlvdXQgaXMgZmluaXNoZWQuCiAgICAgaWYgKG1fcmVuZGVyVmlldy5uZWVkc0xheW91dCgp
KQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICgobV9m
b3JjZUNvbXBvc2l0aW5nTW9kZSB8fCBtX3JlbmRlclZpZXcuZnJhbWUoKS5tYWluRnJhbWUoKS5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5vdmVybGF5Q291bnQoKSkgJiYgIW1fY29tcG9zaXRpbmcp
CiAgICAgICAgIGVuYWJsZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKIAogICAgIGlmICghbV9yZWV2
YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCAmJiAhbV9jb21wb3NpdGluZykKLSAgICAgICAg
cmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICArK21fY29tcG9zaXRpbmdVcGRh
dGVDb3VudDsKIApAQCAtNzExLDcgKzcxMSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAg
ICAgfQogCiAgICAgaWYgKCFjaGVja0ZvckhpZXJhcmNoeVVwZGF0ZSAmJiAhbmVlZEdlb21ldHJ5
VXBkYXRlKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJv
b2wgbmVlZEhpZXJhcmNoeVVwZGF0ZSA9IG1fY29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZDsK
ICAgICBib29sIGlzRnVsbFVwZGF0ZSA9ICF1cGRhdGVSb290OwpAQCAtODAwLDYgKzgwMCw4IEBA
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21w
b3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICAvLyBJbmZvcm0gdGhlIGluc3BlY3RvciB0
aGF0IHRoZSBsYXllciB0cmVlIGhhcyBjaGFuZ2VkLgogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6bGF5ZXJUcmVlRGlkQ2hhbmdlKHBhZ2UoKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFwcGVuZERvY3VtZW50T3ZlcmxheUxheWVy
cyhWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExpc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggM2E4ZTFiZTA0NzNlZGQ1
N2I5YTdhMzI4MmY2ZTVjZGY4MTg5MTFjYy4uZTIxYTg2YWIwNzg2NzEwMzQ5Mjc5ZDQ3ODFhOTQ0
ZWU5ODIyNTY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaApAQCAtMTIxLDcgKzEyMSw5IEBAIHB1YmxpYzoKICAgICBib29sIGNvbXBv
c2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0aW5nTGF5
ZXJzTmVlZFJlYnVpbGQ7IH0KICAgICAKICAgICB2b2lkIHdpbGxSZWNhbGNTdHlsZSgpOwotICAg
IHZvaWQgZGlkUmVjYWxjU3R5bGVXaXRoTm9QZW5kaW5nTGF5b3V0KCk7CisKKyAgICAvLyBSZXR1
cm5zIHRydWUgaWYgdGhlIGNvbXBvc2l0ZWQgbGF5ZXJzIHdlcmUgYWN0dWFsbHkgdXBkYXRlZC4K
KyAgICBib29sIGRpZFJlY2FsY1N0eWxlV2l0aE5vUGVuZGluZ0xheW91dCgpOwogCiAgICAgLy8g
R3JhcGhpY3NMYXllcnMgYnVmZmVyIHN0YXRlLCB3aGljaCBnZXRzIHB1c2hlZCB0byB0aGUgdW5k
ZXJseWluZyBwbGF0Zm9ybSBsYXllcnMKICAgICAvLyBhdCBzcGVjaWZpYyB0aW1lcy4KQEAgLTEz
OSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDaGFuZ2VWaXNpYmxlUmVjdCgpOwog
ICAgIAogICAgIC8vIFJlYnVpbGQgdGhlIHRyZWUgb2YgY29tcG9zaXRpbmcgbGF5ZXJzCi0gICAg
dm9pZCB1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGUsIFJlbmRl
ckxheWVyKiB1cGRhdGVSb290ID0gbnVsbHB0cik7CisgICAgYm9vbCB1cGRhdGVDb21wb3NpdGlu
Z0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGUsIFJlbmRlckxheWVyKiB1cGRhdGVSb290ID0g
bnVsbHB0cik7CiAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGFu
ZCB3ZSBkbyBub3QgZXhlcGVjdCBhIHN0eWxlIHVwZGF0ZSBvciBsYXlvdXQgdG8gaGFwcGVuIHNv
b24gKGUuZy4gd2hlbgogICAgIC8vIHdlIGRpc2NvdmVyIHRoYXQgYW4gaWZyYW1lIGlzIG92ZXJs
YXBwZWQgZHVyaW5nIHBhaW50aW5nKS4KICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
clVwZGF0ZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>