<?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>53196</bug_id>
          
          <creation_ts>2011-01-26 15:22:17 -0800</creation_ts>
          <short_desc>REGRESSION(71556,68059): queryCommandValue screws up background color at collapsed cursor</short_desc>
          <delta_ts>2011-02-08 20:17:50 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcos Almeida">marcosalmeida</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>340514</commentid>
    <comment_count>0</comment_count>
    <who name="Marcos Almeida">marcosalmeida</who>
    <bug_when>2011-01-26 15:22:17 -0800</bug_when>
    <thetext>In Chrome 8, go to the following plexode link:

http://plexode.com/eval3/#ht=%3Cdiv%20contentEditable%3Ehello%3C%2Fdiv%3E&amp;ohh=0&amp;ohj=0&amp;jt=document.execCommand(&apos;backColor&apos;%2C%20false%2C%20&apos;%23ff0000&apos;)%3B%0Adocument.queryCommandValue(&apos;backColor&apos;)%3B&amp;ojh=0&amp;ojj=0&amp;ms=100&amp;oth=0&amp;otj=0&amp;cex=0

Place the cursor at the end of &quot;hello&quot;, then click &quot;eval JS now&quot;. The newly selected background color is output at the bottom (rgb(255, 0, 0)). Then start typing. Your text will correctly have a red background.

Now try the same in Chrome 9.0.597.83. The color output at the bottom will be rgba(0, 0, 0, 0) instead, and when you start typing, the text will not have a red background.

What seems to trigger this bug is the call to queryCommandValue. If you comment that out and try it again, the text will correctly have a red background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347192</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-07 23:52:52 -0800</bug_when>
    <thetext>I can&apos;t believe we didn&apos;t have a test case for this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347230</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-08 01:06:45 -0800</bug_when>
    <thetext>Ah... there&apos;s another bug with queryCommandValue(&quot;fontSize&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347233</commentid>
    <comment_count>3</comment_count>
      <attachid>81613</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-08 01:18:32 -0800</bug_when>
    <thetext>Created attachment 81613
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347474</commentid>
    <comment_count>4</comment_count>
      <attachid>81613</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-08 10:01:09 -0800</bug_when>
    <thetext>Comment on attachment 81613
fixes the bug

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

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:208
&gt; +int legacyFontSizeFromCSSValue(Document* document, CSSPrimitiveValue* cssValue, bool shouldUseFixedFontDefaultSize, LegacyFontSizeMode mode)

I would just call that argument “value”

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:210
&gt; +    if (cssValue-&gt;primitiveType() &gt;= CSSPrimitiveValue::CSS_PX &amp;&amp; cssValue-&gt;primitiveType() &lt;= CSSPrimitiveValue::CSS_PC) {

Named function for this check taking either CSSPrimitiveValue or the primitive type would be a good way to document what it is and why it makes sense to do it.

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:219
&gt; +            return legacyFontSize;
&gt; +    } else if (CSSValueXSmall &lt;= cssValue-&gt;getIdent() &amp;&amp; cssValue-&gt;getIdent() &lt;= CSSValueWebkitXxxLarge)
&gt; +        return cssValue-&gt;getIdent() - CSSValueXSmall + 1;
&gt; +    return 0;

else here is pretty awkward. I think a return 0 inside that first if would be clearer.

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:279
&gt; +            m_applyFontSize = String::number(legacyFontSize);

m_applyFontSize is really such a terrible name. It’s a verb phrase!

&gt; Source/WebCore/editing/Editor.cpp:1052
&gt; +        if (cssValue-&gt;isPrimitiveValue())
&gt; +            value = String::number(legacyFontSizeFromCSSValue(m_frame-&gt;document(), static_cast&lt;CSSPrimitiveValue*&gt;(cssValue.get()),
&gt; +                shouldUseFixedFontDefaultSize, AlwaysUseLegacyFontSize));

Need braces here.

&gt; Source/WebCore/editing/Editor.cpp:3142
&gt; -    RefPtr&lt;EditingStyle&gt; typingStyle = m_frame-&gt;selection()-&gt;typingStyle();
&gt; -    typingStyle-&gt;removeNonEditingProperties();
&gt; +    RefPtr&lt;EditingStyle&gt; typingStyle = m_frame-&gt;selection()-&gt;typingStyle()-&gt;copy();

Change log does not make it clear why it’s better to omit the call to removeNonEditingProperties. It states that it was wrong, but not why it was bad.

Need a “why” in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347703</commentid>
    <comment_count>5</comment_count>
      <attachid>81613</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-08 14:44:03 -0800</bug_when>
    <thetext>Comment on attachment 81613
fixes the bug

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

&gt;&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:210
&gt;&gt; +    if (cssValue-&gt;primitiveType() &gt;= CSSPrimitiveValue::CSS_PX &amp;&amp; cssValue-&gt;primitiveType() &lt;= CSSPrimitiveValue::CSS_PC) {
&gt; 
&gt; Named function for this check taking either CSSPrimitiveValue or the primitive type would be a good way to document what it is and why it makes sense to do it.

isCSSValueLength?

&gt;&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:219
&gt;&gt; +    return 0;
&gt; 
&gt; else here is pretty awkward. I think a return 0 inside that first if would be clearer.

Good point.  Will do.

&gt;&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:279
&gt;&gt; +            m_applyFontSize = String::number(legacyFontSize);
&gt; 
&gt; m_applyFontSize is really such a terrible name. It’s a verb phrase!

FWIW, it&apos;s a pattern used in StyleChange class. I&apos;m planning to do an overhaul of StyleChange class once EditingStyle is deployed in ApplyStyleCommand.

&gt;&gt; Source/WebCore/editing/Editor.cpp:1052
&gt;&gt; +                shouldUseFixedFontDefaultSize, AlwaysUseLegacyFontSize));
&gt; 
&gt; Need braces here.

