<?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>53575</bug_id>
          
          <creation_ts>2011-02-01 22:06:21 -0800</creation_ts>
          <short_desc>[chromium] Avoid #ifdefs in code that constructs a GraphicsContext by adding a helper class.</short_desc>
          <delta_ts>2011-02-02 12:34:09 -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 Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>jamesr</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>343859</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-01 22:06:21 -0800</bug_when>
    <thetext>[chromium] Avoid #ifdefs in code that constructs a GraphicsContext by
adding a helper class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343860</commentid>
    <comment_count>1</comment_count>
      <attachid>80890</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-01 22:10:12 -0800</bug_when>
    <thetext>Created attachment 80890
v1 patch

A couple notes about this patch:

1- This introduces the src/painting directory.  I plan to add some more files to that directory shortly.  I feel like src/ has reached the point where it badly needs subdirectories!  (This is just a start.)

2- GraphicsContextBuilder allocates a LocalCurrentGraphicsContext object on the Mac, even though this is not always needed.  I&apos;m not too concerned about this.  I think the simplification to the code is worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344021</commentid>
    <comment_count>2</comment_count>
      <attachid>80890</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-02 10:05:49 -0800</bug_when>
    <thetext>Comment on attachment 80890
v1 patch

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

Looks like a good cleanup. One question that comes up in a few places.

&gt; Source/WebKit/chromium/src/WebFontImpl.cpp:98
&gt; +    GraphicsContextBuilder builder(canvas);

The new code implicitly instantiates a LocalCurrentGraphicsContext here; is there any issue with doing this?

&gt; Source/WebKit/chromium/src/WebPopupMenuImpl.cpp:168
&gt; +        m_widget-&gt;paint(&amp;GraphicsContextBuilder(canvas).context(), rect);

Same question here.

&gt; Source/WebKit/chromium/src/WebScrollbarImpl.cpp:122
&gt; +    m_scrollbar-&gt;paint(&amp;GraphicsContextBuilder(canvas).context(), rect);

And here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344027</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-02 10:12:45 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit/chromium/src/WebFontImpl.cpp:98
&gt; &gt; +    GraphicsContextBuilder builder(canvas);
&gt; 
&gt; The new code implicitly instantiates a LocalCurrentGraphicsContext here; is there any issue with doing this?

See point 2 in comment #1 :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344033</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-02 10:17:05 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; &gt; Source/WebKit/chromium/src/WebFontImpl.cpp:98
&gt; &gt; &gt; +    GraphicsContextBuilder builder(canvas);
&gt; &gt; 
&gt; &gt; The new code implicitly instantiates a LocalCurrentGraphicsContext here; is there any issue with doing this?
&gt; 
&gt; See point 2 in comment #1 :-)

Oops, sorry, I didn&apos;t see that comment at all before looking at the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344034</commentid>
    <comment_count>5</comment_count>
      <attachid>80890</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-02 10:19:52 -0800</bug_when>
    <thetext>Comment on attachment 80890
v1 patch

I think painting/GraphicsContextBuilder.h should be added to webkit/sources in Source/WebKit/chromium/WebKit.gyp; looks good otherwise. Leaving cq? so you can decide whether to make this change upon landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344040</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-02 10:26:21 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 80890 [details])
&gt; I think painting/GraphicsContextBuilder.h should be added to webkit/sources in Source/WebKit/chromium/WebKit.gyp; looks good otherwise. Leaving cq? so you can decide whether to make this change upon landing.

Oops, yes.. I have that in my tree.  I just created the patch from the wrong level :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344042</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-02 10:29:45 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 80890 [details] [details])
&gt; &gt; I think painting/GraphicsContextBuilder.h should be added to webkit/sources in Source/WebKit/chromium/WebKit.gyp; looks good otherwise. Leaving cq? so you can decide whether to make this change upon landing.
&gt; 
&gt; Oops, yes.. I have that in my tree.  I just created the patch from the wrong level :-(

No, as you pointed out to me I completely missed the fact that the gyp change was already in your patch. Sorry about that. Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344052</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-02 10:41:04 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/77383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344114</commentid>
    <comment_count>9</comment_count>
      <attachid>80890</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-02-02 12:05:24 -0800</bug_when>
    <thetext>Comment on attachment 80890
v1 patch

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

&gt; Source/WebKit/chromium/src/WebFontImpl.cpp:37
&gt; +#include &quot;painting/GraphicsContextBuilder.h&quot;

Is this pattern intentional (including by paths rather than adding new crap to the include path)? I prefer this way myself but it&apos;s unusual for WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344142</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-02 12:34:09 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 80890 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80890&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebFontImpl.cpp:37
&gt; &gt; +#include &quot;painting/GraphicsContextBuilder.h&quot;
&gt; 
&gt; Is this pattern intentional (including by paths rather than adding new crap to the include path)? I prefer this way myself but it&apos;s unusual for WebKit

Yeah, it is intentional.  I was concerned that if a header file does not appear directly in src/ that someone might waste time looking for the header in WebCore/.  The painting/ prefix gives you a clue that it is actually local to WebKit/chromium/src/.  Also, there is also some convention for this.  We include {win,mac,linux}/WebThemeEngine.h in some places.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80890</attachid>
            <date>2011-02-01 22:10:12 -0800</date>
            <delta_ts>2011-02-02 12:05:24 -0800</delta_ts>
            <desc>v1 patch</desc>
            <filename>build_1.txt</filename>
            <type>text/plain</type>
            <size>10554</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MzYzKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
NiBAQAorMjAxMS0wMi0wMSAgRGFyaW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0g
QXZvaWQgI2lmZGVmcyBpbiBjb2RlIHRoYXQgY29uc3RydWN0cyBhIEdyYXBoaWNzQ29udGV4dCBi
eQorICAgICAgICBhZGRpbmcgYSBoZWxwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzU3NQorCisgICAgICAgICogV2ViS2l0Lmd5cDoK
KyAgICAgICAgKiBzcmMvV2ViRm9udEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGb250
SW1wbDo6ZHJhd1RleHQpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnByaW50UGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6cGFpbnQpOgorICAgICAgICAqIHNyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6cGFpbnQpOgorICAgICAgICAqIHNy
Yy9XZWJTY3JvbGxiYXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2Nyb2xsYmFySW1w
bDo6cGFpbnQpOgorICAgICAgICAqIHNyYy9wYWludGluZzogQWRkZWQuCisgICAgICAgICogc3Jj
L3BhaW50aW5nL0dyYXBoaWNzQ29udGV4dEJ1aWxkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OkdyYXBoaWNzQ29udGV4dEJ1aWxkZXI6OkdyYXBoaWNzQ29udGV4dEJ1aWxkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpHcmFwaGljc0NvbnRleHRCdWlsZGVyOjpjb250ZXh0KToKKwogMjAxMS0w
Mi0wMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2
aXNpb24gNzczMzUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtp
bmcgY29weSkKQEAgLTM4NCw2ICszODQsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvTWVkaWFQ
bGF5ZXJQcml2YXRlQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL05vdGlmaWNh
dGlvblByZXNlbnRlckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Ob3RpZmljYXRpb25Q
cmVzZW50ZXJJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9wYWludGluZy9HcmFwaGlj
c0NvbnRleHRCdWlsZGVyLmgnLAogICAgICAgICAgICAgICAgICdzcmMvUGxhdGZvcm1CcmlkZ2Uu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oJywK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZvbnRJbXBsLmNwcA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZvbnRJbXBsLmNwcAkocmV2
aXNpb24gNzczMzUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGb250SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJGb250LmgiCiAj
aW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgorI2luY2x1ZGUgInBhaW50aW5nL0dy
YXBoaWNzQ29udGV4dEJ1aWxkZXIuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAi
V2ViRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIldlYkZsb2F0UmVjdC5oIgpAQCAtOTQsMTUgKzk0
LDkgQEAgdm9pZCBXZWJGb250SW1wbDo6ZHJhd1RleHQoV2ViQ2FudmFzKiBjYQogICAgIC8vIEZJ
WE1FIGhvb2sgY2FudmFzSXNPcGFxdWUgdXAgdG8gdGhlIHBsYXRmb3JtLXNwZWNpZmljIGluZGlj
YXRvcnMgZm9yCiAgICAgLy8gd2hldGhlciBzdWJwaXhlbCBBQSBjYW4gYmUgdXNlZCBmb3IgdGhp
cyBkcmF3LiBPbiBXaW5kb3dzLCB0aGlzIGlzCiAgICAgLy8gUGxhdGZvcm1Db250ZXh0U2tpYTo6
c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIuCi0jaWYgV0VCS0lUX1VTSU5HX0NHCi0gICAgR3JhcGhp
Y3NDb250ZXh0IGdjKGNhbnZhcyk7Ci0jZWxpZiBXRUJLSVRfVVNJTkdfU0tJQQotICAgIFBsYXRm
b3JtQ29udGV4dFNraWEgY29udGV4dChjYW52YXMpOwotICAgIC8vIFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0IGlzIGFjdHVhbGx5IGEgcG9pbnRlciB0byBQbGF0Zm9ybUNvbnRleHRTa2lhLgotICAg
IEdyYXBoaWNzQ29udGV4dCBnYyhyZWludGVycHJldF9jYXN0PFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0Kj4oJmNvbnRleHQpKTsKLSNlbHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSNlbmRpZgor
CisgICAgR3JhcGhpY3NDb250ZXh0QnVpbGRlciBidWlsZGVyKGNhbnZhcyk7CisgICAgR3JhcGhp
Y3NDb250ZXh0JiBnYyA9IGJ1aWxkZXIuY29udGV4dCgpOwogCiAgICAgZ2Muc2F2ZSgpOwogICAg
IGdjLnNldEZpbGxDb2xvcihjb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gNzcz
MzUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05MCw3ICs5MCw2IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgpA
QCAtMTAxLDkgKzEwMCw5IEBACiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgInBhaW50
aW5nL0dyYXBoaWNzQ29udGV4dEJ1aWxkZXIuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tp
YS5oIgogI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhbWUuaCIKQEAgLTE1NSwxMCArMTU0LDYgQEAKICNpbmNs
dWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKLSNpZiBPUyhE
QVJXSU4pCi0jaW5jbHVkZSAiTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgiCi0jZW5kaWYK
LQogI2lmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNl
bmRpZgpAQCAtMTM1MSwxNSArMTM0Niw3IEBAIGZsb2F0IFdlYkZyYW1lSW1wbDo6cHJpbnRQYWdl
KGludCBwYWdlLCAKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0jaWYgT1MoV0lORE9XUykg
fHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKFNPTEFSSVMpCi0gICAgUGxhdGZvcm1D
b250ZXh0U2tpYSBjb250ZXh0KGNhbnZhcyk7Ci0gICAgR3JhcGhpY3NDb250ZXh0IHNwb29sKCZj
b250ZXh0KTsKLSNlbGlmIE9TKERBUldJTikKLSAgICBHcmFwaGljc0NvbnRleHQgc3Bvb2woY2Fu
dmFzKTsKLSAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KCZzcG9v
bCk7Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX3ByaW50Q29udGV4dC0+c3Bvb2xQYWdlKHNwb29s
LCBwYWdlKTsKKyAgICByZXR1cm4gbV9wcmludENvbnRleHQtPnNwb29sUGFnZShHcmFwaGljc0Nv
bnRleHRCdWlsZGVyKGNhbnZhcykuY29udGV4dCgpLCBwYWdlKTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUltcGw6OnByaW50RW5kKCkKQEAgLTE5MzQsMTggKzE5MjEsNyBAQCB2b2lkIFdlYkZyYW1lSW1w
bDo6cGFpbnQoV2ViQ2FudmFzKiBjYW52CiB7CiAgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47Ci0jaWYgV0VCS0lUX1VTSU5HX0NHCi0gICAgR3JhcGhpY3NDb250ZXh0IGdj
KGNhbnZhcyk7Ci0gICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dCgm
Z2MpOwotI2VsaWYgV0VCS0lUX1VTSU5HX1NLSUEKLSAgICBQbGF0Zm9ybUNvbnRleHRTa2lhIGNv
bnRleHQoY2FudmFzKTsKLQotICAgIC8vIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0IGlzIGFjdHVh
bGx5IGEgcG9pbnRlciB0byBQbGF0Zm9ybUNvbnRleHRTa2lhCi0gICAgR3JhcGhpY3NDb250ZXh0
IGdjKHJlaW50ZXJwcmV0X2Nhc3Q8UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqPigmY29udGV4dCkp
OwotI2Vsc2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotI2VuZGlmCi0gICAgcGFpbnRXaXRoQ29u
dGV4dChnYywgcmVjdCk7CisgICAgcGFpbnRXaXRoQ29udGV4dChHcmFwaGljc0NvbnRleHRCdWls
ZGVyKGNhbnZhcykuY29udGV4dCgpLCByZWN0KTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OmNy
ZWF0ZUZyYW1lVmlldygpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1
cE1lbnVJbXBsLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBvcHVwTWVudUltcGwuY3BwCShyZXZpc2lvbiA3NzMzNSkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVsZXNzU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNvbnRl
eHRTa2lhLmgiCisjaW5jbHVkZSAicGFpbnRpbmcvR3JhcGhpY3NDb250ZXh0QnVpbGRlci5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgpAQCAtMTY0LDE4ICsx
NjQsOCBAQCB2b2lkIFdlYlBvcHVwTWVudUltcGw6OnBhaW50KFdlYkNhbnZhcyogCiAgICAgaWYg
KCFtX3dpZGdldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkg
ewotI2lmIFdFQktJVF9VU0lOR19DRwotICAgICAgICBHcmFwaGljc0NvbnRleHQgZ2MoY2FudmFz
KTsKLSNlbGlmIFdFQktJVF9VU0lOR19TS0lBCi0gICAgICAgIFBsYXRmb3JtQ29udGV4dFNraWEg
Y29udGV4dChjYW52YXMpOwotICAgICAgICAvLyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCBpcyBh
Y3R1YWxseSBhIHBvaW50ZXIgdG8gUGxhdGZvcm1Db250ZXh0U2tpYS4KLSAgICAgICAgR3JhcGhp
Y3NDb250ZXh0IGdjKHJlaW50ZXJwcmV0X2Nhc3Q8UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqPigm
Y29udGV4dCkpOwotI2Vsc2UKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSNlbmRpZgotICAg
ICAgICBtX3dpZGdldC0+cGFpbnQoJmdjLCByZWN0KTsKLSAgICB9CisgICAgaWYgKCFyZWN0Lmlz
RW1wdHkoKSkKKyAgICAgICAgbV93aWRnZXQtPnBhaW50KCZHcmFwaGljc0NvbnRleHRCdWlsZGVy
KGNhbnZhcykuY29udGV4dCgpLCByZWN0KTsKIH0KIAogdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjp0
aGVtZUNoYW5nZWQoKQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Nyb2xs
YmFySW1wbC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTY3JvbGxiYXJJbXBsLmNwcAkocmV2aXNpb24gNzczMzUpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTY3JvbGxiYXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyAr
MzMsNyBAQAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiS2V5Ym9h
cmRDb2Rlcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKKyNpbmNsdWRlICJw
YWludGluZy9HcmFwaGljc0NvbnRleHRCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgpA
QCAtMTE5LDE4ICsxMTksNyBAQCB2b2lkIFdlYlNjcm9sbGJhckltcGw6OnNjcm9sbChTY3JvbGxE
aXJlCiAKIHZvaWQgV2ViU2Nyb2xsYmFySW1wbDo6cGFpbnQoV2ViQ2FudmFzKiBjYW52YXMsIGNv
bnN0IFdlYlJlY3QmIHJlY3QpCiB7Ci0jaWYgV0VCS0lUX1VTSU5HX0NHCi0gICAgR3JhcGhpY3ND
b250ZXh0IGdjKGNhbnZhcyk7Ci0jZWxpZiBXRUJLSVRfVVNJTkdfU0tJQQotICAgIFBsYXRmb3Jt
Q29udGV4dFNraWEgY29udGV4dChjYW52YXMpOwotCi0gICAgLy8gUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQgaXMgYWN0dWFsbHkgYSBwb2ludGVyIHRvIFBsYXRmb3JtQ29udGV4dFNraWEKLSAgICBH
cmFwaGljc0NvbnRleHQgZ2MocmVpbnRlcnByZXRfY2FzdDxQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dCo+KCZjb250ZXh0KSk7Ci0jZWxzZQotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0jZW5kaWYKLQot
ICAgIG1fc2Nyb2xsYmFyLT5wYWludCgmZ2MsIHJlY3QpOworICAgIG1fc2Nyb2xsYmFyLT5wYWlu
dCgmR3JhcGhpY3NDb250ZXh0QnVpbGRlcihjYW52YXMpLmNvbnRleHQoKSwgcmVjdCk7CiB9CiAK
IGJvb2wgV2ViU2Nyb2xsYmFySW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2
ZW50JiBldmVudCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3BhaW50aW5nL0dy
YXBoaWNzQ29udGV4dEJ1aWxkZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL3BhaW50aW5nL0dyYXBoaWNzQ29udGV4dEJ1aWxkZXIuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3BhaW50aW5nL0dyYXBoaWNzQ29udGV4dEJ1
aWxkZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR3JhcGhpY3NDb250
ZXh0QnVpbGRlcl9oCisjZGVmaW5lIEdyYXBoaWNzQ29udGV4dEJ1aWxkZXJfaAorCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCisKKyNpZiBXRUJLSVRfVVNJTkdfQ0cKKyNpbmNsdWRlICJM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCIKKyNlbGlmIFdFQktJVF9VU0lOR19TS0lBCisj
aW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCisjaWYgV0VCS0lUX1VTSU5HX0NHCisKK2NsYXNzIEdyYXBoaWNzQ29udGV4dEJ1aWxk
ZXIgeworcHVibGljOgorICAgIEdyYXBoaWNzQ29udGV4dEJ1aWxkZXIoV2ViQ2FudmFzKiBjYW52
YXMpCisgICAgICAgIDogbV9ncmFwaGljc0NvbnRleHQoY2FudmFzKQorICAgICAgICAsIG1fbG9j
YWxDb250ZXh0KCZtX2dyYXBoaWNzQ29udGV4dCkgCisgICAgeworICAgIH0KKworICAgIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIHsgcmV0dXJuIG1fZ3JhcGhpY3NDb250ZXh0
OyB9CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0IG1fZ3JhcGhpY3ND
b250ZXh0OworICAgIFdlYkNvcmU6OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBtX2xvY2Fs
Q29udGV4dDsKK307CisKKyNlbGlmIFdFQktJVF9VU0lOR19TS0lBCisKK2NsYXNzIEdyYXBoaWNz
Q29udGV4dEJ1aWxkZXIgeworcHVibGljOgorICAgIEdyYXBoaWNzQ29udGV4dEJ1aWxkZXIoV2Vi
Q2FudmFzKiBjYW52YXMpCisgICAgICAgIDogbV9wbGF0Zm9ybUNvbnRleHQoY2FudmFzKQorICAg
ICAgICAsIG1fZ3JhcGhpY3NDb250ZXh0KCZtX3BsYXRmb3JtQ29udGV4dCkKKyAgICB7CisgICAg
fQorCisgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgeyByZXR1cm4gbV9n
cmFwaGljc0NvbnRleHQ7IH0KKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybUNvbnRl
eHRTa2lhIG1fcGxhdGZvcm1Db250ZXh0OworICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCBt
X2dyYXBoaWNzQ29udGV4dDsKK307CisKKyNlbHNlCisjZXJyb3IgIk5lZWQgdG8gZGVmaW5lIEdy
YXBoaWNzQ29udGV4dEJ1aWxkZXIhIgorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYK
</data>
<flag name="review"
          id="72398"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>