File: StyleChangeReason.h

package info (click to toggle)
chromium-browser 41.0.2272.118-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 2,189,132 kB
  • sloc: cpp: 9,691,462; ansic: 3,341,451; python: 712,689; asm: 518,779; xml: 208,926; java: 169,820; sh: 119,353; perl: 68,907; makefile: 28,311; yacc: 13,305; objc: 11,385; tcl: 3,186; cs: 2,225; sql: 2,217; lex: 2,215; lisp: 1,349; pascal: 1,256; awk: 407; ruby: 155; sed: 53; php: 14; exp: 11
file content (105 lines) | stat: -rw-r--r-- 3,321 bytes parent folder | download
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