<?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>152489</bug_id>
          
          <creation_ts>2015-12-21 12:43:27 -0800</creation_ts>
          <short_desc>Allow JavaScript to iterate over plugins for local SecurityOrigins</short_desc>
          <delta_ts>2015-12-22 11:38:12 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1150790</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-21 12:43:27 -0800</bug_when>
    <thetext>This bug refines Bug 151783 slightly based on Darin&apos;s suggestion: &quot;I’d really prefer that this security check be done with SecurityOrigin function rather than a direct call to isLocalFile.&quot;.

This patch revises the code slightly to do just that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150793</commentid>
    <comment_count>1</comment_count>
      <attachid>267761</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-21 12:47:15 -0800</bug_when>
    <thetext>Created attachment 267761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150800</commentid>
    <comment_count>2</comment_count>
      <attachid>267761</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-12-21 14:06:36 -0800</bug_when>
    <thetext>Comment on attachment 267761
Patch

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

&gt; Source/WebCore/page/Page.cpp:532
&gt; +    DocumentLoader* documentLoader = mainFrame().loader().documentLoader();
&gt; +    if (!documentLoader)
&gt; +        return false;

There wasn&apos;t a null check for documentLoader before, but there is one now. Can a regression test be added for this change?

&gt; Source/WebCore/page/Page.cpp:534
&gt; +    RefPtr&lt;SecurityOrigin&gt; origin(SecurityOrigin::create(documentLoader-&gt;url()));

SecurityOrigin::create returns a Ref, so please don&apos;t make a RefPtr out of it. I think that this is the right way to write this:

Ref&lt;SecurityOrigin&gt; origin = SecurityOrigin::create(documentLoader-&gt;url());

But more importantly, I think that we should use the actual security origin for the document, not a one reconstructed from its URL. I don&apos;t know of an observable difference, but calling securityOrigin() on the document feels like a better thing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150907</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-22 09:57:06 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 267761 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=267761&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:532
&gt; &gt; +    DocumentLoader* documentLoader = mainFrame().loader().documentLoader();
&gt; &gt; +    if (!documentLoader)
&gt; &gt; +        return false;
&gt; 
&gt; There wasn&apos;t a null check for documentLoader before, but there is one now.
&gt; Can a regression test be added for this change?

After looking at some of the other uses of documentLoader here (and elsewhere), I noticed that many of them are doing null checks, so I added one here. I&apos;m not sure how to create a test that hits this code with a nullptr documentLoader.

&gt; &gt; Source/WebCore/page/Page.cpp:534
&gt; &gt; +    RefPtr&lt;SecurityOrigin&gt; origin(SecurityOrigin::create(documentLoader-&gt;url()));
&gt; 
&gt; SecurityOrigin::create returns a Ref, so please don&apos;t make a RefPtr out of
&gt; it. I think that this is the right way to write this:
&gt; 
&gt; Ref&lt;SecurityOrigin&gt; origin = SecurityOrigin::create(documentLoader-&gt;url());

Done.

&gt; But more importantly, I think that we should use the actual security origin
&gt; for the document, not a one reconstructed from its URL. I don&apos;t know of an
&gt; observable difference, but calling securityOrigin() on the document feels
&gt; like a better thing to do.

I can certainly do that. However, it looks like securityOrigin() is not guaranteed to return a value, so I think we should use the securityOrigin if it exists, otherwise we have to generate one from the URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150908</commentid>
    <comment_count>4</comment_count>
      <attachid>267790</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-22 10:05:20 -0800</bug_when>
    <thetext>Created attachment 267790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150910</commentid>
    <comment_count>5</comment_count>
      <attachid>267790</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-12-22 10:08:08 -0800</bug_when>
    <thetext>Comment on attachment 267790
