<?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>188945</bug_id>
          
          <creation_ts>2018-08-25 06:57:30 -0700</creation_ts>
          <short_desc>Shrink size of HTMLCollection</short_desc>
          <delta_ts>2018-08-30 03:17:42 -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>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1453675</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-25 06:57:30 -0700</bug_when>
    <thetext>Shrink size of HTMLCollection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453676</commentid>
    <comment_count>1</comment_count>
      <attachid>348077</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-25 06:57:53 -0700</bug_when>
    <thetext>Created attachment 348077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453698</commentid>
    <comment_count>2</comment_count>
      <attachid>348077</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-25 17:18:59 -0700</bug_when>
    <thetext>Comment on attachment 348077
Patch

I wish there is something we could do to make sure people don’t accidentally undo this when making other changes in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453830</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-27 01:52:02 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 348077 [details]
&gt; Patch
&gt; 
&gt; I wish there is something we could do to make sure people don’t accidentally
&gt; undo this when making other changes in the future.

I think the only reasonable way we have right now is adding `static_assert(sizeof(HTMLCollection) &lt;= 40, &quot;&quot;)`.
But I don&apos;t think it is good since the size of HTMLCollection is only the part of the problem.
The rather important thing is HTMLCollection had many paddings.
The size can increase due to reasonable reasons. But increasing paddings should be avoided.
So it should be caught.

The ideal way would be having a test using dump-class-layout that ensures the padding rate is small in some important classes.
But this is not achievable without tooling and test infrastructure support.

So, in the meantime, I&apos;ll land this patch as is.

Simon, do you have any idea about introducing such a test (described above) into WebKit tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453831</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-27 01:52:46 -0700</bug_when>
    <thetext>Committed r235357: &lt;https://trac.webkit.org/changeset/235357&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453832</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-27 01:53:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/43746564&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453912</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-27 09:28:38 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #3)
