<?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>216216</bug_id>
          
          <creation_ts>2020-09-05 12:42:46 -0700</creation_ts>
          <short_desc>XML documents in iframes should not inherit encoding from parent frame</short_desc>
          <delta_ts>2020-09-05 13:55:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1686101</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-05 12:42:46 -0700</bug_when>
    <thetext>XML documents in iframes should not inherit encoding from parent frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686103</commentid>
    <comment_count>1</comment_count>
      <attachid>408093</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-05 12:44:00 -0700</bug_when>
    <thetext>Created attachment 408093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686106</commentid>
    <comment_count>2</comment_count>
      <attachid>408093</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-05 12:48:41 -0700</bug_when>
    <thetext>Comment on attachment 408093
Patch

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

&gt; Source/WebCore/loader/DocumentWriter.cpp:61
&gt; +    if (auto* document = frame ? frame-&gt;document() : nullptr) {
&gt; +        if (document-&gt;isXMLDocument())
&gt; +            return false;
&gt; +    }

The code in this function dereferences frame without checking for null. And the only caller already dereferences the frame before calling this function. So we do not need to check for null here. We should change the argument type to a reference.

Also, the only caller calls this function twice in a row. It should use a boolean local instead.

Could write this:

    if (is&lt;XMLDocument&gt;(frame-&gt;document()))
        return false;

The null check is built into the is&lt;&gt; function. But also, the code below uses frame-&gt;document() without checking it for null either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686108</commentid>
    <comment_count>3</comment_count>
      <attachid>408093</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-05 12:50:22 -0700</bug_when>
    <thetext>Comment on attachment 408093
Patch

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

&gt; Source/WebCore/loader/DocumentWriter.cpp:59
&gt; +        if (document-&gt;isXMLDocument())

Maybe this should be done the other way around, where the HTMLDocument case is the special one:

    if (!is&lt;HTMLDocument&gt;(frame-&gt;document()))
        return false;

Or:

    return is&lt;HTMLDocument&gt;(frame-&gt;document())
        &amp;&amp; parentFrame &amp;&amp; ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686113</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-05 13:54:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/r266671</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686114</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-05 13:55:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/68404034&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408093</attachid>
            <date>2020-09-05 12:44:00 -0700</date>
            <delta_ts>2020-09-05 12:48:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216216-20200905124359.patch</filename>
            <type>text/plain</type>
            <size>3477</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjY1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5LTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgWE1MIGRvY3Vt
