Use all font managers to discover fonts for strut. (flutter/engine#7734)

This commit is contained in:
Gary Qian 2019-02-12 03:32:59 -08:00 committed by GitHub
parent ed082a7004
commit b5b92f94ec
4 changed files with 68 additions and 90 deletions

View File

@ -178,26 +178,6 @@ FontCollection::GetMinikinFontCollectionForFamilies(
return font_collection;
}
minikin::MinikinFont* FontCollection::GetMinikinFontForFamilies(
const std::vector<std::string>& font_families,
minikin::FontStyle style) {
std::shared_ptr<minikin::FontFamily> font_family = nullptr;
for (std::string family_name : font_families) {
font_family = FindFontFamilyInManagers(family_name);
if (font_family != nullptr) {
break;
}
}
if (font_family == nullptr) {
const auto default_font_family = GetDefaultFontFamily();
font_family = FindFontFamilyInManagers(default_font_family);
}
if (font_family == nullptr) {
return nullptr;
}
return font_family.get()->getClosestMatch(style).font;
}
std::shared_ptr<minikin::FontFamily> FontCollection::FindFontFamilyInManagers(
const std::string& family_name) {
// Search for the font family in each font manager.

View File

@ -49,10 +49,6 @@ class FontCollection : public std::enable_shared_from_this<FontCollection> {
const std::vector<std::string>& font_families,
const std::string& locale);
minikin::MinikinFont* GetMinikinFontForFamilies(
const std::vector<std::string>& font_families,
minikin::FontStyle style);
// Provides a FontFamily that contains glyphs for ch. This caches previously
// matched fonts. Also see FontCollection::DoMatchFallbackFont.
const std::shared_ptr<minikin::FontFamily>& MatchFallbackFont(

View File

@ -441,18 +441,20 @@ void Paragraph::ComputeStrut(StrutMetrics* strut, SkFont& font) {
// force_strut makes all lines have exactly the strut metrics, and ignores all
// actual metrics. We only force the strut if the strut is non-zero and valid.
strut->force_strut = paragraph_style_.force_strut_height && valid_strut;
const FontSkia* font_skia =
static_cast<const FontSkia*>(font_collection_->GetMinikinFontForFamilies(
paragraph_style_.strut_font_families,
// TODO(garyq): The variant is currently set to 0 (default) as we do
// not have a property to set it with. We should eventually support
// default, compact, and elegant variants.
minikin::FontStyle(
0, GetWeight(paragraph_style_.strut_font_weight),
paragraph_style_.strut_font_style == FontStyle::italic)));
minikin::FontStyle minikin_font_style(
0, GetWeight(paragraph_style_.strut_font_weight),
paragraph_style_.strut_font_style == FontStyle::italic);
if (font_skia != nullptr) {
font.setTypeface(font_skia->GetSkTypeface());
std::shared_ptr<minikin::FontCollection> collection =
font_collection_->GetMinikinFontCollectionForFamilies(
paragraph_style_.strut_font_families, "");
if (!collection) {
return;
}
minikin::FakedFont faked_font = collection->baseFontFaked(minikin_font_style);
if (faked_font.font != nullptr) {
font.setTypeface(static_cast<FontSkia*>(faked_font.font)->GetSkTypeface());
font.setSize(paragraph_style_.strut_font_size);
SkFontMetrics strut_metrics;
font.getMetrics(&strut_metrics);

View File

@ -2755,7 +2755,7 @@ TEST_F(ParagraphTest, FontFallbackParagraph) {
//
// TODO(garyq): Re-enable strut tests, allow font metric fakery, or
// consolidate skia font metric behavior.
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph1)) {
// The chinese extra height should be absorbed by the strut.
const char* text = "01234満毎冠p来É本可\nabcd\n満毎É行p昼本可";
auto icu_text = icu::UnicodeString::fromUTF8(text);
@ -2767,7 +2767,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
paragraph_style.strut_font_families = std::vector<std::string>(1, "BlahFake");
paragraph_style.strut_font_families.push_back("ahem");
paragraph_style.strut_font_size = 50;
paragraph_style.strut_height = 1.5;
paragraph_style.strut_height = 1.8;
paragraph_style.strut_leading = 0.1;
paragraph_style.strut_enabled = true;
@ -2781,7 +2781,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
text_style.font_weight = FontWeight::w500;
text_style.word_spacing = 0;
text_style.color = SK_ColorBLACK;
text_style.height = 1;
text_style.height = .5;
builder.PushStyle(text_style);
builder.AddText(u16_text);
@ -2820,9 +2820,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 34.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 84.5);
boxes = paragraph->GetRectsForRange(0, 1, rect_height_max_style,
rect_width_style);
@ -2831,9 +2831,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 34.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 89);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 95);
boxes =
paragraph->GetRectsForRange(6, 10, rect_height_style, rect_width_style);
@ -2842,9 +2842,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 34.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 84.5);
boxes = paragraph->GetRectsForRange(6, 10, rect_height_max_style,
rect_width_style);
@ -2853,9 +2853,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 34.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 89);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 95);
boxes = paragraph->GetRectsForRange(14, 16, rect_height_max_style,
rect_width_style);
@ -2864,9 +2864,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 208.31348);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 224.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 267);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 285);
boxes = paragraph->GetRectsForRange(20, 25, rect_height_max_style,
rect_width_style);
@ -2875,9 +2875,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 297.31348);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 319.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 356);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 380);
ASSERT_TRUE(Snapshot());
}
@ -2887,7 +2887,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph1)) {
//
// TODO(garyq): Re-enable strut tests, allow font metric fakery, or
// consolidate skia font metric behavior.
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph2)) {
// This string is all one size and smaller than the strut metrics.
const char* text = "01234ABCDEFGH\nabcd\nABCDEFGH";
auto icu_text = icu::UnicodeString::fromUTF8(text);
@ -2949,9 +2949,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 33.229004);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 24);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 83.229004);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
boxes = paragraph->GetRectsForRange(0, 1, rect_height_max_style,
rect_width_style);
@ -2960,9 +2960,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 33.229004);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 24);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 91);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
boxes =
paragraph->GetRectsForRange(6, 10, rect_height_style, rect_width_style);
@ -2971,9 +2971,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 33.229004);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 24);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 83.229004);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
boxes = paragraph->GetRectsForRange(6, 10, rect_height_max_style,
rect_width_style);
@ -2982,9 +2982,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 33.229004);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 24);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 91);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
boxes = paragraph->GetRectsForRange(14, 16, rect_height_max_style,
rect_width_style);
@ -2993,9 +2993,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 215.229);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 184);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 273);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 240);
boxes = paragraph->GetRectsForRange(20, 25, rect_height_max_style,
rect_width_style);
@ -3004,9 +3004,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 306.229);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 264);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 364);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 320);
ASSERT_TRUE(Snapshot());
}
@ -3016,7 +3016,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph2)) {
//
// TODO(garyq): Re-enable strut tests, allow font metric fakery, or
// consolidate skia font metric behavior.
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutParagraph3)) {
// The strut is too small to absorb the extra chinese height, but the english
// second line height is increased due to strut.
const char* text = "01234満毎p行来昼本可\nabcd\n満毎冠行来昼本可";
@ -3028,7 +3028,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
paragraph_style.max_lines = 10;
paragraph_style.strut_font_families = std::vector<std::string>(1, "ahem");
paragraph_style.strut_font_size = 50;
paragraph_style.strut_height = 1.1;
paragraph_style.strut_height = 1.2;
paragraph_style.strut_enabled = true;
txt::ParagraphBuilder builder(paragraph_style, GetTestFontCollection());
@ -3079,9 +3079,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 10.526855);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 8);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 60.526855);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 58);
boxes = paragraph->GetRectsForRange(0, 1, rect_height_max_style,
rect_width_style);
@ -3090,9 +3090,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 10.526855);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 8);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 63);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 60);
boxes =
paragraph->GetRectsForRange(6, 10, rect_height_style, rect_width_style);
@ -3101,9 +3101,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 10.526855);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 8);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 60.526855);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 58);
boxes = paragraph->GetRectsForRange(6, 10, rect_height_max_style,
rect_width_style);
@ -3112,9 +3112,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 10.526855);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 8);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 63);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 60);
boxes = paragraph->GetRectsForRange(14, 16, rect_height_max_style,
rect_width_style);
@ -3123,9 +3123,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 136.52686);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 128);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 189);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 180);
boxes = paragraph->GetRectsForRange(20, 25, rect_height_max_style,
rect_width_style);
@ -3134,9 +3134,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 199.52686);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 252);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 240);
ASSERT_TRUE(Snapshot());
}
@ -3146,7 +3146,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutParagraph3)) {
//
// TODO(garyq): Re-enable strut tests, allow font metric fakery, or
// consolidate skia font metric behavior.
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutForceParagraph)) {
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(StrutForceParagraph)) {
// The strut is too small to absorb the extra chinese height, but the english
// second line height is increased due to strut.
const char* text = "01234満毎冠行来昼本可\nabcd\n満毎冠行来昼本可";
@ -3210,9 +3210,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutForceParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 22.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 72.5);
boxes = paragraph->GetRectsForRange(0, 1, rect_height_max_style,
rect_width_style);
@ -3221,9 +3221,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutForceParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 22.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 89);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
boxes =
paragraph->GetRectsForRange(6, 10, rect_height_style, rect_width_style);
@ -3232,9 +3232,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutForceParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 22.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 72.5);
boxes = paragraph->GetRectsForRange(6, 10, rect_height_max_style,
rect_width_style);
@ -3243,9 +3243,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutForceParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 30.313477);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 22.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 500);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 89);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
boxes = paragraph->GetRectsForRange(14, 16, rect_height_max_style,
rect_width_style);
@ -3254,9 +3254,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutForceParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 208.31348);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 182.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 100);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 267);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 240);
boxes = paragraph->GetRectsForRange(20, 25, rect_height_max_style,
rect_width_style);
@ -3265,9 +3265,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(DISABLED_StrutForceParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 50);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 297.31348);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 262.5);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 300);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 356);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 320);
ASSERT_TRUE(Snapshot());
}