<?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>110911</bug_id>
          
          <creation_ts>2013-02-26 14:39:54 -0800</creation_ts>
          <short_desc>Refactor RenderSVGModelObject on top of RenderLayerModelObject</short_desc>
          <delta_ts>2022-07-15 16:07:22 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</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>
          <dependson>90738</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Florin Malita">fmalita</reporter>
          <assigned_to name="Florin Malita">fmalita</assigned_to>
          <cc>alexander.stopher</cc>
    
    <cc>bfulgham</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>esprehn</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>krit</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>842382</commentid>
    <comment_count>0</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-02-26 14:39:54 -0800</bug_when>
    <thetext>Small step towards https://bugs.webkit.org/show_bug.cgi?id=90738</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842391</commentid>
    <comment_count>1</comment_count>
      <attachid>190365</attachid>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-02-26 14:47:48 -0800</bug_when>
    <thetext>Created attachment 190365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842427</commentid>
    <comment_count>2</comment_count>
      <attachid>190365</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-02-26 15:19:44 -0800</bug_when>
    <thetext>Comment on attachment 190365
Patch

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

Looks very promising. r=me with some text enhancement requests.

&gt; Source/WebCore/ChangeLog:10
&gt; +        chain but does not enble any layer-related SVG features.

Please add a description why we do not allow the creation of layers. That we need to verify that SVG transforms still work on elements that create layers.

&gt; Source/WebCore/rendering/svg/RenderSVGModelObject.cpp:113
&gt; +    // FIXME: SVG layers not allowed yet.

Can you add a note that we do not allow it, since we do not know the influence on transforms? I think this is the main problem. When we have tests that verify that transforms work on creating a layer, we are fine. But we would need to have at least one property creating a layer for sure. Not sure where we might even benefit from. opacity?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842461</commentid>
    <comment_count>3</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-02-26 15:48:56 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; But we would need to have at least one property creating a layer for sure. Not sure where we might even benefit from. opacity?

Yes, opacity+fO are prime candidates: https://bugs.webkit.org/show_bug.cgi?id=23113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842463</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-26 15:51:26 -0800</bug_when>
    <thetext>Can we chat about this over VC or #webkit sometime?  I&apos;m not sure this is the right direction for SVG or the rendering tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842475</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-02-26 16:08:22 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Can we chat about this over VC or #webkit sometime?  I&apos;m not sure this is the right direction for SVG or the rendering tree.

To be honest, this bug report does not give the full strategy. Therefore it might be unclear where it is going.

To shorten it, we need RenderLayers in some situations to share different capabilities. These are 3D transforms, maybe filters, maybe masking and maybe opacity. To shorten it, everything that can use HW accelerated rendering or where it makes a lot of sense to share the code path with HTML. We should avoid creating layers as much as possible IMO. Transforms are heavily used in SVG. I fear that it is a general overhead to create a RenderLayer for each element.

I am happy to chat about this and I want to have everyone on board.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842479</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-26 16:11:14 -0800</bug_when>
    <thetext>Sure.  You want GraphicsLayers for all the 3d stuff.  You&apos;ll want something to participate in stacking.  But I don&apos;t think you want all the bloat and CSS-specific goop that is RenderLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815654</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-11-16 14:25:55 -0800</bug_when>
    <thetext>The RenderLayer size is smaller nowadays, all the CSS related overflow/scroll handling is moved out to RenderLayerScrollableArea, that a RenderLayer can own, similar to RenderLayerFilters (both optional).

There is still potential for optimizations. Anyhow this bug report no longer blocks 90738 - I&apos;m therefore changing the relationship between the tickets (swap depends &lt;-&gt; blocks).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1884362</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-15 16:07:22 -0700</bug_when>
    <thetext>This code has been significantly refactored since this patch was proposed. There doesn&apos;t seem to be any action we can take here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190365</attachid>
            <date>2013-02-26 14:47:48 -0800</date>
            <delta_ts>2013-02-26 15:19:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110911-20130226174402.patch</filename>
            <type>text/plain</type>
            <size>3870</size>
            <attacher name="Florin Malita">fmalita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRlNTk3NzY1NjNjMDk2