Patch

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:197
&gt; +    } else if (DocumentLoader* documentLoader = page-&gt;mainFrame().loader().documentLoader()) {

Do we use this idiom anywhere else? I would expect that if document-&gt;securityOrigin() returns null, then there isn&apos;t a security origin for us to use, so we should not fall back to the URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150911</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-22 10:12:07 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 267790 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=267790&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:197
&gt; &gt; +    } else if (DocumentLoader* documentLoader = page-&gt;mainFrame().loader().documentLoader()) {
&gt; 
&gt; Do we use this idiom anywhere else? I would expect that if
&gt; document-&gt;securityOrigin() returns null, then there isn&apos;t a security origin
&gt; for us to use, so we should not fall back to the URL.

I have to admit I cannot find a single place where we don&apos;t just trust the return value of document()-&gt;securityOrigin(). It must be &apos;guaranteed&apos; to exist.

I&apos;ll remove that fallback case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150918</commentid>
    <comment_count>7</comment_count>
      <attachid>267791</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-22 10:29:55 -0800</bug_when>
    <thetext>Created attachment 267791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150927</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-22 11:38:12 -0800</bug_when>
    <thetext>Committed r194367: &lt;http://trac.webkit.org/changeset/194367&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267761</attachid>
            <date>2015-12-21 12:47:15 -0800</date>
            <delta_ts>2015-12-22 10:05:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152489-20151221124638.patch</filename>
            <type>text/plain</type>
            <size>1597</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDM0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE1LTEyLTIxICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IEphdmFTY3JpcHQg
dG8gaXRlcmF0ZSBvdmVyIHBsdWdpbnMgZm9yIGxvY2FsIFNlY3VyaXR5T3JpZ2lucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNDg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBjYWxs
aW5nICdpc0xvY2FsRmlsZScgb24gdGhlIFVSTCwgd2UgY29uc3RydWN0IGEgU2VjdXJpdHlPcmln
aW4KKyAgICAgICAgYW5kIGNoZWNrIHdoZXRoZXIgaXQgc2F0aXNmaWVzICdpc0xvY2FsJy4KKwor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzaG93QWxs
UGx1Z2lucyk6IFJldmlzZWQgdG8gdXNlIFNlY3VyaXR5T3JpZ2luLgorCiAyMDE1LTEyLTIwICBK
ZXJlbXkgWmVyZmFzICA8V2ViS2l0QEplcmVteVplcmZhcy5jb20+CiAKICAgICAgICAgRG9uJ3Qg
YWxsb2NhdGUgYSBOU0ltYWdlIGFuZCBza2lwIHVubmVlZGVkIGNhbGwgdG8gVElGRlJlcHJlc2Vu
dGF0aW9uIHdoZW4gY29weWluZyBpbWFnZSB0byBjbGlwYm9hcmQuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAJKHJldmlzaW9uIDE5NDMzMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUyNCw3ICs1MjQsMTUgQEAgUGx1Z2luRGF0YSYgUGFnZTo6cGx1
Z2luRGF0YSgpIGNvbnN0CiAKIGJvb2wgUGFnZTo6c2hvd0FsbFBsdWdpbnMoKSBjb25zdAogewot
ICAgIHJldHVybiBtX3Nob3dBbGxQbHVnaW5zIHx8IG1haW5GcmFtZSgpLmxvYWRlcigpLmRvY3Vt
ZW50TG9hZGVyKCktPnVybCgpLmlzTG9jYWxGaWxlKCk7CisgICAgaWYgKG1fc2hvd0FsbFBsdWdp
bnMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50
TG9hZGVyID0gbWFpbkZyYW1lKCkubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBpZiAo
IWRvY3VtZW50TG9hZGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IG9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRvY3VtZW50TG9hZGVy
LT51cmwoKSkpOworICAgIHJldHVybiBvcmlnaW4tPmlzTG9jYWwoKTsKIH0KIAogaW5saW5lIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lciogUGFnZTo6dGFrZUFueU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcigp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267790</attachid>
            <date>2015-12-22 10:05:20 -0800</date>
            <delta_ts>2015-12-22 10:29:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152489-20151222100444.patch</filename>
            <type>text/plain</type>
            <size>4939</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDM0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE1LTEyLTIyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IEphdmFTY3JpcHQg
dG8gaXRlcmF0ZSBvdmVyIHBsdWdpbnMgZm9yIGxvY2FsIFNlY3VyaXR5T3JpZ2lucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNDg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBjYWxs
aW5nICdpc0xvY2FsRmlsZScgb24gdGhlIFVSTCwgd2UgY2hlY2sgdGhlIERvY3VtZW50J3MgU2Vj
dXJpdHlPcmlnaW4uIElmCisgICAgICAgIG5vIG9yaWdpbiBleGlzdHMsIHdlIGNvbnN0cnVjdCBh
IFNlY3VyaXR5T3JpZ2luIGZyb20gdGhlIFVSTCwgYW5kIGNoZWNrIHdoZXRoZXIgaXQKKyAgICAg
ICAgc2F0aXNmaWVzICdpc0xvY2FsJy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzaG93QWxsUGx1Z2lucyk6IFJldmlzZWQgdG8gdXNlIFNlY3Vy
aXR5T3JpZ2luLgorCiAyMDE1LTEyLTIwICBKZXJlbXkgWmVyZmFzICA8V2ViS2l0QEplcmVteVpl
cmZhcy5jb20+CiAKICAgICAgICAgRG9uJ3QgYWxsb2NhdGUgYSBOU0ltYWdlIGFuZCBza2lwIHVu
bmVlZGVkIGNhbGwgdG8gVElGRlJlcHJlc2VudGF0aW9uIHdoZW4gY29weWluZyBpbWFnZSB0byBj
bGlwYm9hcmQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDE5NDMzMSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyNCw3ICs1MjQs
MjAgQEAgUGx1Z2luRGF0YSYgUGFnZTo6cGx1Z2luRGF0YSgpIGNvbnN0CiAKIGJvb2wgUGFnZTo6
c2hvd0FsbFBsdWdpbnMoKSBjb25zdAogewotICAgIHJldHVybiBtX3Nob3dBbGxQbHVnaW5zIHx8
IG1haW5GcmFtZSgpLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnVybCgpLmlzTG9jYWxGaWxl
KCk7CisgICAgaWYgKG1fc2hvd0FsbFBsdWdpbnMpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50KCkpIHsKKyAg
ICAgICAgaWYgKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKQorICAgICAgICAgICAgcmV0dXJuIHNlY3VyaXR5T3JpZ2luLT5pc0xvY2Fs
KCk7CisgICAgfQorCisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbWFpbkZy
YW1lKCkubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBpZiAoIWRvY3VtZW50TG9hZGVy
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShkb2N1bWVudExvYWRlci0+dXJsKCkp
OworICAgIHJldHVybiBzZWN1cml0eU9yaWdpbi0+aXNMb2NhbCgpOwogfQogCiBpbmxpbmUgTWVk
aWFDYW5TdGFydExpc3RlbmVyKiBQYWdlOjp0YWtlQW55TWVkaWFDYW5TdGFydExpc3RlbmVyKCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDE5NDMzMSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpA
QCAtMTYxLDcgKzE2MSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgbG9jYWwgU2VjdXJpdHlPcmln
aW4gaXMgdGhlIG1vc3QgcHJpdmlsZWdlZCBTZWN1cml0eU9yaWdpbi4KICAgICAvLyBUaGUgbG9j
YWwgU2VjdXJpdHlPcmlnaW4gY2FuIHNjcmlwdCBhbnkgZG9jdW1lbnQsIG5hdmlnYXRlIHRvIGxv
Y2FsCiAgICAgLy8gcmVzb3VyY2VzLCBhbmQgY2FuIHNldCBhcmJpdHJhcnkgaGVhZGVycyBvbiBY
TUxIdHRwUmVxdWVzdHMuCi0gICAgYm9vbCBpc0xvY2FsKCkgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBpc0xvY2FsKCkgY29uc3Q7CiAKICAgICAvLyBUaGUgb3JpZ2luIGlzIGEgZ2xv
YmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgYXNzaWduZWQgd2hlbiB0aGUgRG9jdW1lbnQgaXMKICAg
ICAvLyBjcmVhdGVkLiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNzYW5kYm94T3JpZ2luCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTQzNjQpCisr
KyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBA
QAorMjAxNS0xMi0yMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBBbGxvdyBKYXZhU2NyaXB0IHRvIGl0ZXJhdGUgb3ZlciBwbHVnaW5zIGZvciBsb2NhbCBT
ZWN1cml0eU9yaWdpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MjQ4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSAnZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8nIGlzIGZpbHRlcmluZyBwbHVnaW5z
LCBldmVuIHdoZW4gd2Ugd2FudCB0byBsaXN0CisgICAgICAgIGFsbCBwbHVnaW5zLiBUbyBhdm9p
ZCB0aGlzLCB3ZSBjaGVjayB0aGUgRG9jdW1lbnQncyBTZWN1cml0eU9yaWdpbi4gSWYgbm8gc3Vj
aAorICAgICAgICBvcmlnaW4gZXhpc3RzLCB3ZSBjb25zdHJ1Y3QgYSBTZWN1cml0eU9yaWdpbiBm
cm9tIHRoZSBVUkwuCisgICAgICAgIAorICAgICAgICBJZiB0aGUgcmVsZXZhbnQgU2VjdXJpdHlP
cmlnaW4gc2F0c2lmaWVzICdpc0xvY2FsJywgd2Ugc2hvdyBhbGwgcGx1Z2lucy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRXZWJWaXNpYmxlUGx1
Z2luSW5mbyk6CisKIDIwMTUtMTItMjEgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtFRkxdIHRlc3RfZXdrMl9jb250ZXh0IGZhaWxlZCBhZnRlciBy
MTkyODA4CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lv
biAxOTQzMzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAK
ICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1
bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9M
b2FkZXJTdHJhdGVneS5oPgpAQCAtMTg5LDYgKzE5MCwxNiBAQCB2b2lkIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Z2V0V2ViVmlzaWJsCiAgICAgZ2V0UGx1Z2luSW5mbyhwYWdlLCBwbHVnaW5zKTsK
IAogI2lmIFBMQVRGT1JNKE1BQykKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBwYWdlLT5tYWlu
RnJhbWUoKS5kb2N1bWVudCgpOworICAgIGlmIChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4gPSBkb2N1bWVudCA/IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cikgewor
ICAgICAgICBpZiAoc2VjdXJpdHlPcmlnaW4tPmlzTG9jYWwoKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICB9IGVsc2UgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IHBhZ2Ut
Pm1haW5GcmFtZSgpLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpIHsKKyAgICAgICAgUmVmPFNl
Y3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZG9j
dW1lbnRMb2FkZXItPnVybCgpKTsKKyAgICAgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5pc0xvY2Fs
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorICAgIAogICAgIGZvciAoaW50MzJfdCBp
ID0gcGx1Z2lucy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICBQbHVnaW5JbmZv
JiBpbmZvID0gcGx1Z2lucy5hdChpKTsKICAgICAgICAgUGx1Z2luTG9hZENsaWVudFBvbGljeSBj
bGllbnRQb2xpY3kgPSBpbmZvLmNsaWVudExvYWRQb2xpY3k7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267791</attachid>
            <date>2015-12-22 10:29:55 -0800</date>
            <delta_ts>2015-12-22 10:48:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152489-20151222102918.patch</filename>
            <type>text/plain</type>
            <size>4460</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDM0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE1LTEyLTIyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IEphdmFTY3JpcHQg
dG8gaXRlcmF0ZSBvdmVyIHBsdWdpbnMgZm9yIGxvY2FsIFNlY3VyaXR5T3JpZ2lucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNDg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBjYWxs
aW5nICdpc0xvY2FsRmlsZScgb24gdGhlIFVSTCwgd2UgY2hlY2sgdGhlIERvY3VtZW50J3MgU2Vj
dXJpdHlPcmlnaW4uIElmCisgICAgICAgIG5vIG9yaWdpbiBleGlzdHMsIHdlIGNvbnN0cnVjdCBh
IFNlY3VyaXR5T3JpZ2luIGZyb20gdGhlIFVSTCwgYW5kIGNoZWNrIHdoZXRoZXIgaXQKKyAgICAg
ICAgc2F0aXNmaWVzICdpc0xvY2FsJy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzaG93QWxsUGx1Z2lucyk6IFJldmlzZWQgdG8gdXNlIFNlY3Vy
aXR5T3JpZ2luLgorCiAyMDE1LTEyLTIwICBKZXJlbXkgWmVyZmFzICA8V2ViS2l0QEplcmVteVpl
cmZhcy5jb20+CiAKICAgICAgICAgRG9uJ3QgYWxsb2NhdGUgYSBOU0ltYWdlIGFuZCBza2lwIHVu
bmVlZGVkIGNhbGwgdG8gVElGRlJlcHJlc2VudGF0aW9uIHdoZW4gY29weWluZyBpbWFnZSB0byBj
bGlwYm9hcmQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDE5NDMzMSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyNCw3ICs1MjQs
MTUgQEAgUGx1Z2luRGF0YSYgUGFnZTo6cGx1Z2luRGF0YSgpIGNvbnN0CiAKIGJvb2wgUGFnZTo6
c2hvd0FsbFBsdWdpbnMoKSBjb25zdAogewotICAgIHJldHVybiBtX3Nob3dBbGxQbHVnaW5zIHx8
IG1haW5GcmFtZSgpLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnVybCgpLmlzTG9jYWxGaWxl
KCk7CisgICAgaWYgKG1fc2hvd0FsbFBsdWdpbnMpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50KCkpIHsKKyAg
ICAgICAgaWYgKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKQorICAgICAgICAgICAgcmV0dXJuIHNlY3VyaXR5T3JpZ2luLT5pc0xvY2Fs
KCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBpbmxpbmUgTWVkaWFDYW5TdGFy
dExpc3RlbmVyKiBQYWdlOjp0YWtlQW55TWVkaWFDYW5TdGFydExpc3RlbmVyKCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDE5NDMzMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcg
KzE2MSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgbG9jYWwgU2VjdXJpdHlPcmlnaW4gaXMgdGhl
IG1vc3QgcHJpdmlsZWdlZCBTZWN1cml0eU9yaWdpbi4KICAgICAvLyBUaGUgbG9jYWwgU2VjdXJp
dHlPcmlnaW4gY2FuIHNjcmlwdCBhbnkgZG9jdW1lbnQsIG5hdmlnYXRlIHRvIGxvY2FsCiAgICAg
Ly8gcmVzb3VyY2VzLCBhbmQgY2FuIHNldCBhcmJpdHJhcnkgaGVhZGVycyBvbiBYTUxIdHRwUmVx
dWVzdHMuCi0gICAgYm9vbCBpc0xvY2FsKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBpc0xvY2FsKCkgY29uc3Q7CiAKICAgICAvLyBUaGUgb3JpZ2luIGlzIGEgZ2xvYmFsbHkgdW5p
cXVlIGlkZW50aWZpZXIgYXNzaWduZWQgd2hlbiB0aGUgRG9jdW1lbnQgaXMKICAgICAvLyBjcmVh
dGVkLiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNz
YW5kYm94T3JpZ2luCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTQzNjQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0x
Mi0yMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxv
dyBKYXZhU2NyaXB0IHRvIGl0ZXJhdGUgb3ZlciBwbHVnaW5zIGZvciBsb2NhbCBTZWN1cml0eU9y
aWdpbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MjQ4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSAnZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8nIGlzIGZpbHRlcmluZyBwbHVnaW5zLCBldmVuIHdo
ZW4gd2Ugd2FudCB0byBsaXN0CisgICAgICAgIGFsbCBwbHVnaW5zLiBUbyBhdm9pZCB0aGlzLCB3
ZSBjaGVjayB0aGUgRG9jdW1lbnQncyBTZWN1cml0eU9yaWdpbi4gSWYgbm8gc3VjaAorICAgICAg
ICBvcmlnaW4gZXhpc3RzLCB3ZSBjb25zdHJ1Y3QgYSBTZWN1cml0eU9yaWdpbiBmcm9tIHRoZSBV
UkwuCisgICAgICAgIAorICAgICAgICBJZiB0aGUgcmVsZXZhbnQgU2VjdXJpdHlPcmlnaW4gc2F0
c2lmaWVzICdpc0xvY2FsJywgd2Ugc2hvdyBhbGwgcGx1Z2lucy4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyk6
CisKIDIwMTUtMTItMjEgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFtFRkxdIHRlc3RfZXdrMl9jb250ZXh0IGZhaWxlZCBhZnRlciByMTkyODA4Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAxOTQzMzEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2FkZXJTdHJh
dGVneS5oPgpAQCAtMTg5LDYgKzE5MCwxMyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Z2V0V2ViVmlzaWJsCiAgICAgZ2V0UGx1Z2luSW5mbyhwYWdlLCBwbHVnaW5zKTsKIAogI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gcGFnZS0+bWFpbkZyYW1l
KCkuZG9jdW1lbnQoKSkgeworICAgICAgICBpZiAoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
Z2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpIHsKKyAgICAgICAgICAgIGlmIChzZWN1
cml0eU9yaWdpbi0+aXNMb2NhbCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKICAgICBmb3IgKGludDMyX3QgaSA9IHBsdWdpbnMuc2l6ZSgpIC0gMTsg
aSA+PSAwOyAtLWkpIHsKICAgICAgICAgUGx1Z2luSW5mbyYgaW5mbyA9IHBsdWdpbnMuYXQoaSk7
CiAgICAgICAgIFBsdWdpbkxvYWRDbGllbnRQb2xpY3kgY2xpZW50UG9saWN5ID0gaW5mby5jbGll
bnRMb2FkUG9saWN5Owo=
</data>
<flag name="review"
          id="292798"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>