A template opens faster, and while it opens there is one loader that stays until the document can be looked at.
typograph_document_opened, and goes 20
seconds after the fonts are in whatever happens, so it never pins the canvas.typograph_editor_ready handler
(editor) or typograph_setup_ready handler (viewer). A host that opens its document later, or
opens none, sees the blank document once the fonts are in, as before.#typograph that is not positioned, it lays
itself over that element's box rather than over the page; the container's own position is
left alone. See "While a template opens" in docs/Embedding.md.typograph_page_images_loaded fires again. When a host set the manifest more than once
while a document was opening, an image could stay counted as loading forever, so the event never
came and get_pending_image_count() never reached zero. The new loader waits for that event, so
without this fix it would have stayed up for its 8 seconds on every template with images.6b491dd (canvas master), from 4883077: canvas #163 (TYP-769) and canvas #184
(TYP-901), nothing else.FontFaceLoader.loadfont(), FontManager.batchload() and
add_fonts_from_urls() start every download at once; fetch_font_buffer() shares a fetch of the
same URL while it is in flight. PageElementImage.set_asset() detaches the previous picture's
handlers and drops the element's g_images_loaded entry before queuing the new one; loads find
their entry by element, and image_loaded(-1) is a no-op; has_loaded_asset() counts a load in
flight of the same url, so a re-apply does not restart it.Startupscreen (src/startupscreen.ts) replaces the old startup screen and
animatedbar.ts; its styles are injected once as typograph-loader-style and scoped on the
typograph-loader class. docs/document-lifecycle.md in canvas has the timing in full.