<?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>239953</bug_id>
          
          <creation_ts>2022-05-01 22:41:21 -0700</creation_ts>
          <short_desc>avoid setting different syntax but same value Colors in DrawGlyphsRecorder</short_desc>
          <delta_ts>2022-05-03 17:16:45 -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>WebKit Process Model</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>235604</dup_id>
          
          <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="Cameron McCormack (:heycam)">heycam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1865763</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2022-05-01 22:41:21 -0700</bug_when>
    <thetext>DrawGlyphsRecorder extracts the current fill and stroke colors when text is drawn.  This handles color fonts.  We extract the current colors using CGGStateGetFillColor and CGGStateGetStrokeColor, then convert the CGColors to WebCore::Colors using Color::createAndPreserveColorSpace.  The result is that we always create an out-of-line Color (i.e. one with float components), even if the original color we set came from an SRGBA&lt;uint8_t&gt; color value.  The two don&apos;t compare equal, and we spend time generating and processing state change display list items for this.

For the common case of the draw glyphs callback being called with the current fill and stroke set to the same CGColor object instances that we set in DrawGlyphsRecorder::populateInternalContext, we can set the fill/stroke using the brush values on m_originalState, and the graphics context state management code will detect these as the same and avoid generating changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865764</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-01 22:41:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/92593336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866321</commentid>
    <comment_count>2</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2022-05-03 17:16:45 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 235604 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>