Closed
Bug 1919511
Opened 1 year ago
Closed 1 year ago
Defer building the resolved font list in gfxFontGroup until actually needed
Categories
(Core :: Layout: Text and Fonts, enhancement)
Core
Layout: Text and Fonts
Tracking
()
RESOLVED
FIXED
133 Branch
| Tracking | Status | |
|---|---|---|
| firefox133 | --- | fixed |
People
(Reporter: jfkthame, Assigned: jfkthame, NeedInfo)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
To support resolving generics according to the script of the content, we should defer building the resolved font list until we know the specific content to be rendered.
| Assignee | ||
Comment 1•1 year ago
|
||
This is preparation for splitting out separate per-script resolved font lists in gfxFontGroup.
By itself, it should not change behavior.
Updated•1 year ago
|
Assignee: nobody → jfkthame
Status: NEW → ASSIGNED
Updated•1 year ago
|
Attachment #9425777 -
Attachment description: Bug 1919511 - Defer calling gfxFontGroup::BuildFontList until we really need the resolved font instances. r=#layout → Bug 1919511 - Rename gfxFontGroup::BuildFontList to EnsureFontList, and defer calling it until we really need the resolved font instances. r=#layout
Pushed by jkew@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8c451596a34f
Rename gfxFontGroup::BuildFontList to EnsureFontList, and defer calling it until we really need the resolved font instances. r=layout-reviewers,emilio
Comment 3•1 year ago
|
||
Backed out for causing mochitest failures on gfxUserFontSet.cpp
[task 2024-10-10T12:57:46.675Z] 12:57:46 INFO - TEST-START | layout/style/test/test_unicode_range_loading.html
[task 2024-10-10T12:57:50.271Z] 12:57:50 INFO - GECKO(4300) | [4473] Assertion failure: !gfxFontUtils::IsInServoTraversal(), at /builds/worker/checkouts/gecko/gfx/thebes/gfxUserFontSet.cpp:267
[task 2024-10-10T12:57:50.285Z] 12:57:50 INFO - Initializing stack-fixing for the first stack frame, this may take a while...
[task 2024-10-10T12:58:02.605Z] 12:58:02 INFO - GECKO(4300) | #01: gfxUserFontFamily::~gfxUserFontFamily() [gfx/thebes/gfxUserFontSet.cpp:265]
[task 2024-10-10T12:58:02.605Z] 12:58:02 INFO - GECKO(4300) | #02: gfxFontGroup::FamilyFace::~FamilyFace() [gfx/thebes/gfxTextRun.h:1211]
[task 2024-10-10T12:58:02.606Z] 12:58:02 INFO - GECKO(4300) | #03: nsTArray_Impl<gfxFontGroup::FamilyFace, nsTArrayInfallibleAllocator>::Clear() [xpcom/ds/nsTArray.h:1940]
[task 2024-10-10T12:58:02.606Z] 12:58:02 INFO - GECKO(4300) | #04: gfxFontGroup::EnsureFontList() [gfx/thebes/gfxTextRun.cpp:1907]
[task 2024-10-10T12:58:02.612Z] 12:58:02 INFO - GECKO(4300) | #05: gfxFontGroup::GetFirstValidFont(unsigned int, mozilla::StyleGenericFontFamily*, bool*) [gfx/thebes/gfxTextRun.cpp:2249]
[task 2024-10-10T12:58:02.612Z] 12:58:02 INFO - GECKO(4300) | #06: gfxFontGroup::GetMetricsForCSSUnits(nsFontMetrics::FontOrientation) [gfx/thebes/gfxTextRun.cpp:3812]
[task 2024-10-10T12:58:02.613Z] 12:58:02 INFO - GECKO(4300) | #07: Gecko_GetFontMetrics [layout/style/GeckoBindings.cpp:0]
[task 2024-10-10T12:58:02.613Z] 12:58:02 INFO - GECKO(4300) | #08: style::gecko::media_queries::Device::query_font_metrics [servo/components/style/gecko/media_queries.rs:253]
[task 2024-10-10T12:58:02.613Z] 12:58:02 INFO - GECKO(4300) | #09: style::values::computed::Context::query_font_metrics [servo/components/style/values/computed/mod.rs:400]
[task 2024-10-10T12:58:02.613Z] 12:58:02 INFO - GECKO(4300) | #10: style::values::specified::length::FontRelativeLength::to_computed_value [servo/components/style/values/specified/length.rs:212]
[task 2024-10-10T12:58:02.613Z] 12:58:02 INFO - GECKO(4300) | #11: style::values::computed::length::<impl style::values::specified::length::NoCalcLength>::to_computed_value_with_base_size [servo/components/style/values/computed/length.rs:0]
[task 2024-10-10T12:58:02.614Z] 12:58:02 INFO - GECKO(4300) | #12: style::values::computed::length_percentage::<impl style::values::computed::ToComputedValue for style::values::specified::length::LengthPercentage>::to_computed_value [servo/components/style/values/computed/length_percentage.rs:588]
[task 2024-10-10T12:58:02.614Z] 12:58:02 INFO - GECKO(4300) | #13: <style::values::generics::length::GenericSize<LengthPercent> as style::values::computed::ToComputedValue>::to_computed_value [servo/components/style/values/generics/length.rs:149]
[task 2024-10-10T12:58:02.614Z] 12:58:02 INFO - GECKO(4300) | #14: style::properties::generated::longhands::width::cascade_property [s3:gecko-generated-sources:ba586dd423f3e23b12a9100845790f9f86aedb8a37dec7bfdf1a59fc43a0f29ee3c9117afd3e7d1c4886d1916e35561130eec68e3738a1ae51be22144bbb5988/x86_64-unknown-linux-gnu/debug/build/style-645a5b1c52f9b7fb/out/properties.rs::36088]
[task 2024-10-10T12:58:02.614Z] 12:58:02 INFO - GECKO(4300) | #15: style::properties::cascade::Cascade::apply_one_longhand [servo/components/style/properties/cascade.rs:935]
[task 2024-10-10T12:58:02.614Z] 12:58:02 INFO - GECKO(4300) | #16: style::properties::cascade::Cascade::apply_non_prioritary_properties [servo/components/style/properties/cascade.rs:835]
[task 2024-10-10T12:58:02.615Z] 12:58:02 INFO - GECKO(4300) | #17: style::properties::cascade::apply_declarations [servo/components/style/properties/cascade.rs:373]
[task 2024-10-10T12:58:02.615Z] 12:58:02 INFO - GECKO(4300) | #18: style::stylist::Stylist::cascade_style_and_visited [servo/components/style/stylist.rs:1271]
[task 2024-10-10T12:58:02.615Z] 12:58:02 INFO - GECKO(4300) | #19: style::style_resolver::StyleResolverForElement<E>::cascade_style_and_visited [servo/components/style/style_resolver.rs:382]
[task 2024-10-10T12:58:02.616Z] 12:58:02 INFO - GECKO(4300) | #20: style::style_resolver::StyleResolverForElement<E>::cascade_primary_style [servo/components/style/style_resolver.rs:276]
[task 2024-10-10T12:58:02.616Z] 12:58:02 INFO - GECKO(4300) | #21: style::style_resolver::StyleResolverForElement<E>::resolve_primary_style [servo/components/style/style_resolver.rs:242]
[task 2024-10-10T12:58:02.616Z] 12:58:02 INFO - GECKO(4300) | #22: style::style_resolver::StyleResolverForElement<E>::resolve_style [servo/components/style/style_resolver.rs:297]
[task 2024-10-10T12:58:02.616Z] 12:58:02 INFO - GECKO(4300) | #23: style::traversal::compute_style [servo/components/style/traversal.rs:619]
[task 2024-10-10T12:58:02.616Z] 12:58:02 INFO - GECKO(4300) | #24: style::parallel::style_trees [servo/components/style/parallel.rs:158]
[task 2024-10-10T12:58:02.616Z] 12:58:02 INFO - GECKO(4300) | #25: style::driver::traverse_dom::{{closure}} [servo/components/style/driver.rs:138]
[task 2024-10-10T12:58:02.617Z] 12:58:02 INFO - GECKO(4300) | #26: style::driver::traverse_dom [servo/components/style/driver.rs:127]
[task 2024-10-10T12:58:02.617Z] 12:58:02 INFO - GECKO(4300) | #27: geckoservo::glue::traverse_subtree [servo/ports/geckolib/glue.rs:0]
[task 2024-10-10T12:58:02.617Z] 12:58:02 INFO - GECKO(4300) | #28: Servo_TraverseSubtree [third_party/rust/log/src/macros.rs:49]
[task 2024-10-10T12:58:02.617Z] 12:58:02 INFO - GECKO(4300) | #29: mozilla::ServoStyleSet::StyleDocument(mozilla::ServoTraversalFlags) [layout/style/ServoStyleSet.cpp:0]
[task 2024-10-10T12:58:02.617Z] 12:58:02 INFO - GECKO(4300) | #30: mozilla::RestyleManager::DoProcessPendingRestyles(mozilla::ServoTraversalFlags) [layout/base/RestyleManager.cpp:3238]
[task 2024-10-10T12:58:02.618Z] 12:58:02 INFO - GECKO(4300) | #31: mozilla::RestyleManager::ProcessPendingRestyles() [layout/base/RestyleManager.cpp:3372]
[task 2024-10-10T12:58:02.618Z] 12:58:02 INFO - GECKO(4300) | #32: mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush) [layout/base/PresShell.cpp:4385]
[task 2024-10-10T12:58:02.618Z] 12:58:02 INFO - GECKO(4300) | #33: mozilla::dom::Document::FlushPendingNotifications(mozilla::ChangesToFlush) [dom/base/Document.cpp:11276]
[task 2024-10-10T12:58:02.618Z] 12:58:02 INFO - GECKO(4300) | #34: nsIContent::GetPrimaryFrame(mozilla::FlushType) [dom/base/Element.cpp:272]
[task 2024-10-10T12:58:02.618Z] 12:58:02 INFO - GECKO(4300) | #35: nsGenericHTMLElement::GetOffsetRect(mozilla::gfx::IntRectTyped<mozilla::CSSPixel>&) [dom/html/nsGenericHTMLElement.cpp:405]
[task 2024-10-10T12:58:02.619Z] 12:58:02 INFO - GECKO(4300) | #36: mozilla::dom::HTMLElement_Binding::get_offsetHeight(JSContext*, JS::Handle<JSObject*>, void*, JSJitGetterCallArgs) [s3:gecko-generated-sources:961b5e4e21e065058755ff12a76e011ac4d5a39027e21a9cd4ed7faee4ad9a76aed7066969e6780d4e74c954212261380ee197320949cae10e9412d2722994da/dom/bindings/HTMLElementBinding.cpp::1787]
[task 2024-10-10T12:58:02.619Z] 12:58:02 INFO - GECKO(4300) | #37: ??? (???:???)
[task 2024-10-10T12:58:02.620Z] 12:58:02 INFO - GECKO(4300) | [WARN minidump_writer::linux::sections::mappings] failed to get build id for mapping: Could not read value from module
[task 2024-10-10T12:58:02.620Z] 12:58:02 INFO - GECKO(4300) | [WARN minidump_writer::linux::sections::mappings] failed to get build id for mapping: Could not read value from module
[task 2024-10-10T12:58:02.621Z] 12:58:02 INFO - GECKO(4300) | [WARN minidump_writer::linux::sections::mappings] failed to get build id for mapping: Could not read value from module
[task 2024-10-10T12:58:02.622Z] 12:58:02 INFO - GECKO(4300) | [WARN minidump_writer::linux::sections::mappings] failed to get build id for mapping: Could not read value from module
[task 2024-10-10T12:58:02.622Z] 12:58:02 INFO - GECKO(4300) | [WARN minidump_writer::linux::sections::mappings] failed to get build id for mapping: Could not read value from module
<...>
[task 2024-10-10T12:58:02.664Z] 12:58:02 INFO - GECKO(4300) | [WARN minidump_writer::linux::sections::mappings] failed to get build id for mapping: Could not read value from module
[task 2024-10-10T12:58:02.665Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, IPC I/O Parent] WARNING: [1.1]: Dropping message '<null>'; no connection to unknown peer EB93C3D28360FCAA.43C9E2B94E6B3E95: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:364
[task 2024-10-10T12:58:02.665Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: IPC message 'PBrowser::Msg_StopIMEStateManagement' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:557
[task 2024-10-10T12:58:02.665Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, ProcessHangMon] WARNING: IPC message 'PProcessHangMonitor::Msg_RequestContentJSInterrupt' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:557
[task 2024-10-10T12:58:02.666Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: IPC message 'PBrowser::Msg_Destroy' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:557
[task 2024-10-10T12:58:02.666Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: No build ID mismatch: file /builds/worker/checkouts/gecko/dom/base/nsFrameLoader.cpp:3719
[task 2024-10-10T12:58:02.667Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: IPC message 'PContent::Msg_GetLayoutHistoryState' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:557
[task 2024-10-10T12:58:02.668Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: IPC message 'PContent::Msg_CommitBrowsingContextTransaction' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:557
[task 2024-10-10T12:58:02.668Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: IPC message 'PContent::Msg_DiscardBrowsingContext' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:557
[task 2024-10-10T12:58:02.668Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: '!sTextInputHandlingWidget', file /builds/worker/checkouts/gecko/dom/events/IMEStateManager.cpp:1235
[task 2024-10-10T12:58:02.669Z] 12:58:02 ERROR - GECKO(4300) | A content process crashed and MOZ_CRASHREPORTER_SHUTDOWN is set, shutting down
[task 2024-10-10T12:58:02.669Z] 12:58:02 INFO - GECKO(4300) | 1728565070701 Marionette TRACE Received observer notification quit-application
[task 2024-10-10T12:58:02.670Z] 12:58:02 INFO - GECKO(4300) | 1728565070702 Marionette INFO Stopped listening on port 2828
[task 2024-10-10T12:58:02.670Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: IPC message 'PContent::Msg_DiscardBrowsingContext' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:557
[task 2024-10-10T12:58:02.671Z] 12:58:02 INFO - GECKO(4300) | 1728565070706 Marionette DEBUG Marionette stopped listening
[task 2024-10-10T12:58:02.671Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: '!mCancelable', file /builds/worker/checkouts/gecko/image/imgRequestProxy.cpp:418
[task 2024-10-10T12:58:02.672Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: '!mCancelable', file /builds/worker/checkouts/gecko/image/imgRequestProxy.cpp:418
<...>
[task 2024-10-10T12:58:02.697Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: NS_ENSURE_TRUE(!!svc) failed: file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:506
[task 2024-10-10T12:58:02.697Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x8000FFFF (NS_ERROR_UNEXPECTED): file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:406
[task 2024-10-10T12:58:02.698Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: NS_ENSURE_TRUE(!!svc) failed: file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:506
[task 2024-10-10T12:58:02.698Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x8000FFFF (NS_ERROR_UNEXPECTED): file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:406
[task 2024-10-10T12:58:02.699Z] 12:58:02 INFO - GECKO(4300) | [Parent 4300, Main Thread] WARNING: NS_ENSURE_TRUE(!!svc) failed: file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:506
[task 2024-10-10T12:58:02.699Z] 12:58:02 INFO - TEST-INFO | Main app process: exit 245
[task 2024-10-10T12:58:02.699Z] 12:58:02 INFO - Buffered messages logged at 12:57:47
[task 2024-10-10T12:58:02.700Z] 12:58:02 INFO - TEST-PASS | layout/style/test/test_unicode_range_loading.html | unicode-range load tests using font loading api - unicode-range load tests using font loading api: Elided 100 passes or known failures.
Flags: needinfo?(jfkthame)
Pushed by jkew@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/91b942b7f477
Rename gfxFontGroup::BuildFontList to EnsureFontList, and defer calling it until we really need the resolved font instances. r=layout-reviewers,emilio
Comment 5•1 year ago
|
||
| bugherder | ||
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
status-firefox133:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 133 Branch
You need to log in
before you can comment on or make changes to this bug.
Description
•