<?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>35028</bug_id>
          
          <creation_ts>2010-02-17 03:57:32 -0800</creation_ts>
          <short_desc>[Qt] Add selectedHtml function to QWebView</short_desc>
          <delta_ts>2011-01-07 05:59:53 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31552</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>adawit</cc>
    
    <cc>eric</cc>
    
    <cc>faure</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>luiz</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vestbo</cc>
    
    <cc>wstokes</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>190972</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-02-17 03:57:32 -0800</bug_when>
    <thetext>Original bug report: http://bugreports.qt.nokia.com/browse/QTBUG-5525

toUpper and toLower

This is a feature request, not a bug report. I&apos;ve been building what I
call a &quot;RichTextEdit&quot;, aka a simple text editor built on top of an
editable QWebView. Things like bold, underline, italic all work pretty
well. I need one additional piece of functionality: toUpper and
toLower. There is no built in support for such functionality in
QWebKit, nor do I suggest there necessarily should be. But it would be
nice if there was a way for me to implement it myself. This is what I
do currently:

void RichTextEdit::toUpperCase() { execCommand(&quot;insertHTML&quot;, selectedText().toUpper()); }
void RichTextEdit::toLowerCase() { execCommand(&quot;insertHTML&quot;, selectedText().toLower()); }

void RichTextEdit::execCommand(const QString &amp;cmd, const QString &amp;arg)
{ QWebFrame *frame = page()-&gt;mainFrame(); QString js = QString(&quot;document.execCommand(\&quot;%1\&quot;, false, \&quot;%2\&quot;)&quot;).arg(cmd).arg(arg); std::string str = js.toStdString(); frame-&gt;evaluateJavaScript(js); }

Aka, I use the insertHTML function and simply replace the selected
text. The problem with this is:

1) I&apos;d like to preserve the selection and
2) I lose complex internal formatting within the selection. For
example, if the text was

&lt;b&gt;One&lt;/b&gt; Two &lt;b&gt;Three&lt;/b&gt; Four &lt;b&gt;Five&lt;/b&gt;

Add I select the entire thing and do a toUpper then the result is the
entire text becomes bolded. If I could get at the HTML, do my
modifications, and push that HTML back over the selected html, then
I&apos;d be a very happy camper. I suspect that would work if I simply had
a function like

QString QWebView::sectedHTML()

and if the insertHTML javascript function provided a means to maintain
the selection (aka select the insertion if we&apos;re doing a replace).

If there is a way to improve my existing code without modifications to
Qt I&apos;d love to hear about it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284429</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-24 09:22:40 -0700</bug_when>
    <thetext>why QWebView? What about QGraphicsWebView, or QWebPage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284444</commentid>
    <comment_count>2</comment_count>
    <who name="Will Stokes">wstokes</who>
    <bug_when>2010-09-24 09:44:52 -0700</bug_when>
    <thetext>You&apos;re right, this should probably lie farther down the food chain in something like QWebPage. What is fundamental is also being able to set the selected html as well, thus I&apos;m looking for something like

QString QWebPage::selectedHTML() const;

void QWebPage::setSelectedHTML(QString val);

where the latter results in a web page with updated content and the updated portion still selected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284653</commentid>
    <comment_count>3</comment_count>
    <who name="David Faure">faure</who>
    <bug_when>2010-09-24 13:26:16 -0700</bug_when>
    <thetext>Well, this is very similar to selectedText(), so I would say it should be both in QWebPage and QWebView, just like selectedText() currently. But yes, at least in QWebPage ;-)

IMHO let&apos;s keep &quot;setSelectedHTML&quot; out of this wish (i.e. make a separate one for it), it sounds quite more involved, than a simple &quot;get me the selection as HTML&quot; when there&apos;s already a &quot;get me the selection as plain text&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284668</commentid>
    <comment_count>4</comment_count>
    <who name="Will Stokes">wstokes</who>
    <bug_when>2010-09-24 13:49:56 -0700</bug_when>
    <thetext>David, you make a good point. FYI, this is how I currently convert a selection portion to upper case. I replace the selected portion. Aka I have to refer to javascript&apos;s insertHTML command...

QString text = m_webView-&gt;selectedText();
text = input.toUpper();

