blob: 214d162ea0ec547db73c8f626007000f1aec3aa9 [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/weborigin/KURL.h"
#include "wtf/BitVector.h"
#include "wtf/Noncopyable.h"
#include "wtf/text/WTFString.h"
#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
class CORE_EXPORT UseCounter {
DISALLOW_NEW();
WTF_MAKE_NONCOPYABLE(UseCounter);
public:
enum Context {
DefaultContext,
// Counters for SVGImages (lifetime independent from other pages).
SVGImageContext
};
UseCounter(Context = DefaultContext);
enum Feature : uint32_t {
// Do not change assigned numbers of existing items: add new features
// to the end of the list.
OBSOLETE_PageDestruction = 0,
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,
StepAttribute = 51,
PageVisits = 52,
HTMLMarqueeElement = 53,
Reflection = 55,
PrefixedStorageInfo = 57,
DeprecatedFlexboxWebContent = 61,
DeprecatedFlexboxChrome = 62,
DeprecatedFlexboxChromeExtension = 63,
UnprefixedPerformanceTimeline = 65,
UnprefixedUserTiming = 67,
WindowEvent = 69,
ContentSecurityPolicyWithBaseElement = 70,
DocumentClear = 74,
XMLDocument = 77,
XSLProcessingInstruction = 78,
XSLTProcessor = 79,
SVGSwitchElement = 80,
DocumentAll = 83,
FormElement = 84,
DemotedFormElement = 85,
SVGAnimationElement = 90,
LineClamp = 96,
SubFrameBeforeUnloadRegistered = 97,
SubFrameBeforeUnloadFired = 98,
ConsoleMarkTimeline = 102,
DocumentCreateAttribute = 111,
DocumentCreateAttributeNS = 112,
DocumentXMLEncoding = 115, // Removed from DOM4.
DocumentXMLStandalone = 116, // Removed from DOM4.
DocumentXMLVersion = 117, // Removed from DOM4.
NavigatorProductSub = 123,
NavigatorVendor = 124,
NavigatorVendorSub = 125,
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,
DOMSubtreeModifiedEvent = 143,
DOMNodeInsertedEvent = 144,
DOMNodeRemovedEvent = 145,
DOMNodeRemovedFromDocumentEvent = 146,
DOMNodeInsertedIntoDocumentEvent = 147,
DOMCharacterDataModifiedEvent = 148,
DocumentAllLegacyCall = 150,
HTMLEmbedElementLegacyCall = 152,
HTMLObjectElementLegacyCall = 153,
GetMatchedCSSRules = 155,
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,
PrefixedPageVisibility = 196,
// Inconsistent with the specification and other browsers.
CSSStyleSheetInsertRuleOptionalArg = 198,
DocumentBeforeUnloadRegistered = 200,
DocumentBeforeUnloadFired = 201,
DocumentUnloadRegistered = 202,
DocumentUnloadFired = 203,
SVGLocatableNearestViewportElement = 204,
SVGLocatableFarthestViewportElement = 205,
SVGPointMatrixTransform = 209,
DOMFocusInOutEvent = 211,
FileGetLastModifiedDate = 212,
HTMLElementInnerText = 213,
HTMLElementOuterText = 214,
ReplaceDocumentViaJavaScriptURL = 215,
ElementPrefixedMatchesSelector = 217,
CSSStyleSheetRules = 219,
CSSStyleSheetAddRule = 220,
CSSStyleSheetRemoveRule = 221,
// The above items are available in M33 branch.
InitMessageEvent = 222,
PrefixedDevicePixelRatioMediaFeature = 233,
PrefixedMaxDevicePixelRatioMediaFeature = 234,
PrefixedMinDevicePixelRatioMediaFeature = 235,
PrefixedTransform3dMediaFeature = 237,
PrefixedStorageQuota = 240,
ResetReferrerPolicy = 243,
// Case-insensitivity dropped from specification.
CaseInsensitiveAttrSelectorMatch = 244,
FormNameAccessForImageElement = 246,
FormNameAccessForPastNamesMap = 247,
FormAssociationByParser = 248,
SVGSVGElementInDocument = 250,
SVGDocumentRootElement = 251,
WorkerSubjectToCSP = 257,
WorkerAllowedByChildBlockedByScript = 258,
DeprecatedWebKitGradient = 260,
DeprecatedWebKitLinearGradient = 261,
DeprecatedWebKitRepeatingLinearGradient = 262,
DeprecatedWebKitRadialGradient = 263,
DeprecatedWebKitRepeatingRadialGradient = 264,
UnprefixedImageSmoothingEnabled = 268,
// The above items are available in M34 branch.
TextAutosizing = 274,
HTMLAnchorElementPingAttribute = 276,
SVGClassName = 279,
HTMLMediaElementSeekToFragmentStart = 281,
HTMLMediaElementPauseAtFragmentEnd = 282,
PrefixedWindowURL = 283,
WindowOrientation = 285,
DocumentCaptureEvents = 287,
DocumentReleaseEvents = 288,
WindowCaptureEvents = 289,
WindowReleaseEvents = 290,
DocumentXPathCreateExpression = 295,
DocumentXPathCreateNSResolver = 296,
DocumentXPathEvaluate = 297,
AnimationConstructorKeyframeListEffectObjectTiming = 300,
AnimationConstructorKeyframeListEffectNoTiming = 302,
PrefixedCancelAnimationFrame = 304,
NamedNodeMapGetNamedItem = 306,
NamedNodeMapSetNamedItem = 307,
NamedNodeMapRemoveNamedItem = 308,
NamedNodeMapItem = 309,
NamedNodeMapGetNamedItemNS = 310,
NamedNodeMapSetNamedItemNS = 311,
NamedNodeMapRemoveNamedItemNS = 312,
PrefixedDocumentIsFullscreen = 318,
PrefixedDocumentCurrentFullScreenElement = 320,
PrefixedDocumentCancelFullScreen = 321,
PrefixedDocumentFullscreenEnabled = 322,
PrefixedDocumentFullscreenElement = 323,
PrefixedDocumentExitFullscreen = 324,
// The above items are available in M35 branch.
SVGForeignObjectElement = 325,
SelectionSetPosition = 327,
AnimationFinishEvent = 328,
SVGSVGElementInXMLDocument = 329,
EventSrcElement = 343,
EventCancelBubble = 344,
EventPath = 345,
NodeIteratorDetach = 347,
EventGetReturnValueTrue = 350,
EventGetReturnValueFalse = 351,
EventSetReturnValueTrue = 352,
EventSetReturnValueFalse = 353,
WindowOffscreenBuffering = 356,
WindowDefaultStatus = 357,
WindowDefaultstatus = 358,
PrefixedTransitionEventConstructor = 361,
PrefixedMutationObserverConstructor = 362,
NotificationPermission = 371,
RangeDetach = 372,
PrefixedFileRelativePath = 386,
DocumentCaretRangeFromPoint = 387,
ElementScrollIntoViewIfNeeded = 389,
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,
TextEncoderConstructor = 429,
TextEncoderEncode = 430,
TextDecoderConstructor = 431,
TextDecoderDecode = 432,
FocusInOutEvent = 433,
MouseEventMovementX = 434,
MouseEventMovementY = 435,
DocumentFonts = 440,
MixedContentFormsSubmitted = 441,
FormsSubmitted = 442,
HTMLImports = 455,
ElementCreateShadowRoot = 456,
DocumentRegisterElement = 457,
EditingAppleInterchangeNewline = 458,
EditingAppleConvertedSpace = 459,
EditingApplePasteAsQuotation = 460,
EditingAppleStyleSpanClass = 461,
EditingAppleTabSpanClass = 462,
HTMLImportsAsyncAttribute = 463,
XMLHttpRequestSynchronous = 465,
CSSSelectorPseudoUnresolved = 466,
CSSSelectorPseudoShadow = 467,
CSSSelectorPseudoContent = 468,
CSSSelectorPseudoHost = 469,
CSSSelectorPseudoHostContext = 470,
CSSDeepCombinator = 471,
// The above items are available in M37 branch.
UseAsm = 473,
DOMWindowOpen = 475,
DOMWindowOpenFeatures = 476,
AspectRatioFlexItem = 479,
DetailsElement = 480,
DialogElement = 481,
MapElement = 482,
MeterElement = 483,
ProgressElement = 484,
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,
SVGStyleElementTitle = 519,
PictureSourceSrc = 520,
// The above items are available in M38 branch.
Picture = 521,
Sizes = 522,
SrcsetXDescriptor = 523,
SrcsetWDescriptor = 524,
SelectionContainsNode = 525,
XMLExternalResourceLoad = 529,
MixedContentPrivateHostnameInPublicHostname = 530,
LegacyProtocolEmbeddedAsSubresource = 531,
RequestedSubresourceWithEmbeddedCredentials = 532,
NotificationCreated = 533,
NotificationClosed = 534,
NotificationPermissionRequested = 535,
ConsoleTimeline = 538,
ConsoleTimelineEnd = 539,
SRIElementWithMatchingIntegrityAttribute = 540,
SRIElementWithNonMatchingIntegrityAttribute = 541,
SRIElementWithUnparsableIntegrityAttribute = 542,
V8Animation_StartTime_AttributeGetter = 545,
V8Animation_StartTime_AttributeSetter = 546,
V8Animation_CurrentTime_AttributeGetter = 547,
V8Animation_CurrentTime_AttributeSetter = 548,
V8Animation_PlaybackRate_AttributeGetter = 549,
V8Animation_PlaybackRate_AttributeSetter = 550,
V8Animation_PlayState_AttributeGetter = 551,
V8Animation_Finish_Method = 552,
V8Animation_Play_Method = 553,
V8Animation_Pause_Method = 554,
V8Animation_Reverse_Method = 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,
SVGTransformListConsolidate = 569,
SVGAnimatedTransformListBaseVal = 570,
QuotedAnimationName = 571,
QuotedKeyframesRule = 572,
SrcsetDroppedCandidate = 573,
WindowPostMessage = 574,
RenderRuby = 576,
ScriptElementWithInvalidTypeHasSrc = 578,
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,
MouseEventWhich = 595,
UIEventWhich = 598,
TextWholeText = 599,
NotificationCloseEvent = 603,
StyleMedia = 606,
StyleMediaType = 607,
StyleMediaMatchMedium = 608,
MixedContentPresent = 609,
MixedContentBlockable = 610,
MixedContentAudio = 611,
MixedContentDownload = 612,
MixedContentFavicon = 613,
MixedContentImage = 614,
MixedContentInternal = 615,
MixedContentPlugin = 616,
MixedContentPrefetch = 617,
MixedContentVideo = 618,
CSSSelectorPseudoFullScreenAncestor = 628,
CSSSelectorPseudoFullScreen = 629,
WebKitCSSMatrix = 630,
AudioContextCreateAnalyser = 631,
AudioContextCreateBiquadFilter = 632,
AudioContextCreateBufferSource = 633,
AudioContextCreateChannelMerger = 634,
AudioContextCreateChannelSplitter = 635,
AudioContextCreateConvolver = 636,
AudioContextCreateDelay = 637,
AudioContextCreateDynamicsCompressor = 638,
AudioContextCreateGain = 639,
AudioContextCreateMediaElementSource = 640,
AudioContextCreateMediaStreamDestination = 641,
AudioContextCreateMediaStreamSource = 642,
AudioContextCreateOscillator = 643,
AudioContextCreatePeriodicWave = 645,
AudioContextCreateScriptProcessor = 646,
AudioContextCreateStereoPanner = 647,
AudioContextCreateWaveShaper = 648,
AudioContextDecodeAudioData = 649,
AudioContextResume = 650,
AudioContextSuspend = 651,
MixedContentInNonHTTPSFrameThatRestrictsMixedContent = 661,
MixedContentInSecureFrameThatDoesNotRestrictMixedContent = 662,
MixedContentWebSocket = 663,
SyntheticKeyframesInCompositedCSSAnimation = 664,
MixedContentFormPresent = 665,
GetUserMediaInsecureOrigin = 666,
GetUserMediaSecureOrigin = 667,
// The above items are available in M41 branch.
DeviceMotionInsecureOrigin = 668,
DeviceMotionSecureOrigin = 669,
DeviceOrientationInsecureOrigin = 670,
DeviceOrientationSecureOrigin = 671,
SandboxViaIFrame = 672,
SandboxViaCSP = 673,
BlockedSniffingImageToScript = 674,
Fetch = 675,
FetchBodyStream = 676,
XMLHttpRequestAsynchronous = 677,
WhiteSpacePreFromXMLSpace = 679,
WhiteSpaceNowrapFromXMLSpace = 680,
SVGSVGElementForceRedraw = 685,
SVGSVGElementSuspendRedraw = 686,
SVGSVGElementUnsuspendRedraw = 687,
SVGSVGElementUnsuspendRedrawAll = 688,
AudioContextClose = 689,
CSSZoomNotEqualToOne = 691,
// The above items are available in M42 branch.
ClientRectListItem = 694,
WindowClientInformation = 695,
WindowFind = 696,
WindowScreenLeft = 697,
WindowScreenTop = 698,
V8Animation_Cancel_Method = 699,
V8Animation_Onfinish_AttributeGetter = 700,
V8Animation_Onfinish_AttributeSetter = 701,
V8Window_WebKitAnimationEvent_ConstructorGetter = 707,
CryptoGetRandomValues = 710,
SubtleCryptoEncrypt = 711,
SubtleCryptoDecrypt = 712,
SubtleCryptoSign = 713,
SubtleCryptoVerify = 714,
SubtleCryptoDigest = 715,
SubtleCryptoGenerateKey = 716,
SubtleCryptoImportKey = 717,
SubtleCryptoExportKey = 718,
SubtleCryptoDeriveBits = 719,
SubtleCryptoDeriveKey = 720,
SubtleCryptoWrapKey = 721,
SubtleCryptoUnwrapKey = 722,
CryptoAlgorithmAesCbc = 723,
CryptoAlgorithmHmac = 724,
CryptoAlgorithmRsaSsaPkcs1v1_5 = 725,
CryptoAlgorithmSha1 = 726,
CryptoAlgorithmSha256 = 727,
CryptoAlgorithmSha384 = 728,
CryptoAlgorithmSha512 = 729,
CryptoAlgorithmAesGcm = 730,
CryptoAlgorithmRsaOaep = 731,
CryptoAlgorithmAesCtr = 732,
CryptoAlgorithmAesKw = 733,
CryptoAlgorithmRsaPss = 734,
CryptoAlgorithmEcdsa = 735,
CryptoAlgorithmEcdh = 736,
CryptoAlgorithmHkdf = 737,
CryptoAlgorithmPbkdf2 = 738,
DocumentSetDomain = 739,
UpgradeInsecureRequestsEnabled = 740,
UpgradeInsecureRequestsUpgradedRequest = 741,
DocumentDesignMode = 742,
GlobalCacheStorage = 743,
NetInfo = 744,
BackgroundSync = 745,
LegacyConst = 748,
V8Permissions_Query_Method = 750,
// The above items are available in M43 branch.
V8HTMLInputElement_Autocapitalize_AttributeGetter = 754,
V8HTMLInputElement_Autocapitalize_AttributeSetter = 755,
V8HTMLTextAreaElement_Autocapitalize_AttributeGetter = 756,
V8HTMLTextAreaElement_Autocapitalize_AttributeSetter = 757,
SVGHrefBaseVal = 758,
SVGHrefAnimVal = 759,
V8CSSRuleList_Item_Method = 760,
V8MediaList_Item_Method = 761,
V8StyleSheetList_Item_Method = 762,
StyleSheetListAnonymousNamedGetter = 763,
AutocapitalizeAttribute = 764,
FullscreenSecureOrigin = 765,
FullscreenInsecureOrigin = 766,
DialogInSandboxedContext = 767,
SVGSMILAnimationInImageRegardlessOfCache = 768,
PerformanceFrameTiming = 772,
V8Element_Animate_Method = 773,
// The above items are available in M44 branch.
V8SVGSVGElement_GetElementById_Method = 778,
ElementCreateShadowRootMultiple = 779,
V8MessageChannel_Constructor = 780,
V8MessagePort_PostMessage_Method = 781,
V8MessagePort_Start_Method = 782,
V8MessagePort_Close_Method = 783,
MessagePortsTransferred = 784,
CSSKeyframesRuleAnonymousIndexedGetter = 785,
V8Screen_AvailLeft_AttributeGetter = 786,
V8Screen_AvailTop_AttributeGetter = 787,
V8SVGFEConvolveMatrixElement_PreserveAlpha_AttributeGetter = 791,
V8SVGStyleElement_Disabled_AttributeGetter = 798,
V8SVGStyleElement_Disabled_AttributeSetter = 799,
InputTypeFileSecureOrigin = 801,
InputTypeFileInsecureOrigin = 802,
ElementAttachShadow = 804,
V8SecurityPolicyViolationEvent_DocumentURI_AttributeGetter = 806,
V8SecurityPolicyViolationEvent_BlockedURI_AttributeGetter = 807,
V8SecurityPolicyViolationEvent_StatusCode_AttributeGetter = 808,
HTMLLinkElementDisabled = 809,
V8HTMLLinkElement_Disabled_AttributeGetter = 810,
V8HTMLLinkElement_Disabled_AttributeSetter = 811,
V8HTMLStyleElement_Disabled_AttributeGetter = 812,
V8HTMLStyleElement_Disabled_AttributeSetter = 813,
V8DOMError_Constructor = 816,
V8DOMError_Name_AttributeGetter = 817,
V8DOMError_Message_AttributeGetter = 818,
TextInputFired = 830,
V8TextEvent_Data_AttributeGetter = 831,
V8TextEvent_InitTextEvent_Method = 832,
ClientHintsDPR = 835,
ClientHintsResourceWidth = 836,
ClientHintsViewportWidth = 837,
SRIElementIntegrityAttributeButIneligible = 838,
FormDataAppendNull = 843,
NonHTMLElementSetAttributeNodeFromHTMLDocumentNameNotLowercase = 845,
NavigatorVibrate = 850,
NavigatorVibrateSubFrame = 851,
V8XPathEvaluator_Constructor = 853,
V8XPathEvaluator_CreateExpression_Method = 854,
V8XPathEvaluator_CreateNSResolver_Method = 855,
V8XPathEvaluator_Evaluate_Method = 856,
RequestMIDIAccess = 857,
V8MouseEvent_LayerX_AttributeGetter = 858,
V8MouseEvent_LayerY_AttributeGetter = 859,
InnerTextWithShadowTree = 860,
SelectionToStringWithShadowTree = 861,
WindowFindWithShadowTree = 862,
V8CompositionEvent_InitCompositionEvent_Method = 863,
V8CustomEvent_InitCustomEvent_Method = 864,
V8DeviceMotionEvent_InitDeviceMotionEvent_Method = 865,
V8DeviceOrientationEvent_InitDeviceOrientationEvent_Method = 866,
V8Event_InitEvent_Method = 867,
V8KeyboardEvent_InitKeyboardEvent_Method = 868,
V8MouseEvent_InitMouseEvent_Method = 869,
V8MutationEvent_InitMutationEvent_Method = 870,
V8StorageEvent_InitStorageEvent_Method = 871,
V8UIEvent_InitUIEvent_Method = 873,
V8Document_CreateTouch_Method = 874,
RequestFileSystemNonWebbyOrigin = 876,
V8MemoryInfo_TotalJSHeapSize_AttributeGetter = 879,
V8MemoryInfo_UsedJSHeapSize_AttributeGetter = 880,
V8MemoryInfo_JSHeapSizeLimit_AttributeGetter = 881,
V8Performance_Timing_AttributeGetter = 882,
V8Performance_Navigation_AttributeGetter = 883,
V8Performance_Memory_AttributeGetter = 884,
V8SharedWorker_WorkerStart_AttributeGetter = 885,
// The above items are available in M45 branch.
HTMLMediaElementPreloadNone = 892,
HTMLMediaElementPreloadMetadata = 893,
HTMLMediaElementPreloadAuto = 894,
HTMLMediaElementPreloadDefault = 895,
MixedContentBlockableAllowed = 896,
PseudoBeforeAfterForInputElement = 897,
V8Permissions_Revoke_Method = 898,
LinkRelDnsPrefetch = 899,
LinkRelPreconnect = 900,
LinkRelPreload = 901,
LinkHeaderDnsPrefetch = 902,
LinkHeaderPreconnect = 903,
ClientHintsMetaAcceptCH = 904,
HTMLElementDeprecatedWidth = 905,
ClientHintsContentDPR = 906,
ElementAttachShadowOpen = 907,
ElementAttachShadowClosed = 908,
AudioParamSetValueAtTime = 909,
AudioParamLinearRampToValueAtTime = 910,
AudioParamExponentialRampToValueAtTime = 911,
AudioParamSetTargetAtTime = 912,
AudioParamSetValueCurveAtTime = 913,
AudioParamCancelScheduledValues = 914,
V8Permissions_Request_Method = 915,
LinkRelPrefetch = 917,
LinkRelPrerender = 918,
LinkRelNext = 919,
CSSValuePrefixedMinContent = 921,
CSSValuePrefixedMaxContent = 922,
CSSValuePrefixedFitContent = 923,
CSSValuePrefixedFillAvailable = 924,
PresentationDefaultRequest = 926,
PresentationAvailabilityChangeEventListener = 927,
PresentationRequestConstructor = 928,
PresentationRequestStart = 929,
PresentationRequestReconnect = 930,
PresentationRequestGetAvailability = 931,
PresentationRequestConnectionAvailableEventListener = 932,
PresentationConnectionTerminate = 933,
PresentationConnectionSend = 934,
PresentationConnectionMessageEventListener = 936,
CSSAnimationsStackedNeutralKeyframe = 937,
ReadingCheckedInClickHandler = 938,
FlexboxIntrinsicSizeAlgorithmIsDifferent = 939,
// The above items are available in M46 branch.
HTMLImportsHasStyleSheets = 940,
NetInfoType = 946,
NetInfoDownlinkMax = 947,
NetInfoOnChange = 948,
NetInfoOnTypeChange = 949,
V8Window_Alert_Method = 950,
V8Window_Confirm_Method = 951,
V8Window_Prompt_Method = 952,
V8Window_Print_Method = 953,
V8Window_RequestIdleCallback_Method = 954,
FlexboxPercentagePaddingVertical = 955,
FlexboxPercentageMarginVertical = 956,
BackspaceNavigatedBack = 957,
BackspaceNavigatedBackAfterFormInteraction = 958,
CSPSourceWildcardWouldMatchExactHost = 959,
CredentialManagerGet = 960,
CredentialManagerGetWithUI = 961,
CredentialManagerGetWithoutUI = 962,
CredentialManagerStore = 963,
CredentialManagerRequireUserMediation = 964,
// The above items are available in M47 branch.
BlockableMixedContentInSubframeBlocked = 966,
AddEventListenerThirdArgumentIsObject = 967,
RemoveEventListenerThirdArgumentIsObject = 968,
CSSAtRuleCharset = 969,
CSSAtRuleFontFace = 970,
CSSAtRuleImport = 971,
CSSAtRuleKeyframes = 972,
CSSAtRuleMedia = 973,
CSSAtRuleNamespace = 974,
CSSAtRulePage = 975,
CSSAtRuleSupports = 976,
CSSAtRuleViewport = 977,
CSSAtRuleWebkitKeyframes = 978,
V8HTMLFieldSetElement_Elements_AttributeGetter = 979,
HTMLMediaElementPreloadForcedNone = 980,
ExternalAddSearchProvider = 981,
ExternalIsSearchProviderInstalled = 982,
V8Permissions_RequestAll_Method = 983,
DeviceOrientationAbsoluteInsecureOrigin = 987,
DeviceOrientationAbsoluteSecureOrigin = 988,
FontFaceConstructor = 989,
ServiceWorkerControlledPage = 990,
MeterElementWithMeterAppearance = 993,
MeterElementWithNoneAppearance = 994,
SelectionAnchorNode = 997,
SelectionAnchorOffset = 998,
SelectionFocusNode = 999,
SelectionFocusOffset = 1000,
SelectionIsCollapsed = 1001,
SelectionRangeCount = 1002,
SelectionGetRangeAt = 1003,
SelectionAddRange = 1004,
SelectionRemoveAllRanges = 1005,
SelectionCollapse = 1006,
SelectionCollapseToStart = 1007,
SelectionCollapseToEnd = 1008,
SelectionExtend = 1009,
SelectionSelectAllChildren = 1010,
SelectionDeleteDromDocument = 1011,
SelectionDOMString = 1012,
InputTypeRangeVerticalAppearance = 1013,
// The above items are available in M48 branch.
CSSFilterReference = 1014,
CSSFilterGrayscale = 1015,
CSSFilterSepia = 1016,
CSSFilterSaturate = 1017,
CSSFilterHueRotate = 1018,
CSSFilterInvert = 1019,
CSSFilterOpacity = 1020,
CSSFilterBrightness = 1021,
CSSFilterContrast = 1022,
CSSFilterBlur = 1023,
CSSFilterDropShadow = 1024,
BackgroundSyncRegister = 1025,
ExecCommandOnInputOrTextarea = 1027,
V8History_ScrollRestoration_AttributeGetter = 1028,
V8History_ScrollRestoration_AttributeSetter = 1029,
SVG1DOMFilter = 1030,
OfflineAudioContextStartRendering = 1031,
OfflineAudioContextSuspend = 1032,
OfflineAudioContextResume = 1033,
SVG1DOMPaintServer = 1035,
SVGSVGElementFragmentSVGView = 1036,
SVGSVGElementFragmentSVGViewElement = 1037,
PresentationConnectionClose = 1038,
SVG1DOMShape = 1039,
SVG1DOMText = 1040,
RTCPeerConnectionConstructorConstraints = 1041,
RTCPeerConnectionConstructorCompliant = 1042,
RTCPeerConnectionCreateOfferLegacyFailureCallback = 1044,
RTCPeerConnectionCreateOfferLegacyConstraints = 1045,
RTCPeerConnectionCreateOfferLegacyOfferOptions = 1046,
RTCPeerConnectionCreateOfferLegacyCompliant = 1047,
RTCPeerConnectionCreateAnswerLegacyFailureCallback = 1049,
RTCPeerConnectionCreateAnswerLegacyConstraints = 1050,
RTCPeerConnectionCreateAnswerLegacyCompliant = 1051,
RTCPeerConnectionSetLocalDescriptionLegacyNoSuccessCallback = 1052,
RTCPeerConnectionSetLocalDescriptionLegacyNoFailureCallback = 1053,
RTCPeerConnectionSetLocalDescriptionLegacyCompliant = 1054,
RTCPeerConnectionSetRemoteDescriptionLegacyNoSuccessCallback = 1055,
RTCPeerConnectionSetRemoteDescriptionLegacyNoFailureCallback = 1056,
RTCPeerConnectionSetRemoteDescriptionLegacyCompliant = 1057,
RTCPeerConnectionGetStatsLegacyNonCompliant = 1058,
NodeFilterIsFunction = 1059,
NodeFilterIsObject = 1060,
CSSSelectorInternalPseudoListBox = 1062,
CSSSelectorInternalMediaControlsCastButton = 1063,
CSSSelectorInternalMediaControlsOverlayCastButton = 1064,
CSSSelectorInternalPseudoSpatialNavigationFocus = 1065,
SameOriginTextScript = 1066,
SameOriginApplicationScript = 1067,
SameOriginOtherScript = 1068,
CrossOriginTextScript = 1069,
CrossOriginApplicationScript = 1070,
CrossOriginOtherScript = 1071,
SVG1DOMSVGTests = 1072,
DisableRemotePlaybackAttribute = 1074,
V8SloppyMode = 1075,
V8StrictMode = 1076,
V8StrongMode = 1077,
AudioNodeConnectToAudioNode = 1078,
AudioNodeConnectToAudioParam = 1079,
AudioNodeDisconnectFromAudioNode = 1080,
AudioNodeDisconnectFromAudioParam = 1081,
V8CSSFontFaceRule_Style_AttributeGetter = 1082,
SelectionCollapseNull = 1083,
SelectionSetBaseAndExtentNull = 1084,
V8SVGSVGElement_CreateSVGNumber_Method = 1085,
V8SVGSVGElement_CreateSVGLength_Method = 1086,
V8SVGSVGElement_CreateSVGAngle_Method = 1087,
V8SVGSVGElement_CreateSVGPoint_Method = 1088,
V8SVGSVGElement_CreateSVGMatrix_Method = 1089,
V8SVGSVGElement_CreateSVGRect_Method = 1090,
V8SVGSVGElement_CreateSVGTransform_Method = 1091,
V8SVGSVGElement_CreateSVGTransformFromMatrix_Method = 1092,
FormNameAccessForNonDescendantImageElement = 1093,
V8RegExpPrototypeStickyGetter = 1096,
V8RegExpPrototypeToString = 1097,
V8InputDeviceCapabilities_FiresTouchEvents_AttributeGetter = 1098,
DataElement = 1099,
TimeElement = 1100,
SVG1DOMUriReference = 1101,
SVG1DOMZoomAndPan = 1102,
V8SVGGraphicsElement_Transform_AttributeGetter = 1103,
MenuItemElement = 1104,
MenuItemCloseTag = 1105,
SVG1DOMMarkerElement = 1106,
SVG1DOMUseElement = 1107,
SVG1DOMMaskElement = 1108,
V8SVGAElement_Target_AttributeGetter = 1109,
V8SVGClipPathElement_ClipPathUnits_AttributeGetter = 1110,
SVG1DOMFitToViewBox = 1111,
SVG1DOMSVGElement = 1114,
SVG1DOMImageElement = 1115,
SVG1DOMForeignObjectElement = 1116,
AudioContextCreateIIRFilter = 1117,
// The above items are available in M49 branch
CSSSelectorPseudoSlotted = 1118,
MediaDevicesEnumerateDevices = 1119,
NonSecureSharedWorkerAccessedFromSecureContext = 1120,
SecureSharedWorkerAccessedFromNonSecureContext = 1121,
EventComposedPath = 1123,
LinkHeaderPreload = 1124,
MouseWheelEvent = 1125,
WheelEvent = 1126,
MouseWheelAndWheelEvent = 1127,
BodyScrollsInAdditionToViewport = 1128,
DocumentDesignModeEnabeld = 1129,
ContentEditableTrue = 1130,
ContentEditableTrueOnHTML = 1131,
ContentEditablePlainTextOnly = 1132,
V8RegExpPrototypeUnicodeGetter = 1133,
V8IntlV8Parse = 1134,
V8IntlPattern = 1135,
V8IntlResolved = 1136,
V8PromiseChain = 1137,
V8PromiseAccept = 1138,
V8PromiseDefer = 1139,
EventComposed = 1140,
GeolocationInsecureOriginIframe = 1141,
GeolocationSecureOriginIframe = 1142,
RequestMIDIAccessIframe = 1143,
GetUserMediaInsecureOriginIframe = 1144,
GetUserMediaSecureOriginIframe = 1145,
ElementRequestPointerLockIframe = 1146,
NotificationAPIInsecureOriginIframe = 1147,
NotificationAPISecureOriginIframe = 1148,
WebSocket = 1149,
MediaStreamConstraintsNameValue = 1150,
MediaStreamConstraintsFromDictionary = 1151,
MediaStreamConstraintsConformant = 1152,
CSSSelectorIndirectAdjacent = 1153,
CreateImageBitmap = 1156,
PresentationConnectionConnectEventListener = 1157,
PresentationConnectionCloseEventListener = 1158,
PresentationConnectionTerminateEventListener = 1159,
DocumentCreateEventAnimationEvent = 1162,
DocumentCreateEventBeforeUnloadEvent = 1166,
DocumentCreateEventCompositionEvent = 1168,
DocumentCreateEventDragEvent = 1169,
DocumentCreateEventErrorEvent = 1170,
DocumentCreateEventFocusEvent = 1171,
DocumentCreateEventHashChangeEvent = 1172,
DocumentCreateEventMutationEvent = 1173,
DocumentCreateEventPageTransitionEvent = 1174,
DocumentCreateEventPopStateEvent = 1176,
DocumentCreateEventProgressEvent = 1177,
DocumentCreateEventTextEvent = 1182,
DocumentCreateEventTransitionEvent = 1183,
DocumentCreateEventWheelEvent = 1184,
DocumentCreateEventTrackEvent = 1186,
DocumentCreateEventWebKitAnimationEvent = 1187,
DocumentCreateEventMutationEvents = 1188,
DocumentCreateEventSVGEvents = 1190,
DocumentCreateEventWebKitTransitionEvent = 1191,
DocumentCreateEventDeviceMotionEvent = 1195,
DocumentCreateEventDeviceOrientationEvent = 1196,
DocumentCreateEventIDBVersionChangeEvent = 1201,
DocumentCreateEventStorageEvent = 1221,
DocumentCreateEventWebGLContextEvent = 1224,
DocumentCreateEventCloseEvent = 1227,
DocumentCreateEventKeyboardEvents = 1228,
HTMLMediaElement = 1229,
HTMLMediaElementInDocument = 1230,
HTMLMediaElementControlsAttribute = 1231,
V8Animation_Oncancel_AttributeGetter = 1233,
V8Animation_Oncancel_AttributeSetter = 1234,
V8HTMLCommentInExternalScript = 1235,
V8HTMLComment = 1236,
V8SloppyModeBlockScopedFunctionRedefinition = 1237,
V8ForInInitializer = 1238,
V8Animation_Id_AttributeGetter = 1239,
V8Animation_Id_AttributeSetter = 1240,
ApplicationCacheManifestSelectInsecureOrigin = 1245,
ApplicationCacheManifestSelectSecureOrigin = 1246,
ApplicationCacheAPIInsecureOrigin = 1247,
ApplicationCacheAPISecureOrigin = 1248,
// The above items are available in M50 branch
CSSAtRuleApply = 1249,
CSSSelectorPseudoAny = 1250,
DocumentAllItemNoArguments = 1252,
DocumentAllItemNamed = 1253,
DocumentAllItemIndexed = 1254,
DocumentAllItemIndexedWithNonNumber = 1255,
DocumentAllLegacyCallNoArguments = 1256,
DocumentAllLegacyCallNamed = 1257,
DocumentAllLegacyCallIndexed = 1258,
DocumentAllLegacyCallIndexedWithNonNumber = 1259,
DocumentAllLegacyCallTwoArguments = 1260,
HTMLLabelElementControlForNonFormAssociatedElement = 1263,
HTMLMediaElementLoadNetworkEmptyNotPaused = 1265,
V8Window_WebkitSpeechGrammar_ConstructorGetter = 1267,
V8Window_WebkitSpeechGrammarList_ConstructorGetter = 1268,
V8Window_WebkitSpeechRecognition_ConstructorGetter = 1269,
V8Window_WebkitSpeechRecognitionError_ConstructorGetter = 1270,
V8Window_WebkitSpeechRecognitionEvent_ConstructorGetter = 1271,
V8Window_SpeechSynthesis_AttributeGetter = 1272,
V8IDBFactory_WebkitGetDatabaseNames_Method = 1273,
ImageDocument = 1274,
ScriptPassesCSPDynamic = 1275,
CSPWithStrictDynamic = 1277,
ScrollAnchored = 1278,
AddEventListenerFourArguments = 1279,
RemoveEventListenerFourArguments = 1280,
SVGCalcModeDiscrete = 1287,
SVGCalcModeLinear = 1288,
SVGCalcModePaced = 1289,
SVGCalcModeSpline = 1290,
FormSubmissionStarted = 1291,
FormValidationStarted = 1292,
FormValidationAbortedSubmission = 1293,
FormValidationShowedMessage = 1294,
WebAnimationsEasingAsFunctionLinear = 1295,
WebAnimationsEasingAsFunctionOther = 1296,
// The above items are available in M51 branch
V8Document_Images_AttributeGetter = 1297,
V8Document_Embeds_AttributeGetter = 1298,
V8Document_Plugins_AttributeGetter = 1299,
V8Document_Links_AttributeGetter = 1300,
V8Document_Forms_AttributeGetter = 1301,
V8Document_Scripts_AttributeGetter = 1302,
V8Document_Anchors_AttributeGetter = 1303,
V8Document_Applets_AttributeGetter = 1304,
XMLHttpRequestCrossOriginWithCredentials = 1305,
MediaStreamTrackRemote = 1306,
V8Node_IsConnected_AttributeGetter = 1307,
ShadowRootDelegatesFocus = 1308,
MixedShadowRootV0AndV1 = 1309,
ImageDocumentInFrame = 1310,
MediaDocument = 1311,
MediaDocumentInFrame = 1312,
PluginDocument = 1313,
PluginDocumentInFrame = 1314,
SinkDocument = 1315,
SinkDocumentInFrame = 1316,
TextDocument = 1317,
TextDocumentInFrame = 1318,
ViewSourceDocument = 1319,
FileAPINativeLineEndings = 1320,
PointerEventAttributeCount = 1321,
CompositedReplication = 1322,
V8DataTransferItem_WebkitGetAsEntry_Method = 1325,
V8HTMLInputElement_WebkitEntries_AttributeGetter = 1326,
Entry_Filesystem_AttributeGetter_IsolatedFileSystem = 1327,
Entry_GetMetadata_Method_IsolatedFileSystem = 1328,
Entry_MoveTo_Method_IsolatedFileSystem = 1329,
Entry_CopyTo_Method_IsolatedFileSystem = 1330,
Entry_Remove_Method_IsolatedFileSystem = 1331,
Entry_GetParent_Method_IsolatedFileSystem = 1332,
Entry_ToURL_Method_IsolatedFileSystem = 1333,
During_Microtask_Alert = 1334,
During_Microtask_Confirm = 1335,
During_Microtask_Print = 1336,
During_Microtask_Prompt = 1337,
During_Microtask_SyncXHR = 1338,
CredentialManagerGetReturnedCredential = 1342,
GeolocationInsecureOriginDeprecatedNotRemoved = 1343,
GeolocationInsecureOriginIframeDeprecatedNotRemoved = 1344,
ProgressElementWithNoneAppearance = 1345,
ProgressElementWithProgressBarAppearance = 1346,
PointerEventAddListenerCount = 1347,
CSSValueAppearanceNone = 1351,
CSSValueAppearanceNotNone = 1352,
CSSValueAppearanceOthers = 1353,
CSSValueAppearanceButton = 1354,
CSSValueAppearanceCaret = 1355,
CSSValueAppearanceCheckbox = 1356,
CSSValueAppearanceMenulist = 1357,
CSSValueAppearanceMenulistButton = 1358,
CSSValueAppearanceListbox = 1359,
CSSValueAppearanceRadio = 1360,
CSSValueAppearanceSearchField = 1361,
CSSValueAppearanceTextField = 1362,
AudioContextCreatePannerAutomated = 1363,
PannerNodeSetPosition = 1364,
PannerNodeSetOrientation = 1365,
AudioListenerSetPosition = 1366,
AudioListenerSetOrientation = 1367,
IntersectionObserver_Constructor = 1368,
DurableStoragePersist = 1369,
DurableStoragePersisted = 1370,
DurableStorageEstimate = 1371,
CSSDeepCombinatorAndShadow = 1375,
OpacityWithPreserve3DQuirk = 1376,
CSSSelectorPseudoReadOnly = 1377,
CSSSelectorPseudoReadWrite = 1378,
// The above items are available in M52 branch
CSSSelectorPseudoDefined = 1383,
RTCPeerConnectionAddIceCandidatePromise = 1384,
RTCPeerConnectionAddIceCandidateLegacy = 1385,
RTCIceCandidateDefaultSdpMLineIndex = 1386,
MediaStreamConstraintsOldAndNew = 1389,
V8ArrayProtectorDirtied = 1390,
V8ArraySpeciesModified = 1391,
V8ArrayPrototypeConstructorModified = 1392,
V8ArrayInstanceProtoModified = 1393,
V8ArrayInstanceConstructorModified = 1394,
V8LegacyFunctionDeclaration = 1395,
V8RegExpPrototypeSourceGetter = 1396,
V8RegExpPrototypeOldFlagGetter = 1397,
V8DecimalWithLeadingZeroInStrictMode = 1398,
GetUserMediaPrefixed = 1400,
GetUserMediaLegacy = 1401,
GetUserMediaPromise = 1402,
CSSFilterFunctionNoArguments = 1403,
V8LegacyDateParser = 1404,
OpenSearchInsecureOriginInsecureTarget = 1405,
OpenSearchInsecureOriginSecureTarget = 1406,
OpenSearchSecureOriginInsecureTarget = 1407,
OpenSearchSecureOriginSecureTarget = 1408,
RegisterProtocolHandlerSecureOrigin = 1409,
RegisterProtocolHandlerInsecureOrigin = 1410,
CrossOriginWindowAlert = 1411,
CrossOriginWindowConfirm = 1412,
CrossOriginWindowPrompt = 1413,
CrossOriginWindowPrint = 1414,
MediaStreamOnActive = 1415,
MediaStreamOnInactive = 1416,
AddEventListenerPassiveTrue = 1417,
AddEventListenerPassiveFalse = 1418,
CSPReferrerDirective = 1419,
DocumentOpen = 1420,
ElementRequestPointerLockInShadow = 1421,
ShadowRootPointerLockElement = 1422,
DocumentPointerLockElementInV0Shadow = 1423,
TextAreaMaxLength = 1424,
TextAreaMinLength = 1425,
TopNavigationFromSubFrame = 1426,
PrefixedElementRequestFullscreenInShadow = 1427,
MediaSourceAbortRemove = 1428,
MediaSourceDurationTruncatingBuffered = 1429,
AudioContextCrossOriginIframe = 1430,
// The above items are available in M53 branch
PointerEventSetCapture = 1431,
PointerEventDispatch = 1432,
MIDIMessageEventReceivedTime = 1433,
SummaryElementWithDisplayBlockAuthorRule = 1434,
V8MediaStream_Active_AttributeGetter = 1435,
BeforeInstallPromptEvent = 1436,
BeforeInstallPromptEventUserChoice = 1437,
BeforeInstallPromptEventPreventDefault = 1438,
BeforeInstallPromptEventPrompt = 1439,
ExecCommandAltersHTMLStructure = 1440,
SecureContextCheckPassed = 1441,
SecureContextCheckFailed = 1442,
SecureContextCheckForSandboxedOriginPassed = 1443,
SecureContextCheckForSandboxedOriginFailed = 1444,
V8DefineGetterOrSetterWouldThrow = 1445,
V8FunctionConstructorReturnedUndefined = 1446,
V8BroadcastChannel_Constructor = 1447,
V8BroadcastChannel_PostMessage_Method = 1448,
V8BroadcastChannel_Close_Method = 1449,
TouchStartFired = 1450,
MouseDownFired = 1451,
PointerDownFired = 1452,
PointerDownFiredForTouch = 1453,
PointerEventDispatchPointerDown = 1454,
SVGSMILBeginOrEndEventValue = 1455,
SVGSMILBeginOrEndSyncbaseValue = 1456,
SVGSMILElementInsertedAfterLoad = 1457,
V8VisualViewport_ScrollLeft_AttributeGetter = 1458,
V8VisualViewport_ScrollTop_AttributeGetter = 1459,
V8VisualViewport_PageX_AttributeGetter = 1460,
V8VisualViewport_PageY_AttributeGetter = 1461,
V8VisualViewport_ClientWidth_AttributeGetter = 1462,
V8VisualViewport_ClientHeight_AttributeGetter = 1463,
V8VisualViewport_Scale_AttributeGetter = 1464,
VisualViewportScrollFired = 1465,
VisualViewportResizeFired = 1466,
NodeGetRootNode = 1467,
SlotChangeEventAddListener = 1468,
CSSValueAppearanceButtonRendered = 1469,
CSSValueAppearanceButtonForAnchor = 1470,
CSSValueAppearanceButtonForButton = 1471,
CSSValueAppearanceButtonForOtherButtons = 1472,
CSSValueAppearanceTextFieldRendered = 1473,
CSSValueAppearanceTextFieldForSearch = 1474,
CSSValueAppearanceTextFieldForTextField = 1475,
RTCPeerConnectionGetStats = 1476,
SVGSMILAnimationAppliedEffect = 1477,
PerformanceResourceTimingSizes = 1478,
EventSourceDocument = 1479,
EventSourceWorker = 1480,
SingleOriginInTimingAllowOrigin = 1481,
MultipleOriginsInTimingAllowOrigin = 1482,
StarInTimingAllowOrigin = 1483,
SVGSMILAdditiveAnimation = 1484,
SendBeaconWithNonSimpleContentType = 1485,
ChromeLoadTimesRequestTime = 1486,
ChromeLoadTimesStartLoadTime = 1487,
ChromeLoadTimesCommitLoadTime = 1488,
ChromeLoadTimesFinishDocumentLoadTime = 1489,
ChromeLoadTimesFinishLoadTime = 1490,
ChromeLoadTimesFirstPaintTime = 1491,
ChromeLoadTimesFirstPaintAfterLoadTime = 1492,
ChromeLoadTimesNavigationType = 1493,
ChromeLoadTimesWasFetchedViaSpdy = 1494,
ChromeLoadTimesWasNpnNegotiated = 1495,
ChromeLoadTimesNpnNegotiatedProtocol = 1496,
ChromeLoadTimesWasAlternateProtocolAvailable = 1497,
ChromeLoadTimesConnectionInfo = 1498,
ChromeLoadTimesUnknown = 1499,
SVGViewElement = 1500,
WebShareShare = 1501,
AuxclickAddListenerCount = 1502,
HTMLCanvasElement = 1503,
SVGSMILAnimationElementTiming = 1504,
SVGSMILBeginEndAnimationElement = 1505,
SVGSMILPausing = 1506,
SVGSMILCurrentTime = 1507,
HTMLBodyElementOnSelectionChangeAttribute = 1508,
ForeignFetchInterception = 1509,
InputSelectionGettersThrow = 1517,
UsbGetDevices = 1519,
UsbRequestDevice = 1520,
UsbDeviceOpen = 1521,
UsbDeviceClose = 1522,
UsbDeviceSelectConfiguration = 1523,
UsbDeviceClaimInterface = 1524,
UsbDeviceReleaseInterface = 1525,
UsbDeviceSelectAlternateInterface = 1526,
UsbDeviceControlTransferIn = 1527,
UsbDeviceControlTransferOut = 1528,
UsbDeviceClearHalt = 1529,
UsbDeviceTransferIn = 1530,
UsbDeviceTransferOut = 1531,
UsbDeviceIsochronousTransferIn = 1532,
UsbDeviceIsochronousTransferOut = 1533,
UsbDeviceReset = 1534,
// The above items are available in M54 branch
PointerEnterLeaveFired = 1535,
PointerOverOutFired = 1536,
DraggableAttribute = 1539,
CleanScriptElementWithNonce = 1540,
PotentiallyInjectedScriptElementWithNonce = 1541,
PendingStylesheetAddedAfterBodyStarted = 1542,
UntrustedMouseDownEventDispatchedToSelect = 1543,
BlockedSniffingAudioToScript = 1544,
BlockedSniffingVideoToScript = 1545,
BlockedSniffingCSVToScript = 1546,
MetaSetCookie = 1547,
MetaRefresh = 1548,
MetaSetCookieWhenCSPBlocksInlineScript = 1549,
MetaRefreshWhenCSPBlocksInlineScript = 1550,
MiddleClickAutoscrollStart = 1551,
RTCPeerConnectionCreateOfferOptionsOfferToReceive = 1553,
DragAndDropScrollStart = 1554,
PresentationConnectionListConnectionAvailableEventListener = 1555,
WebAudioAutoplayCrossOriginIframe = 1556,
VRGetDisplays = 1558,
VRPresent = 1559,
VRDeprecatedGetPose = 1560,
WebAudioAnalyserNode = 1561,
WebAudioAudioBuffer = 1562,
WebAudioAudioBufferSourceNode = 1563,
WebAudioBiquadFilterNode = 1564,
WebAudioChannelMergerNode = 1565,
WebAudioChannelSplitterNode = 1566,
WebAudioConvolverNode = 1567,
WebAudioDelayNode = 1568,
WebAudioDynamicsCompressorNode = 1569,
WebAudioGainNode = 1570,
WebAudioIIRFilterNode = 1571,
WebAudioMediaElementAudioSourceNode = 1572,
WebAudioOscillatorNode = 1573,
WebAudioPannerNode = 1574,
WebAudioPeriodicWave = 1575,
WebAudioStereoPannerNode = 1576,
WebAudioWaveShaperNode = 1577,
CSSZoomReset = 1578,
CSSZoomDocument = 1579,
XSSAuditorBlockedScript = 1581,
XSSAuditorBlockedEntirePage = 1582,
XSSAuditorDisabled = 1583,
XSSAuditorEnabledFilter = 1584,
XSSAuditorEnabledBlock = 1585,
XSSAuditorInvalid = 1586,
TextInputEventOnInput = 1589,
TextInputEventOnTextArea = 1590,
TextInputEventOnContentEditable = 1591,
TextInputEventOnNotNode = 1592,
WebkitBeforeTextInsertedOnInput = 1593,
WebkitBeforeTextInsertedOnTextArea = 1594,
WebkitBeforeTextInsertedOnContentEditable = 1595,
WebkitBeforeTextInsertedOnNotNode = 1596,
WebkitEditableContentChangedOnInput = 1597,
WebkitEditableContentChangedOnTextArea = 1598,
WebkitEditableContentChangedOnContentEditable = 1599,
WebkitEditableContentChangedOnNotNode = 1600,
V8NavigatorUserMediaError_ConstraintName_AttributeGetter = 1601,
V8HTMLMediaElement_SrcObject_AttributeGetter = 1602,
V8HTMLMediaElement_SrcObject_AttributeSetter = 1603,
CreateObjectURLBlob = 1604,
CreateObjectURLMediaSource = 1605,
CreateObjectURLMediaStream = 1606,
DocumentCreateTouchWindowNull = 1607,
DocumentCreateTouchWindowWrongType = 1608,
DocumentCreateTouchTargetNull = 1609,
DocumentCreateTouchTargetWrongType = 1610,
DocumentCreateTouchLessThanSevenArguments = 1611,
DocumentCreateTouchMoreThanSevenArguments = 1612,
LongTaskObserver = 1615,
CSSMotionInEffect = 1616,
CSSOffsetInEffect = 1617,
// The above items are available in M55 branch
VRGetDisplaysInsecureOrigin = 1618,
VRRequestPresent = 1619,
VRRequestPresentInsecureOrigin = 1620,
VRDeprecatedFieldOfView = 1621,
VideoInCanvas = 1622,
HiddenAutoplayedVideoInCanvas = 1623,
OffscreenCanvas = 1624,
GamepadPose = 1625,
GamepadHand = 1626,
GamepadDisplayId = 1627,
GamepadButtonTouched = 1628,
GamepadPoseHasOrientation = 1629,
GamepadPoseHasPosition = 1630,
GamepadPosePosition = 1631,
GamepadPoseLinearVelocity = 1632,
GamepadPoseLinearAcceleration = 1633,
GamepadPoseOrientation = 1634,
GamepadPoseAngularVelocity = 1635,
GamepadPoseAngularAcceleration = 1636,
V8RTCDataChannel_MaxRetransmitTime_AttributeGetter = 1638,
V8RTCDataChannel_MaxRetransmits_AttributeGetter = 1639,
V8RTCDataChannel_Reliable_AttributeGetter = 1640,
V8RTCPeerConnection_AddStream_Method = 1641,
V8RTCPeerConnection_CreateDTMFSender_Method = 1642,
V8RTCPeerConnection_GetLocalStreams_Method = 1643,
V8RTCPeerConnection_GetRemoteStreams_Method = 1644,
V8RTCPeerConnection_GetStreamById_Method = 1645,
V8RTCPeerConnection_RemoveStream_Method = 1646,
RTCPeerConnectionCreateDataChannelMaxRetransmitTime = 1648,
RTCPeerConnectionCreateDataChannelMaxRetransmits = 1649,
AudioContextCreateConstantSource = 1650,
WebAudioConstantSourceNode = 1651,
LoopbackEmbeddedInSecureContext = 1652,
LoopbackEmbeddedInNonSecureContext = 1653,
BlinkMacSystemFont = 1654,
RTCConfigurationIceTransportsNone = 1655,
RTCIceServerURL = 1656,
RTCIceServerURLs = 1657,
OffscreenCanvasTransferToImageBitmap2D = 1658,
OffscreenCanvasTransferToImageBitmapWebGL = 1659,
OffscreenCanvasCommit2D = 1660,
OffscreenCanvasCommitWebGL = 1661,
RTCConfigurationIceTransportPolicy = 1662,
RTCConfigurationIceTransportPolicyNone = 1663,
RTCConfigurationIceTransports = 1664,
DocumentFullscreenElementInV0Shadow = 1665,
ScriptWithCSPBypassingSchemeParserInserted = 1666,
ScriptWithCSPBypassingSchemeNotParserInserted = 1667,
DocumentCreateElement2ndArgStringHandling = 1668,
V8MediaRecorder_Start_Method = 1669,
WebBluetoothRequestDevice = 1670,
UnitlessPerspectiveInPerspectiveProperty = 1671,
UnitlessPerspectiveInTransformProperty = 1672,
V8RTCSessionDescription_Type_AttributeGetter = 1673,
V8RTCSessionDescription_Type_AttributeSetter = 1674,
V8RTCSessionDescription_Sdp_AttributeGetter = 1675,
V8RTCSessionDescription_Sdp_AttributeSetter = 1676,
RTCSessionDescriptionInitNoType = 1677,
RTCSessionDescriptionInitNoSdp = 1678,
HTMLMediaElementPreloadForcedMetadata = 1679,
GenericSensorStart = 1680,
GenericSensorStop = 1681,
TouchEventPreventedNoTouchAction = 1682,
TouchEventPreventedForcedDocumentPassiveNoTouchAction = 1683,
V8Event_StopPropagation_Method = 1684,
V8Event_StopImmediatePropagation_Method = 1685,
ImageCaptureConstructor = 1686,
V8Document_RootScroller_AttributeGetter = 1687,
V8Document_RootScroller_AttributeSetter = 1688,
CustomElementRegistryDefine = 1689,
LinkHeaderServiceWorker = 1690,
CSSShadowPiercingDescendantCombinator = 1691,
// The above items are available in M56 branch.
CSSFlexibleBox = 1692,
CSSGridLayout = 1693,
V8BarcodeDetector_Detect_Method = 1694,
V8FaceDetector_Detect_Method = 1695,
FullscreenAllowedByOrientationChange = 1696,
ServiceWorkerRespondToNavigationRequestWithRedirectedResponse = 1697,
V8AudioContext_Constructor = 1698,
V8OfflineAudioContext_Constructor = 1699,
AppInstalledEventAddListener = 1700,
AudioContextGetOutputTimestamp = 1701,
V8MediaStreamAudioDestinationNode_Constructor = 1702,
V8AnalyserNode_Constructor = 1703,
V8AudioBuffer_Constructor = 1704,
V8AudioBufferSourceNode_Constructor = 1705,
V8AudioProcessingEvent_Constructor = 1706,
V8BiquadFilterNode_Constructor = 1707,
V8ChannelMergerNode_Constructor = 1708,
V8ChannelSplitterNode_Constructor = 1709,
V8ConstantSourceNode_Constructor = 1710,
V8ConvolverNode_Constructor = 1711,
V8DelayNode_Constructor = 1712,
V8DynamicsCompressorNode_Constructor = 1713,
V8GainNode_Constructor = 1714,
V8IIRFilterNode_Constructor = 1715,
V8MediaElementAudioSourceNode_Constructor = 1716,
V8MediaStreamAudioSourceNode_Constructor = 1717,
V8OfflineAudioCompletionEvent_Constructor = 1718,
V8OscillatorNode_Constructor = 1719,
V8PannerNode_Constructor = 1720,
V8PeriodicWave_Constructor = 1721,
V8StereoPannerNode_Constructor = 1722,
V8WaveShaperNode_Constructor = 1723,
V8Headers_GetAll_Method = 1724,
NavigatorVibrateEngagementNone = 1725,
NavigatorVibrateEngagementMinimal = 1726,
NavigatorVibrateEngagementLow = 1727,
NavigatorVibrateEngagementMedium = 1728,
NavigatorVibrateEngagementHigh = 1729,
NavigatorVibrateEngagementMax = 1730,
AlertEngagementNone = 1731,
AlertEngagementMinimal = 1732,
AlertEngagementLow = 1733,
AlertEngagementMedium = 1734,
AlertEngagementHigh = 1735,
AlertEngagementMax = 1736,
ConfirmEngagementNone = 1737,
ConfirmEngagementMinimal = 1738,
ConfirmEngagementLow = 1739,
ConfirmEngagementMedium = 1740,
ConfirmEngagementHigh = 1741,
ConfirmEngagementMax = 1742,
PromptEngagementNone = 1743,
PromptEngagementMinimal = 1744,
PromptEngagementLow = 1745,
PromptEngagementMedium = 1746,
PromptEngagementHigh = 1747,
PromptEngagementMax = 1748,
TopNavInSandbox = 1749,
TopNavInSandboxWithoutGesture = 1750,
TopNavInSandboxWithPerm = 1751,
TopNavInSandboxWithPermButNoGesture = 1752,
ReferrerPolicyHeader = 1753,
HTMLAnchorElementReferrerPolicyAttribute = 1754,
HTMLIFrameElementReferrerPolicyAttribute = 1755,
HTMLImageElementReferrerPolicyAttribute = 1756,
HTMLLinkElementReferrerPolicyAttribute = 1757,
BaseElement = 1758,
BaseWithCrossOriginHref = 1759,
BaseWithDataHref = 1760,
BaseWithNewlinesInTarget = 1761,
BaseWithOpenBracketInTarget = 1762,
BaseWouldBeBlockedByDefaultSrc = 1763,
V8AssigmentExpressionLHSIsCallInSloppy = 1764,
V8AssigmentExpressionLHSIsCallInStrict = 1765,
V8PromiseConstructorReturnedUndefined = 1766,
FormSubmittedWithUnclosedFormControl = 1767,
DocumentCompleteURLHTTPContainingNewline = 1768,
DocumentCompleteURLHTTPContainingNewlineAndLessThan = 1770,
DocumentCompleteURLNonHTTPContainingNewline = 1771,
CSSSelectorInternalMediaControlsTextTrackList = 1772,
CSSSelectorInternalMediaControlsTextTrackListItem = 1773,
CSSSelectorInternalMediaControlsTextTrackListItemInput = 1774,
CSSSelectorInternalMediaControlsTextTrackListKindCaptions = 1775,
CSSSelectorInternalMediaControlsTextTrackListKindSubtitles = 1776,
ScrollbarUseVerticalScrollbarButton = 1777,
ScrollbarUseVerticalScrollbarThumb = 1778,
ScrollbarUseVerticalScrollbarTrack = 1779,
ScrollbarUseHorizontalScrollbarButton = 1780,
ScrollbarUseHorizontalScrollbarThumb = 1781,
ScrollbarUseHorizontalScrollbarTrack = 1782,
HTMLTableCellElementColspan = 1783,
HTMLTableCellElementColspanGreaterThan1000 = 1784,
HTMLTableCellElementColspanGreaterThan8190 = 1785,
SelectionAddRangeIntersect = 1786,
PostMessageFromInsecureToSecureToplevel = 1787,
// The above items are available in M57 branch.
V8MediaSession_Metadata_AttributeGetter = 1788,
V8MediaSession_Metadata_AttributeSetter = 1789,
V8MediaSession_PlaybackState_AttributeGetter = 1790,
V8MediaSession_PlaybackState_AttributeSetter = 1791,
V8MediaSession_SetActionHandler_Method = 1792,
WebNFCPush = 1793,
WebNFCCancelPush = 1794,
WebNFCWatch = 1795,
WebNFCCancelWatch = 1796,
AudioParamCancelAndHoldAtTime = 1797,
CSSValueUserModifyReadOnly = 1798,
CSSValueUserModifyReadWrite = 1799,
CSSValueUserModifyReadWritePlaintextOnly = 1800,
V8TextDetector_Detect_Method = 1801,
CSSValueOnDemand = 1802,
ServiceWorkerNavigationPreload = 1803,
FullscreenRequestWithPendingElement = 1804,
HTMLIFrameElementAllowfullscreenAttributeSetAfterContentLoad = 1805,
PointerEventSetCaptureOutsideDispatch = 1806,
NotificationPermissionRequestedInsecureOrigin = 1807,
V8DeprecatedStorageInfo_QueryUsageAndQuota_Method = 1808,
V8DeprecatedStorageInfo_RequestQuota_Method = 1809,
V8DeprecatedStorageQuota_QueryUsageAndQuota_Method = 1810,
V8DeprecatedStorageQuota_RequestQuota_Method = 1811,
V8FileReaderSync_Constructor = 1812,
// 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);
static void count(ExecutionContext*, Feature);
void count(CSSParserMode, CSSPropertyID);
void count(Feature);
// 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 unresolvedProperty);
// 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;
private:
EnumerationHistogram& featuresHistogram() const;
EnumerationHistogram& cssHistogram() const;
// If non-zero, ignore all 'count' calls completely.
unsigned m_muteCount;
// If true, disable reporting all histogram entries.
bool m_disableReporting;
// The scope represented by this UseCounter instance.
Context m_context;
// Track what features/properties have been reported to the (non-legacy)
// histograms.
BitVector m_featuresRecorded;
BitVector m_CSSRecorded;
// 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 m_featureBits;
BitVector m_CSSBits;
} m_legacyCounter;
};
} // namespace blink
#endif // UseCounter_h