Oops, will do.

&gt;&gt; Source/WebCore/editing/Editor.cpp:3142
&gt;&gt; +    RefPtr&lt;EditingStyle&gt; typingStyle = m_frame-&gt;selection()-&gt;typingStyle()-&gt;copy();
&gt; 
&gt; Change log does not make it clear why it’s better to omit the call to removeNonEditingProperties. It states that it was wrong, but not why it was bad.
&gt; 
&gt; Need a “why” in the change log.

removeNonEditingProperties was removing background-color because it&apos;s not an inheritable properties.  I guess it wasn&apos;t clear from the change log.  I&apos;ll revise the change log before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347837</commentid>
    <comment_count>6</comment_count>
      <attachid>81613</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-08 17:25:01 -0800</bug_when>
    <thetext>Comment on attachment 81613
fixes the bug

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        (WebCore::Editor::selectionComputedStyle): Makes a copy before modifying typing style.
&gt; +        No longer calls legacyFontSizeFromCSSValue on the copied typing style.

Oops, now I understand your comment about removeNonEditingProperties.  This should read &quot;no longer calls removeNonEditingProperties&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347919</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-08 20:17:50 -0800</bug_when>
    <thetext>Committed r78011: &lt;http://trac.webkit.org/changeset/78011&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81613</attachid>
            <date>2011-02-08 01:18:32 -0800</date>
            <delta_ts>2011-02-08 17:25:01 -0800</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-53196-20110208011831.patch</filename>
            <type>text/plain</type>
            <size>10348</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3OTE1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDItMDggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTig3MTU1Niw2ODA1OSk6IHF1ZXJ5Q29tbWFuZFZh
