<?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>151632</bug_id>
          
          <creation_ts>2015-11-27 02:40:03 -0800</creation_ts>
          <short_desc>[GTK] Remove the remaining uses of GMainLoopSource</short_desc>
          <delta_ts>2015-11-27 08:55:02 -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>WebKitGTK</component>
          <version>WebKit Local 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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151633</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1144566</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-11-27 02:40:03 -0800</bug_when>
    <thetext>There are only a few places where we still use GMainLoopSource, once we migrate those, we could remove GMainLoopSource entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144567</commentid>
    <comment_count>1</comment_count>
      <attachid>266196</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-11-27 02:42:37 -0800</bug_when>
    <thetext>Created attachment 266196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144568</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-27 02:43:14 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144587</commentid>
    <comment_count>3</comment_count>
      <attachid>266196</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-11-27 06:00:29 -0800</bug_when>
    <thetext>Comment on attachment 266196
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:714
&gt; +        WTF::GMutexLocker&lt;GMutex&gt;* lock;

This can be a simple reference instead of a pointer.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:719
&gt; +            auto* context = static_cast&lt;UnlockServerSourceContext*&gt;(userData);

You can dereference the casted user data immediately and bind it to a reference (auto&amp;), instead of a pointer.

&gt; Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp:80
&gt; +        g_source_set_ready_time(timeoutSource(), g_get_monotonic_time() + std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(std::chrono::duration&lt;double&gt;(timeout)).count());

That summation can overflow. It likely won&apos;t, but it&apos;s possible. Also, using std::chrono also maybe isn&apos;t a requirement here, G_USEC_PER_SEC would work just fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144588</commentid>
    <comment_count>4</comment_count>
      <attachid>266196</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-11-27 06:02:02 -0800</bug_when>
    <thetext>Comment on attachment 266196
Patch

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

&gt;&gt; Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp:80
&gt;&gt; +        g_source_set_ready_time(timeoutSource(), g_get_monotonic_time() + std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(std::chrono::duration&lt;double&gt;(timeout)).count());
&gt; 
&gt; That summation can overflow. It likely won&apos;t, but it&apos;s possible. Also, using std::chrono also maybe isn&apos;t a requirement here, G_USEC_PER_SEC would work just fine.

The complete overflow protection (the one that roundtrips to std::chrono::microseconds) could be abstracted and put in WTF, in a small header. It&apos;s now used in maybe 5 places in the code.

Otherwise the patch looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144594</commentid>
    <comment_count>5</comment_count>
      <attachid>266196</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-11-27 08:33:53 -0800</bug_when>
    <thetext>Comment on attachment 266196
Patch

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

&gt;&gt;&gt; Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp:80
&gt;&gt;&gt; +        g_source_set_ready_time(timeoutSource(), g_get_monotonic_time() + std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(std::chrono::duration&lt;double&gt;(timeout)).count());
&gt;&gt; 
&gt;&gt; That summation can overflow. It likely won&apos;t, but it&apos;s possible. Also, using std::chrono also maybe isn&apos;t a requirement here, G_USEC_PER_SEC would work just fine.
&gt; 
&gt; The complete overflow protection (the one that roundtrips to std::chrono::microseconds) could be abstracted and put in WTF, in a small header. It&apos;s now used in maybe 5 places in the code.
&gt; 
&gt; Otherwise the patch looks fine.

I didn&apos;t add the overflow check because here the timeout is a fixed value, not something calculated, but I agree it would be better to move it a common place and use it everywhere else. Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144595</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-11-27 08:55:02 -0800</bug_when>
    <thetext>Committed r192782: &lt;http://trac.webkit.org/changeset/192782&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266196</attachid>
            <date>2015-11-27 02:42:37 -0800</date>
            <delta_ts>2015-11-27 06:02:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk-main-loop-source.diff</filename>
            <type>text/plain</type>
            <size>11753</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlMjQ4NmRiLi42NTdkN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTUtMTEtMjcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgR01haW5Mb29w
