Removed the test for the webkit font fallback bug in favour of a better approximation of the actual behaviour.
Added an accurate model of the broken way webkit used to handle fallback fonts while loading webfonts. Also added two new tests that test for the case where a font is parsed and applied quickly and slowly (where the slow one currently fails.)
Changed FontWatchRunner to take an extra argument indicating the presence of the Webkit fallback bug. Changed the check_ method to do the correct thing if the bug is present. Updated the tests accordingly.
Fixed formatting.
Added test for when the fallback font and the loaded font have the same metrics.
Fixed type annotations on core/fontwatcher.
Changed the fontwatchrunner to test both width and height of the test elements.
Patched up the Google lastresortwebkitfontwatchrunner to match the changes to core. This patch does not change its functionality.
Added two tests for checking both the width and height when monitoring metric changes.
Changed the behaviour of the timeout when the Webkit bug is present. If the timeout happens, and we are running in a webkit browser with the bug and we observed at least one size change, we assume the font has loaded and has identical metrics to the last resort font. In this case we fire the active event instead of the inactive event.
Added a test for detecting the Webkit fallback bug where it does not respect the font stack while loading webfonts.
Renamed the null-font from __test__ to __webfontloader_test__ so it is a bit more obvious what it does.
Only test for the Webkit fallback bug when the user is using Webkit.
Refactored the font measurements so that we do not have duplicated CSS strings.
Added test for the case where the font fails to load and the Webkit bug is present.
Extracted size comparison method.
Rewrote the FontWatchRunner check_ method to correctly handle all cases when the Webkit fallback bug is present.
FontRuler no longer automatically inserts itself into the DOM. This operation now has to be done explicitly.
Renamed requestFontA/B to fontRulerA/B.
Re-use the same two FontRuler instances for both the initial measurement and the monitoring.