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

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

Issue 2577633002: [css-ui] Update resolved value of caret-color property (Closed)
Patch Set: Rebased test Created 3 years, 12 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
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 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 if (propertiesToInclude == EditingPropertiesInEffect) { 480 if (propertiesToInclude == EditingPropertiesInEffect) {
481 if (const CSSValue* value = backgroundColorValueInEffect(node)) 481 if (const CSSValue* value = backgroundColorValueInEffect(node))
482 m_mutableStyle->setProperty(CSSPropertyBackgroundColor, value->cssText()); 482 m_mutableStyle->setProperty(CSSPropertyBackgroundColor, value->cssText());
483 if (const CSSValue* value = computedStyleAtPosition->getPropertyCSSValue( 483 if (const CSSValue* value = computedStyleAtPosition->getPropertyCSSValue(
484 CSSPropertyWebkitTextDecorationsInEffect)) 484 CSSPropertyWebkitTextDecorationsInEffect))
485 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssText()); 485 m_mutableStyle->setProperty(CSSPropertyTextDecoration, value->cssText());
486 } 486 }
487 487
488 if (node && node->ensureComputedStyle()) { 488 if (node && node->ensureComputedStyle()) {
489 const ComputedStyle* computedStyle = node->ensureComputedStyle(); 489 const ComputedStyle* computedStyle = node->ensureComputedStyle();
490 removeTextFillAndStrokeColorsIfNeeded(computedStyle); 490 removeInheritedColorsIfNeeded(computedStyle);
491 replaceFontSizeByKeywordIfPossible(computedStyle, computedStyleAtPosition); 491 replaceFontSizeByKeywordIfPossible(computedStyle, computedStyleAtPosition);
492 } 492 }
493 493
494 m_isMonospaceFont = computedStyleAtPosition->isMonospaceFont(); 494 m_isMonospaceFont = computedStyleAtPosition->isMonospaceFont();
495 extractFontSizeDelta(); 495 extractFontSizeDelta();
496 } 496 }
497 497
498 void EditingStyle::removeTextFillAndStrokeColorsIfNeeded( 498 void EditingStyle::removeInheritedColorsIfNeeded(
499 const ComputedStyle* computedStyle) { 499 const ComputedStyle* computedStyle) {
500 // If a node's text fill color is currentColor, then its children use 500 // If a node's text fill color is currentColor, then its children use
501 // their font-color as their text fill color (they don't 501 // their font-color as their text fill color (they don't
502 // inherit it). Likewise for stroke color. 502 // inherit it). Likewise for stroke color.
503 // Similar thing happens for caret-color if it's auto or currentColor.
503 if (computedStyle->textFillColor().isCurrentColor()) 504 if (computedStyle->textFillColor().isCurrentColor())
504 m_mutableStyle->removeProperty(CSSPropertyWebkitTextFillColor); 505 m_mutableStyle->removeProperty(CSSPropertyWebkitTextFillColor);
505 if (computedStyle->textStrokeColor().isCurrentColor()) 506 if (computedStyle->textStrokeColor().isCurrentColor())
506 m_mutableStyle->removeProperty(CSSPropertyWebkitTextStrokeColor); 507 m_mutableStyle->removeProperty(CSSPropertyWebkitTextStrokeColor);
508 if (computedStyle->caretColor().isAutoColor() ||
509 computedStyle->caretColor().isCurrentColor())
510 m_mutableStyle->removeProperty(CSSPropertyCaretColor);
507 } 511 }
508 512
509 void EditingStyle::setProperty(CSSPropertyID propertyID, 513 void EditingStyle::setProperty(CSSPropertyID propertyID,
510 const String& value, 514 const String& value,
511 bool important) { 515 bool important) {
512 if (!m_mutableStyle) 516 if (!m_mutableStyle)
513 m_mutableStyle = MutableStylePropertySet::create(HTMLQuirksMode); 517 m_mutableStyle = MutableStylePropertySet::create(HTMLQuirksMode);
514 518
515 m_mutableStyle->setProperty(propertyID, value, important); 519 m_mutableStyle->setProperty(propertyID, value, important);
516 } 520 }
(...skipping 1519 matching lines...) Expand 10 before | Expand all | Expand 10 after
2036 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) { 2040 for (Node* ancestor = node; ancestor; ancestor = ancestor->parentNode()) {
2037 CSSComputedStyleDeclaration* ancestorStyle = 2041 CSSComputedStyleDeclaration* ancestorStyle =
2038 CSSComputedStyleDeclaration::create(ancestor); 2042 CSSComputedStyleDeclaration::create(ancestor);
2039 if (!hasTransparentBackgroundColor(ancestorStyle)) 2043 if (!hasTransparentBackgroundColor(ancestorStyle))
2040 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor); 2044 return ancestorStyle->getPropertyCSSValue(CSSPropertyBackgroundColor);
2041 } 2045 }
2042 return nullptr; 2046 return nullptr;
2043 } 2047 }
2044 2048
2045 } // namespace blink 2049 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/editing/EditingStyle.h ('k') | third_party/WebKit/Source/web/tests/WebViewTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698