blob: 6accb1b54777c9f38d5d3fce81a92b3c7c8d5087 [file] [log] [blame]
/*
* Copyright (C) 2012 Google, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef UseCounter_h
#define UseCounter_h
#include "core/CSSPropertyNames.h"
#include "core/CoreExport.h"
#include "core/css/parser/CSSParserMode.h"
#include "platform/heap/GarbageCollected.h"
#include "platform/heap/HeapAllocator.h"
#include "platform/weborigin/KURL.h"
#include "platform/wtf/BitVector.h"
#include "platform/wtf/Noncopyable.h"
#include "platform/wtf/text/WTFString.h"
#include "v8/include/v8.h"
namespace blink {
class CSSStyleSheet;
class Document;
class EnumerationHistogram;
class ExecutionContext;
class Frame;
class StyleSheetContents;
// UseCounter is used for counting the number of times features of
// Blink are used on real web pages and help us know commonly
// features are used and thus when it's safe to remove or change them.
//
// The Chromium Content layer controls what is done with this data.
//
// For instance, in Google Chrome, these counts are submitted anonymously
// through the UMA histogram recording system in Chrome for users who have the
// "Automatically send usage statistics and crash reports to Google" setting
// enabled:
// http://www.google.com/chrome/intl/en/privacy.html
//
// Changes on UseCounter are observable by UseCounter::Observer.
class CORE_EXPORT UseCounter {
DISALLOW_NEW();
WTF_MAKE_NONCOPYABLE(UseCounter);
public:
enum Context {
kDefaultContext,
// Counters for SVGImages (lifetime independent from other pages).
kSVGImageContext
};
UseCounter(Context = kDefaultContext);
enum Feature : uint32_t {
// Do not change assigned numbers of existing items: add new features
// to the end of the list.
kOBSOLETE_PageDestruction = 0,
kWorkerStart = 4,
kSharedWorkerStart = 5,
kUnprefixedIndexedDB = 9,
kOpenWebDatabase = 10,
kUnprefixedRequestAnimationFrame = 13,
kPrefixedRequestAnimationFrame = 14,
kContentSecurityPolicy = 15,
kContentSecurityPolicyReportOnly = 16,
kPrefixedTransitionEndEvent = 18,
kUnprefixedTransitionEndEvent = 19,
kPrefixedAndUnprefixedTransitionEndEvent = 20,
kAutoFocusAttribute = 21,
kDataListElement = 23,
kFormAttribute = 24,
kIncrementalAttribute = 25,
kInputTypeColor = 26,
kInputTypeDate = 27,
kInputTypeDateTimeFallback = 29,
kInputTypeDateTimeLocal = 30,
kInputTypeEmail = 31,
kInputTypeMonth = 32,
kInputTypeNumber = 33,
kInputTypeRange = 34,
kInputTypeSearch = 35,
kInputTypeTel = 36,
kInputTypeTime = 37,
kInputTypeURL = 38,
kInputTypeWeek = 39,
kInputTypeWeekFallback = 40,
kListAttribute = 41,
kMaxAttribute = 42,
kMinAttribute = 43,
kPatternAttribute = 44,
kPlaceholderAttribute = 45,
kPrefixedDirectoryAttribute = 47,
kRequiredAttribute = 49,
kStepAttribute = 51,
kPageVisits = 52,
kHTMLMarqueeElement = 53,
kReflection = 55,
kPrefixedStorageInfo = 57,
kDeprecatedFlexboxWebContent = 61,
kDeprecatedFlexboxChrome = 62,
kDeprecatedFlexboxChromeExtension = 63,
kUnprefixedPerformanceTimeline = 65,
kUnprefixedUserTiming = 67,
kWindowEvent = 69,
kContentSecurityPolicyWithBaseElement = 70,
kDocumentClear = 74,
kXMLDocument = 77,
kXSLProcessingInstruction = 78,
kXSLTProcessor = 79,
kSVGSwitchElement = 80,
kDocumentAll = 83,
kFormElement = 84,
kDemotedFormElement = 85,
kSVGAnimationElement = 90,
kLineClamp = 96,
kSubFrameBeforeUnloadRegistered = 97,
kSubFrameBeforeUnloadFired = 98,
kConsoleMarkTimeline = 102,
kDocumentCreateAttribute = 111,
kDocumentCreateAttributeNS = 112,
kDocumentXMLEncoding = 115, // Removed from DOM4.
kDocumentXMLStandalone = 116, // Removed from DOM4.
kDocumentXMLVersion = 117, // Removed from DOM4.
kNavigatorProductSub = 123,
kNavigatorVendor = 124,
kNavigatorVendorSub = 125,
kPrefixedAnimationEndEvent = 128,
kUnprefixedAnimationEndEvent = 129,
kPrefixedAndUnprefixedAnimationEndEvent = 130,
kPrefixedAnimationStartEvent = 131,
kUnprefixedAnimationStartEvent = 132,
kPrefixedAndUnprefixedAnimationStartEvent = 133,
kPrefixedAnimationIterationEvent = 134,
kUnprefixedAnimationIterationEvent = 135,
kPrefixedAndUnprefixedAnimationIterationEvent = 136,
kEventReturnValue = 137, // Legacy IE extension.
kSVGSVGElement = 138,
kDOMSubtreeModifiedEvent = 143,
kDOMNodeInsertedEvent = 144,
kDOMNodeRemovedEvent = 145,
kDOMNodeRemovedFromDocumentEvent = 146,
kDOMNodeInsertedIntoDocumentEvent = 147,
kDOMCharacterDataModifiedEvent = 148,
kDocumentAllLegacyCall = 150,
kGetMatchedCSSRules = 155,
kPrefixedAudioDecodedByteCount = 164,
kPrefixedVideoDecodedByteCount = 165,
kPrefixedVideoSupportsFullscreen = 166,
kPrefixedVideoDisplayingFullscreen = 167,
kPrefixedVideoEnterFullscreen = 168,
kPrefixedVideoExitFullscreen = 169,
kPrefixedVideoEnterFullScreen = 170,
kPrefixedVideoExitFullScreen = 171,
kPrefixedVideoDecodedFrameCount = 172,
kPrefixedVideoDroppedFrameCount = 173,
kPrefixedElementRequestFullscreen = 176,
kPrefixedElementRequestFullScreen = 177,
kBarPropLocationbar = 178,
kBarPropMenubar = 179,
kBarPropPersonalbar = 180,
kBarPropScrollbars = 181,
kBarPropStatusbar = 182,
kBarPropToolbar = 183,
kInputTypeEmailMultiple = 184,
kInputTypeEmailMaxLength = 185,
kInputTypeEmailMultipleMaxLength = 186,
kInputTypeText = 190,
kInputTypeTextMaxLength = 191,
kInputTypePassword = 192,
kInputTypePasswordMaxLength = 193,
kPrefixedPageVisibility = 196,
kDocumentBeforeUnloadRegistered = 200,
kDocumentBeforeUnloadFired = 201,
kDocumentUnloadRegistered = 202,
kDocumentUnloadFired = 203,
kSVGLocatableNearestViewportElement = 204,
kSVGLocatableFarthestViewportElement = 205,
kSVGPointMatrixTransform = 209,
kDOMFocusInOutEvent = 211,
kFileGetLastModifiedDate = 212,
kHTMLElementInnerText = 213,
kHTMLElementOuterText = 214,
kReplaceDocumentViaJavaScriptURL = 215,
kElementPrefixedMatchesSelector = 217,
kCSSStyleSheetRules = 219,
kCSSStyleSheetAddRule = 220,
kCSSStyleSheetRemoveRule = 221,
// The above items are available in M33 branch.
kInitMessageEvent = 222,
kPrefixedDevicePixelRatioMediaFeature = 233,
kPrefixedMaxDevicePixelRatioMediaFeature = 234,
kPrefixedMinDevicePixelRatioMediaFeature = 235,
kPrefixedTransform3dMediaFeature = 237,
kPrefixedStorageQuota = 240,
kResetReferrerPolicy = 243,
// Case-insensitivity dropped from specification.
kCaseInsensitiveAttrSelectorMatch = 244,
kFormNameAccessForImageElement = 246,
kFormNameAccessForPastNamesMap = 247,
kFormAssociationByParser = 248,
kSVGSVGElementInDocument = 250,
kSVGDocumentRootElement = 251,
kWorkerSubjectToCSP = 257,
kWorkerAllowedByChildBlockedByScript = 258,
kDeprecatedWebKitGradient = 260,
kDeprecatedWebKitLinearGradient = 261,
kDeprecatedWebKitRepeatingLinearGradient = 262,
kDeprecatedWebKitRadialGradient = 263,
kDeprecatedWebKitRepeatingRadialGradient = 264,
// The above items are available in M34 branch.
kTextAutosizing = 274,
kHTMLAnchorElementPingAttribute = 276,
kSVGClassName = 279,
kHTMLMediaElementSeekToFragmentStart = 281,
kHTMLMediaElementPauseAtFragmentEnd = 282,
kPrefixedWindowURL = 283,
kWindowOrientation = 285,
kDocumentCaptureEvents = 287,
kDocumentReleaseEvents = 288,
kWindowCaptureEvents = 289,
kWindowReleaseEvents = 290,
kDocumentXPathCreateExpression = 295,
kDocumentXPathCreateNSResolver = 296,
kDocumentXPathEvaluate = 297,
kAnimationConstructorKeyframeListEffectObjectTiming = 300,
kAnimationConstructorKeyframeListEffectNoTiming = 302,
kPrefixedCancelAnimationFrame = 304,
kNamedNodeMapGetNamedItem = 306,
kNamedNodeMapSetNamedItem = 307,
kNamedNodeMapRemoveNamedItem = 308,
kNamedNodeMapItem = 309,
kNamedNodeMapGetNamedItemNS = 310,
kNamedNodeMapSetNamedItemNS = 311,
kNamedNodeMapRemoveNamedItemNS = 312,
kPrefixedDocumentIsFullscreen = 318,
kPrefixedDocumentCurrentFullScreenElement = 320,
kPrefixedDocumentCancelFullScreen = 321,
kPrefixedDocumentFullscreenEnabled = 322,
kPrefixedDocumentFullscreenElement = 323,
kPrefixedDocumentExitFullscreen = 324,
// The above items are available in M35 branch.
kSVGForeignObjectElement = 325,
kSelectionSetPosition = 327,
kAnimationFinishEvent = 328,
kSVGSVGElementInXMLDocument = 329,
kEventSrcElement = 343,
kEventCancelBubble = 344,
kEventPath = 345,
kNodeIteratorDetach = 347,
kEventGetReturnValueTrue = 350,
kEventGetReturnValueFalse = 351,
kEventSetReturnValueTrue = 352,
kEventSetReturnValueFalse = 353,
kWindowOffscreenBuffering = 356,
kWindowDefaultStatus = 357,
kWindowDefaultstatus = 358,
kPrefixedTransitionEventConstructor = 361,
kPrefixedMutationObserverConstructor = 362,
kNotificationPermission = 371,
kRangeDetach = 372,
kPrefixedFileRelativePath = 386,
kDocumentCaretRangeFromPoint = 387,
kElementScrollIntoViewIfNeeded = 389,
kRangeExpand = 393,
kHTMLImageElementX = 396,
kHTMLImageElementY = 397,
kSelectionBaseNode = 400,
kSelectionBaseOffset = 401,
kSelectionExtentNode = 402,
kSelectionExtentOffset = 403,
kSelectionType = 404,
kSelectionModify = 405,
kSelectionSetBaseAndExtent = 406,
kSelectionEmpty = 407,
kVTTCue = 409,
kVTTCueRender = 410,
kVTTCueRenderVertical = 411,
kVTTCueRenderSnapToLinesFalse = 412,
kVTTCueRenderLineNotAuto = 413,
kVTTCueRenderPositionNot50 = 414,
kVTTCueRenderSizeNot100 = 415,
kVTTCueRenderAlignNotCenter = 416,
// The above items are available in M36 branch.
kElementRequestPointerLock = 417,
kVTTCueRenderRtl = 418,
kPostMessageFromSecureToInsecure = 419,
kPostMessageFromInsecureToSecure = 420,
kDocumentExitPointerLock = 421,
kDocumentPointerLockElement = 422,
kPrefixedCursorZoomIn = 424,
kPrefixedCursorZoomOut = 425,
kTextEncoderConstructor = 429,
kTextEncoderEncode = 430,
kTextDecoderConstructor = 431,
kTextDecoderDecode = 432,
kFocusInOutEvent = 433,
kMouseEventMovementX = 434,
kMouseEventMovementY = 435,
kDocumentFonts = 440,
kMixedContentFormsSubmitted = 441,
kFormsSubmitted = 442,
kHTMLImports = 455,
kElementCreateShadowRoot = 456,
kDocumentRegisterElement = 457,
kEditingAppleInterchangeNewline = 458,
kEditingAppleConvertedSpace = 459,
kEditingApplePasteAsQuotation = 460,
kEditingAppleStyleSpanClass = 461,
kHTMLImportsAsyncAttribute = 463,
kXMLHttpRequestSynchronous = 465,
kCSSSelectorPseudoUnresolved = 466,
kCSSSelectorPseudoShadow = 467,
kCSSSelectorPseudoContent = 468,
kCSSSelectorPseudoHost = 469,
kCSSSelectorPseudoHostContext = 470,
kCSSDeepCombinator = 471,
// The above items are available in M37 branch.
kUseAsm = 473,
kDOMWindowOpen = 475,
kDOMWindowOpenFeatures = 476,
kAspectRatioFlexItem = 479,
kDetailsElement = 480,
kDialogElement = 481,
kMapElement = 482,
kMeterElement = 483,
kProgressElement = 484,
kWheelEventWheelDeltaX = 491,
kWheelEventWheelDeltaY = 492,
kWheelEventWheelDelta = 493,
kSendBeacon = 494,
kSendBeaconQuotaExceeded = 495,
kSVGSMILElementInDocument = 501,
kMouseEventOffsetX = 502,
kMouseEventOffsetY = 503,
kMouseEventX = 504,
kMouseEventY = 505,
kMouseEventFromElement = 506,
kMouseEventToElement = 507,
kRequestFileSystem = 508,
kRequestFileSystemWorker = 509,
kRequestFileSystemSyncWorker = 510,
kSVGStyleElementTitle = 519,
kPictureSourceSrc = 520,
// The above items are available in M38 branch.
kPicture = 521,
kSizes = 522,
kSrcsetXDescriptor = 523,
kSrcsetWDescriptor = 524,
kSelectionContainsNode = 525,
kXMLExternalResourceLoad = 529,
kMixedContentPrivateHostnameInPublicHostname = 530,
kLegacyProtocolEmbeddedAsSubresource = 531,
kRequestedSubresourceWithEmbeddedCredentials = 532,
kNotificationCreated = 533,
kNotificationClosed = 534,
kNotificationPermissionRequested = 535,
kConsoleTimeline = 538,
kConsoleTimelineEnd = 539,
kSRIElementWithMatchingIntegrityAttribute = 540,
kSRIElementWithNonMatchingIntegrityAttribute = 541,
kSRIElementWithUnparsableIntegrityAttribute = 542,
kV8Animation_StartTime_AttributeGetter = 545,
kV8Animation_StartTime_AttributeSetter = 546,
kV8Animation_CurrentTime_AttributeGetter = 547,
kV8Animation_CurrentTime_AttributeSetter = 548,
kV8Animation_PlaybackRate_AttributeGetter = 549,
kV8Animation_PlaybackRate_AttributeSetter = 550,
kV8Animation_PlayState_AttributeGetter = 551,
kV8Animation_Finish_Method = 552,
kV8Animation_Play_Method = 553,
kV8Animation_Pause_Method = 554,
kV8Animation_Reverse_Method = 555,
// The above items are available in M39 branch.
kBreakIterator = 556,
kScreenOrientationAngle = 557,
kScreenOrientationType = 558,
kScreenOrientationLock = 559,
kScreenOrientationUnlock = 560,
kGeolocationSecureOrigin = 561,
kGeolocationInsecureOrigin = 562,
kNotificationSecureOrigin = 563,
kNotificationInsecureOrigin = 564,
kNotificationShowEvent = 565,
kSVGTransformListConsolidate = 569,
kSVGAnimatedTransformListBaseVal = 570,
kQuotedAnimationName = 571,
kQuotedKeyframesRule = 572,
kSrcsetDroppedCandidate = 573,
kWindowPostMessage = 574,
kRenderRuby = 576,
kScriptElementWithInvalidTypeHasSrc = 578,
kXMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload = 581,
kCSSSelectorPseudoScrollbar = 582,
kCSSSelectorPseudoScrollbarButton = 583,
kCSSSelectorPseudoScrollbarThumb = 584,
kCSSSelectorPseudoScrollbarTrack = 585,
kCSSSelectorPseudoScrollbarTrackPiece = 586,
kLangAttribute = 587,
kLangAttributeOnHTML = 588,
kLangAttributeOnBody = 589,
kLangAttributeDoesNotMatchToUILocale = 590,
kInputTypeSubmit = 591,
kInputTypeSubmitWithValue = 592,
// The above items are available in M40 branch.
kSetReferrerPolicy = 593,
kMouseEventWhich = 595,
kUIEventWhich = 598,
kTextWholeText = 599,
kNotificationCloseEvent = 603,
kStyleMedia = 606,
kStyleMediaType = 607,
kStyleMediaMatchMedium = 608,
kMixedContentPresent = 609,
kMixedContentBlockable = 610,
kMixedContentAudio = 611,
kMixedContentDownload = 612,
kMixedContentFavicon = 613,
kMixedContentImage = 614,
kMixedContentInternal = 615,
kMixedContentPlugin = 616,
kMixedContentPrefetch = 617,
kMixedContentVideo = 618,
kCSSSelectorPseudoFullScreenAncestor = 628,
kCSSSelectorPseudoFullScreen = 629,
kWebKitCSSMatrix = 630,
kAudioContextCreateAnalyser = 631,
kAudioContextCreateBiquadFilter = 632,
kAudioContextCreateBufferSource = 633,
kAudioContextCreateChannelMerger = 634,
kAudioContextCreateChannelSplitter = 635,
kAudioContextCreateConvolver = 636,
kAudioContextCreateDelay = 637,
kAudioContextCreateDynamicsCompressor = 638,
kAudioContextCreateGain = 639,
kAudioContextCreateMediaElementSource = 640,
kAudioContextCreateMediaStreamDestination = 641,
kAudioContextCreateMediaStreamSource = 642,
kAudioContextCreateOscillator = 643,
kAudioContextCreatePeriodicWave = 645,
kAudioContextCreateScriptProcessor = 646,
kAudioContextCreateStereoPanner = 647,
kAudioContextCreateWaveShaper = 648,
kAudioContextDecodeAudioData = 649,
kAudioContextResume = 650,
kAudioContextSuspend = 651,
kMixedContentInNonHTTPSFrameThatRestrictsMixedContent = 661,
kMixedContentInSecureFrameThatDoesNotRestrictMixedContent = 662,
kMixedContentWebSocket = 663,
kSyntheticKeyframesInCompositedCSSAnimation = 664,
kMixedContentFormPresent = 665,
kGetUserMediaInsecureOrigin = 666,
kGetUserMediaSecureOrigin = 667,
// The above items are available in M41 branch.
kDeviceMotionInsecureOrigin = 668,
kDeviceMotionSecureOrigin = 669,
kDeviceOrientationInsecureOrigin = 670,
kDeviceOrientationSecureOrigin = 671,
kSandboxViaIFrame = 672,
kSandboxViaCSP = 673,
kBlockedSniffingImageToScript = 674,
kFetch = 675,
kFetchBodyStream = 676,
kXMLHttpRequestAsynchronous = 677,
kWhiteSpacePreFromXMLSpace = 679,
kWhiteSpaceNowrapFromXMLSpace = 680,
kSVGSVGElementForceRedraw = 685,
kSVGSVGElementSuspendRedraw = 686,
kSVGSVGElementUnsuspendRedraw = 687,
kSVGSVGElementUnsuspendRedrawAll = 688,
kAudioContextClose = 689,
kCSSZoomNotEqualToOne = 691,
// The above items are available in M42 branch.
kClientRectListItem = 694,
kWindowClientInformation = 695,
kWindowFind = 696,
kWindowScreenLeft = 697,
kWindowScreenTop = 698,
kV8Animation_Cancel_Method = 699,
kV8Animation_Onfinish_AttributeGetter = 700,
kV8Animation_Onfinish_AttributeSetter = 701,
kV8Window_WebKitAnimationEvent_ConstructorGetter = 707,
kCryptoGetRandomValues = 710,
kSubtleCryptoEncrypt = 711,
kSubtleCryptoDecrypt = 712,
kSubtleCryptoSign = 713,
kSubtleCryptoVerify = 714,
kSubtleCryptoDigest = 715,
kSubtleCryptoGenerateKey = 716,
kSubtleCryptoImportKey = 717,
kSubtleCryptoExportKey = 718,
kSubtleCryptoDeriveBits = 719,
kSubtleCryptoDeriveKey = 720,
kSubtleCryptoWrapKey = 721,
kSubtleCryptoUnwrapKey = 722,
kCryptoAlgorithmAesCbc = 723,
kCryptoAlgorithmHmac = 724,
kCryptoAlgorithmRsaSsaPkcs1v1_5 = 725,
kCryptoAlgorithmSha1 = 726,
kCryptoAlgorithmSha256 = 727,
kCryptoAlgorithmSha384 = 728,
kCryptoAlgorithmSha512 = 729,
kCryptoAlgorithmAesGcm = 730,
kCryptoAlgorithmRsaOaep = 731,
kCryptoAlgorithmAesCtr = 732,
kCryptoAlgorithmAesKw = 733,
kCryptoAlgorithmRsaPss = 734,
kCryptoAlgorithmEcdsa = 735,
kCryptoAlgorithmEcdh = 736,
kCryptoAlgorithmHkdf = 737,
kCryptoAlgorithmPbkdf2 = 738,
kDocumentSetDomain = 739,
kUpgradeInsecureRequestsEnabled = 740,
kUpgradeInsecureRequestsUpgradedRequest = 741,
kDocumentDesignMode = 742,
kGlobalCacheStorage = 743,
kNetInfo = 744,
kBackgroundSync = 745,
kLegacyConst = 748,
kV8Permissions_Query_Method = 750,
// The above items are available in M43 branch.
kV8HTMLInputElement_Autocapitalize_AttributeGetter = 754,
kV8HTMLInputElement_Autocapitalize_AttributeSetter = 755,
kV8HTMLTextAreaElement_Autocapitalize_AttributeGetter = 756,
kV8HTMLTextAreaElement_Autocapitalize_AttributeSetter = 757,
kSVGHrefBaseVal = 758,
kSVGHrefAnimVal = 759,
kV8CSSRuleList_Item_Method = 760,
kV8MediaList_Item_Method = 761,
kV8StyleSheetList_Item_Method = 762,
kStyleSheetListAnonymousNamedGetter = 763,
kAutocapitalizeAttribute = 764,
kFullscreenSecureOrigin = 765,
kFullscreenInsecureOrigin = 766,
kDialogInSandboxedContext = 767,
kSVGSMILAnimationInImageRegardlessOfCache = 768,
kPerformanceFrameTiming = 772,
kV8Element_Animate_Method = 773,
// The above items are available in M44 branch.
kV8SVGSVGElement_GetElementById_Method = 778,
kElementCreateShadowRootMultiple = 779,
kV8MessageChannel_Constructor = 780,
kV8MessagePort_PostMessage_Method = 781,
kV8MessagePort_Start_Method = 782,
kV8MessagePort_Close_Method = 783,
kMessagePortsTransferred = 784,
kCSSKeyframesRuleAnonymousIndexedGetter = 785,
kV8Screen_AvailLeft_AttributeGetter = 786,
kV8Screen_AvailTop_AttributeGetter = 787,
kV8SVGFEConvolveMatrixElement_PreserveAlpha_AttributeGetter = 791,
kV8SVGStyleElement_Disabled_AttributeGetter = 798,
kV8SVGStyleElement_Disabled_AttributeSetter = 799,
kInputTypeFileSecureOrigin = 801,
kInputTypeFileInsecureOrigin = 802,
kElementAttachShadow = 804,
kV8SecurityPolicyViolationEvent_DocumentURI_AttributeGetter = 806,
kV8SecurityPolicyViolationEvent_BlockedURI_AttributeGetter = 807,
kV8SecurityPolicyViolationEvent_StatusCode_AttributeGetter = 808,
kHTMLLinkElementDisabled = 809,
kV8HTMLLinkElement_Disabled_AttributeGetter = 810,
kV8HTMLLinkElement_Disabled_AttributeSetter = 811,
kV8HTMLStyleElement_Disabled_AttributeGetter = 812,
kV8HTMLStyleElement_Disabled_AttributeSetter = 813,
kV8DOMError_Constructor = 816,
kV8DOMError_Name_AttributeGetter = 817,
kV8DOMError_Message_AttributeGetter = 818,
kTextInputFired = 830,
kV8TextEvent_Data_AttributeGetter = 831,
kV8TextEvent_InitTextEvent_Method = 832,
kClientHintsDPR = 835,
kClientHintsResourceWidth = 836,
kClientHintsViewportWidth = 837,
kSRIElementIntegrityAttributeButIneligible = 838,
kFormDataAppendNull = 843,
kNonHTMLElementSetAttributeNodeFromHTMLDocumentNameNotLowercase = 845,
kNavigatorVibrate = 850,
kNavigatorVibrateSubFrame = 851,
kV8XPathEvaluator_Constructor = 853,
kV8XPathEvaluator_CreateExpression_Method = 854,
kV8XPathEvaluator_CreateNSResolver_Method = 855,
kV8XPathEvaluator_Evaluate_Method = 856,
kRequestMIDIAccess = 857,
kV8MouseEvent_LayerX_AttributeGetter = 858,
kV8MouseEvent_LayerY_AttributeGetter = 859,
kInnerTextWithShadowTree = 860,
kSelectionToStringWithShadowTree = 861,
kWindowFindWithShadowTree = 862,
kV8CompositionEvent_InitCompositionEvent_Method = 863,
kV8CustomEvent_InitCustomEvent_Method = 864,
kV8DeviceMotionEvent_InitDeviceMotionEvent_Method = 865,
kV8DeviceOrientationEvent_InitDeviceOrientationEvent_Method = 866,
kV8Event_InitEvent_Method = 867,
kV8KeyboardEvent_InitKeyboardEvent_Method = 868,
kV8MouseEvent_InitMouseEvent_Method = 869,
kV8MutationEvent_InitMutationEvent_Method = 870,
kV8StorageEvent_InitStorageEvent_Method = 871,
kV8UIEvent_InitUIEvent_Method = 873,
kV8Document_CreateTouch_Method = 874,
kRequestFileSystemNonWebbyOrigin = 876,
kV8MemoryInfo_TotalJSHeapSize_AttributeGetter = 879,
kV8MemoryInfo_UsedJSHeapSize_AttributeGetter = 880,
kV8MemoryInfo_JSHeapSizeLimit_AttributeGetter = 881,
kV8Performance_Timing_AttributeGetter = 882,
kV8Performance_Navigation_AttributeGetter = 883,
kV8Performance_Memory_AttributeGetter = 884,
kV8SharedWorker_WorkerStart_AttributeGetter = 885,
// The above items are available in M45 branch.
kHTMLMediaElementPreloadNone = 892,
kHTMLMediaElementPreloadMetadata = 893,
kHTMLMediaElementPreloadAuto = 894,
kHTMLMediaElementPreloadDefault = 895,
kMixedContentBlockableAllowed = 896,
kPseudoBeforeAfterForInputElement = 897,
kV8Permissions_Revoke_Method = 898,
kLinkRelDnsPrefetch = 899,
kLinkRelPreconnect = 900,
kLinkRelPreload = 901,
kLinkHeaderDnsPrefetch = 902,
kLinkHeaderPreconnect = 903,
kClientHintsMetaAcceptCH = 904,
kHTMLElementDeprecatedWidth = 905,
kClientHintsContentDPR = 906,
kElementAttachShadowOpen = 907,
kElementAttachShadowClosed = 908,
kAudioParamSetValueAtTime = 909,
kAudioParamLinearRampToValueAtTime = 910,
kAudioParamExponentialRampToValueAtTime = 911,
kAudioParamSetTargetAtTime = 912,
kAudioParamSetValueCurveAtTime = 913,
kAudioParamCancelScheduledValues = 914,
kV8Permissions_Request_Method = 915,
kLinkRelPrefetch = 917,
kLinkRelPrerender = 918,
kLinkRelNext = 919,
kCSSValuePrefixedMinContent = 921,
kCSSValuePrefixedMaxContent = 922,
kCSSValuePrefixedFitContent = 923,
kCSSValuePrefixedFillAvailable = 924,
kPresentationDefaultRequest = 926,
kPresentationAvailabilityChangeEventListener = 927,
kPresentationRequestConstructor = 928,
kPresentationRequestStart = 929,
kPresentationRequestReconnect = 930,
kPresentationRequestGetAvailability = 931,
kPresentationRequestConnectionAvailableEventListener = 932,
kPresentationConnectionTerminate = 933,
kPresentationConnectionSend = 934,
kPresentationConnectionMessageEventListener = 936,
kCSSAnimationsStackedNeutralKeyframe = 937,
kReadingCheckedInClickHandler = 938,
kFlexboxIntrinsicSizeAlgorithmIsDifferent = 939,
// The above items are available in M46 branch.
kHTMLImportsHasStyleSheets = 940,
kNetInfoType = 946,
kNetInfoDownlinkMax = 947,
kNetInfoOnChange = 948,
kNetInfoOnTypeChange = 949,
kV8Window_Alert_Method = 950,
kV8Window_Confirm_Method = 951,
kV8Window_Prompt_Method = 952,
kV8Window_Print_Method = 953,
kV8Window_RequestIdleCallback_Method = 954,
kFlexboxPercentagePaddingVertical = 955,
kFlexboxPercentageMarginVertical = 956,
kBackspaceNavigatedBack = 957,
kBackspaceNavigatedBackAfterFormInteraction = 958,
kCSPSourceWildcardWouldMatchExactHost = 959,
kCredentialManagerGet = 960,
kCredentialManagerGetWithUI = 961,
kCredentialManagerGetWithoutUI = 962,
kCredentialManagerStore = 963,
kCredentialManagerRequireUserMediation = 964,
// The above items are available in M47 branch.
kBlockableMixedContentInSubframeBlocked = 966,
kAddEventListenerThirdArgumentIsObject = 967,
kRemoveEventListenerThirdArgumentIsObject = 968,
kCSSAtRuleCharset = 969,
kCSSAtRuleFontFace = 970,
kCSSAtRuleImport = 971,
kCSSAtRuleKeyframes = 972,
kCSSAtRuleMedia = 973,
kCSSAtRuleNamespace = 974,
kCSSAtRulePage = 975,
kCSSAtRuleSupports = 976,
kCSSAtRuleViewport = 977,
kCSSAtRuleWebkitKeyframes = 978,
kV8HTMLFieldSetElement_Elements_AttributeGetter = 979,
kHTMLMediaElementPreloadForcedNone = 980,
kExternalAddSearchProvider = 981,
kExternalIsSearchProviderInstalled = 982,
kV8Permissions_RequestAll_Method = 983,
kDeviceOrientationAbsoluteInsecureOrigin = 987,
kDeviceOrientationAbsoluteSecureOrigin = 988,
kFontFaceConstructor = 989,
kServiceWorkerControlledPage = 990,
kMeterElementWithMeterAppearance = 993,
kMeterElementWithNoneAppearance = 994,
kSelectionAnchorNode = 997,
kSelectionAnchorOffset = 998,
kSelectionFocusNode = 999,
kSelectionFocusOffset = 1000,
kSelectionIsCollapsed = 1001,
kSelectionRangeCount = 1002,
kSelectionGetRangeAt = 1003,
kSelectionAddRange = 1004,
kSelectionRemoveAllRanges = 1005,
kSelectionCollapse = 1006,
kSelectionCollapseToStart = 1007,
kSelectionCollapseToEnd = 1008,
kSelectionExtend = 1009,
kSelectionSelectAllChildren = 1010,
kSelectionDeleteDromDocument = 1011,
kSelectionDOMString = 1012,
kInputTypeRangeVerticalAppearance = 1013,
// The above items are available in M48 branch.
kCSSFilterReference = 1014,
kCSSFilterGrayscale = 1015,
kCSSFilterSepia = 1016,
kCSSFilterSaturate = 1017,
kCSSFilterHueRotate = 1018,
kCSSFilterInvert = 1019,
kCSSFilterOpacity = 1020,
kCSSFilterBrightness = 1021,
kCSSFilterContrast = 1022,
kCSSFilterBlur = 1023,
kCSSFilterDropShadow = 1024,
kBackgroundSyncRegister = 1025,
kExecCommandOnInputOrTextarea = 1027,
kV8History_ScrollRestoration_AttributeGetter = 1028,
kV8History_ScrollRestoration_AttributeSetter = 1029,
kSVG1DOMFilter = 1030,
kOfflineAudioContextStartRendering = 1031,
kOfflineAudioContextSuspend = 1032,
kOfflineAudioContextResume = 1033,
kSVG1DOMPaintServer = 1035,
kSVGSVGElementFragmentSVGView = 1036,
kSVGSVGElementFragmentSVGViewElement = 1037,
kPresentationConnectionClose = 1038,
kSVG1DOMShape = 1039,
kSVG1DOMText = 1040,
kRTCPeerConnectionConstructorConstraints = 1041,
kRTCPeerConnectionConstructorCompliant = 1042,
kRTCPeerConnectionCreateOfferLegacyFailureCallback = 1044,
kRTCPeerConnectionCreateOfferLegacyConstraints = 1045,
kRTCPeerConnectionCreateOfferLegacyOfferOptions = 1046,
kRTCPeerConnectionCreateOfferLegacyCompliant = 1047,
kRTCPeerConnectionCreateAnswerLegacyFailureCallback = 1049,
kRTCPeerConnectionCreateAnswerLegacyConstraints = 1050,
kRTCPeerConnectionCreateAnswerLegacyCompliant = 1051,
kRTCPeerConnectionSetLocalDescriptionLegacyNoSuccessCallback = 1052,
kRTCPeerConnectionSetLocalDescriptionLegacyNoFailureCallback = 1053,
kRTCPeerConnectionSetLocalDescriptionLegacyCompliant = 1054,
kRTCPeerConnectionSetRemoteDescriptionLegacyNoSuccessCallback = 1055,
kRTCPeerConnectionSetRemoteDescriptionLegacyNoFailureCallback = 1056,
kRTCPeerConnectionSetRemoteDescriptionLegacyCompliant = 1057,
kRTCPeerConnectionGetStatsLegacyNonCompliant = 1058,
kNodeFilterIsFunction = 1059,
kNodeFilterIsObject = 1060,
kCSSSelectorInternalPseudoListBox = 1062,
kCSSSelectorInternalMediaControlsOverlayCastButton = 1064,
kCSSSelectorInternalPseudoSpatialNavigationFocus = 1065,
kSameOriginTextScript = 1066,
kSameOriginApplicationScript = 1067,
kSameOriginOtherScript = 1068,
kCrossOriginTextScript = 1069,
kCrossOriginApplicationScript = 1070,
kCrossOriginOtherScript = 1071,
kSVG1DOMSVGTests = 1072,
kDisableRemotePlaybackAttribute = 1074,
kV8SloppyMode = 1075,
kV8StrictMode = 1076,
kV8StrongMode = 1077,
kAudioNodeConnectToAudioNode = 1078,
kAudioNodeConnectToAudioParam = 1079,
kAudioNodeDisconnectFromAudioNode = 1080,
kAudioNodeDisconnectFromAudioParam = 1081,
kV8CSSFontFaceRule_Style_AttributeGetter = 1082,
kSelectionCollapseNull = 1083,
kSelectionSetBaseAndExtentNull = 1084,
kV8SVGSVGElement_CreateSVGNumber_Method = 1085,
kV8SVGSVGElement_CreateSVGLength_Method = 1086,
kV8SVGSVGElement_CreateSVGAngle_Method = 1087,
kV8SVGSVGElement_CreateSVGPoint_Method = 1088,
kV8SVGSVGElement_CreateSVGMatrix_Method = 1089,
kV8SVGSVGElement_CreateSVGRect_Method = 1090,
kV8SVGSVGElement_CreateSVGTransform_Method = 1091,
kV8SVGSVGElement_CreateSVGTransformFromMatrix_Method = 1092,
kFormNameAccessForNonDescendantImageElement = 1093,
kV8RegExpPrototypeStickyGetter = 1096,
kV8RegExpPrototypeToString = 1097,
kV8InputDeviceCapabilities_FiresTouchEvents_AttributeGetter = 1098,
kDataElement = 1099,
kTimeElement = 1100,
kSVG1DOMUriReference = 1101,
kSVG1DOMZoomAndPan = 1102,
kV8SVGGraphicsElement_Transform_AttributeGetter = 1103,
kMenuItemElement = 1104,
kMenuItemCloseTag = 1105,
kSVG1DOMMarkerElement = 1106,
kSVG1DOMUseElement = 1107,
kSVG1DOMMaskElement = 1108,
kV8SVGAElement_Target_AttributeGetter = 1109,
kV8SVGClipPathElement_ClipPathUnits_AttributeGetter = 1110,
kSVG1DOMFitToViewBox = 1111,
kSVG1DOMSVGElement = 1114,
kSVG1DOMImageElement = 1115,
kSVG1DOMForeignObjectElement = 1116,
kAudioContextCreateIIRFilter = 1117,
// The above items are available in M49 branch
kCSSSelectorPseudoSlotted = 1118,
kMediaDevicesEnumerateDevices = 1119,
kNonSecureSharedWorkerAccessedFromSecureContext = 1120,
kSecureSharedWorkerAccessedFromNonSecureContext = 1121,
kEventComposedPath = 1123,
kLinkHeaderPreload = 1124,
kMouseWheelEvent = 1125,
kWheelEvent = 1126,
kMouseWheelAndWheelEvent = 1127,
kBodyScrollsInAdditionToViewport = 1128,
kDocumentDesignModeEnabeld = 1129,
kContentEditableTrue = 1130,
kContentEditableTrueOnHTML = 1131,
kContentEditablePlainTextOnly = 1132,
kV8RegExpPrototypeUnicodeGetter = 1133,
kV8IntlV8Parse = 1134,
kV8IntlPattern = 1135,
kV8IntlResolved = 1136,
kV8PromiseChain = 1137,
kV8PromiseAccept = 1138,
kV8PromiseDefer = 1139,
kEventComposed = 1140,
kGeolocationInsecureOriginIframe = 1141,
kGeolocationSecureOriginIframe = 1142,
kRequestMIDIAccessIframe = 1143,
kGetUserMediaInsecureOriginIframe = 1144,
kGetUserMediaSecureOriginIframe = 1145,
kElementRequestPointerLockIframe = 1146,
kNotificationAPIInsecureOriginIframe = 1147,
kNotificationAPISecureOriginIframe = 1148,
kWebSocket = 1149,
kMediaStreamConstraintsNameValue = 1150,
kMediaStreamConstraintsFromDictionary = 1151,
kMediaStreamConstraintsConformant = 1152,
kCSSSelectorIndirectAdjacent = 1153,
kCreateImageBitmap = 1156,
kPresentationConnectionConnectEventListener = 1157,
kPresentationConnectionCloseEventListener = 1158,
kPresentationConnectionTerminateEventListener = 1159,
kDocumentCreateEventAnimationEvent = 1162,
kDocumentCreateEventBeforeUnloadEvent = 1166,
kDocumentCreateEventCompositionEvent = 1168,
kDocumentCreateEventDragEvent = 1169,
kDocumentCreateEventErrorEvent = 1170,
kDocumentCreateEventFocusEvent = 1171,
kDocumentCreateEventHashChangeEvent = 1172,
kDocumentCreateEventMutationEvent = 1173,
kDocumentCreateEventPageTransitionEvent = 1174,
kDocumentCreateEventPopStateEvent = 1176,
kDocumentCreateEventTextEvent = 1182,
kDocumentCreateEventTransitionEvent = 1183,
kDocumentCreateEventWheelEvent = 1184,
kDocumentCreateEventTrackEvent = 1186,
kDocumentCreateEventMutationEvents = 1188,
kDocumentCreateEventSVGEvents = 1190,
kDocumentCreateEventDeviceMotionEvent = 1195,
kDocumentCreateEventDeviceOrientationEvent = 1196,
kDocumentCreateEventIDBVersionChangeEvent = 1201,
kDocumentCreateEventStorageEvent = 1221,
kDocumentCreateEventWebGLContextEvent = 1224,
kDocumentCreateEventCloseEvent = 1227,
kDocumentCreateEventKeyboardEvents = 1228,
kHTMLMediaElement = 1229,
kHTMLMediaElementInDocument = 1230,
kHTMLMediaElementControlsAttribute = 1231,
kV8Animation_Oncancel_AttributeGetter = 1233,
kV8Animation_Oncancel_AttributeSetter = 1234,
kV8HTMLCommentInExternalScript = 1235,
kV8HTMLComment = 1236,
kV8SloppyModeBlockScopedFunctionRedefinition = 1237,
kV8ForInInitializer = 1238,
kV8Animation_Id_AttributeGetter = 1239,
kV8Animation_Id_AttributeSetter = 1240,
kApplicationCacheManifestSelectInsecureOrigin = 1245,
kApplicationCacheManifestSelectSecureOrigin = 1246,
kApplicationCacheAPIInsecureOrigin = 1247,
kApplicationCacheAPISecureOrigin = 1248,
// The above items are available in M50 branch
kCSSAtRuleApply = 1249,
kCSSSelectorPseudoAny = 1250,
kDocumentAllItemNoArguments = 1252,
kDocumentAllItemNamed = 1253,
kDocumentAllItemIndexed = 1254,
kDocumentAllItemIndexedWithNonNumber = 1255,
kDocumentAllLegacyCallNoArguments = 1256,
kDocumentAllLegacyCallNamed = 1257,
kDocumentAllLegacyCallIndexed = 1258,
kDocumentAllLegacyCallIndexedWithNonNumber = 1259,
kDocumentAllLegacyCallTwoArguments = 1260,
kHTMLLabelElementControlForNonFormAssociatedElement = 1263,
kHTMLMediaElementLoadNetworkEmptyNotPaused = 1265,
kV8Window_WebkitSpeechGrammar_ConstructorGetter = 1267,
kV8Window_WebkitSpeechGrammarList_ConstructorGetter = 1268,
kV8Window_WebkitSpeechRecognition_ConstructorGetter = 1269,
kV8Window_WebkitSpeechRecognitionError_ConstructorGetter = 1270,
kV8Window_WebkitSpeechRecognitionEvent_ConstructorGetter = 1271,
kV8Window_SpeechSynthesis_AttributeGetter = 1272,
kV8IDBFactory_WebkitGetDatabaseNames_Method = 1273,
kImageDocument = 1274,
kScriptPassesCSPDynamic = 1275,
kCSPWithStrictDynamic = 1277,
kScrollAnchored = 1278,
kAddEventListenerFourArguments = 1279,
kRemoveEventListenerFourArguments = 1280,
kSVGCalcModeDiscrete = 1287,
kSVGCalcModeLinear = 1288,
kSVGCalcModePaced = 1289,
kSVGCalcModeSpline = 1290,
kFormSubmissionStarted = 1291,
kFormValidationStarted = 1292,
kFormValidationAbortedSubmission = 1293,
kFormValidationShowedMessage = 1294,
kWebAnimationsEasingAsFunctionLinear = 1295,
kWebAnimationsEasingAsFunctionOther = 1296,
// The above items are available in M51 branch
kV8Document_Images_AttributeGetter = 1297,
kV8Document_Embeds_AttributeGetter = 1298,
kV8Document_Plugins_AttributeGetter = 1299,
kV8Document_Links_AttributeGetter = 1300,
kV8Document_Forms_AttributeGetter = 1301,
kV8Document_Scripts_AttributeGetter = 1302,
kV8Document_Anchors_AttributeGetter = 1303,
kV8Document_Applets_AttributeGetter = 1304,
kXMLHttpRequestCrossOriginWithCredentials = 1305,
kMediaStreamTrackRemote = 1306,
kV8Node_IsConnected_AttributeGetter = 1307,
kShadowRootDelegatesFocus = 1308,
kMixedShadowRootV0AndV1 = 1309,
kImageDocumentInFrame = 1310,
kMediaDocument = 1311,
kMediaDocumentInFrame = 1312,
kPluginDocument = 1313,
kPluginDocumentInFrame = 1314,
kSinkDocument = 1315,
kSinkDocumentInFrame = 1316,
kTextDocument = 1317,
kTextDocumentInFrame = 1318,
kViewSourceDocument = 1319,
kFileAPINativeLineEndings = 1320,
kPointerEventAttributeCount = 1321,
kCompositedReplication = 1322,
kV8DataTransferItem_WebkitGetAsEntry_Method = 1325,
kV8HTMLInputElement_WebkitEntries_AttributeGetter = 1326,
kEntry_Filesystem_AttributeGetter_IsolatedFileSystem = 1327,
kEntry_GetMetadata_Method_IsolatedFileSystem = 1328,
kEntry_MoveTo_Method_IsolatedFileSystem = 1329,
kEntry_CopyTo_Method_IsolatedFileSystem = 1330,
kEntry_Remove_Method_IsolatedFileSystem = 1331,
kEntry_GetParent_Method_IsolatedFileSystem = 1332,
kEntry_ToURL_Method_IsolatedFileSystem = 1333,
kDuring_Microtask_Alert = 1334,
kDuring_Microtask_Confirm = 1335,
kDuring_Microtask_Print = 1336,
kDuring_Microtask_Prompt = 1337,
kDuring_Microtask_SyncXHR = 1338,
kCredentialManagerGetReturnedCredential = 1342,
kGeolocationInsecureOriginDeprecatedNotRemoved = 1343,
kGeolocationInsecureOriginIframeDeprecatedNotRemoved = 1344,
kProgressElementWithNoneAppearance = 1345,
kProgressElementWithProgressBarAppearance = 1346,
kPointerEventAddListenerCount = 1347,
kCSSValueAppearanceNone = 1351,
kCSSValueAppearanceNotNone = 1352,
kCSSValueAppearanceOthers = 1353,
kCSSValueAppearanceButton = 1354,
kCSSValueAppearanceCaret = 1355,
kCSSValueAppearanceCheckbox = 1356,
kCSSValueAppearanceMenulist = 1357,
kCSSValueAppearanceMenulistButton = 1358,
kCSSValueAppearanceListbox = 1359,
kCSSValueAppearanceRadio = 1360,
kCSSValueAppearanceSearchField = 1361,
kCSSValueAppearanceTextField = 1362,
kAudioContextCreatePannerAutomated = 1363,
kPannerNodeSetPosition = 1364,
kPannerNodeSetOrientation = 1365,
kAudioListenerSetPosition = 1366,
kAudioListenerSetOrientation = 1367,
kIntersectionObserver_Constructor = 1368,
kDurableStoragePersist = 1369,
kDurableStoragePersisted = 1370,
kDurableStorageEstimate = 1371,
kCSSDeepCombinatorAndShadow = 1375,
kOpacityWithPreserve3DQuirk = 1376,
kCSSSelectorPseudoReadOnly = 1377,
kCSSSelectorPseudoReadWrite = 1378,
// The above items are available in M52 branch
kCSSSelectorPseudoDefined = 1383,
kRTCPeerConnectionAddIceCandidatePromise = 1384,
kRTCPeerConnectionAddIceCandidateLegacy = 1385,
kRTCIceCandidateDefaultSdpMLineIndex = 1386,
kMediaStreamConstraintsOldAndNew = 1389,
kV8ArrayProtectorDirtied = 1390,
kV8ArraySpeciesModified = 1391,
kV8ArrayPrototypeConstructorModified = 1392,
kV8ArrayInstanceProtoModified = 1393,
kV8ArrayInstanceConstructorModified = 1394,
kV8LegacyFunctionDeclaration = 1395,
kV8RegExpPrototypeSourceGetter = 1396,
kV8RegExpPrototypeOldFlagGetter = 1397,
kV8DecimalWithLeadingZeroInStrictMode = 1398,
kGetUserMediaPrefixed = 1400,
kGetUserMediaLegacy = 1401,
kGetUserMediaPromise = 1402,
kCSSFilterFunctionNoArguments = 1403,
kV8LegacyDateParser = 1404,
kOpenSearchInsecureOriginInsecureTarget = 1405,
kOpenSearchInsecureOriginSecureTarget = 1406,
kOpenSearchSecureOriginInsecureTarget = 1407,
kOpenSearchSecureOriginSecureTarget = 1408,
kRegisterProtocolHandlerSecureOrigin = 1409,
kRegisterProtocolHandlerInsecureOrigin = 1410,
kCrossOriginWindowAlert = 1411,
kCrossOriginWindowConfirm = 1412,
kCrossOriginWindowPrompt = 1413,
kCrossOriginWindowPrint = 1414,
kMediaStreamOnActive = 1415,
kMediaStreamOnInactive = 1416,
kAddEventListenerPassiveTrue = 1417,
kAddEventListenerPassiveFalse = 1418,
kCSPReferrerDirective = 1419,
kDocumentOpen = 1420,
kElementRequestPointerLockInShadow = 1421,
kShadowRootPointerLockElement = 1422,
kDocumentPointerLockElementInV0Shadow = 1423,
kTextAreaMaxLength = 1424,
kTextAreaMinLength = 1425,
kTopNavigationFromSubFrame = 1426,
kPrefixedElementRequestFullscreenInShadow = 1427,
kMediaSourceAbortRemove = 1428,
kMediaSourceDurationTruncatingBuffered = 1429,
kAudioContextCrossOriginIframe = 1430,
// The above items are available in M53 branch
kPointerEventSetCapture = 1431,
kPointerEventDispatch = 1432,
kMIDIMessageEventReceivedTime = 1433,
kSummaryElementWithDisplayBlockAuthorRule = 1434,
kV8MediaStream_Active_AttributeGetter = 1435,
kBeforeInstallPromptEvent = 1436,
kBeforeInstallPromptEventUserChoice = 1437,
kBeforeInstallPromptEventPreventDefault = 1438,
kBeforeInstallPromptEventPrompt = 1439,
kExecCommandAltersHTMLStructure = 1440,
kSecureContextCheckPassed = 1441,
kSecureContextCheckFailed = 1442,
kSecureContextCheckForSandboxedOriginPassed = 1443,
kSecureContextCheckForSandboxedOriginFailed = 1444,
kV8DefineGetterOrSetterWouldThrow = 1445,
kV8FunctionConstructorReturnedUndefined = 1446,
kV8BroadcastChannel_Constructor = 1447,
kV8BroadcastChannel_PostMessage_Method = 1448,
kV8BroadcastChannel_Close_Method = 1449,
kTouchStartFired = 1450,
kMouseDownFired = 1451,
kPointerDownFired = 1452,
kPointerDownFiredForTouch = 1453,
kPointerEventDispatchPointerDown = 1454,
kSVGSMILBeginOrEndEventValue = 1455,
kSVGSMILBeginOrEndSyncbaseValue = 1456,
kSVGSMILElementInsertedAfterLoad = 1457,
kV8VisualViewport_ScrollLeft_AttributeGetter = 1458,
kV8VisualViewport_ScrollTop_AttributeGetter = 1459,
kV8VisualViewport_PageX_AttributeGetter = 1460,
kV8VisualViewport_PageY_AttributeGetter = 1461,
kV8VisualViewport_ClientWidth_AttributeGetter = 1462,
kV8VisualViewport_ClientHeight_AttributeGetter = 1463,
kV8VisualViewport_Scale_AttributeGetter = 1464,
kVisualViewportScrollFired = 1465,
kVisualViewportResizeFired = 1466,
kNodeGetRootNode = 1467,
kSlotChangeEventAddListener = 1468,
kCSSValueAppearanceButtonRendered = 1469,
kCSSValueAppearanceButtonForAnchor = 1470,
kCSSValueAppearanceButtonForButton = 1471,
kCSSValueAppearanceButtonForOtherButtons = 1472,
kCSSValueAppearanceTextFieldRendered = 1473,
kCSSValueAppearanceTextFieldForSearch = 1474,
kCSSValueAppearanceTextFieldForTextField = 1475,
kRTCPeerConnectionGetStats = 1476,
kSVGSMILAnimationAppliedEffect = 1477,
kPerformanceResourceTimingSizes = 1478,
kEventSourceDocument = 1479,
kEventSourceWorker = 1480,
kSingleOriginInTimingAllowOrigin = 1481,
kMultipleOriginsInTimingAllowOrigin = 1482,
kStarInTimingAllowOrigin = 1483,
kSVGSMILAdditiveAnimation = 1484,
kSendBeaconWithNonSimpleContentType = 1485,
kChromeLoadTimesRequestTime = 1486,
kChromeLoadTimesStartLoadTime = 1487,
kChromeLoadTimesCommitLoadTime = 1488,
kChromeLoadTimesFinishDocumentLoadTime = 1489,
kChromeLoadTimesFinishLoadTime = 1490,
kChromeLoadTimesFirstPaintTime = 1491,
kChromeLoadTimesFirstPaintAfterLoadTime = 1492,
kChromeLoadTimesNavigationType = 1493,
kChromeLoadTimesWasFetchedViaSpdy = 1494,
kChromeLoadTimesWasNpnNegotiated = 1495,
kChromeLoadTimesNpnNegotiatedProtocol = 1496,
kChromeLoadTimesWasAlternateProtocolAvailable = 1497,
kChromeLoadTimesConnectionInfo = 1498,
kChromeLoadTimesUnknown = 1499,
kSVGViewElement = 1500,
kWebShareShare = 1501,
kAuxclickAddListenerCount = 1502,
kHTMLCanvasElement = 1503,
kSVGSMILAnimationElementTiming = 1504,
kSVGSMILBeginEndAnimationElement = 1505,
kSVGSMILPausing = 1506,
kSVGSMILCurrentTime = 1507,
kHTMLBodyElementOnSelectionChangeAttribute = 1508,
kForeignFetchInterception = 1509,
kUsbGetDevices = 1519,
kUsbRequestDevice = 1520,
kUsbDeviceOpen = 1521,
kUsbDeviceClose = 1522,
kUsbDeviceSelectConfiguration = 1523,
kUsbDeviceClaimInterface = 1524,
kUsbDeviceReleaseInterface = 1525,
kUsbDeviceSelectAlternateInterface = 1526,
kUsbDeviceControlTransferIn = 1527,
kUsbDeviceControlTransferOut = 1528,
kUsbDeviceClearHalt = 1529,
kUsbDeviceTransferIn = 1530,
kUsbDeviceTransferOut = 1531,
kUsbDeviceIsochronousTransferIn = 1532,
kUsbDeviceIsochronousTransferOut = 1533,
kUsbDeviceReset = 1534,
// The above items are available in M54 branch
kPointerEnterLeaveFired = 1535,
kPointerOverOutFired = 1536,
kDraggableAttribute = 1539,
kCleanScriptElementWithNonce = 1540,
kPotentiallyInjectedScriptElementWithNonce = 1541,
kPendingStylesheetAddedAfterBodyStarted = 1542,
kUntrustedMouseDownEventDispatchedToSelect = 1543,
kBlockedSniffingAudioToScript = 1544,
kBlockedSniffingVideoToScript = 1545,
kBlockedSniffingCSVToScript = 1546,
kMetaSetCookie = 1547,
kMetaRefresh = 1548,
kMetaSetCookieWhenCSPBlocksInlineScript = 1549,
kMetaRefreshWhenCSPBlocksInlineScript = 1550,
kMiddleClickAutoscrollStart = 1551,
kRTCPeerConnectionCreateOfferOptionsOfferToReceive = 1553,
kDragAndDropScrollStart = 1554,
kPresentationConnectionListConnectionAvailableEventListener = 1555,
kWebAudioAutoplayCrossOriginIframe = 1556,
kVRGetDisplays = 1558,
kXSSAuditorBlockedScript = 1581,
kXSSAuditorBlockedEntirePage = 1582,
kXSSAuditorDisabled = 1583,
kXSSAuditorEnabledFilter = 1584,
kXSSAuditorEnabledBlock = 1585,
kXSSAuditorInvalid = 1586,
kTextInputEventOnInput = 1589,
kTextInputEventOnTextArea = 1590,
kTextInputEventOnContentEditable = 1591,
kTextInputEventOnNotNode = 1592,
kWebkitBeforeTextInsertedOnInput = 1593,
kWebkitBeforeTextInsertedOnTextArea = 1594,
kWebkitBeforeTextInsertedOnContentEditable = 1595,
kWebkitBeforeTextInsertedOnNotNode = 1596,
kWebkitEditableContentChangedOnInput = 1597,
kWebkitEditableContentChangedOnTextArea = 1598,
kWebkitEditableContentChangedOnContentEditable = 1599,
kWebkitEditableContentChangedOnNotNode = 1600,
kV8NavigatorUserMediaError_ConstraintName_AttributeGetter = 1601,
kV8HTMLMediaElement_SrcObject_AttributeGetter = 1602,
kV8HTMLMediaElement_SrcObject_AttributeSetter = 1603,
kCreateObjectURLBlob = 1604,
kCreateObjectURLMediaSource = 1605,
kCreateObjectURLMediaStream = 1606,
kDocumentCreateTouchWindowNull = 1607,
kDocumentCreateTouchWindowWrongType = 1608,
kDocumentCreateTouchTargetNull = 1609,
kDocumentCreateTouchTargetWrongType = 1610,
kDocumentCreateTouchMoreThanSevenArguments = 1612,
kLongTaskObserver = 1615,
kCSSOffsetInEffect = 1617,
// The above items are available in M55 branch
kVRGetDisplaysInsecureOrigin = 1618,
kVRRequestPresent = 1619,
kVRRequestPresentInsecureOrigin = 1620,
kVRDeprecatedFieldOfView = 1621,
kVideoInCanvas = 1622,
kHiddenAutoplayedVideoInCanvas = 1623,
kOffscreenCanvas = 1624,
kGamepadPose = 1625,
kGamepadHand = 1626,
kGamepadDisplayId = 1627,
kGamepadButtonTouched = 1628,
kGamepadPoseHasOrientation = 1629,
kGamepadPoseHasPosition = 1630,
kGamepadPosePosition = 1631,
kGamepadPoseLinearVelocity = 1632,
kGamepadPoseLinearAcceleration = 1633,
kGamepadPoseOrientation = 1634,
kGamepadPoseAngularVelocity = 1635,
kGamepadPoseAngularAcceleration = 1636,
kV8RTCDataChannel_MaxRetransmitTime_AttributeGetter = 1638,
kV8RTCDataChannel_MaxRetransmits_AttributeGetter = 1639,
kV8RTCDataChannel_Reliable_AttributeGetter = 1640,
kV8RTCPeerConnection_AddStream_Method = 1641,
kV8RTCPeerConnection_CreateDTMFSender_Method = 1642,
kV8RTCPeerConnection_GetLocalStreams_Method = 1643,
kV8RTCPeerConnection_GetRemoteStreams_Method = 1644,
kV8RTCPeerConnection_GetStreamById_Method = 1645,
kV8RTCPeerConnection_RemoveStream_Method = 1646,
kRTCPeerConnectionCreateDataChannelMaxRetransmitTime = 1648,
kRTCPeerConnectionCreateDataChannelMaxRetransmits = 1649,
kAudioContextCreateConstantSource = 1650,
kWebAudioConstantSourceNode = 1651,
kLoopbackEmbeddedInSecureContext = 1652,
kLoopbackEmbeddedInNonSecureContext = 1653,
kBlinkMacSystemFont = 1654,
kRTCIceServerURL = 1656,
kRTCIceServerURLs = 1657,
kOffscreenCanvasTransferToImageBitmap2D = 1658,
kOffscreenCanvasTransferToImageBitmapWebGL = 1659,
kOffscreenCanvasCommit2D = 1660,
kOffscreenCanvasCommitWebGL = 1661,
kRTCConfigurationIceTransportPolicy = 1662,
kRTCConfigurationIceTransports = 1664,
kDocumentFullscreenElementInV0Shadow = 1665,
kScriptWithCSPBypassingSchemeParserInserted = 1666,
kScriptWithCSPBypassingSchemeNotParserInserted = 1667,
kDocumentCreateElement2ndArgStringHandling = 1668,
kV8MediaRecorder_Start_Method = 1669,
kWebBluetoothRequestDevice = 1670,
kUnitlessPerspectiveInPerspectiveProperty = 1671,
kUnitlessPerspectiveInTransformProperty = 1672,
kV8RTCSessionDescription_Type_AttributeGetter = 1673,
kV8RTCSessionDescription_Type_AttributeSetter = 1674,
kV8RTCSessionDescription_Sdp_AttributeGetter = 1675,
kV8RTCSessionDescription_Sdp_AttributeSetter = 1676,
kRTCSessionDescriptionInitNoType = 1677,
kRTCSessionDescriptionInitNoSdp = 1678,
kHTMLMediaElementPreloadForcedMetadata = 1679,
kGenericSensorStart = 1680,
kGenericSensorStop = 1681,
kTouchEventPreventedNoTouchAction = 1682,
kTouchEventPreventedForcedDocumentPassiveNoTouchAction = 1683,
kV8Event_StopPropagation_Method = 1684,
kV8Event_StopImmediatePropagation_Method = 1685,
kImageCaptureConstructor = 1686,
kV8Document_RootScroller_AttributeGetter = 1687,
kV8Document_RootScroller_AttributeSetter = 1688,
kCustomElementRegistryDefine = 1689,
kLinkHeaderServiceWorker = 1690,
kCSSShadowPiercingDescendantCombinator = 1691,
// The above items are available in M56 branch.
kCSSFlexibleBox = 1692,
kCSSGridLayout = 1693,
kV8BarcodeDetector_Detect_Method = 1694,
kV8FaceDetector_Detect_Method = 1695,
kFullscreenAllowedByOrientationChange = 1696,
kServiceWorkerRespondToNavigationRequestWithRedirectedResponse = 1697,
kV8AudioContext_Constructor = 1698,
kV8OfflineAudioContext_Constructor = 1699,
kAppInstalledEventAddListener = 1700,
kAudioContextGetOutputTimestamp = 1701,
kV8MediaStreamAudioDestinationNode_Constructor = 1702,
kV8AnalyserNode_Constructor = 1703,
kV8AudioBuffer_Constructor = 1704,
kV8AudioBufferSourceNode_Constructor = 1705,
kV8AudioProcessingEvent_Constructor = 1706,
kV8BiquadFilterNode_Constructor = 1707,
kV8ChannelMergerNode_Constructor = 1708,
kV8ChannelSplitterNode_Constructor = 1709,
kV8ConstantSourceNode_Constructor = 1710,
kV8ConvolverNode_Constructor = 1711,
kV8DelayNode_Constructor = 1712,
kV8DynamicsCompressorNode_Constructor = 1713,
kV8GainNode_Constructor = 1714,
kV8IIRFilterNode_Constructor = 1715,
kV8MediaElementAudioSourceNode_Constructor = 1716,
kV8MediaStreamAudioSourceNode_Constructor = 1717,
kV8OfflineAudioCompletionEvent_Constructor = 1718,
kV8OscillatorNode_Constructor = 1719,
kV8PannerNode_Constructor = 1720,
kV8PeriodicWave_Constructor = 1721,
kV8StereoPannerNode_Constructor = 1722,
kV8WaveShaperNode_Constructor = 1723,
kV8Headers_GetAll_Method = 1724,
kNavigatorVibrateEngagementNone = 1725,
kNavigatorVibrateEngagementMinimal = 1726,
kNavigatorVibrateEngagementLow = 1727,
kNavigatorVibrateEngagementMedium = 1728,
kNavigatorVibrateEngagementHigh = 1729,
kNavigatorVibrateEngagementMax = 1730,
kAlertEngagementNone = 1731,
kAlertEngagementMinimal = 1732,
kAlertEngagementLow = 1733,
kAlertEngagementMedium = 1734,
kAlertEngagementHigh = 1735,
kAlertEngagementMax = 1736,
kConfirmEngagementNone = 1737,
kConfirmEngagementMinimal = 1738,
kConfirmEngagementLow = 1739,
kConfirmEngagementMedium = 1740,
kConfirmEngagementHigh = 1741,
kConfirmEngagementMax = 1742,
kPromptEngagementNone = 1743,
kPromptEngagementMinimal = 1744,
kPromptEngagementLow = 1745,
kPromptEngagementMedium = 1746,
kPromptEngagementHigh = 1747,
kPromptEngagementMax = 1748,
kTopNavInSandbox = 1749,
kTopNavInSandboxWithoutGesture = 1750,
kTopNavInSandboxWithPerm = 1751,
kTopNavInSandboxWithPermButNoGesture = 1752,
kReferrerPolicyHeader = 1753,
kHTMLAnchorElementReferrerPolicyAttribute = 1754,
kHTMLIFrameElementReferrerPolicyAttribute = 1755,
kHTMLImageElementReferrerPolicyAttribute = 1756,
kHTMLLinkElementReferrerPolicyAttribute = 1757,
kBaseElement = 1758,
kBaseWithCrossOriginHref = 1759,
kBaseWithDataHref = 1760,
kBaseWithNewlinesInTarget = 1761,
kBaseWithOpenBracketInTarget = 1762,
kBaseWouldBeBlockedByDefaultSrc = 1763,
kV8AssigmentExpressionLHSIsCallInSloppy = 1764,
kV8AssigmentExpressionLHSIsCallInStrict = 1765,
kV8PromiseConstructorReturnedUndefined = 1766,
kFormSubmittedWithUnclosedFormControl = 1767,
kDocumentCompleteURLHTTPContainingNewline = 1768,
kDocumentCompleteURLHTTPContainingNewlineAndLessThan = 1770,
kDocumentCompleteURLNonHTTPContainingNewline = 1771,
kScrollbarUseVerticalScrollbarButton = 1777,
kScrollbarUseVerticalScrollbarThumb = 1778,
kScrollbarUseVerticalScrollbarTrack = 1779,
kScrollbarUseHorizontalScrollbarButton = 1780,
kScrollbarUseHorizontalScrollbarThumb = 1781,
kScrollbarUseHorizontalScrollbarTrack = 1782,
kHTMLTableCellElementColspan = 1783,
kHTMLTableCellElementColspanGreaterThan1000 = 1784,
kHTMLTableCellElementColspanGreaterThan8190 = 1785,
kSelectionAddRangeIntersect = 1786,
kPostMessageFromInsecureToSecureToplevel = 1787,
// The above items are available in M57 branch.
kV8MediaSession_Metadata_AttributeGetter = 1788,
kV8MediaSession_Metadata_AttributeSetter = 1789,
kV8MediaSession_PlaybackState_AttributeGetter = 1790,
kV8MediaSession_PlaybackState_AttributeSetter = 1791,
kV8MediaSession_SetActionHandler_Method = 1792,
kWebNFCPush = 1793,
kWebNFCCancelPush = 1794,
kWebNFCWatch = 1795,
kWebNFCCancelWatch = 1796,
kAudioParamCancelAndHoldAtTime = 1797,
kCSSValueUserModifyReadOnly = 1798,
kCSSValueUserModifyReadWrite = 1799,
kCSSValueUserModifyReadWritePlaintextOnly = 1800,
kV8TextDetector_Detect_Method = 1801,
kCSSValueOnDemand = 1802,
kServiceWorkerNavigationPreload = 1803,
kFullscreenRequestWithPendingElement = 1804,
kHTMLIFrameElementAllowfullscreenAttributeSetAfterContentLoad = 1805,
kPointerEventSetCaptureOutsideDispatch = 1806,
kNotificationPermissionRequestedInsecureOrigin = 1807,
kV8DeprecatedStorageInfo_QueryUsageAndQuota_Method = 1808,
kV8DeprecatedStorageInfo_RequestQuota_Method = 1809,
kV8DeprecatedStorageQuota_QueryUsageAndQuota_Method = 1810,
kV8DeprecatedStorageQuota_RequestQuota_Method = 1811,
kV8FileReaderSync_Constructor = 1812,
kUncancelableTouchEventPreventDefaulted = 1813,
kUncancelableTouchEventDueToMainThreadResponsivenessPreventDefaulted = 1814,
kV8HTMLVideoElement_Poster_AttributeGetter = 1815,
kV8HTMLVideoElement_Poster_AttributeSetter = 1816,
kNotificationPermissionRequestedIframe = 1817,
kPresentationReceiverInsecureOrigin = 1819,
kPresentationReceiverSecureOrigin = 1820,
kPresentationRequestInsecureOrigin = 1821,
kPresentationRequestSecureOrigin = 1822,
kRtcpMuxPolicyNegotiate = 1823,
kDOMClobberedVariableAccessed = 1824,
kHTMLDocumentCreateProcessingInstruction = 1825,
kFetchResponseConstructionWithStream = 1826,
kLocationOrigin = 1827,
kDocumentOrigin = 1828,
kCanvas2DFilter = 1830,
kCanvas2DImageSmoothingQuality = 1831,
kCanvasToBlob = 1832,
kCanvasToDataURL = 1833,
kOffscreenCanvasConvertToBlob = 1834,
kSVGInCanvas2D = 1835,
kSVGInWebGL = 1836,
kSelectionFuncionsChangeFocus = 1837,
kHTMLObjectElementGetter = 1838,
kHTMLObjectElementSetter = 1839,
kHTMLEmbedElementGetter = 1840,
kHTMLEmbedElementSetter = 1841,
kTransformUsesBoxSizeOnSVG = 1842,
// The above items are available in M58 branch.
kScrollByKeyboardArrowKeys = 1843,
kScrollByKeyboardPageUpDownKeys = 1844,
kScrollByKeyboardHomeEndKeys = 1845,
kScrollByKeyboardSpacebarKey = 1846,
kScrollByTouch = 1847,
kScrollByWheel = 1848,
kScheduledActionIgnored = 1849,
kGetCanvas2DContextAttributes = 1850,
kV8HTMLInputElement_Capture_AttributeGetter = 1851,
kV8HTMLInputElement_Capture_AttributeSetter = 1852,
kHTMLMediaElementControlsListAttribute = 1853,
kHTMLMediaElementControlsListNoDownload = 1854,
kHTMLMediaElementControlsListNoFullscreen = 1855,
kHTMLMediaElementControlsListNoRemotePlayback = 1856,
kPointerEventClickRetargetCausedByCapture = 1857,
kVRDisplayDisplayName = 1861,
kVREyeParametersOffset = 1862,
kVRPoseLinearVelocity = 1863,
kVRPoseLinearAcceleration = 1864,
kVRPoseAngularVelocity = 1865,
kVRPoseAngularAcceleration = 1866,
kCSSOverflowPaged = 1867,
kChildSrcAllowedWorkerThatScriptSrcBlocked = 1868,
kHTMLTableElementPresentationAttributeBackground = 1869,
kV8Navigator_GetInstalledRelatedApps_Method = 1870,
kNamedAccessOnWindow_ChildBrowsingContext = 1871,
kNamedAccessOnWindow_ChildBrowsingContext_CrossOriginNameMismatch = 1872,
kV0CustomElementsRegisterHTMLCustomTag = 1873,
kV0CustomElementsRegisterHTMLTypeExtension = 1874,
kV0CustomElementsRegisterSVGElement = 1875,
kV0CustomElementsRegisterEmbedderElement = 1876,
kV0CustomElementsCreateCustomTagElement = 1877,
kV0CustomElementsCreateTypeExtensionElement = 1878,
kV0CustomElementsConstruct = 1879,
kV8IDBObserver_Observe_Method = 1880,
kV8IDBObserver_Unobserve_Method = 1881,
kWebBluetoothRemoteCharacteristicGetDescriptor = 1882,
kWebBluetoothRemoteCharacteristicGetDescriptors = 1883,
kWebBluetoothRemoteCharacteristicReadValue = 1884,
kWebBluetoothRemoteCharacteristicWriteValue = 1885,
kWebBluetoothRemoteCharacteristicStartNotifications = 1886,
kWebBluetoothRemoteCharacteristicStopNotifications = 1887,
kWebBluetoothRemoteDescriptorReadValue = 1888,
kWebBluetoothRemoteDescriptorWriteValue = 1889,
kWebBluetoothRemoteServerConnect = 1890,
kWebBluetoothRemoteServerDisconnect = 1891,
kWebBluetoothRemoteServerGetPrimaryService = 1892,
kWebBluetoothRemoteServerGetPrimaryServices = 1893,
kWebBluetoothRemoteServiceGetCharacteristic = 1894,
kWebBluetoothRemoteServiceGetCharacteristics = 1895,
kHTMLContentElement = 1896,
kHTMLShadowElement = 1897,
kHTMLSlotElement = 1898,
kAccelerometerConstructor = 1899,
kAbsoluteOrientationSensorConstructor = 1900,
kAmbientLightSensorConstructor = 1901,
kGenericSensorOnActivate = 1902,
kGenericSensorOnChange = 1903,
kGenericSensorOnError = 1904,
kGenericSensorActivated = 1905,
kGyroscopeConstructor = 1906,
kMagnetometerConstructor = 1907,
kOrientationSensorPopulateMatrix = 1908,
kWindowOpenWithInvalidURL = 1909,
kCrossOriginMainFrameNulledNameAccessed = 1910,
kMenuItemElementIconAttribute = 1911,
kWebkitCSSMatrixSetMatrixValue = 1912,
kWebkitCSSMatrixConstructFromString = 1913,
kCanRequestURLHTTPContainingNewline = 1914,
kCanRequestURLNonHTTPContainingNewline = 1915,
kGetGamepads = 1916,
kV8SVGPathElement_GetPathSegAtLength_Method = 1917,
kMediaStreamConstraintsAudio = 1918,
kMediaStreamConstraintsAudioUnconstrained = 1919,
kMediaStreamConstraintsVideo = 1920,
kMediaStreamConstraintsVideoUnconstrained = 1921,
kMediaStreamConstraintsWidth = 1922,
kMediaStreamConstraintsHeight = 1923,
kMediaStreamConstraintsAspectRatio = 1924,
kMediaStreamConstraintsFrameRate = 1925,
kMediaStreamConstraintsFacingMode = 1926,
kMediaStreamConstraintsVolume = 1927,
kMediaStreamConstraintsSampleRate = 1928,
kMediaStreamConstraintsSampleSize = 1929,
kMediaStreamConstraintsEchoCancellation = 1930,
kMediaStreamConstraintsLatency = 1931,
kMediaStreamConstraintsChannelCount = 1932,
kMediaStreamConstraintsDeviceIdAudio = 1933,
kMediaStreamConstraintsDeviceIdVideo = 1934,
kMediaStreamConstraintsDisableLocalEcho = 1935,
kMediaStreamConstraintsGroupIdAudio = 1936,
kMediaStreamConstraintsGroupIdVideo = 1937,
kMediaStreamConstraintsVideoKind = 1938,
kMediaStreamConstraintsDepthNear = 1939,
kMediaStreamConstraintsDepthFar = 1940,
kMediaStreamConstraintsFocalLengthX = 1941,
kMediaStreamConstraintsFocalLengthY = 1942,
kMediaStreamConstraintsMediaStreamSourceAudio = 1943,
kMediaStreamConstraintsMediaStreamSourceVideo = 1944,
kMediaStreamConstraintsRenderToAssociatedSink = 1945,
kMediaStreamConstraintsHotwordEnabled = 1946,
kMediaStreamConstraintsGoogEchoCancellation = 1947,
kMediaStreamConstraintsGoogExperimentalEchoCancellation = 1948,
kMediaStreamConstraintsGoogAutoGainControl = 1949,
kMediaStreamConstraintsGoogExperimentalAutoGainControl = 1950,
kMediaStreamConstraintsGoogNoiseSuppression = 1951,
kMediaStreamConstraintsGoogHighpassFilter = 1952,
kMediaStreamConstraintsGoogTypingNoiseDetection = 1953,
kMediaStreamConstraintsGoogExperimentalNoiseSuppression = 1954,
kMediaStreamConstraintsGoogBeamforming = 1955,
kMediaStreamConstraintsGoogArrayGeometry = 1956,
kMediaStreamConstraintsGoogAudioMirroring = 1957,
kMediaStreamConstraintsGoogDAEchoCancellation = 1958,
kMediaStreamConstraintsGoogNoiseReduction = 1959,
kMediaStreamConstraintsGoogPowerLineFrequency = 1960,
// The above items are available in M59 branch.
kViewportFixedPositionUnderFilter = 1961,
kRequestMIDIAccessWithSysExOption = 1962,
kRequestMIDIAccessIframeWithSysExOption = 1963,
kGamepadAxes = 1964,
kGamepadButtons = 1965,
kVibrateWithoutUserGesture = 1966,
kDispatchMouseEventOnDisabledFormControl = 1967,
kElementNameDOMInvalidHTMLParserValid = 1968,
kElementNameDOMValidHTMLParserInvalid = 1969,
kGATTServerDisconnectedEvent = 1970,
// 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.
kNumberOfFeatures, // This enum value must be last.
};
// An interface to observe UseCounter changes. Note that this is never
// notified when the counter is disabled by |m_muteCount| or
// |m_disableReporting|.
class Observer : public GarbageCollected<Observer> {
public:
// Notified when a feature is counted for the first time. This should return
// true if it no longer needs to observe changes so that the counter can
// remove a reference to the observer and stop notifications.
virtual bool OnCountFeature(Feature) = 0;
DEFINE_INLINE_VIRTUAL_TRACE() {}
};
// "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);
static void Count(ExecutionContext*, Feature);
void Count(CSSParserMode, CSSPropertyID);
void Count(Feature);
static void CountAnimatedCSS(const Document&, CSSPropertyID);
void CountAnimatedCSS(CSSPropertyID);
// Count only features if they're being used in an iframe which does not
// have script access into the top level document.
static void CountCrossOriginIframe(const Document&, Feature);
// Return whether the Feature was previously counted for this document.
// NOTE: only for use in testing.
static bool IsCounted(Document&, Feature);
// Return whether the CSSPropertyID was previously counted for this document.
// NOTE: only for use in testing.
static bool IsCounted(Document&, const String&);
bool IsCounted(CSSPropertyID unresolved_property);
// Return whether the CSSPropertyID was previously counted for this document.
// NOTE: only for use in testing.
static bool IsCountedAnimatedCSS(Document&, const String&);
bool IsCountedAnimatedCSS(CSSPropertyID unresolved_property);
// Retains a reference to the observer to notify of UseCounter changes.
void AddObserver(Observer*);
// Invoked when a new document is loaded into the main frame of the page.
void DidCommitLoad(KURL);
static int MapCSSPropertyIdToCSSSampleIdForHistogram(CSSPropertyID);
// When muted, all calls to "count" functions are ignoed. May be nested.
void MuteForInspector();
void UnmuteForInspector();
void RecordMeasurement(Feature);
// Return whether the feature has been seen since the last page load
// (except when muted). Does include features seen in documents which have
// reporting disabled.
bool HasRecordedMeasurement(Feature) const;
DECLARE_TRACE();
private:
// Notifies that a feature is newly counted to |m_observers|. This shouldn't
// be called when the counter is disabled by |m_muteCount| or
// |m_disableReporting|.
void NotifyFeatureCounted(Feature);
EnumerationHistogram& FeaturesHistogram() const;
EnumerationHistogram& CssHistogram() const;
EnumerationHistogram& AnimatedCSSHistogram() const;
// If non-zero, ignore all 'count' calls completely.
unsigned mute_count_;
// If true, disable reporting all histogram entries.
bool disable_reporting_;
// The scope represented by this UseCounter instance.
Context context_;
// Track what features/properties have been reported to the (non-legacy)
// histograms.
BitVector features_recorded_;
BitVector css_recorded_;
BitVector animated_css_recorded_;
HeapHashSet<Member<Observer>> observers_;
// Encapsulates the work to preserve the old "FeatureObserver" histogram with
// original semantics
// TODO(rbyers): remove this - http://crbug.com/676837
class CORE_EXPORT LegacyCounter {
public:
LegacyCounter();
~LegacyCounter();
void CountFeature(Feature);
void CountCSS(CSSPropertyID);
void UpdateMeasurements();
private:
// Tracks what features/properties need to be reported to the legacy
// histograms.
BitVector feature_bits_;
BitVector css_bits_;
} legacy_counter_;
};
} // namespace blink
#endif // UseCounter_h