193
edits
Ayoshihara (talk | contribs) |
Ayoshihara (talk | contribs) |
||
(29 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
(Tests Already Executed) | (Tests Already Executed) | ||
These tests were executed after applying '''patchv.0.9h''' from [https://bugzilla.mozilla.org/show_bug.cgi?id=441473 bug441473] | |||
== Tests on Mac OS X == | == Tests on Mac OS X == | ||
Line 25: | Line 25: | ||
|downloadable-font-conflictname.html | |downloadable-font-conflictname.html | ||
|When the family name is same as a font family name in user's environment | |When the family name is same as a font family name in user's environment | ||
| | |Passes | ||
| | | | ||
|- | |- | ||
|downloadable-font-diacritic.html | |downloadable-font-diacritic.html | ||
Line 35: | Line 35: | ||
|downloadable-font-fallback.html | |downloadable-font-fallback.html | ||
|Check the fallback functions | |Check the fallback functions | ||
|style="background:# | |style="background:#ffdead;" |Sometimes Fails | ||
| | |Font not loaded (it happens pretty often) | ||
|- | |- | ||
|downloadable-font-familywithseveral.html | |downloadable-font-familywithseveral.html | ||
|Check what happens when multiple @font-face rules are used for one font-family | |Check what happens when multiple @font-face rules are used for one font-family | ||
|style="background:#ffdead;" |Sometimes fails | |style="background:#ffdead;" |Sometimes fails | ||
|Font is not loaded | |Font is not loaded (it happens quite often) | ||
|- | |- | ||
|downloadable-font-iframe.html | |downloadable-font-iframe.html | ||
Line 67: | Line 61: | ||
|Check if the firefox crashes when leaving the page during the font download | |Check if the firefox crashes when leaving the page during the font download | ||
|style="background:#ffaaaa;" |Sometimes crash | |style="background:#ffaaaa;" |Sometimes crash | ||
|Crash only seems to happen when you invoke firefox with -reftest option. But I'm not sure exactly when this happens. Still investigating the exact cause. [[https://bugzilla.mozilla.org/show_bug.cgi?id=451462 bug451462]] | |Crash only seems to happen when you invoke firefox with -reftest option. And when crash happens, it always happen after you load the next test HTML in reftest, not when you loaded this leavepagetest.html. But I'm not sure exactly when this crash happens, because this only happens about once in two trials. Still investigating the exact cause. [[https://bugzilla.mozilla.org/show_bug.cgi?id=451462 bug451462]] | ||
|- | |- | ||
|downloadable-font-ligature.html | |downloadable-font-ligature.html | ||
Line 77: | Line 71: | ||
|Check how much downloadable fonts can be handled in a page without any crash | |Check how much downloadable fonts can be handled in a page without any crash | ||
|style="background:#ffdead;" |Sometimes fails | |style="background:#ffdead;" |Sometimes fails | ||
|Fonts are not loaded | |Fonts are not loaded. Even when the fonts are loaded, layout bug can be seen sometimes. | ||
|- | |- | ||
|downloadable-font-markupdifference.html | |downloadable-font-markupdifference.html | ||
Line 83: | Line 77: | ||
|style="background:#ffaaaa;" |Fails | |style="background:#ffaaaa;" |Fails | ||
|For example, when you apply <em> to a text rendered with downloaded fonts, the italic FACE IS CALCULATED. However, when you apply <em> to a text rendered with font in user's environment, the ITALIC FACE of that font-family is used. The former calculated face and latter italic face is different, so they are rendered slightly differently. | |For example, when you apply <em> to a text rendered with downloaded fonts, the italic FACE IS CALCULATED. However, when you apply <em> to a text rendered with font in user's environment, the ITALIC FACE of that font-family is used. The former calculated face and latter italic face is different, so they are rendered slightly differently. | ||
|- | |||
|downloadable-font-opentype.html | |||
|Check if the opentype fonts are rendered correctly | |||
|Passes | |||
| | |||
|- | |- | ||
|downloadable-font-printtest.html | |downloadable-font-printtest.html | ||
Line 91: | Line 90: | ||
|downloadable-font-sameorigin.html | |downloadable-font-sameorigin.html | ||
|Check if the same-site restriction is working properly | |Check if the same-site restriction is working properly | ||
| | |style="background:#ffdead;" |Sometimes Fails | ||
| | |Fonts not loaded | ||
|} | |} | ||
LoadTest | LoadTest (stress test) | ||
* even 100 @font-face rules per page seems to be pretty scalable. When | * even 100 @font-face rules per page seems to be pretty scalable. A web page with 200 @font-face rules will be loaded in around 5 seconds. When 250 or more @font-face rules are used in a document, firefox will crash. | ||
== Tests on Windows XP SP3 == | == Tests on Windows XP SP3 == | ||
Line 154: | Line 153: | ||
|downloadable-font-leavepagetest.html | |downloadable-font-leavepagetest.html | ||
|Check if the firefox crashes when leaving the page during the font download | |Check if the firefox crashes when leaving the page during the font download | ||
|style="background:# | |style="background:#ffaaaa;" |Sometimes Crashes | ||
| | |Crash happens occasionally. It is not restricted to when firefox is invoked with -reftest option. When you load leavepagetest.html and loadtest.html back and force, it will crash after several tries. | ||
When this page is loaded, the following assertion is displayed: | |||
ASSERTION: Null pres shell: 'mShell', file ../../dist/include/layout/nsPresContext.h, line 185 | |||
|- | |- | ||
|downloadable-font-ligature.html | |downloadable-font-ligature.html | ||
Line 165: | Line 169: | ||
|Check how much downloadable fonts can be handled in a page without any crash | |Check how much downloadable fonts can be handled in a page without any crash | ||
|style="background:#ffdead;" |Sometimes fails | |style="background:#ffdead;" |Sometimes fails | ||
|Layout bug | |Layout bug [[https://bugzilla.mozilla.org/show_bug.cgi?id=441743#33 bug441473 #33]] | ||
It seem to happen when it fails to download the font before the first rendering. But I'm not sure when it happens. The place it happens changes every time. | It seem to happen when it fails to download the font before the first rendering. But I'm not sure when it happens. The place it happens changes every time. | ||
|- | |- | ||
Line 172: | Line 176: | ||
|style="background:#ffaaaa;" |Fails | |style="background:#ffaaaa;" |Fails | ||
|For example, when you apply <em> to a text rendered with downloaded fonts, the italic FACE IS CALCULATED. However, when you apply <em> to a text rendered with font in user's environment, the ITALIC FACE of that font-family is used. The former calculated face and latter italic face is different, so they are rendered slightly differently. | |For example, when you apply <em> to a text rendered with downloaded fonts, the italic FACE IS CALCULATED. However, when you apply <em> to a text rendered with font in user's environment, the ITALIC FACE of that font-family is used. The former calculated face and latter italic face is different, so they are rendered slightly differently. | ||
|- | |||
|downloadable-font-opentype.html | |||
|Check if the OpenType fonts are rendered correctly | |||
|style="background:#ffaaaa;" |Fails | |||
|OpenType font is ignored. Default font is used. | |||
|- | |- | ||
|downloadable-font-printtest.html | |downloadable-font-printtest.html | ||
|Check if the downloaded fonts are used when you print out the document | |Check if the downloaded fonts are used when you print out the document | ||
| | |style="background:#ffaaaa;" |Fails | ||
| | |Layout of default font used. Mentioned in [[https://bugzilla.mozilla.org/show_bug.cgi?id=441743#33 bug441473 #33]] | ||
|- | |- | ||
|downloadable-font-sameorigin.html | |downloadable-font-sameorigin.html | ||
Line 184: | Line 193: | ||
|} | |} | ||
LoadTest | LoadTest (stress test) | ||
* | * On Windows, it seems even more scalable. A web page with 100 @font-face rules will be loaded in around 1 second. But when more than 150 @font-face rules are used in a single page, it takes much more time to load. A web page with 200 @font-face rules will be loaded in around 20 seconds, which is a lot more than that on Mac. | ||
* It does not crash even if a page had more than 1000 @font-face rules, but it would take more than 5 minutes until the text is rendered, which is not endurable for general use. | * It does not crash even if a page had more than 1000 @font-face rules, but it would take more than 5 minutes until the text is rendered, which is not endurable for general use. | ||
= Planned (but not executed) Tests = | = Planned (but not executed) Tests = | ||
Line 193: | Line 201: | ||
(Tests Not Executed Yet) | (Tests Not Executed Yet) | ||
* | == Unicode-Range Tests == | ||
** | |||
** | * Basic Tests | ||
** single code point | |||
*** ex. U+A5, U+301C | |||
** interval value | |||
*** ex. U+3040-30FF, U+999-998 (does this fail?) | |||
* What happens if I put many 0s before the number? | |||
** ex. U+F, U+0F, U+00F, U+000F, U+00000000F, ... do they mean the same thing? | |||
* What happens if I use ? in the front/middle? | |||
** ex. U+?4, U+3?5, ... | |||
* What happens if I use multiple unicode-range rules to consist a single font-family? | |||
** ex. @font-face{ font-family:testA; src:url(fontA.ttf); unicode-range:U+0-U+2FF; } @font-face{ font-family:testA; src:url(fontB.otf); unicode-range:U+300-U+FFF } | |||
* What happens if I specified only a single character in the rule and tried to display other character? Would there be a fallback function? | |||
** ex. @font-face { font-family:smallA; src:url(smallA.ttf); unicode-range:U+1; } | |||
** <span class="font-family:smallA">ABC</span>? | |||
* What happens if the specified font did not have a character of the specified unicode range? Does it display nothing? Would there be a fallback function? | |||
== CSS Mutation from JavaScript tests == | |||
* What happens if you download the same font again? Would it use cache? | |||
* Is it possible to change the DOM tree of other documents? | |||
** Is downloading another font for other documents prohibited? or is it allowed? | |||
* Consider what will happen when 2 pages try to change the DOM of each other | |||
** stateful | |||
= Possible Risks = | = Possible Risks = | ||
Line 248: | Line 278: | ||
|class="header"|Firefox 3.0.1 / font-family | |class="header"|Firefox 3.0.1 / font-family | ||
|- | |- | ||
|BKM-cmb10.otf | |BKM-cmb10 (.otf) | ||
|✕ | |✕ | ||
|✓ | |✓ | ||
|✓ | |✓ | ||
|- | |- | ||
|Hiragino Kaku Gothic ProN W3 | |Hiragino Kaku Gothic ProN W3 (.otf) | ||
|✕ | |✕ | ||
|✓ | |✓ | ||
|✓ | |✓ | ||
|- | |- | ||
|Verdana | |Verdana (.ttf) | ||
|✓ | |✓ | ||
|✓ | |✓ | ||
Line 265: | Line 295: | ||
✓ Successfully rendered using the correct font face | ✓ Successfully rendered using the correct font face | ||
✕ Failed. default font used | ✕ Failed. default font used | ||
== Bugs found after applying patch v.0.9f == | |||
* <strike>Graphic bug when using the same downloadable font previously used in a different page</strike> | |||
** <strike>For details, see [https://bugzilla.mozilla.org/show_bug.cgi?id=441473#c66 bug441473 #66]</strike> | |||
* <strike>Firefox will crash when different types of src:url()s are used in more than two @font-face rules in a single page</strike> | |||
** <strike>When you use more than two @font-face rule with the following url()s, it will crash firefox</strike> | |||
*** <strike>@font-face RULE1 with src:url(A) /// A: absolute URL, violates same-origin restriction</strike> | |||
*** @<strike>font-face RULE2 with src:url(B) /// B: relative URL, does not violate same-origin restriction</strike> | |||
* <strike>It takes much more time to load a font than it used to</strike> | |||
** <strike>As a consequence, the possibility of download failure increased</strike> | |||
** <strike>Unfortunately, I didn't take any statistics, so I can't compare them by exact numbers</strike> | |||
They were fixed in patch v.0.9h :-) | |||
== Suspected Features == | == Suspected Features == | ||
Line 272: | Line 316: | ||
** For the former case, firefox calculates how strong or how italic the font should be. But for the latter case, firefox will look up the family and finds a bold face or italic face of the font. The calculated face and installed face occasionally look different. | ** For the former case, firefox calculates how strong or how italic the font should be. But for the latter case, firefox will look up the family and finds a bold face or italic face of the font. The calculated face and installed face occasionally look different. | ||
** test case: downloadable-font-markupdifference.html | ** test case: downloadable-font-markupdifference.html | ||
* When using src:local(), we have to use different names for Windows and Mac | |||
** Windows: full name of font | |||
** Mac: PostScript name of font | |||
** For details, see [https://bugzilla.mozilla.org/show_bug.cgi?id=441473#c53 bug441473 #53] | |||
== Expected Features == | == Expected Features == |
edits