Closed Bug 1892913 Opened 2 months ago Closed 2 months ago

Update Cairo to version 1.18.0

Categories

(Core :: Graphics, task)

task

Tracking

()

RESOLVED FIXED
127 Branch
Tracking Status
firefox127 --- fixed

People

(Reporter: jwatt, Assigned: jfkthame)

References

Details

Attachments

(25 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

The fixes that we need to resolve bug 1729276 are in Cairo 1.18.0 and later.

See Also: → 739096

You should also get this fix that is was committed to cairo master after 1.18.0 was released.

0fce59ff8d250a59ccc86894b8f1459070bf6ddb

See https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/521 for details.

Thanks for pointing that out.

Assigning to jfkthame since he's actively looking at this.

Assignee: nobody → jfkthame

These are either integrated into upstream now, or the code has evolved
sufficiently that they're obsolete and will be replaced by substantially
new versions.

Wholesale replacement of files in gfx/cairo/cairo with contents of the 1.18.0 release tarball,
omitting subdirectories that are not part of the core library build.

(This will not build as-is; the following patches will fix things up for Gecko integration.)

Release 1.18.0 no longer has HAVE_CONFIG_H guards around these #includes,
so let's just create an empty file as we don't rely on this to set anything.

Without this, we end up leaking the DataSourceSurfaceRawData that backs the
quartz image surface created during surface-pattern rendering, because the
imageSurface pointer holds a strong reference and then gets cleared without
releasing it.

To fix the Gecko build on Windows, as this is a mingw-ism that isn't
supported or needed.

create_similar now checks for a quartz surface and uses CGLayer internally,
so we don't need a separate API here.

The first parameter to cairo_dwrite_font_face_create_for_dwrite_fontface was
unused anyhow, so this is just API cleanup.

The dwrite rendering mode APIs were mozilla additions, but if we're only using
cairo to print, there's probably no reason to try and propagate the dwrite
options used for screen rendering, so we don't need to go to the effort of
maintaining those extra APIs.

Attachment #9400032 - Attachment description: Bug 1892913 - patch 0 - Delete obsolete cairo patch files. r=#gfx-reviewers → Bug 1892913 - patch 24 - Delete obsolete cairo patch files. r=#gfx-reviewers
Pushed by jkew@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3cdfb39376b7
patch 1 - Update cairo source to 1.18.0 r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/98d555121e60
patch 2 - Cherry-pick https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/521. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/868a0fbdfe29
patch 3 - Provide a dummy config.h file for the cairo build. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/bb67f9c54a25
patch 4 - Avoid redefinition of cairo_public. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/7eb0f2727239
patch 5 - Apply 01-xlib-xrender-private.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/9263a1eece7e
patch 6 - Apply 02-cplusplus-no-register.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/dcf06dfaff0c
patch 7 - Apply 03-expose-lcd-filter.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/972a07ec6164
patch 8 - Update and apply 04-subpixel-aa-api.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/0f1e5fd02d74
patch 9 - Apply 05-ft-font-synth-flags-api.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/be5946552b9b
patch 10 - Update and apply 06-shared-ft-face.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/ed92f32bdcc8
patch 11 - Apply 07-ft-variations-runtime-check.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/c66b662e1662
patch 12 - Update and apply 09-quartz-surface-additions.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/e50af191a62f
patch 13 - Apply 11-quartz-surface-tags.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/1ba70fd62ef3
patch 14 - Add cairo-quartz-surface named-destination support from bug 1722300 patch 3. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/7c5dbb5ceaa9
patch 15 - Apply 17-active-edges-crash.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/f59cb75b6ae0
patch 16 - Apply 18-quartz-granular-ifdefs.patch r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/51b400f880e3
patch 17 - Add missing #include FT_COLOR_H to cairo-ft-font.c r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/61ef06598b0c
patch 18 - Cairo fixes for iOS build. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/436aba91e198
patch 19 - Don't prematurely clear cairo_quartz_image_surface_t's imageSurface field, it still needs to hold a reference to the wrapped image surface. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/94b71d1c7806
patch 20 - Add #ifdef guards around mingw-specific __CRT_UUID_DECL lines in d2d1-extra.h r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/a572320a5708
patch 21 - Add cairo_win32_surface APIs wanted for gecko. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/8fe914e33e27
patch 22 - Remove usage of cairo_quartz_surface_create_cg_layer, as cairo_surface_create_similar should do the right thing. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/b6d5bd3946c6
patch 23 - Update gecko callsites to build against current cairo-win32 APIs. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/2175f8e4c8c9
patch 24 - Delete obsolete cairo patch files. r=gfx-reviewers,jrmuizel

Looks like the README wasn't updated to account for the library update and changes in patches?

Flags: needinfo?(jfkthame)

Oops, you're right, thanks -- I'll post a followup.

Flags: needinfo?(jfkthame)
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 127 Branch

A patch has been attached on this bug, which was already closed. Filing a separate bug will ensure better tracking. If this was not by mistake and further action is needed, please alert the appropriate party. (Or: if the patch doesn't change behavior -- e.g. landing a test case, or fixing a typo -- then feel free to disregard this message)

Pushed by jkew@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f9f45a8924ef
followup - update list of patches in gfx/cairo/README. r=lsalzman DONTBUILD
Regressions: 1896173
Regressions: 1896892
Regressions: 1897561
Regressions: 1900028
Regressions: 1901043
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: