Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google, Inc. All rights reserved. | 2 * Copyright (C) 2012 Google, Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| 11 * documentation and/or other materials provided with the distribution. | 11 * documentation and/or other materials provided with the distribution. |
| 12 * | 12 * |
| 13 * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY | 13 * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY |
| 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR | 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
| 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 24 */ | 24 */ |
| 25 | 25 |
| 26 #ifndef UseCounter_h | 26 #ifndef UseCounter_h |
| 27 #define UseCounter_h | 27 #define UseCounter_h |
| 28 | 28 |
| 29 #include "core/CSSPropertyNames.h" | 29 #include "core/CSSPropertyNames.h" |
| 30 #include "core/UseCounterGenerated.h" | |
| 30 #include "wtf/BitVector.h" | 31 #include "wtf/BitVector.h" |
| 31 #include "wtf/Noncopyable.h" | 32 #include "wtf/Noncopyable.h" |
| 32 #include "wtf/OwnPtr.h" | 33 #include "wtf/OwnPtr.h" |
| 33 #include "wtf/PassOwnPtr.h" | 34 #include "wtf/PassOwnPtr.h" |
| 34 #include "wtf/text/WTFString.h" | 35 #include "wtf/text/WTFString.h" |
| 35 #include <v8.h> | 36 #include <v8.h> |
| 36 | 37 |
| 37 namespace blink { | 38 namespace blink { |
| 38 | 39 |
| 39 class CSSStyleSheet; | 40 class CSSStyleSheet; |
| 40 class Document; | 41 class Document; |
| 41 class ExecutionContext; | 42 class ExecutionContext; |
| 42 class Frame; | 43 class Frame; |
| 43 class LocalFrame; | 44 class LocalFrame; |
| 44 class StyleSheetContents; | 45 class StyleSheetContents; |
| 45 | 46 |
| 46 // UseCounter is used for counting the number of times features of | 47 // UseCounter is used for counting the number of times features of |
| 47 // Blink are used on real web pages and help us know commonly | 48 // Blink are used on real web pages and help us know commonly |
| 48 // features are used and thus when it's safe to remove or change them. | 49 // features are used and thus when it's safe to remove or change them. |
| 49 // | 50 // |
| 50 // The Chromium Content layer controls what is done with this data. | 51 // The Chromium Content layer controls what is done with this data. |
| 51 // For instance, in Google Chrome, these counts are submitted | 52 // For instance, in Google Chrome, these counts are submitted |
| 52 // anonymously through the Histogram recording system in Chrome | 53 // anonymously through the Histogram recording system in Chrome |
| 53 // for users who opt-in to "Usage Statistics" submission | 54 // for users who opt-in to "Usage Statistics" submission |
| 54 // during their install of Google Chrome: | 55 // during their install of Google Chrome: |
| 55 // http://www.google.com/chrome/intl/en/privacy.html | 56 // http://www.google.com/chrome/intl/en/privacy.html |
| 56 | 57 |
| 57 class UseCounter { | 58 class UseCounter : public UseCounterGenerated { |
|
haraken
2014/11/24 09:38:49
Add final.
| |
| 58 WTF_MAKE_NONCOPYABLE(UseCounter); | 59 WTF_MAKE_NONCOPYABLE(UseCounter); |
| 59 public: | 60 public: |
| 60 UseCounter(); | 61 UseCounter(); |
| 61 ~UseCounter(); | 62 ~UseCounter(); |
| 62 | 63 |
| 63 enum Feature { | |
| 64 // Do not change assigned numbers of existing items: add new features | |
| 65 // to the end of the list. | |
| 66 PageDestruction = 0, | |
| 67 PrefixedIndexedDB = 3, | |
| 68 WorkerStart = 4, | |
| 69 SharedWorkerStart = 5, | |
| 70 UnprefixedIndexedDB = 9, | |
| 71 OpenWebDatabase = 10, | |
| 72 UnprefixedRequestAnimationFrame = 13, | |
| 73 PrefixedRequestAnimationFrame = 14, | |
| 74 ContentSecurityPolicy = 15, | |
| 75 ContentSecurityPolicyReportOnly = 16, | |
| 76 PrefixedTransitionEndEvent = 18, | |
| 77 UnprefixedTransitionEndEvent = 19, | |
| 78 PrefixedAndUnprefixedTransitionEndEvent = 20, | |
| 79 AutoFocusAttribute = 21, | |
| 80 DataListElement = 23, | |
| 81 FormAttribute = 24, | |
| 82 IncrementalAttribute = 25, | |
| 83 InputTypeColor = 26, | |
| 84 InputTypeDate = 27, | |
| 85 InputTypeDateTimeFallback = 29, | |
| 86 InputTypeDateTimeLocal = 30, | |
| 87 InputTypeEmail = 31, | |
| 88 InputTypeMonth = 32, | |
| 89 InputTypeNumber = 33, | |
| 90 InputTypeRange = 34, | |
| 91 InputTypeSearch = 35, | |
| 92 InputTypeTel = 36, | |
| 93 InputTypeTime = 37, | |
| 94 InputTypeURL = 38, | |
| 95 InputTypeWeek = 39, | |
| 96 InputTypeWeekFallback = 40, | |
| 97 ListAttribute = 41, | |
| 98 MaxAttribute = 42, | |
| 99 MinAttribute = 43, | |
| 100 PatternAttribute = 44, | |
| 101 PlaceholderAttribute = 45, | |
| 102 PrefixedDirectoryAttribute = 47, | |
| 103 RequiredAttribute = 49, | |
| 104 ResultsAttribute = 50, | |
| 105 StepAttribute = 51, | |
| 106 PageVisits = 52, | |
| 107 HTMLMarqueeElement = 53, | |
| 108 Reflection = 55, | |
| 109 PrefixedStorageInfo = 57, | |
| 110 XFrameOptions = 58, | |
| 111 XFrameOptionsSameOrigin = 59, | |
| 112 XFrameOptionsSameOriginWithBadAncestorChain = 60, | |
| 113 DeprecatedFlexboxWebContent = 61, | |
| 114 DeprecatedFlexboxChrome = 62, | |
| 115 DeprecatedFlexboxChromeExtension = 63, | |
| 116 UnprefixedPerformanceTimeline = 65, | |
| 117 UnprefixedUserTiming = 67, | |
| 118 WindowEvent = 69, | |
| 119 ContentSecurityPolicyWithBaseElement = 70, | |
| 120 PrefixedMediaAddKey = 71, | |
| 121 PrefixedMediaGenerateKeyRequest = 72, | |
| 122 DocumentClear = 74, | |
| 123 XMLDocument = 77, | |
| 124 XSLProcessingInstruction = 78, | |
| 125 XSLTProcessor = 79, | |
| 126 SVGSwitchElement = 80, | |
| 127 DocumentAll = 83, | |
| 128 FormElement = 84, | |
| 129 DemotedFormElement = 85, | |
| 130 SVGAnimationElement = 90, | |
| 131 KeyboardEventKeyLocation = 91, | |
| 132 LineClamp = 96, | |
| 133 SubFrameBeforeUnloadRegistered = 97, | |
| 134 SubFrameBeforeUnloadFired = 98, | |
| 135 ConsoleMarkTimeline = 102, | |
| 136 ElementGetAttributeNode = 107, | |
| 137 ElementSetAttributeNode = 108, | |
| 138 ElementRemoveAttributeNode = 109, | |
| 139 ElementGetAttributeNodeNS = 110, | |
| 140 DocumentCreateAttribute = 111, | |
| 141 DocumentCreateAttributeNS = 112, | |
| 142 DocumentCreateCDATASection = 113, // Removed from DOM4. | |
| 143 DocumentInputEncoding = 114, // Removed from DOM4. | |
| 144 DocumentXMLEncoding = 115, // Removed from DOM4. | |
| 145 DocumentXMLStandalone = 116, // Removed from DOM4. | |
| 146 DocumentXMLVersion = 117, // Removed from DOM4. | |
| 147 NodeIsSameNode = 118, // Removed from DOM4. | |
| 148 NodeNamespaceURI = 120, // Removed from DOM4. | |
| 149 NodeLocalName = 122, // Removed from DOM4. | |
| 150 NavigatorProductSub = 123, | |
| 151 NavigatorVendor = 124, | |
| 152 NavigatorVendorSub = 125, | |
| 153 FileError = 126, | |
| 154 DocumentCharset = 127, // Documented as IE extensions = 0, from KHTML da ys. | |
| 155 PrefixedAnimationEndEvent = 128, | |
| 156 UnprefixedAnimationEndEvent = 129, | |
| 157 PrefixedAndUnprefixedAnimationEndEvent = 130, | |
| 158 PrefixedAnimationStartEvent = 131, | |
| 159 UnprefixedAnimationStartEvent = 132, | |
| 160 PrefixedAndUnprefixedAnimationStartEvent = 133, | |
| 161 PrefixedAnimationIterationEvent = 134, | |
| 162 UnprefixedAnimationIterationEvent = 135, | |
| 163 PrefixedAndUnprefixedAnimationIterationEvent = 136, | |
| 164 EventReturnValue = 137, // Legacy IE extension. | |
| 165 SVGSVGElement = 138, | |
| 166 InsertAdjacentText = 140, | |
| 167 InsertAdjacentElement = 141, | |
| 168 HasAttributes = 142, | |
| 169 DOMSubtreeModifiedEvent = 143, | |
| 170 DOMNodeInsertedEvent = 144, | |
| 171 DOMNodeRemovedEvent = 145, | |
| 172 DOMNodeRemovedFromDocumentEvent = 146, | |
| 173 DOMNodeInsertedIntoDocumentEvent = 147, | |
| 174 DOMCharacterDataModifiedEvent = 148, | |
| 175 DocumentAllLegacyCall = 150, | |
| 176 HTMLEmbedElementLegacyCall = 152, | |
| 177 HTMLObjectElementLegacyCall = 153, | |
| 178 GetMatchedCSSRules = 155, | |
| 179 AttributeOwnerElement = 160, | |
| 180 AttributeSpecified = 162, | |
| 181 PrefixedAudioDecodedByteCount = 164, | |
| 182 PrefixedVideoDecodedByteCount = 165, | |
| 183 PrefixedVideoSupportsFullscreen = 166, | |
| 184 PrefixedVideoDisplayingFullscreen = 167, | |
| 185 PrefixedVideoEnterFullscreen = 168, | |
| 186 PrefixedVideoExitFullscreen = 169, | |
| 187 PrefixedVideoEnterFullScreen = 170, | |
| 188 PrefixedVideoExitFullScreen = 171, | |
| 189 PrefixedVideoDecodedFrameCount = 172, | |
| 190 PrefixedVideoDroppedFrameCount = 173, | |
| 191 PrefixedElementRequestFullscreen = 176, | |
| 192 PrefixedElementRequestFullScreen = 177, | |
| 193 BarPropLocationbar = 178, | |
| 194 BarPropMenubar = 179, | |
| 195 BarPropPersonalbar = 180, | |
| 196 BarPropScrollbars = 181, | |
| 197 BarPropStatusbar = 182, | |
| 198 BarPropToolbar = 183, | |
| 199 InputTypeEmailMultiple = 184, | |
| 200 InputTypeEmailMaxLength = 185, | |
| 201 InputTypeEmailMultipleMaxLength = 186, | |
| 202 InputTypeText = 190, | |
| 203 InputTypeTextMaxLength = 191, | |
| 204 InputTypePassword = 192, | |
| 205 InputTypePasswordMaxLength = 193, | |
| 206 ShowModalDialog = 195, | |
| 207 PrefixedPageVisibility = 196, | |
| 208 CSSStyleSheetInsertRuleOptionalArg = 198, // Inconsistent with the speci fication and other browsers. | |
| 209 DocumentBeforeUnloadRegistered = 200, | |
| 210 DocumentBeforeUnloadFired = 201, | |
| 211 DocumentUnloadRegistered = 202, | |
| 212 DocumentUnloadFired = 203, | |
| 213 SVGLocatableNearestViewportElement = 204, | |
| 214 SVGLocatableFarthestViewportElement = 205, | |
| 215 OverflowChangedEvent = 208, | |
| 216 SVGPointMatrixTransform = 209, | |
| 217 DOMFocusInOutEvent = 211, | |
| 218 FileGetLastModifiedDate = 212, | |
| 219 HTMLElementInnerText = 213, | |
| 220 HTMLElementOuterText = 214, | |
| 221 ReplaceDocumentViaJavaScriptURL = 215, | |
| 222 ElementSetAttributeNodeNS = 216, // Removed from DOM4. | |
| 223 ElementPrefixedMatchesSelector = 217, | |
| 224 CSSStyleSheetRules = 219, | |
| 225 CSSStyleSheetAddRule = 220, | |
| 226 CSSStyleSheetRemoveRule = 221, | |
| 227 // The above items are available in M33 branch. | |
| 228 | |
| 229 InitMessageEvent = 222, | |
| 230 PrefixedMediaCancelKeyRequest = 229, | |
| 231 DOMImplementationHasFeature = 230, | |
| 232 DOMImplementationHasFeatureReturnFalse = 231, | |
| 233 CanPlayTypeKeySystem = 232, | |
| 234 PrefixedDevicePixelRatioMediaFeature = 233, | |
| 235 PrefixedMaxDevicePixelRatioMediaFeature = 234, | |
| 236 PrefixedMinDevicePixelRatioMediaFeature = 235, | |
| 237 PrefixedTransform3dMediaFeature = 237, | |
| 238 PrefixedStorageQuota = 240, | |
| 239 ResetReferrerPolicy = 243, | |
| 240 CaseInsensitiveAttrSelectorMatch = 244, // Case-insensitivity dropped fr om specification. | |
| 241 FormNameAccessForImageElement = 246, | |
| 242 FormNameAccessForPastNamesMap = 247, | |
| 243 FormAssociationByParser = 248, | |
| 244 SVGSVGElementInDocument = 250, | |
| 245 SVGDocumentRootElement = 251, | |
| 246 MediaErrorEncrypted = 253, | |
| 247 EventSourceURL = 254, | |
| 248 WebSocketURL = 255, | |
| 249 WorkerSubjectToCSP = 257, | |
| 250 WorkerAllowedByChildBlockedByScript = 258, | |
| 251 DeprecatedWebKitGradient = 260, | |
| 252 DeprecatedWebKitLinearGradient = 261, | |
| 253 DeprecatedWebKitRepeatingLinearGradient = 262, | |
| 254 DeprecatedWebKitRadialGradient = 263, | |
| 255 DeprecatedWebKitRepeatingRadialGradient = 264, | |
| 256 PrefixedImageSmoothingEnabled = 267, | |
| 257 UnprefixedImageSmoothingEnabled = 268, | |
| 258 // The above items are available in M34 branch. | |
| 259 | |
| 260 TextAutosizing = 274, | |
| 261 HTMLAnchorElementPingAttribute = 276, | |
| 262 InsertAdjacentHTML = 278, | |
| 263 SVGClassName = 279, | |
| 264 HTMLAppletElement = 280, | |
| 265 HTMLMediaElementSeekToFragmentStart = 281, | |
| 266 HTMLMediaElementPauseAtFragmentEnd = 282, | |
| 267 PrefixedWindowURL = 283, | |
| 268 PrefixedWorkerURL = 284, // This didn't work because of crbug.com/376039 . Available since M37. | |
| 269 WindowOrientation = 285, | |
| 270 DOMStringListContains = 286, | |
| 271 DocumentCaptureEvents = 287, | |
| 272 DocumentReleaseEvents = 288, | |
| 273 WindowCaptureEvents = 289, | |
| 274 WindowReleaseEvents = 290, | |
| 275 PrefixedGamepad = 291, | |
| 276 ElementAnimateKeyframeListEffectObjectTiming = 292, | |
| 277 ElementAnimateKeyframeListEffectDoubleTiming = 293, | |
| 278 ElementAnimateKeyframeListEffectNoTiming = 294, | |
| 279 DocumentXPathCreateExpression = 295, | |
| 280 DocumentXPathCreateNSResolver = 296, | |
| 281 DocumentXPathEvaluate = 297, | |
| 282 AttrGetValue = 298, | |
| 283 AttrSetValue = 299, | |
| 284 AnimationConstructorKeyframeListEffectObjectTiming = 300, | |
| 285 AnimationConstructorKeyframeListEffectDoubleTiming = 301, | |
| 286 AnimationConstructorKeyframeListEffectNoTiming = 302, | |
| 287 AttrSetValueWithElement = 303, | |
| 288 PrefixedCancelAnimationFrame = 304, | |
| 289 PrefixedCancelRequestAnimationFrame = 305, | |
| 290 NamedNodeMapGetNamedItem = 306, | |
| 291 NamedNodeMapSetNamedItem = 307, | |
| 292 NamedNodeMapRemoveNamedItem = 308, | |
| 293 NamedNodeMapItem = 309, | |
| 294 NamedNodeMapGetNamedItemNS = 310, | |
| 295 NamedNodeMapSetNamedItemNS = 311, | |
| 296 NamedNodeMapRemoveNamedItemNS = 312, | |
| 297 XHRProgressEventPosition = 316, | |
| 298 XHRProgressEventTotalSize = 317, | |
| 299 PrefixedDocumentIsFullscreen = 318, | |
| 300 PrefixedDocumentCurrentFullScreenElement = 320, | |
| 301 PrefixedDocumentCancelFullScreen = 321, | |
| 302 PrefixedDocumentFullscreenEnabled = 322, | |
| 303 PrefixedDocumentFullscreenElement = 323, | |
| 304 PrefixedDocumentExitFullscreen = 324, | |
| 305 // The above items are available in M35 branch. | |
| 306 | |
| 307 SVGForeignObjectElement = 325, | |
| 308 SelectionSetPosition = 327, | |
| 309 AnimationPlayerFinishEvent = 328, | |
| 310 SVGSVGElementInXMLDocument = 329, | |
| 311 PrefixedPerformanceClearResourceTimings = 341, | |
| 312 PrefixedPerformanceSetResourceTimingBufferSize = 342, | |
| 313 EventSrcElement = 343, | |
| 314 EventCancelBubble = 344, | |
| 315 EventPath = 345, | |
| 316 EventClipboardData = 346, | |
| 317 NodeIteratorDetach = 347, | |
| 318 AttrNodeValue = 348, | |
| 319 AttrTextContent = 349, | |
| 320 EventGetReturnValueTrue = 350, | |
| 321 EventGetReturnValueFalse = 351, | |
| 322 EventSetReturnValueTrue = 352, | |
| 323 EventSetReturnValueFalse = 353, | |
| 324 WindowOffscreenBuffering = 356, | |
| 325 WindowDefaultStatus = 357, | |
| 326 WindowDefaultstatus = 358, | |
| 327 PrefixedTransitionEventConstructor = 361, | |
| 328 PrefixedMutationObserverConstructor = 362, | |
| 329 PrefixedIDBCursorConstructor = 363, | |
| 330 PrefixedIDBDatabaseConstructor = 364, | |
| 331 PrefixedIDBFactoryConstructor = 365, | |
| 332 PrefixedIDBIndexConstructor = 366, | |
| 333 PrefixedIDBKeyRangeConstructor = 367, | |
| 334 PrefixedIDBObjectStoreConstructor = 368, | |
| 335 PrefixedIDBRequestConstructor = 369, | |
| 336 PrefixedIDBTransactionConstructor = 370, | |
| 337 NotificationPermission = 371, | |
| 338 RangeDetach = 372, | |
| 339 HTMLTableElementVspace = 374, | |
| 340 HTMLTableElementHspace = 375, | |
| 341 PrefixedTouchRadiusX = 378, | |
| 342 PrefixedTouchRadiusY = 379, | |
| 343 PrefixedTouchRotationAngle = 380, | |
| 344 PrefixedTouchForce = 381, | |
| 345 PrefixedMouseEventMovementX = 382, | |
| 346 PrefixedMouseEventMovementY = 383, | |
| 347 PrefixedFileRelativePath = 386, | |
| 348 DocumentCaretRangeFromPoint = 387, | |
| 349 DocumentGetCSSCanvasContext = 388, | |
| 350 ElementScrollIntoViewIfNeeded = 389, | |
| 351 RangeCompareNode = 392, | |
| 352 RangeExpand = 393, | |
| 353 HTMLImageElementX = 396, | |
| 354 HTMLImageElementY = 397, | |
| 355 SelectionBaseNode = 400, | |
| 356 SelectionBaseOffset = 401, | |
| 357 SelectionExtentNode = 402, | |
| 358 SelectionExtentOffset = 403, | |
| 359 SelectionType = 404, | |
| 360 SelectionModify = 405, | |
| 361 SelectionSetBaseAndExtent = 406, | |
| 362 SelectionEmpty = 407, | |
| 363 VTTCue = 409, | |
| 364 VTTCueRender = 410, | |
| 365 VTTCueRenderVertical = 411, | |
| 366 VTTCueRenderSnapToLinesFalse = 412, | |
| 367 VTTCueRenderLineNotAuto = 413, | |
| 368 VTTCueRenderPositionNot50 = 414, | |
| 369 VTTCueRenderSizeNot100 = 415, | |
| 370 VTTCueRenderAlignNotMiddle = 416, | |
| 371 // The above items are available in M36 branch. | |
| 372 | |
| 373 ElementRequestPointerLock = 417, | |
| 374 VTTCueRenderRtl = 418, | |
| 375 PostMessageFromSecureToInsecure = 419, | |
| 376 PostMessageFromInsecureToSecure = 420, | |
| 377 DocumentExitPointerLock = 421, | |
| 378 DocumentPointerLockElement = 422, | |
| 379 PrefixedCursorZoomIn = 424, | |
| 380 PrefixedCursorZoomOut = 425, | |
| 381 CSSCharsetRuleEncoding = 426, | |
| 382 DocumentSetCharset = 427, | |
| 383 DocumentDefaultCharset = 428, | |
| 384 TextEncoderConstructor = 429, | |
| 385 TextEncoderEncode = 430, | |
| 386 TextDecoderConstructor = 431, | |
| 387 TextDecoderDecode = 432, | |
| 388 FocusInOutEvent = 433, | |
| 389 MouseEventMovementX = 434, | |
| 390 MouseEventMovementY = 435, | |
| 391 DocumentFonts = 440, | |
| 392 MixedContentFormsSubmitted = 441, | |
| 393 FormsSubmitted = 442, | |
| 394 TextInputEventOnInput = 443, | |
| 395 TextInputEventOnTextArea = 444, | |
| 396 TextInputEventOnContentEditable = 445, | |
| 397 TextInputEventOnNotNode = 446, | |
| 398 WebkitBeforeTextInsertedOnInput = 447, | |
| 399 WebkitBeforeTextInsertedOnTextArea = 448, | |
| 400 WebkitBeforeTextInsertedOnContentEditable = 449, | |
| 401 WebkitBeforeTextInsertedOnNotNode = 450, | |
| 402 WebkitEditableContentChangedOnInput = 451, | |
| 403 WebkitEditableContentChangedOnTextArea = 452, | |
| 404 WebkitEditableContentChangedOnContentEditable = 453, | |
| 405 WebkitEditableContentChangedOnNotNode = 454, | |
| 406 HTMLImports = 455, | |
| 407 ElementCreateShadowRoot = 456, | |
| 408 DocumentRegisterElement = 457, | |
| 409 EditingAppleInterchangeNewline = 458, | |
| 410 EditingAppleConvertedSpace = 459, | |
| 411 EditingApplePasteAsQuotation = 460, | |
| 412 EditingAppleStyleSpanClass = 461, | |
| 413 EditingAppleTabSpanClass = 462, | |
| 414 HTMLImportsAsyncAttribute = 463, | |
| 415 FontFaceSetReady = 464, | |
| 416 XMLHttpRequestSynchronous = 465, | |
| 417 CSSSelectorPseudoUnresolved = 466, | |
| 418 CSSSelectorPseudoShadow = 467, | |
| 419 CSSSelectorPseudoContent = 468, | |
| 420 CSSSelectorPseudoHost = 469, | |
| 421 CSSSelectorPseudoHostContext = 470, | |
| 422 CSSDeepCombinator = 471, | |
| 423 SyncXHRWithCredentials = 472, | |
| 424 // The above items are available in M37 branch. | |
| 425 | |
| 426 UseAsm = 473, | |
| 427 DOMWindowOpen = 475, | |
| 428 DOMWindowOpenFeatures = 476, | |
| 429 MediaStreamTrackGetSources = 478, | |
| 430 AspectRatioFlexItem = 479, | |
| 431 DetailsElement = 480, | |
| 432 DialogElement = 481, | |
| 433 MapElement = 482, | |
| 434 MeterElement = 483, | |
| 435 ProgressElement = 484, | |
| 436 VideoFullscreenAllowedExemption = 485, | |
| 437 PrefixedHTMLElementDropzone = 490, | |
| 438 WheelEventWheelDeltaX = 491, | |
| 439 WheelEventWheelDeltaY = 492, | |
| 440 WheelEventWheelDelta = 493, | |
| 441 SendBeacon = 494, | |
| 442 SendBeaconQuotaExceeded = 495, | |
| 443 SVGSMILElementInDocument = 501, | |
| 444 MouseEventOffsetX = 502, | |
| 445 MouseEventOffsetY = 503, | |
| 446 MouseEventX = 504, | |
| 447 MouseEventY = 505, | |
| 448 MouseEventFromElement = 506, | |
| 449 MouseEventToElement = 507, | |
| 450 RequestFileSystem = 508, | |
| 451 RequestFileSystemWorker = 509, | |
| 452 RequestFileSystemSyncWorker = 510, | |
| 453 UIEventLayerX = 511, | |
| 454 UIEventLayerY = 512, | |
| 455 UIEventPageX = 513, | |
| 456 UIEventPageY = 514, | |
| 457 DevToolsConsoleTimeline = 517, | |
| 458 DevToolsConsoleProfile = 518, | |
| 459 SVGStyleElementTitle = 519, | |
| 460 PictureSourceSrc = 520, | |
| 461 // The above items are available in M38 branch. | |
| 462 | |
| 463 Picture = 521, | |
| 464 Sizes = 522, | |
| 465 SrcsetXDescriptor = 523, | |
| 466 SrcsetWDescriptor = 524, | |
| 467 SelectionContainsNode = 525, | |
| 468 MediaStreamEnded = 526, | |
| 469 MixedContentPrivateIPInPublicWebsitePassive = 527, | |
| 470 MixedContentPrivateIPInPublicWebsiteActive = 528, | |
| 471 XMLExternalResourceLoad = 529, | |
| 472 MixedContentPrivateHostnameInPublicHostname = 530, | |
| 473 LegacyProtocolEmbeddedAsSubresource = 531, | |
| 474 RequestedSubresourceWithEmbeddedCredentials = 532, | |
| 475 NotificationCreated = 533, | |
| 476 NotificationClosed = 534, | |
| 477 NotificationPermissionRequested = 535, | |
| 478 MediaStreamLabel = 536, | |
| 479 MediaStreamStop = 537, | |
| 480 ConsoleTimeline = 538, | |
| 481 ConsoleTimelineEnd = 539, | |
| 482 SRIElementWithMatchingIntegrityAttribute = 540, | |
| 483 SRIElementWithNonMatchingIntegrityAttribute = 541, | |
| 484 SRIElementWithUnparsableIntegrityAttribute = 542, | |
| 485 SRIElementWithIntegrityAttributeAndInsecureOrigin = 543, | |
| 486 SRIElementWithIntegrityAttributeAndInsecureResource = 544, | |
| 487 AnimationPlayerGetStartTime = 545, | |
| 488 AnimationPlayerSetStartTime = 546, | |
| 489 AnimationPlayerGetCurrentTime = 547, | |
| 490 AnimationPlayerSetCurrentTime = 548, | |
| 491 AnimationPlayerGetPlaybackRate = 549, | |
| 492 AnimationPlayerSetPlaybackRate = 550, | |
| 493 AnimationPlayerGetPlayState = 551, | |
| 494 AnimationPlayerFinish = 552, | |
| 495 AnimationPlayerPlay = 553, | |
| 496 AnimationPlayerPause = 554, | |
| 497 AnimationPlayerReverse = 555, | |
| 498 // The above items are available in M39 branch. | |
| 499 | |
| 500 BreakIterator = 556, | |
| 501 ScreenOrientationAngle = 557, | |
| 502 ScreenOrientationType = 558, | |
| 503 ScreenOrientationLock = 559, | |
| 504 ScreenOrientationUnlock = 560, | |
| 505 GeolocationSecureOrigin = 561, | |
| 506 GeolocationInsecureOrigin = 562, | |
| 507 NotificationSecureOrigin = 563, | |
| 508 NotificationInsecureOrigin = 564, | |
| 509 NotificationShowEvent = 565, | |
| 510 CSSXGetComputedStyleQueries = 566, | |
| 511 SVG1DOM = 567, | |
| 512 SVGPathSegDOM = 568, | |
| 513 SVGTransformListConsolidate = 569, | |
| 514 SVGAnimatedTransformListBaseVal = 570, | |
| 515 QuotedAnimationName = 571, | |
| 516 QuotedKeyframesRule = 572, | |
| 517 SrcsetDroppedCandidate = 573, | |
| 518 WindowPostMessage = 574, | |
| 519 WindowPostMessageWithLegacyTargetOriginArgument = 575, | |
| 520 RenderRuby = 576, | |
| 521 CanvasRenderingContext2DCompositeOperationDarker = 577, | |
| 522 ScriptElementWithInvalidTypeHasSrc = 578, | |
| 523 TimelineStart = 579, | |
| 524 ElementBaseURIFromXMLBase = 580, | |
| 525 XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload = 581, | |
| 526 CSSSelectorPseudoScrollbar = 582, | |
| 527 CSSSelectorPseudoScrollbarButton = 583, | |
| 528 CSSSelectorPseudoScrollbarThumb = 584, | |
| 529 CSSSelectorPseudoScrollbarTrack = 585, | |
| 530 CSSSelectorPseudoScrollbarTrackPiece = 586, | |
| 531 LangAttribute = 587, | |
| 532 LangAttributeOnHTML = 588, | |
| 533 LangAttributeOnBody = 589, | |
| 534 LangAttributeDoesNotMatchToUILocale = 590, | |
| 535 InputTypeSubmit = 591, | |
| 536 InputTypeSubmitWithValue = 592, | |
| 537 // The above items are available in M40 branch. | |
| 538 | |
| 539 SetReferrerPolicy = 593, | |
| 540 DOMImplementationHasFeatureReturnFalseInternal = 594, | |
| 541 MouseEventWhich = 595, | |
| 542 UIEventCharCode = 596, | |
| 543 UIEventKeyCode = 597, | |
| 544 UIEventWhich = 598, | |
| 545 TextWholeText = 599, | |
| 546 AttrChildAccess = 600, | |
| 547 AttrChildChange = 601, | |
| 548 | |
| 549 // Add new features immediately above this line. Don't change assigned | |
| 550 // numbers of any item, and don't reuse removed slots. | |
| 551 // Also, run update_use_counter_feature_enum.py in chromium/src/tools/me trics/histograms/ | |
| 552 // to update the UMA mapping. | |
| 553 NumberOfFeatures, // This enum value must be last. | |
| 554 }; | |
| 555 | |
| 556 // "count" sets the bit for this feature to 1. Repeated calls are ignored. | 64 // "count" sets the bit for this feature to 1. Repeated calls are ignored. |
| 557 static void count(const Frame*, Feature); | 65 static void count(const Frame*, Feature); |
| 558 static void count(const Document&, Feature); | 66 static void count(const Document&, Feature); |
| 559 // This doesn't count for ExecutionContexts for shared workers and service | 67 // This doesn't count for ExecutionContexts for shared workers and service |
| 560 // workers. | 68 // workers. |
| 561 static void count(const ExecutionContext*, Feature); | 69 static void count(const ExecutionContext*, Feature); |
| 562 // Use countIfNotPrivateScript() instead of count() if you don't want | 70 // Use countIfNotPrivateScript() instead of count() if you don't want |
| 563 // to count metrics in private scripts. You should use | 71 // to count metrics in private scripts. You should use |
| 564 // countIfNotPrivateScript() in a binding layer. | 72 // countIfNotPrivateScript() in a binding layer. |
| 565 static void countIfNotPrivateScript(v8::Isolate*, const Frame*, Feature); | 73 static void countIfNotPrivateScript(v8::Isolate*, const Frame*, Feature); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 621 | 129 |
| 622 void updateMeasurements(); | 130 void updateMeasurements(); |
| 623 | 131 |
| 624 OwnPtr<BitVector> m_countBits; | 132 OwnPtr<BitVector> m_countBits; |
| 625 BitVector m_CSSFeatureBits; | 133 BitVector m_CSSFeatureBits; |
| 626 }; | 134 }; |
| 627 | 135 |
| 628 } // namespace blink | 136 } // namespace blink |
| 629 | 137 |
| 630 #endif // UseCounter_h | 138 #endif // UseCounter_h |
| OLD | NEW |