OLD | NEW |
---|---|
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 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1421 , m_applyItalic(false) | 1421 , m_applyItalic(false) |
1422 , m_applyUnderline(false) | 1422 , m_applyUnderline(false) |
1423 , m_applyLineThrough(false) | 1423 , m_applyLineThrough(false) |
1424 , m_applySubscript(false) | 1424 , m_applySubscript(false) |
1425 , m_applySuperscript(false) | 1425 , m_applySuperscript(false) |
1426 { | 1426 { |
1427 Document* document = position.document(); | 1427 Document* document = position.document(); |
1428 if (!style || !style->style() || !document || !document->frame()) | 1428 if (!style || !style->style() || !document || !document->frame()) |
1429 return; | 1429 return; |
1430 | 1430 |
1431 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com putedStyle(); | 1431 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyle = position.com putedStyle(); |
yosin_UTC9
2015/03/10 05:27:07
Where |position| does point? Does |point| point to
rwlbuis
2015/03/10 23:44:21
Indeed position is a Document in the case where co
| |
1432 // FIXME: take care of background-color in effect | 1432 // FIXME: take care of background-color in effect |
1433 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI n(style->style(), computedStyle.get()); | 1433 RefPtrWillBeRawPtr<MutableStylePropertySet> mutableStyle = getPropertiesNotI n(style->style(), computedStyle.get()); |
1434 | 1434 |
1435 reconcileTextDecorationProperties(mutableStyle.get()); | 1435 reconcileTextDecorationProperties(mutableStyle.get()); |
1436 if (!document->frame()->editor().shouldStyleWithCSS()) | 1436 if (!document->frame()->editor().shouldStyleWithCSS()) |
1437 extractTextStyles(document, mutableStyle.get(), computedStyle->fixedPitc hFontType()); | 1437 extractTextStyles(document, mutableStyle.get(), computedStyle ? computed Style->fixedPitchFontType() : NonFixedPitchFont); |
1438 | 1438 |
1439 // Changing the whitespace style in a tab span would collapse the tab into a space. | 1439 // Changing the whitespace style in a tab span would collapse the tab into a space. |
1440 if (isTabHTMLSpanElementTextNode(position.deprecatedNode()) || isTabHTMLSpan Element((position.deprecatedNode()))) | 1440 if (isTabHTMLSpanElementTextNode(position.deprecatedNode()) || isTabHTMLSpan Element((position.deprecatedNode()))) |
1441 mutableStyle->removeProperty(CSSPropertyWhiteSpace); | 1441 mutableStyle->removeProperty(CSSPropertyWhiteSpace); |
1442 | 1442 |
1443 // If unicode-bidi is present in mutableStyle and direction is not, then add direction to mutableStyle. | 1443 // If unicode-bidi is present in mutableStyle and direction is not, then add direction to mutableStyle. |
1444 // FIXME: Shouldn't this be done in getPropertiesNotIn? | 1444 // FIXME: Shouldn't this be done in getPropertiesNotIn? |
1445 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty le()->getPropertyCSSValue(CSSPropertyDirection)) | 1445 if (mutableStyle->getPropertyCSSValue(CSSPropertyUnicodeBidi) && !style->sty le()->getPropertyCSSValue(CSSPropertyDirection)) |
1446 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope rtyValue(CSSPropertyDirection)); | 1446 mutableStyle->setProperty(CSSPropertyDirection, style->style()->getPrope rtyValue(CSSPropertyDirection)); |
1447 | 1447 |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1571 if (!fontWeight->isPrimitiveValue()) | 1571 if (!fontWeight->isPrimitiveValue()) |
1572 return true; | 1572 return true; |
1573 | 1573 |
1574 CSSValueID value = toCSSPrimitiveValue(fontWeight)->getValueID(); | 1574 CSSValueID value = toCSSPrimitiveValue(fontWeight)->getValueID(); |
1575 return value == CSSValueLighter || value == CSSValueBolder; | 1575 return value == CSSValueLighter || value == CSSValueBolder; |
1576 } | 1576 } |
1577 | 1577 |
1578 PassRefPtrWillBeRawPtr<MutableStylePropertySet> getPropertiesNotIn(StyleProperty Set* styleWithRedundantProperties, CSSStyleDeclaration* baseStyle) | 1578 PassRefPtrWillBeRawPtr<MutableStylePropertySet> getPropertiesNotIn(StyleProperty Set* styleWithRedundantProperties, CSSStyleDeclaration* baseStyle) |
1579 { | 1579 { |
1580 ASSERT(styleWithRedundantProperties); | 1580 ASSERT(styleWithRedundantProperties); |
1581 ASSERT(baseStyle); | |
1582 RefPtrWillBeRawPtr<MutableStylePropertySet> result = styleWithRedundantPrope rties->mutableCopy(); | 1581 RefPtrWillBeRawPtr<MutableStylePropertySet> result = styleWithRedundantPrope rties->mutableCopy(); |
1582 if (!baseStyle) | |
1583 return result.release(); | |
1583 | 1584 |
1584 result->removeEquivalentProperties(baseStyle); | 1585 result->removeEquivalentProperties(baseStyle); |
1585 | 1586 |
1586 RefPtrWillBeRawPtr<CSSValue> baseTextDecorationsInEffect = baseStyle->getPro pertyCSSValueInternal(CSSPropertyWebkitTextDecorationsInEffect); | 1587 RefPtrWillBeRawPtr<CSSValue> baseTextDecorationsInEffect = baseStyle->getPro pertyCSSValueInternal(CSSPropertyWebkitTextDecorationsInEffect); |
1587 diffTextDecorations(result.get(), textDecorationPropertyForEditing(), baseTe xtDecorationsInEffect.get()); | 1588 diffTextDecorations(result.get(), textDecorationPropertyForEditing(), baseTe xtDecorationsInEffect.get()); |
1588 diffTextDecorations(result.get(), CSSPropertyWebkitTextDecorationsInEffect, baseTextDecorationsInEffect.get()); | 1589 diffTextDecorations(result.get(), CSSPropertyWebkitTextDecorationsInEffect, baseTextDecorationsInEffect.get()); |
1589 | 1590 |
1590 if (RefPtrWillBeRawPtr<CSSValue> baseFontWeight = baseStyle->getPropertyCSSV alueInternal(CSSPropertyFontWeight)) { | 1591 if (RefPtrWillBeRawPtr<CSSValue> baseFontWeight = baseStyle->getPropertyCSSV alueInternal(CSSPropertyFontWeight)) { |
1591 if (RefPtrWillBeRawPtr<CSSValue> fontWeight = result->getPropertyCSSValu e(CSSPropertyFontWeight)) { | 1592 if (RefPtrWillBeRawPtr<CSSValue> fontWeight = result->getPropertyCSSValu e(CSSPropertyFontWeight)) { |
1592 if (!fontWeightNeedsResolving(fontWeight.get()) && (fontWeightIsBold (fontWeight.get()) == fontWeightIsBold(baseFontWeight.get()))) | 1593 if (!fontWeightNeedsResolving(fontWeight.get()) && (fontWeightIsBold (fontWeight.get()) == fontWeightIsBold(baseFontWeight.get()))) |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1678 { | 1679 { |
1679 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) { | 1680 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) { |
1680 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu tedStyleDeclaration::create(ancestor); | 1681 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> ancestorStyle = CSSCompu tedStyleDeclaration::create(ancestor); |
1681 if (!hasTransparentBackgroundColor(ancestorStyle.get())) | 1682 if (!hasTransparentBackgroundColor(ancestorStyle.get())) |
1682 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor ); | 1683 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor ); |
1683 } | 1684 } |
1684 return nullptr; | 1685 return nullptr; |
1685 } | 1686 } |
1686 | 1687 |
1687 } | 1688 } |
OLD | NEW |