<?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>237469</bug_id>
          
          <creation_ts>2022-03-04 04:29:48 -0800</creation_ts>
          <short_desc>Add hasTransformOrPerspective() helper to RenderObject</short_desc>
          <delta_ts>2022-03-07 03:20:18 -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>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="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1848254</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-04 04:29:48 -0800</bug_when>
    <thetext>RenderGeometryMap contains a duplication of the &apos;hasTransform()&apos; logic from RenderObject, just with an additional check. Avoid that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848255</commentid>
    <comment_count>1</comment_count>
      <attachid>453834</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-04 04:33:28 -0800</bug_when>
    <thetext>Created attachment 453834
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848268</commentid>
    <comment_count>2</comment_count>
      <attachid>453834</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-04 05:51:36 -0800</bug_when>
    <thetext>Comment on attachment 453834
Patch, v1

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

I wonder at what point these function implementations get long enough that we want to move them out of the class definition.  They can still be in the header if they need to be inlined or in the .cpp file if not. Probably not yet but they are certainly getting close.

&gt; Source/WebCore/ChangeLog:3
&gt; +        Add hasTransformOrPerspective() helper to RenderObject

The rationale in the change log explains in detail why we must use hasTransform here, but says nothing about why adding hasTransdormOrPerspective is good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848269</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-03-04 06:07:43 -0800</bug_when>
    <thetext>These functions should really be on the RenderElement (RenderText has no business of dealing with transforms and alikes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848662</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-07 03:05:10 -0800</bug_when>
    <thetext>(In reply to zalan from comment #3)
&gt; These functions should really be on the RenderElement (RenderText has no
&gt; business of dealing with transforms and alikes).

I agree and do address that in a follow-up patch in the LBSE downstream branch, however this only aims to remove the code duplication, postponing cleanups to later. Ok with you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848665</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-07 03:07:31 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 453834 [details]
&gt; Patch, v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453834&amp;action=review
&gt; 
&gt; I wonder at what point these function implementations get long enough that
&gt; we want to move them out of the class definition.  They can still be in the
&gt; header if they need to be inlined or in the .cpp file if not. Probably not
&gt; yet but they are certainly getting close.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Add hasTransformOrPerspective() helper to RenderObject
&gt; 
&gt; The rationale in the change log explains in detail why we must use
&gt; hasTransform here, but says nothing about why adding
&gt; hasTransdormOrPerspective is good.

Good point! In LBSE I&apos;ll have to add another condition to hasTransform(): checking for hasSVGTransform(). Prior to this patch I had to fix two call sites: the one in RenderObject.h and in RenderGeometryMap.cpp -- I want to avoid having to touch more than one place to add such a condition.

I&apos;ll amend the ChangeLog a bit to include that information. Thanks for the review, and sorry for the late reply: I was on sick leave.... More patches will follow today, cleaning up transform-box handling, individual bugs in perspective-origin, transform-box + compositing, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848670</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-07 03:19:04 -0800</bug_when>
    <thetext>Committed r290881 (248112@trunk): &lt;https://commits.webkit.org/248112@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848671</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-07 03:20:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89897134&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453834</attachid>
            <date>2022-03-04 04:33:28 -0800</date>
            <delta_ts>2022-03-05 00:09:54 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-237469-20220304043325.patch</filename>
            <type>text/plain</type>
            <size>3495</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZiNmVhMTFjMDkzNjY2
NWQyYjg5N2EyOWQ3MjFhZjA0OWE2ZmUyMS4uZmJiOGY3Y2I4Y2RmZGE4MGU4YjNlYWU5NWY2ZGVl
YTk0MDk1MzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAzLTA0ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBo
YXNUcmFuc2Zvcm1PclBlcnNwZWN0aXZlKCkgaGVscGVyIHRvIFJlbmRlck9iamVjdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NDY5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXZvaWQgZHVwbGljYXRp
bmcgdGhlIGxvZ2ljIHRvIHRlc3QgaWYgYSByZW5kZXJlciBpcyB0cmFuc2Zvcm1lZCBpbgorICAg
ICAgICBtdWx0aXBsZSBwbGFjZXMuIEN1cnJlbnRseSBSZW5kZXJHZW9tZXRyeU1hcCBkdXBsaWNh
dGVzIHRoZSBsb2dpYyB0byBhZGQKKyAgICAgICAgb25lIGV4dHJhIGNvbmRpdGlvbiwgdGhlIHBy
ZXNlbmNlIG9mIGEgJ3BlcnNwZWN0aXZlJyBwcm9wZXJ0eS4KKworICAgICAgICBXaGlsZSBJIHdh
cyBhdCBpdDogcmVtb3ZlIHRoZSByZWR1bmRhbnQgb2Zmc2V0UGF0aCgpIGNoZWNrIGluCisgICAg
ICAgIFJlbmRlck9iamVjdDo6aGFzVHJhbnNmb3JtKCksIHNpbmNlIFJlbmRlclN0eWxlOjpoYXNU
cmFuc2Zvcm0oKQorICAgICAgICBhbHJlYWR5IHJldHVybnMgdHJ1ZSBpZiBvZmZzZXRQYXRoKCkg
aXMgbm9uLW51bGwuCisKKyAgICAgICAgSW4gdGhlIGZ1dHVyZSBvbmx5IGhhc1RyYW5zZm9ybSgp
IG5lZWRzIHRvIGJlIGFkYXB0ZWQgd2hlbiBhZGRpbmcgbmV3CisgICAgICAgIGNvbmRpdGlvbnMg
dGhhdCBtYXJrIGEgcmVuZGVyZXIgYXMgdHJhbnNmb3JtZWQuCisKKyAgICAgICAgQ292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYW5NYXBC
ZXR3ZWVuUmVuZGVyZXJzVmlhTGF5ZXJzKTogVXNlIFJlbmRlck9iamVjdDo6aGFzVHJhbnNmb3Jt
T3JQZXNwZWN0aXZlKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpoYXNUcmFuc2Zvcm0gY29uc3QpOiBSZW1vdmUg
cmVkdW5kYW50IG9mZnNldFBhdGgoKSBjaGVjay4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6aGFzVHJhbnNmb3JtT3JQZXNwZWN0aXZlIGNvbnN0KTogQWRkIG5ldyBoZWxwZXIuCisK
IDIwMjItMDMtMDQgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0xCU0VdIEJlZ2luIGxheWVyLWF3YXJlIFJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR2VvbWV0cnlNYXAuY3BwCmluZGV4IDA1NTVkYWQzYzQzMTA2ODNlMGRlMjAwN2E5YTEz
MTI2ZjFmZDliM2YuLjI5NWNjOGI3YWUwZmEzMzg5NDYxNThhMmE0NTk2OGYzNWUxNDY4YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcApAQCAt
MTUwLDcgKzE1MCw3IEBAIHN0YXRpYyBib29sIGNhbk1hcEJldHdlZW5SZW5kZXJlcnNWaWFMYXll
cnMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyCiAgICAgICAgIGlmIChjdXJy
ZW50LT5pc0ZpeGVkUG9zaXRpb25lZCgpIHx8IHN0eWxlLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKGN1cnJlbnQt
Pmhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpICYmIChzdHlsZS5oYXNUcmFuc2Zvcm0oKSB8
fCBzdHlsZS50cmFuc2xhdGUoKSB8fCBzdHlsZS5zY2FsZSgpIHx8IHN0eWxlLnJvdGF0ZSgpIHx8
IHN0eWxlLmhhc1BlcnNwZWN0aXZlKCkpKQorICAgICAgICBpZiAoY3VycmVudC0+aGFzVHJhbnNm
b3JtT3JQZXNwZWN0aXZlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAog
ICAgICAgICBpZiAoY3VycmVudC0+aXNSZW5kZXJGcmFnbWVudGVkRmxvdygpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDQ1YWNhMTIyNDBmNmVhOGU2NGE3NTQ2
MjZkNzc2NTBlYTU1Y2Y1ZmEuLmFkMzE3MDk0YTYyYmExNGYwNjdkNGMzOWNkYWI5Yzc2OWU0MmNm
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTQ1Miw3ICs0
NTIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQb3RlbnRpYWxseVNjcm9sbGFibGVPdmVyZmxv
dygpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKSBjb25z
dCB7IHJldHVybiBtX2JpdGZpZWxkcy5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKTsgfSAv
LyBUcmFuc2Zvcm0sIHBlcnNwZWN0aXZlIG9yIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Qu
Ci0gICAgYm9vbCBoYXNUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBoYXNUcmFuc2Zvcm1SZWxh
dGVkUHJvcGVydHkoKSAmJiAoc3R5bGUoKS5oYXNUcmFuc2Zvcm0oKSB8fCBzdHlsZSgpLnRyYW5z
bGF0ZSgpIHx8IHN0eWxlKCkuc2NhbGUoKSB8fCBzdHlsZSgpLnJvdGF0ZSgpIHx8IHN0eWxlKCku
b2Zmc2V0UGF0aCgpKTsgfQorICAgIGJvb2wgaGFzVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4g
aGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgJiYgKHN0eWxlKCkuaGFzVHJhbnNmb3JtKCkg
fHwgc3R5bGUoKS50cmFuc2xhdGUoKSB8fCBzdHlsZSgpLnNjYWxlKCkgfHwgc3R5bGUoKS5yb3Rh
dGUoKSk7IH0KKyAgICBib29sIGhhc1RyYW5zZm9ybU9yUGVzcGVjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpICYmIChoYXNUcmFuc2Zvcm0oKSB8fCBz
dHlsZSgpLmhhc1BlcnNwZWN0aXZlKCkpOyB9CiAKICAgICBpbmxpbmUgYm9vbCBwcmVzZXJ2ZXNO
ZXdsaW5lKCkgY29uc3Q7CiAK
</data>
<flag name="review"
          id="481316"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="481407"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>