U291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTE2MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKF9XZWJL
aXRXZWJWaWV3QmFzZVByaXZhdGU6Ol9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUpOgorICAgICAg
ICAoX1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZTo6Y2xlYXJSZWRpcmVjdGVkV2luZG93U29vblRp
bWVyRmlyZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDbGVhclJlZGlyZWN0ZWRXaW5k
b3dTb29uKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSk6CisKIDIwMTUtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVzZSB0aGUgbmV0d29yayBwcm9jZXNzIHVu
Y29uZGl0aW9uYWxseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDBjODk5MjAuLjkzOTg3OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFz
ZS5jcHAKQEAgLTY1LDcgKzY1LDYgQEAKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9n
bGliL0dNYWluTG9vcFNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE0OSw2ICsxNDgsMTkgQEAgdHlwZWRl
ZiBIYXNoTWFwPEd0a1dpZGdldCosIEludFJlY3Q+IFdlYktpdFdlYlZpZXdDaGlsZHJlbk1hcDsK
IHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgR1VuaXF1ZVB0cjxHZGtFdmVudD4+IFRvdWNoRXZl
bnRzTWFwOwogCiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSB7CisjaWYgVVNFKFJF
RElSRUNURURfWENPTVBPU0lURV9XSU5ET1cpCisgICAgX1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0
ZSgpCisgICAgICAgIDogY2xlYXJSZWRpcmVjdGVkV2luZG93U29vblRpbWVyKFJ1bkxvb3A6Om1h
aW4oKSwgdGhpcywgJl9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGU6OmNsZWFyUmVkaXJlY3RlZFdp
bmRvd1Nvb25UaW1lckZpcmVkKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyUmVkaXJl
Y3RlZFdpbmRvd1Nvb25UaW1lckZpcmVkKCkKKyAgICB7CisgICAgICAgIGlmIChyZWRpcmVjdGVk
V2luZG93KQorICAgICAgICAgICAgcmVkaXJlY3RlZFdpbmRvdy0+cmVzaXplKEludFNpemUoKSk7
CisgICAgfQorI2VuZGlmCisKICAgICBXZWJLaXRXZWJWaWV3Q2hpbGRyZW5NYXAgY2hpbGRyZW47
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBwYWdlQ2xpZW50OwogICAgIFJl
ZlB0cjxXZWJQYWdlUHJveHk+IHBhZ2VQcm94eTsKQEAgLTE5MCw3ICsyMDIsNyBAQCBzdHJ1Y3Qg
X1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSB7CiAKICNpZiBVU0UoUkVESVJFQ1RFRF9YQ09NUE9T
SVRFX1dJTkRPVykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVkaXJlY3RlZFhDb21wb3NpdGVXaW5k
b3c+IHJlZGlyZWN0ZWRXaW5kb3c7Ci0gICAgR01haW5Mb29wU291cmNlIGNsZWFyUmVkaXJlY3Rl
ZFdpbmRvd1Nvb247CisgICAgUnVuTG9vcDo6VGltZXI8V2ViS2l0V2ViVmlld0Jhc2VQcml2YXRl
PiBjbGVhclJlZGlyZWN0ZWRXaW5kb3dTb29uVGltZXI7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCkBAIC0xMzU4LDEyICsxMzcwLDggQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZVJlc2V0Q2xpY2tDb3VudGVyKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkK
ICNpZiBVU0UoUkVESVJFQ1RFRF9YQ09NUE9TSVRFX1dJTkRPVykKIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlZpZXdCYXNlQ2xlYXJSZWRpcmVjdGVkV2luZG93U29vbihXZWJLaXRXZWJWaWV3QmFzZSog
d2Via2l0V2ViVmlld0Jhc2UpCiB7Ci0gICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2
ID0gd2Via2l0V2ViVmlld0Jhc2UtPnByaXY7Ci0gICAgc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25v
OjpzZWNvbmRzIGNsZWFyUmVkaXJlY3RlZFdpbmRvd1Nvb25EZWxheSA9IDJfczsKLSAgICBwcml2
LT5jbGVhclJlZGlyZWN0ZWRXaW5kb3dTb29uLnNjaGVkdWxlQWZ0ZXJEZWxheSgiW1dlYktpdF0g
Q2xlYXIgUmVkaXJlY3RlZFdpbmRvdyBzb29uIiwgW3ByaXZdKCkgewotICAgICAgICBpZiAocHJp
di0+cmVkaXJlY3RlZFdpbmRvdykKLSAgICAgICAgICAgIHByaXYtPnJlZGlyZWN0ZWRXaW5kb3ct
PnJlc2l6ZShJbnRTaXplKCkpOwotICAgIH0sIGNsZWFyUmVkaXJlY3RlZFdpbmRvd1Nvb25EZWxh
eSk7CisgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBjbGVhclJlZGlyZWN0ZWRXaW5kb3dTb29uRGVs
YXkgPSAyOworICAgIHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT5jbGVhclJlZGlyZWN0ZWRXaW5k
b3dTb29uVGltZXIuc3RhcnRPbmVTaG90KGNsZWFyUmVkaXJlY3RlZFdpbmRvd1Nvb25EZWxheSk7
CiB9CiAjZW5kaWYKIApAQCAtMTM5MCw3ICsxMzk4LDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZVdpbGxFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWIKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIHsKICNpZiBVU0UoUkVESVJF
Q1RFRF9YQ09NUE9TSVRFX1dJTkRPVykKLSAgICB3ZWJraXRXZWJWaWV3QmFzZS0+cHJpdi0+Y2xl
YXJSZWRpcmVjdGVkV2luZG93U29vbi5jYW5jZWwoKTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZS0+
cHJpdi0+Y2xlYXJSZWRpcmVjdGVkV2luZG93U29vblRpbWVyLnN0b3AoKTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKHdlYmtpdFdlYlZpZXdCYXNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM5MjBmMGEuLjkzNTFiYjkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAxNS0xMS0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBHTWFp
bkxvb3BTb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MTYzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RSZXNvdXJjZXMuY3BwOgor
ICAgICAgICAodGVzdFdlYlZpZXdTeW5jUmVxdWVzdE9uTWF4Q29ubnMpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
UnVubmVyOjppbnZhbGlkYXRlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIpOgorICAgICAgICAoV1RS
OjpUZXN0UnVubmVyOjppbml0aWFsaXplV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJZk5lZWRlZCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwOgor
ICAgICAgICAoV1RSOjp0aW1lb3V0U291cmNlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6Om5vdGlmeURvbmUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1S
dW5VbnRpbCk6CisKIDIwMTUtMTEtMjYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBFeHRyYWN0IHByZXBlbmRUb0Vudmlyb25tZW50VmFyaWFibGVMaXN0CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFJlc291
cmNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFJlc291
cmNlcy5jcHAKaW5kZXggOWY5N2I1Zi4uOWQzZDg3YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RSZXNvdXJjZXMuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0UmVzb3VyY2VzLmNwcApAQCAtMjIsNyAr
MjIsNiBAQAogI2luY2x1ZGUgIldlYktpdFRlc3RTZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3
VGVzdC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFp
bkxvb3BTb3VyY2UuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HTXV0ZXhMb2NrZXIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKQEAgLTcwNiwxMiArNzA1LDI3IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3U3luY1JlcXVlc3RPbk1heENvbm5zKFN5bmNSZXF1ZXN0T25NYXhDb25u
c1Rlc3QqIHRlc3QsIGdjCiAgICAgfQogCiAgICAgLy8gQnkgZGVmYXVsdCBzeW5jIFhIUnMgaGF2
ZSBhIDEwIHNlY29uZHMgdGltZW91dCwgd2UgZG9uJ3Qgd2FudCB0byB3YWl0IGFsbCB0aGF0IHNv
IHVzZSBvdXIgb3duIHRpbWVvdXQuCi0gICAgR01haW5Mb29wU291cmNlIHRpbWVvdXRTb3VyY2U7
Ci0gICAgdGltZW91dFNvdXJjZS5zY2hlZHVsZUFmdGVyRGVsYXkoIlRpbWVvdXQiLCBbXSB7IGdf
YXNzZXJ0X25vdF9yZWFjaGVkKCk7IH0sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEpKTsKLQotICAg
IEdNYWluTG9vcFNvdXJjZSB1bmxvY2tTZXJ2ZXJTb3VyY2U7Ci0gICAgdW5sb2NrU2VydmVyU291
cmNlLnNjaGVkdWxlKCJVbmxvY2sgU2VydmVyIElkbGUiLCBbJmxvY2tdIHsgbG9jay51bmxvY2so
KTsgfSk7CisgICAgZ3VpbnQgdGltZW91dFNvdXJjZUlEID0gZ190aW1lb3V0X2FkZCgxMDAwLCBb
XSAoZ3BvaW50ZXIpIC0+IGdib29sZWFuIHsKKyAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQo
KTsKKyAgICAgICAgcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKKyAgICB9LCBudWxscHRyKTsKKwor
ICAgIHN0cnVjdCBVbmxvY2tTZXJ2ZXJTb3VyY2VDb250ZXh0IHsKKyAgICAgICAgV1RGOjpHTXV0
ZXhMb2NrZXI8R011dGV4PiogbG9jazsKKyAgICAgICAgZ3VpbnQgdW5sb2NrU2VydmVyU291cmNl
SUQ7CisgICAgfSBjb250ZXh0ID0geworICAgICAgICAmbG9jaywKKyAgICAgICAgZ19pZGxlX2Fk
ZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVMVCwgW10oZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29s
ZWFuIHsKKyAgICAgICAgICAgIGF1dG8qIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxVbmxvY2tTZXJ2
ZXJTb3VyY2VDb250ZXh0Kj4odXNlckRhdGEpOworICAgICAgICAgICAgY29udGV4dC0+dW5sb2Nr
U2VydmVyU291cmNlSUQgPSAwOworICAgICAgICAgICAgY29udGV4dC0+bG9jay0+dW5sb2NrKCk7
CisgICAgICAgICAgICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOworICAgICAgICB9LCAmY29udGV4
dCwgbnVsbHB0cikKKyAgICB9OwogICAgIHRlc3QtPndhaXRVbnRpbFJlc291cmNlc0xvYWRlZChz
X21heENvbm5lY3Rpb25zUGVySG9zdCArIDMpOyAvLyBzX21heENvbm5lY3Rpb25zUGVySG9zdCBy
ZXNvdXJjZSArIG1haW4gcmVzb3VyY2UgKyAyIFhIUi4KKyAgICBnX3NvdXJjZV9yZW1vdmUodGlt
ZW91dFNvdXJjZUlEKTsKKyAgICBpZiAoY29udGV4dC51bmxvY2tTZXJ2ZXJTb3VyY2VJRCkKKyAg
ICAgICAgZ19zb3VyY2VfcmVtb3ZlKGNvbnRleHQudW5sb2NrU2VydmVyU291cmNlSUQpOwogfQog
CiBzdGF0aWMgdm9pZCBhZGRDYWNoZUhUVFBIZWFkZXJzVG9SZXNwb25zZShTb3VwTWVzc2FnZSog
bWVzc2FnZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsv
V2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5jcHAKaW5kZXggNjllMmNlNy4uN2IzNDgzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKQEAgLTIzLDcgKzIzLDYg
QEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9HVW5pcXVlUHRyR3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvR01haW5Mb29wU291
cmNlLmg+CiAKIFdlYlZpZXdUZXN0OjpXZWJWaWV3VGVzdChXZWJLaXRVc2VyQ29udGVudE1hbmFn
ZXIqIHVzZXJDb250ZW50TWFuYWdlcikKICAgICA6IG1fd2ViVmlldyhXRUJLSVRfV0VCX1ZJRVco
Z19vYmplY3RfcmVmX3NpbmsoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9WSUVXLCAid2Vi
LWNvbnRleHQiLCBtX3dlYkNvbnRleHQuZ2V0KCksICJ1c2VyLWNvbnRlbnQtbWFuYWdlciIsIHVz
ZXJDb250ZW50TWFuYWdlciwgbnVsbHB0cikpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGM4MGY4OGUuLjhlYmFk
ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcApAQCAtOTYsNiArOTYsOSBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkK
ICAgICAsIG1fZGF0YWJhc2VNYXhRdW90YSgtMSkKICAgICAsIG1fdXNlclN0eWxlU2hlZXRFbmFi
bGVkKGZhbHNlKQogICAgICwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uKGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpKSkKKyNpZiBQTEFURk9STShHVEspCisgICAgLCBt
X3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRlc3RSdW5u
ZXI6OndhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyRmlyZWQpCisjZW5kaWYKIHsKICAgICBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZDkwNDczNi4uZTVhOTY0MiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM4
LDggKzM4LDExIEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZSdW5Mb29wLmg+CiB0eXBl
ZGVmIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1lclJlZj4gUGxhdGZvcm1UaW1lclJlZjsKICNlbGlm
IFBMQVRGT1JNKEdUSykKLSNpbmNsdWRlIDx3dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KLXR5
cGVkZWYgR01haW5Mb29wU291cmNlIFBsYXRmb3JtVGltZXJSZWY7CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KK25hbWVzcGFjZSBXVFIgeworY2xhc3MgVGVzdFJ1bm5lcjsKK3R5cGVkZWYgUnVu
TG9vcDo6VGltZXI8VGVzdFJ1bm5lcj4gUGxhdGZvcm1UaW1lclJlZjsKK30KICNlbGlmIFBMQVRG
T1JNKEVGTCkKIHR5cGVkZWYgRWNvcmVfVGltZXIqIFBsYXRmb3JtVGltZXJSZWY7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL1Rl
c3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9n
dGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXggZGFhZGUzNC4uYTlmN2Y0MCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvVGVzdFJ1bm5lckd0ay5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvVGVzdFJ1
bm5lckd0ay5jcHAKQEAgLTQwLDE2ICs0MCwxNSBAQCB2b2lkIFRlc3RSdW5uZXI6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSgpCiAKIHZvaWQgVGVzdFJ1bm5lcjo6aW52YWxpZGF0ZVdhaXRUb0R1bXBXYXRj
aGRvZ1RpbWVyKCkKIHsKLSAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLmNhbmNlbCgpOwor
ICAgIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RvcCgpOwogfQogCiB2b2lkIFRlc3RSdW5u
ZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVkKCkKIHsKLSAgICBp
ZiAobV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5pc1NjaGVkdWxlZCgpKQorICAgIGlmIChtX3dh
aXRUb0R1bXBXYXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc2NoZWR1bGVBZnRlckRlbGF5KCJbV1RSXSB3YWl0
VG9EdW1wV2F0Y2hkb2dUaW1lckNhbGxiYWNrIiwgW3RoaXNdIHsgd2FpdFRvRHVtcFdhdGNoZG9n
VGltZXJGaXJlZCgpOyB9LAotICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKG1fdGlt
ZW91dCkpOworICAgIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KG1fdGlt
ZW91dCAvIDEwMDAuMCk7CiB9CiAKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVy
OjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVmIHVybCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCAyMGNmZGJjLi41N2Ez
MmQ3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxl
ckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJH
dGsuY3BwCkBAIC0zMSwxNyArMzEsMzMgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLSNpbmNsdWRlIDx3
dGYvZ2xpYi9HTWFpbkxvb3BTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIAotc3RhdGljIEdNYWluTG9vcFNvdXJjZSB0
aW1lb3V0U291cmNlOworc3RhdGljIEdTb3VyY2UqIHRpbWVvdXRTb3VyY2UoKQoreworICAgIHN0
YXRpYyBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IG51bGxwdHI7CisgICAgaWYgKCFzb3VyY2Up
IHsKKyAgICAgICAgc291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KDApKTsK
KyAgICAgICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUoc291cmNlLmdldCgpLCAtMSk7CisgICAg
ICAgIGdfc291cmNlX3NldF9uYW1lKHNvdXJjZS5nZXQoKSwgIltXVFJdIFRlc3QgdGltZW91dCBz
b3VyY2UiKTsKKyAgICAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgW10o
Z3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKKyAgICAgICAgICAgIGdfc291cmNlX3Nl
dF9yZWFkeV90aW1lKHN0YXRpY19jYXN0PEdTb3VyY2UqPih1c2VyRGF0YSksIC0xKTsKKyAgICAg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTDogVGVzdENvbnRyb2xsZXJSdW5Mb29wIHRpbWVk
IG91dC5cbiIpOworICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKKyAgICAgICAg
ICAgIHJldHVybiBHX1NPVVJDRV9DT05USU5VRTsKKyAgICAgICAgfSwgc291cmNlLmdldCgpLCBu
dWxscHRyKTsKKyAgICAgICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbnVsbHB0cik7
CisgICAgfQorICAgIHJldHVybiBzb3VyY2UuZ2V0KCk7Cit9CiAKIHZvaWQgVGVzdENvbnRyb2xs
ZXI6Om5vdGlmeURvbmUoKQogewotICAgIHRpbWVvdXRTb3VyY2UuY2FuY2VsKCk7CisgICAgZ19z
b3VyY2Vfc2V0X3JlYWR5X3RpbWUodGltZW91dFNvdXJjZSgpLCAtMSk7CiAgICAgUnVuTG9vcDo6
bWFpbigpLnN0b3AoKTsKIH0KIApAQCAtNjAsMTMgKzc2LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtRGVzdHJveSgpCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVu
VW50aWwoYm9vbCYsIGRvdWJsZSB0aW1lb3V0KQogewotICAgIGlmICh0aW1lb3V0ID4gMCkgewot
ICAgICAgICB0aW1lb3V0U291cmNlLnNjaGVkdWxlQWZ0ZXJEZWxheSgiW1dUUl0gVGVzdCB0aW1l
b3V0IHNvdXJjZSIsIFtdIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTDogVGVz
dENvbnRyb2xsZXJSdW5Mb29wIHRpbWVkIG91dC5cbiIpOwotICAgICAgICAgICAgUnVuTG9vcDo6
bWFpbigpLnN0b3AoKTsKLSAgICAgICAgfSwgc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3Rk
OjpjaHJvbm86Om1pY3Jvc2Vjb25kcz4oc3RkOjpjaHJvbm86OmR1cmF0aW9uPGRvdWJsZT4odGlt
ZW91dCkpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgdGltZW91dFNvdXJjZS5jYW5jZWwoKTsKKyAg
ICBpZiAodGltZW91dCA+IDApCisgICAgICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKHRpbWVv
dXRTb3VyY2UoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHN0ZDo6Y2hyb25vOjpkdXJhdGlv
bl9jYXN0PHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM+KHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxk
b3VibGU+KHRpbWVvdXQpKS5jb3VudCgpKTsKKyAgICBlbHNlCisgICAgICAgIGdfc291cmNlX3Nl
dF9yZWFkeV90aW1lKHRpbWVvdXRTb3VyY2UoKSwgLTEpOwogICAgIFJ1bkxvb3A6Om1haW4oKS5y
dW4oKTsKIH0KIAo=
</data>
<flag name="review"
          id="291206"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>