<?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>118266</bug_id>
          
          <creation_ts>2013-07-01 16:08:33 -0700</creation_ts>
          <short_desc>[WK2] Clean up private browsing session tracking</short_desc>
          <delta_ts>2013-07-01 17:10:30 -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>Page Loading</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905168</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-01 16:08:33 -0700</bug_when>
    <thetext>Currently, WebContext counts how many times API for enabling/disabling private browsing was called. This is unnecessarily roundabout - we can watch actual WebPreferences objects instead.

&lt;rdar://problem/13078036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905173</commentid>
    <comment_count>1</comment_count>
      <attachid>205844</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-01 16:47:43 -0700</bug_when>
    <thetext>Created attachment 205844
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905175</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-01 16:50:25 -0700</bug_when>
    <thetext>Attachment 205844 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPreferences.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPreferences.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPreferences.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/UIProcess/WebContext.cpp:53:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905177</commentid>
    <comment_count>3</comment_count>
      <attachid>205844</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-01 17:01:14 -0700</bug_when>
    <thetext>Comment on attachment 205844
proposed patch

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

&gt; Source/WebKit2/ChangeLog:17
&gt; +        API was called, rely on WebPrefences tracking.

typo WebPreferences*

&gt; Source/WebKit2/ChangeLog:36
&gt; +        WebContext to know when any page groups are in provate brosing mode.

provate brosing!!!

&gt; Source/WebKit2/UIProcess/WebPreferences.cpp:67
&gt; +    if (privateBrowsingEnabled()) {
&gt; +        if (!privateBrowsingPageGroupCount++)
&gt; +            WebContext::willStartUsingPrivateBrowsing();
&gt; +    }

I think doing a compare with the postincrement makes this less readable than:
if (privateBrowsingEnabled()) {
    if (!privateBrowsingPageGroupCount)
        WebContext::willStartUsingPrivateBrowsing();
    ++privateBrowsingPageGroupCount;
}

&gt; Source/WebKit2/UIProcess/WebPreferences.cpp:76
&gt; +    if (privateBrowsingEnabled()) {
&gt; +        if (!--privateBrowsingPageGroupCount)
&gt; +            WebContext::willStopUsingPrivateBrowsing();
&gt; +    }

I think doing a compare with the preincrement makes this less readable than:

