зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1583707 - enable text subpixel positioning on Android and Linux. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D47035 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
1a47fa0d8f
Коммит
fd28aa44da
|
@ -37,6 +37,11 @@ ScaledFontFontconfig::ScaledFontFontconfig(
|
|||
mFace(std::move(aFace)),
|
||||
mInstanceData(aInstanceData) {}
|
||||
|
||||
bool ScaledFontFontconfig::UseSubpixelPosition() const {
|
||||
return mInstanceData.mAntialias != AntialiasMode::NONE &&
|
||||
FT_IS_SCALABLE(mFace->GetFace());
|
||||
}
|
||||
|
||||
#ifdef USE_SKIA
|
||||
SkTypeface* ScaledFontFontconfig::CreateSkTypeface() {
|
||||
SkPixelGeometry geo = mInstanceData.mFlags & InstanceData::SUBPIXEL_BGR
|
||||
|
@ -51,8 +56,7 @@ SkTypeface* ScaledFontFontconfig::CreateSkTypeface() {
|
|||
}
|
||||
|
||||
void ScaledFontFontconfig::SetupSkFontDrawOptions(SkFont& aFont) {
|
||||
// SkFontHost_cairo does not support subpixel text positioning
|
||||
aFont.setSubpixel(false);
|
||||
aFont.setSubpixel(UseSubpixelPosition());
|
||||
|
||||
if (mInstanceData.mFlags & InstanceData::AUTOHINT) {
|
||||
aFont.setForceAutoHinting(true);
|
||||
|
@ -180,7 +184,7 @@ ScaledFontFontconfig::InstanceData::InstanceData(FcPattern* aPattern)
|
|||
int filter;
|
||||
if (mAntialias == AntialiasMode::SUBPIXEL &&
|
||||
FcPatternGetInteger(aPattern, FC_LCD_FILTER, 0, &filter) ==
|
||||
FcResultMatch) {
|
||||
FcResultMatch) {
|
||||
switch (filter) {
|
||||
case FC_LCD_NONE:
|
||||
mLcdFilter = FT_LCD_FILTER_NONE;
|
||||
|
@ -263,7 +267,9 @@ void ScaledFontFontconfig::InstanceData::SetupFontOptions(
|
|||
unsigned int* aOutSynthFlags) const {
|
||||
// For regular (non-printer) fonts, enable hint metrics as well as hinting
|
||||
// and (possibly subpixel) antialiasing.
|
||||
cairo_font_options_set_hint_metrics(aFontOptions, mFlags & HINT_METRICS ? CAIRO_HINT_METRICS_ON : CAIRO_HINT_METRICS_OFF);
|
||||
cairo_font_options_set_hint_metrics(
|
||||
aFontOptions,
|
||||
mFlags & HINT_METRICS ? CAIRO_HINT_METRICS_ON : CAIRO_HINT_METRICS_OFF);
|
||||
|
||||
cairo_hint_style_t hinting;
|
||||
switch (mHinting) {
|
||||
|
@ -291,8 +297,7 @@ void ScaledFontFontconfig::InstanceData::SetupFontOptions(
|
|||
cairo_font_options_set_antialias(aFontOptions, CAIRO_ANTIALIAS_GRAY);
|
||||
break;
|
||||
case AntialiasMode::SUBPIXEL: {
|
||||
cairo_font_options_set_antialias(aFontOptions,
|
||||
CAIRO_ANTIALIAS_SUBPIXEL);
|
||||
cairo_font_options_set_antialias(aFontOptions, CAIRO_ANTIALIAS_SUBPIXEL);
|
||||
cairo_font_options_set_subpixel_order(
|
||||
aFontOptions,
|
||||
mFlags & SUBPIXEL_BGR
|
||||
|
@ -302,16 +307,16 @@ void ScaledFontFontconfig::InstanceData::SetupFontOptions(
|
|||
: CAIRO_SUBPIXEL_ORDER_RGB));
|
||||
cairo_lcd_filter_t lcdFilter = CAIRO_LCD_FILTER_DEFAULT;
|
||||
switch (mLcdFilter) {
|
||||
case FT_LCD_FILTER_NONE:
|
||||
case FT_LCD_FILTER_NONE:
|
||||
lcdFilter = CAIRO_LCD_FILTER_NONE;
|
||||
break;
|
||||
case FT_LCD_FILTER_DEFAULT:
|
||||
case FT_LCD_FILTER_DEFAULT:
|
||||
lcdFilter = CAIRO_LCD_FILTER_FIR5;
|
||||
break;
|
||||
case FT_LCD_FILTER_LIGHT:
|
||||
case FT_LCD_FILTER_LIGHT:
|
||||
lcdFilter = CAIRO_LCD_FILTER_FIR3;
|
||||
break;
|
||||
case FT_LCD_FILTER_LEGACY:
|
||||
case FT_LCD_FILTER_LEGACY:
|
||||
lcdFilter = CAIRO_LCD_FILTER_INTRA_PIXEL;
|
||||
break;
|
||||
}
|
||||
|
@ -358,9 +363,10 @@ bool ScaledFontFontconfig::GetWRFontInstanceOptions(
|
|||
std::vector<FontVariation>* aOutVariations) {
|
||||
wr::FontInstanceOptions options;
|
||||
options.render_mode = wr::FontRenderMode::Alpha;
|
||||
// FIXME: Cairo-FT metrics are not compatible with subpixel positioning.
|
||||
// options.flags = wr::FontInstanceFlags_SUBPIXEL_POSITION;
|
||||
options.flags = wr::FontInstanceFlags{0};
|
||||
if (UseSubpixelPosition()) {
|
||||
options.flags |= wr::FontInstanceFlags_SUBPIXEL_POSITION;
|
||||
}
|
||||
options.bg_color = wr::ToColorU(Color());
|
||||
options.synthetic_italics =
|
||||
wr::DegreesToSyntheticItalics(GetSyntheticObliqueAngle());
|
||||
|
|
|
@ -32,6 +32,8 @@ class ScaledFontFontconfig : public ScaledFontBase {
|
|||
|
||||
AntialiasMode GetDefaultAAMode() override;
|
||||
|
||||
bool UseSubpixelPosition() const;
|
||||
|
||||
bool CanSerialize() override { return true; }
|
||||
|
||||
bool GetFontInstanceData(FontInstanceDataOutput aCb, void* aBaton) override;
|
||||
|
|
|
@ -26,14 +26,17 @@ ScaledFontFreeType::ScaledFontFreeType(
|
|||
mFace(std::move(aFace)),
|
||||
mApplySyntheticBold(aApplySyntheticBold) {}
|
||||
|
||||
bool ScaledFontFreeType::UseSubpixelPosition() const {
|
||||
return FT_IS_SCALABLE(mFace->GetFace());
|
||||
}
|
||||
|
||||
#ifdef USE_SKIA
|
||||
SkTypeface* ScaledFontFreeType::CreateSkTypeface() {
|
||||
return SkCreateTypefaceFromCairoFTFont(mFace->GetFace(), mFace.get());
|
||||
}
|
||||
|
||||
void ScaledFontFreeType::SetupSkFontDrawOptions(SkFont& aFont) {
|
||||
// SkFontHost_cairo does not support subpixel text positioning
|
||||
aFont.setSubpixel(false);
|
||||
aFont.setSubpixel(UseSubpixelPosition());
|
||||
|
||||
if (mApplySyntheticBold) {
|
||||
aFont.setEmbolden(true);
|
||||
|
@ -83,9 +86,10 @@ bool ScaledFontFreeType::GetWRFontInstanceOptions(
|
|||
std::vector<FontVariation>* aOutVariations) {
|
||||
wr::FontInstanceOptions options;
|
||||
options.render_mode = wr::FontRenderMode::Alpha;
|
||||
// FIXME: Cairo-FT metrics are not compatible with subpixel positioning.
|
||||
// options.flags = wr::FontInstanceFlags_SUBPIXEL_POSITION;
|
||||
options.flags = wr::FontInstanceFlags{0};
|
||||
if (UseSubpixelPosition()) {
|
||||
options.flags |= wr::FontInstanceFlags_SUBPIXEL_POSITION;
|
||||
}
|
||||
options.flags |= wr::FontInstanceFlags_EMBEDDED_BITMAPS;
|
||||
options.bg_color = wr::ToColorU(Color());
|
||||
options.synthetic_italics =
|
||||
|
|
|
@ -33,6 +33,8 @@ class ScaledFontFreeType : public ScaledFontBase {
|
|||
|
||||
AntialiasMode GetDefaultAAMode() override { return AntialiasMode::GRAY; }
|
||||
|
||||
bool UseSubpixelPosition() const;
|
||||
|
||||
bool CanSerialize() override { return true; }
|
||||
|
||||
bool GetFontInstanceData(FontInstanceDataOutput aCb, void* aBaton) override;
|
||||
|
|
|
@ -510,6 +510,14 @@ void SkScalerContext_CairoFT::generateMetrics(SkGlyph* glyph)
|
|||
|
||||
FT_BBox bbox;
|
||||
FT_Outline_Get_CBox(&fFTFace->glyph->outline, &bbox);
|
||||
if (this->isSubpixel()) {
|
||||
int dx = SkFixedToFDot6(glyph->getSubXFixed());
|
||||
int dy = SkFixedToFDot6(glyph->getSubYFixed());
|
||||
bbox.xMin += dx;
|
||||
bbox.yMin -= dy;
|
||||
bbox.xMax += dx;
|
||||
bbox.yMax -= dy;
|
||||
}
|
||||
bbox.xMin &= ~63;
|
||||
bbox.yMin &= ~63;
|
||||
bbox.xMax = (bbox.xMax + 63) & ~63;
|
||||
|
|
|
@ -471,6 +471,15 @@ uint32_t gfxFT2FontBase::GetGlyph(uint32_t unicode,
|
|||
return GetGlyph(unicode);
|
||||
}
|
||||
|
||||
bool gfxFT2FontBase::ShouldRoundXOffset(cairo_t* aCairo) const {
|
||||
// Force rounding if outputting to a Cairo context. Otherwise, allow subpixel
|
||||
// positioning (no rounding) if rendering a scalable outline font with
|
||||
// anti-aliasing. Monochrome rendering or some bitmap fonts can become too
|
||||
// distorted with subpixel positioning, so force rounding in those cases.
|
||||
return aCairo != nullptr || !mFTFace || !FT_IS_SCALABLE(mFTFace->GetFace()) ||
|
||||
(mFTLoadFlags & FT_LOAD_MONOCHROME);
|
||||
}
|
||||
|
||||
FT_Vector gfxFT2FontBase::GetEmboldenStrength(FT_Face aFace) {
|
||||
FT_Vector strength = {0, 0};
|
||||
if (!mEmbolden) {
|
||||
|
@ -524,8 +533,7 @@ bool gfxFT2FontBase::GetFTGlyphExtents(uint16_t aGID, int32_t* aAdvance,
|
|||
// applying hinting. Otherwise, prefer hinted width from glyph->advance.x.
|
||||
if (aAdvance) {
|
||||
FT_Fixed advance;
|
||||
if (face.get()->glyph->format == FT_GLYPH_FORMAT_OUTLINE &&
|
||||
(!hintMetrics || FT_HAS_MULTIPLE_MASTERS(face.get()))) {
|
||||
if (!ShouldRoundXOffset(nullptr) || FT_HAS_MULTIPLE_MASTERS(face.get())) {
|
||||
advance = face.get()->glyph->linearHoriAdvance;
|
||||
} else {
|
||||
advance = face.get()->glyph->advance.x << 10; // convert 26.6 to 16.16
|
||||
|
|
|
@ -15,9 +15,8 @@
|
|||
#include "nsHashKeys.h"
|
||||
|
||||
class gfxFT2FontEntryBase : public gfxFontEntry {
|
||||
public:
|
||||
explicit gfxFT2FontEntryBase(const nsACString& aName)
|
||||
: gfxFontEntry(aName) {}
|
||||
public:
|
||||
explicit gfxFT2FontEntryBase(const nsACString& aName) : gfxFontEntry(aName) {}
|
||||
|
||||
struct CmapCacheSlot {
|
||||
CmapCacheSlot() : mCharCode(0), mGlyphIndex(0) {}
|
||||
|
@ -53,6 +52,8 @@ class gfxFT2FontBase : public gfxFont {
|
|||
|
||||
FontType GetType() const override { return FONT_TYPE_FT2; }
|
||||
|
||||
bool ShouldRoundXOffset(cairo_t* aCairo) const override;
|
||||
|
||||
static void SetupVarCoords(FT_MM_Var* aMMVar,
|
||||
const nsTArray<gfxFontVariation>& aVariations,
|
||||
FT_Face aFTFace);
|
||||
|
|
|
@ -5,8 +5,8 @@ fuzzy-if(cocoaWidget,0-1,0-1) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu
|
|||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == bidi-001.html bidi-001-ref.html # Bug 1392106
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == bidi-001-j.html bidi-001-ref.html # Bug 1392106
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == bidi-001-v.html bidi-001-ref.html # Bug 1392106
|
||||
== bidi-002.html bidi-002-ref.html
|
||||
== bidi-003.html bidi-003-ref.html
|
||||
fuzzy-if(Android,0-1,0-1) == bidi-002.html bidi-002-ref.html
|
||||
fuzzy-if(Android,0-1,0-1) == bidi-003.html bidi-003-ref.html
|
||||
fuzzy-if(gtkWidget,0-255,0-17) == bidi-004.html bidi-004-ref.html # inconsistency in the Hebrew font that gets used
|
||||
fuzzy-if(gtkWidget,0-255,0-17) == bidi-004-j.html bidi-004-ref.html # inconsistency in the Hebrew font that gets used
|
||||
== bidi-005.html bidi-005-ref.html
|
||||
|
@ -50,8 +50,8 @@ random-if(cocoaWidget) == with-first-letter-2b.html with-first-letter-2-ref.html
|
|||
== 83958-1a.html 83958-1-ref.html
|
||||
== 83958-1b.html 83958-1-ref.html
|
||||
== 83958-1c.html 83958-1-ref.html
|
||||
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,0-111,0-7) == 83958-2a.html 83958-2-ref.html
|
||||
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,0-111,0-7) == 83958-2b.html 83958-2-ref.html
|
||||
fuzzy-if(Android,0-1,0-3) fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,0-111,0-7) == 83958-2a.html 83958-2-ref.html
|
||||
fuzzy-if(Android,0-1,0-3) fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,0-111,0-7) == 83958-2b.html 83958-2-ref.html
|
||||
== 115921-1.html 115921-1-ref.html
|
||||
== 115921-2.html 115921-2-ref.html
|
||||
== 151407-1.html 151407-1-ref.html
|
||||
|
@ -162,11 +162,11 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1c-ltr.html bra
|
|||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-1c-rtl.html brackets-1c-rtl-ref.html # Bug 1392106
|
||||
fuzzy-if(Android,0-1,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2a-ltr.html brackets-2a-ltr-ref.html # Bug 1392106
|
||||
fuzzy-if(cocoaWidget,0-1,0-2) fuzzy-if(Android,0-254,0-557) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2a-rtl.html brackets-2a-rtl-ref.html # Bug 1392106
|
||||
fuzzy-if(Android,0-1,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2b-ltr.html brackets-2b-ltr-ref.html # Bug 1392106
|
||||
fuzzy-if(Android,0-1,0-8) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2b-ltr.html brackets-2b-ltr-ref.html # Bug 1392106
|
||||
fuzzy-if(cocoaWidget,0-1,0-2) fuzzy-if(Android,0-1,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2b-rtl.html brackets-2b-rtl-ref.html # Bug 1392106
|
||||
fuzzy-if(cocoaWidget,0-1,0-2) fuzzy-if(Android,0-1,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2c-ltr.html brackets-2c-ltr-ref.html # Bug 1392106
|
||||
fuzzy-if(Android,0-254,0-231) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-2c-rtl.html brackets-2c-rtl-ref.html # Bug 1392106
|
||||
fuzzy-if(cocoaWidget,0-1,0-3) fuzzy-if(Android,0-1,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3a-ltr.html brackets-3a-ltr-ref.html # Bug 1392106
|
||||
fuzzy-if(cocoaWidget,0-1,0-3) fuzzy-if(Android,0-1,0-8) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3a-ltr.html brackets-3a-ltr-ref.html # Bug 1392106
|
||||
fuzzy-if(cocoaWidget,0-1,0-2) fuzzy-if(Android,0-1,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3a-rtl.html brackets-3a-rtl-ref.html # Bug 1392106
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3b-ltr.html brackets-3b-ltr-ref.html # Bug 1392106
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == brackets-3b-rtl.html brackets-3b-rtl-ref.html # Bug 1392106
|
||||
|
|
|
@ -1608,7 +1608,7 @@ fuzzy-if(Android,0-8,0-20) fails-if(webrender) == 602200-3.html 602200-3-ref.htm
|
|||
== 602200-4.html 602200-4-ref.html
|
||||
== 603423-1.html 603423-1-ref.html
|
||||
== 604737.html 604737-ref.html
|
||||
fuzzy-if(geckoview&&webrender,11-11,630-637) fuzzy-if(webrender&&cocoaWidget,0-7,0-610) == 605138-1.html 605138-1-ref.html
|
||||
fuzzy-if(webrender&&cocoaWidget,0-7,0-610) == 605138-1.html 605138-1-ref.html
|
||||
== 605157-1.xhtml 605157-1-ref.xhtml
|
||||
== 607267-1.html 607267-1-ref.html
|
||||
== 608636-1.html 608636-1-ref.html
|
||||
|
@ -2101,8 +2101,8 @@ pref(image.downscale-during-decode.enabled,true) == 1553571-1.html 1553571-1-ref
|
|||
== 1558937-1.html 1558937-1-ref.html
|
||||
!= 1563484.html 1563484-notref.html
|
||||
== 1563484.html 1563484-ref.html
|
||||
fuzzy-if(!webrender||!winWidget,251-255,464-1613) fuzzy-if(geckoview&&webrender,251-253,1392-1397) == 1562733-rotated-nastaliq-1.html 1562733-rotated-nastaliq-1-ref.html
|
||||
fuzzy-if(winWidget&&webrender,0-31,0-3) fuzzy-if(geckoview&&webrender,0-93,0-26) == 1562733-rotated-nastaliq-2.html 1562733-rotated-nastaliq-2-ref.html
|
||||
fuzzy-if(!webrender||!winWidget,251-255,464-1613) fuzzy-if(geckoview&&webrender,251-253,1392-1401) == 1562733-rotated-nastaliq-1.html 1562733-rotated-nastaliq-1-ref.html
|
||||
fuzzy-if(winWidget&&webrender,0-31,0-3) fuzzy-if(geckoview&&webrender,0-93,0-87) == 1562733-rotated-nastaliq-2.html 1562733-rotated-nastaliq-2-ref.html
|
||||
test-pref(plain_text.wrap_long_lines,false) != 1565129.txt 1565129.txt
|
||||
fuzzy(0-32,0-8) fuzzy-if(Android&&webrender,0-32,0-1458) == 1576553-1.html 1576553-1-ref.html
|
||||
== 1579953-2.html 1579953-2-ref.html
|
||||
|
|
|
@ -25,7 +25,7 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == intrinsic-isize-2.html i
|
|||
== justification-1.html justification-1-ref.html
|
||||
== justification-2.html justification-2-ref.html
|
||||
fuzzy-if(winWidget,0-255,0-792) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == lang-specific-style-1.html lang-specific-style-1-ref.html # bug 1134947, Bug 1392106
|
||||
== line-breaking-1.html line-breaking-1-ref.html
|
||||
fuzzy-if(Android,0-96,0-18) == line-breaking-1.html line-breaking-1-ref.html
|
||||
== line-breaking-2.html line-breaking-2-ref.html
|
||||
== line-breaking-3.html line-breaking-3-ref.html
|
||||
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-3,0-2) == line-break-suppression-1.html line-break-suppression-1-ref.html
|
||||
|
|
|
@ -12,7 +12,7 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 355548-5.xml 355548-5-re
|
|||
== 373533-2.xhtml about:blank
|
||||
== 373533-3.xhtml about:blank
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 393760-1.xml 393760-1-ref.xml # Bug 1392106
|
||||
fuzzy-if(skiaContent,0-2,0-500) == 393760-2.xml 393760-2-ref.xml
|
||||
fuzzy-if(skiaContent,0-2,0-529) == 393760-2.xml 393760-2-ref.xml
|
||||
== 414123.xhtml 414123-ref.xhtml
|
||||
== dir-1.html dir-1-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == dir-2.html dir-2-ref.html # Bug 1392106
|
||||
|
@ -23,7 +23,7 @@ fuzzy-if(cocoaWidget,0-135,0-56) == dir-6a.html dir-6a-ref.html
|
|||
== css-spacing-1.html css-spacing-1-ref.html
|
||||
pref(mathml.disabled,true) == disabled-scriptlevel-1.html disabled-scriptlevel-1-ref.html
|
||||
pref(mathml.disabled,true) == disabled-scriptlevel-1.xhtml disabled-scriptlevel-1-ref.xhtml
|
||||
random-if(smallScreen&&Android) fuzzy(0-255,0-200) fuzzy-if(geckoview&&webrender,216-216,312-314) fuzzy-if(webrender&&winWidget,114-255,245-361) fuzzy-if(webrender&&OSX,79-153,307-314) == mirror-op-1.html mirror-op-1-ref.html
|
||||
random-if(smallScreen&&Android) fuzzy(0-255,0-200) fuzzy-if(geckoview&&webrender,201-216,312-316) fuzzy-if(webrender&&winWidget,114-255,245-361) fuzzy-if(webrender&&OSX,79-153,307-314) == mirror-op-1.html mirror-op-1-ref.html
|
||||
!= mirror-op-2.html mirror-op-2-ref.html
|
||||
!= mirror-op-3.html mirror-op-3-ref.html
|
||||
!= mirror-op-4.html mirror-op-4-ref.html
|
||||
|
@ -351,18 +351,18 @@ pref(mathml.deprecated_alignment_attributes.disabled,false) == mfrac-A-7.html mf
|
|||
== mfrac-B-1.html mfrac-B-1-ref.html
|
||||
pref(mathml.mfrac_linethickness_names.disabled,false) == mfrac-B-2.html mfrac-B-2-3-ref.html
|
||||
pref(mathml.mfrac_linethickness_names.disabled,false) == mfrac-B-3.html mfrac-B-2-3-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-198,0-781) == mfrac-B-4.html mfrac-B-4-5-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-239,0-781) == mfrac-B-4.html mfrac-B-4-5-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) == mfrac-B-5.html mfrac-B-4-5-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-198,0-781) == mfrac-B-6.html mfrac-B-6-7-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-239,0-781) == mfrac-B-6.html mfrac-B-6-7-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) == mfrac-B-7.html mfrac-B-6-7-ref.html
|
||||
fuzzy-if(OSX,0-1,0-100) fuzzy-if(skiaContent,0-1,0-14) == mfrac-C-1.html mfrac-C-1-ref.html
|
||||
pref(mathml.mfrac_linethickness_names.disabled,false) == mfrac-C-2.html mfrac-C-2-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-198,0-776) == mfrac-C-3.html mfrac-C-3-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-198,0-271) == mfrac-C-4.html mfrac-C-4-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-239,0-776) == mfrac-C-3.html mfrac-C-3-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-239,0-271) == mfrac-C-4.html mfrac-C-4-ref.html
|
||||
fuzzy-if(OSX,0-1,0-100) fuzzy-if(skiaContent,0-1,0-14) == mfrac-D-1.html mfrac-D-1-ref.html
|
||||
pref(mathml.mfrac_linethickness_names.disabled,false) == mfrac-D-2.html mfrac-D-2-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-198,0-776) == mfrac-D-3.html mfrac-D-3-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-198,0-271) == mfrac-D-4.html mfrac-D-4-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-239,0-776) == mfrac-D-3.html mfrac-D-3-ref.html
|
||||
pref(mathml.deprecated_alignment_attributes.disabled,false) fuzzy-if(geckoview&&webrender,0-239,0-271) == mfrac-D-4.html mfrac-D-4-ref.html
|
||||
== mfrac-E-1.html mfrac-E-1-ref.html
|
||||
== shadow-dom-1.html shadow-dom-1-ref.html
|
||||
pref(dom.meta-viewport.enabled,true) pref(font.size.inflation.emPerLine,25) fuzzy-if(webrender&&!gtkWidget,0-255,0-324) == font-inflation-1.html font-inflation-1-ref.html
|
||||
|
|
|
@ -16,26 +16,26 @@
|
|||
== clip-path-polygon-012.html clip-path-stripes-001-ref.html
|
||||
fuzzy-if(skiaContent,0-1,0-20) fuzzy-if(webrender&>kWidget,8-8,20-20) fails-if(webrender&&!gtkWidget) == clip-path-polygon-013.html clip-path-stripes-003-ref.html
|
||||
|
||||
fuzzy-if(webrender,35-35,699-708) == clip-path-circle-001.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-708) == clip-path-circle-002.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-708) == clip-path-circle-003.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-708) == clip-path-circle-004.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-005.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-708) == clip-path-circle-006.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-007.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-008.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-708) == clip-path-circle-009.html clip-path-circle-003-ref.html
|
||||
fuzzy-if(webrender,35-35,699-731) == clip-path-circle-010.html clip-path-circle-004-ref.html
|
||||
fuzzy-if(webrender,35-35,699-719) == clip-path-circle-011.html clip-path-circle-005-ref.html
|
||||
fuzzy-if(webrender,35-35,699-708) == clip-path-circle-012.html clip-path-circle-006-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-013.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,34-35,699-882) == clip-path-circle-014.html clip-path-circle-007-ref.html
|
||||
fuzzy-if(webrender,34-35,699-901) == clip-path-circle-015.html clip-path-circle-008-ref.html
|
||||
fuzzy-if(webrender,34-35,699-836) == clip-path-circle-016.html clip-path-circle-009-ref.html
|
||||
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-16,0-9) fuzzy-if(webrender,34-35,699-882) == clip-path-circle-017.html clip-path-circle-007-ref.html
|
||||
fuzzy-if(webrender,35-35,699-712) == clip-path-circle-018.html clip-path-circle-010-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-019.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-020.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-001.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-002.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-003.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-004.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-712) == clip-path-circle-005.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-006.html clip-path-circle-001-ref.html
|
||||
fuzzy-if(webrender,35-35,699-712) == clip-path-circle-007.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-712) == clip-path-circle-008.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-009.html clip-path-circle-003-ref.html
|
||||
fuzzy-if(webrender,35-35,699-733) == clip-path-circle-010.html clip-path-circle-004-ref.html
|
||||
fuzzy-if(webrender,35-35,699-721) == clip-path-circle-011.html clip-path-circle-005-ref.html
|
||||
fuzzy-if(webrender,35-35,699-710) == clip-path-circle-012.html clip-path-circle-006-ref.html
|
||||
fuzzy-if(webrender,35-35,699-712) == clip-path-circle-013.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,34-35,699-884) == clip-path-circle-014.html clip-path-circle-007-ref.html
|
||||
fuzzy-if(webrender,34-35,699-903) == clip-path-circle-015.html clip-path-circle-008-ref.html
|
||||
fuzzy-if(webrender,34-35,699-838) == clip-path-circle-016.html clip-path-circle-009-ref.html
|
||||
fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),0-16,0-9) fuzzy-if(webrender,34-35,699-884) == clip-path-circle-017.html clip-path-circle-007-ref.html
|
||||
fuzzy-if(webrender,35-35,699-714) == clip-path-circle-018.html clip-path-circle-010-ref.html
|
||||
fuzzy-if(webrender,35-35,699-712) == clip-path-circle-019.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender,35-35,699-712) == clip-path-circle-020.html clip-path-circle-002-ref.html
|
||||
fuzzy-if(webrender&&(winWidget||cocoaWidget),0-1,0-5) == clip-path-circle-021.html clip-path-circle-021-ref.html
|
||||
|
||||
fuzzy-if(webrender,36-36,1099-1100) == clip-path-ellipse-001.html clip-path-ellipse-001-ref.html
|
||||
|
|
|
@ -56,14 +56,14 @@ fuzzy-if(webrender&&winWidget,132-138,183-206) == simple-rtl.svg simple-rtl-ref.
|
|||
== multiple-x-dx-bidi.svg multiple-x-dx-bidi-ref.svg
|
||||
== multiple-x-dx-rtl.svg multiple-x-dx-rtl-ref.svg
|
||||
== multiple-x-dx.svg multiple-x-dx-ref.svg
|
||||
== multiple-x-holes-bidi.svg multiple-x-holes-bidi-ref.svg
|
||||
fuzzy-if(Android,0-65,0-55) == multiple-x-holes-bidi.svg multiple-x-holes-bidi-ref.svg
|
||||
== multiple-x-holes-dx-bidi.svg multiple-x-holes-dx-bidi-ref.svg
|
||||
== multiple-x-holes.svg multiple-x-holes-ref.svg
|
||||
== multiple-x-holes-dx.svg multiple-x-holes-dx-ref.svg
|
||||
== multiple-x-holes-multiple-dx-bidi.svg multiple-x-holes-multiple-dx-bidi-ref.svg
|
||||
== multiple-x-holes-multiple-dx-rtl.svg multiple-x-holes-multiple-dx-rtl-ref.svg
|
||||
== multiple-x-holes-multiple-dx.svg multiple-x-holes-multiple-dx-ref.svg
|
||||
== multiple-x-holes-rtl.svg multiple-x-holes-rtl-ref.svg
|
||||
fuzzy-if(Android,0-192,0-82) == multiple-x-holes-rtl.svg multiple-x-holes-rtl-ref.svg
|
||||
== multiple-x-multiple-dx-bidi.svg multiple-x-multiple-dx-bidi-ref.svg
|
||||
== multiple-x-multiple-dx-rtl.svg multiple-x-multiple-dx-rtl-ref.svg
|
||||
== multiple-x-multiple-dx.svg multiple-x-multiple-dx-ref.svg
|
||||
|
|
|
@ -186,7 +186,7 @@ random-if(!winWidget) == arial-bold-lam-alef-1.html arial-bold-lam-alef-1-ref.ht
|
|||
fails-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1320665-cmap-format-13.html 1320665-cmap-format-13-ref.html # see bug 1320665 comments 8-9
|
||||
== 1331339-script-extensions-shaping-1.html 1331339-script-extensions-shaping-1-ref.html
|
||||
skip-if(!cocoaWidget) != 1349308-1.html 1349308-notref.html # macOS-specific test for -apple-system glyph metrics
|
||||
fails-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)) == 1463020-letter-spacing-text-transform-1.html 1463020-letter-spacing-text-transform-1-ref.html # Win10: regional indicators not supported by system emoji font
|
||||
fuzzy-if(Android,0-128,0-230) fails-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)) == 1463020-letter-spacing-text-transform-1.html 1463020-letter-spacing-text-transform-1-ref.html # Win10: regional indicators not supported by system emoji font
|
||||
fails-if(Android) == 1463020-letter-spacing-text-transform-2.html 1463020-letter-spacing-text-transform-2-ref.html # missing font coverage on Android
|
||||
== 1507661-spurious-hyphenation-after-explicit.html 1507661-spurious-hyphenation-after-explicit-ref.html
|
||||
fuzzy-if(!webrender,12-66,288-1660) fails-if(gtkWidget&&!webrender) == 1522857-1.html 1522857-1-ref.html # antialiasing fuzz in non-webrender cases
|
||||
|
@ -325,7 +325,7 @@ pref(gfx.font_rendering.graphite.enabled,true) == glyph-decomposition-graphite.h
|
|||
== hyphenation-control-2.html hyphenation-control-2-ref.html
|
||||
== hyphenation-control-3.html hyphenation-control-3-ref.html
|
||||
== hyphenation-control-4.html hyphenation-control-4-ref.html
|
||||
fuzzy-if(winWidget,0-56,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == hyphenation-control-5.html hyphenation-control-5-ref.html # Bug 1392106
|
||||
fuzzy-if(Android,0-64,0-18) fuzzy-if(winWidget,0-56,0-6) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == hyphenation-control-5.html hyphenation-control-5-ref.html # Bug 1392106
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == hyphenation-control-6.html hyphenation-control-6-ref.html # Bug 1392106
|
||||
== hyphenation-control-7.html hyphenation-control-7-ref.html
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1102175-1b.html 1102175-
|
|||
== 1105268-2-min-max-dimensions.html 1105268-2-min-max-dimensions-ref.html
|
||||
== 1106669-1-intrinsic-for-container.html 1106669-1-intrinsic-for-container-ref.html
|
||||
== 1108923-1-percentage-margins.html 1108923-1-percentage-margins-ref.html
|
||||
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1111944-1-list-marker.html 1111944-1-list-marker-ref.html # Bug 1392106
|
||||
fuzzy-if(Android,0-128,0-78) random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1111944-1-list-marker.html 1111944-1-list-marker-ref.html # Bug 1392106
|
||||
fuzzy(0-116,0-94) fuzzy-if(winWidget,0-135,0-124) == 1115916-1-vertical-metrics.html 1115916-1-vertical-metrics-ref.html
|
||||
== 1117210-1-vertical-baseline-snap.html 1117210-1-vertical-baseline-snap-ref.html
|
||||
== 1117227-1-text-overflow.html 1117227-1-text-overflow-ref.html
|
||||
|
@ -150,7 +150,7 @@ random-if(gtkWidget) == 1193519-sideways-lr-1.html 1193519-sideways-lr-1-ref.htm
|
|||
random-if(gtkWidget) == 1193519-sideways-lr-2.html 1193519-sideways-lr-2-ref.html
|
||||
fuzzy-if(winWidget,0-3,0-84) fails-if(webrender&&winWidget) == 1193519-sideways-lr-3.html 1193519-sideways-lr-3-ref.html
|
||||
fuzzy-if(winWidget,0-3,0-112) fails-if(webrender&&!cocoaWidget) fails-if(Android) random-if(gtkWidget) == 1193519-sideways-lr-4.html 1193519-sideways-lr-4-ref.html # see bug 1366692. Rounding error with WR enabled, and on Android.
|
||||
fuzzy-if(gtkWidget,0-255,0-12) fuzzy-if(cocoaWidget,0-65,0-69) fuzzy-if(geckoview&&webrender,0-255,0-7) == 1193519-sideways-lr-decoration-1.html 1193519-sideways-lr-decoration-1-ref.html
|
||||
fuzzy-if(gtkWidget,0-255,0-12) fuzzy-if(cocoaWidget,0-65,0-69) fuzzy-if(geckoview&&webrender,0-255,0-13) == 1193519-sideways-lr-decoration-1.html 1193519-sideways-lr-decoration-1-ref.html
|
||||
|
||||
== 1196887-1-computed-display-inline-block.html 1196887-1-computed-display-inline-block-ref.html
|
||||
== 1205787-legacy-svg-values-1.html 1205787-legacy-svg-values-1-ref.html
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[floats-143.xht]
|
||||
expected:
|
||||
if (os == "win"): FAIL
|
||||
if (os == "android"): FAIL
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
[white-space-processing-054.xht]
|
||||
expected:
|
||||
if os == "android": FAIL
|
|
@ -2,5 +2,3 @@
|
|||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -2,5 +2,3 @@
|
|||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -2,5 +2,3 @@
|
|||
expected:
|
||||
if os == "win": FAIL
|
||||
if os == "mac": FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
expected:
|
||||
if (os == "win") and (version == "6.1.7601"): FAIL
|
||||
if not webrender and (os == "win") and (version == "10.0.17134"): FAIL
|
||||
if (os == "android"): FAIL
|
||||
|
|
|
@ -6,4 +6,4 @@
|
|||
if not webrender and (os == "win") and (version == "10.0.17134"): FAIL
|
||||
if os == "mac": FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: PASS
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
[text-emphasis-style-021.html]
|
||||
expected:
|
||||
if (os == "android") and not e10s: PASS
|
||||
if (os == "android") and e10s: PASS
|
||||
FAIL
|
||||
|
|
|
@ -2,5 +2,3 @@
|
|||
expected:
|
||||
if (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "mac") and (version == "OS X 10.14.5") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -2,5 +2,3 @@
|
|||
expected:
|
||||
if (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "mac") and (version == "OS X 10.14.5") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
[transform-input-004.html]
|
||||
expected:
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "mac") and (version == "OS X 10.14.5") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -2,5 +2,3 @@
|
|||
expected:
|
||||
if (os == "mac") and (version == "OS X 10.14") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "mac") and (version == "OS X 10.14.5") and (processor == "x86_64") and (bits == 64): FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
[transform-input-014.html]
|
||||
expected:
|
||||
if os == "mac": FAIL
|
||||
if (os == "android") and not e10s: FAIL
|
||||
if (os == "android") and e10s: FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[frac-parameters-gap-001.html]
|
||||
expected:
|
||||
if os == "android": PASS
|
||||
if os == "linux": PASS
|
||||
FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[frac-parameters-gap-002.html]
|
||||
expected:
|
||||
if os == "android": PASS
|
||||
if os == "linux": PASS
|
||||
FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[frac-parameters-gap-003.html]
|
||||
expected:
|
||||
if os == "android": PASS
|
||||
if os == "linux": PASS
|
||||
FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[frac-parameters-gap-004.html]
|
||||
expected:
|
||||
if os == "android": PASS
|
||||
if os == "linux": PASS
|
||||
FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[frac-parameters-gap-005.html]
|
||||
expected:
|
||||
if os == "linux": PASS
|
||||
if os == "android": PASS
|
||||
FAIL
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[frac-parameters-gap-006.html]
|
||||
expected:
|
||||
if os == "linux": PASS
|
||||
if os == "android": PASS
|
||||
FAIL
|
||||
|
|
Загрузка…
Ссылка в новой задаче