<?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>219752</bug_id>
          
          <creation_ts>2020-12-10 11:46:47 -0800</creation_ts>
          <short_desc>[GPU Process] Crash when loading drinktrade.com</short_desc>
          <delta_ts>2020-12-10 14:02:03 -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>Images</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="Jon Lee">jonlee</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1713639</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2020-12-10 11:46:47 -0800</bug_when>
    <thetext>Loading drinktrade.com causes crashes, based on a ToT build on r270635.

From Wenson:
Detected over-release of a CFTypeRef 0x10c8cad80 (317 / CGImage)
Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   CoreFoundation                	0x00000001813269b0 _CFRelease.cold.3 + 92
1   CoreFoundation                	0x00000001813269a8 _CFRelease.cold.3 + 84
2   CoreFoundation                	0x0000000181230a64 _CFRelease + 1444
3   WebCore                       	0x0000000108f12efc WebCore::NativeImage::~NativeImage() + 208
4   WebCore                       	0x0000000108f909c8 WebCore::DisplayList::DisplayList::clear() + 256
5   WebKit                        	0x000000010323f478 WebKit::RemoteImageBufferProxy&lt;WebKit::ImageBufferShareableIOSurfaceBackend&gt;::flushDrawingContextAndCommit() + 192</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713640</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-10 11:47:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/72190569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713661</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 12:20:08 -0800</bug_when>
    <thetext>It seems we&apos;re just missing a retain here, since cgImage isn&apos;t a newly created object we should be taking ownership of:

