<?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>191632</bug_id>
          
          <creation_ts>2018-11-14 06:18:28 -0800</creation_ts>
          <short_desc>Align Mac WK2 layer flush throttling with iOS</short_desc>
          <delta_ts>2018-11-14 11:54:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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>
          <dependson>191642</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1478405</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-14 06:18:28 -0800</bug_when>
    <thetext>Currently Mac WK2 uses WebCore side throttling implementation in RenderLayerCompositor. This code has throttling timer per-frame while the actual decision making and layer flushes itself are per page. These timers generate way more flushes than expected in presence of multiple frames. There are also bugs in how flushing state is updated when frames are created dynamically.

On iOS WK2 throttling is implemented on WebKit side and controlled by a per-page timer. Recent fixes also make this implementation visually fast. We should align the Mac implementation and eventually unify them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478427</commentid>
    <comment_count>1</comment_count>
      <attachid>354807</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-14 07:22:25 -0800</bug_when>
    <thetext>Created attachment 354807
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478453</commentid>
    <comment_count>2</comment_count>
      <attachid>354807</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-14 08:53:32 -0800</bug_when>
    <thetext>Comment on attachment 354807
patch

Clearing flags on attachment: 354807

Committed r238178: &lt;https://trac.webkit.org/changeset/238178&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478454</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-14 08:53:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478455</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-14 08:54:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/46064211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478532</commentid>
    <comment_count>5</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-11-14 11:02:06 -0800</bug_when>
    <thetext>The changes in https://trac.webkit.org/changeset/238178/webkit

has caused these two tests to begin timing out on MacOS Release WK2:
fast/forms/access-key-mutated.html 
fast/forms/access-key-case-insensitive.html

Repro Command:
run-webkit-tests --root testbuild-238178 fast/forms/access-key-mutated.html fast/forms/access-key-case-insensitive.html --iterations 5 -f

These tests pass instantly on 238177.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478535</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-14 11:11:58 -0800</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=191642 for those, will skip meanwhile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478538</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-14 11:19:29 -0800</bug_when>
    <thetext>Skipped in https://trac.webkit.org/r238187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478552</commentid>
    <comment_count>8</comment_count>
      <attachid>354807</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-11-14 11:37:21 -0800</bug_when>
    <thetext>Comment on attachment 354807
patch

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