bHVlIHNjcmV3cyB1cCBiYWNrZ3JvdW5kIGNvbG9yIGF0IGNvbGxhcHNlZCBjdXJzb3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTk2CisKKyAgICAg
ICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IEVkaXRvcjo6c2VsZWN0aW9uQ29tcHV0ZWRTdHlsZSdz
IG1vZGlmeWluZyB0eXBpbmcgc3R5bGUgd2l0aG91dCBtYWtpbmcgYSBjb3B5LAorICAgICAgICBh
bmQgaXRzIHJlbW92aW5nIG5vbi1pbmhlcml0YWJsZSBwcm9wZXJ0aWVzIGZyb20gdGhlIHR5cGlu
ZyBzdHlsZS4gRml4ZWQgdGhlIGJ1ZyBieSBtYWtpbmcgYSBjb3B5CisgICAgICAgIGJlZm9yZSBt
YWtpbmcgdGhlIG1vZGlmaWNhdGlvbiBhbmQgbm90IHJlbW92aW5nIG5vbi1pbmhlcml0YWJsZSBw
cm9wZXJ0aWVzLgorCisgICAgICAgIEFsc28gZml4ZWQgYSBidWcgaW4gc2VsZWN0aW9uU3RhcnRD
U1NQcm9wZXJ0eVZhbHVlIHRoYXQgaXQgZG9lc24ndCBoYW5kbGUgeHgtc21hbGwgdG8gLXdlYmtp
dC14eHgtbGFyZ2UKKyAgICAgICAgYnkgZXh0cmFjdGluZyBhIGZ1bmN0aW9uIGZyb20gU3R5bGVD
aGFuZ2U6OmV4dHJhY3RUZXh0U3R5bGVzIGFuZCBjYWxsaW5nIGl0IGluIGJvdGggZXh0cmFjdFRl
eHRTdHlsZXMKKyAgICAgICAgYW5kIHNlbGVjdGlvblN0YXJ0Q1NTUHJvcGVydHlWYWx1ZS4KKwor
ICAgICAgICBUZXN0OiBlZGl0aW5nL3N0eWxlL3F1ZXJ5LXR5cGluZy1zdHlsZS5odG1sCisKKyAg
ICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxlZ2FjeUZvbnRTaXplRnJvbUNTU1ZhbHVlKTogRXh0cmFjdGVkIGZyb20gU3R5bGVDaGFuZ2U6
OmV4dHJhY3RUZXh0U3R5bGVzLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDaGFuZ2U6OmV4dHJh
Y3RUZXh0U3R5bGVzKTogQ2FsbHMgbGVnYWN5Rm9udFNpemVGcm9tQ1NTVmFsdWUuCisgICAgICAg
ICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0aW9uU3RhcnRDU1NQcm9wZXJ0
eVZhbHVlKTogQ2FsbHMgbGVnYWN5Rm9udFNpemVGcm9tQ1NTVmFsdWUuCisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnNlbGVjdGlvbkNvbXB1dGVkU3R5bGUpOiBNYWtlcyBhIGNvcHkgYmVmb3Jl
IG1vZGlmeWluZyB0eXBpbmcgc3R5bGUuCisgICAgICAgIE5vIGxvbmdlciBjYWxscyBsZWdhY3lG
b250U2l6ZUZyb21DU1NWYWx1ZSBvbiB0aGUgY29waWVkIHR5cGluZyBzdHlsZS4KKwogMjAxMS0w
Mi0wNyAgQ3JpcyBOZWNrYXIgIDxjZG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEppYW4gTGkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmNwcAkocmV2aXNpb24gNzc5MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8Q1NTU3R5bGVEZWNsYXJh
dGlvbj4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCByZWNvbmNpbGVUZXh0RGVjb3JhdGlv
blByb3BlcnRpZXMoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qKTsKLSAgICB2b2lkIGV4dHJh
Y3RUZXh0U3R5bGVzKERvY3VtZW50KiwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBib29s
IHNob3VsZFVzZUZpeGVkRm9udERlZmF1dGxTaXplKTsKKyAgICB2b2lkIGV4dHJhY3RUZXh0U3R5
bGVzKERvY3VtZW50KiwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBib29sIHNob3VsZFVz
ZUZpeGVkRm9udERlZmF1bHRTaXplKTsKIAogICAgIFN0cmluZyBtX2Nzc1N0eWxlOwogICAgIGJv
b2wgbV9hcHBseUJvbGQ7CkBAIC0yMDUsNyArMjA1LDIxIEBAIHN0YXRpYyB2b2lkIHNldFRleHRE
ZWNvcmF0aW9uUHJvcGVydHkoQ1MKICAgICB9CiB9CiAKLXZvaWQgU3R5bGVDaGFuZ2U6OmV4dHJh
Y3RUZXh0U3R5bGVzKERvY3VtZW50KiBkb2N1bWVudCwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24qIHN0eWxlLCBib29sIHNob3VsZFVzZUZpeGVkRm9udERlZmF1dGxTaXplKQoraW50IGxlZ2Fj
eUZvbnRTaXplRnJvbUNTU1ZhbHVlKERvY3VtZW50KiBkb2N1bWVudCwgQ1NTUHJpbWl0aXZlVmFs
dWUqIGNzc1ZhbHVlLCBib29sIHNob3VsZFVzZUZpeGVkRm9udERlZmF1bHRTaXplLCBMZWdhY3lG
b250U2l6ZU1vZGUgbW9kZSkKK3sKKyAgICBpZiAoY3NzVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA+
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYICYmIGNzc1ZhbHVlLT5wcmltaXRpdmVUeXBlKCkg
PD0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQykgeworICAgICAgICBpbnQgcGl4ZWxGb250U2l6
ZSA9IGNzc1ZhbHVlLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAg
ICAgICAgaW50IGxlZ2FjeUZvbnRTaXplID0gQ1NTU3R5bGVTZWxlY3Rvcjo6bGVnYWN5Rm9udFNp
emUoZG9jdW1lbnQsIHBpeGVsRm9udFNpemUsIHNob3VsZFVzZUZpeGVkRm9udERlZmF1bHRTaXpl
KTsKKyAgICAgICAgLy8gVXNlIGxlZ2FjeSBmb250IHNpemUgb25seSBpZiBwaXhlbCB2YWx1ZSBt
YXRjaGVzIGV4YWN0bHkgdG8gdGhhdCBvZiBsZWdhY3kgZm9udCBzaXplLgorICAgICAgICBpbnQg
Y3NzUHJpbWl0aXZlRXF1aXZhbGVudCA9IGxlZ2FjeUZvbnRTaXplIC0gMSArIENTU1ZhbHVlWFNt
YWxsOworICAgICAgICBpZiAobW9kZSA9PSBBbHdheXNVc2VMZWdhY3lGb250U2l6ZSB8fCBDU1NT
dHlsZVNlbGVjdG9yOjpmb250U2l6ZUZvcktleXdvcmQoZG9jdW1lbnQsIGNzc1ByaW1pdGl2ZUVx
dWl2YWxlbnQsIHNob3VsZFVzZUZpeGVkRm9udERlZmF1bHRTaXplKSA9PSBwaXhlbEZvbnRTaXpl
KQorICAgICAgICAgICAgcmV0dXJuIGxlZ2FjeUZvbnRTaXplOworICAgIH0gZWxzZSBpZiAoQ1NT
VmFsdWVYU21hbGwgPD0gY3NzVmFsdWUtPmdldElkZW50KCkgJiYgY3NzVmFsdWUtPmdldElkZW50
KCkgPD0gQ1NTVmFsdWVXZWJraXRYeHhMYXJnZSkKKyAgICAgICAgcmV0dXJuIGNzc1ZhbHVlLT5n
ZXRJZGVudCgpIC0gQ1NTVmFsdWVYU21hbGwgKyAxOworICAgIHJldHVybiAwOworfQorCit2b2lk
IFN0eWxlQ2hhbmdlOjpleHRyYWN0VGV4dFN0eWxlcyhEb2N1bWVudCogZG9jdW1lbnQsIENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgYm9vbCBzaG91bGRVc2VGaXhlZEZvbnREZWZh
dWx0U2l6ZSkKIHsKICAgICBBU1NFUlQoc3R5bGUpOwogCkBAIC0yNjAsMjAgKzI3NCwxMCBAQCB2
b2lkIFN0eWxlQ2hhbmdlOjpleHRyYWN0VGV4dFN0eWxlcyhEb2N1CiAgICAgaWYgKFJlZlB0cjxD
U1NWYWx1ZT4gZm9udFNpemUgPSBzdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0
eUZvbnRTaXplKSkgewogICAgICAgICBpZiAoIWZvbnRTaXplLT5pc1ByaW1pdGl2ZVZhbHVlKCkp
CiAgICAgICAgICAgICBzdHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSk7
IC8vIENhbid0IG1ha2Ugc2Vuc2Ugb2YgdGhlIG51bWJlci4gUHV0IG5vIGZvbnQgc2l6ZS4KLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUgPSBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRTaXplLmdldCgpKTsKLSAgICAgICAgICAg
IGlmICh2YWx1ZS0+cHJpbWl0aXZlVHlwZSgpID49IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgg
JiYgdmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BDKSB7
Ci0gICAgICAgICAgICAgICAgaW50IHBpeGVsRm9udFNpemUgPSB2YWx1ZS0+Z2V0RmxvYXRWYWx1
ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKLSAgICAgICAgICAgICAgICBpbnQgbGVnYWN5
Rm9udFNpemUgPSBDU1NTdHlsZVNlbGVjdG9yOjpsZWdhY3lGb250U2l6ZShkb2N1bWVudCwgcGl4
ZWxGb250U2l6ZSwgc2hvdWxkVXNlRml4ZWRGb250RGVmYXV0bFNpemUpOwotICAgICAgICAgICAg
ICAgIC8vIFVzZSBsZWdhY3kgZm9udCBzaXplIG9ubHkgaWYgcGl4ZWwgdmFsdWUgbWF0Y2hlcyBl
eGFjdGx5IHRvIHRoYXQgb2YgbGVnYWN5IGZvbnQgc2l6ZS4KLSAgICAgICAgICAgICAgICBpZiAo
Q1NTU3R5bGVTZWxlY3Rvcjo6Zm9udFNpemVGb3JLZXl3b3JkKGRvY3VtZW50LCBsZWdhY3lGb250
U2l6ZSAtIDEgKyBDU1NWYWx1ZVhTbWFsbCwgc2hvdWxkVXNlRml4ZWRGb250RGVmYXV0bFNpemUp
ID09IHBpeGVsRm9udFNpemUpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9hcHBseUZvbnRTaXpl
ID0gU3RyaW5nOjpudW1iZXIobGVnYWN5Rm9udFNpemUpOwotICAgICAgICAgICAgICAgICAgICBz
dHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChDU1NWYWx1ZVhTbWFsbCA8PSB2YWx1ZS0+Z2V0
SWRlbnQoKSAmJiB2YWx1ZS0+Z2V0SWRlbnQoKSA8PSBDU1NWYWx1ZVdlYmtpdFh4eExhcmdlKSB7
Ci0gICAgICAgICAgICAgICAgbV9hcHBseUZvbnRTaXplID0gU3RyaW5nOjpudW1iZXIodmFsdWUt
PmdldElkZW50KCkgLSBDU1NWYWx1ZVhTbWFsbCArIDEpOwotICAgICAgICAgICAgICAgIHN0eWxl
LT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRTaXplKTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgZWxzZSBpZiAoaW50IGxlZ2FjeUZvbnRTaXplID0gbGVnYWN5Rm9udFNpemVGcm9tQ1NT
VmFsdWUoZG9jdW1lbnQsIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZm9udFNpemUu
Z2V0KCkpLAorICAgICAgICAgICAgICAgIHNob3VsZFVzZUZpeGVkRm9udERlZmF1bHRTaXplLCBV
c2VMZWdhY3lGb250U2l6ZU9ubHlJZlBpeGVsVmFsdWVzTWF0Y2gpKSB7CisgICAgICAgICAgICBt
X2FwcGx5Rm9udFNpemUgPSBTdHJpbmc6Om51bWJlcihsZWdhY3lGb250U2l6ZSk7CisgICAgICAg
ICAgICBzdHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSk7CiAgICAgICAg
IH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5oCShyZXZpc2lvbiA3NzkwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw4IEBAIHByaXZhdGU6
CiAgICAgSXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiBtX2lzSW5saW5lRWxlbWVudFRv
UmVtb3ZlRnVuY3Rpb247CiB9OwogCitlbnVtIExlZ2FjeUZvbnRTaXplTW9kZSB7IEFsd2F5c1Vz
ZUxlZ2FjeUZvbnRTaXplLCBVc2VMZWdhY3lGb250U2l6ZU9ubHlJZlBpeGVsVmFsdWVzTWF0Y2gg
fTsKK2ludCBsZWdhY3lGb250U2l6ZUZyb21DU1NWYWx1ZShEb2N1bWVudCosIENTU1ByaW1pdGl2
ZVZhbHVlKiwgYm9vbCBzaG91bGRVc2VGaXhlZEZvbnREZWZhdWx0U2l6ZSwgTGVnYWN5Rm9udFNp
emVNb2RlKTsKIGJvb2wgaXNTdHlsZVNwYW4oY29uc3QgTm9kZSopOwogUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1bWVudCopOwogUmVmUHRyPENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uPiBnZXRQcm9wZXJ0aWVzTm90SW4oQ1NTU3R5bGVEZWNsYXJh
dGlvbiogc3R5bGVXaXRoUmVkdW5kYW50UHJvcGVydGllcywgQ1NTU3R5bGVEZWNsYXJhdGlvbiog
YmFzZVN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDc3
OTAxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQ3LDEwICsxMDQ3LDkgQEAgU3RyaW5nIEVkaXRvcjo6c2VsZWN0aW9uU3RhcnRDU1NQ
cm9wZXJ0eQogCiAgICAgaWYgKHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlGb250U2l6ZSkgewog
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlID0gc2VsZWN0aW9uU3R5bGUtPmdldFBy
b3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlGb250U2l6ZSk7Ci0gICAgICAgIEFTU0VSVChjc3NW
YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKLSAgICAgICAgaW50IGZvbnRQaXhlbFNpemUgPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGNzc1ZhbHVlLmdldCgpKS0+Z2V0SW50VmFs
dWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0gICAgICAgIGludCBzaXplID0gQ1NTU3R5
bGVTZWxlY3Rvcjo6bGVnYWN5Rm9udFNpemUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgZm9udFBpeGVs
U2l6ZSwgc2hvdWxkVXNlRml4ZWRGb250RGVmYXVsdFNpemUpOwotICAgICAgICB2YWx1ZSA9IFN0
cmluZzo6bnVtYmVyKHNpemUpOworICAgICAgICBpZiAoY3NzVmFsdWUtPmlzUHJpbWl0aXZlVmFs
dWUoKSkKKyAgICAgICAgICAgIHZhbHVlID0gU3RyaW5nOjpudW1iZXIobGVnYWN5Rm9udFNpemVG
cm9tQ1NTVmFsdWUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPihjc3NWYWx1ZS5nZXQoKSksCisgICAgICAgICAgICAgICAgc2hvdWxkVXNlRml4ZWRG
b250RGVmYXVsdFNpemUsIEFsd2F5c1VzZUxlZ2FjeUZvbnRTaXplKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHZhbHVlOwpAQCAtMzE0MCw4ICszMTM5LDcgQEAgUGFzc1JlZlB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbj4gRQogICAgIGlmICghbV9mcmFtZS0+c2VsZWN0aW9uKCktPnR5cGlu
Z1N0eWxlKCkpCiAgICAgICAgIHJldHVybiBtdXRhYmxlU3R5bGU7CiAKLSAgICBSZWZQdHI8RWRp
dGluZ1N0eWxlPiB0eXBpbmdTdHlsZSA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT50eXBpbmdTdHls
ZSgpOwotICAgIHR5cGluZ1N0eWxlLT5yZW1vdmVOb25FZGl0aW5nUHJvcGVydGllcygpOworICAg
IFJlZlB0cjxFZGl0aW5nU3R5bGU+IHR5cGluZ1N0eWxlID0gbV9mcmFtZS0+c2VsZWN0aW9uKCkt
PnR5cGluZ1N0eWxlKCktPmNvcHkoKTsKICAgICB0eXBpbmdTdHlsZS0+cHJlcGFyZVRvQXBwbHlB
dChwb3NpdGlvbik7CiAgICAgbXV0YWJsZVN0eWxlLT5tZXJnZSh0eXBpbmdTdHlsZS0+c3R5bGUo
KSk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3OTE1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMDggIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUkVHUkVTU0lPTig3MTU1Niw2ODA1OSk6IHF1ZXJ5Q29tbWFuZFZhbHVl
IHNjcmV3cyB1cCBiYWNrZ3JvdW5kIGNvbG9yIGF0IGNvbGxhcHNlZCBjdXJzb3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTk2CisKKyAgICAgICAg
QWRkZWQgYSB0ZXN0IHRvIGVuc3VyZSBjYWxsaW5nIHF1ZXJ5Q29tbWFuZFZhbHVlIHJldHVybnMg
dGhlIGNvcnJlY3QgdmFsdWUgZm9yIGJhY2tDb2xvcgorICAgICAgICBhbmQgZm9udFNpemUgZnJv
bSB0eXBpbmcgc3R5bGUuCisKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3F1ZXJ5LXR5cGluZy1z
dHlsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvcXVlcnkt
dHlwaW5nLXN0eWxlLmh0bWw6IEFkZGVkLgorCiAyMDExLTAyLTA3ICBDcmlzIE5lY2thciAgPGNk
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmlhbiBMaS4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcXVlcnktdHlwaW5nLXN0eWxlLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3F1ZXJ5LXR5cGluZy1zdHls
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxl
L3F1ZXJ5LXR5cGluZy1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NSBAQAorVGhpcyB0ZXN0cyBxdWVyeWluZyBCYWNrQ29sb3IgYW5kIEZvbnRTaXplIG9mIHRoZSB0
eXBpbmcgc3R5bGUuIFdlYktpdCBzaG91bGQgbm90IG1vZGlmeSB0aGUgdHlwaW5nIHN0eWxlIGFu
ZCBzaG91bGQgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlcy4KKworUEFTUzogYmFja2dyb3VuZCBj
b2xvcgorUEFTUzogZm9udCBzaXplCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUv
cXVlcnktdHlwaW5nLXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zdHlsZS9xdWVyeS10eXBpbmctc3R5bGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvc3R5bGUvcXVlcnktdHlwaW5nLXN0eWxlLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdHMgcXVlcnlpbmcgQmFja0NvbG9yIGFuZCBGb250U2l6ZSBvZiB0aGUgdHlwaW5nIHN0eWxl
LiBXZWJLaXQgc2hvdWxkIG5vdCBtb2RpZnkgdGhlIHR5cGluZyBzdHlsZSBhbmQgc2hvdWxkIHJl
dHVybiB0aGUgY29ycmVjdCB2YWx1ZXMuPC9wPgorPGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRh
YmxlPjwvZGl2PgorPHByZT48c2NyaXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIHRlc3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwordGVzdC5mb2N1cygpOword2luZG93
LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHRlc3QsIDEpOworZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ2JhY2tDb2xvcicsIGZhbHNlLCAnI2ZmMDAwMCcpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J2ZvbnRTaXplJywgZmFsc2UsIDUpOwordmFyIGJhY2tDb2xvciA9IGRvY3VtZW50LnF1ZXJ5Q29t
bWFuZFZhbHVlKCdiYWNrQ29sb3InKTsKK3ZhciBmb250U2l6ZSA9IGRvY3VtZW50LnF1ZXJ5Q29t
bWFuZFZhbHVlKCdmb250U2l6ZScpOworZG9jdW1lbnQud3JpdGVsbihiYWNrQ29sb3IgPT0gJ3Jn
YigyNTUsIDAsIDApJyA/ICdQQVNTOiBiYWNrZ3JvdW5kIGNvbG9yJyA6ICJGQUlMOiBiYWNrZ3Jv
dW5kIGNvbG9yOyBleHBlY3RlZCByZ2IoMjU1LCAwLCAwKSBidXQgZ290ICIgKyBiYWNrQ29sb3Ip
OworZG9jdW1lbnQud3JpdGVsbihmb250U2l6ZSA9PSA1ID8gJ1BBU1M6IGZvbnQgc2l6ZScgOiAi
RkFJTDogZm9udCBzaXplOyBleHBlY3RlZCA1IGJ1dCBnb3QgIiArIGZvbnRTaXplKTsKKworPC9z
Y3JpcHQ+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="73224"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>