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

Unified Diff: Source/core/dom/StyleChangeReason.h

Issue 547823002: Track reasons for |Node::SetNeedsStyleRecalc| (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: reasons as tuple Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/dom/StyleChangeReason.h
diff --git a/Source/core/dom/StyleChangeReason.h b/Source/core/dom/StyleChangeReason.h
new file mode 100644
index 0000000000000000000000000000000000000000..b77750d2c7ea9874ca215cde308f9fdf65aa9131
--- /dev/null
+++ b/Source/core/dom/StyleChangeReason.h
@@ -0,0 +1,119 @@
+// 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 "wtf/NullPtr.h"
+#include "wtf/PassRefPtr.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+class QualifiedName;
+namespace TraceEvent {
+class ConvertableToTraceFormat;
+}
+
+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 Inspector[];
+extern const char Language[];
+extern const char LinkColorChange[];
+extern const char PlatformColorChange[];
+extern const char Plugin[];
+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 char Active[];
+extern const char Checked[];
+extern const char Disabled[];
+extern const char Focus[];
+extern const char Hover[];
+extern const char Indeterminate[];
+extern const char Invalid[];
+extern const char LinkVisitedEnabled[];
+extern const char Target[];
+extern const char Unresolved[];
+}
+typedef const char StyleChangeExtraDataString[];
+
+// |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)
+ {
+ StyleChangeReasonForTracing reason;
+ reason.m_reason = reasonString;
+ reason.m_extraData = nullptr;
+ reason.m_attributeName = nullptr;
+ return reason;
+ }
+
+ static StyleChangeReasonForTracing createWithExtraData(StyleChangeReasonString reasonString, StyleChangeExtraDataString extraData)
+ {
+ StyleChangeReasonForTracing reason;
+ reason.m_reason = reasonString;
+ reason.m_extraData = extraData;
+ reason.m_attributeName = nullptr;
+ return reason;
+ }
+
+ static StyleChangeReasonForTracing fromAttribute(const QualifiedName& attributeName)
esprehn 2014/09/26 03:53:01 qualified name is just namespace and a string, I'd
kouhei (in TOK) 2014/09/29 02:05:32 Done.
+ {
+ StyleChangeReasonForTracing reason;
+ reason.m_reason = StyleChangeReason::Attribute;
+ reason.m_extraData = nullptr;
+ reason.m_attributeName = &attributeName;
+ return reason;
+ }
+
+ String getReasonString() const;
+ String getExtraDataString() const;
esprehn 2014/09/26 03:53:01 no get* on getters.
kouhei (in TOK) 2014/09/29 02:05:32 Done.
+
+private:
+ StyleChangeReasonForTracing() { }
+
+ // disable comparisons
+ const void operator==(const StyleChangeReasonForTracing&) { }
+ const void operator!=(const StyleChangeReasonForTracing&) { }
+
+ const char* m_reason;
+ const char* m_extraData;
+ const QualifiedName* m_attributeName;
esprehn 2014/09/26 03:53:01 remove this. Also QualifiedName is not safe to sto
kouhei (in TOK) 2014/09/29 02:05:32 Done.
+};
+
+} // namespace blink
+
+#endif // StyleChangeReason_h

Powered by Google App Engine
This is Rietveld 408576698