<?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>111022</bug_id>
          
          <creation_ts>2013-02-27 16:01:59 -0800</creation_ts>
          <short_desc>Cache partitioning does not affect iframe MainResources</short_desc>
          <delta_ts>2013-03-04 16:25:25 -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>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="Vicki Pfau">jeffrey+webkit</reporter>
          <assigned_to name="Vicki Pfau">jeffrey+webkit</assigned_to>
          <cc>abarth</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>japhet</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>843592</commentid>
    <comment_count>0</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2013-02-27 16:01:59 -0800</bug_when>
    <thetext>With the recently added cache partitioning patch, subresources are properly getting separated into the relevant partitions, but iframe MainResources are not currently being partitioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843618</commentid>
    <comment_count>1</comment_count>
      <attachid>190626</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2013-02-27 17:00:27 -0800</bug_when>
    <thetext>Created attachment 190626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843840</commentid>
    <comment_count>2</comment_count>
      <attachid>190626</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 00:55:40 -0800</bug_when>
    <thetext>Comment on attachment 190626
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:1199
&gt; +    if (m_frame-&gt;tree()-&gt;top() != m_frame &amp;&amp; m_frame-&gt;tree()-&gt;top()-&gt;document())

How can m_frame-&gt;tree()-&gt;top()-&gt;document() be zero?

&gt; Source/WebCore/loader/FrameLoader.cpp:1200
&gt; +        request.setCachePartition(m_frame-&gt;tree()-&gt;top()-&gt;document()-&gt;securityOrigin()-&gt;cachePartition());

m_frame-&gt;tree()-&gt;top()-&gt;document()   &lt;-- I&apos;m not sure that&apos;s idiomatically the best way to find the topDocument.  Maybe it doesn&apos;t matter now that we don&apos;t have that disconnected frame stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843896</commentid>
    <comment_count>3</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2013-02-28 01:53:54 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 190626 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190626&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:1199
&gt; &gt; +    if (m_frame-&gt;tree()-&gt;top() != m_frame &amp;&amp; m_frame-&gt;tree()-&gt;top()-&gt;document())
&gt; 
&gt; How can m_frame-&gt;tree()-&gt;top()-&gt;document() be zero?

I&apos;ve hit cases where a frame&apos;s document was 0, but I wasn&apos;t sure when exactly those were. Maybe it&apos;s only for subframes? That would render that clause useless. I just wanted to make sure I didn&apos;t accidentally run into null pointer derefs.

&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:1200
&gt; &gt; +        request.setCachePartition(m_frame-&gt;tree()-&gt;top()-&gt;document()-&gt;securityOrigin()-&gt;cachePartition());
&gt; 
&gt; m_frame-&gt;tree()-&gt;top()-&gt;document()   &lt;-- I&apos;m not sure that&apos;s idiomatically the best way to find the topDocument.  Maybe it doesn&apos;t matter now that we don&apos;t have that disconnected frame stuff.

I was under the impression that Document::topDocument() did that, but it doesn&apos;t seem to. Did that change at some point? I&apos;m all for a better idiom, but I didn&apos;t know of one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843897</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 01:56:48 -0800</bug_when>
    <thetext>Frame::document() is only ever zero while we&apos;re initializing the frame.

The concept of a disconnected frame is gone from the codebase, which is probably why you don&apos;t see it in topDocument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845823</commentid>
    <comment_count>5</comment_count>
      <attachid>190626</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-02 10:23:30 -0800</bug_when>
    <thetext>Comment on attachment 190626
Patch

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

&gt; LayoutTests/http/tests/cache/partitioned-cache-iframe-expected.txt:1
&gt; +CONSOLE MESSAGE: line 18: FAIL

Could you please make this test display produce more positive when it passes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845825</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-02 10:23:45 -0800</bug_when>
    <thetext>produce *something* more positive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845828</commentid>
    <comment_count>7</comment_count>
      <attachid>190626</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-02 10:25:19 -0800</bug_when>
    <thetext>Comment on attachment 190626
Patch

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

&gt;&gt; LayoutTests/http/tests/cache/partitioned-cache-iframe-expected.txt:1
&gt;&gt; +CONSOLE MESSAGE: line 18: FAIL
&gt; 
&gt; Could you please make this test display produce more positive when it passes?

