<?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>131453</bug_id>
          
          <creation_ts>2014-04-09 14:26:25 -0700</creation_ts>
          <short_desc>Update SPI for managing tabs</short_desc>
          <delta_ts>2014-04-18 15:50:16 -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>WebKit2</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>131860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>999294</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-09 14:26:25 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999298</commentid>
    <comment_count>1</comment_count>
      <attachid>228983</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-09 14:32:42 -0700</bug_when>
    <thetext>Created attachment 228983
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999313</commentid>
    <comment_count>2</comment_count>
      <attachid>228983</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-09 15:01:15 -0700</bug_when>
    <thetext>Comment on attachment 228983
Fix

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

Python script changes in the patch seem unrelated.

&gt; Source/WebKit2/UIProcess/WebProcessProxy.h:226
&gt; +    bool m_foreground;

I think that &quot;m_assertionFlagsAreForeground&quot; would be a more descriptive name for this.

Or perhaps we can ask m_assertion about whether it&apos;s taken?

&gt; Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm:35
&gt; +#define BACKGROUND_TAB_FLAGS (BKSProcessAssertionAllowIdleSleep)
&gt; +#define FOREGROUND_TAB_FLAGS (BKSProcessAssertionAllowIdleSleep | BKSProcessAssertionPreventTaskSuspend | BKSProcessAssertionWantsForegroundResourcePriority | BKSProcessAssertionPreventTaskThrottleDown)

I&apos;d use a const, not a #define.

&gt; Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm:100
&gt; +                LOG_ERROR(&quot;Unable to aquire assertion for WebContent process %d&quot;, pid);

Typo: aquire.

&gt; Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm:104
&gt; +        m_assertion = [[BKSProcessAssertion alloc] initWithPID:pid flags:flags reason:BKSProcessAssertionReasonExtension name:@&quot;Web content visible&quot; withHandler:handler];

This leaks, please use adoptNS().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999321</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-09 15:13:36 -0700</bug_when>
    <thetext>Transmitting file data ....
Committed revision 167039.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999424</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-04-09 21:10:36 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 228983 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228983&amp;action=review
&gt; 
&gt; Python script changes in the patch seem unrelated.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebProcessProxy.h:226
&gt; &gt; +    bool m_foreground;
&gt; 
&gt; I think that &quot;m_assertionFlagsAreForeground&quot; would be a more descriptive name for this.
&gt; 
&gt; Or perhaps we can ask m_assertion about whether it&apos;s taken?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm:35
&gt; &gt; +#define BACKGROUND_TAB_FLAGS (BKSProcessAssertionAllowIdleSleep)
&gt; &gt; +#define FOREGROUND_TAB_FLAGS (BKSProcessAssertionAllowIdleSleep | BKSProcessAssertionPreventTaskSuspend | BKSProcessAssertionWantsForegroundResourcePriority | BKSProcessAssertionPreventTaskThrottleDown)
&gt; 
&gt; I&apos;d use a const, not a #define.

…and constants should be named like local variables, starting with a lowercase letter.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228983</attachid>
            <date>2014-04-09 14:32:42 -0700</date>
            <delta_ts>2014-04-09 15:01:15 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>131453.1.patch</filename>
            <type>text/plain</type>
            <size>12118</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzAzMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA0LTA5ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBTUEkg
