Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(549)

Side by Side Diff: ui/gfx/render_text_unittest.cc

Issue 2943823002: Remove gfx::DIAGONAL_STRIKE and supporting code. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/gfx/render_text_mac.mm ('k') | ui/gfx/text_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/gfx/render_text.h" 5 #include "ui/gfx/render_text.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 const wchar_t kRtl[] = L"\x5d0\x5d1\x5d2"; 158 const wchar_t kRtl[] = L"\x5d0\x5d1\x5d2";
159 const wchar_t kLtrRtl[] = L"a" L"\x5d0\x5d1"; 159 const wchar_t kLtrRtl[] = L"a" L"\x5d0\x5d1";
160 const wchar_t kLtrRtlLtr[] = L"a" L"\x5d1" L"b"; 160 const wchar_t kLtrRtlLtr[] = L"a" L"\x5d1" L"b";
161 const wchar_t kRtlLtr[] = L"\x5d0\x5d1" L"a"; 161 const wchar_t kRtlLtr[] = L"\x5d0\x5d1" L"a";
162 const wchar_t kRtlLtrRtl[] = L"\x5d0" L"a" L"\x5d1"; 162 const wchar_t kRtlLtrRtl[] = L"\x5d0" L"a" L"\x5d1";
163 163
164 // Bitmasks based on gfx::TextStyle. 164 // Bitmasks based on gfx::TextStyle.
165 enum { 165 enum {
166 ITALIC_MASK = 1 << ITALIC, 166 ITALIC_MASK = 1 << ITALIC,
167 STRIKE_MASK = 1 << STRIKE, 167 STRIKE_MASK = 1 << STRIKE,
168 DIAGONAL_STRIKE_MASK = 1 << DIAGONAL_STRIKE,
169 UNDERLINE_MASK = 1 << UNDERLINE, 168 UNDERLINE_MASK = 1 << UNDERLINE,
170 }; 169 };
171 170
172 // Checks whether |range| contains |index|. This is not the same as calling 171 // Checks whether |range| contains |index|. This is not the same as calling
173 // range.Contains(Range(index)), which returns true if |index| == |range.end()|. 172 // range.Contains(Range(index)), which returns true if |index| == |range.end()|.
174 bool IndexInRange(const Range& range, size_t index) { 173 bool IndexInRange(const Range& range, size_t index) {
175 return index >= range.start() && index < range.end(); 174 return index >= range.start() && index < range.end();
176 } 175 }
177 176
178 base::string16 GetSelectedText(RenderText* render_text) { 177 base::string16 GetSelectedText(RenderText* render_text) {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 int font_style = Font::NORMAL; 243 int font_style = Font::NORMAL;
245 if (style_mask & ITALIC_MASK) 244 if (style_mask & ITALIC_MASK)
246 font_style |= Font::ITALIC; 245 font_style |= Font::ITALIC;
247 if (style_mask & UNDERLINE_MASK) 246 if (style_mask & UNDERLINE_MASK)
248 font_style |= Font::UNDERLINE; 247 font_style |= Font::UNDERLINE;
249 248
250 const Font font_with_style = font.Derive(0, font_style, weight); 249 const Font font_with_style = font.Derive(0, font_style, weight);
251 DecoratedText::RangedAttribute attributes(Range(index, index + 1), 250 DecoratedText::RangedAttribute attributes(Range(index, index + 1),
252 font_with_style); 251 font_with_style);
253 attributes.strike = style_mask & STRIKE_MASK; 252 attributes.strike = style_mask & STRIKE_MASK;
254 attributes.diagonal_strike = style_mask & DIAGONAL_STRIKE_MASK;
255 return attributes; 253 return attributes;
256 } 254 }
257 255
258 // Verifies the given DecoratedText instances are equal by comparing the 256 // Verifies the given DecoratedText instances are equal by comparing the
259 // respective strings and attributes for each index. Note, corresponding 257 // respective strings and attributes for each index. Note, corresponding
260 // ranged attributes from |expected| and |actual| can't be compared since the 258 // ranged attributes from |expected| and |actual| can't be compared since the
261 // partition of |actual| into RangedAttributes will depend on the text runs 259 // partition of |actual| into RangedAttributes will depend on the text runs
262 // generated. 260 // generated.
263 void VerifyDecoratedWordsAreEqual(const DecoratedText& expected, 261 void VerifyDecoratedWordsAreEqual(const DecoratedText& expected,
264 const DecoratedText& actual) { 262 const DecoratedText& actual) {
265 ASSERT_EQ(expected.text, actual.text); 263 ASSERT_EQ(expected.text, actual.text);
266 264
267 // Compare attributes for each index. 265 // Compare attributes for each index.
268 for (size_t i = 0; i < expected.text.length(); i++) { 266 for (size_t i = 0; i < expected.text.length(); i++) {
269 SCOPED_TRACE(base::StringPrintf("Comparing index[%" PRIuS "]", i)); 267 SCOPED_TRACE(base::StringPrintf("Comparing index[%" PRIuS "]", i));
270 auto find_attribute_func = [i](const DecoratedText::RangedAttribute& attr) { 268 auto find_attribute_func = [i](const DecoratedText::RangedAttribute& attr) {
271 return IndexInRange(attr.range, i); 269 return IndexInRange(attr.range, i);
272 }; 270 };
273 const auto expected_attr = 271 const auto expected_attr =
274 std::find_if(expected.attributes.begin(), expected.attributes.end(), 272 std::find_if(expected.attributes.begin(), expected.attributes.end(),
275 find_attribute_func); 273 find_attribute_func);
276 const auto actual_attr = 274 const auto actual_attr =
277 std::find_if(actual.attributes.begin(), actual.attributes.end(), 275 std::find_if(actual.attributes.begin(), actual.attributes.end(),
278 find_attribute_func); 276 find_attribute_func);
279 ASSERT_NE(expected.attributes.end(), expected_attr); 277 ASSERT_NE(expected.attributes.end(), expected_attr);
280 ASSERT_NE(actual.attributes.end(), actual_attr); 278 ASSERT_NE(actual.attributes.end(), actual_attr);
281 279
282 EXPECT_EQ(expected_attr->strike, actual_attr->strike); 280 EXPECT_EQ(expected_attr->strike, actual_attr->strike);
283 EXPECT_EQ(expected_attr->diagonal_strike, actual_attr->diagonal_strike);
284 EXPECT_EQ(expected_attr->font.GetFontName(), 281 EXPECT_EQ(expected_attr->font.GetFontName(),
285 actual_attr->font.GetFontName()); 282 actual_attr->font.GetFontName());
286 EXPECT_EQ(expected_attr->font.GetFontSize(), 283 EXPECT_EQ(expected_attr->font.GetFontSize(),
287 actual_attr->font.GetFontSize()); 284 actual_attr->font.GetFontSize());
288 EXPECT_EQ(expected_attr->font.GetWeight(), actual_attr->font.GetWeight()); 285 EXPECT_EQ(expected_attr->font.GetWeight(), actual_attr->font.GetWeight());
289 EXPECT_EQ(expected_attr->font.GetStyle(), actual_attr->font.GetStyle()); 286 EXPECT_EQ(expected_attr->font.GetStyle(), actual_attr->font.GetStyle());
290 } 287 }
291 } 288 }
292 289
293 // Helper method to return an obscured string of the given |length|, with the 290 // Helper method to return an obscured string of the given |length|, with the
(...skipping 16 matching lines...) Expand all
310 class TestSkiaTextRenderer : public internal::SkiaTextRenderer { 307 class TestSkiaTextRenderer : public internal::SkiaTextRenderer {
311 public: 308 public:
312 struct TextLog { 309 struct TextLog {
313 TextLog() : glyph_count(0u), color(SK_ColorTRANSPARENT) {} 310 TextLog() : glyph_count(0u), color(SK_ColorTRANSPARENT) {}
314 PointF origin; 311 PointF origin;
315 size_t glyph_count; 312 size_t glyph_count;
316 SkColor color; 313 SkColor color;
317 }; 314 };
318 315
319 struct DecorationLog { 316 struct DecorationLog {
320 DecorationLog(int x, int y, int width, bool underline, bool strike, 317 DecorationLog(int x, int y, int width, bool underline, bool strike)
321 bool diagonal_strike) 318 : x(x), y(y), width(width), underline(underline), strike(strike) {}
322 : x(x), y(y), width(width), underline(underline), strike(strike),
323 diagonal_strike(diagonal_strike) {}
324 int x; 319 int x;
325 int y; 320 int y;
326 int width; 321 int width;
327 bool underline; 322 bool underline;
328 bool strike; 323 bool strike;
329 bool diagonal_strike;
330 }; 324 };
331 325
332 explicit TestSkiaTextRenderer(Canvas* canvas) 326 explicit TestSkiaTextRenderer(Canvas* canvas)
333 : internal::SkiaTextRenderer(canvas) {} 327 : internal::SkiaTextRenderer(canvas) {}
334 ~TestSkiaTextRenderer() override {} 328 ~TestSkiaTextRenderer() override {}
335 329
336 void GetTextLogAndReset(std::vector<TextLog>* text_log) { 330 void GetTextLogAndReset(std::vector<TextLog>* text_log) {
337 text_log_.swap(*text_log); 331 text_log_.swap(*text_log);
338 text_log_.clear(); 332 text_log_.clear();
339 } 333 }
(...skipping 17 matching lines...) Expand all
357 log_entry.origin.SetToMin( 351 log_entry.origin.SetToMin(
358 PointF(SkScalarToFloat(pos[i].x()), SkScalarToFloat(pos[i].y()))); 352 PointF(SkScalarToFloat(pos[i].x()), SkScalarToFloat(pos[i].y())));
359 } 353 }
360 } 354 }
361 log_entry.color = 355 log_entry.color =
362 test::RenderTextTestApi::GetRendererPaint(this).getColor(); 356 test::RenderTextTestApi::GetRendererPaint(this).getColor();
363 text_log_.push_back(log_entry); 357 text_log_.push_back(log_entry);
364 internal::SkiaTextRenderer::DrawPosText(pos, glyphs, glyph_count); 358 internal::SkiaTextRenderer::DrawPosText(pos, glyphs, glyph_count);
365 } 359 }
366 360
367 void DrawDecorations(int x, int y, int width, bool underline, bool strike, 361 void DrawDecorations(int x,
368 bool diagonal_strike) override { 362 int y,
369 decoration_log_.push_back( 363 int width,
370 DecorationLog(x, y, width, underline, strike, diagonal_strike)); 364 bool underline,
371 internal::SkiaTextRenderer::DrawDecorations( 365 bool strike) override {
372 x, y, width, underline, strike, diagonal_strike); 366 decoration_log_.push_back(DecorationLog(x, y, width, underline, strike));
367 internal::SkiaTextRenderer::DrawDecorations(x, y, width, underline, strike);
373 } 368 }
374 369
375 std::vector<TextLog> text_log_; 370 std::vector<TextLog> text_log_;
376 std::vector<DecorationLog> decoration_log_; 371 std::vector<DecorationLog> decoration_log_;
377 372
378 DISALLOW_COPY_AND_ASSIGN(TestSkiaTextRenderer); 373 DISALLOW_COPY_AND_ASSIGN(TestSkiaTextRenderer);
379 }; 374 };
380 375
381 // Given a buffer to test against, this can be used to test various areas of the 376 // Given a buffer to test against, this can be used to test various areas of the
382 // rectangular buffer against a specific color value. 377 // rectangular buffer against a specific color value.
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
1049 base::string16 input_text; 1044 base::string16 input_text;
1050 // Aim for 3 lines of text. 1045 // Aim for 3 lines of text.
1051 for (int i = 0; i < 20; ++i) 1046 for (int i = 0; i < 20; ++i)
1052 input_text.append(ASCIIToUTF16("hello world ")); 1047 input_text.append(ASCIIToUTF16("hello world "));
1053 render_text->SetText(input_text); 1048 render_text->SetText(input_text);
1054 // Apply a style that tweaks the layout to make sure elision is calculated 1049 // Apply a style that tweaks the layout to make sure elision is calculated
1055 // with these styles. This can expose a behavior in layout where text is 1050 // with these styles. This can expose a behavior in layout where text is
1056 // slightly different width. This must be done after |SetText()|. 1051 // slightly different width. This must be done after |SetText()|.
1057 render_text->ApplyWeight(Font::Weight::BOLD, Range(1, 20)); 1052 render_text->ApplyWeight(Font::Weight::BOLD, Range(1, 20));
1058 render_text->ApplyStyle(ITALIC, true, Range(1, 20)); 1053 render_text->ApplyStyle(ITALIC, true, Range(1, 20));
1059 render_text->ApplyStyle(DIAGONAL_STRIKE, true, Range(1, 20));
1060 render_text->SetMultiline(true); 1054 render_text->SetMultiline(true);
1061 render_text->SetElideBehavior(ELIDE_TAIL); 1055 render_text->SetElideBehavior(ELIDE_TAIL);
1062 render_text->SetMaxLines(3); 1056 render_text->SetMaxLines(3);
1063 const Size size = render_text->GetStringSize(); 1057 const Size size = render_text->GetStringSize();
1064 // Fit in 3 lines. (If we knew the width of a word, we could 1058 // Fit in 3 lines. (If we knew the width of a word, we could
1065 // anticipate word wrap better.) 1059 // anticipate word wrap better.)
1066 render_text->SetDisplayRect(Rect((size.width() + 96) / 3, 0)); 1060 render_text->SetDisplayRect(Rect((size.width() + 96) / 3, 0));
1067 // Trigger rendering. 1061 // Trigger rendering.
1068 render_text->GetStringSize(); 1062 render_text->GetStringSize();
1069 EXPECT_EQ(input_text, render_text->GetDisplayText()); 1063 EXPECT_EQ(input_text, render_text->GetDisplayText());
(...skipping 2994 matching lines...) Expand 10 before | Expand all | Expand 10 after
4064 const base::string16 ltr = ASCIIToUTF16(" ab c "); 4058 const base::string16 ltr = ASCIIToUTF16(" ab c ");
4065 const int kWordOneStartIndex = 2; 4059 const int kWordOneStartIndex = 2;
4066 const int kWordTwoStartIndex = 6; 4060 const int kWordTwoStartIndex = 6;
4067 4061
4068 RenderText* render_text = GetRenderText(); 4062 RenderText* render_text = GetRenderText();
4069 render_text->SetDisplayRect(Rect(100, 30)); 4063 render_text->SetDisplayRect(Rect(100, 30));
4070 render_text->SetText(ltr); 4064 render_text->SetText(ltr);
4071 render_text->ApplyWeight(Font::Weight::SEMIBOLD, Range(0, 3)); 4065 render_text->ApplyWeight(Font::Weight::SEMIBOLD, Range(0, 3));
4072 render_text->ApplyStyle(UNDERLINE, true, Range(1, 5)); 4066 render_text->ApplyStyle(UNDERLINE, true, Range(1, 5));
4073 render_text->ApplyStyle(ITALIC, true, Range(3, 8)); 4067 render_text->ApplyStyle(ITALIC, true, Range(3, 8));
4074 render_text->ApplyStyle(DIAGONAL_STRIKE, true, Range(5, 7));
4075 render_text->ApplyStyle(STRIKE, true, Range(1, 7)); 4068 render_text->ApplyStyle(STRIKE, true, Range(1, 7));
4076 const int cursor_y = GetCursorYForTesting(); 4069 const int cursor_y = GetCursorYForTesting();
4077 4070
4078 const std::vector<RenderText::FontSpan> font_spans = 4071 const std::vector<RenderText::FontSpan> font_spans =
4079 render_text->GetFontSpansForTesting(); 4072 render_text->GetFontSpansForTesting();
4080 4073
4081 // Create expected decorated text instances. 4074 // Create expected decorated text instances.
4082 DecoratedText expected_word_1; 4075 DecoratedText expected_word_1;
4083 expected_word_1.text = ASCIIToUTF16("ab"); 4076 expected_word_1.text = ASCIIToUTF16("ab");
4084 // Attributes for the characters 'a' and 'b' at logical indices 2 and 3 4077 // Attributes for the characters 'a' and 'b' at logical indices 2 and 3
4085 // respectively. 4078 // respectively.
4086 expected_word_1.attributes.push_back(CreateRangedAttribute( 4079 expected_word_1.attributes.push_back(CreateRangedAttribute(
4087 font_spans, 0, kWordOneStartIndex, Font::Weight::SEMIBOLD, 4080 font_spans, 0, kWordOneStartIndex, Font::Weight::SEMIBOLD,
4088 UNDERLINE_MASK | STRIKE_MASK)); 4081 UNDERLINE_MASK | STRIKE_MASK));
4089 expected_word_1.attributes.push_back(CreateRangedAttribute( 4082 expected_word_1.attributes.push_back(CreateRangedAttribute(
4090 font_spans, 1, kWordOneStartIndex + 1, Font::Weight::NORMAL, 4083 font_spans, 1, kWordOneStartIndex + 1, Font::Weight::NORMAL,
4091 UNDERLINE_MASK | ITALIC_MASK | STRIKE_MASK)); 4084 UNDERLINE_MASK | ITALIC_MASK | STRIKE_MASK));
4092 const Rect left_glyph_word_1 = render_text->GetCursorBounds( 4085 const Rect left_glyph_word_1 = render_text->GetCursorBounds(
4093 SelectionModel(kWordOneStartIndex, CURSOR_FORWARD), false); 4086 SelectionModel(kWordOneStartIndex, CURSOR_FORWARD), false);
4094 4087
4095 DecoratedText expected_word_2; 4088 DecoratedText expected_word_2;
4096 expected_word_2.text = ASCIIToUTF16("c"); 4089 expected_word_2.text = ASCIIToUTF16("c");
4097 // Attributes for character 'c' at logical index |kWordTwoStartIndex|. 4090 // Attributes for character 'c' at logical index |kWordTwoStartIndex|.
4098 expected_word_2.attributes.push_back(CreateRangedAttribute( 4091 expected_word_2.attributes.push_back(
4099 font_spans, 0, kWordTwoStartIndex, Font::Weight::NORMAL, 4092 CreateRangedAttribute(font_spans, 0, kWordTwoStartIndex,
4100 ITALIC_MASK | DIAGONAL_STRIKE_MASK | STRIKE_MASK)); 4093 Font::Weight::NORMAL, ITALIC_MASK | STRIKE_MASK));
4101 const Rect left_glyph_word_2 = render_text->GetCursorBounds( 4094 const Rect left_glyph_word_2 = render_text->GetCursorBounds(
4102 SelectionModel(kWordTwoStartIndex, CURSOR_FORWARD), false); 4095 SelectionModel(kWordTwoStartIndex, CURSOR_FORWARD), false);
4103 4096
4104 DecoratedText decorated_word; 4097 DecoratedText decorated_word;
4105 Point baseline_point; 4098 Point baseline_point;
4106 4099
4107 { 4100 {
4108 SCOPED_TRACE(base::StringPrintf("Query to the left of text bounds")); 4101 SCOPED_TRACE(base::StringPrintf("Query to the left of text bounds"));
4109 EXPECT_TRUE(render_text->GetDecoratedWordAtPoint( 4102 EXPECT_TRUE(render_text->GetDecoratedWordAtPoint(
4110 Point(-5, cursor_y), &decorated_word, &baseline_point)); 4103 Point(-5, cursor_y), &decorated_word, &baseline_point));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
4149 L"\x0634"); 4142 L"\x0634");
4150 const int kWordOneStartIndex = 1; 4143 const int kWordOneStartIndex = 1;
4151 const int kWordTwoStartIndex = 5; 4144 const int kWordTwoStartIndex = 5;
4152 4145
4153 RenderText* render_text = GetRenderText(); 4146 RenderText* render_text = GetRenderText();
4154 render_text->SetDisplayRect(Rect(100, 30)); 4147 render_text->SetDisplayRect(Rect(100, 30));
4155 render_text->SetText(rtl); 4148 render_text->SetText(rtl);
4156 render_text->ApplyWeight(Font::Weight::SEMIBOLD, Range(2, 3)); 4149 render_text->ApplyWeight(Font::Weight::SEMIBOLD, Range(2, 3));
4157 render_text->ApplyStyle(UNDERLINE, true, Range(3, 6)); 4150 render_text->ApplyStyle(UNDERLINE, true, Range(3, 6));
4158 render_text->ApplyStyle(ITALIC, true, Range(0, 3)); 4151 render_text->ApplyStyle(ITALIC, true, Range(0, 3));
4159 render_text->ApplyStyle(DIAGONAL_STRIKE, true, Range(0, 2));
4160 render_text->ApplyStyle(STRIKE, true, Range(2, 5)); 4152 render_text->ApplyStyle(STRIKE, true, Range(2, 5));
4161 const int cursor_y = GetCursorYForTesting(); 4153 const int cursor_y = GetCursorYForTesting();
4162 4154
4163 const std::vector<RenderText::FontSpan> font_spans = 4155 const std::vector<RenderText::FontSpan> font_spans =
4164 render_text->GetFontSpansForTesting(); 4156 render_text->GetFontSpansForTesting();
4165 4157
4166 // Create expected decorated text instance. 4158 // Create expected decorated text instance.
4167 DecoratedText expected_word_1; 4159 DecoratedText expected_word_1;
4168 expected_word_1.text = WideToUTF16(L"\x0634\x0632"); 4160 expected_word_1.text = WideToUTF16(L"\x0634\x0632");
4169 // Attributes for characters at logical indices 1 and 2. 4161 // Attributes for characters at logical indices 1 and 2.
4170 expected_word_1.attributes.push_back(CreateRangedAttribute( 4162 expected_word_1.attributes.push_back(CreateRangedAttribute(
4171 font_spans, 0, kWordOneStartIndex, Font::Weight::NORMAL, 4163 font_spans, 0, kWordOneStartIndex, Font::Weight::NORMAL, ITALIC_MASK));
4172 ITALIC_MASK | DIAGONAL_STRIKE_MASK));
4173 expected_word_1.attributes.push_back( 4164 expected_word_1.attributes.push_back(
4174 CreateRangedAttribute(font_spans, 1, kWordOneStartIndex + 1, 4165 CreateRangedAttribute(font_spans, 1, kWordOneStartIndex + 1,
4175 Font::Weight::SEMIBOLD, ITALIC_MASK | STRIKE_MASK)); 4166 Font::Weight::SEMIBOLD, ITALIC_MASK | STRIKE_MASK));
4176 // The leftmost glyph is the one at logical index 2. 4167 // The leftmost glyph is the one at logical index 2.
4177 const Rect left_glyph_word_1 = render_text->GetCursorBounds( 4168 const Rect left_glyph_word_1 = render_text->GetCursorBounds(
4178 SelectionModel(kWordOneStartIndex + 1, CURSOR_FORWARD), false); 4169 SelectionModel(kWordOneStartIndex + 1, CURSOR_FORWARD), false);
4179 4170
4180 DecoratedText expected_word_2; 4171 DecoratedText expected_word_2;
4181 expected_word_2.text = WideToUTF16(L"\x0634"); 4172 expected_word_2.text = WideToUTF16(L"\x0634");
4182 // Attributes for character at logical index |kWordTwoStartIndex|. 4173 // Attributes for character at logical index |kWordTwoStartIndex|.
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
4549 ::testing::Values(RENDER_TEXT_HARFBUZZ), 4540 ::testing::Values(RENDER_TEXT_HARFBUZZ),
4550 PrintRenderTextBackend()); 4541 PrintRenderTextBackend());
4551 #endif 4542 #endif
4552 4543
4553 INSTANTIATE_TEST_CASE_P(, 4544 INSTANTIATE_TEST_CASE_P(,
4554 RenderTextHarfBuzzTest, 4545 RenderTextHarfBuzzTest,
4555 ::testing::Values(RENDER_TEXT_HARFBUZZ), 4546 ::testing::Values(RENDER_TEXT_HARFBUZZ),
4556 PrintRenderTextBackend()); 4547 PrintRenderTextBackend());
4557 4548
4558 } // namespace gfx 4549 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/render_text_mac.mm ('k') | ui/gfx/text_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698