Or rather, it&apos;s not clear to me why the test is expected to fail now - ChangeLog does not explain this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845910</commentid>
    <comment_count>8</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2013-03-02 21:55:17 -0800</bug_when>
    <thetext>Perhaps I should change it to say &quot;The cache is not partitioned&quot; instead of &quot;FAIL&quot;, as that&apos;s what&apos;s going on here. This test does not pass, per se, in any shipping ports at the moment, hence why it says &quot;FAIL&quot; right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846919</commentid>
    <comment_count>9</comment_count>
      <attachid>190626</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2013-03-04 15:31:07 -0800</bug_when>
    <thetext>Comment on attachment 190626
Patch

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

r=me

&gt;&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:1199
&gt;&gt;&gt; +    if (m_frame-&gt;tree()-&gt;top() != m_frame &amp;&amp; m_frame-&gt;tree()-&gt;top()-&gt;document())
&gt;&gt; 
&gt;&gt; How can m_frame-&gt;tree()-&gt;top()-&gt;document() be zero?
&gt; 
&gt; I&apos;ve hit cases where a frame&apos;s document was 0, but I wasn&apos;t sure when exactly those were. Maybe it&apos;s only for subframes? That would render that clause useless. I just wanted to make sure I didn&apos;t accidentally run into null pointer derefs.

This code would read clearer if &quot;m_frame-&gt;tree()-&gt;top() != m_frame&quot; were extracted into a method called isSubFrame():

bool Frame::isSubFrame()
{
    return tree()-&gt;top() != self;
}

Not necessary for this patch, but please consider a follow-up patch.  (Or implement the opposite:  Frame::isTopFrame().)

--