Zm9yIG1hbmFnaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0Mi54Y2NvbmZpZzoKKyAgICAgICAgICAg
IC0gYWRkZWQgQXNzZXJ0aW9uU2VydmljZXMKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICAgICAtIGFkZGVkIG1fYXNzZXJ0aW9uLCBtX2ZvcmVncm91bmQu
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dXBkYXRlUHJvY2Vzc1N0YXRlKToKKyAgICAgICAg
ICAgIC0gY3JlYXRlIEJLU1Byb2Nlc3NBc3NlcnRpb24gdG8gdGFrZSBhbiBhc3NlcnRpb24uCisK
IDIwMTQtMDQtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBHVEsrIGJ1aWxkIGFmdGVyIHIxNjY5NzUuCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQyLnhjY29uZmlnCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdDIueGNjb25maWcJKHJl
dmlzaW9uIDE2Njg5NykKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdDIu
eGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgSU5TVEFMTF9QQVRIX0FD
VFVBTCA9ICQoV0VCS0lUMl9GUkFNRVdPUgogRFlMSUJfSU5TVEFMTF9OQU1FX0JBU0UgPSAkKE5P
Uk1BTF9XRUJLSVQyX0ZSQU1FV09SS1NfRElSKTsKIAogRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xE
RkxBR1MgPSAkKEZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTXyQoUExBVEZPUk1fTkFNRSkp
OwotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gLWxvYmpj
IC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29y
ayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlUERGIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZy
YW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgR3JhcGhpY3NTZXJ2aWNlcyAtZnJhbWV3b3Jr
IEltYWdlSU8gLWZyYW1ld29yayBVSUtpdCAtZnJhbWV3b3JrIE9wZW5HTEVTIC1mcmFtZXdvcmsg
TW9iaWxlQXNzZXQgLWZyYW1ld29yayBXZWJLaXQgLWxNb2JpbGVHZXN0YWx0IC1sYXNzZXJ0aW9u
X2V4dGVuc2lvbjsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTX2lwaG9uZXNpbXVsYXRv
ciA9IC1sb2JqYyAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZpY2VzIC1mcmFtZXdvcmsgQ0ZOZXR3
b3JrIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZy
YW1ld29yayBDb3JlUERGIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9u
IC1mcmFtZXdvcmsgR3JhcGhpY3NTZXJ2aWNlcyAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29y
ayBVSUtpdCAtZnJhbWV3b3JrIE9wZW5HTEVTIC1mcmFtZXdvcmsgTW9iaWxlQXNzZXQgLWZyYW1l
d29yayBXZWJLaXQgLWxNb2JpbGVHZXN0YWx0IC1sYXNzZXJ0aW9uX2V4dGVuc2lvbjsKIEZSQU1F
V09SS19BTkRfTElCUkFSWV9MREZMQUdTX2lwaG9uZW9zID0gJChGUkFNRVdPUktfQU5EX0xJQlJB
UllfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpIC1mcmFtZXdvcmsgSU9TdXJmYWNlOwogRlJBTUVX
T1JLX0FORF9MSUJSQVJZX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBBcHBsaWNhdGlvblNl
cnZpY2VzIC1mcmFtZXdvcmsgQ2FyYm9uIC1mcmFtZXdvcmsgQ29jb2EgLWZyYW1ld29yayBDb3Jl
U2VydmljZXMgLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3Jr
IElPU3VyZmFjZSAtZnJhbWV3b3JrIE9wZW5HTDsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkocmV2aXNpb24gMTY2ODk3KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2
ICs0NiwxMCBAQAogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmgiCiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKElPUykgJiYgVVNFKFhQQ19TRVJWSUNFUykKK09CSkNfQ0xBU1Mg
QktTUHJvY2Vzc0Fzc2VydGlvbjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBVUkw7CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKQEAgLTIxNiw2ICsyMjAsMTEgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAgICAgaW50IG1fbnVtYmVyT2ZUaW1lc1N1ZGRlblRlcm1pbmF0aW9uV2FzRGlz
YWJsZWQ7CisgICAgCisjaWYgUExBVEZPUk0oSU9TKSAmJiBVU0UoWFBDX1NFUlZJQ0VTKQorICAg
IFJldGFpblB0cjxCS1NQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKKyAgICBib29sIG1f
Zm9yZWdyb3VuZDsKKyNlbmRpZgogfTsKIAogI2lmICFQTEFURk9STShJT1MpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQko
cmV2aXNpb24gMTY2ODk3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQcm9j
ZXNzUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDEyIEBACiAKICNpZiBQ
TEFURk9STShJT1MpCiAKLSNpbXBvcnQgPGFzc2VydGlvbi9leHRlbnNpb25fcHJpdmF0ZS5oPgor
I2ltcG9ydCA8QXNzZXJ0aW9uU2VydmljZXMvQktTUHJvY2Vzc0Fzc2VydGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogCisjZGVmaW5lIEJBQ0tHUk9VTkRfVEFCX0ZM
QUdTIChCS1NQcm9jZXNzQXNzZXJ0aW9uQWxsb3dJZGxlU2xlZXApCisjZGVmaW5lIEZPUkVHUk9V
TkRfVEFCX0ZMQUdTIChCS1NQcm9jZXNzQXNzZXJ0aW9uQWxsb3dJZGxlU2xlZXAgfCBCS1NQcm9j
ZXNzQXNzZXJ0aW9uUHJldmVudFRhc2tTdXNwZW5kIHwgQktTUHJvY2Vzc0Fzc2VydGlvbldhbnRz
Rm9yZWdyb3VuZFJlc291cmNlUHJpb3JpdHkgfCBCS1NQcm9jZXNzQXNzZXJ0aW9uUHJldmVudFRh
c2tUaHJvdHRsZURvd24pCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIFdlYlByb2Nlc3NQ
cm94eTo6ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpCkBAIC04MSwxNiArODQsMjggQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZVByb2Nlc3NTdGF0ZQogICAgIGlmICgheHBjQ29ubmVj
dGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXNzZXJ0aW9uX2V4dGVuc2lvbl9zdGF0ZV90
IGV4dGVuc2lvblN0YXRlID0gQVNTRVJUSU9OX0VYVEVOU0lPTl9TVEFURV9CQUNLR1JPVU5EOwor
ICAgIGJvb2wgZm9yZWdyb3VuZCA9IGZhbHNlOwogICAgIGZvciAoY29uc3QgYXV0byYgcGFnZSA6
IG1fcGFnZU1hcC52YWx1ZXMoKSkgewogICAgICAgICBpZiAocGFnZS0+aXNJbldpbmRvdygpKSB7
Ci0gICAgICAgICAgICBleHRlbnNpb25TdGF0ZSA9IEFTU0VSVElPTl9FWFRFTlNJT05fU1RBVEVf
Rk9SRUdST1VORDsKKyAgICAgICAgICAgIGZvcmVncm91bmQgPSB0cnVlOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBlcnJub190IHRhYlN0YXRlRXJyb3IgPSBh
c3NlcnRpb25fZXh0ZW5zaW9uX3NldF9zdGF0ZSh4cGNDb25uZWN0aW9uLCBleHRlbnNpb25TdGF0
ZSwgTlVMTCk7Ci0gICAgQVNTRVJUX1VOVVNFRCh0YWJTdGF0ZUVycm9yLCAhdGFiU3RhdGVFcnJv
cik7CisgICAgQktTUHJvY2Vzc0Fzc2VydGlvbkZsYWdzIGZsYWdzID0gZm9yZWdyb3VuZCA/IEZP
UkVHUk9VTkRfVEFCX0ZMQUdTIDogQkFDS0dST1VORF9UQUJfRkxBR1M7CisgICAgCisgICAgaWYg
KCFtX2Fzc2VydGlvbikgeworICAgICAgICBwaWRfdCBwaWQgPSB4cGNfY29ubmVjdGlvbl9nZXRf
cGlkKHhwY0Nvbm5lY3Rpb24pOworICAgICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRp
b25IYW5kbGVyIGhhbmRsZXIgPSBeKEJPT0wgYWNxdWlyZWQpIHsKKyAgICAgICAgICAgIGlmICgh
YWNxdWlyZWQpIHsKKyAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBhcXVpcmUg
YXNzZXJ0aW9uIGZvciBXZWJDb250ZW50IHByb2Nlc3MgJWQiLCBwaWQpOworICAgICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAg
ICAgICBtX2Fzc2VydGlvbiA9IFtbQktTUHJvY2Vzc0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhQ
SUQ6cGlkIGZsYWdzOmZsYWdzIHJlYXNvbjpCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRXh0ZW5z
aW9uIG5hbWU6QCJXZWIgY29udGVudCB2aXNpYmxlIiB3aXRoSGFuZGxlcjpoYW5kbGVyXTsKKyAg
ICB9IGVsc2UgaWYgKG1fZm9yZWdyb3VuZCAhPSBmb3JlZ3JvdW5kKQorICAgICAgICBbbV9hc3Nl
cnRpb24gc2V0RmxhZ3M6ZmxhZ3NdOworICAgIAorICAgIG1fZm9yZWdyb3VuZCA9IGZvcmVncm91
bmQ7CiAjZW5kaWYKIH0KIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcmVmdGVzdHMvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmVmdGVzdHMvX19pbml0X18ucHkJKHJldmlzaW9uIDE1OTIzMykK
KysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlZnRlc3RzL19faW5pdF9f
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLSMgUmVxdWlyZWQgZm9yIFB5dGhvbiB0
byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZSBmaWxlcwpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVmdGVzdHMvZXh0cmFjdF9yZWZlcmVuY2VfbGlu
ay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
ZWZ0ZXN0cy9leHRyYWN0X3JlZmVyZW5jZV9saW5rLnB5CShyZXZpc2lvbiAxNTkyMzMpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWZ0ZXN0cy9leHRyYWN0X3JlZmVy
ZW5jZV9saW5rLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYzICswLDAgQEAKLSMgQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0KLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0iIiJVdGlsaXR5IG1vZHVs
ZSBmb3IgcmVmdGVzdHMuIiIiCi0KLQotZnJvbSBIVE1MUGFyc2VyIGltcG9ydCBIVE1MUGFyc2Vy
Ci0KLQotY2xhc3MgRXh0cmFjdFJlZmVyZW5jZUxpbmtQYXJzZXIoSFRNTFBhcnNlcik6Ci0KLSAg
ICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIEhUTUxQYXJzZXIuX19pbml0X18oc2VsZikK
LSAgICAgICAgc2VsZi5tYXRjaGVzID0gW10KLSAgICAgICAgc2VsZi5taXNtYXRjaGVzID0gW10K
LQotICAgIGRlZiBoYW5kbGVfc3RhcnR0YWcoc2VsZiwgdGFnLCBhdHRycyk6Ci0gICAgICAgIGlm
IHRhZyAhPSAibGluayI6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgYXR0cnMgPSBkaWN0
KGF0dHJzKQotICAgICAgICBpZiBub3QgInJlbCIgaW4gYXR0cnM6Ci0gICAgICAgICAgICByZXR1
cm4KLSAgICAgICAgaWYgbm90ICJocmVmIiBpbiBhdHRyczoKLSAgICAgICAgICAgIHJldHVybgot
ICAgICAgICBpZiBhdHRyc1sicmVsIl0gPT0gIm1hdGNoIjoKLSAgICAgICAgICAgIHNlbGYubWF0
Y2hlcy5hcHBlbmQoYXR0cnNbImhyZWYiXSkKLSAgICAgICAgaWYgYXR0cnNbInJlbCJdID09ICJt
aXNtYXRjaCI6Ci0gICAgICAgICAgICBzZWxmLm1pc21hdGNoZXMuYXBwZW5kKGF0dHJzWyJocmVm
Il0pCi0KLQotZGVmIGdldF9yZWZlcmVuY2VfbGluayhodG1sX3N0cmluZyk6Ci0gICAgIiIiUmV0
dXJucyByZWZlcmVuY2UgbGlua3MgaW4gdGhlIGdpdmVuIGh0bWxfc3RyaW5nLgotCi0gICAgUmV0
dXJuczoKLSAgICAgICAgYSB0dXBsZSBvZiB0d28gVVJMIGxpc3RzLCAobWF0Y2hlcywgbWlzbWF0
Y2hlcykuCi0gICAgIiIiCi0gICAgcGFyc2VyID0gRXh0cmFjdFJlZmVyZW5jZUxpbmtQYXJzZXIo
KQotICAgIHBhcnNlci5mZWVkKGh0bWxfc3RyaW5nKQotICAgIHBhcnNlci5jbG9zZSgpCi0KLSAg
ICByZXR1cm4gcGFyc2VyLm1hdGNoZXMsIHBhcnNlci5taXNtYXRjaGVzCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWZ0ZXN0cy9leHRyYWN0X3JlZmVyZW5jZV9s
aW5rX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3JlZnRlc3RzL2V4dHJhY3RfcmVmZXJlbmNlX2xpbmtfdW5pdHRlc3QucHkJKHJl
dmlzaW9uIDE1OTIzMykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Jl
ZnRlc3RzL2V4dHJhY3RfcmVmZXJlbmNlX2xpbmtfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkK
QEAgLTEsODAgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLQotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLWltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKLQotZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMucmVmdGVzdHMgaW1wb3J0IGV4dHJhY3RfcmVmZXJlbmNlX2xpbmsKLQot
Ci1jbGFzcyBFeHRyYWN0TGlua01hdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBk
ZWYgdGVzdF9nZXRFeHRyYWN0TWF0Y2goc2VsZik6Ci0gICAgICAgIGh0bWxfMSA9ICIiIjwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCi0iaHR0
cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08aHRtbCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLTx0aXRsZT5DU1Mg
VGVzdDogREVTQ1JJUFRJT04gT0YgVEVTVDwvdGl0bGU+Ci08bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik5BTUVfT0ZfQVVUSE9SIgotaHJlZj0ibWFpbHRvOkVNQUlMIE9SIGh0dHA6Ly9DT05UQUNU
X1BBR0UiLz4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iUkVMRVZBTlRfU1BFQ19TRUNUSU9OIi8+
Ci08bGluayByZWw9Im1hdGNoIiBocmVmPSJncmVlbi1ib3gtcmVmLnhodCIgLz4KLTxsaW5rIHJl
bD0ibWF0Y2giIGhyZWY9ImJsdWUtYm94LXJlZi54aHQiIC8+Ci08bGluayByZWw9Im1pc21hdGNo
IiBocmVmPSJyZWQtYm94LW5vdHJlZi54aHQiIC8+Ci08bGluayByZWw9Im1pc21hdGNoIiBocmVm
PSJyZWQtYm94LW5vdHJlZi54aHQiIC8+Ci08bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0iVE9L
RU5TIiAvPgotPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJURVNUIEFTU0VSVElPTiIvPgot
PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKLUNTUyBGT1IgVEVTVAotXV0+PC9zdHls
ZT4KLTwvaGVhZD4KLTxib2R5PgotQ09OVEVOVCBPRiBURVNUCi08L2JvZHk+Ci08L2h0bWw+Ci0i
IiIKLSAgICAgICAgbWF0Y2hlcywgbWlzbWF0Y2hlcyA9IGV4dHJhY3RfcmVmZXJlbmNlX2xpbmsu
Z2V0X3JlZmVyZW5jZV9saW5rKGh0bWxfMSkKLSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFs
KG1hdGNoZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImdyZWVuLWJveC1yZWYu
eGh0IiwgImJsdWUtYm94LXJlZi54aHQiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFs
KG1pc21hdGNoZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInJlZC1ib3gtbm90
cmVmLnhodCIsICJyZWQtYm94LW5vdHJlZi54aHQiXSkKLQotICAgICAgICBodG1sXzIgPSAiIgot
ICAgICAgICBlbXB0eV90dXBsZV8xID0gZXh0cmFjdF9yZWZlcmVuY2VfbGluay5nZXRfcmVmZXJl
bmNlX2xpbmsoaHRtbF8yKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVtcHR5X3R1cGxlXzEs
IChbXSwgW10pKQotCi0gICAgICAgICMgTGluayBkb2VzIG5vdCBoYXZlIGEgInJlZiIgYXR0cmli
dXRlLgotICAgICAgICBodG1sXzMgPSAiIiI8bGluayBocmVmPSJSRUxFVkFOVF9TUEVDX1NFQ1RJ
T04iLz4iIiIKLSAgICAgICAgZW1wdHlfdHVwbGVfMiA9IGV4dHJhY3RfcmVmZXJlbmNlX2xpbmsu
Z2V0X3JlZmVyZW5jZV9saW5rKGh0bWxfMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbXB0
eV90dXBsZV8yLCAoW10sIFtdKSkKLQotICAgICAgICAjIExpbmsgZG9lcyBub3QgaGF2ZSBhICJo
cmVmIiBhdHRyaWJ1dGUuCi0gICAgICAgIGh0bWxfNCA9ICIiIjxsaW5rIHJlbD0ibWF0Y2giLz4i
IiIKLSAgICAgICAgZW1wdHlfdHVwbGVfMyA9IGV4dHJhY3RfcmVmZXJlbmNlX2xpbmsuZ2V0X3Jl
ZmVyZW5jZV9saW5rKGh0bWxfNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbXB0eV90dXBs
ZV8zLCAoW10sIFtdKSkKLQotICAgICAgICAjIExpbmsgZG9lcyBub3QgaGF2ZSBhICIvIiBhdCB0
aGUgZW5kLgotICAgICAgICBodG1sXzUgPSAiIiI8bGluayByZWw9ImhlbHAiIGhyZWY9IlJFTEVW
QU5UX1NQRUNfU0VDVElPTiI+IiIiCi0gICAgICAgIGVtcHR5X3R1cGxlXzQgPSBleHRyYWN0X3Jl
ZmVyZW5jZV9saW5rLmdldF9yZWZlcmVuY2VfbGluayhodG1sXzUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZW1wdHlfdHVwbGVfNCwgKFtdLCBbXSkpCg==
</data>
<flag name="review"
          id="253334"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>