<?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>56771</bug_id>
          
          <creation_ts>2011-03-21 15:09:34 -0700</creation_ts>
          <short_desc>editing commands shouldn&apos;t run when there&apos;s no body</short_desc>
          <delta_ts>2011-04-03 00:55:01 -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>HTML Editing</component>
          <version>528+ (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>
          
          <blocked>56642</blocked>
    
    <blocked>56644</blocked>
    
    <blocked>56652</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>leviw</cc>
    
    <cc>ojan</cc>
    
    <cc>skylined</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>370943</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-21 15:09:34 -0700</bug_when>
    <thetext>WebKit currently allows editing commands to run without a body element when the design mode is turned on, and this behavior led to crashes such as that of the bug 56642.  We should avoid executing (most of) editing commands when there is no body element because appending a node to a body-less document isn&apos;t possible from scripts and allowing such an operation via editing commands creates an unnecessary loop-hole to break assumptions in WebCore.

As far as I checked, IE doesn&apos;t support execCommand under designMode and FF ignores execCommands when there are no body element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371030</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-21 17:04:23 -0700</bug_when>
    <thetext>This sounds like a good (and easily testable) idea, assuming we confirm that the test passes in other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371051</commentid>
    <comment_count>2</comment_count>
      <attachid>86393</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-21 17:23:58 -0700</bug_when>
    <thetext>Created attachment 86393
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371082</commentid>
    <comment_count>3</comment_count>
      <attachid>86393</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-21 17:57:10 -0700</bug_when>
    <thetext>Comment on attachment 86393
fixes the bug

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

Have you validated that FF and IE pass these tests the same way we do?

&gt; Source/WebCore/editing/Editor.cpp:213
&gt; -    return m_frame-&gt;selection()-&gt;isContentEditable();
&gt; +    return m_frame-&gt;selection()-&gt;rootEditableElement();

Do we need to check both?  It&apos;s not clear to me how this is a superset of the previous check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371090</commentid>
    <comment_count>4</comment_count>
      <attachid>86393</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-21 18:02:14 -0700</bug_when>
    <thetext>Comment on attachment 86393
fixes the bug

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

&gt;&gt; Source/WebCore/editing/Editor.cpp:213
&gt;&gt; +    return m_frame-&gt;selection()-&gt;rootEditableElement();
&gt; 
&gt; Do we need to check both?  It&apos;s not clear to me how this is a superset of the previous check.

If selection start has a root editable element, then it must also be editable.  To verify this, rootEditableElement calls editableRootForPosition in htmlediting.cpp, which calls Node::rootEditableElement() but rootEditableElement() only traverses through nodes that are content editable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371096</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-21 18:04:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 86393 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=86393&amp;action=review
&gt; 
&gt; Have you validated that FF and IE pass these tests the same way we do?

In FF, yes. In IE, we can&apos;t since IE doesn&apos;t support design mode properly. For StyleWithCSS, we deviate from FF because FF ignores StyleWithCSS when there&apos;s no body (as far as I checked).  But this is odd as ap pointed on IRC because StyleWithCSS is a document properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371103</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-21 18:06:39 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 86393 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=86393&amp;action=review
&gt; &gt; 
&gt; &gt; Have you validated that FF and IE pass these tests the same way we do?
&gt; 
&gt; In FF, yes. In IE, we can&apos;t since IE doesn&apos;t support design mode properly. For StyleWithCSS, we deviate from FF because FF ignores StyleWithCSS when there&apos;s no body (as far as I checked).  But this is odd as ap pointed on IRC because StyleWithCSS is a document properly.

The FF difference sounds like something we should test.  We could also file a but against FF with bugs.mozilla.org.

But overall sounds great.  Thanks.  You might add the comment about having tested in FF and IE to your ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371104</commentid>
    <comment_count>7</comment_count>
      <attachid>86393</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-21 18:07:26 -0700</bug_when>
    <thetext>Comment on attachment 86393
fixes the bug

LGTM.  Please consider adding the testing information to the ChangeLog and considering testing our behavior re: StyleWithCSS and how it differs from FF.  That can of course be a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371131</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-21 18:44:00 -0700</bug_when>
    <thetext>Here&apos;s new WebCore change log entry.  Does it look good to you, Eric?

The bug was caused by WebKit&apos;s not checking the existence of root editable element
in enabled* functions. Although isContentEditable returns true whenever we&apos;re in design mode,
we should not run editing commands in a document without a body element editable because
doing so results in appending a non-body element to the document node.

Fixed the bug by modifying various enabled* functions to ensure we have a root editable element.
New behavior tries to match that of Firefox except StyleWithCSS, which Firefox seems to ignore
when there are no body element. Since StyleWithCSS is a document&apos;s state or property, we allow
execCommand(&apos;StyleWithCSS&apos;) even in a document without a body element.

WebKit&apos;s and Firefox&apos;s behaviors also deviate in insert-image-with-selecting-document.html.
Whereas WebKit respects selection set by script and ignores execCommand, Firefox modifies
the selection when document.write(&quot;x&quot;) is ran and successfully inserts image.

Thus, empty-document-delete.html and empty-document-justify-right.html both pass on Firefox
while empty-document-stylewithcss.html and insert-image-with-selecting-document.html both fail.

Since Internet Explorer does not allow execCommand to run under design mode properly, we could
not test its behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378507</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-03 00:55:01 -0700</bug_when>
    <thetext>Committed r82791: &lt;http://trac.webkit.org/changeset/82791&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86393</attachid>
            <date>2011-03-21 17:23:58 -0700</date>
            <delta_ts>2011-03-21 18:07:26 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-56771-20110321172357.patch</filename>
            <type>text/plain</type>
            <size>12274</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNjIwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDMtMjEgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgZWRpdGluZyBjb21tYW5kcyBzaG91bGRuJ3QgcnVuIHdoZW4gdGhl
cmUncyBubyBib2R5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01Njc3MQorCisgICAgICAgIFRoZSBidWcgd2FzIGNhdXNlZCBieSBXZWJLaXQncyBub3Qg
Y2hlY2tpbmcgdGhlIGV4aXN0ZW5jZSBvZiByb290IGVkaXRhYmxlIGVsZW1lbnQKKyAgICAgICAg
aW4gZW5hYmxlZCogZnVuY3Rpb25zLiBBbHRob3VnaCBpc0NvbnRlbnRFZGl0YWJsZSByZXR1cm5z
IHRydWUgd2hlbmV2ZXIgd2UncmUgaW4gZGVzaWduIG1vZGUsCisgICAgICAgIHdlIHNob3VsZCBu
b3QgcnVuIGVkaXRpbmcgY29tbWFuZHMgaW4gYSBkb2N1bWVudCB3aXRob3V0IGEgYm9keSBlbGVt
ZW50IGVkaXRhYmxlIGJlY2F1c2UKKyAgICAgICAgZG9pbmcgc28gcmVzdWx0cyBpbiBhcHBlbmRp
bmcgYSBub24tYm9keSBlbGVtZW50IHRvIHRoZSBkb2N1bWVudCBub2RlLgorCisgICAgICAgIEZp
eGVkIHRoZSBidWcgYnkgbW9kaWZ5aW5nIHZhcmlvdXMgZW5hYmxlZCogZnVuY3Rpb25zIHRvIGVu
c3VyZSB3ZSBoYXZlIGEgcm9vdCBlZGl0YWJsZSBlbGVtZW50LgorCisgICAgICAgIFRlc3RzOiBl
ZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LWRlbGV0ZS5odG1sCisgICAgICAgICAg
ICAgICBlZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LWp1c3RpZnktcmlnaHQuaHRt
bAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1zdHls
ZXdpdGhjc3MuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQt
aW1hZ2Utd2l0aC1zZWxlY3RpbmctZG9jdW1lbnQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5FZGl0KTogVmVyaWZ5IHRo
YXQgdGhlIHJvb3QgZWRpdGFibGUgZWxlbWVudCBleGlzdHMKKyAgICAgICAgaW5zdGVhZCBvZiBq
dXN0IGNoZWNraW5nIHRoYXQgc2VsZWN0aW9uIGVuZHBvaW50cyBhcmUgZWRpdGFibGUgYmVjYXVz
ZQorICAgICAgICBzZWxlY3Rpb24gZW5kcG9pbnRzIGNvdWxkIGJlIGRvY3VtZW50IG5vZGUgd2l0
aG91dCBhIGJvZHkgZWxlbWVudCBpbiBkZXNpZ24gbW9kZQorICAgICAgICBhbmQgd2UgZG9uJ3Qg
d2FudCB0byBjb25zaWRlciBzdWNoIGEgZG9jdW1lbnQgZWRpdGFibGUuCisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmNhbkRlbGV0ZSk6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmFibGVkSW5FZGl0YWJsZVRleHQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6ZW5hYmxlZERlbGV0ZSk6IENhbGwgZW5hYmxlZEN1dCBh
bmQgZW5hYmxlZEluRWRpdGFibGVUZXh0IGluc3RlYWQKKyAgICAgICAgb2YgZHVwbGljYXRpbmcg
dGhlIGNvZGUgaW4gb3JkZXIgdG8gZml4IHRoZSBzYW1lIGJ1Zy4KKwogMjAxMS0wMy0yMSAgRGFu
aWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBU
b255IENoYW5nLgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gODE2
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIxMCw3ICsyMTAsNyBAQCBib29sIEVkaXRvcjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVu
dCogCiAKIGJvb2wgRWRpdG9yOjpjYW5FZGl0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9mcmFt
ZS0+c2VsZWN0aW9uKCktPmlzQ29udGVudEVkaXRhYmxlKCk7CisgICAgcmV0dXJuIG1fZnJhbWUt
PnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7CiB9CiAKIGJvb2wgRWRpdG9yOjpj
YW5FZGl0UmljaGx5KCkgY29uc3QKQEAgLTI3OCw3ICsyNzgsNyBAQCBib29sIEVkaXRvcjo6Y2Fu
UGFzdGUoKSBjb25zdAogYm9vbCBFZGl0b3I6OmNhbkRlbGV0ZSgpIGNvbnN0CiB7CiAgICAgU2Vs
ZWN0aW9uQ29udHJvbGxlciogc2VsZWN0aW9uID0gbV9mcmFtZS0+c2VsZWN0aW9uKCk7Ci0gICAg
cmV0dXJuIHNlbGVjdGlvbi0+aXNSYW5nZSgpICYmIHNlbGVjdGlvbi0+aXNDb250ZW50RWRpdGFi
bGUoKTsKKyAgICByZXR1cm4gc2VsZWN0aW9uLT5pc1JhbmdlKCkgJiYgc2VsZWN0aW9uLT5yb290
RWRpdGFibGVFbGVtZW50KCk7CiB9CiAKIGJvb2wgRWRpdG9yOjpjYW5EZWxldGVSYW5nZShSYW5n
ZSogcmFuZ2UpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAJKHJldmlzaW9uIDgxNjA1KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4NSwyNyArMTE4NSwyNyBAQCBzdGF0aWMg
Ym9vbCBlbmFibGVkQ3V0KEZyYW1lKiBmcmFtZSwgRXZlCiAgICAgcmV0dXJuIGZyYW1lLT5lZGl0
b3IoKS0+Y2FuREhUTUxDdXQoKSB8fCBmcmFtZS0+ZWRpdG9yKCktPmNhbkN1dCgpOwogfQogCitz
dGF0aWMgYm9vbCBlbmFibGVkSW5FZGl0YWJsZVRleHQoRnJhbWUqIGZyYW1lLCBFdmVudCogZXZl
bnQsIEVkaXRvckNvbW1hbmRTb3VyY2UpCit7CisgICAgcmV0dXJuIGZyYW1lLT5lZGl0b3IoKS0+
c2VsZWN0aW9uRm9yQ29tbWFuZChldmVudCkucm9vdEVkaXRhYmxlRWxlbWVudCgpOworfQorCiBz
dGF0aWMgYm9vbCBlbmFibGVkRGVsZXRlKEZyYW1lKiBmcmFtZSwgRXZlbnQqIGV2ZW50LCBFZGl0
b3JDb21tYW5kU291cmNlIHNvdXJjZSkKIHsKICAgICBzd2l0Y2ggKHNvdXJjZSkgewogICAgIGNh
c2UgQ29tbWFuZEZyb21NZW51T3JLZXlCaW5kaW5nOgogICAgICAgICAvLyAiRGVsZXRlIiBmcm9t
IG1lbnUgb25seSBhZmZlY3RzIHNlbGVjdGVkIHJhbmdlLCBqdXN0IGxpa2UgQ3V0IGJ1dCB3aXRo
b3V0IGFmZmVjdGluZyBwYXN0ZWJvYXJkCi0gICAgICAgIHJldHVybiBmcmFtZS0+ZWRpdG9yKCkt
PmNhbkRIVE1MQ3V0KCkgfHwgZnJhbWUtPmVkaXRvcigpLT5jYW5DdXQoKTsKKyAgICAgICAgcmV0
dXJuIGVuYWJsZWRDdXQoZnJhbWUsIGV2ZW50LCBzb3VyY2UpOwogICAgIGNhc2UgQ29tbWFuZEZy
b21ET006CiAgICAgY2FzZSBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlOgogICAgICAg
ICAvLyAiRGVsZXRlIiBmcm9tIERPTSBpcyBsaWtlIGRlbGV0ZS9iYWNrc3BhY2Uga2V5cHJlc3Ms
IGFmZmVjdHMgc2VsZWN0ZWQgcmFuZ2UgaWYgbm9uLWVtcHR5LAogICAgICAgICAvLyBvdGhlcndp
c2UgcmVtb3ZlcyBhIGNoYXJhY3RlcgotICAgICAgICByZXR1cm4gZnJhbWUtPmVkaXRvcigpLT5z
ZWxlY3Rpb25Gb3JDb21tYW5kKGV2ZW50KS5pc0NvbnRlbnRFZGl0YWJsZSgpOworICAgICAgICBy
ZXR1cm4gZW5hYmxlZEluRWRpdGFibGVUZXh0KGZyYW1lLCBldmVudCwgc291cmNlKTsKICAgICB9
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0
aWMgYm9vbCBlbmFibGVkSW5FZGl0YWJsZVRleHQoRnJhbWUqIGZyYW1lLCBFdmVudCogZXZlbnQs
IEVkaXRvckNvbW1hbmRTb3VyY2UpCi17Ci0gICAgcmV0dXJuIGZyYW1lLT5lZGl0b3IoKS0+c2Vs
ZWN0aW9uRm9yQ29tbWFuZChldmVudCkuaXNDb250ZW50RWRpdGFibGUoKTsKLX0KLQogc3RhdGlj
IGJvb2wgZW5hYmxlZEluRWRpdGFibGVUZXh0T3JDYXJldEJyb3dzaW5nKEZyYW1lKiBmcmFtZSwg
RXZlbnQqIGV2ZW50LCBFZGl0b3JDb21tYW5kU291cmNlKQogewogICAgIC8vIFRoZSBFZGl0b3JD
b21tYW5kU291cmNlIHBhcmFtZXRlciBpcyB1bnVzZWQgaW4gZW5hYmxlZEluRWRpdGFibGVUZXh0
LCBzbyBqdXN0IHBhc3MgYSBkdW1teSB2YXJpYWJsZQpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgc3Rh
dGljIGJvb2wgZW5hYmxlZEluRWRpdGFibGVUZXh0T3JDYXJldAogCiBzdGF0aWMgYm9vbCBlbmFi
bGVkSW5SaWNobHlFZGl0YWJsZVRleHQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1h
bmRTb3VyY2UpCiB7Ci0gICAgcmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+aXNDYXJldE9yUmFu
Z2UoKSAmJiBmcmFtZS0+c2VsZWN0aW9uKCktPmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCk7Cisg
ICAgcmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+aXNDYXJldE9yUmFuZ2UoKSAmJiBmcmFtZS0+
c2VsZWN0aW9uKCktPmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCkgJiYgZnJhbWUtPnNlbGVjdGlv
bigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7CiB9CiAKIHN0YXRpYyBib29sIGVuYWJsZWRQYXN0
ZShGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgxNjIwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTEtMDMtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZWRp
dGluZyBjb21tYW5kcyBzaG91bGRuJ3QgcnVuIHdoZW4gdGhlcmUncyBubyBib2R5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njc3MQorCisgICAgICAg
IEFkZGVkIHRlc3RzIHRvIGVuc3VyZSBXZWJLaXQgZG9lcyBub3QgY3Jhc2ggd2hlbiBhdHRlbXB0
ZWQgdG8gZXhlY3V0ZSBlZGl0aW5nIGNvbW1hbmRzCisgICAgICAgIGluIGFuIGVtcHR5IGRvY3Vt
ZW50LiBBbHNvIGFkZGVkIGEgdGVzdCB0byBlbnN1cmUgV2ViS2l0IGRvZXMgbm90IGNyYXNoIHdo
ZW4gSW5zZXJ0SW1hZ2UKKyAgICAgICAgaXMgZXhlY3V0ZWQgd2l0aCBzZWxlY3Rpb24gZW5kcG9p
bnRzIGJlaW5nIGRvY3VtZW50LiBXZWJLaXQgc2hvdWxkIGlnbm9yZSBzdWNoIGF0dGVtcHRzCisg
ICAgICAgIGFuZCBzaG91bGQgbm90IGNyYXNoLgorCisgICAgICAgICogZWRpdGluZy9lZGl0YWJp
bGl0eS9lbXB0eS1kb2N1bWVudC1kZWxldGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LWRlbGV0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LWp1c3RpZnktcmln
aHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmlsaXR5L2Vt
cHR5LWRvY3VtZW50LWp1c3RpZnktcmlnaHQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9lZGl0YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1zdHlsZXdpdGhjc3MtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LXN0eWxl
d2l0aGNzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luc2Vy
dC1pbWFnZS13aXRoLXNlbGVjdGluZy1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWltYWdlLXdpdGgtc2VsZWN0aW5nLWRv
Y3VtZW50Lmh0bWw6IEFkZGVkLgorCiAyMDExLTAzLTIxICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LWRlbGV0ZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJpbGl0eS9l
bXB0eS1kb2N1bWVudC1kZWxldGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1kZWxldGUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIFdlYktp
dCBkb2VzIG5vdCBjcmFzaCB3aGVuIGV4ZWN1dGluZyBEZWxldGUgaW4gYW4gZW1wdHkgZG9jdW1l
bnQuCisKK1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFiaWxpdHkvZW1wdHkt
ZG9jdW1lbnQtZGVsZXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1kZWxldGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFiaWxpdHkvZW1wdHktZG9jdW1lbnQtZGVsZXRlLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICBkb2N1bWVudC5kZXNpZ25Nb2RlPSJvbiI7CisgICAgZG9jdW1lbnQub3BlbigpOworICAg
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShkb2N1bWVudC5jcmVhdGVSYW5nZSgpKTsK
KyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiRGVsZXRlIik7CisgICAgZG9jdW1lbnQud3JpdGVs
bignVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGNyYXNoIHdoZW4gZXhlY3V0aW5n
IERlbGV0ZSBpbiBhbiBlbXB0eSBkb2N1bWVudC48YnI+PGJyPlBBU1MnKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPjwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFiaWxpdHkvZW1wdHktZG9jdW1lbnQtanVzdGlm
eS1yaWdodC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5LXJpZ2h0LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFiaWxpdHkvZW1wdHktZG9jdW1l
bnQtanVzdGlmeS1yaWdodC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBA
QAorVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGNyYXNoIHdoZW4gZXhlY3V0aW5n
IEp1c3RpZnlSaWdodCBpbiBhbiBlbXB0eSBkb2N1bWVudC4KKworUEFTUwpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1qdXN0aWZ5LXJpZ2h0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJpbGl0eS9lbXB0eS1k
b2N1bWVudC1qdXN0aWZ5LXJpZ2h0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LWp1c3RpZnktcmlnaHQuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
IGRvY3VtZW50LmRlc2lnbk1vZGU9Im9uIjsKKyAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgd2lu
ZG93LmdldFNlbGVjdGlvbigpLmFkZFJhbmdlKGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkpOworICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJKdXN0aWZ5UmlnaHQiLCBmYWxzZSwgbnVsbCk7CisgICAg
ZG9jdW1lbnQud3JpdGVsbignVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGNyYXNo
IHdoZW4gZXhlY3V0aW5nIEp1c3RpZnlSaWdodCBpbiBhbiBlbXB0eSBkb2N1bWVudC48YnI+PGJy
PlBBU1MnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PjwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFiaWxpdHkv
ZW1wdHktZG9jdW1lbnQtc3R5bGV3aXRoY3NzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LXN0eWxld2l0aGNz
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmlsaXR5L2VtcHR5LWRvY3VtZW50LXN0eWxld2l0aGNzcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGV4ZWN1dGVzIFN0
eWxlV2l0aENTUyBwcm9wZXJseSBldmVuIGluIGFuIGVtcHR5IGRvY3VtZW50LgorRmlyc3QgbmVn
YXRpb246UEFTUworU2Vjb25kIG5lZ2F0aW9uOlBBU1MKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1zdHlsZXdpdGhjc3MuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmlsaXR5L2VtcHR5LWRvY3VtZW50LXN0
eWxld2l0aGNzcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJpbGl0eS9lbXB0eS1kb2N1bWVudC1zdHlsZXdpdGhjc3MuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGRvY3VtZW50LmRl
c2lnbk1vZGU9Im9uIjsKKyAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgd2luZG93LmdldFNlbGVj
dGlvbigpLmFkZFJhbmdlKGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkpOworCisgICAgdmFyIGluaXRp
YWxWYWx1ZSA9IGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFZhbHVlKCdTdHlsZVdpdGhDU1MnKTsKKyAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU3R5bGVXaXRoQ1NTIiwgZmFsc2UsICFldmFsKGluaXRp
YWxWYWx1ZSkpOworICAgIGRvY3VtZW50LndyaXRlbG4oJ2hlbGxvJyk7CisKKyAgICBkb2N1bWVu
dC5vcGVuKCk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmFkZFJhbmdlKGRvY3VtZW50LmNy
ZWF0ZVJhbmdlKCkpOworICAgIHZhciB2YWx1ZUFmdGVyRmlyc3ROZWdhdGlvbiA9IGRvY3VtZW50
LnF1ZXJ5Q29tbWFuZFZhbHVlKCdTdHlsZVdpdGhDU1MnKTsKKworICAgIGRvY3VtZW50LmV4ZWND
b21tYW5kKCJTdHlsZVdpdGhDU1MiLCBmYWxzZSwgIWV2YWwodmFsdWVBZnRlckZpcnN0TmVnYXRp
b24pKTsKKyAgICBkb2N1bWVudC53cml0ZWxuKCd3b3JsZCcpOworICAgIHZhciB2YWx1ZUFmdGVy
U2Vjb25kTmVnYXRpb24gPSBkb2N1bWVudC5xdWVyeUNvbW1hbmRWYWx1ZSgnU3R5bGVXaXRoQ1NT
Jyk7CisKKyAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgZG9jdW1lbnQud3JpdGVsbignVGhpcyB0
ZXN0IGVuc3VyZXMgV2ViS2l0IGV4ZWN1dGVzIFN0eWxlV2l0aENTUyBwcm9wZXJseSBldmVuIGlu
IGFuIGVtcHR5IGRvY3VtZW50Ljxicj4nKTsKKyAgICBkb2N1bWVudC53cml0ZSgnRmlyc3QgbmVn
YXRpb246JyArIChpbml0aWFsVmFsdWUgIT09IHZhbHVlQWZ0ZXJGaXJzdE5lZ2F0aW9uID8gJ1BB
U1MnIDogJ0ZBSUwnKSArICc8YnI+Jyk7CisgICAgZG9jdW1lbnQud3JpdGUoJ1NlY29uZCBuZWdh
dGlvbjonICsgKHZhbHVlQWZ0ZXJGaXJzdE5lZ2F0aW9uICE9PSB2YWx1ZUFmdGVyU2Vjb25kTmVn
YXRpb24gPyAnUEFTUycgOiAnRkFJTCcpICsgJzxicj4nKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPjwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWltYWdlLXdpdGgtc2VsZWN0aW5nLWRv
Y3VtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL2luc2VydC1pbWFnZS13aXRoLXNlbGVjdGluZy1kb2N1bWVudC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2Vy
dC1pbWFnZS13aXRoLXNlbGVjdGluZy1kb2N1bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGNyYXNo
IHdoZW4gZXhlY3V0aW5nIEluc2VydEltYWdlIHdpdGggc2VsZWN0aW9uIGVuZHBvaW50cyBhcmUg
dGhlIGRvY3VtZW50IG5vZGUuCisKK1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvaW5zZXJ0LWltYWdlLXdpdGgtc2VsZWN0aW5nLWRvY3VtZW50Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtaW1hZ2Utd2l0
aC1zZWxlY3RpbmctZG9jdW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWltYWdlLXdpdGgtc2VsZWN0aW5nLWRvY3VtZW50Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICBkb2N1bWVudC5kZXNpZ25Nb2RlPSJvbiI7CisgICAgZG9jdW1lbnQub3BlbigpOwor
ICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudCwgMCk7CisgICAg
ZG9jdW1lbnQud3JpdGUoIngiKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0SW1h
Z2UiKTsKKyAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgZG9jdW1lbnQud3JpdGVsbignVGhpcyB0
ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGNyYXNoIHdoZW4gZXhlY3V0aW5nIEluc2VydElt
YWdlIHdpdGggc2VsZWN0aW9uIGVuZHBvaW50cyBhcmUgdGhlIGRvY3VtZW50IG5vZGUuPGJyPjxi
cj5QQVNTJyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij48L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="78648"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>