MTM0NTc1NDAzMTE2ODQ3ZWQzOTQ3NDMzNy4uYTQzMTMwZWM1ZTk1ZDAwZTE1OGMxNzFiYjNkODk2
ZGU0OTZjZDJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTI2ICBGbG9y
aW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgUmVu
ZGVyU1ZHTW9kZWxPYmplY3Qgb24gdG9wIG9mIFJlbmRlckxheWVyTW9kZWxPYmplY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlclNWR01vZGVs
T2JqZWN0IHNob3VsZCBpbmhlcml0IGZyb20gUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCB0byBmYWNp
bGl0YXRlIFNWRyBsYXllcgorICAgICAgICBzdXBwb3J0IChodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTA3MzgpLiBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGluaGVyaXRh
bmNlCisgICAgICAgIGNoYWluIGJ1dCBkb2VzIG5vdCBlbmJsZSBhbnkgbGF5ZXItcmVsYXRlZCBT
VkcgZmVhdHVyZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiByZWZhY3RvcmluZyBvbmx5Lgor
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6UmVuZGVyU1ZHTW9kZWxPYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6c3R5bGVXaWxsQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0OjpzdHlsZURpZENo
YW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgor
CiAyMDEzLTAyLTI2ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NDA0MSwgcjE0NDA0NCwgYW5kIHIxNDQw
NDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuY3BwCmluZGV4IDlhYzVjZjE5ZDNhYjJhZTQzODhjZWQwNmFjZTBjMzVmNjQ2NDU1
OWQuLmRiNDBkMjA2NjYyNDBjOGVjN2E0MDA2MWE1NDNlMzViZGVmNTdmZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3Bw
CkBAIC00Miw3ICs0Miw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR01vZGVs
T2JqZWN0OjpSZW5kZXJTVkdNb2RlbE9iamVjdChTVkdTdHlsZWRFbGVtZW50KiBub2RlKQotICAg
IDogUmVuZGVyT2JqZWN0KG5vZGUpCisgICAgOiBSZW5kZXJMYXllck1vZGVsT2JqZWN0KG5vZGUp
CiAgICAgLCBtX2hhc1NWR1NoYWRvdyhmYWxzZSkKIHsKIH0KQEAgLTk0LDcgKzk0LDcgQEAgdm9p
ZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYg
cXVhZHMsIGJvb2wqIHdhc0ZpeGUKIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OndpbGxCZURl
c3Ryb3llZCgpCiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudERlc3Ryb3llZCh0aGlz
KTsKLSAgICBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiB2b2lkIFJlbmRlclNWR01vZGVs
T2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBuZXdTdHlsZSkKQEAgLTEwNCwxMiArMTA0LDE0IEBAIHZvaWQgUmVuZGVyU1ZHTW9k
ZWxPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5CiAgICAgICAgIGlmIChuZXdTdHlsZS0+aGFzVHJhbnNmb3JtKCkpCiAgICAgICAgICAg
ICBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpOwogICAgIH0KLSAgICBSZW5kZXJPYmplY3Q6OnN0
eWxlV2lsbENoYW5nZShkaWZmLCBuZXdTdHlsZSk7CisgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dDo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSkKIHsKLSAgICBSZW5kZXJPYmplY3Q6OnN0eWxlRGlkQ2hhbmdl
KGRpZmYsIG9sZFN0eWxlKTsKKyAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENo
YW5nZShkaWZmLCBvbGRTdHlsZSk7CisgICAgLy8gRklYTUU6IFNWRyBsYXllcnMgbm90IGFsbG93
ZWQgeWV0LgorICAgIEFTU0VSVCghbGF5ZXIoKSk7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNs
aWVudFN0eWxlQ2hhbmdlZCh0aGlzLCBkaWZmLCBzdHlsZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCmluZGV4IDA1
MTFmMjc3MmZlZWI2NDZkYTFkZWJjMzc1MTc3MTgxMjA0YmEyOTkuLmUzNzA2Y2Q0MDAxZjU4YTMz
MTY0Zjc1OGJmZWFhNTI4NjZhYWFhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lm
IEVOQUJMRShTVkcpCiAKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5k
ZXJMYXllck1vZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKIAotY2xhc3MgUmVuZGVyU1ZHTW9kZWxPYmplY3Qg
OiBwdWJsaWMgUmVuZGVyT2JqZWN0IHsKK2NsYXNzIFJlbmRlclNWR01vZGVsT2JqZWN0IDogcHVi
bGljIFJlbmRlckxheWVyTW9kZWxPYmplY3QgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRl
clNWR01vZGVsT2JqZWN0KFNWR1N0eWxlZEVsZW1lbnQqKTsKIApAQCAtNzAsNiArNzAsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX2hhc1NWR1No
YWRvdzsgfQogICAgIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJvb2wgaGFzU2hhZG93KSB7IG1faGFz
U1ZHU2hhZG93ID0gaGFzU2hhZG93OyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNPcGFxdWVJblJl
Y3QoY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAK
</data>
<flag name="review"
          id="211012"
          type_id="1"
          status="+"
          setter="krit"
    />
    <flag name="commit-queue"
          id="211020"
          type_id="3"
          status="-"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>