| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef StyleChangeReason_h |
| #define StyleChangeReason_h |
| |
| #include "core/dom/QualifiedName.h" |
| #include "wtf/PassRefPtr.h" |
| #include "wtf/text/AtomicString.h" |
| #include "wtf/text/WTFString.h" |
| |
| namespace blink { |
| |
| class QualifiedName; |
| |
| namespace StyleChangeReason { |
| extern const char ActiveStylesheetsUpdate[]; |
| extern const char Animation[]; |
| extern const char Attribute[]; |
| extern const char CleanupPlaceholderStyles[]; |
| extern const char CompositorProxy[]; |
| extern const char ControlValue[]; |
| extern const char Control[]; |
| extern const char DeclarativeContent[]; |
| extern const char DesignMode[]; |
| extern const char Drag[]; |
| extern const char FontSizeChange[]; |
| extern const char Fonts[]; |
| extern const char FullScreen[]; |
| extern const char Inline[]; |
| extern const char InlineCSSStyleMutated[]; |
| extern const char Inspector[]; |
| extern const char Language[]; |
| extern const char LinkColorChange[]; |
| extern const char PlatformColorChange[]; |
| extern const char PropagateInheritChangeToDistributedNodes[]; |
| extern const char PseudoClass[]; |
| extern const char SVGContainerSizeChange[]; |
| extern const char SVGCursor[]; |
| extern const char SVGFilterLayerUpdate[]; |
| extern const char Shadow[]; |
| extern const char SiblingSelector[]; |
| extern const char StyleInvalidator[]; |
| extern const char StyleSheetChange[]; |
| extern const char Validate[]; |
| extern const char ViewportUnits[]; |
| extern const char VisitedLink[]; |
| extern const char VisuallyOrdered[]; |
| extern const char WritingModeChange[]; |
| extern const char Zoom[]; |
| } // namespace StyleChangeReason |
| typedef const char StyleChangeReasonString[]; |
| |
| namespace StyleChangeExtraData { |
| extern const AtomicString& Active; |
| extern const AtomicString& Disabled; |
| extern const AtomicString& Focus; |
| extern const AtomicString& Hover; |
| extern const AtomicString& Past; |
| extern const AtomicString& Unresolved; |
| |
| void init(); |
| } |
| |
| // |StyleChangeReasonForTracing| is used to trace the reason a |
| // |Node::setNeedsStyleRecalc| call was made to show it in DevTools or in |
| // about:tracing. |
| // |StyleChangeReasonForTracing| is strictly only for the tracing purpose as |
| // described above. Blink logic must not depend on this value. |
| class StyleChangeReasonForTracing { |
| DISALLOW_NEW(); |
| public: |
| static StyleChangeReasonForTracing create(StyleChangeReasonString reasonString) |
| { |
| return StyleChangeReasonForTracing(reasonString, nullAtom); |
| } |
| |
| static StyleChangeReasonForTracing createWithExtraData(StyleChangeReasonString reasonString, const AtomicString& extraData) |
| { |
| return StyleChangeReasonForTracing(reasonString, extraData); |
| } |
| |
| static StyleChangeReasonForTracing fromAttribute(const QualifiedName& attributeName) |
| { |
| return StyleChangeReasonForTracing(StyleChangeReason::Attribute, attributeName.localName()); |
| } |
| |
| String reasonString() const { return String(m_reason); } |
| const AtomicString& extraData() const { return m_extraData; } |
| |
| private: |
| StyleChangeReasonForTracing(StyleChangeReasonString reasonString, const AtomicString& extraData) |
| : m_reason(reasonString) |
| , m_extraData(extraData) |
| { |
| } |
| |
| // disable comparisons |
| void operator==(const StyleChangeReasonForTracing&) const { } |
| void operator!=(const StyleChangeReasonForTracing&) const { } |
| |
| const char* m_reason; |
| AtomicString m_extraData; |
| }; |
| |
| } // namespace blink |
| |
| #endif // StyleChangeReason_h |