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

Side by Side Diff: third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.cpp

Issue 2046463003: Resubmission of sashab's patch: Make CSSComputedStyledeclaration::getPropertyCSSValue return const (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing const Created 4 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org>
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com>
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public 9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 DCHECK_NE(keywordSize, 0); 394 DCHECK_NE(keywordSize, 0);
395 DCHECK_LE(keywordSize, 8); 395 DCHECK_LE(keywordSize, 8);
396 return static_cast<CSSValueID>(CSSValueXxSmall + keywordSize - 1); 396 return static_cast<CSSValueID>(CSSValueXxSmall + keywordSize - 1);
397 } 397 }
398 398
399 inline static CSSPrimitiveValue* zoomAdjustedPixelValue(double value, const Comp utedStyle& style) 399 inline static CSSPrimitiveValue* zoomAdjustedPixelValue(double value, const Comp utedStyle& style)
400 { 400 {
401 return CSSPrimitiveValue::create(adjustFloatForAbsoluteZoom(value, style), C SSPrimitiveValue::UnitType::Pixels); 401 return CSSPrimitiveValue::create(adjustFloatForAbsoluteZoom(value, style), C SSPrimitiveValue::UnitType::Pixels);
402 } 402 }
403 403
404 CSSValue* CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword() co nst 404 const CSSValue* CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeywor d() const
405 { 405 {
406 if (!m_node) 406 if (!m_node)
407 return nullptr; 407 return nullptr;
408 408
409 m_node->document().updateStyleAndLayoutIgnorePendingStylesheets(); 409 m_node->document().updateStyleAndLayoutIgnorePendingStylesheets();
410 410
411 const ComputedStyle* style = m_node->ensureComputedStyle(m_pseudoElementSpec ifier); 411 const ComputedStyle* style = m_node->ensureComputedStyle(m_pseudoElementSpec ifier);
412 if (!style) 412 if (!style)
413 return nullptr; 413 return nullptr;
414 414
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 { 507 {
508 if (!m_node) 508 if (!m_node)
509 return nullptr; 509 return nullptr;
510 if (m_node->isElementNode()) { 510 if (m_node->isElementNode()) {
511 if (PseudoElement* element = toElement(m_node)->pseudoElement(m_pseudoEl ementSpecifier)) 511 if (PseudoElement* element = toElement(m_node)->pseudoElement(m_pseudoEl ementSpecifier))
512 return element; 512 return element;
513 } 513 }
514 return m_node.get(); 514 return m_node.get();
515 } 515 }
516 516
517 CSSValue* CSSComputedStyleDeclaration::getPropertyCSSValue(AtomicString customPr opertyName) const 517 const CSSValue* CSSComputedStyleDeclaration::getPropertyCSSValue(AtomicString cu stomPropertyName) const
518 { 518 {
519 Node* styledNode = this->styledNode(); 519 Node* styledNode = this->styledNode();
520 if (!styledNode) 520 if (!styledNode)
521 return nullptr; 521 return nullptr;
522 522
523 styledNode->document().updateStyleAndLayoutTreeForNode(styledNode); 523 styledNode->document().updateStyleAndLayoutTreeForNode(styledNode);
524 524
525 const ComputedStyle* style = computeComputedStyle(); 525 const ComputedStyle* style = computeComputedStyle();
526 if (!style) 526 if (!style)
527 return nullptr; 527 return nullptr;
528 return ComputedStyleCSSValueMapping::get(customPropertyName, *style); 528 return ComputedStyleCSSValueMapping::get(customPropertyName, *style);
529 } 529 }
530 530
531 std::unique_ptr<HashMap<AtomicString, RefPtr<CSSVariableData>>> CSSComputedStyle Declaration::getVariables() const 531 std::unique_ptr<HashMap<AtomicString, RefPtr<CSSVariableData>>> CSSComputedStyle Declaration::getVariables() const
532 { 532 {
533 const ComputedStyle* style = computeComputedStyle(); 533 const ComputedStyle* style = computeComputedStyle();
534 if (!style) 534 if (!style)
535 return nullptr; 535 return nullptr;
536 return ComputedStyleCSSValueMapping::getVariables(*style); 536 return ComputedStyleCSSValueMapping::getVariables(*style);
537 } 537 }
538 538
539 CSSValue* CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropertyID propert yID) const 539 const CSSValue* CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropertyID p ropertyID) const
540 { 540 {
541 Node* styledNode = this->styledNode(); 541 Node* styledNode = this->styledNode();
542 if (!styledNode) 542 if (!styledNode)
543 return nullptr; 543 return nullptr;
544 544
545 Document& document = styledNode->document(); 545 Document& document = styledNode->document();
546 document.updateStyleAndLayoutTreeForNode(styledNode); 546 document.updateStyleAndLayoutTreeForNode(styledNode);
547 547
548 // The style recalc could have caused the styled node to be discarded or rep laced 548 // The style recalc could have caused the styled node to be discarded or rep laced
549 // if it was a PseudoElement so we need to update it. 549 // if it was a PseudoElement so we need to update it.
(...skipping 19 matching lines...) Expand all
569 CSSValue* value = ComputedStyleCSSValueMapping::get(propertyID, *style, layo utObject, styledNode, m_allowVisitedStyle); 569 CSSValue* value = ComputedStyleCSSValueMapping::get(propertyID, *style, layo utObject, styledNode, m_allowVisitedStyle);
570 if (value) 570 if (value)
571 return value; 571 return value;
572 572
573 logUnimplementedPropertyID(propertyID); 573 logUnimplementedPropertyID(propertyID);
574 return nullptr; 574 return nullptr;
575 } 575 }
576 576
577 String CSSComputedStyleDeclaration::getPropertyValue(CSSPropertyID propertyID) c onst 577 String CSSComputedStyleDeclaration::getPropertyValue(CSSPropertyID propertyID) c onst
578 { 578 {
579 CSSValue* value = getPropertyCSSValue(propertyID); 579 const CSSValue* value = getPropertyCSSValue(propertyID);
580 if (value) 580 if (value)
581 return value->cssText(); 581 return value->cssText();
582 return ""; 582 return "";
583 } 583 }
584 584
585 585
586 unsigned CSSComputedStyleDeclaration::length() const 586 unsigned CSSComputedStyleDeclaration::length() const
587 { 587 {
588 if (!m_node || !m_node->inActiveDocument()) 588 if (!m_node || !m_node->inActiveDocument())
589 return 0; 589 return 0;
(...skipping 13 matching lines...) Expand all
603 if (propertyID == CSSPropertyFontSize && propertyValue->isPrimitiveValue() & & m_node) { 603 if (propertyID == CSSPropertyFontSize && propertyValue->isPrimitiveValue() & & m_node) {
604 m_node->document().updateStyleAndLayoutIgnorePendingStylesheets(); 604 m_node->document().updateStyleAndLayoutIgnorePendingStylesheets();
605 const ComputedStyle* style = m_node->ensureComputedStyle(m_pseudoElement Specifier); 605 const ComputedStyle* style = m_node->ensureComputedStyle(m_pseudoElement Specifier);
606 if (style && style->getFontDescription().keywordSize()) { 606 if (style && style->getFontDescription().keywordSize()) {
607 CSSValueID sizeValue = cssIdentifierForFontSizeKeyword(style->getFon tDescription().keywordSize()); 607 CSSValueID sizeValue = cssIdentifierForFontSizeKeyword(style->getFon tDescription().keywordSize());
608 const CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(proper tyValue); 608 const CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(proper tyValue);
609 if (primitiveValue->isValueID() && primitiveValue->getValueID() == s izeValue) 609 if (primitiveValue->isValueID() && primitiveValue->getValueID() == s izeValue)
610 return true; 610 return true;
611 } 611 }
612 } 612 }
613 CSSValue* value = getPropertyCSSValue(propertyID); 613 const CSSValue* value = getPropertyCSSValue(propertyID);
614 return value && propertyValue && value->equals(*propertyValue); 614 return value && propertyValue && value->equals(*propertyValue);
615 } 615 }
616 616
617 MutableStylePropertySet* CSSComputedStyleDeclaration::copyProperties() const 617 MutableStylePropertySet* CSSComputedStyleDeclaration::copyProperties() const
618 { 618 {
619 return copyPropertiesInSet(computableProperties()); 619 return copyPropertiesInSet(computableProperties());
620 } 620 }
621 621
622 MutableStylePropertySet* CSSComputedStyleDeclaration::copyPropertiesInSet(const Vector<CSSPropertyID>& properties) const 622 MutableStylePropertySet* CSSComputedStyleDeclaration::copyPropertiesInSet(const Vector<CSSPropertyID>& properties) const
623 { 623 {
624 HeapVector<CSSProperty, 256> list; 624 HeapVector<CSSProperty, 256> list;
625 list.reserveInitialCapacity(properties.size()); 625 list.reserveInitialCapacity(properties.size());
626 for (unsigned i = 0; i < properties.size(); ++i) { 626 for (unsigned i = 0; i < properties.size(); ++i) {
627 CSSValue* value = getPropertyCSSValue(properties[i]); 627 const CSSValue* value = getPropertyCSSValue(properties[i]);
628 if (value) 628 if (value)
629 list.append(CSSProperty(properties[i], value, false)); 629 list.append(CSSProperty(properties[i], value, false));
630 } 630 }
631 return MutableStylePropertySet::create(list.data(), list.size()); 631 return MutableStylePropertySet::create(list.data(), list.size());
632 } 632 }
633 633
634 CSSRule* CSSComputedStyleDeclaration::parentRule() const 634 CSSRule* CSSComputedStyleDeclaration::parentRule() const
635 { 635 {
636 return nullptr; 636 return nullptr;
637 } 637 }
638 638
639 String CSSComputedStyleDeclaration::getPropertyValue(const String& propertyName) 639 String CSSComputedStyleDeclaration::getPropertyValue(const String& propertyName)
640 { 640 {
641 CSSPropertyID propertyID = cssPropertyID(propertyName); 641 CSSPropertyID propertyID = cssPropertyID(propertyName);
642 if (!propertyID) { 642 if (!propertyID) {
643 if (RuntimeEnabledFeatures::cssVariablesEnabled() && CSSVariableParser:: isValidVariableName(propertyName)) { 643 if (RuntimeEnabledFeatures::cssVariablesEnabled() && CSSVariableParser:: isValidVariableName(propertyName)) {
644 CSSValue* value = getPropertyCSSValue(AtomicString(propertyName)); 644 const CSSValue* value = getPropertyCSSValue(AtomicString(propertyNam e));
645 if (value) 645 if (value)
646 return value->cssText(); 646 return value->cssText();
647 } 647 }
648 return String(); 648 return String();
649 } 649 }
650 ASSERT(CSSPropertyMetadata::isEnabledProperty(propertyID)); 650 ASSERT(CSSPropertyMetadata::isEnabledProperty(propertyID));
651 return getPropertyValue(propertyID); 651 return getPropertyValue(propertyID);
652 } 652 }
653 653
654 String CSSComputedStyleDeclaration::getPropertyPriority(const String&) 654 String CSSComputedStyleDeclaration::getPropertyPriority(const String&)
(...skipping 16 matching lines...) Expand all
671 { 671 {
672 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a re computed, and therefore the '" + name + "' property is read-only."); 672 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a re computed, and therefore the '" + name + "' property is read-only.");
673 } 673 }
674 674
675 String CSSComputedStyleDeclaration::removeProperty(const String& name, Exception State& exceptionState) 675 String CSSComputedStyleDeclaration::removeProperty(const String& name, Exception State& exceptionState)
676 { 676 {
677 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a re computed, and therefore the '" + name + "' property is read-only."); 677 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a re computed, and therefore the '" + name + "' property is read-only.");
678 return String(); 678 return String();
679 } 679 }
680 680
681 CSSValue* CSSComputedStyleDeclaration::getPropertyCSSValueInternal(CSSPropertyID propertyID) 681 const CSSValue* CSSComputedStyleDeclaration::getPropertyCSSValueInternal(CSSProp ertyID propertyID)
682 { 682 {
683 return getPropertyCSSValue(propertyID); 683 return getPropertyCSSValue(propertyID);
684 } 684 }
685 685
686 String CSSComputedStyleDeclaration::getPropertyValueInternal(CSSPropertyID prope rtyID) 686 String CSSComputedStyleDeclaration::getPropertyValueInternal(CSSPropertyID prope rtyID)
687 { 687 {
688 return getPropertyValue(propertyID); 688 return getPropertyValue(propertyID);
689 } 689 }
690 690
691 void CSSComputedStyleDeclaration::setPropertyInternal(CSSPropertyID id, const St ring&, const String&, bool, ExceptionState& exceptionState) 691 void CSSComputedStyleDeclaration::setPropertyInternal(CSSPropertyID id, const St ring&, const String&, bool, ExceptionState& exceptionState)
692 { 692 {
693 // TODO(leviw): This code is currently unreachable, but shouldn't be. 693 // TODO(leviw): This code is currently unreachable, but shouldn't be.
694 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a re computed, and therefore the '" + getPropertyNameString(id) + "' property is r ead-only."); 694 exceptionState.throwDOMException(NoModificationAllowedError, "These styles a re computed, and therefore the '" + getPropertyNameString(id) + "' property is r ead-only.");
695 } 695 }
696 696
697 DEFINE_TRACE(CSSComputedStyleDeclaration) 697 DEFINE_TRACE(CSSComputedStyleDeclaration)
698 { 698 {
699 visitor->trace(m_node); 699 visitor->trace(m_node);
700 CSSStyleDeclaration::trace(visitor); 700 CSSStyleDeclaration::trace(visitor);
701 } 701 }
702 702
703 } // namespace blink 703 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698