<?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>58476</bug_id>
          
          <creation_ts>2011-04-13 14:03:57 -0700</creation_ts>
          <short_desc>Add support for disabling/enabling termination to ChildProcess</short_desc>
          <delta_ts>2011-04-13 14:29:43 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>385200</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-13 14:03:57 -0700</bug_when>
    <thetext>Add support for disabling/enabling termination to ChildProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385203</commentid>
    <comment_count>1</comment_count>
      <attachid>89452</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-13 14:10:06 -0700</bug_when>
    <thetext>Created attachment 89452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385208</commentid>
    <comment_count>2</comment_count>
      <attachid>89452</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-13 14:15:16 -0700</bug_when>
    <thetext>Comment on attachment 89452
Patch

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

&gt; Source/WebKit2/ChangeLog:28
&gt; +        (WebKit::PluginProcess::getSitesWithData):
&gt; +        Call disableTermination()/enableTermination().
&gt; +
&gt; +        (WebKit::PluginProcess::clearSiteData):
&gt; +        Ditto.

Why do we need to wrap these functions in disable/enable calls?

&gt; Source/WebKit2/Shared/ChildProcess.h:39
&gt; +    void disableTermination();
&gt; +    void enableTermination();

Maybe there should be comments here instead of/in addition to the ones for m_terminationCounter.

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:121
&gt; +    : ChildProcess(0.0)

Can you get rid of the .0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385218</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-13 14:19:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 89452 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89452&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:28
&gt; &gt; +        (WebKit::PluginProcess::getSitesWithData):
&gt; &gt; +        Call disableTermination()/enableTermination().
&gt; &gt; +
&gt; &gt; +        (WebKit::PluginProcess::clearSiteData):
&gt; &gt; +        Ditto.
&gt; 
&gt; Why do we need to wrap these functions in disable/enable calls?

Because without a call to enableTermination, the timer will never start.

&gt; 
&gt; &gt; Source/WebKit2/Shared/ChildProcess.h:39
&gt; &gt; +    void disableTermination();
&gt; &gt; +    void enableTermination();
&gt; 
&gt; Maybe there should be comments here instead of/in addition to the ones for m_terminationCounter.

I&apos;ll add comments.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:121
&gt; &gt; +    : ChildProcess(0.0)
&gt; 
&gt; Can you get rid of the .0?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385229</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-13 14:25:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 89452 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89452&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/ChangeLog:28
&gt; &gt; &gt; +        (WebKit::PluginProcess::getSitesWithData):
&gt; &gt; &gt; +        Call disableTermination()/enableTermination().
&gt; &gt; &gt; +
&gt; &gt; &gt; +        (WebKit::PluginProcess::clearSiteData):
&gt; &gt; &gt; +        Ditto.
&gt; &gt; 
&gt; &gt; Why do we need to wrap these functions in disable/enable calls?
&gt; 
&gt; Because without a call to enableTermination, the timer will never start.