QWebFrame *frame = m_webView-&gt;page()-&gt;mainFrame();
QString js = QString(&quot;document.execCommand(\&quot;%1\&quot;, false, \&quot;%2\&quot;)&quot;).arg(&quot;insertHTML&quot;).arg(text);
frame-&gt;evaluateJavaScript(js);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284669</commentid>
    <comment_count>5</comment_count>
    <who name="Will Stokes">wstokes</who>
    <bug_when>2010-09-24 13:50:49 -0700</bug_when>
    <thetext>Sorry, that should be:

QString text = m_webView-&gt;selectedText();
text = text.toUpper();

QString js = QString(&quot;document.execCommand(\&quot;%1\&quot;, false, \&quot;%2\&quot;)&quot;).arg(&quot;insertHTML&quot;).arg(text);

QWebFrame *frame = m_webView-&gt;page()-&gt;mainFrame();
frame-&gt;evaluateJavaScript(js);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284718</commentid>
    <comment_count>6</comment_count>
      <attachid>68755</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-24 14:46:33 -0700</bug_when>
    <thetext>Created attachment 68755
Proposed patch

Added QWebView::selectedHtml() and QWebPage::selectedHtml()
Returned markup originates from the current selection range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285294</commentid>
    <comment_count>7</comment_count>
      <attachid>68755</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-26 21:35:52 -0700</bug_when>
    <thetext>Comment on attachment 68755
Proposed patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286218</commentid>
    <comment_count>8</comment_count>
      <attachid>68755</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-28 07:36:25 -0700</bug_when>
    <thetext>Comment on attachment 68755
Proposed patch

This needs API review before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287930</commentid>
    <comment_count>9</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-09-30 16:41:13 -0700</bug_when>
    <thetext>Just want to mention this here for the record. Already discussed it with Andreas on IRC, but I am not sure what the proper resolution should/would be:

The call to Range::toHTML() used to obtain the selected text will result in the internal style information, which is not part of the actual page, being included in the html fragment that is returned. This might be appropriate if your intention is to paste the selection into a Rich text editing environment, but that cannot be assumed for this API. At least I do not think. There are use cases such as page validation or text to speech where is additionally and rather ugly inclusion is not a necessary welcome.

Infact doing this issue was enough of a concern that someone put the following comments atop WebCore::createMarkup (WebCore/editing/markup.cpp), the function the Range::toHTML() function relies on to create the HTML representation:

// FIXME: Shouldn&apos;t we omit style info when annotate == DoNotAnnotateForInterchange? 
// FIXME: At least, annotation and style info should probably not be included in range.markupString()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293604</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-13 12:26:29 -0700</bug_when>
    <thetext>Attachment 68755 was posted by a committer and has review+, assigning to Andreas Kling for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321790</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-14 01:35:47 -0800</bug_when>
    <thetext>What&apos;s left to be done here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330746</commentid>
    <comment_count>12</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-01-07 05:59:53 -0800</bug_when>
    <thetext>Committed r75242: &lt;http://trac.webkit.org/changeset/75242&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68755</attachid>
            <date>2010-09-24 14:46:33 -0700</date>
            <delta_ts>2010-09-28 07:36:25 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-35028.diff</filename>
            <type>text/plain</type>
            <size>8013</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggOWFhMWEzYi4uZDQyM2Q5NiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTI0
