Nightly Build / build (push) Successful in 7m59s
On iOS the file viewer showed only the first page of a PDF, with no way to scroll to the rest — the document had to be downloaded and opened in another app. The cause was not ours: WebKit refuses to mount its PDF viewer inside an <iframe>/<object>/<embed> and paints a static first-page thumbnail instead. That hits Safari on iOS and every WKWebView, so the native shell too. The full viewer only exists for a top-level navigation. The desktop browsers do mount a viewer, but each mounts its own — Chrome's toolbar, Safari's page-index sidebar — so the same document also looked different on every machine. Both are answered by drawing the pages ourselves. New <pdf-view> (web/components/shared/pdf-view.js) renders a continuous scroll of canvas pages on the vendored pdf.js, with a zoom control and a page counter, and replaces the iframe for both native .pdf files and server-compiled LaTeX. Three properties are load-bearing: - pdf.js is imported lazily (~450 KB + a 1.2 MB worker), so a session that never opens a PDF never pays for it. - Canvases are created and destroyed as pages scroll. iOS caps the total canvas backing store a page may hold and silently blanks canvases past it, so an eager render would come out empty on exactly the platform this was written for. Off-screen pages keep only a correctly-sized box, which is also what keeps the scrollbar honest. - The text layer (selection, in-page find) is best-effort: it is transparent DOM over the pixels, so its failures are swallowed rather than surfaced. Vendored from pdfjs-dist 6.2.108: pdf.min.mjs, pdf.worker.min.mjs, the standard-font data (needed by PDFs that reference Helvetica/Times without embedding them) and the .textLayer block of pdf_viewer.css. CJK cmaps are deliberately left out. pdf.js 6 needs Safari/iOS 17.4+. Verified in headless Chromium against both a synthetic 12-page PDF using non-embedded Helvetica and a real 14-page paper with embedded fonts and figures: all pages present, last page renders after scrolling, page 1 released off-screen, text layer populated, zoom re-renders at the new scale, no JS errors.
103 lines
4.3 KiB
Plaintext
103 lines
4.3 KiB
Plaintext
Digitized data copyright (c) 2010 Google Corporation
|
|
with Reserved Font Arimo, Tinos and Cousine.
|
|
Copyright (c) 2012 Red Hat, Inc.
|
|
with Reserved Font Name Liberation.
|
|
|
|
This Font Software is licensed under the SIL Open Font License,
|
|
Version 1.1.
|
|
|
|
This license is copied below, and is also available with a FAQ at:
|
|
http://scripts.sil.org/OFL
|
|
|
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
|
|
PREAMBLE The goals of the Open Font License (OFL) are to stimulate
|
|
worldwide development of collaborative font projects, to support the font
|
|
creation efforts of academic and linguistic communities, and to provide
|
|
a free and open framework in which fonts may be shared and improved in
|
|
partnership with others.
|
|
|
|
The OFL allows the licensed fonts to be used, studied, modified and
|
|
redistributed freely as long as they are not sold by themselves.
|
|
The fonts, including any derivative works, can be bundled, embedded,
|
|
redistributed and/or sold with any software provided that any reserved
|
|
names are not used by derivative works. The fonts and derivatives,
|
|
however, cannot be released under any other type of license. The
|
|
requirement for fonts to remain under this license does not apply to
|
|
any document created using the fonts or their derivatives.
|
|
|
|
|
|
|
|
DEFINITIONS
|
|
"Font Software" refers to the set of files released by the Copyright
|
|
Holder(s) under this license and clearly marked as such.
|
|
This may include source files, build scripts and documentation.
|
|
|
|
"Reserved Font Name" refers to any names specified as such after the
|
|
copyright statement(s).
|
|
|
|
"Original Version" refers to the collection of Font Software components
|
|
as distributed by the Copyright Holder(s).
|
|
|
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
or substituting ? in part or in whole ?
|
|
any of the components of the Original Version, by changing formats or
|
|
by porting the Font Software to a new environment.
|
|
|
|
"Author" refers to any designer, engineer, programmer, technical writer
|
|
or other person who contributed to the Font Software.
|
|
|
|
|
|
PERMISSION & CONDITIONS
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
redistribute, and sell modified and unmodified copies of the Font
|
|
Software, subject to the following conditions:
|
|
|
|
1) Neither the Font Software nor any of its individual components,in
|
|
Original or Modified Versions, may be sold by itself.
|
|
|
|
2) Original or Modified Versions of the Font Software may be bundled,
|
|
redistributed and/or sold with any software, provided that each copy
|
|
contains the above copyright notice and this license. These can be
|
|
included either as stand-alone text files, human-readable headers or
|
|
in the appropriate machine-readable metadata fields within text or
|
|
binary files as long as those fields can be easily viewed by the user.
|
|
|
|
3) No Modified Version of the Font Software may use the Reserved Font
|
|
Name(s) unless explicit written permission is granted by the
|
|
corresponding Copyright Holder. This restriction only applies to the
|
|
primary font name as presented to the users.
|
|
|
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
Software shall not be used to promote, endorse or advertise any
|
|
Modified Version, except to acknowledge the contribution(s) of the
|
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
permission.
|
|
|
|
5) The Font Software, modified or unmodified, in part or in whole, must
|
|
be distributed entirely under this license, and must not be distributed
|
|
under any other license. The requirement for fonts to remain under
|
|
this license does not apply to any document created using the Font
|
|
Software.
|
|
|
|
|
|
|
|
TERMINATION
|
|
This license becomes null and void if any of the above conditions are not met.
|
|
|
|
|
|
|
|
DISCLAIMER
|
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
|
|
DEALINGS IN THE FONT SOFTWARE.
|
|
|