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

Unified Diff: Source/core/frame/UseCounter.h

Issue 729393002: Auto generate UseCounter::Feature enum from an .in file (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month 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/frame/UseCounter.h
diff --git a/Source/core/frame/UseCounter.h b/Source/core/frame/UseCounter.h
index 5dec4b0c34aa4a6b7c8ffaeece8815f239b1eb99..dfe127099913909e1f2ecc1fcf6bec902141844d 100644
--- a/Source/core/frame/UseCounter.h
+++ b/Source/core/frame/UseCounter.h
@@ -27,6 +27,7 @@
#define UseCounter_h
#include "core/CSSPropertyNames.h"
+#include "core/UseCounterGenerated.h"
#include "wtf/BitVector.h"
#include "wtf/Noncopyable.h"
#include "wtf/OwnPtr.h"
@@ -54,505 +55,12 @@ class StyleSheetContents;
// during their install of Google Chrome:
// http://www.google.com/chrome/intl/en/privacy.html
-class UseCounter {
+class UseCounter : public UseCounterGenerated {
haraken 2014/11/24 09:38:49 Add final.
WTF_MAKE_NONCOPYABLE(UseCounter);
public:
UseCounter();
~UseCounter();
- enum Feature {
- // Do not change assigned numbers of existing items: add new features
- // to the end of the list.
- PageDestruction = 0,
- PrefixedIndexedDB = 3,
- WorkerStart = 4,
- SharedWorkerStart = 5,
- UnprefixedIndexedDB = 9,
- OpenWebDatabase = 10,
- UnprefixedRequestAnimationFrame = 13,
- PrefixedRequestAnimationFrame = 14,
- ContentSecurityPolicy = 15,
- ContentSecurityPolicyReportOnly = 16,
- PrefixedTransitionEndEvent = 18,
- UnprefixedTransitionEndEvent = 19,
- PrefixedAndUnprefixedTransitionEndEvent = 20,
- AutoFocusAttribute = 21,
- DataListElement = 23,
- FormAttribute = 24,
- IncrementalAttribute = 25,
- InputTypeColor = 26,
- InputTypeDate = 27,
- InputTypeDateTimeFallback = 29,
- InputTypeDateTimeLocal = 30,
- InputTypeEmail = 31,
- InputTypeMonth = 32,
- InputTypeNumber = 33,
- InputTypeRange = 34,
- InputTypeSearch = 35,
- InputTypeTel = 36,
- InputTypeTime = 37,
- InputTypeURL = 38,
- InputTypeWeek = 39,
- InputTypeWeekFallback = 40,
- ListAttribute = 41,
- MaxAttribute = 42,
- MinAttribute = 43,
- PatternAttribute = 44,
- PlaceholderAttribute = 45,
- PrefixedDirectoryAttribute = 47,
- RequiredAttribute = 49,
- ResultsAttribute = 50,
- StepAttribute = 51,
- PageVisits = 52,
- HTMLMarqueeElement = 53,
- Reflection = 55,
- PrefixedStorageInfo = 57,
- XFrameOptions = 58,
- XFrameOptionsSameOrigin = 59,
- XFrameOptionsSameOriginWithBadAncestorChain = 60,
- DeprecatedFlexboxWebContent = 61,
- DeprecatedFlexboxChrome = 62,
- DeprecatedFlexboxChromeExtension = 63,
- UnprefixedPerformanceTimeline = 65,
- UnprefixedUserTiming = 67,
- WindowEvent = 69,
- ContentSecurityPolicyWithBaseElement = 70,
- PrefixedMediaAddKey = 71,
- PrefixedMediaGenerateKeyRequest = 72,
- DocumentClear = 74,
- XMLDocument = 77,
- XSLProcessingInstruction = 78,
- XSLTProcessor = 79,
- SVGSwitchElement = 80,
- DocumentAll = 83,
- FormElement = 84,
- DemotedFormElement = 85,
- SVGAnimationElement = 90,
- KeyboardEventKeyLocation = 91,
- LineClamp = 96,
- SubFrameBeforeUnloadRegistered = 97,
- SubFrameBeforeUnloadFired = 98,
- ConsoleMarkTimeline = 102,
- ElementGetAttributeNode = 107,
- ElementSetAttributeNode = 108,
- ElementRemoveAttributeNode = 109,
- ElementGetAttributeNodeNS = 110,
- DocumentCreateAttribute = 111,
- DocumentCreateAttributeNS = 112,
- DocumentCreateCDATASection = 113, // Removed from DOM4.
- DocumentInputEncoding = 114, // Removed from DOM4.
- DocumentXMLEncoding = 115, // Removed from DOM4.
- DocumentXMLStandalone = 116, // Removed from DOM4.
- DocumentXMLVersion = 117, // Removed from DOM4.
- NodeIsSameNode = 118, // Removed from DOM4.
- NodeNamespaceURI = 120, // Removed from DOM4.
- NodeLocalName = 122, // Removed from DOM4.
- NavigatorProductSub = 123,
- NavigatorVendor = 124,
- NavigatorVendorSub = 125,
- FileError = 126,
- DocumentCharset = 127, // Documented as IE extensions = 0, from KHTML days.
- PrefixedAnimationEndEvent = 128,
- UnprefixedAnimationEndEvent = 129,
- PrefixedAndUnprefixedAnimationEndEvent = 130,
- PrefixedAnimationStartEvent = 131,
- UnprefixedAnimationStartEvent = 132,
- PrefixedAndUnprefixedAnimationStartEvent = 133,
- PrefixedAnimationIterationEvent = 134,
- UnprefixedAnimationIterationEvent = 135,
- PrefixedAndUnprefixedAnimationIterationEvent = 136,
- EventReturnValue = 137, // Legacy IE extension.
- SVGSVGElement = 138,
- InsertAdjacentText = 140,
- InsertAdjacentElement = 141,
- HasAttributes = 142,
- DOMSubtreeModifiedEvent = 143,
- DOMNodeInsertedEvent = 144,
- DOMNodeRemovedEvent = 145,
- DOMNodeRemovedFromDocumentEvent = 146,
- DOMNodeInsertedIntoDocumentEvent = 147,
- DOMCharacterDataModifiedEvent = 148,
- DocumentAllLegacyCall = 150,
- HTMLEmbedElementLegacyCall = 152,
- HTMLObjectElementLegacyCall = 153,
- GetMatchedCSSRules = 155,
- AttributeOwnerElement = 160,
- AttributeSpecified = 162,
- PrefixedAudioDecodedByteCount = 164,
- PrefixedVideoDecodedByteCount = 165,
- PrefixedVideoSupportsFullscreen = 166,
- PrefixedVideoDisplayingFullscreen = 167,
- PrefixedVideoEnterFullscreen = 168,
- PrefixedVideoExitFullscreen = 169,
- PrefixedVideoEnterFullScreen = 170,
- PrefixedVideoExitFullScreen = 171,
- PrefixedVideoDecodedFrameCount = 172,
- PrefixedVideoDroppedFrameCount = 173,
- PrefixedElementRequestFullscreen = 176,
- PrefixedElementRequestFullScreen = 177,
- BarPropLocationbar = 178,
- BarPropMenubar = 179,
- BarPropPersonalbar = 180,
- BarPropScrollbars = 181,
- BarPropStatusbar = 182,
- BarPropToolbar = 183,
- InputTypeEmailMultiple = 184,
- InputTypeEmailMaxLength = 185,
- InputTypeEmailMultipleMaxLength = 186,
- InputTypeText = 190,
- InputTypeTextMaxLength = 191,
- InputTypePassword = 192,
- InputTypePasswordMaxLength = 193,
- ShowModalDialog = 195,
- PrefixedPageVisibility = 196,
- CSSStyleSheetInsertRuleOptionalArg = 198, // Inconsistent with the specification and other browsers.
- DocumentBeforeUnloadRegistered = 200,
- DocumentBeforeUnloadFired = 201,
- DocumentUnloadRegistered = 202,
- DocumentUnloadFired = 203,
- SVGLocatableNearestViewportElement = 204,
- SVGLocatableFarthestViewportElement = 205,
- OverflowChangedEvent = 208,
- SVGPointMatrixTransform = 209,
- DOMFocusInOutEvent = 211,
- FileGetLastModifiedDate = 212,
- HTMLElementInnerText = 213,
- HTMLElementOuterText = 214,
- ReplaceDocumentViaJavaScriptURL = 215,
- ElementSetAttributeNodeNS = 216, // Removed from DOM4.
- ElementPrefixedMatchesSelector = 217,
- CSSStyleSheetRules = 219,
- CSSStyleSheetAddRule = 220,
- CSSStyleSheetRemoveRule = 221,
- // The above items are available in M33 branch.
-
- InitMessageEvent = 222,
- PrefixedMediaCancelKeyRequest = 229,
- DOMImplementationHasFeature = 230,
- DOMImplementationHasFeatureReturnFalse = 231,
- CanPlayTypeKeySystem = 232,
- PrefixedDevicePixelRatioMediaFeature = 233,
- PrefixedMaxDevicePixelRatioMediaFeature = 234,
- PrefixedMinDevicePixelRatioMediaFeature = 235,
- PrefixedTransform3dMediaFeature = 237,
- PrefixedStorageQuota = 240,
- ResetReferrerPolicy = 243,
- CaseInsensitiveAttrSelectorMatch = 244, // Case-insensitivity dropped from specification.
- FormNameAccessForImageElement = 246,
- FormNameAccessForPastNamesMap = 247,
- FormAssociationByParser = 248,
- SVGSVGElementInDocument = 250,
- SVGDocumentRootElement = 251,
- MediaErrorEncrypted = 253,
- EventSourceURL = 254,
- WebSocketURL = 255,
- WorkerSubjectToCSP = 257,
- WorkerAllowedByChildBlockedByScript = 258,
- DeprecatedWebKitGradient = 260,
- DeprecatedWebKitLinearGradient = 261,
- DeprecatedWebKitRepeatingLinearGradient = 262,
- DeprecatedWebKitRadialGradient = 263,
- DeprecatedWebKitRepeatingRadialGradient = 264,
- PrefixedImageSmoothingEnabled = 267,
- UnprefixedImageSmoothingEnabled = 268,
- // The above items are available in M34 branch.
-
- TextAutosizing = 274,
- HTMLAnchorElementPingAttribute = 276,
- InsertAdjacentHTML = 278,
- SVGClassName = 279,
- HTMLAppletElement = 280,
- HTMLMediaElementSeekToFragmentStart = 281,
- HTMLMediaElementPauseAtFragmentEnd = 282,
- PrefixedWindowURL = 283,
- PrefixedWorkerURL = 284, // This didn't work because of crbug.com/376039. Available since M37.
- WindowOrientation = 285,
- DOMStringListContains = 286,
- DocumentCaptureEvents = 287,
- DocumentReleaseEvents = 288,
- WindowCaptureEvents = 289,
- WindowReleaseEvents = 290,
- PrefixedGamepad = 291,
- ElementAnimateKeyframeListEffectObjectTiming = 292,
- ElementAnimateKeyframeListEffectDoubleTiming = 293,
- ElementAnimateKeyframeListEffectNoTiming = 294,
- DocumentXPathCreateExpression = 295,
- DocumentXPathCreateNSResolver = 296,
- DocumentXPathEvaluate = 297,
- AttrGetValue = 298,
- AttrSetValue = 299,
- AnimationConstructorKeyframeListEffectObjectTiming = 300,
- AnimationConstructorKeyframeListEffectDoubleTiming = 301,
- AnimationConstructorKeyframeListEffectNoTiming = 302,
- AttrSetValueWithElement = 303,
- PrefixedCancelAnimationFrame = 304,
- PrefixedCancelRequestAnimationFrame = 305,
- NamedNodeMapGetNamedItem = 306,
- NamedNodeMapSetNamedItem = 307,
- NamedNodeMapRemoveNamedItem = 308,
- NamedNodeMapItem = 309,
- NamedNodeMapGetNamedItemNS = 310,
- NamedNodeMapSetNamedItemNS = 311,
- NamedNodeMapRemoveNamedItemNS = 312,
- XHRProgressEventPosition = 316,
- XHRProgressEventTotalSize = 317,
- PrefixedDocumentIsFullscreen = 318,
- PrefixedDocumentCurrentFullScreenElement = 320,
- PrefixedDocumentCancelFullScreen = 321,
- PrefixedDocumentFullscreenEnabled = 322,
- PrefixedDocumentFullscreenElement = 323,
- PrefixedDocumentExitFullscreen = 324,
- // The above items are available in M35 branch.
-
- SVGForeignObjectElement = 325,
- SelectionSetPosition = 327,
- AnimationPlayerFinishEvent = 328,
- SVGSVGElementInXMLDocument = 329,
- PrefixedPerformanceClearResourceTimings = 341,
- PrefixedPerformanceSetResourceTimingBufferSize = 342,
- EventSrcElement = 343,
- EventCancelBubble = 344,
- EventPath = 345,
- EventClipboardData = 346,
- NodeIteratorDetach = 347,
- AttrNodeValue = 348,
- AttrTextContent = 349,
- EventGetReturnValueTrue = 350,
- EventGetReturnValueFalse = 351,
- EventSetReturnValueTrue = 352,
- EventSetReturnValueFalse = 353,
- WindowOffscreenBuffering = 356,
- WindowDefaultStatus = 357,
- WindowDefaultstatus = 358,
- PrefixedTransitionEventConstructor = 361,
- PrefixedMutationObserverConstructor = 362,
- PrefixedIDBCursorConstructor = 363,
- PrefixedIDBDatabaseConstructor = 364,
- PrefixedIDBFactoryConstructor = 365,
- PrefixedIDBIndexConstructor = 366,
- PrefixedIDBKeyRangeConstructor = 367,
- PrefixedIDBObjectStoreConstructor = 368,
- PrefixedIDBRequestConstructor = 369,
- PrefixedIDBTransactionConstructor = 370,
- NotificationPermission = 371,
- RangeDetach = 372,
- HTMLTableElementVspace = 374,
- HTMLTableElementHspace = 375,
- PrefixedTouchRadiusX = 378,
- PrefixedTouchRadiusY = 379,
- PrefixedTouchRotationAngle = 380,
- PrefixedTouchForce = 381,
- PrefixedMouseEventMovementX = 382,
- PrefixedMouseEventMovementY = 383,
- PrefixedFileRelativePath = 386,
- DocumentCaretRangeFromPoint = 387,
- DocumentGetCSSCanvasContext = 388,
- ElementScrollIntoViewIfNeeded = 389,
- RangeCompareNode = 392,
- RangeExpand = 393,
- HTMLImageElementX = 396,
- HTMLImageElementY = 397,
- SelectionBaseNode = 400,
- SelectionBaseOffset = 401,
- SelectionExtentNode = 402,
- SelectionExtentOffset = 403,
- SelectionType = 404,
- SelectionModify = 405,
- SelectionSetBaseAndExtent = 406,
- SelectionEmpty = 407,
- VTTCue = 409,
- VTTCueRender = 410,
- VTTCueRenderVertical = 411,
- VTTCueRenderSnapToLinesFalse = 412,
- VTTCueRenderLineNotAuto = 413,
- VTTCueRenderPositionNot50 = 414,
- VTTCueRenderSizeNot100 = 415,
- VTTCueRenderAlignNotMiddle = 416,
- // The above items are available in M36 branch.
-
- ElementRequestPointerLock = 417,
- VTTCueRenderRtl = 418,
- PostMessageFromSecureToInsecure = 419,
- PostMessageFromInsecureToSecure = 420,
- DocumentExitPointerLock = 421,
- DocumentPointerLockElement = 422,
- PrefixedCursorZoomIn = 424,
- PrefixedCursorZoomOut = 425,
- CSSCharsetRuleEncoding = 426,
- DocumentSetCharset = 427,
- DocumentDefaultCharset = 428,
- TextEncoderConstructor = 429,
- TextEncoderEncode = 430,
- TextDecoderConstructor = 431,
- TextDecoderDecode = 432,
- FocusInOutEvent = 433,
- MouseEventMovementX = 434,
- MouseEventMovementY = 435,
- DocumentFonts = 440,
- MixedContentFormsSubmitted = 441,
- FormsSubmitted = 442,
- TextInputEventOnInput = 443,
- TextInputEventOnTextArea = 444,
- TextInputEventOnContentEditable = 445,
- TextInputEventOnNotNode = 446,
- WebkitBeforeTextInsertedOnInput = 447,
- WebkitBeforeTextInsertedOnTextArea = 448,
- WebkitBeforeTextInsertedOnContentEditable = 449,
- WebkitBeforeTextInsertedOnNotNode = 450,
- WebkitEditableContentChangedOnInput = 451,
- WebkitEditableContentChangedOnTextArea = 452,
- WebkitEditableContentChangedOnContentEditable = 453,
- WebkitEditableContentChangedOnNotNode = 454,
- HTMLImports = 455,
- ElementCreateShadowRoot = 456,
- DocumentRegisterElement = 457,
- EditingAppleInterchangeNewline = 458,
- EditingAppleConvertedSpace = 459,
- EditingApplePasteAsQuotation = 460,
- EditingAppleStyleSpanClass = 461,
- EditingAppleTabSpanClass = 462,
- HTMLImportsAsyncAttribute = 463,
- FontFaceSetReady = 464,
- XMLHttpRequestSynchronous = 465,
- CSSSelectorPseudoUnresolved = 466,
- CSSSelectorPseudoShadow = 467,
- CSSSelectorPseudoContent = 468,
- CSSSelectorPseudoHost = 469,
- CSSSelectorPseudoHostContext = 470,
- CSSDeepCombinator = 471,
- SyncXHRWithCredentials = 472,
- // The above items are available in M37 branch.
-
- UseAsm = 473,
- DOMWindowOpen = 475,
- DOMWindowOpenFeatures = 476,
- MediaStreamTrackGetSources = 478,
- AspectRatioFlexItem = 479,
- DetailsElement = 480,
- DialogElement = 481,
- MapElement = 482,
- MeterElement = 483,
- ProgressElement = 484,
- VideoFullscreenAllowedExemption = 485,
- PrefixedHTMLElementDropzone = 490,
- WheelEventWheelDeltaX = 491,
- WheelEventWheelDeltaY = 492,
- WheelEventWheelDelta = 493,
- SendBeacon = 494,
- SendBeaconQuotaExceeded = 495,
- SVGSMILElementInDocument = 501,
- MouseEventOffsetX = 502,
- MouseEventOffsetY = 503,
- MouseEventX = 504,
- MouseEventY = 505,
- MouseEventFromElement = 506,
- MouseEventToElement = 507,
- RequestFileSystem = 508,
- RequestFileSystemWorker = 509,
- RequestFileSystemSyncWorker = 510,
- UIEventLayerX = 511,
- UIEventLayerY = 512,
- UIEventPageX = 513,
- UIEventPageY = 514,
- DevToolsConsoleTimeline = 517,
- DevToolsConsoleProfile = 518,
- SVGStyleElementTitle = 519,
- PictureSourceSrc = 520,
- // The above items are available in M38 branch.
-
- Picture = 521,
- Sizes = 522,
- SrcsetXDescriptor = 523,
- SrcsetWDescriptor = 524,
- SelectionContainsNode = 525,
- MediaStreamEnded = 526,
- MixedContentPrivateIPInPublicWebsitePassive = 527,
- MixedContentPrivateIPInPublicWebsiteActive = 528,
- XMLExternalResourceLoad = 529,
- MixedContentPrivateHostnameInPublicHostname = 530,
- LegacyProtocolEmbeddedAsSubresource = 531,
- RequestedSubresourceWithEmbeddedCredentials = 532,
- NotificationCreated = 533,
- NotificationClosed = 534,
- NotificationPermissionRequested = 535,
- MediaStreamLabel = 536,
- MediaStreamStop = 537,
- ConsoleTimeline = 538,
- ConsoleTimelineEnd = 539,
- SRIElementWithMatchingIntegrityAttribute = 540,
- SRIElementWithNonMatchingIntegrityAttribute = 541,
- SRIElementWithUnparsableIntegrityAttribute = 542,
- SRIElementWithIntegrityAttributeAndInsecureOrigin = 543,
- SRIElementWithIntegrityAttributeAndInsecureResource = 544,
- AnimationPlayerGetStartTime = 545,
- AnimationPlayerSetStartTime = 546,
- AnimationPlayerGetCurrentTime = 547,
- AnimationPlayerSetCurrentTime = 548,
- AnimationPlayerGetPlaybackRate = 549,
- AnimationPlayerSetPlaybackRate = 550,
- AnimationPlayerGetPlayState = 551,
- AnimationPlayerFinish = 552,
- AnimationPlayerPlay = 553,
- AnimationPlayerPause = 554,
- AnimationPlayerReverse = 555,
- // The above items are available in M39 branch.
-
- BreakIterator = 556,
- ScreenOrientationAngle = 557,
- ScreenOrientationType = 558,
- ScreenOrientationLock = 559,
- ScreenOrientationUnlock = 560,
- GeolocationSecureOrigin = 561,
- GeolocationInsecureOrigin = 562,
- NotificationSecureOrigin = 563,
- NotificationInsecureOrigin = 564,
- NotificationShowEvent = 565,
- CSSXGetComputedStyleQueries = 566,
- SVG1DOM = 567,
- SVGPathSegDOM = 568,
- SVGTransformListConsolidate = 569,
- SVGAnimatedTransformListBaseVal = 570,
- QuotedAnimationName = 571,
- QuotedKeyframesRule = 572,
- SrcsetDroppedCandidate = 573,
- WindowPostMessage = 574,
- WindowPostMessageWithLegacyTargetOriginArgument = 575,
- RenderRuby = 576,
- CanvasRenderingContext2DCompositeOperationDarker = 577,
- ScriptElementWithInvalidTypeHasSrc = 578,
- TimelineStart = 579,
- ElementBaseURIFromXMLBase = 580,
- XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload = 581,
- CSSSelectorPseudoScrollbar = 582,
- CSSSelectorPseudoScrollbarButton = 583,
- CSSSelectorPseudoScrollbarThumb = 584,
- CSSSelectorPseudoScrollbarTrack = 585,
- CSSSelectorPseudoScrollbarTrackPiece = 586,
- LangAttribute = 587,
- LangAttributeOnHTML = 588,
- LangAttributeOnBody = 589,
- LangAttributeDoesNotMatchToUILocale = 590,
- InputTypeSubmit = 591,
- InputTypeSubmitWithValue = 592,
- // The above items are available in M40 branch.
-
- SetReferrerPolicy = 593,
- DOMImplementationHasFeatureReturnFalseInternal = 594,
- MouseEventWhich = 595,
- UIEventCharCode = 596,
- UIEventKeyCode = 597,
- UIEventWhich = 598,
- TextWholeText = 599,
- AttrChildAccess = 600,
- AttrChildChange = 601,
-
- // Add new features immediately above this line. Don't change assigned
- // numbers of any item, and don't reuse removed slots.
- // Also, run update_use_counter_feature_enum.py in chromium/src/tools/metrics/histograms/
- // to update the UMA mapping.
- NumberOfFeatures, // This enum value must be last.
- };
-
// "count" sets the bit for this feature to 1. Repeated calls are ignored.
static void count(const Frame*, Feature);
static void count(const Document&, Feature);

Powered by Google App Engine
This is Rietveld 408576698