&gt; Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:221
&gt; +    m_hasPendingFlush = true;
&gt; +
&gt; +    if (m_layerTreeStateIsFrozen) {
&gt; +        m_isLayerFlushThrottlingTemporarilyDisabledForInteraction = false;
&gt;          return;
&gt; +    }
&gt; +
&gt; +    if (m_isLayerFlushThrottlingTemporarilyDisabledForInteraction) {
&gt; +        m_isLayerFlushThrottlingTemporarilyDisabledForInteraction = false;
&gt; +        scheduleLayerFlushRunLoopObserver();
&gt; +        m_layerFlushThrottlingTimer.stop();
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    if (m_layerFlushThrottlingTimer.isActive()) {
&gt; +        ASSERT(m_isThrottlingLayerFlushes);
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    if (m_isThrottlingLayerFlushes) {
&gt; +        startLayerFlushThrottlingTimer();
&gt; +        return;
&gt; +    }

So now this code exists in both TiledCoreAnimationDrawingArea and RemoteLayerTreeDrawingArea. Can we share code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478565</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-14 11:54:34 -0800</bug_when>
    <thetext>&gt; So now this code exists in both TiledCoreAnimationDrawingArea and
&gt; RemoteLayerTreeDrawingArea. Can we share code?

Like the ChangeLog mentions, sharing is the next step.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354807</attachid>
            <date>2018-11-14 07:22:25 -0800</date>
            <delta_ts>2018-11-14 08:53:32 -0800</delta_ts>
            <desc>patch</desc>
            <filename>layer-throttling-mac-7.patch</filename>
            <type>text/plain</type>
            <size>10557</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzgxNzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDE4LTExLTE0ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBbGlnbiBNYWMgV0syIGxheWVyIGZs
dXNoIHRocm90dGxpbmcgd2l0aCBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MTYzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSBNYWMgV0syIHVzZXMgV2ViQ29yZSBzaWRlIHRocm90
dGxpbmcgaW1wbGVtZW50YXRpb24gaW4gUmVuZGVyTGF5ZXJDb21wb3NpdG9yLiBUaGlzIGNvZGUg
aGFzCisgICAgICAgIHRocm90dGxpbmcgdGltZXIgcGVyLWZyYW1lIHdoaWxlIHRoZSBhY3R1YWwg
ZGVjaXNpb24gbWFraW5nIGFuZCBsYXllciBmbHVzaGVzIGl0c2VsZiBhcmUgcGVyIHBhZ2UuIFRo
ZXNlCisgICAgICAgIHRpbWVycyBnZW5lcmF0ZSB3YXkgbW9yZSBmbHVzaGVzIHRoYW4gZXhwZWN0
ZWQgaW4gcHJlc2VuY2Ugb2YgbXVsdGlwbGUgZnJhbWVzLiBUaGVyZSBhcmUgYWxzbyBidWdzIGlu
IGhvdworICAgICAgICBmbHVzaGluZyBzdGF0ZSBpcyB1cGRhdGVkIHdoZW4gZnJhbWVzIGFyZSBj
cmVhdGVkIGR5bmFtaWNhbGx5LgorCisgICAgICAgIE9uIGlPUyBXSzIgdGhyb3R0bGluZyBpcyBp
bXBsZW1lbnRlZCBvbiBXZWJLaXQgc2lkZSBhbmQgY29udHJvbGxlZCBieSBhIHBlci1wYWdlIHRp
bWVyLiBSZWNlbnQgZml4ZXMgYWxzbworICAgICAgICBtYWtlIHRoaXMgaW1wbGVtZW50YXRpb24g
dmlzdWFsbHkgZmFzdC4gV2Ugc2hvdWxkIGFsaWduIHRoZSBNYWMgaW1wbGVtZW50YXRpb24gYW5k
IGV2ZW50dWFsbHkgdW5pZnkgdGhlbS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhyb3R0bGluZyBpbiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYSBtaXJyb3JpbmcgdGhl
IGlPUyBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYQorICAgICAgICBpbXBsZW1lbnRhdGlvbi4g
VGhlcmUgYXJlIHNvbWUgYWRqdXN0bWVudHMgZm9yIHBsYXRmb3JtIGRpZmZlcmVuY2VzIChsb2Nh
bCB2cyByZW1vdGUgbGF5ZXJzKSBhbmQgd2UgY29udGludWUKKyAgICAgICAgdXNpbmcgcnVubG9v
cCBvYnNlcnZlciBmb3IgdGhlIGFjdHVhbCBmbHVzaGVzLiBUaW1pbmdzIGFyZSBhcyBpbiB0aGUg
ZXhpc3RpbmcgTWFjIGNvZGUuCisKKyAgICAgICAgVGhlIHBhdGNoIGFwcGVhcnMgdG8gYmUgYSBz
aWduaWZpY2FudCBwZXJmb3JtYW5jZSBwcm9ncmVzc2lvbi4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbik6CisKKyAgICAgICAg
U2NoZWR1bGUgYW4gaW1tZWRpYXRlIGZsdXNoIHdoZW4gbGF5ZXJzIGFyZSB1bmZyb3plbi4KKwor
ICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSk6
CisKKyAgICAgICAgVHJhY2sgcGVuZGluZyBmbHVzaGVzIHdpdGggbV9oYXNQZW5kaW5nRmx1c2gg
Yml0LgorICAgICAgICBEZWxheSBmbHVzaCBpZiB0aGUgZmx1c2ggdGhyb3R0bGluZyB0aW1lciBp
cyBhY3RpdmUuIFN0YXJ0IGl0IGlmIHdlIHRocm90dGxpbmcgYnV0IGl0IGlzIG5vdCBhY3RpdmUg
eWV0LgorCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpm
bHVzaExheWVycyk6CisKKyAgICAgICAgQ2xlYXIgbV9oYXNQZW5kaW5nRmx1c2ggaWYgdGhlIGZs
dXNoIHN1Y2NlZWRlZC4KKyAgICAgICAgUmVzdGFydCB0aGUgdGhyb3R0bGluZyB0aW1lciBpZiB3
ZSBhcmUgc3RpbGwgdGhyb3R0bGluZy4KKyAgICAgICAgTWFuYWdlIHJ1bmxvb3Agb2JzZXJ2ZXIg
aW52YWxpZGF0aW9uIGhlcmUgaW5zdGVhZCBvZiB0aGUgY2FsbGVyIChhbmQgc3RvcCByZXR1cm5p
bmcgdmFsdWUpLgorCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpsYXllckZsdXNoUnVuTG9vcENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKToKKwor
ICAgICAgICBSZXR1cm5pbmcgJ3RydWUnIGhlcmUgZGlzYWJsZXMgV2ViQ29yZSBzaWRlIHRocm90
dGxpbmcgY29kZS4KKworICAgICAgICBTdGFydCBvciBzdG9wIHRoZSB0aHJvdHRsaW5nIHRpbWVy
IG9uIHN0YXRlIGNoYW5nZXMuCisKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOgorCisgICAg
ICAgIFRoaXMgaXMgdXNlZCB0byBjb250cm9sIHN0eWxlIGFuZCBsYXlvdXQgdGltZXJzIG9uIFdl
YkNvcmUgc2lkZS4gUmV0dXJuIGZhbHNlIG9uIGZyb3plbgorICAgICAgICBzdGF0ZSBzaW5jZSB1
bmZyZWV6aW5nIGRlcGVuZHMgb24gc3R5bGUgYW5kIGxheW91dC4KKworICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3RhcnRMYXllckZsdXNoVGhyb3R0bGlu
Z1RpbWVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OmxheWVyRmx1c2hUaHJvdHRsaW5nVGltZXJGaXJlZCk6CisKIDIwMTgtMTEtMTMgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aE5dIFN1cHBvcnQg
Q1RBUCBISUQgYXV0aGVudGljYXRvcnMgb24gbWFjT1MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5oCShyZXZpc2lvbiAyMzgxNzApCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAko
d29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBkaXNw
YXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxl
c3RvbmU+KSBvdmVycmlkZTsKIAotICAgIGJvb2wgZmx1c2hMYXllcnMoKTsKKyAgICB2b2lkIGZs
dXNoTGF5ZXJzKCk7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRl
R2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGJvb2wgZmx1c2hTeW5j
aHJvbm91c2x5LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIGZlbmNlUG9ydCkgb3ZlcnJpZGU7
CkBAIC0xMzAsNiArMTMwLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlTGF5ZXJG
bHVzaFJ1bkxvb3BPYnNlcnZlcigpOwogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoUnVuTG9v
cE9ic2VydmVyKCk7CiAKKyAgICBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNv
cmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykgb3ZlcnJpZGU7CisgICAgYm9vbCBs
YXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IHN0YXJ0TGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcigpOworICAgIHZvaWQgbGF5ZXJGbHVzaFRo
cm90dGxpbmdUaW1lckZpcmVkKCk7CisKICAgICBib29sIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3pl
bjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2xheWVySG9z
dGluZ0NvbnRleHQ7CkBAIC0xNjgsNiArMTc0LDEyIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENh
bGxiYWNrSUQ+IG1fcGVuZGluZ0NhbGxiYWNrSURzOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlJ1bkxvb3BPYnNlcnZlcj4gbV9sYXllckZsdXNoUnVuTG9vcE9ic2VydmVyOworCisg
ICAgYm9vbCBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24g
eyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNQZW5kaW5nRmx1c2ggeyBmYWxzZSB9OworCisgICAg
V2ViQ29yZTo6VGltZXIgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tCShyZXZpc2lvbiAyMzgxNzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0JKHdvcmtpbmcgY29weSkK
QEAgLTgwLDYgKzgwLDcgQEAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29y
ZQogICAgICwgbV90cmFuc2llbnRab29tU2NhbGUoMSkKICAgICAsIG1fc2VuZERpZFVwZGF0ZUFj
dGl2aXR5U3RhdGVUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6ZGlkVXBkYXRlQWN0aXZpdHlTdGF0ZVRpbWVyRmlyZWQpCiAgICAgLCBt
X3ZpZXdPdmVybGF5Um9vdExheWVyKG51bGxwdHIpCisgICAgLCBtX2xheWVyRmx1c2hUaHJvdHRs
aW5nVGltZXIoKnRoaXMsICZUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVz
aFRocm90dGxpbmdUaW1lckZpcmVkKQogewogICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOwogCkBAIC0xNzQsMTAgKzE3NSwx
NCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRMCiAKICAgICBtX2xh
eWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBsYXllclRyZWVTdGF0ZUlzRnJvemVuOwogCi0gICAgaWYg
KG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikKKyAgICBpZiAobV9sYXllclRyZWVTdGF0ZUlzRnJv
emVuKSB7CiAgICAgICAgIGludmFsaWRhdGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7Ci0g
ICAgZWxzZQotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAg
ICAgICAgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICAvLyBJbW1lZGlhdGUgZmx1c2ggYXMgYW55IGRlbGF5IGluIHVuZnJlZXppbmcgY2Fu
IHJlc3VsdCBpbiBmbGFzaGVzLgorICAgICAgICBpZiAobV9oYXNQZW5kaW5nRmx1c2gpCisgICAg
ICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICB9CiB9CiAK
IGJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyVHJlZVN0YXRlSXNGcm96
ZW4oKSBjb25zdApAQCAtMTkxLDE1ICsxOTYsMzYgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6c2NoZQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiB7Ci0gICAgaWYgKG1fbGF5ZXJUcmVlU3Rh
dGVJc0Zyb3plbikKKyAgICBtX2hhc1BlbmRpbmdGbHVzaCA9IHRydWU7CisKKyAgICBpZiAobV9s
YXllclRyZWVTdGF0ZUlzRnJvemVuKSB7CisgICAgICAgIG1faXNMYXllckZsdXNoVGhyb3R0bGlu
Z1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZhbHNlOwogICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKG1faXNMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5
RGlzYWJsZWRGb3JJbnRlcmFjdGlvbikgeworICAgICAgICBtX2lzTGF5ZXJGbHVzaFRocm90dGxp
bmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgc2No
ZWR1bGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7CisgICAgICAgIG1fbGF5ZXJGbHVzaFRo
cm90dGxpbmdUaW1lci5zdG9wKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
bV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgQVNTRVJU
KG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykgeworICAgICAgICBzdGFydExheWVy
Rmx1c2hUaHJvdHRsaW5nVGltZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHNj
aGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0
ZWx5KCkKIHsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVk
dWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0
b3JlJikKQEAgLTQyNCwxMCArNDUwLDEwIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OmFkZFQKICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogfQogCi1i
b29sIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycygpCit2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycygpCiB7CiAgICAgaWYgKGxh
eWVyVHJlZVN0YXRlSXNGcm96ZW4oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm47CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgc2NhbGVWaWV3VG9GaXRE
b2N1bWVudElmTmVlZGVkKCk7CkBAIC00NjEsNyArNDg3LDggQEAgYm9vbCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6Zmx1cwogICAgICAgICAgICAgICAgIGRyYXdpbmdBcmVhLT5zZW5k
UGVuZGluZ05ld2x5UmVhY2hlZExheW91dE1pbGVzdG9uZXMoKTsKICAgICAgICAgfSBmb3JQaGFz
ZTprQ0FUcmFuc2FjdGlvblBoYXNlUG9zdENvbW1pdF07CiAKLSAgICAgICAgYm9vbCByZXR1cm5W
YWx1ZSA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUlu
Y2x1ZGluZ1N1YmZyYW1lcygpOworICAgICAgICBtX2hhc1BlbmRpbmdGbHVzaCA9ICFtX3dlYlBh
Z2UubWFpbkZyYW1lVmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFt
ZXMoKTsKKwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgICAgIGlmIChTY3JvbGxp
bmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBtX3dlYlBhZ2UuY29yZVBhZ2Uo
KS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yLT5jb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpOwpAQCAtNDc3LDcgKzUwNCwxMyBAQCBib29s
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzCiAgICAgICAgICAgICBtX3BlbmRp
bmdDYWxsYmFja0lEcy5jbGVhcigpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIHJldHVy
blZhbHVlOworICAgICAgICBpZiAoIW1faGFzUGVuZGluZ0ZsdXNoKQorICAgICAgICAgICAgaW52
YWxpZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKKworICAgICAgICBpZiAobV9pc1Ro
cm90dGxpbmdMYXllckZsdXNoZXMpCisgICAgICAgICAgICBzdGFydExheWVyRmx1c2hUaHJvdHRs
aW5nVGltZXIoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9sYXllckZsdXNoVGhyb3R0
bGluZ1RpbWVyLnN0b3AoKTsKICAgICB9CiB9CiAKQEAgLTkwMiw4ICs5MzUsNyBAQCBib29sIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaXNwCiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hSdW5Mb29wQ2FsbGJhY2soKQogewotICAgIGlmIChm
bHVzaExheWVycygpKQotICAgICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZl
cigpOworICAgIGZsdXNoTGF5ZXJzKCk7CiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OmludmFsaWRhdGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCkKQEAgLTkxNiw2
ICs5NDgsNTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZQogICAg
IG1fbGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoQ0ZSdW5Mb29wR2V0Q3VycmVu
dCgpKTsKIH0KIAorYm9vbCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRqdXN0TGF5
ZXJGbHVzaFRocm90dGxpbmcoV2ViQ29yZTo6TGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdz
IGZsYWdzKQoreworICAgIGJvb2wgd2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA9IG1faXNUaHJv
dHRsaW5nTGF5ZXJGbHVzaGVzOworICAgIG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID0gZmxh
Z3MgJiBXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZDsKKyAgICBtX2lz
TGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBm
bGFncyAmIFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpVc2VySXNJbnRlcmFjdGlu
ZzsKKworICAgIGlmICh3YXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID09IG1faXNUaHJvdHRsaW5n
TGF5ZXJGbHVzaGVzKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIG1fbGF5ZXJGbHVzaFRo
cm90dGxpbmdUaW1lci5zdG9wKCk7CisKKyAgICBpZiAobV9sYXllclRyZWVTdGF0ZUlzRnJvemVu
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1
c2hlcykgeworICAgICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwor
ICAgICAgICBzdGFydExheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIoKTsKKyAgICB9IGVsc2UgaWYg
KG1faGFzUGVuZGluZ0ZsdXNoKQorICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2Jz
ZXJ2ZXIoKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgJiYgIW1fbGF5ZXJUcmVlU3RhdGVJ
c0Zyb3plbjsKK30KKwordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3RhcnRM
YXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKCkKK3sKKyAgICBBU1NFUlQobV9pc1Rocm90dGxpbmdM
YXllckZsdXNoZXMpOworCisgICAgY29uc3QgYXV0byB0aHJvdHRsZWRGbHVzaERlbGF5ID0gNTAw
X21zOworICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lci5zdGFydE9uZVNob3QodGhyb3R0
bGVkRmx1c2hEZWxheSk7Cit9CisKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OmxheWVyRmx1c2hUaHJvdHRsaW5nVGltZXJGaXJlZCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVl
U3RhdGVJc0Zyb3plbikKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9oYXNQZW5kaW5nRmx1
c2gpCisgICAgICAgIHJldHVybjsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2
ZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>