<?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>235985</bug_id>
          
          <creation_ts>2022-02-01 16:19:25 -0800</creation_ts>
          <short_desc>Share more WebPage code related to marking layers volatile</short_desc>
          <delta_ts>2022-02-01 21:02:17 -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>WebKit Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1836209</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-01 16:19:25 -0800</bug_when>
    <thetext>Share more WebPage code related to marking layers volatile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836211</commentid>
    <comment_count>1</comment_count>
      <attachid>450585</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-01 16:20:38 -0800</bug_when>
    <thetext>Created attachment 450585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836220</commentid>
    <comment_count>2</comment_count>
      <attachid>450585</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-01 16:34:15 -0800</bug_when>
    <thetext>Comment on attachment 450585
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2842
&gt; +    WEBPAGE_RELEASE_LOG(Layers, &quot;markLayersVolatile&quot;);

This seems to go against the usual style of our release logging?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2853
&gt; +void WebPage::markLayersVolatileOrRetry(MarkLayersVolatileStopReason stopReason, Seconds timerInterval)

Why the second parameter? Can we just use initialLayerVolatilityTimerInterval inside the function like we used to?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2876
&gt; +    WEBPAGE_RELEASE_LOG_ERROR(Layers, &quot;markLayersVolatile: Failed to mark all layers as volatile, will retry in %g ms&quot;, timerInterval.milliseconds());