So there&apos;s some case where someone will create PluginProcess that has no web process connections, will then call one of these functions, and expect the process to exit on its own?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385231</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-13 14:26:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (From update of attachment 89452 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89452&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/ChangeLog:28
&gt; &gt; &gt; &gt; +        (WebKit::PluginProcess::getSitesWithData):
&gt; &gt; &gt; &gt; +        Call disableTermination()/enableTermination().
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +        (WebKit::PluginProcess::clearSiteData):
&gt; &gt; &gt; &gt; +        Ditto.
&gt; &gt; &gt; 
&gt; &gt; &gt; Why do we need to wrap these functions in disable/enable calls?
&gt; &gt; 
&gt; &gt; Because without a call to enableTermination, the timer will never start.
&gt; 
&gt; So there&apos;s some case where someone will create PluginProcess that has no web process connections, will then call one of these functions, and expect the process to exit on its own?

That is correct. The web process is not involved in getSitesWithData/clearSiteData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385238</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-13 14:29:43 -0700</bug_when>
    <thetext>Committed r83767: &lt;http://trac.webkit.org/changeset/83767&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89452</attachid>
            <date>2011-04-13 14:10:06 -0700</date>
            <delta_ts>2011-04-13 14:28:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58476-20110413141004.patch</filename>
            <type>text/plain</type>
            <size>10549</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzNzYwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDQtMTMgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZGlzYWJsaW5nL2VuYWJsaW5n
IHRlcm1pbmF0aW9uIHRvIENoaWxkUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg0NzYKKworICAgICAgICBBZGQgQ2hpbGRQcm9jZXNzOjpk
aXNhYmxlVGVybWluYXRpb24gYW5kIENoaWxkUHJvY2Vzczo6ZW5hYmxlVGVybWluYXRpb24gYW5k
IGNvbnZlcnQKKyAgICAgICAgdGhlIFBsdWdpblByb2Nlc3MgY2xhc3Mgb3ZlciB0byB1c2luZyB0
aGVtLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6UGx1Z2luUHJvY2Vzcyk6CisgICAgICAgIFRoZSBj
aGlsZCBwcm9jZXNzIG5vdyB0YWtlcyBhIHRlcm1pbmF0aW9uVGltZW91dCBhcmd1bWVudC4gR2V0
IHJpZCBvZiB0aGUgc2h1dGRvd24gdGltZXIuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJv
Y2Vzczo6cmVtb3ZlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICBDYWxsIGVuYWJsZVRl
cm1pbmF0aW9uKCkuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6c2hvdWxkVGVy
bWluYXRlKToKKyAgICAgICAgQWx3YXlzIHJldHVybiB0cnVlLgorCisgICAgICAgIChXZWJLaXQ6
OlBsdWdpblByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgQ2Fs
bCBkaXNhYmxlVGVybWluYXRpb24oKS4KKworICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNz
OjpnZXRTaXRlc1dpdGhEYXRhKToKKyAgICAgICAgQ2FsbCBkaXNhYmxlVGVybWluYXRpb24oKS9l
bmFibGVUZXJtaW5hdGlvbigpLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OmNs
ZWFyU2l0ZURhdGEpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIFNoYXJlZC9DaGlsZFBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3M6OmRpc2FibGVUZXJtaW5h
dGlvbik6CisgICAgICAgIEluY3JlbWVudCB0aGUgY291bnRlciBhbmQgc3RvcCB0aGUgdGltZXIu
CisKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjplbmFibGVUZXJtaW5hdGlvbik6Cisg
ICAgICAgIERlY3JlbWVudCB0aGUgY291bnRlcjsgaWYgaXQncyB6ZXJvLCBzdGFydCB0aGUgdGlt
ZXIuCisKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjp0ZXJtaW5hdGlvblRpbWVyRmly
ZWQpOgorICAgICAgICBDYWxsIHNob3VsZFRlcm1pbmF0ZSgpLiBJZiBpdCByZXR1cm5zIHRydWUs
IGNhbGwgdGVybWluYXRlKCkuCisKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjp0ZXJt
aW5hdGUpOgorICAgICAgICBDYWxsIFJ1bkxvb3A6OnF1aXQoKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OldlYlBy
b2Nlc3MpOgorICAgICAgICBKdXN0IGluaXRpYWxpemUgdGhlIHRlcm1pbmF0aW9uIHRpbWVvdXQg
dG8gMCBmb3Igbm93LgorCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNob3VsZFRlcm1p
bmF0ZSk6CisgICAgICAgIEFsd2F5cyByZXR1cm4gdHJ1ZTsgdGhpcyBpc24ndCB1c2VkIHlldC4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDExLTA0LTEyICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwCShyZXZpc2lvbiA4Mzc1NSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAg
UGx1Z2luUHJvY2VzcyYgUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkKIH0KIAogUGx1Z2luUHJvY2Vz
czo6UGx1Z2luUHJvY2VzcygpCi0gICAgOiBtX3NodXRkb3duVGltZXIoUnVuTG9vcDo6bWFpbigp
LCB0aGlzLCAmUGx1Z2luUHJvY2Vzczo6c2h1dGRvd25UaW1lckZpcmVkKQotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQorICAgIDogQ2hpbGRQcm9jZXNz
KHNodXRkb3duVGltZW91dCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLCBtX2NvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydChNQUNIX1BPUlRfTlVMTCkKICNlbmRpZgogewpAQCAtNzgsNyArNzgs
NyBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OnJlbW92ZVdlYlByb2Nlc3NDb25uCiAgICAgICAgIG1f
cGx1Z2luTW9kdWxlLT5kZWNyZW1lbnRMb2FkQ291bnQoKTsKICAgICB9ICAgICAgICAKIAotICAg
IHN0YXJ0U2h1dGRvd25UaW1lcklmTmVjZXNzYXJ5KCk7CisgICAgZW5hYmxlVGVybWluYXRpb24o
KTsKIH0KIAogTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIFBsdWdpblByb2Nlc3M6Om5ldHNjYXBlUGx1
Z2luTW9kdWxlKCkKQEAgLTk4LDYgKzk4LDEzIEBAIE5ldHNjYXBlUGx1Z2luTW9kdWxlKiBQbHVn
aW5Qcm9jZXNzOjpuZXQKICAgICByZXR1cm4gbV9wbHVnaW5Nb2R1bGUuZ2V0KCk7CiB9CiAKK2Jv
b2wgUGx1Z2luUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKK3sKKyAgICBBU1NFUlQobV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMuaXNFbXB0eSgpKTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB2
b2lkIFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CkBAIC0xNTUsMjMgKzE2Miwy
NiBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4KLSAgICBtX3NodXRkb3du
VGltZXIuc3RvcCgpOworICAgIGRpc2FibGVUZXJtaW5hdGlvbigpOwogfQogCiB2b2lkIFBsdWdp
blByb2Nlc3M6OmdldFNpdGVzV2l0aERhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKIHsKKyAgICBk
aXNhYmxlVGVybWluYXRpb24oKTsKKwogICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwogICAgIGlm
IChOZXRzY2FwZVBsdWdpbk1vZHVsZSogbW9kdWxlID0gbmV0c2NhcGVQbHVnaW5Nb2R1bGUoKSkK
ICAgICAgICAgc2l0ZXMgPSBtb2R1bGUtPnNpdGVzV2l0aERhdGEoKTsKIAogICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpEaWRHZXRTaXRlc1dpdGhE
YXRhKHNpdGVzLCBjYWxsYmFja0lEKSwgMCk7CiAKLSAgICBzdGFydFNodXRkb3duVGltZXJJZk5l
Y2Vzc2FyeSgpOworICAgIGVuYWJsZVRlcm1pbmF0aW9uKCk7CiB9CiAKIHZvaWQgUGx1Z2luUHJv
Y2Vzczo6Y2xlYXJTaXRlRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90
IGZsYWdzLCB1aW50NjRfdCBtYXhBZ2VJblNlY29uZHMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7
CisgICAgZGlzYWJsZVRlcm1pbmF0aW9uKCk7CisKICAgICBpZiAoTmV0c2NhcGVQbHVnaW5Nb2R1
bGUqIG1vZHVsZSA9IG5ldHNjYXBlUGx1Z2luTW9kdWxlKCkpIHsKICAgICAgICAgaWYgKHNpdGVz
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgLy8gQ2xlYXIgZXZlcnl0aGluZy4KQEAgLTE4NCwy
MSArMTk0LDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpjbGVhclNpdGVEYXRhKGNvbnN0IAogCiAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzUHJveHk6OkRpZENs
ZWFyU2l0ZURhdGEoY2FsbGJhY2tJRCksIDApOwogCi0gICAgc3RhcnRTaHV0ZG93blRpbWVySWZO
ZWNlc3NhcnkoKTsKLX0KLQotdm9pZCBQbHVnaW5Qcm9jZXNzOjpzdGFydFNodXRkb3duVGltZXJJ
Zk5lY2Vzc2FyeSgpCi17Ci0gICAgaWYgKCFtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFN0YXJ0IHRoZSBzaHV0ZG93biB0aW1lci4K
LSAgICBtX3NodXRkb3duVGltZXIuc3RhcnRPbmVTaG90KHNodXRkb3duVGltZW91dCk7Ci19Ci0K
LXZvaWQgUGx1Z2luUHJvY2Vzczo6c2h1dGRvd25UaW1lckZpcmVkKCkKLXsKLSAgICBSdW5Mb29w
OjpjdXJyZW50KCktPnN0b3AoKTsKKyAgICBlbmFibGVUZXJtaW5hdGlvbigpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5oCShyZXZpc2lvbiA4Mzc1NSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw5IEBA
IHByaXZhdGU6CiAgICAgUGx1Z2luUHJvY2VzcygpOwogICAgIH5QbHVnaW5Qcm9jZXNzKCk7CiAK
KyAgICAvLyBDaGlsZFByb2Nlc3MKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7
CisKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKQEAgLTc3LDkgKzgwLDYgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGdldFNpdGVzV2l0aERhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBjbGVh
clNpdGVEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgZmxhZ3MsIHVp
bnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKLSAgICB2b2lk
IHN0YXJ0U2h1dGRvd25UaW1lcklmTmVjZXNzYXJ5KCk7Ci0gICAgdm9pZCBzaHV0ZG93blRpbWVy
RmlyZWQoKTsKLQogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIHRvIHRoZSBV
SSBwcm9jZXNzLgpAQCAtOTQsOSArOTQsNiBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBwbHVnLWlu
IG1vZHVsZS4KICAgICBSZWZQdHI8TmV0c2NhcGVQbHVnaW5Nb2R1bGU+IG1fcGx1Z2luTW9kdWxl
OwogICAgIAotICAgIC8vIEEgdGltZXIgdXNlZCBmb3IgdGhlIHNodXRkb3duIHRpbWVvdXQuCi0g
ICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luUHJvY2Vzcz4gbV9zaHV0ZG93blRpbWVyOwotCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQTEFURk9STShNQUMpCiAgICAgLy8gVGhl
IE1hY2ggcG9ydCB1c2VkIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KICAgICBtYWNoX3Bv
cnRfdCBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9DaGlsZFByb2Nlc3MuY3BwCShyZXZpc2lvbiA4Mzc1NSkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNCArMzIsNTQg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUNoaWxkUHJvY2Vzczo6Q2hpbGRQcm9jZXNzKCkK
K3ZvaWQgQ2hpbGRQcm9jZXNzOjpkaXNhYmxlVGVybWluYXRpb24oKQogeworICAgIG1fdGVybWlu
YXRpb25Db3VudGVyKys7CisgICAgbV90ZXJtaW5hdGlvblRpbWVyLnN0b3AoKTsKK30KKwordm9p
ZCBDaGlsZFByb2Nlc3M6OmVuYWJsZVRlcm1pbmF0aW9uKCkKK3sKKyAgICBBU1NFUlQobV90ZXJt
aW5hdGlvbkNvdW50ZXIgPiAwKTsKKyAgICBtX3Rlcm1pbmF0aW9uQ291bnRlci0tOworCisgICAg
aWYgKG1fdGVybWluYXRpb25Db3VudGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1f
dGVybWluYXRpb25UaW1lb3V0KSB7CisgICAgICAgIHRlcm1pbmF0aW9uVGltZXJGaXJlZCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV90ZXJtaW5hdGlvblRpbWVyLnN0YXJ0T25l
U2hvdChtX3Rlcm1pbmF0aW9uVGltZW91dCk7Cit9CisKK0NoaWxkUHJvY2Vzczo6Q2hpbGRQcm9j
ZXNzKGRvdWJsZSB0ZXJtaW5hdGlvblRpbWVvdXQpCisgICAgOiBtX3Rlcm1pbmF0aW9uVGltZW91
dCh0ZXJtaW5hdGlvblRpbWVvdXQpCisgICAgLCBtX3Rlcm1pbmF0aW9uQ291bnRlcigwKQorICAg
ICwgbV90ZXJtaW5hdGlvblRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkNoaWxkUHJvY2Vz
czo6dGVybWluYXRpb25UaW1lckZpcmVkKQoreworICAgIC8vIEZJWE1FOiBUaGUgdGVybWluYXRp
b24gdGltZXIgc2hvdWxkIG5vdCBiZSBzY2hlZHVsZWQgb24gdGhlIG1haW4gcnVuIGxvb3AuCisg
ICAgLy8gSXQgd29uJ3Qgd29yayB3aXRoIHRoZSB0aHJlYWRlZCBtb2RlLCBidXQgaXQncyBub3Qg
cmVhbGx5IHVzZWZ1bCBhbnl3YXkgYXMgaXMuCiB9CiAKIENoaWxkUHJvY2Vzczo6fkNoaWxkUHJv
Y2VzcygpCiB7CiB9CiAKK3ZvaWQgQ2hpbGRQcm9jZXNzOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQo
KQoreworICAgIGlmICghc2hvdWxkVGVybWluYXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHRlcm1pbmF0ZSgpOworfQorCit2b2lkIENoaWxkUHJvY2Vzczo6dGVybWluYXRlKCkKK3sKKyAg
ICBSdW5Mb29wOjptYWluKCktPnN0b3AoKTsKK30KKwogTk9fUkVUVVJOIHN0YXRpYyB2b2lkIHdh
dGNoZG9nQ2FsbGJhY2soKQogewogICAgIC8vIFdlIHVzZSBfZXhpdCBoZXJlIHNpbmNlIHRoZSB3
YXRjaGRvZyBjYWxsYmFjayBpcyBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZCBhbmQgd2UgZG9u
J3Qgd2FudCAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgJKHJldmlzaW9u
IDgzNzU1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywxNiArMjcsMzggQEAKICNkZWZpbmUgQ2hpbGRQcm9jZXNzX2gKIAogI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBDaGlsZFByb2Nlc3MgOiBwcm90ZWN0ZWQgQ29yZUlQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDaGlsZFByb2Nlc3MpOwor
CitwdWJsaWM6CisgICAgdm9pZCBkaXNhYmxlVGVybWluYXRpb24oKTsKKyAgICB2b2lkIGVuYWJs
ZVRlcm1pbmF0aW9uKCk7CisKIHByb3RlY3RlZDoKLSAgICBDaGlsZFByb2Nlc3MoKTsKKyAgICBl
eHBsaWNpdCBDaGlsZFByb2Nlc3MoZG91YmxlIHRlcm1pbmF0aW9uVGltZW91dCk7CiAgICAgfkNo
aWxkUHJvY2VzcygpOwogCiAgICAgc3RhdGljIHZvaWQgZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3Jr
UXVldWUoV29ya1F1ZXVlJiwgQ29yZUlQQzo6Q29ubmVjdGlvbiopOworCitwcml2YXRlOgorICAg
IHZvaWQgdGVybWluYXRpb25UaW1lckZpcmVkKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
VGVybWluYXRlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGUoKTsKKworICAgIC8v
IFRoZSB0aW1lb3V0LCBpbiBzZWNvbmRzLCBiZWZvcmUgdGhpcyBwcm9jZXNzIHdpbGwgYmUgdGVy
bWluYXRlZCBpZiB0ZXJtaW5hdGlvbgorICAgIC8vIGhhcyBiZWVuIGVuYWJsZWQuIElmIHRoZSB0
aW1lb3V0IGlzIDAgc2Vjb25kcywgdGhlIHByb2Nlc3Mgd2lsbCBiZSB0ZXJtaW5hdGVkIGltbWVk
aWF0ZWx5LgorICAgIGRvdWJsZSBtX3Rlcm1pbmF0aW9uVGltZW91dDsKKworICAgIC8vIEEgdGVy
bWluYXRpb24gY291bnRlcjsgd2hlbiB0aGUgY291bnRlciByZWFjaGVzIHplcm8sIHRoZSBwcm9j
ZXNzIHdpbGwgYmUgdGVybWluYXRlZAorICAgIC8vIGFmdGVyIGEgZ2l2ZW4gcGVyaW9kIG9mIHRp
bWUuCisgICAgdW5zaWduZWQgbV90ZXJtaW5hdGlvbkNvdW50ZXI7CisKKyAgICBSdW5Mb29wOjpU
aW1lcjxDaGlsZFByb2Nlc3M+IG1fdGVybWluYXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CShyZXZpc2lvbiA4Mzc1NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsOCBAQCBXZWJQcm9jZXNzJiBXZWJQ
cm9jZXNzOjpzaGFyZWQoKQogfQogCiBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKLSAgICA6IG1f
aW5EaWRDbG9zZShmYWxzZSkKKyAgICA6IENoaWxkUHJvY2VzcygwLjApCisgICAgLCBtX2luRGlk
Q2xvc2UoZmFsc2UpCiAgICAgLCBtX2hhc1NldENhY2hlTW9kZWwoZmFsc2UpCiAgICAgLCBtX2Nh
Y2hlTW9kZWwoQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKQogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQpAQCAtNTQyLDYgKzU0MywxMyBAQCB2b2lkIFdl
YlByb2Nlc3M6OnRlcm1pbmF0ZUlmUG9zc2libGUoKQogICAgIG1fcnVuTG9vcC0+c3RvcCgpOwog
fQogCitib29sIFdlYlByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCit7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQogeyAgIAogICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFy
Z3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgJKHJldmlzaW9uIDgzNzU1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsOSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBzZXRUZXh0Q2hlY2tlclN0YXRlKGNvbnN0IFRleHRDaGVja2VyU3RhdGUm
KTsKIAorICAgIC8vIENoaWxkUHJvY2VzcworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5h
dGUoKTsKKwogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
Kik7Cg==
</data>
<flag name="review"
          id="82125"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>