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

Side by Side Diff: Source/core/editing/EditingStyle.cpp

Issue 342883004: Using Enum in place of bool for better code readability (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Comment fixes Created 6 years, 5 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/editing/EditingStyle.h ('k') | Source/platform/blink_platform.gypi » ('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) 2007, 2008, 2009 Apple Computer, Inc. 2 * Copyright (C) 2007, 2008, 2009 Apple Computer, Inc.
3 * Copyright (C) 2010, 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2010, 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 136
137 static PassRefPtrWillBeRawPtr<MutableStylePropertySet> editingStyleFromComputedS tyle(PassRefPtrWillBeRawPtr<CSSComputedStyleDeclaration> style, EditingPropertie sType type = OnlyInheritableEditingProperties) 137 static PassRefPtrWillBeRawPtr<MutableStylePropertySet> editingStyleFromComputedS tyle(PassRefPtrWillBeRawPtr<CSSComputedStyleDeclaration> style, EditingPropertie sType type = OnlyInheritableEditingProperties)
138 { 138 {
139 if (!style) 139 if (!style)
140 return MutableStylePropertySet::create(); 140 return MutableStylePropertySet::create();
141 return copyEditingProperties(style.get(), type); 141 return copyEditingProperties(style.get(), type);
142 } 142 }
143 143
144 static PassRefPtrWillBeRawPtr<MutableStylePropertySet> getPropertiesNotIn(StyleP ropertySet* styleWithRedundantProperties, CSSStyleDeclaration* baseStyle); 144 static PassRefPtrWillBeRawPtr<MutableStylePropertySet> getPropertiesNotIn(StyleP ropertySet* styleWithRedundantProperties, CSSStyleDeclaration* baseStyle);
145 enum LegacyFontSizeMode { AlwaysUseLegacyFontSize, UseLegacyFontSizeOnlyIfPixelV aluesMatch }; 145 enum LegacyFontSizeMode { AlwaysUseLegacyFontSize, UseLegacyFontSizeOnlyIfPixelV aluesMatch };
146 static int legacyFontSizeFromCSSValue(Document*, CSSPrimitiveValue*, bool should UseFixedFontDefaultSize, LegacyFontSizeMode); 146 static int legacyFontSizeFromCSSValue(Document*, CSSPrimitiveValue*, FixedPitchF ontType, LegacyFontSizeMode);
147 static bool isTransparentColorValue(CSSValue*); 147 static bool isTransparentColorValue(CSSValue*);
148 static bool hasTransparentBackgroundColor(CSSStyleDeclaration*); 148 static bool hasTransparentBackgroundColor(CSSStyleDeclaration*);
149 static bool hasTransparentBackgroundColor(StylePropertySet*); 149 static bool hasTransparentBackgroundColor(StylePropertySet*);
150 static PassRefPtrWillBeRawPtr<CSSValue> backgroundColorInEffect(Node*); 150 static PassRefPtrWillBeRawPtr<CSSValue> backgroundColorInEffect(Node*);
151 151
152 class HTMLElementEquivalent : public NoBaseWillBeGarbageCollected<HTMLElementEqu ivalent> { 152 class HTMLElementEquivalent : public NoBaseWillBeGarbageCollected<HTMLElementEqu ivalent> {
153 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; 153 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
154 DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(HTMLElementEquivalent); 154 DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(HTMLElementEquivalent);
155 public: 155 public:
156 static PassOwnPtrWillBeRawPtr<HTMLElementEquivalent> create(CSSPropertyID pr opertyID, CSSValueID primitiveValue, const QualifiedName& tagName) 156 static PassOwnPtrWillBeRawPtr<HTMLElementEquivalent> create(CSSPropertyID pr opertyID, CSSValueID primitiveValue, const QualifiedName& tagName)
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 return nullptr; 335 return nullptr;
336 CSSValueID size; 336 CSSValueID size;
337 if (!HTMLFontElement::cssValueFromFontSizeNumber(value, size)) 337 if (!HTMLFontElement::cssValueFromFontSizeNumber(value, size))
338 return nullptr; 338 return nullptr;
339 return CSSPrimitiveValue::createIdentifier(size); 339 return CSSPrimitiveValue::createIdentifier(size);
340 } 340 }
341 341
342 float EditingStyle::NoFontDelta = 0.0f; 342 float EditingStyle::NoFontDelta = 0.0f;
343 343
344 EditingStyle::EditingStyle() 344 EditingStyle::EditingStyle()
345 : m_shouldUseFixedDefaultFontSize(false) 345 : m_fixedPitchFontType(NonFixedPitchFont)
346 , m_fontSizeDelta(NoFontDelta) 346 , m_fontSizeDelta(NoFontDelta)
347 { 347 {
348 } 348 }
349 349
350 EditingStyle::EditingStyle(Node* node, PropertiesToInclude propertiesToInclude) 350 EditingStyle::EditingStyle(Node* node, PropertiesToInclude propertiesToInclude)
351 : m_shouldUseFixedDefaultFontSize(false) 351 : m_fixedPitchFontType(NonFixedPitchFont)
352 , m_fontSizeDelta(NoFontDelta) 352 , m_fontSizeDelta(NoFontDelta)
353 { 353 {
354 init(node, propertiesToInclude); 354 init(node, propertiesToInclude);
355 } 355 }
356 356
357 EditingStyle::EditingStyle(const Position& position, PropertiesToInclude propert iesToInclude) 357 EditingStyle::EditingStyle(const Position& position, PropertiesToInclude propert iesToInclude)
358 : m_shouldUseFixedDefaultFontSize(false) 358 : m_fixedPitchFontType(NonFixedPitchFont)
359 , m_fontSizeDelta(NoFontDelta) 359 , m_fontSizeDelta(NoFontDelta)
360 { 360 {
361 init(position.deprecatedNode(), propertiesToInclude); 361 init(position.deprecatedNode(), propertiesToInclude);
362 } 362 }
363 363
364 EditingStyle::EditingStyle(const StylePropertySet* style) 364 EditingStyle::EditingStyle(const StylePropertySet* style)
365 : m_mutableStyle(style ? style->mutableCopy() : nullptr) 365 : m_mutableStyle(style ? style->mutableCopy() : nullptr)
366 , m_shouldUseFixedDefaultFontSize(false) 366 , m_fixedPitchFontType(NonFixedPitchFont)
367 , m_fontSizeDelta(NoFontDelta) 367 , m_fontSizeDelta(NoFontDelta)
368 { 368 {
369 extractFontSizeDelta(); 369 extractFontSizeDelta();
370 } 370 }
371 371
372 EditingStyle::EditingStyle(CSSPropertyID propertyID, const String& value) 372 EditingStyle::EditingStyle(CSSPropertyID propertyID, const String& value)
373 : m_mutableStyle(nullptr) 373 : m_mutableStyle(nullptr)
374 , m_shouldUseFixedDefaultFontSize(false) 374 , m_fixedPitchFontType(NonFixedPitchFont)
375 , m_fontSizeDelta(NoFontDelta) 375 , m_fontSizeDelta(NoFontDelta)
376 { 376 {
377 setProperty(propertyID, value); 377 setProperty(propertyID, value);
378 } 378 }
379 379
380 EditingStyle::~EditingStyle() 380 EditingStyle::~EditingStyle()
381 { 381 {
382 } 382 }
383 383
384 static RGBA32 cssValueToRGBA(CSSValue* colorValue) 384 static RGBA32 cssValueToRGBA(CSSValue* colorValue)
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 if (RefPtrWillBeRawPtr<CSSValue> value = computedStyleAtPosition->getPro pertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect)) 464 if (RefPtrWillBeRawPtr<CSSValue> value = computedStyleAtPosition->getPro pertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect))
465 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssTex t()); 465 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssTex t());
466 } 466 }
467 467
468 if (node && node->computedStyle()) { 468 if (node && node->computedStyle()) {
469 RenderStyle* renderStyle = node->computedStyle(); 469 RenderStyle* renderStyle = node->computedStyle();
470 removeTextFillAndStrokeColorsIfNeeded(renderStyle); 470 removeTextFillAndStrokeColorsIfNeeded(renderStyle);
471 replaceFontSizeByKeywordIfPossible(renderStyle, computedStyleAtPosition. get()); 471 replaceFontSizeByKeywordIfPossible(renderStyle, computedStyleAtPosition. get());
472 } 472 }
473 473
474 m_shouldUseFixedDefaultFontSize = computedStyleAtPosition->useFixedFontDefau ltSize(); 474 m_fixedPitchFontType = computedStyleAtPosition->fixedPitchFontType();
475 extractFontSizeDelta(); 475 extractFontSizeDelta();
476 } 476 }
477 477
478 void EditingStyle::removeTextFillAndStrokeColorsIfNeeded(RenderStyle* renderStyl e) 478 void EditingStyle::removeTextFillAndStrokeColorsIfNeeded(RenderStyle* renderStyl e)
479 { 479 {
480 // If a node's text fill color is currentColor, then its children use 480 // If a node's text fill color is currentColor, then its children use
481 // their font-color as their text fill color (they don't 481 // their font-color as their text fill color (they don't
482 // inherit it). Likewise for stroke color. 482 // inherit it). Likewise for stroke color.
483 if (renderStyle->textFillColor().isCurrentColor()) 483 if (renderStyle->textFillColor().isCurrentColor())
484 m_mutableStyle->removeProperty(CSSPropertyWebkitTextFillColor); 484 m_mutableStyle->removeProperty(CSSPropertyWebkitTextFillColor);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 return; 567 return;
568 if (!m_mutableStyle) 568 if (!m_mutableStyle)
569 m_mutableStyle = MutableStylePropertySet::create(); 569 m_mutableStyle = MutableStylePropertySet::create();
570 m_mutableStyle->mergeAndOverrideOnConflict(style); 570 m_mutableStyle->mergeAndOverrideOnConflict(style);
571 extractFontSizeDelta(); 571 extractFontSizeDelta();
572 } 572 }
573 573
574 void EditingStyle::clear() 574 void EditingStyle::clear()
575 { 575 {
576 m_mutableStyle.clear(); 576 m_mutableStyle.clear();
577 m_shouldUseFixedDefaultFontSize = false; 577 m_fixedPitchFontType = NonFixedPitchFont;
578 m_fontSizeDelta = NoFontDelta; 578 m_fontSizeDelta = NoFontDelta;
579 } 579 }
580 580
581 PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::copy() const 581 PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::copy() const
582 { 582 {
583 RefPtrWillBeRawPtr<EditingStyle> copy = EditingStyle::create(); 583 RefPtrWillBeRawPtr<EditingStyle> copy = EditingStyle::create();
584 if (m_mutableStyle) 584 if (m_mutableStyle)
585 copy->m_mutableStyle = m_mutableStyle->mutableCopy(); 585 copy->m_mutableStyle = m_mutableStyle->mutableCopy();
586 copy->m_shouldUseFixedDefaultFontSize = m_shouldUseFixedDefaultFontSize; 586 copy->m_fixedPitchFontType = m_fixedPitchFontType;
587 copy->m_fontSizeDelta = m_fontSizeDelta; 587 copy->m_fontSizeDelta = m_fontSizeDelta;
588 return copy; 588 return copy;
589 } 589 }
590 590
591 PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::extractAndRemoveBlockProperti es() 591 PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::extractAndRemoveBlockProperti es()
592 { 592 {
593 RefPtrWillBeRawPtr<EditingStyle> blockProperties = EditingStyle::create(); 593 RefPtrWillBeRawPtr<EditingStyle> blockProperties = EditingStyle::create();
594 if (!m_mutableStyle) 594 if (!m_mutableStyle)
595 return blockProperties; 595 return blockProperties;
596 596
(...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 const bool propertyIsImportant = true; 1239 const bool propertyIsImportant = true;
1240 m_mutableStyle->setProperty(CSSPropertyDisplay, CSSValueInline, propertyIsIm portant); 1240 m_mutableStyle->setProperty(CSSPropertyDisplay, CSSValueInline, propertyIsIm portant);
1241 } 1241 }
1242 1242
1243 int EditingStyle::legacyFontSize(Document* document) const 1243 int EditingStyle::legacyFontSize(Document* document) const
1244 { 1244 {
1245 RefPtrWillBeRawPtr<CSSValue> cssValue = m_mutableStyle->getPropertyCSSValue( CSSPropertyFontSize); 1245 RefPtrWillBeRawPtr<CSSValue> cssValue = m_mutableStyle->getPropertyCSSValue( CSSPropertyFontSize);
1246 if (!cssValue || !cssValue->isPrimitiveValue()) 1246 if (!cssValue || !cssValue->isPrimitiveValue())
1247 return 0; 1247 return 0;
1248 return legacyFontSizeFromCSSValue(document, toCSSPrimitiveValue(cssValue.get ()), 1248 return legacyFontSizeFromCSSValue(document, toCSSPrimitiveValue(cssValue.get ()),
1249 m_shouldUseFixedDefaultFontSize, AlwaysUseLegacyFontSize); 1249 m_fixedPitchFontType, AlwaysUseLegacyFontSize);
1250 } 1250 }
1251 1251
1252 PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::styleAtSelectionStart(const V isibleSelection& selection, bool shouldUseBackgroundColorInEffect) 1252 PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::styleAtSelectionStart(const V isibleSelection& selection, bool shouldUseBackgroundColorInEffect)
1253 { 1253 {
1254 if (selection.isNone()) 1254 if (selection.isNone())
1255 return nullptr; 1255 return nullptr;
1256 1256
1257 Position position = adjustedSelectionStartForStyleComputation(selection); 1257 Position position = adjustedSelectionStartForStyleComputation(selection);
1258 1258
1259 // If the pos is at the end of a text node, then this node is not fully sele cted. 1259 // If the pos is at the end of a text node, then this node is not fully sele cted.
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1402 Document* document = position.document(); 1402 Document* document = position.document();
1403 if (!style || !style->style() || !document || !document->frame()) 1403 if (!style || !style->style() || !document || !document->frame())
1404 return; 1404 return;
1405 1405
1406 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com putedStyle(); 1406 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com putedStyle();
1407 // FIXME: take care of background-color in effect 1407 // FIXME: take care of background-color in effect
1408 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI n(style->style(), computedStyle.get()); 1408 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI n(style->style(), computedStyle.get());
1409 1409
1410 reconcileTextDecorationProperties(mutableStyle.get()); 1410 reconcileTextDecorationProperties(mutableStyle.get());
1411 if (!document->frame()->editor().shouldStyleWithCSS()) 1411 if (!document->frame()->editor().shouldStyleWithCSS())
1412 extractTextStyles(document, mutableStyle.get(), computedStyle->useFixedF ontDefaultSize()); 1412 extractTextStyles(document, mutableStyle.get(), computedStyle->fixedPitc hFontType());
1413 1413
1414 // Changing the whitespace style in a tab span would collapse the tab into a space. 1414 // Changing the whitespace style in a tab span would collapse the tab into a space.
1415 if (isTabSpanTextNode(position.deprecatedNode()) || isTabSpanNode((position. deprecatedNode()))) 1415 if (isTabSpanTextNode(position.deprecatedNode()) || isTabSpanNode((position. deprecatedNode())))
1416 mutableStyle->removeProperty(CSSPropertyWhiteSpace); 1416 mutableStyle->removeProperty(CSSPropertyWhiteSpace);
1417 1417
1418 // If unicode-bidi is present in mutableStyle and direction is not, then add direction to mutableStyle. 1418 // If unicode-bidi is present in mutableStyle and direction is not, then add direction to mutableStyle.
1419 // FIXME: Shouldn't this be done in getPropertiesNotIn? 1419 // FIXME: Shouldn't this be done in getPropertiesNotIn?
1420 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty le()->getPropertyCSSValue(CSSPropertyDirection)) 1420 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty le()->getPropertyCSSValue(CSSPropertyDirection))
1421 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope rtyValue(CSSPropertyDirection)); 1421 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope rtyValue(CSSPropertyDirection));
1422 1422
1423 // Save the result for later 1423 // Save the result for later
1424 m_cssStyle = mutableStyle->asText().stripWhiteSpace(); 1424 m_cssStyle = mutableStyle->asText().stripWhiteSpace();
1425 } 1425 }
1426 1426
1427 static void setTextDecorationProperty(MutableStylePropertySet* style, const CSSV alueList* newTextDecoration, CSSPropertyID propertyID) 1427 static void setTextDecorationProperty(MutableStylePropertySet* style, const CSSV alueList* newTextDecoration, CSSPropertyID propertyID)
1428 { 1428 {
1429 if (newTextDecoration->length()) 1429 if (newTextDecoration->length())
1430 style->setProperty(propertyID, newTextDecoration->cssText(), style->prop ertyIsImportant(propertyID)); 1430 style->setProperty(propertyID, newTextDecoration->cssText(), style->prop ertyIsImportant(propertyID));
1431 else { 1431 else {
1432 // text-decoration: none is redundant since it does not remove any text decorations. 1432 // text-decoration: none is redundant since it does not remove any text decorations.
1433 style->removeProperty(propertyID); 1433 style->removeProperty(propertyID);
1434 } 1434 }
1435 } 1435 }
1436 1436
1437 void StyleChange::extractTextStyles(Document* document, MutableStylePropertySet* style, bool shouldUseFixedFontDefaultSize) 1437 void StyleChange::extractTextStyles(Document* document, MutableStylePropertySet* style, FixedPitchFontType fixedPitchFontType)
1438 { 1438 {
1439 ASSERT(style); 1439 ASSERT(style);
1440 1440
1441 if (getIdentifierValue(style, CSSPropertyFontWeight) == CSSValueBold) { 1441 if (getIdentifierValue(style, CSSPropertyFontWeight) == CSSValueBold) {
1442 style->removeProperty(CSSPropertyFontWeight); 1442 style->removeProperty(CSSPropertyFontWeight);
1443 m_applyBold = true; 1443 m_applyBold = true;
1444 } 1444 }
1445 1445
1446 int fontStyle = getIdentifierValue(style, CSSPropertyFontStyle); 1446 int fontStyle = getIdentifierValue(style, CSSPropertyFontStyle);
1447 if (fontStyle == CSSValueItalic || fontStyle == CSSValueOblique) { 1447 if (fontStyle == CSSValueItalic || fontStyle == CSSValueOblique) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1486 m_applyFontColor = Color(getRGBAFontColor(style)).serialized(); 1486 m_applyFontColor = Color(getRGBAFontColor(style)).serialized();
1487 style->removeProperty(CSSPropertyColor); 1487 style->removeProperty(CSSPropertyColor);
1488 } 1488 }
1489 1489
1490 m_applyFontFace = style->getPropertyValue(CSSPropertyFontFamily); 1490 m_applyFontFace = style->getPropertyValue(CSSPropertyFontFamily);
1491 // Remove single quotes for Outlook 2007 compatibility. See https://bugs.web kit.org/show_bug.cgi?id=79448 1491 // Remove single quotes for Outlook 2007 compatibility. See https://bugs.web kit.org/show_bug.cgi?id=79448
1492 m_applyFontFace.replaceWithLiteral('\'', ""); 1492 m_applyFontFace.replaceWithLiteral('\'', "");
1493 style->removeProperty(CSSPropertyFontFamily); 1493 style->removeProperty(CSSPropertyFontFamily);
1494 1494
1495 if (RefPtrWillBeRawPtr<CSSValue> fontSize = style->getPropertyCSSValue(CSSPr opertyFontSize)) { 1495 if (RefPtrWillBeRawPtr<CSSValue> fontSize = style->getPropertyCSSValue(CSSPr opertyFontSize)) {
1496 if (!fontSize->isPrimitiveValue()) 1496 if (!fontSize->isPrimitiveValue()) {
1497 style->removeProperty(CSSPropertyFontSize); // Can't make sense of t he number. Put no font size. 1497 style->removeProperty(CSSPropertyFontSize); // Can't make sense of t he number. Put no font size.
1498 else if (int legacyFontSize = legacyFontSizeFromCSSValue(document, toCSS PrimitiveValue(fontSize.get()), 1498 } else if (int legacyFontSize = legacyFontSizeFromCSSValue(document, toC SSPrimitiveValue(fontSize.get()), fixedPitchFontType, UseLegacyFontSizeOnlyIfPix elValuesMatch)) {
1499 shouldUseFixedFontDefaultSize, UseLegacyFontSizeOnlyIfPixelValue sMatch)) {
1500 m_applyFontSize = String::number(legacyFontSize); 1499 m_applyFontSize = String::number(legacyFontSize);
1501 style->removeProperty(CSSPropertyFontSize); 1500 style->removeProperty(CSSPropertyFontSize);
1502 } 1501 }
1503 } 1502 }
1504 } 1503 }
1505 1504
1506 static void diffTextDecorations(MutableStylePropertySet* style, CSSPropertyID pr opertID, CSSValue* refTextDecoration) 1505 static void diffTextDecorations(MutableStylePropertySet* style, CSSPropertyID pr opertID, CSSValue* refTextDecoration)
1507 { 1506 {
1508 RefPtrWillBeRawPtr<CSSValue> textDecoration = style->getPropertyCSSValue(pro pertID); 1507 RefPtrWillBeRawPtr<CSSValue> textDecoration = style->getPropertyCSSValue(pro pertID);
1509 if (!textDecoration || !textDecoration->isValueList() || !refTextDecoration || !refTextDecoration->isValueList()) 1508 if (!textDecoration || !textDecoration->isValueList() || !refTextDecoration || !refTextDecoration->isValueList())
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 if (!value || !value->isPrimitiveValue()) 1605 if (!value || !value->isPrimitiveValue())
1607 return CSSValueInvalid; 1606 return CSSValueInvalid;
1608 return toCSSPrimitiveValue(value.get())->getValueID(); 1607 return toCSSPrimitiveValue(value.get())->getValueID();
1609 } 1608 }
1610 1609
1611 static bool isCSSValueLength(CSSPrimitiveValue* value) 1610 static bool isCSSValueLength(CSSPrimitiveValue* value)
1612 { 1611 {
1613 return value->isFontIndependentLength(); 1612 return value->isFontIndependentLength();
1614 } 1613 }
1615 1614
1616 int legacyFontSizeFromCSSValue(Document* document, CSSPrimitiveValue* value, boo l shouldUseFixedFontDefaultSize, LegacyFontSizeMode mode) 1615 int legacyFontSizeFromCSSValue(Document* document, CSSPrimitiveValue* value, Fix edPitchFontType fixedPitchFontType, LegacyFontSizeMode mode)
1617 { 1616 {
1618 if (isCSSValueLength(value)) { 1617 if (isCSSValueLength(value)) {
1619 int pixelFontSize = value->getIntValue(CSSPrimitiveValue::CSS_PX); 1618 int pixelFontSize = value->getIntValue(CSSPrimitiveValue::CSS_PX);
1620 int legacyFontSize = FontSize::legacyFontSize(document, pixelFontSize, s houldUseFixedFontDefaultSize); 1619 int legacyFontSize = FontSize::legacyFontSize(document, pixelFontSize, f ixedPitchFontType);
1621 // Use legacy font size only if pixel value matches exactly to that of l egacy font size. 1620 // Use legacy font size only if pixel value matches exactly to that of l egacy font size.
1622 int cssPrimitiveEquivalent = legacyFontSize - 1 + CSSValueXSmall; 1621 CSSValueID cssPrimitiveEquivalent = static_cast<CSSValueID>(legacyFontSi ze - 1 + CSSValueXSmall);
1623 if (mode == AlwaysUseLegacyFontSize || FontSize::fontSizeForKeyword(docu ment, cssPrimitiveEquivalent, shouldUseFixedFontDefaultSize) == pixelFontSize) 1622 if (mode == AlwaysUseLegacyFontSize || FontSize::fontSizeForKeyword(docu ment, cssPrimitiveEquivalent, fixedPitchFontType) == pixelFontSize)
1624 return legacyFontSize; 1623 return legacyFontSize;
1625 1624
1626 return 0; 1625 return 0;
1627 } 1626 }
1628 1627
1629 if (CSSValueXSmall <= value->getValueID() && value->getValueID() <= CSSValue WebkitXxxLarge) 1628 if (CSSValueXSmall <= value->getValueID() && value->getValueID() <= CSSValue WebkitXxxLarge)
1630 return value->getValueID() - CSSValueXSmall + 1; 1629 return value->getValueID() - CSSValueXSmall + 1;
1631 1630
1632 return 0; 1631 return 0;
1633 } 1632 }
(...skipping 26 matching lines...) Expand all
1660 { 1659 {
1661 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) { 1660 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) {
1662 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu tedStyleDeclaration::create(ancestor); 1661 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu tedStyleDeclaration::create(ancestor);
1663 if (!hasTransparentBackgroundColor(ancestorStyle.get())) 1662 if (!hasTransparentBackgroundColor(ancestorStyle.get()))
1664 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor ); 1663 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor );
1665 } 1664 }
1666 return nullptr; 1665 return nullptr;
1667 } 1666 }
1668 1667
1669 } 1668 }
OLDNEW
« no previous file with comments | « Source/core/editing/EditingStyle.h ('k') | Source/platform/blink_platform.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698