1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
// 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/NullPtr.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 ControlValue[];
extern const char Control[];
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[];
}
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& 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 {
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
|