if (privateBrowsingEnabled()) {
    --privateBrowsingPageGroupCount;
    if (!privateBrowsingPageGroupCount)
        WebContext::willStopUsingPrivateBrowsing();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905178</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-01 17:10:25 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/152273&gt;.

In addition to addressing review feedback, made one more change - in WebPreferences::addPageGroup and WebPreferences::removePageGroup, I check that the group is actually added or removed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205844</attachid>
            <date>2013-07-01 16:47:43 -0700</date>
            <delta_ts>2013-07-01 17:01:14 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>PrivateBrowsingSessions.txt</filename>
            <type>text/plain</type>
            <size>12703</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjI2OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEzLTA3LTAxICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHByaXZhdGUg
YnJvd3Npbmcgc2Vzc2lvbiB0cmFja2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MjY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMzA3ODAz
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0
ZWFkIG9mIGNvdW50aW5nIEFQSSBjYWxscywgd2Ugbm93IHdhdGNoIGFjdHVhbCBXZWJQcmVmZXJl
bmNlcyBvYmplY3RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwOiAoV0tQcmVmZXJlbmNlc1NldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICBS
ZW1vdmVkIGNvZGUgdGhhdCB1c2VkIHRvIG5vdGlmeSBXZWJDb250ZXh0LiBJdCdzIG5vdyBkb25l
IGJ5IFdlYlByZWZlcmVuY2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbnRleHQ6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKTogSW5zdGVhZCBvZiBjb3VudGluZyB0aGUg
bnVtYmVyIG9mIHRpbWVzCisgICAgICAgIEFQSSB3YXMgY2FsbGVkLCByZWx5IG9uIFdlYlByZWZl
bmNlcyB0cmFja2luZy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6d2lsbFN0YXJ0VXNp
bmdQcml2YXRlQnJvd3NpbmcpOiBEaXR0by4gVGhpcyBmdW5jdGlvbiBpcworICAgICAgICBub3cg
b25seSBjYWxsZWQgd2hlbiB3ZSBkZXRlY3QgYSBjaGFuZ2UgaW4gcHJpdmF0ZSBicm93c2luZyBz
dGF0ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6d2lsbFN0b3BVc2luZ1ByaXZhdGVC
cm93c2luZyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdX
ZWJQcm9jZXNzKTogVGVsbCB0aGUgbmV3IHByb2Nlc3MgdG8gY3JlYXRlIGEgcHJpdmF0ZQorICAg
ICAgICBicm93c2luZyBzZXNzaW9uIGlmIG5lZWRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjphZGRQYWdlR3JvdXApOiBDb3VudCBo
b3cgbWFueSBwYWdlIGdyb3VwcyB1c2UgcHJpdmF0ZQorICAgICAgICBicm93c2luZywgYW5kIG5v
dGlmeSBXZWJDb250ZXh0IHdoZW4gYSBzZXNzaW9uIGlzIG5lZWRlZC4gTm90ZSB0aGF0IHdlIGRv
bid0IG5vdGlmeQorICAgICAgICBXZWJDb250ZXh0IGFib3V0IFdlYlByZWZlcmVuY2VzIHdpdGhv
dXQgYW55IHBhZ2UgZ3JvdXBzLCBiZWNhdXNlIGl0J3MgbGlrZWx5CisgICAgICAgIHRoYXQgcHJl
ZmVyZW5jZXMgd2lsbCBiZSB1cGRhdGVkIGJ5IHRoZSBjbGllbnQgYmVmb3JlIGdyb3VwcyBhcmUg
YXNzb2NpYXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OnJlbW92ZVBhZ2VH
cm91cCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNlczo6dXBkYXRlQm9v
bFZhbHVlRm9yS2V5KTogUGVyZm9ybSBzcGVjaWFsIGhhbmRsaW5nIGZvcgorICAgICAgICBwcml2
YXRlIGJyb3dzaW5nIG1vZGUgY2hhbmdlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXM6OnVwZGF0ZVByaXZhdGVCcm93c2luZ1ZhbHVlKTogTm90aWZ5IFdlYkNvbnRleHQgd2hlbgor
ICAgICAgICBpdCdzIHRpbWUgdG8gY3JlYXRlIG9yIGRlc3Ryb3kgYSBwcml2YXRlIGJyb3dzaW5n
IHNlc3Npb24uCisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2VzOjphbnlQYWdlR3JvdXBz
QXJlVXNpbmdQcml2YXRlQnJvd3NpbmcpOiBBIGdldHRlciBmb3IKKyAgICAgICAgV2ViQ29udGV4
dCB0byBrbm93IHdoZW4gYW55IHBhZ2UgZ3JvdXBzIGFyZSBpbiBwcm92YXRlIGJyb3NpbmcgbW9k
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDogKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICBEb24ndCBjcmVhdGUgYSBwcml2
YXRlIGJyb3dzaW5nIHNlc3Npb24gaW1wbGljaXRseSwgVUkgcHJvY2VzcyB0YWtlcyBjYXJlIG9m
IGl0LgorCiAyMDEzLTA3LTAxICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4K
IAogICAgICAgICBMaW5rIHRvIFdlYkluc3BlY3RvclVJLmZyYW1ld29yayBhdCBidWlsZCB0aW1l
IGluc3RlYWQgb2Ygc29mdCBsaW5raW5nLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAkocmV2aXNpb24gMTUyMjM4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBACiAjaW5j
bHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAi
V2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJNZW1vcnlTYW1wbGVyLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
ZXNzYWdlcy5oIgpAQCAtOTcsOCArOTgsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGlj
IGNvbnN0IGRvdWJsZSBzaGFyZWRTZWNvbmRhcnlQcm9jZXNzU2h1dGRvd25UaW1lb3V0ID0gNjA7
CiAKLXVuc2lnbmVkIFdlYkNvbnRleHQ6Om1fcHJpdmF0ZUJyb3dzaW5nRW50ZXJDb3VudDsKLQog
REVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCB3ZWJD
b250ZXh0Q291bnRlciwgKCJXZWJDb250ZXh0IikpOwogCiBQYXNzUmVmUHRyPFdlYkNvbnRleHQ+
IFdlYkNvbnRleHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkKQEAg
LTM3MywxMCArMzcyLDcgQEAgdm9pZCBXZWJDb250ZXh0OjplbnN1cmVOZXR3b3JrUHJvY2Vzcygp
CiAgICAgaWYgKCFwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShw
YXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSwgcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOwogCi0gICAgLy8gRklYTUU6IFdlIGRvbid0IGFjY291bnQgZm9y
IHByaXZhdGUgYnJvd3NpbmcgbW9kZSBiZWluZyBlbmFibGVkIGR1ZSB0byBhIHBlcnNpc3RlbnQg
cHJlZmVyZW5jZSBpbiBhbnkgb2YgYWN0aXZlIHBhZ2UgZ3JvdXBzLgotICAgIC8vIFRoaXMgbWVh
bnMgdGhhdCBjbGllbnRzIG11c3QgcmUtZW5hYmxlIHByaXZhdGUgYnJvd3NpbmcgbW9kZSB0aHJv
dWdoIEFQSSBvbiBlYWNoIGxhdW5jaCwgbm90IHJlbHlpbmcgb24gcHJlZmVyZW5jZXMuCi0gICAg
Ly8gSWYgdGhlIGNsaWVudCBkb2VzIG5vdCByZS1lbmFibGUgcHJpdmF0ZSBicm93c2luZyBvbiBu
ZXh0IGxhdW5jaCwgTmV0d29ya1Byb2Nlc3Mgd2lsbCBjcmFzaC4KLSAgICBwYXJhbWV0ZXJzLnBy
aXZhdGVCcm93c2luZ0VuYWJsZWQgPSBtX3ByaXZhdGVCcm93c2luZ0VudGVyQ291bnQ7CisgICAg
cGFyYW1ldGVycy5wcml2YXRlQnJvd3NpbmdFbmFibGVkID0gV2ViUHJlZmVyZW5jZXM6OmFueVBh
Z2VHcm91cHNBcmVVc2luZ1ByaXZhdGVCcm93c2luZygpOwogCiAgICAgcGFyYW1ldGVycy5jYWNo
ZU1vZGVsID0gbV9jYWNoZU1vZGVsOwogCkBAIC00MTYsOSArNDEyLDYgQEAgdm9pZCBXZWJDb250
ZXh0OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lYwogCiB2b2lkIFdlYkNvbnRleHQ6OndpbGxTdGFy
dFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCkKIHsKLSAgICBpZiAobV9wcml2YXRlQnJvd3NpbmdFbnRl
ckNvdW50KyspCi0gICAgICAgIHJldHVybjsKLQogICAgIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0
Kj4mIGNvbnRleHRzID0gYWxsQ29udGV4dHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291
bnQgPSBjb250ZXh0cy5zaXplKCk7IGkgPCBjb3VudDsgKytpKSB7CiAjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKQEAgLTQzMSwxMSArNDI0LDYgQEAgdm9pZCBXZWJDb250ZXh0Ojp3aWxsU3Rh
cnRVc2luZ1ByaXZhdGVCcgogCiB2b2lkIFdlYkNvbnRleHQ6OndpbGxTdG9wVXNpbmdQcml2YXRl
QnJvd3NpbmcoKQogewotICAgIC8vIElmIHRoZSBjbGllbnQgYXNrcyB0byBkaXNhYmxlIHByaXZh
dGUgYnJvd3Npbmcgd2l0aG91dCBlbmFibGluZyBpdCBmaXJzdCwgaXQgbWF5IGJlIHJlc2V0dGlu
ZyBhIHBlcnNpc3RlbnQgcHJlZmVyZW5jZSwKLSAgICAvLyBzbyBpdCBpcyBzdGlsbCBuZWNlc3Nh
cnkgdG8gZGVzdHJveSBhbnkgZXhpc3RpbmcgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9uLgotICAg
IGlmIChtX3ByaXZhdGVCcm93c2luZ0VudGVyQ291bnQgJiYgLS1tX3ByaXZhdGVCcm93c2luZ0Vu
dGVyQ291bnQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0
Kj4mIGNvbnRleHRzID0gYWxsQ29udGV4dHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291
bnQgPSBjb250ZXh0cy5zaXplKCk7IGkgPCBjb3VudDsgKytpKSB7CiAjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKQEAgLTU2Miw2ICs1NTAsOSBAQCBXZWJQcm9jZXNzUHJveHkqIFdlYkNvbnRl
eHQ6OmNyZWF0ZU5ld1dlCiAgICAgICAgIGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YSA9IG1faW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhOwogICAgIHByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFt
ZXRlcnMsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIoaW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhLmdldCgpKSksIDApOwogCisgICAgaWYgKFdlYlByZWZlcmVuY2VzOjph
bnlQYWdlR3JvdXBzQXJlVXNpbmdQcml2YXRlQnJvd3NpbmcoKSkKKyAgICAgICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
LCAwKTsKKwogICAgIG1fcHJvY2Vzc2VzLmFwcGVuZChwcm9jZXNzKTsKIAogICAgIGlmIChtX3By
b2Nlc3NNb2RlbCA9PSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzKSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDE1MjIzOCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQyMiwxMCArNDIyLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYWx3YXlzVXNlc0NvbXBsZXhU
ZXh0Q29kZVBhdGg7CiAgICAgYm9vbCBtX3Nob3VsZFVzZUZvbnRTbW9vdGhpbmc7CiAKLSAgICAv
LyBIb3cgbWFueSB0aW1lcyBhbiBBUEkgY2FsbCB3YXMgdXNlZCB0byBlbmFibGUgdGhlIHByZWZl
cmVuY2UuCi0gICAgLy8gVGhlIHZhcmlhYmxlIGNhbiBiZSAwIHdoZW4gcHJpdmF0ZSBicm93c2lu
ZyBpcyB1c2VkIGlmIGl0J3MgZW5hYmxlZCBkdWUgdG8gYSBwZXJzaXN0ZW50IHByZWZlcmVuY2Uu
Ci0gICAgc3RhdGljIHVuc2lnbmVkIG1fcHJpdmF0ZUJyb3dzaW5nRW50ZXJDb3VudDsKLQogICAg
IC8vIE1lc3NhZ2VzIHRoYXQgd2VyZSBwb3N0ZWQgYmVmb3JlIGFueSBwYWdlcyB3ZXJlIGNyZWF0
ZWQuCiAgICAgLy8gVGhlIGNsaWVudCBzaG91bGQgdXNlIGluaXRpYWxpemF0aW9uIG1lc3NhZ2Vz
IGluc3RlYWQsIHNvIHRoYXQgYSByZXN0YXJ0ZWQgcHJvY2VzcyB3b3VsZCBnZXQgdGhlIHNhbWUg
c3RhdGUuCiAgICAgVmVjdG9yPHBhaXI8U3RyaW5nLCBSZWZQdHI8QVBJT2JqZWN0Pj4+IG1fbWVz
c2FnZXNUb0luamVjdGVkQnVuZGxlUG9zdGVkVG9FbXB0eUNvbnRleHQ7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDE1MjIzOCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDEwICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IldlYlByZWZlcmVuY2VzLmgiCiAKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAi
V2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKKy8vIEZJWE1FOiBNYW5pcHVsYXRpbmcgdGhpcyB2YXJpYWJs
ZSBpcyBub3QgdGhyZWFkIHNhZmUuCisvLyBJbnN0ZWFkIG9mIHRyYWNraW5nIHByaXZhdGUgYnJv
d3Npbmcgc3RhdGUgYXMgYSBib29sZWFuIHByZWZlcmVuY2UsIHdlIHNob3VsZCBsZXQgdGhlIGNs
aWVudCBwcm92aWRlIHN0b3JhZ2Ugc2Vzc2lvbnMgZXhwbGljaXRseS4KK3N0YXRpYyB1bnNpZ25l
ZCBwcml2YXRlQnJvd3NpbmdQYWdlR3JvdXBDb3VudDsKKwogV2ViUHJlZmVyZW5jZXM6OldlYlBy
ZWZlcmVuY2VzKCkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemVTdG9yZSgpOwpAQCAtNDksMTYg
KzU1LDI1IEBAIFdlYlByZWZlcmVuY2VzOjpXZWJQcmVmZXJlbmNlcyhjb25zdCBXZWIKIAogV2Vi
UHJlZmVyZW5jZXM6On5XZWJQcmVmZXJlbmNlcygpCiB7CisgICAgQVNTRVJUKG1fcGFnZUdyb3Vw
cy5pc0VtcHR5KCkpOwogfQogCiB2b2lkIFdlYlByZWZlcmVuY2VzOjphZGRQYWdlR3JvdXAoV2Vi
UGFnZUdyb3VwKiBwYWdlR3JvdXApCiB7CiAgICAgbV9wYWdlR3JvdXBzLmFkZChwYWdlR3JvdXAp
OworICAgIGlmIChwcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKCFwcml2
YXRlQnJvd3NpbmdQYWdlR3JvdXBDb3VudCsrKQorICAgICAgICAgICAgV2ViQ29udGV4dDo6d2ls
bFN0YXJ0VXNpbmdQcml2YXRlQnJvd3NpbmcoKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnJlbW92ZVBhZ2VHcm91cChXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKIHsKICAgICBt
X3BhZ2VHcm91cHMucmVtb3ZlKHBhZ2VHcm91cCk7CisgICAgaWYgKHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKSkgeworICAgICAgICBpZiAoIS0tcHJpdmF0ZUJyb3dzaW5nUGFnZUdyb3VwQ291bnQp
CisgICAgICAgICAgICBXZWJDb250ZXh0Ojp3aWxsU3RvcFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7
CisgICAgfQogfQogCiB2b2lkIFdlYlByZWZlcmVuY2VzOjp1cGRhdGUoKQpAQCAtNzUsNiArOTAs
MTEgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6dXBkYXRlU3RyaW5nVmFsdWVGbwogCiB2b2lkIFdl
YlByZWZlcmVuY2VzOjp1cGRhdGVCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGJv
b2wgdmFsdWUpCiB7CisgICAgaWYgKGtleSA9PSBXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZEtleSgpKSB7CisgICAgICAgIHVwZGF0ZVByaXZhdGVCcm93c2luZ1ZhbHVl
KHZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHBsYXRmb3JtVXBkYXRlQm9v
bFZhbHVlRm9yS2V5KGtleSwgdmFsdWUpOwogICAgIHVwZGF0ZSgpOyAvLyBGSVhNRTogT25seSBz
ZW5kIG92ZXIgdGhlIGNoYW5nZWQga2V5IGFuZCB2YWx1ZS4KIH0KQEAgLTk3LDYgKzExNywzMCBA
QCB2b2lkIFdlYlByZWZlcmVuY2VzOjp1cGRhdGVGbG9hdFZhbHVlRm9yCiAgICAgdXBkYXRlKCk7
IC8vIEZJWE1FOiBPbmx5IHNlbmQgb3ZlciB0aGUgY2hhbmdlZCBrZXkgYW5kIHZhbHVlLgogfQog
Cit2b2lkIFdlYlByZWZlcmVuY2VzOjp1cGRhdGVQcml2YXRlQnJvd3NpbmdWYWx1ZShib29sIHZh
bHVlKQoreworICAgIHBsYXRmb3JtVXBkYXRlQm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCksIHZhbHVlKTsKKworICAgIHVuc2lnbmVk
IHBhZ2VHcm91cHNDaGFuZ2VkID0gbV9wYWdlR3JvdXBzLnNpemUoKTsKKyAgICBpZiAoIXBhZ2VH
cm91cHNDaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodmFsdWUpIHsKKyAgICAg
ICAgaWYgKCFwcml2YXRlQnJvd3NpbmdQYWdlR3JvdXBDb3VudCkKKyAgICAgICAgICAgIFdlYkNv
bnRleHQ6OndpbGxTdGFydFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7CisgICAgICAgIHByaXZhdGVC
cm93c2luZ1BhZ2VHcm91cENvdW50ICs9IHBhZ2VHcm91cHNDaGFuZ2VkOworICAgIH0KKworICAg
IHVwZGF0ZSgpOyAvLyBGSVhNRTogT25seSBzZW5kIG92ZXIgdGhlIGNoYW5nZWQga2V5IGFuZCB2
YWx1ZS4KKworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUKHByaXZhdGVCcm93c2lu
Z1BhZ2VHcm91cENvdW50ID49IHBhZ2VHcm91cHNDaGFuZ2VkKTsKKyAgICAgICAgcHJpdmF0ZUJy
b3dzaW5nUGFnZUdyb3VwQ291bnQgLT0gcGFnZUdyb3Vwc0NoYW5nZWQ7CisgICAgICAgIGlmICgh
cHJpdmF0ZUJyb3dzaW5nUGFnZUdyb3VwQ291bnQpCisgICAgICAgICAgICBXZWJDb250ZXh0Ojp3
aWxsU3RvcFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7CisgICAgfQorfQorCiAjZGVmaW5lIERFRklO
RV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVO
YW1lLCBUeXBlLCBEZWZhdWx0VmFsdWUpIFwKICAgICB2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQj
I0tleVVwcGVyKGNvbnN0IFR5cGUmIHZhbHVlKSBcCiAgICAgeyBcCkBAIC0xMTUsNCArMTU5LDkg
QEAgRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0UoREVGSU5FX1BSRUZFUgogCiAjdW5kZWYgREVG
SU5FX1BSRUZFUkVOQ0VfR0VUVEVSX0FORF9TRVRURVJTCiAKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6
OmFueVBhZ2VHcm91cHNBcmVVc2luZ1ByaXZhdGVCcm93c2luZygpCit7CisgICAgcmV0dXJuIHBy
aXZhdGVCcm93c2luZ1BhZ2VHcm91cENvdW50OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCShyZXZpc2lv
biAxNTIyMzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsOCBAQCBwdWJsaWM6CiAgICAgLy8gRXhwb3NlZCBm
b3IgV2ViS2l0VGVzdFJ1bm5lciB1c2Ugb25seS4KICAgICB2b2lkIGZvcmNlVXBkYXRlKCkgeyB1
cGRhdGUoKTsgfQogCisgICAgc3RhdGljIGJvb2wgYW55UGFnZUdyb3Vwc0FyZVVzaW5nUHJpdmF0
ZUJyb3dzaW5nKCk7CisKIHByaXZhdGU6CiAgICAgV2ViUHJlZmVyZW5jZXMoKTsKICAgICBleHBs
aWNpdCBXZWJQcmVmZXJlbmNlcyhjb25zdCBTdHJpbmcmKTsKQEAgLTk1LDYgKzk3LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHBsYXRmb3JtVXBkYXRlRG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXksIGRvdWJsZSB2YWx1ZSk7CiAgICAgdm9pZCBwbGF0Zm9ybVVwZGF0ZUZsb2F0VmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGZsb2F0IHZhbHVlKTsKIAorICAgIHZvaWQgdXBk
YXRlUHJpdmF0ZUJyb3dzaW5nVmFsdWUoYm9vbCB2YWx1ZSk7CisKICAgICBIYXNoU2V0PFdlYlBh
Z2VHcm91cCo+IG1fcGFnZUdyb3VwczsKICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlIG1fc3RvcmU7
CiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDE1MjIzOCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQxLDE1ICszNDEsNiBAQCBXS1N0cmluZ1JlZiBXS1ByZWZlcmVuY2VzQ29weURl
ZmF1bHRUZXh0CiAKIHZvaWQgV0tQcmVmZXJlbmNlc1NldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQogewotICAgIGlm
ICh0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPT0gZW5h
YmxlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gUmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRo
ZXJlIGFyZSBhbnkgb3BlbiBwYWdlcywgd2Ugc2hvdWxkIHRlbGwgV2ViQ29udGV4dCwgc28gdGhh
dCBpdCBjb3VsZCB0cmFjayBicm93c2luZyBzZXNzaW9ucy4KLSAgICBpZiAoZW5hYmxlZCkKLSAg
ICAgICAgV2ViQ29udGV4dDo6d2lsbFN0YXJ0VXNpbmdQcml2YXRlQnJvd3NpbmcoKTsKLSAgICBl
bHNlCi0gICAgICAgIFdlYkNvbnRleHQ6OndpbGxTdG9wVXNpbmdQcml2YXRlQnJvd3NpbmcoKTsK
LQogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
ZW5hYmxlZCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDE1MjIzOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQzNSwxMiArMjQz
NSw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2UKICAgICBzZXR0
aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdz
LT5zZXRYU1NBdWRpdG9yRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6Onhzc0F1ZGl0b3JFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXkoKSkpOwotICAgIAotICAgIGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKTsKLSAgICBpZiAocHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKLSAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuZW5zdXJlUHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbigpOwotICAgIHNldHRpbmdzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpOwotCisgICAgc2V0dGluZ3MtPnNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0RGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6OmRldmVsb3BlckV4dHJhc0VuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLT5zZXRKYXZh
U2NyaXB0RXhwZXJpbWVudHNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6amF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0
dGluZ3MtPnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OnRleHRBcmVhc0FyZVJlc2l6YWJsZUtleSgpKSk7Cg==
</data>
<flag name="review"
          id="227459"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>