&gt; (In reply to Darin Adler from comment #2)
&gt; &gt; Comment on attachment 348077 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; Simon, do you have any idea about introducing such a test (described above)
&gt; into WebKit tests?

We do have testing of dump-class-layout in webkitpy tests, so it wouldn&apos;t be hard to rig some up somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453918</commentid>
    <comment_count>7</comment_count>
      <attachid>348077</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-27 09:32:16 -0700</bug_when>
    <thetext>Comment on attachment 348077
Patch

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

&gt; Source/WebCore/html/HTMLCollection.h:107
&gt;      const unsigned m_collectionType : 5;
&gt;      const unsigned m_invalidationType : 4;

Would be nice to see comments say what the enum type is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455190</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-30 03:17:42 -0700</bug_when>
    <thetext>Committed r235497: &lt;https://trac.webkit.org/changeset/235497&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348077</attachid>
            <date>2018-08-25 06:57:53 -0700</date>
            <delta_ts>2018-08-25 17:18:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188945-20180825225752.patch</filename>
            <type>text/plain</type>
            <size>2640</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyYzk0MmE4Y2I3ZTQz
ZDVkZmM0NmQ1Y2JiMTg5NWU3OWI0YjE3Ni4uZjZjYTg4MjdmODIwMzQ1MWRmNWM3ZTVlMDRlZmU3
ODM2NTIwZWE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA4LTI1ICBZdXN1
a2UgU3V6dWtpICA8eXVzdWtlc3V6dWtpQHNsb3dzdGFydC5vcmc+CisKKyAgICAgICAgU2hyaW5r
IHNpemUgb2YgSFRNTENvbGxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4ODk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNocmluayB0aGUgc2l6ZSBvZiBIVE1MQ29sbGVjdGlvbiBieSByZW9y
ZGVyaW5nIG1lbWJlcnMuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29sbGVj
dGlvbjo6SFRNTENvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTENvbGxlY3Rpb24uaDoK
KwogMjAxOC0wOC0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBDbGljayBldmVudCBmcm9tIGNsaWNrKCkgaXMgbm90IGNvbXBvc2VkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4IDVmNTk2YTMyZWM2MjQyMTNmYTdhYjQ0MmEyMWI4
Njg2MmFmN2FhY2YuLjNlMzRhMzZkMmI4ZjRhYWNiMzQzMjA3YmUwNzc4MDZkMWE5NDg0NDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCkBAIC0xMDgsMTAgKzEwOCwxMCBA
QCBzdGF0aWMgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGVFeGNsdWRp
bmdJZEFuZE5hbWVBdHRyaWJ1dGVzKENvbAogfQogCiBIVE1MQ29sbGVjdGlvbjo6SFRNTENvbGxl
Y3Rpb24oQ29udGFpbmVyTm9kZSYgb3duZXJOb2RlLCBDb2xsZWN0aW9uVHlwZSB0eXBlKQotICAg
IDogbV9vd25lck5vZGUob3duZXJOb2RlKQotICAgICwgbV9jb2xsZWN0aW9uVHlwZSh0eXBlKQor
ICAgIDogbV9jb2xsZWN0aW9uVHlwZSh0eXBlKQogICAgICwgbV9pbnZhbGlkYXRpb25UeXBlKGlu
dmFsaWRhdGlvblR5cGVFeGNsdWRpbmdJZEFuZE5hbWVBdHRyaWJ1dGVzKHR5cGUpKQogICAgICwg
bV9yb290VHlwZShyb290VHlwZUZyb21Db2xsZWN0aW9uVHlwZSh0eXBlKSkKKyAgICAsIG1fb3du
ZXJOb2RlKG93bmVyTm9kZSkKIHsKICAgICBBU1NFUlQobV9yb290VHlwZSA9PSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4ocm9vdFR5cGVGcm9tQ29sbGVjdGlvblR5cGUodHlwZSkpKTsKICAgICBBU1NF
UlQobV9pbnZhbGlkYXRpb25UeXBlID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbnZhbGlkYXRp
b25UeXBlRXhjbHVkaW5nSWRBbmROYW1lQXR0cmlidXRlcyh0eXBlKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ29sbGVjdGlvbi5oCmluZGV4IDc1YWM0MzQ1MTgwNzY2MDlhNDFhZjJhNGFmNzUxNzEw
ZDRlYjZjZDAuLjQxZDc3ZmM3NzI0NmQ2MmNhZGI0NTQxMjY4MWViODcyZDBiMTJhNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKQEAgLTEwMSwxNCArMTAxLDE1IEBAIGNsYXNz
IEhUTUxDb2xsZWN0aW9uIDogcHVibGljIE5vZGVMaXN0IHsKICAgICBlbnVtIFJvb3RUeXBlIHsg
SXNSb290ZWRBdE5vZGUsIElzUm9vdGVkQXREb2N1bWVudCB9OwogICAgIHN0YXRpYyBSb290VHlw
ZSByb290VHlwZUZyb21Db2xsZWN0aW9uVHlwZShDb2xsZWN0aW9uVHlwZSk7CiAKLSAgICBSZWY8
Q29udGFpbmVyTm9kZT4gbV9vd25lck5vZGU7Ci0KLSAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0
cjxDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU+IG1fbmFtZWRFbGVtZW50Q2FjaGU7CiAgICAg
bXV0YWJsZSBMb2NrIG1fbmFtZWRFbGVtZW50Q2FjaGVBc3NpZ25tZW50TG9jazsKLSAgICAKKwog
ICAgIGNvbnN0IHVuc2lnbmVkIG1fY29sbGVjdGlvblR5cGUgOiA1OwogICAgIGNvbnN0IHVuc2ln
bmVkIG1faW52YWxpZGF0aW9uVHlwZSA6IDQ7CiAgICAgY29uc3QgdW5zaWduZWQgbV9yb290VHlw
ZSA6IDE7CisKKyAgICBSZWY8Q29udGFpbmVyTm9kZT4gbV9vd25lck5vZGU7CisKKyAgICBtdXRh
YmxlIHN0ZDo6dW5pcXVlX3B0cjxDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU+IG1fbmFtZWRF
bGVtZW50Q2FjaGU7CiB9OwogCiBpbmxpbmUgQ29udGFpbmVyTm9kZSYgSFRNTENvbGxlY3Rpb246
OnJvb3ROb2RlKCkgY29uc3QK
</data>
<flag name="review"
          id="365768"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>