This was downgraded from error logging to regular logging a while back because this happens a lot and I am tired of getting radars about it.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1592
&gt; +    enum class MarkLayersVolatileStopReason {

nit: Could be on one line.
Also: We should use uint8_t as underlying type.

Also, I find the name of this enum super confusing given that the function does something no matter what the stop reason is. I would prefer something like:
enum class ShouldRetryMarkingAsVolatile { NoDueToSuspensionUnderLock, NoDueToTimeout, Yes };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836224</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-01 16:35:42 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; Comment on attachment 450585 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450585&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2842
&gt; &gt; +    WEBPAGE_RELEASE_LOG(Layers, &quot;markLayersVolatile&quot;);
&gt; 
&gt; This seems to go against the usual style of our release logging?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2853
&gt; &gt; +void WebPage::markLayersVolatileOrRetry(MarkLayersVolatileStopReason stopReason, Seconds timerInterval)
&gt; 
&gt; Why the second parameter? Can we just use
&gt; initialLayerVolatilityTimerInterval inside the function like we used to?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2876
&gt; &gt; +    WEBPAGE_RELEASE_LOG_ERROR(Layers, &quot;markLayersVolatile: Failed to mark all layers as volatile, will retry in %g ms&quot;, timerInterval.milliseconds());
&gt; 
&gt; This was downgraded from error logging to regular logging a while back
&gt; because this happens a lot and I am tired of getting radars about it.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1592
&gt; &gt; +    enum class MarkLayersVolatileStopReason {
&gt; 
&gt; nit: Could be on one line.
&gt; Also: We should use uint8_t as underlying type.
&gt; 
&gt; Also, I find the name of this enum super confusing given that the function
&gt; does something no matter what the stop reason is. I would prefer something
&gt; like:
&gt; enum class ShouldRetryMarkingAsVolatile { NoDueToSuspensionUnderLock,
&gt; NoDueToTimeout, Yes };

I meant:
enum class ShouldRetryMarkingAsVolatile : uint8_t { NoDueToSuspensionUnderLock, NoDueToTimeout, Yes };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836226</commentid>
    <comment_count>4</comment_count>
      <attachid>450585</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-01 16:38:37 -0800</bug_when>
    <thetext>Comment on attachment 450585
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2853
&gt;&gt; +void WebPage::markLayersVolatileOrRetry(MarkLayersVolatileStopReason stopReason, Seconds timerInterval)
&gt; 
&gt; Why the second parameter? Can we just use initialLayerVolatilityTimerInterval inside the function like we used to?

Because it&apos;s called from the timer callback with a new interval (2x the last one).

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2876
&gt;&gt; +    WEBPAGE_RELEASE_LOG_ERROR(Layers, &quot;markLayersVolatile: Failed to mark all layers as volatile, will retry in %g ms&quot;, timerInterval.milliseconds());
&gt; 
&gt; This was downgraded from error logging to regular logging a while back because this happens a lot and I am tired of getting radars about it.

Will fix.

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1592
&gt;&gt; +    enum class MarkLayersVolatileStopReason {
&gt; 
&gt; nit: Could be on one line.
&gt; Also: We should use uint8_t as underlying type.
&gt; 
&gt; Also, I find the name of this enum super confusing given that the function does something no matter what the stop reason is. I would prefer something like:
&gt; enum class ShouldRetryMarkingAsVolatile { NoDueToSuspensionUnderLock, NoDueToTimeout, Yes };

Can do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836229</commentid>
    <comment_count>5</comment_count>
      <attachid>450585</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-01 16:41:37 -0800</bug_when>
    <thetext>Comment on attachment 450585
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2853
&gt;&gt;&gt; +void WebPage::markLayersVolatileOrRetry(MarkLayersVolatileStopReason stopReason, Seconds timerInterval)
&gt;&gt; 
&gt;&gt; Why the second parameter? Can we just use initialLayerVolatilityTimerInterval inside the function like we used to?
&gt; 
&gt; Because it&apos;s called from the timer callback with a new interval (2x the last one).

Oh, I see it now (newInterval). Sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836232</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-01 16:43:50 -0800</bug_when>
    <thetext>The timers should probably be startOneShot(), since they only fire once before reschedule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836234</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-01 16:44:44 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; The timers should probably be startOneShot(), since they only fire once
&gt; before reschedule.

Yes, the startRepeating() is confusing here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836316</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-01 21:01:05 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/288940/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836317</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-01 21:02:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88362884&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450585</attachid>
            <date>2022-02-01 16:20:38 -0800</date>
            <delta_ts>2022-02-01 16:41:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235985-20220201162037.patch</filename>
            <type>text/plain</type>
            <size>6959</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYwZGY5MTU1ZDI4MTMxMWJk
Y2ZhZTc5YmM3Zjc1ZjEwMDM0YWRkZDQuLjEwMWNhNTBhNmIxMGU4NjUyMTZiMzVkYmQyOGZiMjUz
NWFlOTQ2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDItMDEgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2hhcmUgbW9yZSBXZWJQ
YWdlIGNvZGUgcmVsYXRlZCB0byBtYXJraW5nIGxheWVycyB2b2xhdGlsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1OTg1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmFjdG9yIGNvZGUgY29tbW9uIGJl
dHdlZW4gV2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpIGFuZCBXZWJQYWdlOjpt
YXJrTGF5ZXJzVm9sYXRpbGUoKQorICAgICAgICBpbnRvIGEgaGVscGVyIGZ1bmN0aW9uLCB1c2lu
ZyBhbiBlbnVtIGZvciB0aGUgInN0b3AgcmVhc29uIiB0byBhbGxvdyBmb3IgZGVzY3JpcHRpdmUg
bG9nZ2luZy4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1h
cmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpt
YXJrTGF5ZXJzVm9sYXRpbGVPclJldHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorCiAyMDIyLTAxLTMxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIE1pbm9yIGNsZWFudXAgaW4gUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmVDb2xsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDliN2EyNTA0ZjVkZDFmNGNlZGQ2MjExMjE3OGJhMDA1MzQxYTE0NDQuLjM2NmQ2
OTYxMDY4NDc1MDI5ZDM1YmYyYjZkMmIzYTIyNDVlZjYzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yODE5LDYgKzI4MTksMTEgQEAgdm9p
ZCBXZWJQYWdlOjp1cGRhdGVEcmF3aW5nQXJlYUxheWVyVHJlZUZyZWV6ZVN0YXRlKCkKICAgICBt
X2RyYXdpbmdBcmVhLT5zZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKCEhbV9sYXllclRyZWVGcmVl
emVSZWFzb25zKTsKIH0KIAorYm9vbCBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlh
dGVseUlmUG9zc2libGUoKQoreworICAgIHJldHVybiAhZHJhd2luZ0FyZWEoKSB8fCBkcmF3aW5n
QXJlYSgpLT5tYXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUoKTsKK30KKwog
dm9pZCBXZWJQYWdlOjpjYWxsVm9sYXRpbGl0eUNvbXBsZXRpb25IYW5kbGVycyhib29sIHN1Y2Nl
ZWRlZCkKIHsKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVycyA9IHN0ZDo6ZXhjaGFuZ2UobV9t
YXJrTGF5ZXJzQXNWb2xhdGlsZUNvbXBsZXRpb25IYW5kbGVycywgeyB9KTsKQEAgLTI4MjksMjkg
KzI4MzQsMTIgQEAgdm9pZCBXZWJQYWdlOjpjYWxsVm9sYXRpbGl0eUNvbXBsZXRpb25IYW5kbGVy
cyhib29sIHN1Y2NlZWRlZCkKIHZvaWQgV2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJl
ZCgpCiB7CiAgICAgU2Vjb25kcyBuZXdJbnRlcnZhbCA9IG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIu
cmVwZWF0SW50ZXJ2YWwoKSAqIDIuOwotICAgIGJvb2wgZGlkU3VjY2VlZCA9IG1hcmtMYXllcnNW
b2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwotICAgIGlmIChkaWRTdWNjZWVkIHx8IG5l
d0ludGVydmFsID4gbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwpIHsKLSAgICAg
ICAgbV9sYXllclZvbGF0aWxpdHlUaW1lci5zdG9wKCk7Ci0gICAgICAgIGlmIChkaWRTdWNjZWVk
KQotICAgICAgICAgICAgV0VCUEFHRV9SRUxFQVNFX0xPRyhMYXllcnMsICJsYXllclZvbGF0aWxp
dHlUaW1lckZpcmVkOiBTdWNjZWVkZWQgaW4gbWFya2luZyBsYXllcnMgYXMgdm9sYXRpbGUiKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgV0VCUEFHRV9SRUxFQVNFX0xPRyhMYXllcnMsICJs
YXllclZvbGF0aWxpdHlUaW1lckZpcmVkOiBGYWlsZWQgdG8gbWFyayBsYXllcnMgYXMgdm9sYXRp
bGUgd2l0aGluICVnbXMiLCBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbC5taWxs
aXNlY29uZHMoKSk7Ci0gICAgICAgIGNhbGxWb2xhdGlsaXR5Q29tcGxldGlvbkhhbmRsZXJzKGRp
ZFN1Y2NlZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgV0VCUEFHRV9SRUxFQVNF
X0xPR19FUlJPUihMYXllcnMsICJsYXllclZvbGF0aWxpdHlUaW1lckZpcmVkOiBGYWlsZWQgdG8g
bWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVnIG1zIiwgbmV3SW50
ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwotICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIuc3RhcnRS
ZXBlYXRpbmcobmV3SW50ZXJ2YWwpOwotfQotCi1ib29sIFdlYlBhZ2U6Om1hcmtMYXllcnNWb2xh
dGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpCi17Ci0gICAgcmV0dXJuICFkcmF3aW5nQXJlYSgp
IHx8IGRyYXdpbmdBcmVhKCktPm1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJs
ZSgpOworICAgIG1hcmtMYXllcnNWb2xhdGlsZU9yUmV0cnkobmV3SW50ZXJ2YWwgPiBtYXhpbXVt
TGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCA/IE1hcmtMYXllcnNWb2xhdGlsZVN0b3BSZWFz
b246OlRvb2tUb29Mb25nIDogTWFya0xheWVyc1ZvbGF0aWxlU3RvcFJlYXNvbjo6Tm9uZSwgbmV3
SW50ZXJ2YWwpOwogfQogCiB2b2lkIFdlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFdFQlBB
R0VfUkVMRUFTRV9MT0coTGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlOiIpOworICAgIFdFQlBB
R0VfUkVMRUFTRV9MT0coTGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlIik7CiAKICAgICBpZiAo
bV9sYXllclZvbGF0aWxpdHlUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX2xheWVyVm9sYXRp
bGl0eVRpbWVyLnN0b3AoKTsKQEAgLTI4NTksMjAgKzI4NDcsMzQgQEAgdm9pZCBXZWJQYWdlOjpt
YXJrTGF5ZXJzVm9sYXRpbGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGwKICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgIG1fbWFya0xheWVy
c0FzVm9sYXRpbGVDb21wbGV0aW9uSGFuZGxlcnMuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIAorICAgIG1hcmtMYXllcnNWb2xhdGlsZU9yUmV0cnkobV9pc1N1c3BlbmRlZFVu
ZGVyTG9jayA/IE1hcmtMYXllcnNWb2xhdGlsZVN0b3BSZWFzb246OlN1c3BlbmRlZFVuZGVyTG9j
ayA6IE1hcmtMYXllcnNWb2xhdGlsZVN0b3BSZWFzb246Ok5vbmUsIGluaXRpYWxMYXllclZvbGF0
aWxpdHlUaW1lckludGVydmFsKTsKK30KKwordm9pZCBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRp
bGVPclJldHJ5KE1hcmtMYXllcnNWb2xhdGlsZVN0b3BSZWFzb24gc3RvcFJlYXNvbiwgU2Vjb25k
cyB0aW1lckludGVydmFsKQorewogICAgIGJvb2wgZGlkU3VjY2VlZCA9IG1hcmtMYXllcnNWb2xh
dGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwotICAgIGlmIChkaWRTdWNjZWVkIHx8IG1faXNT
dXNwZW5kZWRVbmRlckxvY2spIHsKKyAgICBpZiAoZGlkU3VjY2VlZCB8fCBzdG9wUmVhc29uICE9
IE1hcmtMYXllcnNWb2xhdGlsZVN0b3BSZWFzb246Ok5vbmUpIHsKKyAgICAgICAgbV9sYXllclZv
bGF0aWxpdHlUaW1lci5zdG9wKCk7CiAgICAgICAgIGlmIChkaWRTdWNjZWVkKQotICAgICAgICAg
ICAgV0VCUEFHRV9SRUxFQVNFX0xPRyhMYXllcnMsICJtYXJrTGF5ZXJzVm9sYXRpbGU6IFN1Y2Nl
c3NmdWxseSBtYXJrZWQgbGF5ZXJzIGFzIHZvbGF0aWxlIik7CisgICAgICAgICAgICBXRUJQQUdF
X1JFTEVBU0VfTE9HKExheWVycywgIm1hcmtMYXllcnNWb2xhdGlsZTogU3VjY2VlZGVkIGluIG1h
cmtpbmcgbGF5ZXJzIGFzIHZvbGF0aWxlIik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
Ly8gSWYgd2UgZ2V0IHN1c3BlbmRlZCB3aGVuIGxvY2tpbmcgdGhlIHNjcmVlbiwgaXQgaXMgZXhw
ZWN0ZWQgdGhhdCBzb21lIElPU3VyZmFjZXMgY2Fubm90IGJlIG1hcmtlZCBhcyBwdXJnZWFibGUg
c28gd2UgZG8gbm90IGtlZXAgcmV0cnlpbmcuCi0gICAgICAgICAgICBXRUJQQUdFX1JFTEVBU0Vf
TE9HKExheWVycywgIm1hcmtMYXllcnNWb2xhdGlsZTogRGlkIHdoYXQgd2UgY291bGQgdG8gbWFy
ayBJT1N1cmZhY2VzIGFzIHB1cmdlYWJsZSBhZnRlciBsb2NraW5nIHRoZSBzY3JlZW4iKTsKKyAg
ICAgICAgICAgIHN3aXRjaCAoc3RvcFJlYXNvbikgeworICAgICAgICAgICAgY2FzZSBNYXJrTGF5
ZXJzVm9sYXRpbGVTdG9wUmVhc29uOjpOb25lOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBNYXJrTGF5ZXJzVm9sYXRpbGVTdG9wUmVhc29uOjpTdXNwZW5kZWRVbmRl
ckxvY2s6CisgICAgICAgICAgICAgICAgV0VCUEFHRV9SRUxFQVNFX0xPRyhMYXllcnMsICJtYXJr
TGF5ZXJzVm9sYXRpbGU6IERpZCB3aGF0IHdlIGNvdWxkIHRvIG1hcmsgSU9TdXJmYWNlcyBhcyBw
dXJnZWFibGUgYWZ0ZXIgbG9ja2luZyB0aGUgc2NyZWVuIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIE1hcmtMYXllcnNWb2xhdGlsZVN0b3BSZWFzb246OlRvb2tU
b29Mb25nOgorICAgICAgICAgICAgICAgIFdFQlBBR0VfUkVMRUFTRV9MT0coTGF5ZXJzLCAibWFy
a0xheWVyc1ZvbGF0aWxlOiBGYWlsZWQgdG8gbWFyayBsYXllcnMgYXMgdm9sYXRpbGUgd2l0aGlu
ICVnbXMiLCBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbC5taWxsaXNlY29uZHMo
KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgY2FsbFZvbGF0aWxpdHlDb21wbGV0aW9uSGFuZGxlcnMoZGlkU3VjY2VlZCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXRUJQQUdFX1JFTEVBU0VfTE9HKExheWVycywgIm1h
cmtMYXllcnNWb2xhdGlsZTogRmFpbGVkIHRvIG1hcmsgYWxsIGxheWVycyBhcyB2b2xhdGlsZSwg
d2lsbCByZXRyeSBpbiAlZyBtcyIsIGluaXRpYWxMYXllclZvbGF0aWxpdHlUaW1lckludGVydmFs
Lm1pbGxpc2Vjb25kcygpKTsKLSAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0YXJ0UmVwZWF0
aW5nKGluaXRpYWxMYXllclZvbGF0aWxpdHlUaW1lckludGVydmFsKTsKKyAgICBXRUJQQUdFX1JF
TEVBU0VfTE9HX0VSUk9SKExheWVycywgIm1hcmtMYXllcnNWb2xhdGlsZTogRmFpbGVkIHRvIG1h
cmsgYWxsIGxheWVycyBhcyB2b2xhdGlsZSwgd2lsbCByZXRyeSBpbiAlZyBtcyIsIHRpbWVySW50
ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOworICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIuc3RhcnRS
ZXBlYXRpbmcodGltZXJJbnRlcnZhbCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2FuY2VsTWFya0xh
eWVyc1ZvbGF0aWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCA2Yzc5MjMyNjc5NTkxMDVkNTMxYzExZTgxYmIzYTljYWQ4MTg2ZWEwLi4zODg0ZDFk
NzA5MzVjMTZhOTM3YTlhZmRkMWNhY2QzYzRlMjNhZjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNTg3LDcgKzE1ODcsMTQgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5RGVsYXllZFJlcGx5JiYpOwogCiAgICAgdm9pZCB1cGRh
dGVEcmF3aW5nQXJlYUxheWVyVHJlZUZyZWV6ZVN0YXRlKCk7CisKICAgICBib29sIG1hcmtMYXll
cnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOworICAgIGVudW0gY2xhc3MgTWFya0xh
eWVyc1ZvbGF0aWxlU3RvcFJlYXNvbiB7CisgICAgICAgIE5vbmUsCisgICAgICAgIFN1c3BlbmRl
ZFVuZGVyTG9jaywKKyAgICAgICAgVG9va1Rvb0xvbmcsCisgICAgfTsKKyAgICB2b2lkIG1hcmtM
YXllcnNWb2xhdGlsZU9yUmV0cnkoTWFya0xheWVyc1ZvbGF0aWxlU3RvcFJlYXNvbiwgU2Vjb25k
cyB0aW1lckludGVydmFsKTsKICAgICB2b2lkIGxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQoKTsK
ICAgICB2b2lkIGNhbGxWb2xhdGlsaXR5Q29tcGxldGlvbkhhbmRsZXJzKGJvb2wgc3VjY2VlZGVk
KTsKIAo=
</data>
<flag name="review"
          id="477024"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>