ZW50cyBpbiBpZnJhbWVzIHNob3VsZCBub3QgaW5oZXJpdCBlbmNvZGluZyBmcm9tIHBhcmVudCBm
cmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBzZWVtcyB0byBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgQ2hyb21lIGFuZCBGaXJlZm94LgorICAg
ICAgICBDb3ZlcmVkIGJ5IG5ld2x5IHBhc3Npbmcgd2ViIHBsYXRmb3JtIHRlc3RzLCB3aGljaCBv
dGhlciBicm93c2VycyBhbHJlYWR5IHBhc3MuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRX
cml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuUmVmZXJUb1BhcmVudEZyYW1lRW5jb2Rp
bmcpOgorCiAyMDIwLTA5LTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRml4IGJ1aWxkIHdoZW4gdXNpbmcgbm9uLXN0YW5kYXJkIHVuaWZp
ZWQgc291cmNlcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNw
cAkocmV2aXNpb24gMjY2NjUwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3Jp
dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdGF0aWMgaW5saW5lIGJvb2wgY2FuUmVmZXJUb1BhcmVudEZyYW1lRW5jb2Rpbmco
Y29uc3QgRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZSogcGFyZW50RnJhbWUpIAogeworICAgIGlm
IChhdXRvKiBkb2N1bWVudCA9IGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyKSB7
CisgICAgICAgIGlmIChkb2N1bWVudC0+aXNYTUxEb2N1bWVudCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KICAgICByZXR1cm4gcGFyZW50RnJhbWUgJiYgcGFyZW50RnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNjZXNzKGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpKTsKIH0KICAgICAKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwkocmV2aXNpb24gMjY2NjY3KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTA1ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgWE1MIGRv
Y3VtZW50cyBpbiBpZnJhbWVzIHNob3VsZCBub3QgaW5oZXJpdCBlbmNvZGluZyBmcm9tIHBhcmVu
dCBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE2MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdXRmLTMyLWZyb20td2luMTI1Mi1leHBlY3Rl
ZC50eHQ6CisKIDIwMjAtMDktMDUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIENTUyByZXZlcnQgc2hvdWxkIHNlcmlhbGl6ZSBhcyAicmV2ZXJ0Iiwgbm90ICJSZXZl
cnQiCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL3V0Zi0zMi1mcm9tLXdpbjEyNTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdXRmLTMy
LWZyb20td2luMTI1Mi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NjY1MCkKKysrIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdXRmLTMyLWZyb20t
d2luMTI1Mi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIAog
UEFTUyBFeHBlY3QgcmVzb3VyY2VzL3V0Zi0zMi1iaWctZW5kaWFuLWJvbS5odG1sIHRvIHBhcnNl
IGFzIHdpbmRvd3MtMTI1MiAKLUZBSUwgRXhwZWN0IHJlc291cmNlcy91dGYtMzItYmlnLWVuZGlh
bi1ib20ueG1sIHRvIHBhcnNlIGFzIFVURi04IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJVVEYt
OCIgYnV0IGdvdCAid2luZG93cy0xMjUyIgorUEFTUyBFeHBlY3QgcmVzb3VyY2VzL3V0Zi0zMi1i
aWctZW5kaWFuLWJvbS54bWwgdG8gcGFyc2UgYXMgVVRGLTggCiBQQVNTIEV4cGVjdCByZXNvdXJj
ZXMvdXRmLTMyLWJpZy1lbmRpYW4tbm9ib20uaHRtbCB0byBwYXJzZSBhcyB3aW5kb3dzLTEyNTIg
Ci1GQUlMIEV4cGVjdCByZXNvdXJjZXMvdXRmLTMyLWJpZy1lbmRpYW4tbm9ib20ueG1sIHRvIHBh
cnNlIGFzIFVURi04IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJVVEYtOCIgYnV0IGdvdCAid2lu
ZG93cy0xMjUyIgorUEFTUyBFeHBlY3QgcmVzb3VyY2VzL3V0Zi0zMi1iaWctZW5kaWFuLW5vYm9t
LnhtbCB0byBwYXJzZSBhcyBVVEYtOCAKIFBBU1MgRXhwZWN0IHJlc291cmNlcy91dGYtMzItbGl0
dGxlLWVuZGlhbi1ib20uaHRtbCB0byBwYXJzZSBhcyBVVEYtMTZMRSAKIFBBU1MgRXhwZWN0IHJl
c291cmNlcy91dGYtMzItbGl0dGxlLWVuZGlhbi1ib20ueG1sIHRvIHBhcnNlIGFzIFVURi0xNkxF
IAogUEFTUyBFeHBlY3QgcmVzb3VyY2VzL3V0Zi0zMi1saXR0bGUtZW5kaWFuLW5vYm9tLmh0bWwg
dG8gcGFyc2UgYXMgd2luZG93cy0xMjUyIAotRkFJTCBFeHBlY3QgcmVzb3VyY2VzL3V0Zi0zMi1s
aXR0bGUtZW5kaWFuLW5vYm9tLnhtbCB0byBwYXJzZSBhcyBVVEYtOCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiVVRGLTgiIGJ1dCBnb3QgIndpbmRvd3MtMTI1MiIKK1BBU1MgRXhwZWN0IHJlc291
cmNlcy91dGYtMzItbGl0dGxlLWVuZGlhbi1ub2JvbS54bWwgdG8gcGFyc2UgYXMgVVRGLTggCiAK
</data>
<flag name="review"
          id="423472"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>