Also, it would be nice not to call &quot;m_frame-&gt;tree()-&gt;top()-&gt;document()&quot; twice, so maybe you could do this:

    if (m_frame-&gt;isSubFrame()) {
        if (Document *topDocument = m_frame-&gt;tree()-&gt;top()-&gt;document())
            request.setCachePartition(topDocument-&gt;securityOrigin()-&gt;cachePartition());
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846921</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2013-03-04 15:31:46 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 190626 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190626&amp;action=review
&gt; 
&gt; r=me

Plus the changes that Alexey already mentioned (that you said you had already made locally).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846925</commentid>
    <comment_count>11</comment_count>
      <attachid>190626</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-04 15:32:50 -0800</bug_when>
    <thetext>Comment on attachment 190626
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:1199
&gt;&gt;&gt;&gt; +    if (m_frame-&gt;tree()-&gt;top() != m_frame &amp;&amp; m_frame-&gt;tree()-&gt;top()-&gt;document())
&gt;&gt;&gt; 
&gt;&gt;&gt; How can m_frame-&gt;tree()-&gt;top()-&gt;document() be zero?
&gt;&gt; 
&gt;&gt; I&apos;ve hit cases where a frame&apos;s document was 0, but I wasn&apos;t sure when exactly those were. Maybe it&apos;s only for subframes? That would render that clause useless. I just wanted to make sure I didn&apos;t accidentally run into null pointer derefs.
&gt; 
&gt; This code would read clearer if &quot;m_frame-&gt;tree()-&gt;top() != m_frame&quot; were extracted into a method called isSubFrame():
&gt; 
&gt; bool Frame::isSubFrame()
&gt; {
&gt;     return tree()-&gt;top() != self;
&gt; }
&gt; 
&gt; Not necessary for this patch, but please consider a follow-up patch.  (Or implement the opposite:  Frame::isTopFrame().)
&gt; 
&gt; --
&gt; 
&gt; Also, it would be nice not to call &quot;m_frame-&gt;tree()-&gt;top()-&gt;document()&quot; twice, so maybe you could do this:
&gt; 
&gt;     if (m_frame-&gt;isSubFrame()) {
&gt;         if (Document *topDocument = m_frame-&gt;tree()-&gt;top()-&gt;document())
&gt;             request.setCachePartition(topDocument-&gt;securityOrigin()-&gt;cachePartition());
&gt;     }

If we added functions like that they should be in FrameTree, not on Frame itself.

    frame-&gt;tree()-&gt;isTop()

and/or

    frame-&gt;tree()-&gt;isSubframe()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846936</commentid>
    <comment_count>12</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2013-03-04 15:39:13 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 190626 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190626&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:1199
&gt; &gt;&gt;&gt;&gt; +    if (m_frame-&gt;tree()-&gt;top() != m_frame &amp;&amp; m_frame-&gt;tree()-&gt;top()-&gt;document())
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; How can m_frame-&gt;tree()-&gt;top()-&gt;document() be zero?
&gt; &gt;&gt; 
&gt; &gt;&gt; I&apos;ve hit cases where a frame&apos;s document was 0, but I wasn&apos;t sure when exactly those were. Maybe it&apos;s only for subframes? That would render that clause useless. I just wanted to make sure I didn&apos;t accidentally run into null pointer derefs.
&gt; &gt; 
&gt; &gt; This code would read clearer if &quot;m_frame-&gt;tree()-&gt;top() != m_frame&quot; were extracted into a method called isSubFrame():
&gt; &gt; 
&gt; &gt; bool Frame::isSubFrame()
&gt; &gt; {
&gt; &gt;     return tree()-&gt;top() != self;
&gt; &gt; }
&gt; &gt; 
&gt; &gt; Not necessary for this patch, but please consider a follow-up patch.  (Or implement the opposite:  Frame::isTopFrame().)
&gt; &gt; 
&gt; &gt; --
&gt; &gt; 
&gt; &gt; Also, it would be nice not to call &quot;m_frame-&gt;tree()-&gt;top()-&gt;document()&quot; twice, so maybe you could do this:
&gt; &gt; 
&gt; &gt;     if (m_frame-&gt;isSubFrame()) {
&gt; &gt;         if (Document *topDocument = m_frame-&gt;tree()-&gt;top()-&gt;document())
&gt; &gt;             request.setCachePartition(topDocument-&gt;securityOrigin()-&gt;cachePartition());
&gt; &gt;     }
&gt; 
&gt; If we added functions like that they should be in FrameTree, not on Frame itself.
&gt; 
&gt;     frame-&gt;tree()-&gt;isTop()
&gt; 
&gt; and/or
&gt; 
&gt;     frame-&gt;tree()-&gt;isSubframe()

This idiom appears to also be used in MainResourceLoader::willSendRequest, so it should likely be done in a follow up patch (although it holds onto frame-&gt;tree()-&gt;top() and then uses it later in the function in much the same way I could be doing in this patch--it only saves one call to top()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846983</commentid>
    <comment_count>13</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2013-03-04 16:19:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/13342678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846989</commentid>
    <comment_count>14</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2013-03-04 16:25:25 -0800</bug_when>
    <thetext>Committed r144694: &lt;http://trac.webkit.org/changeset/144694&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190626</attachid>
            <date>2013-02-27 17:00:27 -0800</date>
            <delta_ts>2013-03-04 15:32:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111022-20130227165640.patch</filename>
            <type>text/plain</type>
            <size>4874</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNhNjI4M2QxODY4ODQ5
ZGIyN2FlNzhlMmQ3Yzc3ZTQ0ZGYxZWQ0ZS4uNWMyNDk2OTJjMThmNDVjODlkMmUwMTRiNDI0MmUw
N2NkZDc5MzYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAyLTI3ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGUgcGFydGl0aW9uaW5n
IGRvZXMgbm90IGFmZmVjdCBpZnJhbWUgTWFpblJlc291cmNlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDIyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2V0IHRoZSBwYXJ0aXRpb24gb2YgYSBtYWlu
IHJlc291cmNlIHJlcXVlc3QgaWYgaW4gYSBzdWJmcmFtZS4KKworICAgICAgICBUZXN0OiBodHRw
L3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hlLWlmcmFtZS5odG1sCisKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRVUkwpOgorCiAyMDEzLTAyLTI2ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgZmVEaXNwbGFjZW1lbnRNYXAgZmlsdGVyIGdldHMgY29sb3Igc3Bh
Y2Ugd3JvbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDNmNTAxYmUx
NWRjMjcyNDFkNTQ5ZGU1MTA2NjBmMDNlNGI3ZTkxZGEuLjY4MmZkOWQyZDUyMzQzMjFlOTg4OWJh
M2MwNDRkYjg1N2UyMGVjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApA
QCAtMTE5NSw2ICsxMTk1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoY29uc3QgS1VS
TCYgbmV3VVJMLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJpCiAgICAgICAgIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVmZXJyZXJPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhyZWZlcnJlcik7CiAgICAgICAgIGFkZEhUVFBPcmlnaW5JZk5lZWRlZChy
ZXF1ZXN0LCByZWZlcnJlck9yaWdpbi0+dG9TdHJpbmcoKSk7CiAgICAgfQorI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCisgICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+dG9wKCkgIT0gbV9m
cmFtZSAmJiBtX2ZyYW1lLT50cmVlKCktPnRvcCgpLT5kb2N1bWVudCgpKQorICAgICAgICByZXF1
ZXN0LnNldENhY2hlUGFydGl0aW9uKG1fZnJhbWUtPnRyZWUoKS0+dG9wKCktPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOworI2VuZGlmCiAgICAgYWRkRXh0
cmFGaWVsZHNUb1JlcXVlc3QocmVxdWVzdCwgbmV3TG9hZFR5cGUsIHRydWUpOwogICAgIGlmIChu
ZXdMb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlUmVsb2FkIHx8IG5ld0xvYWRUeXBlID09IEZyYW1l
TG9hZFR5cGVSZWxvYWRGcm9tT3JpZ2luKQogICAgICAgICByZXF1ZXN0LnNldENhY2hlUG9saWN5
KFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MzQ5NjAxODBkOGUxNmRiMGUyMWFk
NmQ3MjBmNTlmNzc3NjE1ZDEwLi4yNTJkOWY4ZThlNWE5ZGE4OWZlZmMxYWRmNWU3Y2U1NzUwYTg3
YjEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDItMjcgIEplZmZyZXkgUGZhdSAgPGpw
ZmF1QGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZSBwYXJ0aXRpb25pbmcgZG9lcyBub3QgYWZm
ZWN0IGlmcmFtZSBNYWluUmVzb3VyY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTEwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtaWZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS9wYXJ0
aXRpb25lZC1jYWNoZS1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9j
YWNoZS9yZXNvdXJjZXMvcmFuZG9tLWNhY2hlZC1pZnJhbWUuY2dpOiBBZGRlZC4KKwogMjAxMy0w
Mi0yNiAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGZlRGlzcGxhY2VtZW50TWFwIGZpbHRlciBnZXRzIGNvbG9yIHNwYWNlIHdyb25nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hlLWlmcmFt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVk
LWNhY2hlLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThjMTQ4YjkwYjQ2ZjE1ZmUz
ZWE3NDI0OWUwMGJkNTg3YjE5YWE1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FjaGUvcGFydGl0aW9uZWQtY2FjaGUtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRkFJTAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3BhcnRpdGlvbmVkLWNhY2hlLWlmcmFtZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1pZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YWJmOThjMzlkNzUzYTQ3YjBkNTdjNDc4N2NlZjRmMDMzYTEz
ODc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9wYXJ0
aXRpb25lZC1jYWNoZS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwor
fQorCit2YXIgdmFsdWUgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaCgvXD92YWx1ZT0oW14m
XSopLyk7CitpZiAodmFsdWUpCisgICAgdmFsdWUgPSB2YWx1ZVsxXTsKKword2luZG93Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIGNhY2hlZFZhbHVlID0gZXZlbnQuZGF0
YTsKKyAgICBpZiAodmFsdWUgIT09IG51bGwpIHsKKyAgICAgICAgaWYgKGNhY2hlZFZhbHVlID09
IHZhbHVlKQorICAgICAgICAgICAgY29uc29sZS5sb2coIkZBSUwiKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgY29uc29sZS5sb2coIlBBU1MiKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0FsbG93QWxs
Jyk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jYWNoZS9wYXJ0aXRpb25lZC1jYWNoZS1pZnJhbWUuaHRtbD92
YWx1ZT0iICsgY2FjaGVkVmFsdWU7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlm
cmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9jYWNoZS9yZXNvdXJjZXMvcmFuZG9tLWNh
Y2hlZC1pZnJhbWUuY2dpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL3JhbmRvbS1jYWNoZWQtaWZy
YW1lLmNnaSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL3JhbmRvbS1j
YWNoZWQtaWZyYW1lLmNnaQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGU4M2NiYjk2NDU1ZjBiZmEwYzAxNTgzY2Q4
M2JiMjgzNmFkYjNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
YWNoZS9yZXNvdXJjZXMvcmFuZG9tLWNhY2hlZC1pZnJhbWUuY2dpCkBAIC0wLDAgKzEsMTYgQEAK
KyMhL3Vzci9iaW4vcGVybCAtdworCitwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcbiI7
CitwcmludCAiQ2FjaGUtY29udHJvbDogbWF4LWFnZT02MDAwMFxuIjsKK3ByaW50ICJFVGFnOiBc
IjEyMzQ1Njc4OVwiXG4iOworcHJpbnQgIlxuIjsKKworbXkgJHJhbmRvbV9udW1iZXIgPSBpbnQo
cmFuZCgxMDAwMDAwMDAwMDAwKSk7CitwcmludCA8PCAiRU5EIjsKKworPHNjcmlwdD4KK3ZhciBy
YW5kb21OdW1iZXIgPSAgJHJhbmRvbV9udW1iZXI7Cit0b3AucG9zdE1lc3NhZ2UocmFuZG9tTnVt
YmVyLCAiKiIpOworPC9zY3JpcHQ+CisKK0VORAo=
</data>
<flag name="review"
          id="211367"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>