<?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>162877</bug_id>
          
          <creation_ts>2016-10-03 13:16:13 -0700</creation_ts>
          <short_desc>Avoid null dereference when changing focus in design mode.</short_desc>
          <delta_ts>2016-10-03 14:39:24 -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>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>bfulgham</cc>
    
    <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235873</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-03 13:16:13 -0700</bug_when>
    <thetext>A malformed web page consisting of nested iframes can trigger a null dereference when changing focus in design mode. In this scenario, the DOM Window&apos;s m_frame member is set to null. This null value is used without checking to refocus the document view on the now non-existant frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235893</commentid>
    <comment_count>1</comment_count>
      <attachid>290515</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-03 13:51:55 -0700</bug_when>
    <thetext>Created attachment 290515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235897</commentid>
    <comment_count>2</comment_count>
      <attachid>290515</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-03 13:59:39 -0700</bug_when>
    <thetext>Comment on attachment 290515
Patch

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

r=me with comments on the test.

&gt; LayoutTests/fast/frames/iframe-focus-crash.html:4
&gt; +        if (window.testRunner) {

nit: unnecessary curly brackets.

&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:5
&gt; +		    document.designMode=&apos;on&apos;;

The indentation is weird / wrong in this block.

&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:6
&gt; +		    window.parent.setTimeout(function focusTest() {

We do not need to name this function.

&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:8
&gt; +            }, 60);

Why 60, wouldn&apos;t 0 work?

&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:12
&gt; +	    &lt;iframe src=&apos;iframe-focus-crash.html&apos;&gt;&lt;/iframe&gt;

Eh, is this a recursive iframe? Could we do without the recursiveness?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235902</commentid>
    <comment_count>3</comment_count>
      <attachid>290515</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-03 14:18:11 -0700</bug_when>
    <thetext>Comment on attachment 290515
Patch

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

&gt;&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:5
&gt;&gt; +		    document.designMode=&apos;on&apos;;
&gt; 
&gt; The indentation is weird / wrong in this block.

Strange. I wonder why webkit-patch didn&apos;t complain? It also seems fine in my text editor. I wonder if this is an artifact of the review tool?

&gt;&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:6
&gt;&gt; +		    window.parent.setTimeout(function focusTest() {
&gt; 
&gt; We do not need to name this function.

OK!

&gt;&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:8
&gt;&gt; +            }, 60);
&gt; 
&gt; Why 60, wouldn&apos;t 0 work?

Yep -- it will, and I&apos;ll change it.

&gt;&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:12
&gt;&gt; +	    &lt;iframe src=&apos;iframe-focus-crash.html&apos;&gt;&lt;/iframe&gt;
&gt; 
&gt; Eh, is this a recursive iframe? Could we do without the recursiveness?

Unfortunately it is needed to reproduce the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235908</commentid>
    <comment_count>4</comment_count>
      <attachid>290515</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-03 14:26:35 -0700</bug_when>
    <thetext>Comment on attachment 290515
Patch

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

&gt;&gt;&gt; LayoutTests/fast/frames/resources/iframe-focus-crash.html:5
&gt;&gt;&gt; +		    document.designMode=&apos;on&apos;;
&gt;&gt; 
&gt;&gt; The indentation is weird / wrong in this block.
&gt; 
&gt; Strange. I wonder why webkit-patch didn&apos;t complain? It also seems fine in my text editor. I wonder if this is an artifact of the review tool?

The reason is that you are mixing tabs and spaces. Please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235924</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-03 14:39:13 -0700</bug_when>
    <thetext>Committed r206751: &lt;http://trac.webkit.org/changeset/206751&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235925</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-03 14:39:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Strange. I wonder why webkit-patch didn&apos;t complain? It also seems fine in my text editor. I wonder if this is an artifact of the review tool?
&gt; 
&gt; The reason is that you are mixing tabs and spaces. Please fix.

Fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290515</attachid>
            <date>2016-10-03 13:51:55 -0700</date>
            <delta_ts>2016-10-03 13:59:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162877-20161003134846.patch</filename>
            <type>text/plain</type>
            <size>4307</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjc0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTEwLTAzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIG51bGwgZGVyZWZl
cmVuY2Ugd2hlbiBjaGFuZ2luZyBmb2N1cyBpbiBkZXNpZ24gbW9kZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjg3NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjgwNjEyNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGJhcmUgbV9mcmFtZSBwb2ludGVyIGluIERPTVdpbmRvdyBjYW4gYmUg
Y2xlYXJlZCB3aGVuIHNldHRpbmcgZm9jdXMgdG8gYSBuZXcgZWxlbWVudC4gQ2hlY2sKKyAgICAg
ICAgdGhhdCB0aGUgbV9mcmFtZSBwb2ludGVyIGlzIG5vbi1udWxsIGJlZm9yZSB1c2luZyBpdCBh
ZnRlciBjYWxsaW5nIGEgcm91dGluZSB0aGF0IGNvdWxkCisgICAgICAgIGNsZWFyIHRoZSBwb2lu
dGVyIHZhbHVlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZnJhbWVzL2lmcmFtZS1mb2N1cy1jcmFz
aC5odG1sCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6OmZvY3VzKTogQ2hlY2sgdGhhdCB0aGUgcG9pbnRlciBpcyBzdGlsbCBub24t
bnVsbCBhZnRlciBzZXR0aW5nIHRoZQorICAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCB0
byBudWxscHRyLgorCiAyMDE2LTEwLTAzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4K
IAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiB1cmwuY29udGFpbnNPbmx5QVNDSUkoKSBpbiBX
ZWJDb3JlOjpjaGVja0VuY29kZWRTdHJpbmcoKSB3aGVuIHBhcnNpbmcgYW4gaW52YWxpZCBDU1Mg
Y3Vyc29yIFVSTApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjA2
NjYxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDA1LDcgKzEwMDUsOSBAQCB2b2lkIERPTVdpbmRvdzo6Zm9jdXMoYm9vbCBhbGxvd0Zv
Y3VzKQogICAgIGlmIChmb2N1c2VkRnJhbWUgJiYgZm9jdXNlZEZyYW1lICE9IG1fZnJhbWUpCiAg
ICAgICAgIGZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0
cik7CiAKLSAgICBtX2ZyYW1lLT5ldmVudEhhbmRsZXIoKS5mb2N1c0RvY3VtZW50VmlldygpOwor
ICAgIC8vIHNldEZvY3VzZWRFbGVtZW50IG1heSBjbGVhciBtX2ZyYW1lLCBzbyByZWNoZWNrIGJl
Zm9yZSB1c2luZyBpdC4KKyAgICBpZiAobV9mcmFtZSkKKyAgICAgICAgbV9mcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuZm9jdXNEb2N1bWVudFZpZXcoKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OmJsdXIo
KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjA2NjYxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMTAtMDMgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgbnVsbCBkZXJlZmVyZW5jZSB3
aGVuIGNoYW5naW5nIGZvY3VzIGluIGRlc2lnbiBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODc3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yODA2MTI2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvZnJhbWVzL2lmcmFtZS1mb2N1cy1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lmcmFtZS1mb2N1cy1jcmFzaC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2ZyYW1lcy9yZXNvdXJjZXMvaWZyYW1lLWZvY3VzLWNyYXNoLmh0bWw6
IEFkZGVkLgorCiAyMDE2LTA5LTMwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlYmFzZWxpbmUganMvZG9tL3N0YWNrLXRyYWNlLmh0bWwgYWZ0ZXIgcjIw
NjY1NC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1mb2N1cy1jcmFzaC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1l
LWZvY3VzLWNyYXNoLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9pZnJhbWUtZm9jdXMtY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMiBAQAorVGhpcyB0ZXN0cyB0aGF0IHNldHRpbmcgZm9jdXMgdG8gYSByZW1v
dmVkIGZyYW1lIGRvZXMgbm90IGNhdXNlIGEgY3Jhc2guIFRoZSB0ZXN0IHBhc3NlcyBpZiBpdCBk
b2VzIG5vdCBjcmFzaC4KKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWZv
Y3VzLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZy
YW1lLWZvY3VzLWNyYXNoLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvaWZyYW1lLWZvY3VzLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MyBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRy
dWUpOworICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPGRpdj5UaGlzIHRlc3RzIHRoYXQgc2V0dGluZyBmb2N1cyB0byBhIHJlbW92
ZWQgZnJhbWUgZG9lcyBub3QgY2F1c2UgYSBjcmFzaC4gVGhlIHRlc3QgcGFzc2VzIGlmIGl0IGRv
ZXMgbm90IGNyYXNoLjwvZGl2PgorICAgICAgICA8aWZyYW1lIHNyYz0ncmVzb3VyY2VzL2lmcmFt
ZS1mb2N1cy1jcmFzaC5odG1sJz48L2lmcmFtZT4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVz
b3VyY2VzL2lmcmFtZS1mb2N1cy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3Jlc291cmNlcy9pZnJhbWUtZm9jdXMtY3Jhc2guaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvaWZyYW1lLWZvY3VzLWNy
YXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+CisgICAgPGJv
ZHkgb25sb2FkPSdydW5UZXN0KCknPiAKKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKwkJICAgIGRvY3VtZW50LmRlc2lnbk1vZGU9J29uJzsKKwkJICAgIHdp
bmRvdy5wYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbiBmb2N1c1Rlc3QoKSB7CisgICAgICAgICAg
ICAgICAgd2luZG93LmZvY3VzKCk7CisgICAgICAgICAgICB9LCA2MCk7CisJCSAgICB3aW5kb3cu
Zm9jdXMoKTsKKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKwkgICAgPGlmcmFtZSBzcmM9
J2lmcmFtZS1mb2N1cy1jcmFzaC5odG1sJz48L2lmcmFtZT4KKwkgICAgPGh0bWwgb25mb2N1c291
dD0id2luZG93LmRvY3VtZW50LndyaXRlbG4oKTsiPjwvaHRtbD4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="313688"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="313691"
          type_id="3"
          status="-"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>