Closed Bug 1688596 Opened 5 years ago Closed 5 years ago

cmap loading does not need to trigger global reflow in processes where global font fallback search has not been attempted

Categories

(Core :: Layout: Text and Fonts, defect, P3)

defect

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: jfkthame, Assigned: jfkthame)

Details

Attachments

(1 file)

This is a followup to bug 1676966, where loading character maps to support global font fallback was made to happen asynchronously in the parent process, rather than blocking content-process reflow.

When the loading completes, the parent process notifies content processes that updated font information is available, triggering reflow everywhere. However, any content process that has not actually needed to do a fallback search can ignore this notification, as its layout will not be affected by the updated info. Only the process(es) that did in fact require fallback, and have temporarily reflowed without it, need to reflow now.

(A further refinement would be to track whether a pending fallback is required on a per-prescontext basis, and limit subsequent reflow to affected contexts; but the info as to the affected prescontext is not currently available to the gfx code where fallback happens, and I'm not sure it is worth adding all the plumbing to make this possible, given that the whole issue typically only comes up once per session.)

Assignee: nobody → jfkthame
Status: NEW → ASSIGNED
Pushed by jkew@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a8b9842dedcc Updating character maps only needs to cause reflow if we've previously needed to request cmap coverage to support a font fallback search. r=lsalzman
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: