<?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>118272</bug_id>
          
          <creation_ts>2013-07-01 18:52:56 -0700</creation_ts>
          <short_desc>Take document height into account when determining when it is considered visually non-empy</short_desc>
          <delta_ts>2013-07-04 08:52:45 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905206</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-01 18:52:56 -0700</bug_when>
    <thetext>The current visually non-empy mechanism takes into account only the amount of contents in renderers. Add a simple layout dependency so that we don&apos;t consider page non-empty until the document height exceed a (low) height threshold (or the load completes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905211</commentid>
    <comment_count>1</comment_count>
      <attachid>205852</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-01 19:02:28 -0700</bug_when>
    <thetext>Created attachment 205852
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905541</commentid>
    <comment_count>2</comment_count>
      <attachid>205852</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-07-02 12:20:46 -0700</bug_when>
    <thetext>Comment on attachment 205852
patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        The current visually non-empy mechanism takes into account only the amount of contents in renderers. 

Typo: &quot;empy&quot;.

&gt; Source/WebCore/page/FrameView.cpp:3721
&gt; +bool FrameView::determingIsVisuallyNonEmpty() const

Typo here: “determing”. Confusing function name, “determine is visually non empty”. Maybe “isNowVisuallyNonEmpty” or “isVisuallyNonEmptyUncached”. Neither of those is good, but I don’t like “determine is” better. Maybe “qualifiesAsVisuallyNonEmpty” is a good one.

&gt; Source/WebCore/page/FrameView.cpp:3742
&gt; +    // No content yet.
&gt; +    Element* documentElement = m_frame-&gt;document()-&gt;documentElement();
&gt; +    if (!documentElement || !documentElement-&gt;renderer())
&gt; +        return false;
&gt; +    // Ensure that we always get marked visually non-empty eventually.
&gt; +    if (!m_frame-&gt;document()-&gt;parsing() &amp;&amp; m_frame-&gt;loader()-&gt;stateMachine()-&gt;committedFirstRealDocumentLoad())
&gt; +        return true;
&gt; +    // Require the document to grow a bit.
&gt; +    static const int documentHeightThreshold = 200;
&gt; +    if (documentElement-&gt;renderBox()-&gt;layoutOverflowRect().pixelSnappedHeight() &lt; documentHeightThreshold)
&gt; +        return false;
&gt; +    // The first few hundred characters rarely contain the interesting content of the page.
&gt; +    static const unsigned visualCharacterThreshold = 200;
&gt; +    if (m_visuallyNonEmptyCharacterCount &gt; visualCharacterThreshold)
&gt; +        return true;
&gt; +    // Use a threshold value to prevent very small amounts of visible content from triggering didFirstVisuallyNonEmptyLayout
&gt; +    static const unsigned visualPixelThreshold = 32 * 32;
&gt; +    if (m_visuallyNonEmptyPixelCount &gt; visualPixelThreshold)
&gt; +        return true;
&gt; +    return false;

I think the way this alternates false with true early returns makes it tricky to read the logic. Maybe an extra blank line to paragraph the sections could make it clearer?

&gt; Source/WebCore/rendering/RenderHTMLCanvas.cpp:50
&gt;  {
&gt; -    view()-&gt;frameView()-&gt;setIsVisuallyNonEmpty();
&gt; +    // Actual size is not known yet, report the default intrinsic size.
&gt; +    view()-&gt;frameView()-&gt;incrementVisuallyNonEmptyPixelCount(roundedIntSize(intrinsicSize()));
&gt; +
&gt;  }

Excess blank line being added here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906195</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-04 08:52:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/152401</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205852</attachid>
            <date>2013-07-01 19:02:28 -0700</date>
            <delta_ts>2013-07-02 12:20:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>visually-non-empty.patch</filename>
            <type>text/plain</type>
            <size>8125</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjI3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEzLTA3LTAxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBUYWtlIGRvY3VtZW50IGhlaWdo
dCBpbnRvIGFjY291bnQgd2hlbiBkZXRlcm1pbmluZyB3aGVuIGl0IGlzIGNvbnNpZGVyZWQgdmlz
dWFsbHkgbm9uLWVtcHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExODI3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBjdXJyZW50IHZpc3VhbGx5IG5vbi1lbXB5IG1lY2hhbmlzbSB0YWtlcyBpbnRv
IGFjY291bnQgb25seSB0aGUgYW1vdW50IG9mIGNvbnRlbnRzIGluIHJlbmRlcmVycy4gCisgICAg
ICAgIEFkZCBhIHNpbXBsZSBsYXlvdXQgZGVwZW5kZW5jeSBzbyB0aGF0IHdlIGRvbid0IGNvbnNp
ZGVyIHBhZ2Ugbm9uLWVtcHR5IHVudGlsIHRoZSBkb2N1bWVudCBoZWlnaHQKKyAgICAgICAgZXhj
ZWVkIGEgKGxvdykgaGVpZ2h0IHRocmVzaG9sZCAob3IgdGhlIGxvYWQgY29tcGxldGVzKS4KKwor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6CisgICAgICAgIAorICAgICAgICAgICAgRG9uJ3Qg
c2VuZCBsYXlvdXQgY2FsbGJhY2tzIHVudGlsIHdlIGhhdmUgYWN0dWFsbHkgc29tZSBjb250ZW50
LgorCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRldGVybWluZ0lzVmlzdWFsbHlOb25F
bXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUlzVmlzdWFsbHlOb25F
bXB0eSk6CisgICAgICAgIAorICAgICAgICAgICAgRmFjdG9yIGludG8gZnVuY3Rpb25zLgorCisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UmVuZGVyRW1iZWRkZWRPYmplY3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckhUTUxDYW52YXM6OlJlbmRlckhUTUxDYW52YXMpOgorICAgICAgICAKKyAgICAgICAgICAg
ICBUaGUgc2l6ZSBpcyBub3Qga25vd24gYnV0IHRoZSBlc3RpbWF0ZSBwcm92aWRlZCBoZXJlIGlz
IGFsd2F5cyBiaWdnZXIgdGhhbiB0aGUgdGhyZXNob2xkIHNvCisgICAgICAgICAgICAgdGhlIGZ1
bmN0aW9uYWxpdHkgaXMgdW5jaGFuZ2VkLgorCiAyMDEzLTA3LTAxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5kb3dzIHNob3VsZCBiZSBp
bmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBwbGF0Zm9ybXMgdGhhdCBjYW4gdXNlIE9wZW5HTCBFUyAy
LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTUyMjE4KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzM2
LDcgKzI3MzYsNyBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpCiAg
ICAgaWYgKHBhZ2UpCiAgICAgICAgIHJlcXVlc3RlZE1pbGVzdG9uZXMgPSBwYWdlLT5yZXF1ZXN0
ZWRMYXlvdXRNaWxlc3RvbmVzKCk7CiAKLSAgICBpZiAobV9uZXN0ZWRMYXlvdXRDb3VudCA8PSAx
KSB7CisgICAgaWYgKG1fbmVzdGVkTGF5b3V0Q291bnQgPD0gMSAmJiBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5kb2N1bWVudEVsZW1lbnQoKSkgewogICAgICAgICBpZiAobV9maXJzdExheW91dENhbGxi
YWNrUGVuZGluZykgewogICAgICAgICAgICAgbV9maXJzdExheW91dENhbGxiYWNrUGVuZGluZyA9
IGZhbHNlOwogICAgICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmRpZEZpcnN0TGF5b3V0KCk7
CkBAIC0yNzQ3LDEwICsyNzQ3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0
VGFza3MoKQogICAgICAgICAgICAgICAgICAgICBwYWdlLT5zdGFydENvdW50aW5nUmVsZXZhbnRS
ZXBhaW50ZWRPYmplY3RzKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLQotICAgICAgICAv
LyBFbnN1cmUgdGhhdCB3ZSBhbHdheXMgc2VuZCB0aGlzIGV2ZW50dWFsbHkuCi0gICAgICAgIGlm
ICghbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2luZygpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5z
dGF0ZU1hY2hpbmUoKS0+Y29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkpCi0gICAgICAg
ICAgICBtX2lzVmlzdWFsbHlOb25FbXB0eSA9IHRydWU7CisgICAgICAgIHVwZGF0ZUlzVmlzdWFs
bHlOb25FbXB0eSgpOwogCiAgICAgICAgIC8vIElmIHRoZSBsYXlvdXQgd2FzIGRvbmUgd2l0aCBw
ZW5kaW5nIHNoZWV0cywgd2UgYXJlIG5vdCBpbiBmYWN0IHZpc3VhbGx5IG5vbi1lbXB0eSB5ZXQu
CiAgICAgICAgIGlmIChtX2lzVmlzdWFsbHlOb25FbXB0eSAmJiAhbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+ZGlkTGF5b3V0V2l0aFBlbmRpbmdTdHlsZXNoZWV0cygpICYmIG1fZmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Q2FsbGJhY2tQZW5kaW5nKSB7CkBAIC0zNzIxLDggKzM3MTgsMzYgQEAgdm9p
ZCBGcmFtZVZpZXc6OnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZQogICAgIEFTU0VSVCghbmVlZHNM
YXlvdXQoKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRJc1Zpc3VhbGx5Tm9uRW1wdHkoKQor
Ym9vbCBGcmFtZVZpZXc6OmRldGVybWluZ0lzVmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0Cit7Cisg
ICAgLy8gTm8gY29udGVudCB5ZXQuCisgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50ID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudEVs
ZW1lbnQgfHwgIWRvY3VtZW50RWxlbWVudC0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIC8vIEVuc3VyZSB0aGF0IHdlIGFsd2F5cyBnZXQgbWFya2VkIHZpc3VhbGx5IG5v
bi1lbXB0eSBldmVudHVhbGx5LgorICAgIGlmICghbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2lu
ZygpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5zdGF0ZU1hY2hpbmUoKS0+Y29tbWl0dGVkRmlyc3RS
ZWFsRG9jdW1lbnRMb2FkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIC8vIFJlcXVpcmUg
dGhlIGRvY3VtZW50IHRvIGdyb3cgYSBiaXQuCisgICAgc3RhdGljIGNvbnN0IGludCBkb2N1bWVu
dEhlaWdodFRocmVzaG9sZCA9IDIwMDsKKyAgICBpZiAoZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJC
b3goKS0+bGF5b3V0T3ZlcmZsb3dSZWN0KCkucGl4ZWxTbmFwcGVkSGVpZ2h0KCkgPCBkb2N1bWVu
dEhlaWdodFRocmVzaG9sZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRoZSBmaXJz
dCBmZXcgaHVuZHJlZCBjaGFyYWN0ZXJzIHJhcmVseSBjb250YWluIHRoZSBpbnRlcmVzdGluZyBj
b250ZW50IG9mIHRoZSBwYWdlLgorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2aXN1YWxDaGFy
YWN0ZXJUaHJlc2hvbGQgPSAyMDA7CisgICAgaWYgKG1fdmlzdWFsbHlOb25FbXB0eUNoYXJhY3Rl
ckNvdW50ID4gdmlzdWFsQ2hhcmFjdGVyVGhyZXNob2xkKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAvLyBVc2UgYSB0aHJlc2hvbGQgdmFsdWUgdG8gcHJldmVudCB2ZXJ5IHNtYWxsIGFtb3Vu
dHMgb2YgdmlzaWJsZSBjb250ZW50IGZyb20gdHJpZ2dlcmluZyBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXQKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmlzdWFsUGl4ZWxUaHJlc2hv
bGQgPSAzMiAqIDMyOworICAgIGlmIChtX3Zpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50ID4gdmlz
dWFsUGl4ZWxUaHJlc2hvbGQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUlzVmlzdWFsbHlOb25FbXB0eSgpCiB7Cisg
ICAgaWYgKG1faXNWaXN1YWxseU5vbkVtcHR5KQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFk
ZXRlcm1pbmdJc1Zpc3VhbGx5Tm9uRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1faXNW
aXN1YWxseU5vbkVtcHR5ID0gdHJ1ZTsKICAgICBhZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFnZSgp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiAxNTIyMTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTMsNyAr
MjkzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5Q2hh
cmFjdGVyQ291bnQodW5zaWduZWQpOwogICAgIHZvaWQgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0
eVBpeGVsQ291bnQoY29uc3QgSW50U2l6ZSYpOwotICAgIHZvaWQgc2V0SXNWaXN1YWxseU5vbkVt
cHR5KCk7CisgICAgdm9pZCB1cGRhdGVJc1Zpc3VhbGx5Tm9uRW1wdHkoKTsKICAgICBib29sIGlz
VmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaXN1YWxseU5vbkVtcHR5OyB9
CiAgICAgdm9pZCBlbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUm
IG1pblNpemUsIGNvbnN0IEludFNpemUmIG1heFNpemUpOwogCkBAIC01MzAsNiArNTMwLDggQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgZG9MYXlvdXRXaXRoRnJhbWVGbGF0dGVuaW5nKGJvb2wgYWxs
b3dTdWJ0cmVlKTsKIAorICAgIGJvb2wgZGV0ZXJtaW5nSXNWaXN1YWxseU5vbkVtcHR5KCkgY29u
c3Q7CisKICAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUoKSBjb25zdDsK
ICAgICB2b2lkIG5vdGlmeVdpZGdldHNJbkFsbEZyYW1lcyhXaWRnZXROb3RpZmljYXRpb24pOwog
ICAgIHZvaWQgcmVtb3ZlRnJvbUFYT2JqZWN0Q2FjaGUoKTsKQEAgLTY2MSwxMSArNjYzLDcgQEAg
aW5saW5lIHZvaWQgRnJhbWVWaWV3OjppbmNyZW1lbnRWaXN1YWxseQogICAgIGlmIChtX2lzVmlz
dWFsbHlOb25FbXB0eSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fdmlzdWFsbHlOb25FbXB0eUNo
YXJhY3RlckNvdW50ICs9IGNvdW50OwotICAgIC8vIFVzZSBhIHRocmVzaG9sZCB2YWx1ZSB0byBw
cmV2ZW50IHZlcnkgc21hbGwgYW1vdW50cyBvZiB2aXNpYmxlIGNvbnRlbnQgZnJvbSB0cmlnZ2Vy
aW5nIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dC4KLSAgICAvLyBUaGUgZmlyc3QgZmV3
IGh1bmRyZWQgY2hhcmFjdGVycyByYXJlbHkgY29udGFpbiB0aGUgaW50ZXJlc3RpbmcgY29udGVu
dCBvZiB0aGUgcGFnZS4KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmlzdWFsQ2hhcmFjdGVy
VGhyZXNob2xkID0gMjAwOwotICAgIGlmIChtX3Zpc3VhbGx5Tm9uRW1wdHlDaGFyYWN0ZXJDb3Vu
dCA+IHZpc3VhbENoYXJhY3RlclRocmVzaG9sZCkKLSAgICAgICAgc2V0SXNWaXN1YWxseU5vbkVt
cHR5KCk7CisgICAgdXBkYXRlSXNWaXN1YWxseU5vbkVtcHR5KCk7CiB9CiAKIGlubGluZSB2b2lk
IEZyYW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoY29uc3QgSW50
U2l6ZSYgc2l6ZSkKQEAgLTY3MywxMCArNjcxLDcgQEAgaW5saW5lIHZvaWQgRnJhbWVWaWV3Ojpp
bmNyZW1lbnRWaXN1YWxseQogICAgIGlmIChtX2lzVmlzdWFsbHlOb25FbXB0eSkKICAgICAgICAg
cmV0dXJuOwogICAgIG1fdmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQgKz0gc2l6ZS53aWR0aCgp
ICogc2l6ZS5oZWlnaHQoKTsKLSAgICAvLyBVc2UgYSB0aHJlc2hvbGQgdmFsdWUgdG8gcHJldmVu
dCB2ZXJ5IHNtYWxsIGFtb3VudHMgb2YgdmlzaWJsZSBjb250ZW50IGZyb20gdHJpZ2dlcmluZyBk
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
dmlzdWFsUGl4ZWxUaHJlc2hvbGQgPSAzMiAqIDMyOwotICAgIGlmIChtX3Zpc3VhbGx5Tm9uRW1w
dHlQaXhlbENvdW50ID4gdmlzdWFsUGl4ZWxUaHJlc2hvbGQpCi0gICAgICAgIHNldElzVmlzdWFs
bHlOb25FbXB0eSgpOworICAgIHVwZGF0ZUlzVmlzdWFsbHlOb25FbXB0eSgpOwogfQogCiBpbmxp
bmUgaW50IEZyYW1lVmlldzo6bWFwRnJvbUxheW91dFRvQ1NTVW5pdHMoTGF5b3V0VW5pdCB2YWx1
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcAkocmV2aXNpb24gMTUyMjE4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsOCBA
QCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UmVuZGVyRW1iZWRkZWRPYmplCiAgICAgLCBtX3VuYXZh
aWxhYmxlUGx1Z2luSW5kaWNhdG9ySXNQcmVzc2VkKGZhbHNlKQogICAgICwgbV9tb3VzZURvd25X
YXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKGZhbHNlKQogewotICAgIHZpZXcoKS0+ZnJh
bWVWaWV3KCktPnNldElzVmlzdWFsbHlOb25FbXB0eSgpOworICAgIC8vIEFjdHVhbCBzaXplIGlz
IG5vdCBrbm93biB5ZXQsIHJlcG9ydCB0aGUgZGVmYXVsdCBpbnRyaW5zaWMgc2l6ZS4KKyAgICB2
aWV3KCktPmZyYW1lVmlldygpLT5pbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudChy
b3VuZGVkSW50U2l6ZShpbnRyaW5zaWNTaXplKCkpKTsKIH0KIAogUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6On5SZW5kZXJFbWJlZGRlZE9iamVjdCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySFRNTENhbnZhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCShyZXZpc2lvbiAxNTIyMTgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIFJlbmRlckhUTUxDYW52
YXM6OlJlbmRlckhUTUxDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBS
ZW5kZXJSZXBsYWNlZChlbGVtZW50LCBlbGVtZW50LT5zaXplKCkpCiB7Ci0gICAgdmlldygpLT5m
cmFtZVZpZXcoKS0+c2V0SXNWaXN1YWxseU5vbkVtcHR5KCk7CisgICAgLy8gQWN0dWFsIHNpemUg
aXMgbm90IGtub3duIHlldCwgcmVwb3J0IHRoZSBkZWZhdWx0IGludHJpbnNpYyBzaXplLgorICAg
IHZpZXcoKS0+ZnJhbWVWaWV3KCktPmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50
KHJvdW5kZWRJbnRTaXplKGludHJpbnNpY1NpemUoKSkpOworCiB9CiAKIGJvb2wgUmVuZGVySFRN
TENhbnZhczo6cmVxdWlyZXNMYXllcigpIGNvbnN0Cg==
</data>
<flag name="review"
          id="227468"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>