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

Side by Side Diff: Source/core/css/resolver/FontBuilder.cpp

Issue 1278103002: Oilpan: tidy up some inter-stack object references. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: use STACK_ALLOCATED() more often Created 5 years, 4 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 | « Source/core/css/resolver/FontBuilder.h ('k') | Source/core/css/resolver/SharedStyleFinder.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 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * Copyright (C) 2013 Google Inc. All rights reserved. 4 * Copyright (C) 2013 Google Inc. All rights reserved.
5 * Copyright (C) 2015 Collabora Ltd. All rights reserved. 5 * Copyright (C) 2015 Collabora Ltd. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 19 matching lines...) Expand all
30 #include "core/layout/LayoutTheme.h" 30 #include "core/layout/LayoutTheme.h"
31 #include "core/layout/LayoutView.h" 31 #include "core/layout/LayoutView.h"
32 #include "core/layout/TextAutosizer.h" 32 #include "core/layout/TextAutosizer.h"
33 #include "platform/FontFamilyNames.h" 33 #include "platform/FontFamilyNames.h"
34 #include "platform/fonts/FontDescription.h" 34 #include "platform/fonts/FontDescription.h"
35 #include "platform/text/LocaleToScriptMapping.h" 35 #include "platform/text/LocaleToScriptMapping.h"
36 36
37 namespace blink { 37 namespace blink {
38 38
39 FontBuilder::FontBuilder(const Document& document) 39 FontBuilder::FontBuilder(const Document& document)
40 : m_document(document) 40 : m_document(&document)
41 , m_flags(0) 41 , m_flags(0)
42 { 42 {
43 ASSERT(document.frame()); 43 ASSERT(document.frame());
44 } 44 }
45 45
46 void FontBuilder::setInitial(float effectiveZoom) 46 void FontBuilder::setInitial(float effectiveZoom)
47 { 47 {
48 ASSERT(m_document.settings()); 48 ASSERT(m_document->settings());
49 if (!m_document.settings()) 49 if (!m_document->settings())
50 return; 50 return;
51 51
52 setFamilyDescription(m_fontDescription, FontBuilder::initialFamilyDescriptio n()); 52 setFamilyDescription(m_fontDescription, FontBuilder::initialFamilyDescriptio n());
53 setSize(m_fontDescription, FontBuilder::initialSize()); 53 setSize(m_fontDescription, FontBuilder::initialSize());
54 } 54 }
55 55
56 void FontBuilder::didChangeEffectiveZoom() 56 void FontBuilder::didChangeEffectiveZoom()
57 { 57 {
58 set(PropertySetFlag::EffectiveZoom); 58 set(PropertySetFlag::EffectiveZoom);
59 } 59 }
(...skipping 10 matching lines...) Expand all
70 70
71 FontFamily FontBuilder::standardFontFamily() const 71 FontFamily FontBuilder::standardFontFamily() const
72 { 72 {
73 FontFamily family; 73 FontFamily family;
74 family.setFamily(standardFontFamilyName()); 74 family.setFamily(standardFontFamilyName());
75 return family; 75 return family;
76 } 76 }
77 77
78 AtomicString FontBuilder::standardFontFamilyName() const 78 AtomicString FontBuilder::standardFontFamilyName() const
79 { 79 {
80 Settings* settings = m_document.settings(); 80 Settings* settings = m_document->settings();
81 if (settings) 81 if (settings)
82 return settings->genericFontFamilySettings().standard(); 82 return settings->genericFontFamilySettings().standard();
83 return AtomicString(); 83 return AtomicString();
84 } 84 }
85 85
86 AtomicString FontBuilder::genericFontFamilyName(FontDescription::GenericFamilyTy pe genericFamily) const 86 AtomicString FontBuilder::genericFontFamilyName(FontDescription::GenericFamilyTy pe genericFamily) const
87 { 87 {
88 switch (genericFamily) { 88 switch (genericFamily) {
89 default: 89 default:
90 ASSERT_NOT_REACHED(); 90 ASSERT_NOT_REACHED();
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 220
221 fontDescription.setKeywordSize(size.keyword); 221 fontDescription.setKeywordSize(size.keyword);
222 fontDescription.setSpecifiedSize(specifiedSize); 222 fontDescription.setSpecifiedSize(specifiedSize);
223 fontDescription.setIsAbsoluteSize(size.isAbsolute); 223 fontDescription.setIsAbsoluteSize(size.isAbsolute);
224 } 224 }
225 225
226 float FontBuilder::getComputedSizeFromSpecifiedSize(FontDescription& fontDescrip tion, float effectiveZoom, float specifiedSize) 226 float FontBuilder::getComputedSizeFromSpecifiedSize(FontDescription& fontDescrip tion, float effectiveZoom, float specifiedSize)
227 { 227 {
228 float zoomFactor = effectiveZoom; 228 float zoomFactor = effectiveZoom;
229 // FIXME: Why is this here!!!!?! 229 // FIXME: Why is this here!!!!?!
230 if (LocalFrame* frame = m_document.frame()) 230 if (LocalFrame* frame = m_document->frame())
231 zoomFactor *= frame->textZoomFactor(); 231 zoomFactor *= frame->textZoomFactor();
232 232
233 return FontSize::getComputedSizeFromSpecifiedSize(&m_document, zoomFactor, f ontDescription.isAbsoluteSize(), specifiedSize); 233 return FontSize::getComputedSizeFromSpecifiedSize(m_document, zoomFactor, fo ntDescription.isAbsoluteSize(), specifiedSize);
234 } 234 }
235 235
236 static FontOrientation fontOrientation(const ComputedStyle& style) 236 static FontOrientation fontOrientation(const ComputedStyle& style)
237 { 237 {
238 if (style.isHorizontalWritingMode()) 238 if (style.isHorizontalWritingMode())
239 return FontOrientation::Horizontal; 239 return FontOrientation::Horizontal;
240 240
241 switch (style.textOrientation()) { 241 switch (style.textOrientation()) {
242 case TextOrientationVerticalRight: 242 case TextOrientationVerticalRight:
243 return FontOrientation::VerticalMixed; 243 return FontOrientation::VerticalMixed;
(...skipping 30 matching lines...) Expand all
274 if (newDescription.genericFamily() != FontDescription::MonospaceFamily 274 if (newDescription.genericFamily() != FontDescription::MonospaceFamily
275 && oldDescription.genericFamily() != FontDescription::MonospaceFamily) 275 && oldDescription.genericFamily() != FontDescription::MonospaceFamily)
276 return; 276 return;
277 277
278 // We know the parent is monospace or the child is monospace, and that font 278 // We know the parent is monospace or the child is monospace, and that font
279 // size was unspecified. We want to scale our font size as appropriate. 279 // size was unspecified. We want to scale our font size as appropriate.
280 // If the font uses a keyword size, then we refetch from the table rather th an 280 // If the font uses a keyword size, then we refetch from the table rather th an
281 // multiplying by our scale factor. 281 // multiplying by our scale factor.
282 float size; 282 float size;
283 if (newDescription.keywordSize()) { 283 if (newDescription.keywordSize()) {
284 size = FontSize::fontSizeForKeyword(&m_document, newDescription.keywordS ize(), newDescription.isMonospace()); 284 size = FontSize::fontSizeForKeyword(m_document, newDescription.keywordSi ze(), newDescription.isMonospace());
285 } else { 285 } else {
286 Settings* settings = m_document.settings(); 286 Settings* settings = m_document->settings();
287 float fixedScaleFactor = (settings && settings->defaultFixedFontSize() & & settings->defaultFontSize()) 287 float fixedScaleFactor = (settings && settings->defaultFixedFontSize() & & settings->defaultFontSize())
288 ? static_cast<float>(settings->defaultFixedFontSize()) / settings->d efaultFontSize() 288 ? static_cast<float>(settings->defaultFixedFontSize()) / settings->d efaultFontSize()
289 : 1; 289 : 1;
290 size = oldDescription.isMonospace() ? 290 size = oldDescription.isMonospace() ?
291 newDescription.specifiedSize() / fixedScaleFactor : 291 newDescription.specifiedSize() / fixedScaleFactor :
292 newDescription.specifiedSize() * fixedScaleFactor; 292 newDescription.specifiedSize() * fixedScaleFactor;
293 } 293 }
294 294
295 newDescription.setSpecifiedSize(size); 295 newDescription.setSpecifiedSize(size);
296 } 296 }
297 297
298 void FontBuilder::updateSpecifiedSize(FontDescription& fontDescription, const Co mputedStyle& style) 298 void FontBuilder::updateSpecifiedSize(FontDescription& fontDescription, const Co mputedStyle& style)
299 { 299 {
300 float specifiedSize = fontDescription.specifiedSize(); 300 float specifiedSize = fontDescription.specifiedSize();
301 301
302 if (!specifiedSize && fontDescription.keywordSize()) 302 if (!specifiedSize && fontDescription.keywordSize())
303 specifiedSize = FontSize::fontSizeForKeyword(&m_document, fontDescriptio n.keywordSize(), fontDescription.isMonospace()); 303 specifiedSize = FontSize::fontSizeForKeyword(m_document, fontDescription .keywordSize(), fontDescription.isMonospace());
304 304
305 fontDescription.setSpecifiedSize(specifiedSize); 305 fontDescription.setSpecifiedSize(specifiedSize);
306 306
307 checkForGenericFamilyChange(style.fontDescription(), fontDescription); 307 checkForGenericFamilyChange(style.fontDescription(), fontDescription);
308 } 308 }
309 309
310 void FontBuilder::updateAdjustedSize(FontDescription& fontDescription, const Com putedStyle& style, FontSelector* fontSelector) 310 void FontBuilder::updateAdjustedSize(FontDescription& fontDescription, const Com putedStyle& style, FontSelector* fontSelector)
311 { 311 {
312 const float specifiedSize = fontDescription.specifiedSize(); 312 const float specifiedSize = fontDescription.specifiedSize();
313 if (!fontDescription.hasSizeAdjust() || !specifiedSize) 313 if (!fontDescription.hasSizeAdjust() || !specifiedSize)
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 setSize(fontDescription, FontDescription::Size(FontSize::initialKeywordSize( ), 0.0f, false)); 405 setSize(fontDescription, FontDescription::Size(FontSize::initialKeywordSize( ), 0.0f, false));
406 updateSpecifiedSize(fontDescription, documentStyle); 406 updateSpecifiedSize(fontDescription, documentStyle);
407 updateComputedSize(fontDescription, documentStyle); 407 updateComputedSize(fontDescription, documentStyle);
408 408
409 updateOrientation(fontDescription, documentStyle); 409 updateOrientation(fontDescription, documentStyle);
410 documentStyle.setFontDescription(fontDescription); 410 documentStyle.setFontDescription(fontDescription);
411 documentStyle.font().update(fontSelector); 411 documentStyle.font().update(fontSelector);
412 } 412 }
413 413
414 } 414 }
OLDNEW
« no previous file with comments | « Source/core/css/resolver/FontBuilder.h ('k') | Source/core/css/resolver/SharedStyleFinder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698