Support gzip-compressed SVG-in-OpenType
Categories
(Core :: Graphics: Text, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox69 | --- | fixed |
People
(Reporter: mozilla, Assigned: jfkthame)
References
Details
Attachments
(5 files, 3 obsolete files)
Assignee | ||
Comment 1•8 years ago
|
||
Reporter | ||
Comment 2•8 years ago
|
||
Reporter | ||
Comment 3•8 years ago
|
||
Reporter | ||
Comment 4•8 years ago
|
||
Assignee | ||
Comment 5•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Assignee | ||
Comment 6•8 years ago
|
||
Assignee | ||
Comment 7•8 years ago
|
||
Comment 8•8 years ago
|
||
Reporter | ||
Comment 9•8 years ago
|
||
Assignee | ||
Comment 10•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Assignee | ||
Comment 12•7 years ago
|
||
Comment 13•7 years ago
|
||
Updated•7 years ago
|
Reporter | ||
Comment 14•7 years ago
|
||
Reporter | ||
Comment 16•7 years ago
|
||
Comment 17•7 years ago
|
||
Comment 18•7 years ago
|
||
Comment 19•7 years ago
|
||
Reporter | ||
Comment 20•7 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 21•6 years ago
|
||
Rebasing the patches here to current trunk; once the current soft-freeze is past, I think we should go ahead and fix this, as it's a pretty simple issue and represents a gap in our implementation.
Assignee | ||
Comment 22•6 years ago
|
||
Assignee | ||
Comment 23•6 years ago
|
||
Depends on D31107
Reporter | ||
Comment 24•6 years ago
|
||
Ah. I was hoping that by now this is widely deployed.
Jeff, can you please approve this despite your personal preferences? This is a small change to make Firefox comply with the standard. Thanks.
Comment 26•6 years ago
|
||
OT-SVG font EmojiOneColor, produced by Adobe Type, will not work with shipping Firefox due to its compressed SVG. The font is at https://github.com/adobe-fonts/emojione-color & is also bundled by flagship Adobe apps.
Glad to see that things look promising for a fix in Firefox. Thanks!
Comment 27•6 years ago
|
||
Do any other browsers support this font?
Comment 28•6 years ago
|
||
Actually, I'm confused about the urgency of this. As I understand it Edge will be dropping support for OT-SVG. What other software supports OT-SVG that we need to interoperate with? Why does Firefox need to be the only browser supporting OT-SVG?
Reporter | ||
Comment 29•6 years ago
|
||
Why does Firefox need to be the only browser supporting OT-SVG?
Because it originally chose to!!!
There's a lot of lobbying and politking going on behind the scenes to see if Chrome can be convinced to support SVG... I thought Safar also supports.
Comment 30•6 years ago
|
||
Other browsers which support OT-SVG, Safari & Edge, support compressed SVG. Firefox should as well.
FreeType's in the process of adding OT-SVG support, and the goal is for that to get into Google's ecosystem, including Chrome (& Chromium Edge).
Comment 31•6 years ago
|
||
Comment 32•6 years ago
|
||
Backed out 2 changesets (Bug 1359240) for gfxSVGGlyphs.cpp bustages
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&fromchange=02eea6ec83db036098d8c629f400d2c5992193b3&tochange=103e78a861c4962b699b6bd483bd53cd23172d0d&selectedJob=247334371
Backout link: https://hg.mozilla.org/integration/autoland/rev/103e78a861c4962b699b6bd483bd53cd23172d0d
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=247334371&repo=autoland&lineNumber=29264
[task 2019-05-20T12:12:24.951Z] 12:12:24 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-05-20T12:12:24.952Z] 12:12:24 INFO - /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -isysroot /builds/worker/workspace/build/src/MacOSX10.11.sdk --target=x86_64-darwin11 -o Unified_cpp_gfx_thebes1.o -c -fvisibility=hidden -fvisibility-inlines-hidden -DDEBUG=1 -DOS_POSIX=1 -DOS_MACOSX=1 -DGRAPHITE2_STATIC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/dom/base -I/builds/worker/workspace/build/src/dom/xml -I/builds/worker/workspace/build/src/gfx/skia -I/builds/worker/workspace/build/src/gfx/skia/skia/include/config -I/builds/worker/workspace/build/src/gfx/skia/skia/include/core -I/builds/worker/workspace/build/src/gfx/skia/skia/include/docs -I/builds/worker/workspace/build/src/gfx/skia/skia/include/gpu -I/builds/worker/workspace/build/src/gfx/skia/skia/include/utils -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-sized-deallocation -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -stdlib=libc++ -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O3 -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/workspace/build/src/obj-firefox/dist/include/cairo -MD -MP -MF .deps/Unified_cpp_gfx_thebes1.o.pp /builds/worker/workspace/build/src/obj-firefox/gfx/thebes/Unified_cpp_gfx_thebes1.cpp
[task 2019-05-20T12:12:24.953Z] 12:12:24 INFO - In file included from /builds/worker/workspace/build/src/obj-firefox/gfx/thebes/Unified_cpp_gfx_thebes1.cpp:74:
[task 2019-05-20T12:12:24.953Z] 12:12:24 ERROR - /builds/worker/workspace/build/src/gfx/thebes/gfxSVGGlyphs.cpp:285:53: error: comparison of integers of different signs: 'long' and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
[task 2019-05-20T12:12:24.953Z] 12:12:24 INFO - MOZ_ASSERT(s.next_out - outBuf.Elements() == origLen);
[task 2019-05-20T12:12:24.953Z] 12:12:24 INFO - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~
[task 2019-05-20T12:12:24.953Z] 12:12:24 INFO - /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Assertions.h:470:46: note: expanded from macro 'MOZ_ASSERT'
[task 2019-05-20T12:12:24.953Z] 12:12:24 INFO - # define MOZ_ASSERT(...) MOZ_RELEASE_ASSERT(VA_ARGS)
[task 2019-05-20T12:12:24.953Z] 12:12:24 INFO - ^~~~~~~~~~~
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Assertions.h:467:8: note: expanded from macro 'MOZ_RELEASE_ASSERT'
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - (VA_ARGS))
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - ^~~~~~~~~~~
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Assertions.h:463:41: note: expanded from macro 'MOZ_RELEASE_ASSERT_GLUE'
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - #define MOZ_RELEASE_ASSERT_GLUE(a, b) a b
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - ^
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Assertions.h:445:51: note: expanded from macro 'MOZ_ASSERT_HELPER1'
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - if (MOZ_UNLIKELY(!MOZ_CHECK_ASSERT_ASSIGNMENT(expr))) {
[task 2019-05-20T12:12:24.954Z] 12:12:24 INFO - ^~~~
[task 2019-05-20T12:12:24.955Z] 12:12:24 INFO - /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/StaticAnalysisFunctions.h:61:73: note: expanded from macro 'MOZ_CHECK_ASSERT_ASSIGNMENT'
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - # define MOZ_CHECK_ASSERT_ASSIGNMENT(expr) MOZ_AssertAssignmentTest(!!(expr))
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - ^~~~
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Likely.h:17:48: note: expanded from macro 'MOZ_UNLIKELY'
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - # define MOZ_UNLIKELY(x) (__builtin_expect(!!(x), 0))
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - ^
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - 1 error generated.
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - /builds/worker/workspace/build/src/config/rules.mk:835: recipe for target 'Unified_cpp_gfx_thebes1.o' failed
[task 2019-05-20T12:12:24.956Z] 12:12:24 ERROR - make[4]: *** [Unified_cpp_gfx_thebes1.o] Error 1
[task 2019-05-20T12:12:24.956Z] 12:12:24 INFO - make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2019-05-20T12:12:24.957Z] 12:12:24 INFO - /builds/worker/workspace/build/src/config/recurse.mk:74: recipe for target 'gfx/thebes/target' failed
[task 2019-05-20T12:12:24.957Z] 12:12:24 ERROR - make[3]: *** [gfx/thebes/target] Error 2
[task 2019-05-20T12:12:24.957Z] 12:12:24 INFO - make[3]: *** Waiting for unfinished jobs....
[task 2019-05-20T12:12:24.959Z] 12:12:24 INFO - make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/security/nss/cmd/pk12util/pk12util_pk12util'
[task 2019-05-20T12:12:24.960Z] 12:12:24 INFO - /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -isysroot /builds/worker/workspace/build/src/MacOSX10.11.sdk --target=x86_64-darwin11 -o ../../../../../dist/bin/pk12util -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-sized-deallocation -fcrash-diagnostics-dir=/builds/worker/artifacts -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -stdlib=libc++ -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O3 -fno-omit-frame-pointer -funwind-tables -Wl,-filelist,/builds/worker/workspace/build/src/obj-firefox/security/nss/cmd/pk12util/pk12util_pk12util/pk12util.list -Wl,-syslibroot,/builds/worker/workspace/build/src/MacOSX10.11.sdk -fstack-protector-strong -framework Cocoa -lobjc -framework AudioToolbox -framework ExceptionHandling -Wl,-executable_path,/builds/worker/workspace/build/src/obj-firefox/dist/bin -Wl,-dead_strip -pie ../../../../libnss3.dylib
[task 2019-05-20T12:12:24.960Z] 12:12:24 INFO - ld: warning: directory not found for option '-L/builds/worker/workspace/src/obj-firefox'
Comment 33•6 years ago
|
||
Comment 34•6 years ago
•
|
||
Backed out 2 changesets for causing reftest failures.
Backout link: https://hg.mozilla.org/integration/autoland/rev/c4437f124150333c460bd9c261f84dfcf7de6e87
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&revision=6519e35004283dc67e83ce49090480c724fac5bf&selectedJob=247361289
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=247361289&repo=autoland&lineNumber=4892
Log snippet: [task 2019-05-20T15:14:29.940Z] 15:14:29 INFO - REFTEST TEST-START | file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed.html == file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed-ref.html
[task 2019-05-20T15:14:29.941Z] 15:14:29 INFO - REFTEST TEST-LOAD | file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed.html | 23 / 24 (95%)
[task 2019-05-20T15:14:29.958Z] 15:14:29 INFO - ++DOMWINDOW == 42 (0x7f5a444d3800) [pid = 1875] [serial = 73] [outer = 0x7f5a481ccd40]
[task 2019-05-20T15:14:30.028Z] 15:14:30 INFO - REFTEST TEST-LOAD | file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed-ref.html | 23 / 24 (95%)
[task 2019-05-20T15:14:30.049Z] 15:14:30 INFO - ++DOMWINDOW == 43 (0x7f5a444d5400) [pid = 1875] [serial = 74] [outer = 0x7f5a481ccd40]
[task 2019-05-20T15:14:30.385Z] 15:14:30 INFO - REFTEST TEST-UNEXPECTED-FAIL | file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed.html == file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed-ref.html | image comparison, max difference: 255, number of differing pixels: 207505
[task 2019-05-20T15:14:30.386Z] 15:14:30 INFO - REFTEST IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAy<...>
[task 2019-05-20T15:14:30.392Z] 15:14:30 INFO - REFTEST IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0KGgoAAAANSUhEU<...>
[task 2019-05-20T15:14:30.397Z] 15:14:30 INFO - REFTEST INFO | Saved log: START file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed.html
[task 2019-05-20T15:14:30.398Z] 15:14:30 INFO - REFTEST INFO | Saved log: [CONTENT] OnDocumentLoad triggering AfterOnLoadScripts
[task 2019-05-20T15:14:30.399Z] 15:14:30 INFO - REFTEST INFO | Saved log: Initializing canvas snapshot
[task 2019-05-20T15:14:30.400Z] 15:14:30 INFO - REFTEST INFO | Saved log: DoDrawWindow 0,0,800,1000
[task 2019-05-20T15:14:30.401Z] 15:14:30 INFO - REFTEST INFO | Saved log: [CONTENT] RecordResult fired
[task 2019-05-20T15:14:30.402Z] 15:14:30 INFO - REFTEST INFO | Saved log: RecordResult fired
[task 2019-05-20T15:14:30.403Z] 15:14:30 INFO - REFTEST INFO | Saved log: START file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed-ref.html
[task 2019-05-20T15:14:30.404Z] 15:14:30 INFO - REFTEST INFO | Saved log: [CONTENT] OnDocumentLoad triggering AfterOnLoadScripts
[task 2019-05-20T15:14:30.405Z] 15:14:30 INFO - REFTEST INFO | Saved log: Initializing canvas snapshot
[task 2019-05-20T15:14:30.406Z] 15:14:30 INFO - REFTEST INFO | Saved log: DoDrawWindow 0,0,800,1000
[task 2019-05-20T15:14:30.407Z] 15:14:30 INFO - REFTEST INFO | Saved log: [CONTENT] RecordResult fired
[task 2019-05-20T15:14:30.407Z] 15:14:30 INFO - REFTEST INFO | Saved log: RecordResult fired
[task 2019-05-20T15:14:30.414Z] 15:14:30 INFO - REFTEST TEST-END | file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed.html == file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-compressed-ref.html
[task 2019-05-20T15:14:30.416Z] 15:14:30 INFO - ++DOMWINDOW == 44 (0x7f5a43ba1000) [pid = 1875] [serial = 75] [outer = 0x7f5a481ccd40]
[task 2019-05-20T15:14:30.417Z] 15:14:30 INFO - REFTEST INFO | Slowest test took 3142ms (file:///builds/worker/workspace/build/tests/reftest/tests/layout/reftests/text-svgglyphs/svg-glyph-extents.html)
[task 2019-05-20T15:14:30.418Z] 15:14:30 INFO - REFTEST INFO | Total canvas count = 0
[task 2019-05-20T15:14:30.418Z] 15:14:30 INFO - --DOMWINDOW == 43 (0x7f5a47463000) [pid = 1875] [serial = 54] [outer = (nil)] [url = data:text/html;charset=UTF-8,%3C%21%2D%2DCLEAR%2D%2D%3E]
Assignee | ||
Comment 35•6 years ago
|
||
Huh, that's weird... the reftest passed as expected on tryserver. Guess I'll do another round of testing...
Assignee | ||
Comment 36•6 years ago
|
||
Fresh try run confirming that reftest passes: https://treeherder.mozilla.org/#/jobs?repo=try&revision=173be7af0d46ea1ed8463af17913bbeb9459956d
Comment 37•6 years ago
|
||
Comment 38•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7fa400239990
https://hg.mozilla.org/mozilla-central/rev/3c7314a697e2
Comment 39•6 years ago
|
||
FYI another test font "TestSVGgzip.otf" (contributed by Miguel Sousa of Adobe Type) is available in the "fonts" dir of https://github.com/unicode-org/text-rendering-tests, which is an area blessed by Sascha Brawer & others for OT test fonts to be shared in the community.
Description
•