diff --git a/Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp b/Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp
index 8bc00142820e..6c01c41599a6 100644
--- a/Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp
+++ b/Source/WebCore/platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp
@@ -352,7 +352,7 @@ void DrawGlyphsRecorder::recordDrawImage(CGRenderingStateRef, CGGStateRef gstate
     m_owner.translate(0, rect.size.height + 2 * rect.origin.y);
     m_owner.scale(FloatSize(1, -1));

-    auto image = NativeImage::create(adoptCF(cgImage));
+    auto image = NativeImage::create(cgImage);
     m_owner.drawNativeImage(*image, image-&gt;size(), FloatRect(rect), FloatRect {{ }, image-&gt;size()}, ImagePaintingOptions { ImageOrientation::OriginTopLeft });

     // Undo the above y-flip to restore the context.

I suspect this is probably covered by some existing layout test when GPU process is enabled...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713687</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 13:08:28 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #2)
&gt; It seems we&apos;re just missing a retain here, since cgImage isn&apos;t a newly
&gt; created object we should be taking ownership of:
&gt; 
&gt; diff --git
&gt; a/Source/WebCore/platform/graphics/displaylists/
&gt; DisplayListDrawGlyphsRecorderCoreText.cpp
&gt; b/Source/WebCore/platform/graphics/displaylists/
&gt; DisplayListDrawGlyphsRecorderCoreText.cpp
&gt; index 8bc00142820e..6c01c41599a6 100644
&gt; ---
&gt; a/Source/WebCore/platform/graphics/displaylists/
&gt; DisplayListDrawGlyphsRecorderCoreText.cpp
&gt; +++
&gt; b/Source/WebCore/platform/graphics/displaylists/
&gt; DisplayListDrawGlyphsRecorderCoreText.cpp
&gt; @@ -352,7 +352,7 @@ void
&gt; DrawGlyphsRecorder::recordDrawImage(CGRenderingStateRef, CGGStateRef gstate
&gt;      m_owner.translate(0, rect.size.height + 2 * rect.origin.y);
&gt;      m_owner.scale(FloatSize(1, -1));
&gt; 
&gt; -    auto image = NativeImage::create(adoptCF(cgImage));
&gt; +    auto image = NativeImage::create(cgImage);
&gt;      m_owner.drawNativeImage(*image, image-&gt;size(), FloatRect(rect),
&gt; FloatRect {{ }, image-&gt;size()}, ImagePaintingOptions {
&gt; ImageOrientation::OriginTopLeft });
&gt; 
&gt;      // Undo the above y-flip to restore the context.
&gt; 
&gt; I suspect this is probably covered by some existing layout test when GPU
&gt; process is enabled...

Looks like fast/text/emoji.html should have us covered here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713691</commentid>
    <comment_count>4</comment_count>
      <attachid>415919</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-10 13:19:46 -0800</bug_when>
    <thetext>Created attachment 415919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713709</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-10 14:02:02 -0800</bug_when>
    <thetext>Committed r270653: &lt;https://trac.webkit.org/changeset/270653&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415919.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415919</attachid>
            <date>2020-12-10 13:19:46 -0800</date>
            <delta_ts>2020-12-10 14:02:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219752-20201210131945.patch</filename>
            <type>text/plain</type>
            <size>2127</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZjOWMxZDFhMTFhMWRi
OGJkYzA0MWQ4MTUyOTk4OTA3MWRlNDJkZC4uNGE1ZDJkYmI5Njk1NDE3ZWE4ZDJhYWM1ZDRlODAz
OTlhMzJhYWI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEyLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vz
c10gQ3Jhc2ggd2hlbiBsb2FkaW5nIGRyaW5rdHJhZGUuY29tCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk3NTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggYW4gb3ZlcnJlbGVhc2Ugd2hlbiByZW5k
ZXJpbmcgY29sb3IgZW1vamkgZm9udHMgYnkgcmVtb3ZpbmcgYW4gZXh0cmFuZW91cyBgYWRvcHRD
RmAgYXJvdW5kIGEgYENHSW1hZ2VSZWZgLgorICAgICAgICBUaGlzIGBDR0ltYWdlUmVmYCBpcyBu
b3QgYSByZXRhaW5lZCAoKzEpIG9iamVjdCwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBp
dCBpcyByZXRhaW5lZCB3aGVuIHRyYWNraW5nIGl0IGluCisgICAgICAgIHRoZSBkaXNwbGF5IGxp
c3QncyBuYXRpdmUgaW1hZ2UgY2FjaGUuCisKKyAgICAgICAgTGF5b3V0IHRlc3Q6IGZhc3QvdGV4
dC9lbW9qaS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3REcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3SW1hZ2UpOgor
CiAyMDIwLTEyLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIERpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyIHNob3VsZCBmbHVz
aCB0aGUgZ2l2ZW4gaW1hZ2UgYnVmZmVyIGJlZm9yZSByZWNvcmRpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERy
YXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0
LmNwcAppbmRleCA4YmMwMDE0MjgyMGU5NzM5NjVlYmE1YTkzZDA2YTAzMDliODY5NWQzLi42YzAx
YzQxNTk5YTY4NGJmNDc0ODAzM2E2OWYxMDg4M2M1OTEwYmI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5
cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQu
Y3BwCkBAIC0zNTIsNyArMzUyLDcgQEAgdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERy
YXdJbWFnZShDR1JlbmRlcmluZ1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiBnc3RhdGUKICAgICBtX293
bmVyLnRyYW5zbGF0ZSgwLCByZWN0LnNpemUuaGVpZ2h0ICsgMiAqIHJlY3Qub3JpZ2luLnkpOwog
ICAgIG1fb3duZXIuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAKLSAgICBhdXRvIGltYWdlID0g
TmF0aXZlSW1hZ2U6OmNyZWF0ZShhZG9wdENGKGNnSW1hZ2UpKTsKKyAgICBhdXRvIGltYWdlID0g
TmF0aXZlSW1hZ2U6OmNyZWF0ZShjZ0ltYWdlKTsKICAgICBtX293bmVyLmRyYXdOYXRpdmVJbWFn
ZSgqaW1hZ2UsIGltYWdlLT5zaXplKCksIEZsb2F0UmVjdChyZWN0KSwgRmxvYXRSZWN0IHt7IH0s
IGltYWdlLT5zaXplKCl9LCBJbWFnZVBhaW50aW5nT3B0aW9ucyB7IEltYWdlT3JpZW50YXRpb246
Ok9yaWdpblRvcExlZnQgfSk7CiAKICAgICAvLyBVbmRvIHRoZSBhYm92ZSB5LWZsaXAgdG8gcmVz
dG9yZSB0aGUgY29udGV4dC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>