QA/Firefox3.1/FontFace TestStatus: Difference between revisions

 
(14 intermediate revisions by the same user not shown)
Line 11: Line 11:


These tests were executed after applying '''patchv.0.9h''' from [https://bugzilla.mozilla.org/show_bug.cgi?id=441473 bug441473]
These tests were executed after applying '''patchv.0.9h''' from [https://bugzilla.mozilla.org/show_bug.cgi?id=441473 bug441473]
Tests marked with star (*) shows that some unexpected features were found. See [[QA/Firefox3.1/FontFace_TestStatus#Possible_Risks| Possible Risks]] section for details.


== Tests on Mac OS X ==
== Tests on Mac OS X ==
Line 96: Line 94:
|}
|}


LoadTest (done on patch v.0.9d ... not on patch v.0.9h yet)
LoadTest (stress test)
* even 100 @font-face rules per page seems to be pretty scalable. When 210 (230 for the first page you load) or more @font-face rules are used in a document, firefox will crash.
* 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 112: Line 110:
|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
|style="background:#ffaaaa;" |Fails
|Passes
|Default font is used. OpenType font is ignored.
|
|-
|-
|downloadable-font-diacritic.html
|downloadable-font-diacritic.html
Line 160: Line 158:
When this page is loaded, the following assertion is displayed:
When this page is loaded, the following assertion is displayed:


\#\#\#!!! ASSERTION: Null pres shell: 'mShell', file ../../dist/include/layout/nsPresContext.h, line 185
ASSERTION: Null pres shell: 'mShell', file ../../dist/include/layout/nsPresContext.h, line 185


|-
|-
Line 171: 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 ([[https://bugzilla.mozilla.org/show_bug.cgi?id=441743#33 bug441473 #33]])
|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 195: Line 193:
|}
|}


LoadTest
LoadTest (stress test)
* 20 @font-face rules per page is pretty scalable. When you scroll the page or do some action during the downloading and rendering of a font, rendering will take a lot more time. So if more than 50 @font-face rules are used, it would take too much time for a user to wait (nearly 10 seconds, but not measured)
* 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.
** The more @font-face rules you have in a page, the more time is needed to its rendering. It seems that the time it takes is O(n^2) or something


= Planned (but not executed) Tests =
= Planned (but not executed) Tests =
Line 204: Line 201:
(Tests Not Executed Yet)
(Tests Not Executed Yet)


* OpenType Font test on Windows
== Unicode-Range Tests ==
** Some OpenType fonts cannot be rendered only when using @font-face rules. See xyz for details.
 
** Test case is not ready yet since we still cannot find a proper OpenType font for this test. This is due to the font license issues.
* 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 279: Line 298:
== Bugs found after applying patch v.0.9f ==
== Bugs found after applying patch v.0.9f ==


* Graphic bug when using the same downloadable font previously used in a different page
* <strike>Graphic bug when using the same downloadable font previously used in a different page</strike>
** For details, see [https://bugzilla.mozilla.org/show_bug.cgi?id=441473#c66 bug441473 #66]
** <strike>For details, see [https://bugzilla.mozilla.org/show_bug.cgi?id=441473#c66 bug441473 #66]</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>Firefox will crash when different types of src:url()s are used in more than two @font-face rules in a single page</strike>
** When you use more than two @font-face rule with the following url()s, it will crash firefox
** <strike>When you use more than two @font-face rule with the following url()s, it will crash firefox</strike>
*** @font-face RULE1 with src:url(A) /// A: absolute URL, violates same-origin restriction
*** <strike>@font-face RULE1 with src:url(A) /// A: absolute URL, violates same-origin restriction</strike>
*** @font-face RULE2 with src:url(B) /// B: relative URL, does not violate same-origin restriction
*** @<strike>font-face RULE2 with src:url(B) /// B: relative URL, does not violate same-origin restriction</strike>
* It takes much more time to load a font than it used to
* <strike>It takes much more time to load a font than it used to</strike>
** As a consequence, the possibility of download failure increased
** <strike>As a consequence, the possibility of download failure increased</strike>
** Unfortunately, I didn't take any statistics, so I can't compare them by exact numbers
** <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 ==
193

edits