| Index: Source/core/html/HTMLInputElement.cpp
|
| diff --git a/Source/core/html/HTMLInputElement.cpp b/Source/core/html/HTMLInputElement.cpp
|
| index a58c934315e1f94fc9aa80715d0cf97c9c29e04f..0af0ff538fcc4b4b038a2b948e4d71a6ed75f9bb 100644
|
| --- a/Source/core/html/HTMLInputElement.cpp
|
| +++ b/Source/core/html/HTMLInputElement.cpp
|
| @@ -655,7 +655,7 @@ void HTMLInputElement::parseAttribute(const QualifiedName& name, const AtomicStr
|
| // We only need to setChanged if the form is looking at the default value right now.
|
| if (!hasDirtyValue()) {
|
| updatePlaceholderVisibility(false);
|
| - setNeedsStyleRecalc(SubtreeStyleChange);
|
| + setNeedsStyleRecalc(StyleChangeReasonForTracing::fromAttribute(valueAttr), SubtreeStyleChange);
|
| }
|
| m_needsToUpdateViewValue = true;
|
| setNeedsValidityCheck();
|
| @@ -695,10 +695,10 @@ void HTMLInputElement::parseAttribute(const QualifiedName& name, const AtomicStr
|
| // time to relayout for this change.
|
| if (m_maxResults != oldResults && (m_maxResults <= 0 || oldResults <= 0))
|
| lazyReattachIfAttached();
|
| - setNeedsStyleRecalc(SubtreeStyleChange);
|
| + setNeedsStyleRecalc(StyleChangeReasonForTracing::fromAttribute(resultsAttr), SubtreeStyleChange);
|
| UseCounter::count(document(), UseCounter::ResultsAttribute);
|
| } else if (name == incrementalAttr) {
|
| - setNeedsStyleRecalc(SubtreeStyleChange);
|
| + setNeedsStyleRecalc(StyleChangeReasonForTracing::fromAttribute(incrementalAttr), SubtreeStyleChange);
|
| UseCounter::count(document(), UseCounter::IncrementalAttribute);
|
| } else if (name == minAttr) {
|
| m_inputTypeView->minOrMaxAttributeChanged();
|
| @@ -843,10 +843,11 @@ void HTMLInputElement::setChecked(bool nowChecked, TextFieldEventBehavior eventB
|
| if (checked() == nowChecked)
|
| return;
|
|
|
| + const StyleChangeReasonForTracing styleChangeReason = StyleChangeReasonForTracing::createWithExtraData(StyleChangeReason::PseudoClass, StyleChangeExtraData::Checked);
|
| RefPtrWillBeRawPtr<HTMLInputElement> protector(this);
|
| m_reflectsCheckedAttribute = false;
|
| m_isChecked = nowChecked;
|
| - setNeedsStyleRecalc(SubtreeStyleChange);
|
| + setNeedsStyleRecalc(styleChangeReason, SubtreeStyleChange);
|
|
|
| if (RadioButtonGroupScope* scope = radioButtonGroupScope())
|
| scope->updateCheckedState(this);
|
| @@ -875,7 +876,7 @@ void HTMLInputElement::setChecked(bool nowChecked, TextFieldEventBehavior eventB
|
| dispatchFormControlChangeEvent();
|
| }
|
|
|
| - didAffectSelector(AffectedSelectorChecked);
|
| + didAffectSelector(styleChangeReason, AffectedSelectorChecked);
|
| }
|
|
|
| void HTMLInputElement::setIndeterminate(bool newValue)
|
| @@ -885,7 +886,7 @@ void HTMLInputElement::setIndeterminate(bool newValue)
|
|
|
| m_isIndeterminate = newValue;
|
|
|
| - didAffectSelector(AffectedSelectorIndeterminate);
|
| + didAffectSelector(StyleChangeReasonForTracing::createWithExtraData(StyleChangeReason::PseudoClass, StyleChangeExtraData::Indeterminate), AffectedSelectorIndeterminate);
|
|
|
| if (renderer() && renderer()->style()->hasAppearance())
|
| RenderTheme::theme().stateChanged(renderer(), CheckedControlState);
|
| @@ -960,7 +961,7 @@ void HTMLInputElement::setSuggestedValue(const String& value)
|
| return;
|
| m_needsToUpdateViewValue = true;
|
| m_suggestedValue = sanitizeValue(value);
|
| - setNeedsStyleRecalc(SubtreeStyleChange);
|
| + setNeedsStyleRecalc(StyleChangeReasonForTracing::create(StyleChangeReason::ControlValue), SubtreeStyleChange);
|
| m_inputTypeView->updateView();
|
| }
|
|
|
| @@ -1590,7 +1591,7 @@ void HTMLInputElement::parseMaxLengthAttribute(const AtomicString& value)
|
| m_maxLength = maxLength;
|
| if (oldMaxLength != maxLength)
|
| updateValueIfNeeded();
|
| - setNeedsStyleRecalc(SubtreeStyleChange);
|
| + setNeedsStyleRecalc(StyleChangeReasonForTracing::fromAttribute(maxlengthAttr), SubtreeStyleChange);
|
| setNeedsValidityCheck();
|
| }
|
|
|
|
|