<?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>170986</bug_id>
          
          <creation_ts>2017-04-19 03:57:10 -0700</creation_ts>
          <short_desc>Avoid repaints for invisible animations on tumblr.com/search/aww</short_desc>
          <delta_ts>2017-04-20 11:41:26 -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>WebKit 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>InRadar</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>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1298649</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-04-19 03:57:10 -0700</bug_when>
    <thetext>There is an invisible CSS animation here that is triggering unnecessary repaints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298650</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-04-19 03:57:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/28644580&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298651</commentid>
    <comment_count>2</comment_count>
      <attachid>307475</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-04-19 04:05:15 -0700</bug_when>
    <thetext>Created attachment 307475
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298655</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-04-19 05:18:19 -0700</bug_when>
    <thetext>https://trac.webkit.org/r215507</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299163</commentid>
    <comment_count>4</comment_count>
      <attachid>307475</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-04-20 10:44:11 -0700</bug_when>
    <thetext>Comment on attachment 307475
patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:852
&gt; +    if (style.visibility() == HIDDEN)
&gt; +        return false;
&gt; +    if (!style.opacity())
&gt; +        return false;
&gt; +    return true;

Not at all critical but I would have liked writing it like this:

    return style.visibility() != HIDDEN &amp;&amp; style.opacity();

And probably explicitly specified inline too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299191</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-04-20 11:41:26 -0700</bug_when>
    <thetext>&gt; Not at all critical but I would have liked writing it like this:

That approach turns incomprehensible when additional and more complex conditions are added (we have plenty of examples). Granted, two conditions is not there yet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307475</attachid>
            <date>2017-04-19 04:05:15 -0700</date>
            <delta_ts>2017-04-19 04:55:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>avoid-invisible-repaints.patch</filename>
            <type>text/plain</type>
            <size>4078</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTUwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTE5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCByZXBhaW50cyBmb3Ig
aW52aXNpYmxlIGFuaW1hdGlvbnMgb24gdHVtYmxyLmNvbS9zZWFyY2gvYXd3CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA5ODYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI4NjQ0NTgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcmVwYWludC9tdXRhdGUtbm9uLXZpc2libGUuaHRt
bAorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcXVpcmVzUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5
bGU6OmNoYW5nZVJlcXVpcmVzUmVwYWludCk6CisKKyAgICAgICAgICAgIElmIGFuIGVsZW1lbnQg
aXMgaW52aXNpYmxlIGl0IGRvZXMgbm90IHJlcXVpcmUgcmVwYWludCBldmVuIGlmIHNvbWV0aGlu
ZyBlbHNlIGNoYW5nZXMuCisKIDIwMTctMDQtMTkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIE5vbi1tdXhhYmxlIEdQVXMgc2hvdWxkbid0IGFsbG93IG9mZmxpbmUg
cmVuZGVyaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAJKHJldmlzaW9uIDIxNTQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0Myw4ICs4NDMsMjAg
QEAgYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXllclJlcAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorc3RhdGljIGJvb2wgcmVxdWlyZXNQYWludGluZyhjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCit7CisgICAgaWYgKHN0eWxlLnZpc2liaWxpdHkoKSA9PSBISURERU4pCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXN0eWxlLm9wYWNpdHkoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIFJlbmRlclN0eWxlOjpjaGFu
Z2VSZXF1aXJlc1JlcGFpbnQoY29uc3QgUmVuZGVyU3R5bGUmIG90aGVyLCB1bnNpZ25lZCYgY2hh
bmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdAogeworICAgIGlmICghcmVxdWly
ZXNQYWludGluZygqdGhpcykgJiYgIXJlcXVpcmVzUGFpbnRpbmcob3RoZXIpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKICAgICBpZiAobV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5ICE9IG90
aGVyLm1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eQogICAgICAgICB8fCBtX2luaGVyaXRlZEZs
YWdzLnByaW50Q29sb3JBZGp1c3QgIT0gb3RoZXIubV9pbmhlcml0ZWRGbGFncy5wcmludENvbG9y
QWRqdXN0CiAgICAgICAgIHx8IG1faW5oZXJpdGVkRmxhZ3MuaW5zaWRlTGluayAhPSBvdGhlci5t
X2luaGVyaXRlZEZsYWdzLmluc2lkZUxpbmsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTQ1NykKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDE3LTA0LTE5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBB
dm9pZCByZXBhaW50cyBmb3IgaW52aXNpYmxlIGFuaW1hdGlvbnMgb24gdHVtYmxyLmNvbS9zZWFy
Y2gvYXd3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzA5ODYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NjQ0NTgwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZXBhaW50L211dGF0ZS1u
b24tdmlzaWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVwYWludC9t
dXRhdGUtbm9uLXZpc2libGUuaHRtbDogQWRkZWQuCisKIDIwMTctMDQtMTggIE1hbnVlbCBSZWdv
IENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW3NlbGVjdG9yczRdIElt
cG9ydCBXM0MgVGVzdCBTdWl0ZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L211dGF0
ZS1ub24tdmlzaWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L211dGF0ZS1ub24tdmlzaWJsZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L211dGF0ZS1ub24tdmlzaWJsZS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBACitUZXN0IHJlcGFpbnQtb25seSBzdHls
ZSBjaGFuZ2VzIGluIG5vbi12aXNpYmxlIGVsZW1lbnRzIGRvbid0IHRyaWdnZXIgcmVwYWludHMu
CisocmVwYWludCByZWN0cworICAocmVjdCAxMCAyOCAxMDAgMTAwKQorICAocmVjdCAxMCAyOCAx
MDAgMTAwKQorICAocmVjdCAxMCAyOCAxMDAgMTAwKQorKQorCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvbXV0YXRlLW5vbi12aXNpYmxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L211dGF0ZS1ub24tdmlzaWJsZS5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tdXRhdGUtbm9uLXZpc2libGUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CisuY29udGFpbmVyIHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgYm9yZGVy
OiAycHggc29saWQgYmxhY2s7Cit9CisudGVzdCB7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhl
aWdodDogMTAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorLnZpc2liaWxpdHkt
aGlkZGVuIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9Cisub3BhY2l0eS16ZXJvIHsgb3BhY2l0eTog
MDsgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKKyAgICB2
YXIgdGVzdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdCIpOworICAgIGZvciAo
bGV0IHRlc3Qgb2YgdGVzdHMpCisgICAgICAgIHRlc3Quc3R5bGUuYmFja2dyb3VuZENvbG9yID0g
ImdyZWVuIjsKK30KKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blJlcGFp
bnRUZXN0KCkiPgorCitUZXN0IHJlcGFpbnQtb25seSBzdHlsZSBjaGFuZ2VzIGluIG5vbi12aXNp
YmxlIGVsZW1lbnRzIGRvbid0IHRyaWdnZXIgcmVwYWludHMuCisKKzxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+Cis8ZGl2IGNsYXNzPSJ0ZXN0IiA+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0ZXN0IHZpc2li
aWxpdHktaGlkZGVuIj48L2Rpdj4KKzxkaXYgY2xhc3M9InRlc3Qgb3BhY2l0eS16ZXJvIj48L2Rp
dj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="328754"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>