NjQsNiArMjQ2NCwyMSBAQCBRU3RyaW5nIFFXZWJQYWdlOjpzZWxlY3RlZFRleHQoKSBjb25zdAog
ICAgIHJldHVybiBkLT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1l
KCktPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKTsKIH0KIAorLyohCisgICAgXHNpbmNlIDQuOAor
ICAgIFxwcm9wZXJ0eSBRV2ViUGFnZTo6c2VsZWN0ZWRIdG1sCisgICAgXGJyaWVmIHRoZSBIVE1M
IGN1cnJlbnRseSBzZWxlY3RlZAorCisgICAgQnkgZGVmYXVsdCwgdGhpcyBwcm9wZXJ0eSBjb250
YWlucyBhbiBlbXB0eSBzdHJpbmcuCisKKyAgICBcc2Egc2VsZWN0aW9uQ2hhbmdlZCgpCisqLwor
UVN0cmluZyBRV2ViUGFnZTo6c2VsZWN0ZWRIdG1sKCkgY29uc3QKK3sKKyAgICBkLT5jcmVhdGVN
YWluRnJhbWUoKTsKKyAgICByZXR1cm4gZC0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3Vz
ZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+c2VsZWN0ZWRSYW5nZSgpLT50b0hUTUwoKTsKK30K
KwogI2lmbmRlZiBRVF9OT19BQ1RJT04KIC8qIQogICAgUmV0dXJucyBhIFFBY3Rpb24gZm9yIHRo
ZSBzcGVjaWZpZWQgV2ViQWN0aW9uIFxhIGFjdGlvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9B
cGkvcXdlYnBhZ2UuaCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuaAppbmRleCBhMjAwNzRmLi44
YmQ3NmRlIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmgKKysrIGIvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5oCkBAIC03MSw2ICs3MSw3IEBAIGNsYXNzIFFXRUJLSVRfRVhQT1JU
IFFXZWJQYWdlIDogcHVibGljIFFPYmplY3QgewogCiAgICAgUV9QUk9QRVJUWShib29sIG1vZGlm
aWVkIFJFQUQgaXNNb2RpZmllZCkKICAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2VsZWN0ZWRUZXh0
IFJFQUQgc2VsZWN0ZWRUZXh0KQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzZWxlY3RlZEh0bWwg
UkVBRCBzZWxlY3RlZEh0bWwpCiAgICAgUV9QUk9QRVJUWShRU2l6ZSB2aWV3cG9ydFNpemUgUkVB
RCB2aWV3cG9ydFNpemUgV1JJVEUgc2V0Vmlld3BvcnRTaXplKQogICAgIFFfUFJPUEVSVFkoUVNp
emUgcHJlZmVycmVkQ29udGVudHNTaXplIFJFQUQgcHJlZmVycmVkQ29udGVudHNTaXplIFdSSVRF
IHNldFByZWZlcnJlZENvbnRlbnRzU2l6ZSkKICAgICBRX1BST1BFUlRZKGJvb2wgZm9yd2FyZFVu
c3VwcG9ydGVkQ29udGVudCBSRUFEIGZvcndhcmRVbnN1cHBvcnRlZENvbnRlbnQgV1JJVEUgc2V0
Rm9yd2FyZFVuc3VwcG9ydGVkQ29udGVudCkKQEAgLTI2OCw2ICsyNjksNyBAQCBwdWJsaWM6CiAg
ICAgcXVpbnQ2NCBieXRlc1JlY2VpdmVkKCkgY29uc3Q7CiAKICAgICBRU3RyaW5nIHNlbGVjdGVk
VGV4dCgpIGNvbnN0OworICAgIFFTdHJpbmcgc2VsZWN0ZWRIdG1sKCkgY29uc3Q7CiAKICNpZm5k
ZWYgUVRfTk9fQUNUSU9OCiAgICAgUUFjdGlvbiAqYWN0aW9uKFdlYkFjdGlvbiBhY3Rpb24pIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAgYi9XZWJLaXQvcXQv
QXBpL3F3ZWJ2aWV3LmNwcAppbmRleCAxZjQwMGNiLi5lYzg1ZTM1IDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcApA
QCAtNTg1LDcgKzU4NSw3IEBAIFFJY29uIFFXZWJWaWV3OjppY29uKCkgY29uc3QKIAogICAgIEJ5
IGRlZmF1bHQsIHRoaXMgcHJvcGVydHkgY29udGFpbnMgYW4gZW1wdHkgc3RyaW5nLgogCi0gICAg
XHNhIGZpbmRUZXh0KCksIHNlbGVjdGlvbkNoYW5nZWQoKQorICAgIFxzYSBmaW5kVGV4dCgpLCBz
ZWxlY3Rpb25DaGFuZ2VkKCksIHNlbGVjdGVkSHRtbCgpCiAqLwogUVN0cmluZyBRV2ViVmlldzo6
c2VsZWN0ZWRUZXh0KCkgY29uc3QKIHsKQEAgLTU5NCw2ICs1OTQsMjIgQEAgUVN0cmluZyBRV2Vi
Vmlldzo6c2VsZWN0ZWRUZXh0KCkgY29uc3QKICAgICByZXR1cm4gUVN0cmluZygpOwogfQogCisv
KiEKKyAgICBcc2luY2UgNC44CisgICAgXHByb3BlcnR5IFFXZWJWaWV3OjpzZWxlY3RlZEh0bWwK
KyAgICBcYnJpZWYgdGhlIEhUTUwgY3VycmVudGx5IHNlbGVjdGVkCisKKyAgICBCeSBkZWZhdWx0
LCB0aGlzIHByb3BlcnR5IGNvbnRhaW5zIGFuIGVtcHR5IHN0cmluZy4KKworICAgIFxzYSBmaW5k
VGV4dCgpLCBzZWxlY3Rpb25DaGFuZ2VkKCksIHNlbGVjdGVkVGV4dCgpCisqLworUVN0cmluZyBR
V2ViVmlldzo6c2VsZWN0ZWRIdG1sKCkgY29uc3QKK3sKKyAgICBpZiAoZC0+cGFnZSkKKyAgICAg
ICAgcmV0dXJuIGQtPnBhZ2UtPnNlbGVjdGVkSHRtbCgpOworICAgIHJldHVybiBRU3RyaW5nKCk7
Cit9CisKICNpZm5kZWYgUVRfTk9fQUNUSU9OCiAvKiEKICAgICBSZXR1cm5zIGEgcG9pbnRlciB0
byBhIFFBY3Rpb24gdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIHNwZWNpZmllZCB3ZWIgYWN0aW9uIFxh
IGFjdGlvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuaCBiL1dlYktpdC9x
dC9BcGkvcXdlYnZpZXcuaAppbmRleCAxZDY1MWQ1Li5lZDQ3NDAzIDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvQXBpL3F3ZWJ2aWV3LmgKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5oCkBAIC03
NCw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICBRSWNvbiBpY29uKCkgY29uc3Q7CiAKICAgICBRU3Ry
aW5nIHNlbGVjdGVkVGV4dCgpIGNvbnN0OworICAgIFFTdHJpbmcgc2VsZWN0ZWRIdG1sKCkgY29u
c3Q7CiAKICNpZm5kZWYgUVRfTk9fQUNUSU9OCiAgICAgUUFjdGlvbiogcGFnZUFjdGlvbihRV2Vi
UGFnZTo6V2ViQWN0aW9uIGFjdGlvbikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAwODA1MmM1Li4zY2ExMDRhIDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMC0wOS0yNCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdA
bm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtRdF0gQWRkIHNlbGVjdGVkSHRtbCBmdW5jdGlvbiB0byBRV2ViVmlldworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUwMjgKKworICAgICAgICBB
ZGQgUVdlYlZpZXc6OnNlbGVjdGVkSHRtbCgpIGFuZCBRV2ViUGFnZTo6c2VsZWN0ZWRIdG1sKCkK
KyAgICAgICAgd2hpY2ggcmV0dXJuIHRoZSBjdXJyZW50IHNlbGVjdGlvbiByYW5nZSdzIEhUTUwg
cmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAo
UVdlYlBhZ2U6OnNlbGVjdGVkSHRtbCk6CisgICAgICAgICogQXBpL3F3ZWJwYWdlLmg6CisgICAg
ICAgICogQXBpL3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFXZWJWaWV3OjpzZWxlY3RlZEh0bWwp
OgorICAgICAgICAqIEFwaS9xd2Vidmlldy5oOgorICAgICAgICAqIHRlc3RzL3F3ZWJwYWdlL3Rz
dF9xd2VicGFnZS5jcHA6CisgICAgICAgICh0c3RfUVdlYlBhZ2U6OmN1cnNvck1vdmVtZW50cyk6
CisgICAgICAgICh0c3RfUVdlYlBhZ2U6OnRleHRTZWxlY3Rpb24pOgorICAgICAgICAodHN0X1FX
ZWJQYWdlOjpjcmFzaFRlc3RzX0xhenlJbml0aWFsaXphdGlvbk9mTWFpbkZyYW1lKToKKyAgICAg
ICAgKHRzdF9RV2ViUGFnZTo6ZmluZFRleHQpOgorCiAyMDEwLTA5LTIzICBBZGVtYXIgZGUgU291
emEgUmVpcyBKciAgPGFkZW1hci5yZWlzQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
dGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFn
ZS90c3RfcXdlYnBhZ2UuY3BwCmluZGV4IDEwYWY5NGMuLjlmNWU0MjEgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktpdC9xdC90
ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC04NzYsNiArODc2LDcgQEAgdm9pZCB0
c3RfUVdlYlBhZ2U6OmN1cnNvck1vdmVtZW50cygpCiAgICAgICAgICJnZXRTZWxlY3Rpb24oKS5h
ZGRSYW5nZShyYW5nZSk7IjsKICAgICBwYWdlLT5tYWluRnJhbWUoKS0+ZXZhbHVhdGVKYXZhU2Ny
aXB0KHNjcmlwdCk7CiAgICAgUUNPTVBBUkUocGFnZS0+c2VsZWN0ZWRUZXh0KCkudHJpbW1lZCgp
LCBRU3RyaW5nOjpmcm9tTGF0aW4xKCJUaGUgcXVpY2sgYnJvd24gZm94IikpOworICAgIFFDT01Q
QVJFKHBhZ2UtPnNlbGVjdGVkSHRtbCgpLnRyaW1tZWQoKSwgUVN0cmluZzo6ZnJvbUxhdGluMSgi
PHNwYW4gY2xhc3M9XCJBcHBsZS1zdHlsZS1zcGFuXCIgc3R5bGU9XCJib3JkZXItY29sbGFwc2U6
IHNlcGFyYXRlOyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogVGltZXM7IGZvbnQt
c3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7
IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IG9ycGhhbnM6IDI7
IHRleHQtYWxpZ246IC13ZWJraXQtYXV0bzsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zv
cm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAw
cHg7IC13ZWJraXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJvcmRl
ci12ZXJ0aWNhbC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZl
Y3Q6IG5vbmU7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgLXdlYmtpdC10ZXh0LXN0
cm9rZS13aWR0aDogMHB4OyBmb250LXNpemU6IG1lZGl1bTsgXCI+PHAgaWQ9XCJvbmVcIj5UaGUg
cXVpY2sgYnJvd24gZm94PC9wPjwvc3Bhbj4iKSk7CiAKICAgICAvLyB0aGVzZSBhY3Rpb25zIG11
c3QgZXhpc3QKICAgICBRVkVSSUZZKHBhZ2UtPmFjdGlvbihRV2ViUGFnZTo6TW92ZVRvTmV4dENo
YXIpICE9IDApOwpAQCAtMTEwMyw2ICsxMTA0LDcgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OnRleHRT
ZWxlY3Rpb24oKQogICAgICAgICAiZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UocmFuZ2UpOyI7CiAg
ICAgcGFnZS0+bWFpbkZyYW1lKCktPmV2YWx1YXRlSmF2YVNjcmlwdChzZWxlY3RTY3JpcHQpOwog
ICAgIFFDT01QQVJFKHBhZ2UtPnNlbGVjdGVkVGV4dCgpLnRyaW1tZWQoKSwgUVN0cmluZzo6ZnJv
bUxhdGluMSgiVGhlIHF1aWNrIGJyb3duIGZveCIpKTsKKyAgICBRQ09NUEFSRShwYWdlLT5zZWxl
Y3RlZEh0bWwoKS50cmltbWVkKCksIFFTdHJpbmc6OmZyb21MYXRpbjEoIjxzcGFuIGNsYXNzPVwi
QXBwbGUtc3R5bGUtc3BhblwiIHN0eWxlPVwiYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgY29s
b3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IFRpbWVzOyBmb250LXN0eWxlOiBub3JtYWw7
IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2lu
Zzogbm9ybWFsOyBsaW5lLWhlaWdodDogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiAt
d2Via2l0LWF1dG87IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0
ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LWJv
cmRlci1ob3Jpem9udGFsLXNwYWNpbmc6IDBweDsgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3Bh
Y2luZzogMHB4OyAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0OiBub25lOyAtd2Vi
a2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBw
eDsgZm9udC1zaXplOiBtZWRpdW07IFwiPjxwIGlkPVwib25lXCI+VGhlIHF1aWNrIGJyb3duIGZv
eDwvcD48L3NwYW4+IikpOwogCiAgICAgLy8gaGVyZSB0aGUgYWN0aW9ucyBhcmUgZW5hYmxlZCBh
ZnRlciBhIHNlbGVjdGlvbiBoYXMgYmVlbiBjcmVhdGVkCiAgICAgUUNPTVBBUkUocGFnZS0+YWN0
aW9uKFFXZWJQYWdlOjpTZWxlY3ROZXh0Q2hhciktPmlzRW5hYmxlZCgpLCB0cnVlKTsKQEAgLTIw
MTcsNiArMjAxOSwxMCBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6Y3Jhc2hUZXN0c19MYXp5SW5pdGlh
bGl6YXRpb25PZk1haW5GcmFtZSgpCiAgICAgfQogICAgIHsKICAgICAgICAgUVdlYlBhZ2Ugd2Vi
UGFnZTsKKyAgICAgICAgd2ViUGFnZS5zZWxlY3RlZEh0bWwoKTsKKyAgICB9CisgICAgeworICAg
ICAgICBRV2ViUGFnZSB3ZWJQYWdlOwogICAgICAgICB3ZWJQYWdlLnRyaWdnZXJBY3Rpb24oUVdl
YlBhZ2U6OkJhY2ssIHRydWUpOwogICAgIH0KICAgICB7CkBAIC0yMjEzLDE0ICsyMjE5LDE4IEBA
IHZvaWQgdHN0X1FXZWJQYWdlOjpmaW5kVGV4dCgpCiAgICAgbV92aWV3LT5zZXRIdG1sKFFTdHJp
bmcoIjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48ZGl2PmZvbyBiYXI8L2Rpdj48L2JvZHk+PC9o
dG1sPiIpKTsKICAgICBtX3BhZ2UtPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7
CiAgICAgUVZFUklGWSghbV9wYWdlLT5zZWxlY3RlZFRleHQoKS5pc0VtcHR5KCkpOworICAgIFFW
RVJJRlkoIW1fcGFnZS0+c2VsZWN0ZWRIdG1sKCkuaXNFbXB0eSgpKTsKICAgICBtX3BhZ2UtPmZp
bmRUZXh0KCIiKTsKICAgICBRVkVSSUZZKG1fcGFnZS0+c2VsZWN0ZWRUZXh0KCkuaXNFbXB0eSgp
KTsKKyAgICBRVkVSSUZZKG1fcGFnZS0+c2VsZWN0ZWRIdG1sKCkuaXNFbXB0eSgpKTsKICAgICBR
U3RyaW5nTGlzdCB3b3JkcyA9IChRU3RyaW5nTGlzdCgpIDw8ICJmb28iIDw8ICJiYXIiKTsKICAg
ICBmb3JlYWNoIChRU3RyaW5nIHN1YlN0cmluZywgd29yZHMpIHsKICAgICAgICAgbV9wYWdlLT5m
aW5kVGV4dChzdWJTdHJpbmcsIFFXZWJQYWdlOjpGaW5kV3JhcHNBcm91bmREb2N1bWVudCk7CiAg
ICAgICAgIFFDT01QQVJFKG1fcGFnZS0+c2VsZWN0ZWRUZXh0KCksIHN1YlN0cmluZyk7CisgICAg
ICAgIFFDT01QQVJFKG1fcGFnZS0+c2VsZWN0ZWRIdG1sKCksIFFTdHJpbmcoIjxzcGFuIGNsYXNz
PVwiQXBwbGUtc3R5bGUtc3BhblwiIHN0eWxlPVwiYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsg
Y29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IFRpbWVzOyBmb250LXN0eWxlOiBub3Jt
YWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3Bh
Y2luZzogbm9ybWFsOyBsaW5lLWhlaWdodDogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWdu
OiAtd2Via2l0LWF1dG87IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3
aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0
LWJvcmRlci1ob3Jpem9udGFsLXNwYWNpbmc6IDBweDsgLXdlYmtpdC1ib3JkZXItdmVydGljYWwt
c3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0OiBub25lOyAt
d2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6
IDBweDsgZm9udC1zaXplOiBtZWRpdW07IFwiPiUxPC9zcGFuPiIpLmFyZyhzdWJTdHJpbmcpKTsK
ICAgICAgICAgbV9wYWdlLT5maW5kVGV4dCgiIik7CiAgICAgICAgIFFWRVJJRlkobV9wYWdlLT5z
ZWxlY3RlZFRleHQoKS5pc0VtcHR5KCkpOworICAgICAgICBRVkVSSUZZKG1fcGFnZS0+c2VsZWN0
ZWRIdG1sKCkuaXNFbXB0eSgpKTsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="58318"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="58678"
          type_id="3"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>