Put the DOM in IsoHeaps
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 17 Mar 2018 06:11:00 +0000 (06:11 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 17 Mar 2018 06:11:00 +0000 (06:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=183546

Source/bmalloc:

Reviewed by Simon Fraser.

Make it easy to runtime-disable IsoHeaps.

* bmalloc/Allocator.h:
* bmalloc/IsoTLS.cpp:
(bmalloc::IsoTLS::determineMallocFallbackState):
* bmalloc/IsoTLS.h:
* bmalloc/IsoTLSInlines.h:
(bmalloc::IsoTLS::allocateSlow):
(bmalloc::IsoTLS::deallocateSlow):

Source/WebCore:

Reviewed by Daniel Bates.

No new tests because no change in behavior.

This puts all descendants of WebCore::Node in isoheaps, so that UAFs on the DOM cannot be
used for RCE attacks. This probably also makes it harder to use UAFs for UXSS, since it means
that DOM UAFs cannot be used for universal read gadgets.

This looks neutral on Speedometer and membuster, though I did have one round of testing
that led me to believe that membuster was regressed - I just wasn't able to reproduce that
result on subsequent testing.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/Attr.cpp:
* dom/Attr.h:
* dom/CDATASection.cpp:
* dom/CDATASection.h:
* dom/CharacterData.cpp:
* dom/CharacterData.h:
* dom/Comment.cpp:
* dom/Comment.h:
* dom/ContainerNode.cpp:
* dom/ContainerNode.h:
* dom/Document.cpp:
* dom/Document.h:
* dom/DocumentFragment.cpp:
* dom/DocumentFragment.h:
* dom/DocumentType.cpp:
* dom/DocumentType.h:
* dom/Node.cpp:
* dom/Node.h:
* dom/ProcessingInstruction.cpp:
* dom/ProcessingInstruction.h:
* dom/PseudoElement.cpp:
* dom/PseudoElement.h:
* dom/ShadowRoot.cpp:
* dom/ShadowRoot.h:
* dom/StyledElement.cpp:
* dom/StyledElement.h:
* dom/TemplateContentDocumentFragment.cpp: Added.
* dom/TemplateContentDocumentFragment.h:
* dom/Text.cpp:
* dom/Text.h:
* dom/XMLDocument.cpp: Added.
* dom/XMLDocument.h:
* html/FTPDirectoryDocument.cpp:
* html/FTPDirectoryDocument.h:
* html/FileInputType.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLAnchorElement.h:
* html/HTMLAppletElement.cpp:
* html/HTMLAppletElement.h:
* html/HTMLAreaElement.cpp:
* html/HTMLAreaElement.h:
* html/HTMLAttachmentElement.cpp:
* html/HTMLAttachmentElement.h:
* html/HTMLBDIElement.cpp: Added.
* html/HTMLBDIElement.h:
* html/HTMLBRElement.cpp:
* html/HTMLBRElement.h:
* html/HTMLBaseElement.cpp:
* html/HTMLBaseElement.h:
* html/HTMLBodyElement.cpp:
* html/HTMLBodyElement.h:
* html/HTMLButtonElement.cpp:
* html/HTMLButtonElement.h:
* html/HTMLCanvasElement.cpp:
* html/HTMLCanvasElement.h:
* html/HTMLDListElement.cpp:
* html/HTMLDListElement.h:
* html/HTMLDataElement.cpp:
* html/HTMLDataElement.h:
* html/HTMLDataListElement.cpp:
* html/HTMLDataListElement.h:
* html/HTMLDetailsElement.cpp:
* html/HTMLDetailsElement.h:
* html/HTMLDirectoryElement.cpp:
* html/HTMLDirectoryElement.h:
* html/HTMLDivElement.cpp:
* html/HTMLDivElement.h:
* html/HTMLDocument.cpp:
* html/HTMLDocument.h:
* html/HTMLElement.cpp:
* html/HTMLElement.h:
* html/HTMLEmbedElement.cpp:
* html/HTMLEmbedElement.h:
* html/HTMLFieldSetElement.cpp:
* html/HTMLFieldSetElement.h:
* html/HTMLFontElement.cpp:
* html/HTMLFontElement.h:
* html/HTMLFormControlElement.cpp:
* html/HTMLFormControlElement.h:
* html/HTMLFormControlElementWithState.cpp:
* html/HTMLFormControlElementWithState.h:
* html/HTMLFormElement.cpp:
* html/HTMLFormElement.h:
* html/HTMLFrameElement.cpp:
* html/HTMLFrameElement.h:
* html/HTMLFrameElementBase.cpp:
* html/HTMLFrameElementBase.h:
* html/HTMLFrameOwnerElement.cpp:
* html/HTMLFrameOwnerElement.h:
* html/HTMLFrameSetElement.cpp:
* html/HTMLFrameSetElement.h:
* html/HTMLHRElement.cpp:
* html/HTMLHRElement.h:
* html/HTMLHeadElement.cpp:
* html/HTMLHeadElement.h:
* html/HTMLHeadingElement.cpp:
* html/HTMLHeadingElement.h:
* html/HTMLHtmlElement.cpp:
* html/HTMLHtmlElement.h:
* html/HTMLIFrameElement.cpp:
* html/HTMLIFrameElement.h:
* html/HTMLImageElement.cpp:
* html/HTMLImageElement.h:
* html/HTMLInputElement.cpp:
* html/HTMLInputElement.h:
* html/HTMLKeygenElement.cpp:
* html/HTMLKeygenElement.h:
* html/HTMLLIElement.cpp:
* html/HTMLLIElement.h:
* html/HTMLLabelElement.cpp:
* html/HTMLLabelElement.h:
* html/HTMLLegendElement.cpp:
* html/HTMLLegendElement.h:
* html/HTMLLinkElement.cpp:
* html/HTMLLinkElement.h:
* html/HTMLMapElement.cpp:
* html/HTMLMapElement.h:
* html/HTMLMarqueeElement.cpp:
* html/HTMLMarqueeElement.h:
* html/HTMLMenuElement.cpp:
* html/HTMLMenuElement.h:
* html/HTMLMenuItemElement.cpp:
* html/HTMLMenuItemElement.h:
* html/HTMLMetaElement.cpp:
* html/HTMLMetaElement.h:
* html/HTMLMeterElement.cpp:
* html/HTMLMeterElement.h:
* html/HTMLModElement.cpp:
* html/HTMLModElement.h:
* html/HTMLOListElement.cpp:
* html/HTMLOListElement.h:
* html/HTMLObjectElement.cpp:
* html/HTMLObjectElement.h:
* html/HTMLOptGroupElement.cpp:
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
* html/HTMLOptionElement.h:
* html/HTMLOutputElement.cpp:
* html/HTMLOutputElement.h:
* html/HTMLParagraphElement.cpp:
* html/HTMLParagraphElement.h:
* html/HTMLParamElement.cpp:
* html/HTMLParamElement.h:
* html/HTMLPictureElement.cpp:
* html/HTMLPictureElement.h:
* html/HTMLPlugInElement.cpp:
* html/HTMLPlugInElement.h:
* html/HTMLPlugInImageElement.cpp:
* html/HTMLPlugInImageElement.h:
* html/HTMLPreElement.cpp:
* html/HTMLPreElement.h:
* html/HTMLProgressElement.cpp:
* html/HTMLProgressElement.h:
* html/HTMLQuoteElement.cpp:
* html/HTMLQuoteElement.h:
* html/HTMLScriptElement.cpp:
* html/HTMLScriptElement.h:
* html/HTMLSelectElement.cpp:
* html/HTMLSelectElement.h:
* html/HTMLSlotElement.cpp:
* html/HTMLSlotElement.h:
* html/HTMLSourceElement.cpp:
* html/HTMLSourceElement.h:
* html/HTMLSpanElement.cpp:
* html/HTMLSpanElement.h:
* html/HTMLStyleElement.cpp:
* html/HTMLStyleElement.h:
* html/HTMLSummaryElement.cpp:
* html/HTMLSummaryElement.h:
* html/HTMLTableCaptionElement.cpp:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableCellElement.cpp:
* html/HTMLTableCellElement.h:
* html/HTMLTableColElement.cpp:
* html/HTMLTableColElement.h:
* html/HTMLTableElement.cpp:
* html/HTMLTableElement.h:
* html/HTMLTablePartElement.cpp:
* html/HTMLTablePartElement.h:
* html/HTMLTableRowElement.cpp:
* html/HTMLTableRowElement.h:
* html/HTMLTableSectionElement.cpp:
* html/HTMLTableSectionElement.h:
* html/HTMLTemplateElement.cpp:
* html/HTMLTemplateElement.h:
* html/HTMLTextAreaElement.cpp:
* html/HTMLTextAreaElement.h:
* html/HTMLTextFormControlElement.cpp:
* html/HTMLTextFormControlElement.h:
* html/HTMLTimeElement.cpp:
* html/HTMLTimeElement.h:
* html/HTMLTitleElement.cpp:
* html/HTMLTitleElement.h:
* html/HTMLTrackElement.cpp:
* html/HTMLTrackElement.h:
* html/HTMLUListElement.cpp:
* html/HTMLUListElement.h:
* html/HTMLUnknownElement.cpp: Added.
* html/HTMLUnknownElement.h:
* html/HTMLWBRElement.cpp:
* html/HTMLWBRElement.h:
* html/ImageDocument.cpp:
* html/ImageDocument.h:
* html/LabelableElement.cpp:
* html/LabelableElement.h:
* html/MediaController.cpp:
(MediaController::create): Deleted.
(MediaController::MediaController): Deleted.
(MediaController::addMediaElement): Deleted.
(MediaController::removeMediaElement): Deleted.
(MediaController::containsMediaElement const): Deleted.
(MediaController::buffered const): Deleted.
(MediaController::seekable const): Deleted.
(MediaController::played): Deleted.
(MediaController::duration const): Deleted.
(MediaController::currentTime const): Deleted.
(MediaController::setCurrentTime): Deleted.
(MediaController::unpause): Deleted.
(MediaController::play): Deleted.
(MediaController::pause): Deleted.
(MediaController::setDefaultPlaybackRate): Deleted.
(MediaController::playbackRate const): Deleted.
(MediaController::setPlaybackRate): Deleted.
(MediaController::setVolume): Deleted.
(MediaController::setMuted): Deleted.
(playbackStateWaiting): Deleted.
(playbackStatePlaying): Deleted.
(playbackStateEnded): Deleted.
(MediaController::playbackState const): Deleted.
(MediaController::reportControllerState): Deleted.
(eventNameForReadyState): Deleted.
(MediaController::updateReadyState): Deleted.
(MediaController::updatePlaybackState): Deleted.
(MediaController::updateMediaElements): Deleted.
(MediaController::bringElementUpToSpeed): Deleted.
(MediaController::isBlocked const): Deleted.
(MediaController::hasEnded const): Deleted.
(MediaController::scheduleEvent): Deleted.
(MediaController::asyncEventTimerFired): Deleted.
(MediaController::clearPositionTimerFired): Deleted.
(MediaController::hasAudio const): Deleted.
(MediaController::hasVideo const): Deleted.
(MediaController::hasClosedCaptions const): Deleted.
(MediaController::setClosedCaptionsVisible): Deleted.
(MediaController::supportsScanning const): Deleted.
(MediaController::beginScrubbing): Deleted.
(MediaController::endScrubbing): Deleted.
(MediaController::beginScanning): Deleted.
(MediaController::endScanning): Deleted.
(MediaController::canPlay const): Deleted.
(MediaController::isLiveStream const): Deleted.
(MediaController::hasCurrentSrc const): Deleted.
(MediaController::returnToRealtime): Deleted.
(MediaController::startTimeupdateTimer): Deleted.
(MediaController::scheduleTimeupdateEvent): Deleted.
* html/MediaDocument.cpp:
* html/MediaDocument.h:
* html/PluginDocument.cpp:
* html/PluginDocument.h:
* html/RubyElement.cpp:
* html/RubyElement.h:
* html/RubyTextElement.cpp:
* html/RubyTextElement.h:
* html/TextDocument.cpp:
* html/TextDocument.h:
* html/shadow/AutoFillButtonElement.cpp:
* html/shadow/AutoFillButtonElement.h:
* html/shadow/DetailsMarkerControl.cpp:
* html/shadow/DetailsMarkerControl.h:
* html/shadow/ImageControlsRootElement.cpp:
* html/shadow/ImageControlsRootElement.h:
* html/shadow/MediaControlElementTypes.cpp:
* html/shadow/MediaControlElementTypes.h:
* html/shadow/MediaControlElements.cpp:
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.cpp:
* html/shadow/MediaControls.h:
* html/shadow/ProgressShadowElement.cpp:
* html/shadow/ProgressShadowElement.h:
* html/shadow/SliderThumbElement.cpp:
* html/shadow/SliderThumbElement.h:
* html/shadow/SpinButtonElement.cpp:
* html/shadow/SpinButtonElement.h:
* html/shadow/TextControlInnerElements.cpp:
* html/shadow/TextControlInnerElements.h:
* html/shadow/YouTubeEmbedShadowElement.cpp:
* html/shadow/YouTubeEmbedShadowElement.h:
* html/shadow/mac/ImageControlsButtonElementMac.cpp:
* html/shadow/mac/ImageControlsButtonElementMac.h:
* html/shadow/mac/ImageControlsRootElementMac.cpp:
* html/shadow/mac/ImageControlsRootElementMac.h:
* html/track/TextTrackCueGeneric.cpp:
* html/track/VTTCue.cpp:
* html/track/VTTCue.h:
* html/track/WebVTTElement.cpp:
* html/track/WebVTTElement.h:
* loader/SinkDocument.cpp:
* loader/SinkDocument.h:
* mathml/MathMLAnnotationElement.cpp:
* mathml/MathMLAnnotationElement.h:
* mathml/MathMLElement.cpp:
* mathml/MathMLElement.h:
* mathml/MathMLFractionElement.cpp:
* mathml/MathMLFractionElement.h:
* mathml/MathMLMathElement.cpp:
* mathml/MathMLMathElement.h:
* mathml/MathMLMencloseElement.cpp:
* mathml/MathMLMencloseElement.h:
* mathml/MathMLOperatorElement.cpp:
* mathml/MathMLOperatorElement.h:
* mathml/MathMLPaddedElement.cpp:
* mathml/MathMLPaddedElement.h:
* mathml/MathMLPresentationElement.cpp:
* mathml/MathMLPresentationElement.h:
* mathml/MathMLRootElement.cpp:
* mathml/MathMLRootElement.h:
* mathml/MathMLRowElement.cpp:
* mathml/MathMLRowElement.h:
* mathml/MathMLScriptsElement.cpp:
* mathml/MathMLScriptsElement.h:
* mathml/MathMLSelectElement.cpp:
* mathml/MathMLSelectElement.h:
* mathml/MathMLSpaceElement.cpp:
* mathml/MathMLSpaceElement.h:
* mathml/MathMLTokenElement.cpp:
* mathml/MathMLTokenElement.h:
* mathml/MathMLUnderOverElement.cpp:
* mathml/MathMLUnderOverElement.h:
* mathml/MathMLUnknownElement.cpp: Added.
* mathml/MathMLUnknownElement.h:
* svg/SVGAElement.cpp:
* svg/SVGAElement.h:
* svg/SVGAltGlyphDefElement.cpp:
* svg/SVGAltGlyphDefElement.h:
* svg/SVGAltGlyphElement.cpp:
* svg/SVGAltGlyphElement.h:
* svg/SVGAltGlyphItemElement.cpp:
* svg/SVGAltGlyphItemElement.h:
* svg/SVGAnimateColorElement.cpp:
* svg/SVGAnimateColorElement.h:
* svg/SVGAnimateElement.cpp:
* svg/SVGAnimateElement.h:
* svg/SVGAnimateElementBase.cpp:
* svg/SVGAnimateElementBase.h:
* svg/SVGAnimateMotionElement.cpp:
* svg/SVGAnimateMotionElement.h:
* svg/SVGAnimateTransformElement.cpp:
* svg/SVGAnimateTransformElement.h:
* svg/SVGAnimationElement.cpp:
* svg/SVGAnimationElement.h:
* svg/SVGCircleElement.cpp:
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.cpp:
* svg/SVGClipPathElement.h:
* svg/SVGComponentTransferFunctionElement.cpp:
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGCursorElement.cpp:
* svg/SVGCursorElement.h:
* svg/SVGDefsElement.cpp:
* svg/SVGDefsElement.h:
* svg/SVGDescElement.cpp:
* svg/SVGDescElement.h:
* svg/SVGDocument.cpp:
* svg/SVGDocument.h:
* svg/SVGElement.cpp:
* svg/SVGElement.h:
* svg/SVGEllipseElement.cpp:
* svg/SVGEllipseElement.h:
* svg/SVGFEBlendElement.cpp:
* svg/SVGFEBlendElement.h:
* svg/SVGFEColorMatrixElement.cpp:
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEComponentTransferElement.cpp:
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFECompositeElement.cpp:
* svg/SVGFECompositeElement.h:
* svg/SVGFEConvolveMatrixElement.cpp:
* svg/SVGFEConvolveMatrixElement.h:
* svg/SVGFEDiffuseLightingElement.cpp:
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDisplacementMapElement.cpp:
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEDropShadowElement.cpp:
* svg/SVGFEDropShadowElement.h:
* svg/SVGFEFloodElement.cpp:
* svg/SVGFEFloodElement.h:
* svg/SVGFEGaussianBlurElement.cpp:
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEImageElement.cpp:
* svg/SVGFEImageElement.h:
* svg/SVGFELightElement.cpp:
* svg/SVGFELightElement.h:
* svg/SVGFEMergeElement.cpp:
* svg/SVGFEMergeElement.h:
* svg/SVGFEMergeNodeElement.cpp:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMorphologyElement.cpp:
* svg/SVGFEMorphologyElement.h:
* svg/SVGFEOffsetElement.cpp:
* svg/SVGFEOffsetElement.h:
* svg/SVGFESpecularLightingElement.cpp:
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFETileElement.cpp:
* svg/SVGFETileElement.h:
* svg/SVGFETurbulenceElement.cpp:
* svg/SVGFETurbulenceElement.h:
* svg/SVGFilterElement.cpp:
* svg/SVGFilterElement.h:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFontFaceElement.cpp:
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceFormatElement.cpp:
* svg/SVGFontFaceFormatElement.h:
* svg/SVGFontFaceNameElement.cpp:
* svg/SVGFontFaceNameElement.h:
* svg/SVGFontFaceSrcElement.cpp:
* svg/SVGFontFaceSrcElement.h:
* svg/SVGFontFaceUriElement.cpp:
* svg/SVGFontFaceUriElement.h:
* svg/SVGForeignObjectElement.cpp:
* svg/SVGForeignObjectElement.h:
* svg/SVGGElement.cpp:
* svg/SVGGElement.h:
* svg/SVGGlyphElement.cpp:
* svg/SVGGlyphElement.h:
* svg/SVGGlyphRefElement.cpp:
* svg/SVGGlyphRefElement.h:
* svg/SVGGradientElement.cpp:
* svg/SVGGradientElement.h:
* svg/SVGGraphicsElement.cpp:
* svg/SVGGraphicsElement.h:
* svg/SVGHKernElement.cpp:
* svg/SVGHKernElement.h:
* svg/SVGImageElement.cpp:
* svg/SVGImageElement.h:
* svg/SVGLineElement.cpp:
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.cpp:
* svg/SVGLinearGradientElement.h:
* svg/SVGMPathElement.cpp:
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.cpp:
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
* svg/SVGMaskElement.h:
* svg/SVGMetadataElement.cpp:
* svg/SVGMetadataElement.h:
* svg/SVGMissingGlyphElement.cpp:
* svg/SVGMissingGlyphElement.h:
* svg/SVGPathElement.cpp:
* svg/SVGPathElement.h:
* svg/SVGPatternElement.cpp:
* svg/SVGPatternElement.h:
* svg/SVGPolyElement.cpp:
* svg/SVGPolyElement.h:
* svg/SVGPolygonElement.cpp:
* svg/SVGPolygonElement.h:
* svg/SVGPolylineElement.cpp:
* svg/SVGPolylineElement.h:
* svg/SVGRadialGradientElement.cpp:
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.cpp:
* svg/SVGRectElement.h:
* svg/SVGSVGElement.cpp:
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.cpp:
* svg/SVGScriptElement.h:
* svg/SVGSetElement.cpp:
* svg/SVGSetElement.h:
* svg/SVGStopElement.cpp:
* svg/SVGStopElement.h:
* svg/SVGStyleElement.cpp:
* svg/SVGStyleElement.h:
* svg/SVGSwitchElement.cpp:
* svg/SVGSwitchElement.h:
* svg/SVGSymbolElement.cpp:
* svg/SVGSymbolElement.h:
* svg/SVGTRefElement.cpp:
* svg/SVGTRefElement.h:
* svg/SVGTSpanElement.cpp:
* svg/SVGTSpanElement.h:
* svg/SVGTextContentElement.cpp:
* svg/SVGTextContentElement.h:
* svg/SVGTextElement.cpp:
* svg/SVGTextElement.h:
* svg/SVGTextPathElement.cpp:
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.cpp:
* svg/SVGTextPositioningElement.h:
* svg/SVGTitleElement.cpp:
* svg/SVGTitleElement.h:
* svg/SVGUnknownElement.cpp: Added.
* svg/SVGUnknownElement.h:
* svg/SVGUseElement.cpp:
* svg/SVGUseElement.h:
* svg/SVGVKernElement.cpp:
* svg/SVGVKernElement.h:
* svg/SVGViewElement.cpp:
* svg/SVGViewElement.h:
* svg/animation/SVGSMILElement.cpp:
* svg/animation/SVGSMILElement.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229694 268f45cc-cd09-0410-ab3c-d52691b4dbfc

472 files changed:
Source/WebCore/ChangeLog
Source/WebCore/Sources.txt
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/dom/Attr.cpp
Source/WebCore/dom/Attr.h
Source/WebCore/dom/CDATASection.cpp
Source/WebCore/dom/CDATASection.h
Source/WebCore/dom/CharacterData.cpp
Source/WebCore/dom/CharacterData.h
Source/WebCore/dom/Comment.cpp
Source/WebCore/dom/Comment.h
Source/WebCore/dom/ContainerNode.cpp
Source/WebCore/dom/ContainerNode.h
Source/WebCore/dom/Document.cpp
Source/WebCore/dom/Document.h
Source/WebCore/dom/DocumentFragment.cpp
Source/WebCore/dom/DocumentFragment.h
Source/WebCore/dom/DocumentType.cpp
Source/WebCore/dom/DocumentType.h
Source/WebCore/dom/Element.cpp
Source/WebCore/dom/Element.h
Source/WebCore/dom/Node.cpp
Source/WebCore/dom/Node.h
Source/WebCore/dom/ProcessingInstruction.cpp
Source/WebCore/dom/ProcessingInstruction.h
Source/WebCore/dom/PseudoElement.cpp
Source/WebCore/dom/PseudoElement.h
Source/WebCore/dom/ShadowRoot.cpp
Source/WebCore/dom/ShadowRoot.h
Source/WebCore/dom/StyledElement.cpp
Source/WebCore/dom/StyledElement.h
Source/WebCore/dom/TemplateContentDocumentFragment.cpp [new file with mode: 0644]
Source/WebCore/dom/TemplateContentDocumentFragment.h
Source/WebCore/dom/Text.cpp
Source/WebCore/dom/Text.h
Source/WebCore/dom/XMLDocument.cpp [new file with mode: 0644]
Source/WebCore/dom/XMLDocument.h
Source/WebCore/html/FTPDirectoryDocument.cpp
Source/WebCore/html/FTPDirectoryDocument.h
Source/WebCore/html/FileInputType.cpp
Source/WebCore/html/HTMLAnchorElement.cpp
Source/WebCore/html/HTMLAnchorElement.h
Source/WebCore/html/HTMLAppletElement.cpp
Source/WebCore/html/HTMLAppletElement.h
Source/WebCore/html/HTMLAreaElement.cpp
Source/WebCore/html/HTMLAreaElement.h
Source/WebCore/html/HTMLAttachmentElement.cpp
Source/WebCore/html/HTMLAttachmentElement.h
Source/WebCore/html/HTMLAudioElement.cpp
Source/WebCore/html/HTMLAudioElement.h
Source/WebCore/html/HTMLBDIElement.cpp [new file with mode: 0644]
Source/WebCore/html/HTMLBDIElement.h
Source/WebCore/html/HTMLBRElement.cpp
Source/WebCore/html/HTMLBRElement.h
Source/WebCore/html/HTMLBaseElement.cpp
Source/WebCore/html/HTMLBaseElement.h
Source/WebCore/html/HTMLBodyElement.cpp
Source/WebCore/html/HTMLBodyElement.h
Source/WebCore/html/HTMLButtonElement.cpp
Source/WebCore/html/HTMLButtonElement.h
Source/WebCore/html/HTMLCanvasElement.cpp
Source/WebCore/html/HTMLCanvasElement.h
Source/WebCore/html/HTMLDListElement.cpp
Source/WebCore/html/HTMLDListElement.h
Source/WebCore/html/HTMLDataElement.cpp
Source/WebCore/html/HTMLDataElement.h
Source/WebCore/html/HTMLDataListElement.cpp
Source/WebCore/html/HTMLDataListElement.h
Source/WebCore/html/HTMLDetailsElement.cpp
Source/WebCore/html/HTMLDetailsElement.h
Source/WebCore/html/HTMLDirectoryElement.cpp
Source/WebCore/html/HTMLDirectoryElement.h
Source/WebCore/html/HTMLDivElement.cpp
Source/WebCore/html/HTMLDivElement.h
Source/WebCore/html/HTMLDocument.cpp
Source/WebCore/html/HTMLDocument.h
Source/WebCore/html/HTMLElement.cpp
Source/WebCore/html/HTMLElement.h
Source/WebCore/html/HTMLEmbedElement.cpp
Source/WebCore/html/HTMLEmbedElement.h
Source/WebCore/html/HTMLFieldSetElement.cpp
Source/WebCore/html/HTMLFieldSetElement.h
Source/WebCore/html/HTMLFontElement.cpp
Source/WebCore/html/HTMLFontElement.h
Source/WebCore/html/HTMLFormControlElement.cpp
Source/WebCore/html/HTMLFormControlElement.h
Source/WebCore/html/HTMLFormControlElementWithState.cpp
Source/WebCore/html/HTMLFormControlElementWithState.h
Source/WebCore/html/HTMLFormElement.cpp
Source/WebCore/html/HTMLFormElement.h
Source/WebCore/html/HTMLFrameElement.cpp
Source/WebCore/html/HTMLFrameElement.h
Source/WebCore/html/HTMLFrameElementBase.cpp
Source/WebCore/html/HTMLFrameElementBase.h
Source/WebCore/html/HTMLFrameOwnerElement.cpp
Source/WebCore/html/HTMLFrameOwnerElement.h
Source/WebCore/html/HTMLFrameSetElement.cpp
Source/WebCore/html/HTMLFrameSetElement.h
Source/WebCore/html/HTMLHRElement.cpp
Source/WebCore/html/HTMLHRElement.h
Source/WebCore/html/HTMLHeadElement.cpp
Source/WebCore/html/HTMLHeadElement.h
Source/WebCore/html/HTMLHeadingElement.cpp
Source/WebCore/html/HTMLHeadingElement.h
Source/WebCore/html/HTMLHtmlElement.cpp
Source/WebCore/html/HTMLHtmlElement.h
Source/WebCore/html/HTMLIFrameElement.cpp
Source/WebCore/html/HTMLIFrameElement.h
Source/WebCore/html/HTMLImageElement.cpp
Source/WebCore/html/HTMLImageElement.h
Source/WebCore/html/HTMLInputElement.cpp
Source/WebCore/html/HTMLInputElement.h
Source/WebCore/html/HTMLKeygenElement.cpp
Source/WebCore/html/HTMLKeygenElement.h
Source/WebCore/html/HTMLLIElement.cpp
Source/WebCore/html/HTMLLIElement.h
Source/WebCore/html/HTMLLabelElement.cpp
Source/WebCore/html/HTMLLabelElement.h
Source/WebCore/html/HTMLLegendElement.cpp
Source/WebCore/html/HTMLLegendElement.h
Source/WebCore/html/HTMLLinkElement.cpp
Source/WebCore/html/HTMLLinkElement.h
Source/WebCore/html/HTMLMapElement.cpp
Source/WebCore/html/HTMLMapElement.h
Source/WebCore/html/HTMLMarqueeElement.cpp
Source/WebCore/html/HTMLMarqueeElement.h
Source/WebCore/html/HTMLMediaElement.cpp
Source/WebCore/html/HTMLMediaElement.h
Source/WebCore/html/HTMLMenuElement.cpp
Source/WebCore/html/HTMLMenuElement.h
Source/WebCore/html/HTMLMenuItemElement.cpp
Source/WebCore/html/HTMLMenuItemElement.h
Source/WebCore/html/HTMLMetaElement.cpp
Source/WebCore/html/HTMLMetaElement.h
Source/WebCore/html/HTMLMeterElement.cpp
Source/WebCore/html/HTMLMeterElement.h
Source/WebCore/html/HTMLModElement.cpp
Source/WebCore/html/HTMLModElement.h
Source/WebCore/html/HTMLOListElement.cpp
Source/WebCore/html/HTMLOListElement.h
Source/WebCore/html/HTMLObjectElement.cpp
Source/WebCore/html/HTMLObjectElement.h
Source/WebCore/html/HTMLOptGroupElement.cpp
Source/WebCore/html/HTMLOptGroupElement.h
Source/WebCore/html/HTMLOptionElement.cpp
Source/WebCore/html/HTMLOptionElement.h
Source/WebCore/html/HTMLOutputElement.cpp
Source/WebCore/html/HTMLOutputElement.h
Source/WebCore/html/HTMLParagraphElement.cpp
Source/WebCore/html/HTMLParagraphElement.h
Source/WebCore/html/HTMLParamElement.cpp
Source/WebCore/html/HTMLParamElement.h
Source/WebCore/html/HTMLPictureElement.cpp
Source/WebCore/html/HTMLPictureElement.h
Source/WebCore/html/HTMLPlugInElement.cpp
Source/WebCore/html/HTMLPlugInElement.h
Source/WebCore/html/HTMLPlugInImageElement.cpp
Source/WebCore/html/HTMLPlugInImageElement.h
Source/WebCore/html/HTMLPreElement.cpp
Source/WebCore/html/HTMLPreElement.h
Source/WebCore/html/HTMLProgressElement.cpp
Source/WebCore/html/HTMLProgressElement.h
Source/WebCore/html/HTMLQuoteElement.cpp
Source/WebCore/html/HTMLQuoteElement.h
Source/WebCore/html/HTMLScriptElement.cpp
Source/WebCore/html/HTMLScriptElement.h
Source/WebCore/html/HTMLSelectElement.cpp
Source/WebCore/html/HTMLSelectElement.h
Source/WebCore/html/HTMLSlotElement.cpp
Source/WebCore/html/HTMLSlotElement.h
Source/WebCore/html/HTMLSourceElement.cpp
Source/WebCore/html/HTMLSourceElement.h
Source/WebCore/html/HTMLSpanElement.cpp
Source/WebCore/html/HTMLSpanElement.h
Source/WebCore/html/HTMLStyleElement.cpp
Source/WebCore/html/HTMLStyleElement.h
Source/WebCore/html/HTMLSummaryElement.cpp
Source/WebCore/html/HTMLSummaryElement.h
Source/WebCore/html/HTMLTableCaptionElement.cpp
Source/WebCore/html/HTMLTableCaptionElement.h
Source/WebCore/html/HTMLTableCellElement.cpp
Source/WebCore/html/HTMLTableCellElement.h
Source/WebCore/html/HTMLTableColElement.cpp
Source/WebCore/html/HTMLTableColElement.h
Source/WebCore/html/HTMLTableElement.cpp
Source/WebCore/html/HTMLTableElement.h
Source/WebCore/html/HTMLTablePartElement.cpp
Source/WebCore/html/HTMLTablePartElement.h
Source/WebCore/html/HTMLTableRowElement.cpp
Source/WebCore/html/HTMLTableRowElement.h
Source/WebCore/html/HTMLTableSectionElement.cpp
Source/WebCore/html/HTMLTableSectionElement.h
Source/WebCore/html/HTMLTemplateElement.cpp
Source/WebCore/html/HTMLTemplateElement.h
Source/WebCore/html/HTMLTextAreaElement.cpp
Source/WebCore/html/HTMLTextAreaElement.h
Source/WebCore/html/HTMLTextFormControlElement.cpp
Source/WebCore/html/HTMLTextFormControlElement.h
Source/WebCore/html/HTMLTimeElement.cpp
Source/WebCore/html/HTMLTimeElement.h
Source/WebCore/html/HTMLTitleElement.cpp
Source/WebCore/html/HTMLTitleElement.h
Source/WebCore/html/HTMLTrackElement.cpp
Source/WebCore/html/HTMLTrackElement.h
Source/WebCore/html/HTMLUListElement.cpp
Source/WebCore/html/HTMLUListElement.h
Source/WebCore/html/HTMLUnknownElement.cpp [new file with mode: 0644]
Source/WebCore/html/HTMLUnknownElement.h
Source/WebCore/html/HTMLVideoElement.cpp
Source/WebCore/html/HTMLVideoElement.h
Source/WebCore/html/HTMLWBRElement.cpp
Source/WebCore/html/HTMLWBRElement.h
Source/WebCore/html/ImageDocument.cpp
Source/WebCore/html/ImageDocument.h
Source/WebCore/html/LabelableElement.cpp
Source/WebCore/html/LabelableElement.h
Source/WebCore/html/MediaController.cpp
Source/WebCore/html/MediaDocument.cpp
Source/WebCore/html/MediaDocument.h
Source/WebCore/html/PluginDocument.cpp
Source/WebCore/html/PluginDocument.h
Source/WebCore/html/RubyElement.cpp
Source/WebCore/html/RubyElement.h
Source/WebCore/html/RubyTextElement.cpp
Source/WebCore/html/RubyTextElement.h
Source/WebCore/html/TextDocument.cpp
Source/WebCore/html/TextDocument.h
Source/WebCore/html/shadow/AutoFillButtonElement.cpp
Source/WebCore/html/shadow/AutoFillButtonElement.h
Source/WebCore/html/shadow/DetailsMarkerControl.cpp
Source/WebCore/html/shadow/DetailsMarkerControl.h
Source/WebCore/html/shadow/ImageControlsRootElement.cpp
Source/WebCore/html/shadow/ImageControlsRootElement.h
Source/WebCore/html/shadow/MediaControlElementTypes.cpp
Source/WebCore/html/shadow/MediaControlElementTypes.h
Source/WebCore/html/shadow/MediaControlElements.cpp
Source/WebCore/html/shadow/MediaControlElements.h
Source/WebCore/html/shadow/MediaControls.cpp
Source/WebCore/html/shadow/MediaControls.h
Source/WebCore/html/shadow/ProgressShadowElement.cpp
Source/WebCore/html/shadow/ProgressShadowElement.h
Source/WebCore/html/shadow/SliderThumbElement.cpp
Source/WebCore/html/shadow/SliderThumbElement.h
Source/WebCore/html/shadow/SpinButtonElement.cpp
Source/WebCore/html/shadow/SpinButtonElement.h
Source/WebCore/html/shadow/TextControlInnerElements.cpp
Source/WebCore/html/shadow/TextControlInnerElements.h
Source/WebCore/html/shadow/YouTubeEmbedShadowElement.cpp
Source/WebCore/html/shadow/YouTubeEmbedShadowElement.h
Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp
Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h
Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp
Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h
Source/WebCore/html/track/TextTrackCueGeneric.cpp
Source/WebCore/html/track/VTTCue.cpp
Source/WebCore/html/track/VTTCue.h
Source/WebCore/html/track/WebVTTElement.cpp
Source/WebCore/html/track/WebVTTElement.h
Source/WebCore/loader/SinkDocument.cpp
Source/WebCore/loader/SinkDocument.h
Source/WebCore/mathml/MathMLAnnotationElement.cpp
Source/WebCore/mathml/MathMLAnnotationElement.h
Source/WebCore/mathml/MathMLElement.cpp
Source/WebCore/mathml/MathMLElement.h
Source/WebCore/mathml/MathMLFractionElement.cpp
Source/WebCore/mathml/MathMLFractionElement.h
Source/WebCore/mathml/MathMLMathElement.cpp
Source/WebCore/mathml/MathMLMathElement.h
Source/WebCore/mathml/MathMLMencloseElement.cpp
Source/WebCore/mathml/MathMLMencloseElement.h
Source/WebCore/mathml/MathMLOperatorElement.cpp
Source/WebCore/mathml/MathMLOperatorElement.h
Source/WebCore/mathml/MathMLPaddedElement.cpp
Source/WebCore/mathml/MathMLPaddedElement.h
Source/WebCore/mathml/MathMLPresentationElement.cpp
Source/WebCore/mathml/MathMLPresentationElement.h
Source/WebCore/mathml/MathMLRootElement.cpp
Source/WebCore/mathml/MathMLRootElement.h
Source/WebCore/mathml/MathMLRowElement.cpp
Source/WebCore/mathml/MathMLRowElement.h
Source/WebCore/mathml/MathMLScriptsElement.cpp
Source/WebCore/mathml/MathMLScriptsElement.h
Source/WebCore/mathml/MathMLSelectElement.cpp
Source/WebCore/mathml/MathMLSelectElement.h
Source/WebCore/mathml/MathMLSpaceElement.cpp
Source/WebCore/mathml/MathMLSpaceElement.h
Source/WebCore/mathml/MathMLTokenElement.cpp
Source/WebCore/mathml/MathMLTokenElement.h
Source/WebCore/mathml/MathMLUnderOverElement.cpp
Source/WebCore/mathml/MathMLUnderOverElement.h
Source/WebCore/mathml/MathMLUnknownElement.cpp [new file with mode: 0644]
Source/WebCore/mathml/MathMLUnknownElement.h
Source/WebCore/platform/ControlStates.h
Source/WebCore/svg/SVGAElement.cpp
Source/WebCore/svg/SVGAElement.h
Source/WebCore/svg/SVGAltGlyphDefElement.cpp
Source/WebCore/svg/SVGAltGlyphDefElement.h
Source/WebCore/svg/SVGAltGlyphElement.cpp
Source/WebCore/svg/SVGAltGlyphElement.h
Source/WebCore/svg/SVGAltGlyphItemElement.cpp
Source/WebCore/svg/SVGAltGlyphItemElement.h
Source/WebCore/svg/SVGAnimateColorElement.cpp
Source/WebCore/svg/SVGAnimateColorElement.h
Source/WebCore/svg/SVGAnimateElement.cpp
Source/WebCore/svg/SVGAnimateElement.h
Source/WebCore/svg/SVGAnimateElementBase.cpp
Source/WebCore/svg/SVGAnimateElementBase.h
Source/WebCore/svg/SVGAnimateMotionElement.cpp
Source/WebCore/svg/SVGAnimateMotionElement.h
Source/WebCore/svg/SVGAnimateTransformElement.cpp
Source/WebCore/svg/SVGAnimateTransformElement.h
Source/WebCore/svg/SVGAnimationElement.cpp
Source/WebCore/svg/SVGAnimationElement.h
Source/WebCore/svg/SVGCircleElement.cpp
Source/WebCore/svg/SVGCircleElement.h
Source/WebCore/svg/SVGClipPathElement.cpp
Source/WebCore/svg/SVGClipPathElement.h
Source/WebCore/svg/SVGComponentTransferFunctionElement.cpp
Source/WebCore/svg/SVGComponentTransferFunctionElement.h
Source/WebCore/svg/SVGCursorElement.cpp
Source/WebCore/svg/SVGCursorElement.h
Source/WebCore/svg/SVGDefsElement.cpp
Source/WebCore/svg/SVGDefsElement.h
Source/WebCore/svg/SVGDescElement.cpp
Source/WebCore/svg/SVGDescElement.h
Source/WebCore/svg/SVGDocument.cpp
Source/WebCore/svg/SVGDocument.h
Source/WebCore/svg/SVGElement.cpp
Source/WebCore/svg/SVGElement.h
Source/WebCore/svg/SVGEllipseElement.cpp
Source/WebCore/svg/SVGEllipseElement.h
Source/WebCore/svg/SVGFEBlendElement.cpp
Source/WebCore/svg/SVGFEBlendElement.h
Source/WebCore/svg/SVGFEColorMatrixElement.cpp
Source/WebCore/svg/SVGFEColorMatrixElement.h
Source/WebCore/svg/SVGFEComponentTransferElement.cpp
Source/WebCore/svg/SVGFEComponentTransferElement.h
Source/WebCore/svg/SVGFECompositeElement.cpp
Source/WebCore/svg/SVGFECompositeElement.h
Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp
Source/WebCore/svg/SVGFEConvolveMatrixElement.h
Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp
Source/WebCore/svg/SVGFEDiffuseLightingElement.h
Source/WebCore/svg/SVGFEDisplacementMapElement.cpp
Source/WebCore/svg/SVGFEDisplacementMapElement.h
Source/WebCore/svg/SVGFEDropShadowElement.cpp
Source/WebCore/svg/SVGFEDropShadowElement.h
Source/WebCore/svg/SVGFEFloodElement.cpp
Source/WebCore/svg/SVGFEFloodElement.h
Source/WebCore/svg/SVGFEGaussianBlurElement.cpp
Source/WebCore/svg/SVGFEGaussianBlurElement.h
Source/WebCore/svg/SVGFEImageElement.cpp
Source/WebCore/svg/SVGFEImageElement.h
Source/WebCore/svg/SVGFELightElement.cpp
Source/WebCore/svg/SVGFELightElement.h
Source/WebCore/svg/SVGFEMergeElement.cpp
Source/WebCore/svg/SVGFEMergeElement.h
Source/WebCore/svg/SVGFEMergeNodeElement.cpp
Source/WebCore/svg/SVGFEMergeNodeElement.h
Source/WebCore/svg/SVGFEMorphologyElement.cpp
Source/WebCore/svg/SVGFEMorphologyElement.h
Source/WebCore/svg/SVGFEOffsetElement.cpp
Source/WebCore/svg/SVGFEOffsetElement.h
Source/WebCore/svg/SVGFESpecularLightingElement.cpp
Source/WebCore/svg/SVGFESpecularLightingElement.h
Source/WebCore/svg/SVGFETileElement.cpp
Source/WebCore/svg/SVGFETileElement.h
Source/WebCore/svg/SVGFETurbulenceElement.cpp
Source/WebCore/svg/SVGFETurbulenceElement.h
Source/WebCore/svg/SVGFilterElement.cpp
Source/WebCore/svg/SVGFilterElement.h
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
Source/WebCore/svg/SVGFontElement.cpp
Source/WebCore/svg/SVGFontElement.h
Source/WebCore/svg/SVGFontFaceElement.cpp
Source/WebCore/svg/SVGFontFaceElement.h
Source/WebCore/svg/SVGFontFaceFormatElement.cpp
Source/WebCore/svg/SVGFontFaceFormatElement.h
Source/WebCore/svg/SVGFontFaceNameElement.cpp
Source/WebCore/svg/SVGFontFaceNameElement.h
Source/WebCore/svg/SVGFontFaceSrcElement.cpp
Source/WebCore/svg/SVGFontFaceSrcElement.h
Source/WebCore/svg/SVGFontFaceUriElement.cpp
Source/WebCore/svg/SVGFontFaceUriElement.h
Source/WebCore/svg/SVGForeignObjectElement.cpp
Source/WebCore/svg/SVGForeignObjectElement.h
Source/WebCore/svg/SVGGElement.cpp
Source/WebCore/svg/SVGGElement.h
Source/WebCore/svg/SVGGlyphElement.cpp
Source/WebCore/svg/SVGGlyphElement.h
Source/WebCore/svg/SVGGlyphRefElement.cpp
Source/WebCore/svg/SVGGlyphRefElement.h
Source/WebCore/svg/SVGGradientElement.cpp
Source/WebCore/svg/SVGGradientElement.h
Source/WebCore/svg/SVGGraphicsElement.cpp
Source/WebCore/svg/SVGGraphicsElement.h
Source/WebCore/svg/SVGHKernElement.cpp
Source/WebCore/svg/SVGHKernElement.h
Source/WebCore/svg/SVGImageElement.cpp
Source/WebCore/svg/SVGImageElement.h
Source/WebCore/svg/SVGLineElement.cpp
Source/WebCore/svg/SVGLineElement.h
Source/WebCore/svg/SVGLinearGradientElement.cpp
Source/WebCore/svg/SVGLinearGradientElement.h
Source/WebCore/svg/SVGMPathElement.cpp
Source/WebCore/svg/SVGMPathElement.h
Source/WebCore/svg/SVGMarkerElement.cpp
Source/WebCore/svg/SVGMarkerElement.h
Source/WebCore/svg/SVGMaskElement.cpp
Source/WebCore/svg/SVGMaskElement.h
Source/WebCore/svg/SVGMetadataElement.cpp
Source/WebCore/svg/SVGMetadataElement.h
Source/WebCore/svg/SVGMissingGlyphElement.cpp
Source/WebCore/svg/SVGMissingGlyphElement.h
Source/WebCore/svg/SVGPathElement.cpp
Source/WebCore/svg/SVGPathElement.h
Source/WebCore/svg/SVGPatternElement.cpp
Source/WebCore/svg/SVGPatternElement.h
Source/WebCore/svg/SVGPolyElement.cpp
Source/WebCore/svg/SVGPolyElement.h
Source/WebCore/svg/SVGPolygonElement.cpp
Source/WebCore/svg/SVGPolygonElement.h
Source/WebCore/svg/SVGPolylineElement.cpp
Source/WebCore/svg/SVGPolylineElement.h
Source/WebCore/svg/SVGRadialGradientElement.cpp
Source/WebCore/svg/SVGRadialGradientElement.h
Source/WebCore/svg/SVGRectElement.cpp
Source/WebCore/svg/SVGRectElement.h
Source/WebCore/svg/SVGSVGElement.cpp
Source/WebCore/svg/SVGSVGElement.h
Source/WebCore/svg/SVGScriptElement.cpp
Source/WebCore/svg/SVGScriptElement.h
Source/WebCore/svg/SVGSetElement.cpp
Source/WebCore/svg/SVGSetElement.h
Source/WebCore/svg/SVGStopElement.cpp
Source/WebCore/svg/SVGStopElement.h
Source/WebCore/svg/SVGStyleElement.cpp
Source/WebCore/svg/SVGStyleElement.h
Source/WebCore/svg/SVGSwitchElement.cpp
Source/WebCore/svg/SVGSwitchElement.h
Source/WebCore/svg/SVGSymbolElement.cpp
Source/WebCore/svg/SVGSymbolElement.h
Source/WebCore/svg/SVGTRefElement.cpp
Source/WebCore/svg/SVGTRefElement.h
Source/WebCore/svg/SVGTSpanElement.cpp
Source/WebCore/svg/SVGTSpanElement.h
Source/WebCore/svg/SVGTextContentElement.cpp
Source/WebCore/svg/SVGTextContentElement.h
Source/WebCore/svg/SVGTextElement.cpp
Source/WebCore/svg/SVGTextElement.h
Source/WebCore/svg/SVGTextPathElement.cpp
Source/WebCore/svg/SVGTextPathElement.h
Source/WebCore/svg/SVGTextPositioningElement.cpp
Source/WebCore/svg/SVGTextPositioningElement.h
Source/WebCore/svg/SVGTitleElement.cpp
Source/WebCore/svg/SVGTitleElement.h
Source/WebCore/svg/SVGUnknownElement.cpp [new file with mode: 0644]
Source/WebCore/svg/SVGUnknownElement.h
Source/WebCore/svg/SVGUseElement.cpp
Source/WebCore/svg/SVGUseElement.h
Source/WebCore/svg/SVGVKernElement.cpp
Source/WebCore/svg/SVGVKernElement.h
Source/WebCore/svg/SVGViewElement.cpp
Source/WebCore/svg/SVGViewElement.h
Source/WebCore/svg/animation/SVGSMILElement.cpp
Source/WebCore/svg/animation/SVGSMILElement.h
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/Allocator.h
Source/bmalloc/bmalloc/IsoTLS.cpp
Source/bmalloc/bmalloc/IsoTLS.h
Source/bmalloc/bmalloc/IsoTLSInlines.h

index c69ada6..d891b51 100644 (file)
@@ -1,3 +1,525 @@
+2018-03-15  Filip Pizlo  <fpizlo@apple.com>
+
+        Put the DOM in IsoHeaps
+        https://bugs.webkit.org/show_bug.cgi?id=183546
+
+        Reviewed by Daniel Bates.
+
+        No new tests because no change in behavior.
+        
+        This puts all descendants of WebCore::Node in isoheaps, so that UAFs on the DOM cannot be
+        used for RCE attacks. This probably also makes it harder to use UAFs for UXSS, since it means
+        that DOM UAFs cannot be used for universal read gadgets.
+        
+        This looks neutral on Speedometer and membuster, though I did have one round of testing
+        that led me to believe that membuster was regressed - I just wasn't able to reproduce that
+        result on subsequent testing.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/Attr.cpp:
+        * dom/Attr.h:
+        * dom/CDATASection.cpp:
+        * dom/CDATASection.h:
+        * dom/CharacterData.cpp:
+        * dom/CharacterData.h:
+        * dom/Comment.cpp:
+        * dom/Comment.h:
+        * dom/ContainerNode.cpp:
+        * dom/ContainerNode.h:
+        * dom/Document.cpp:
+        * dom/Document.h:
+        * dom/DocumentFragment.cpp:
+        * dom/DocumentFragment.h:
+        * dom/DocumentType.cpp:
+        * dom/DocumentType.h:
+        * dom/Node.cpp:
+        * dom/Node.h:
+        * dom/ProcessingInstruction.cpp:
+        * dom/ProcessingInstruction.h:
+        * dom/PseudoElement.cpp:
+        * dom/PseudoElement.h:
+        * dom/ShadowRoot.cpp:
+        * dom/ShadowRoot.h:
+        * dom/StyledElement.cpp:
+        * dom/StyledElement.h:
+        * dom/TemplateContentDocumentFragment.cpp: Added.
+        * dom/TemplateContentDocumentFragment.h:
+        * dom/Text.cpp:
+        * dom/Text.h:
+        * dom/XMLDocument.cpp: Added.
+        * dom/XMLDocument.h:
+        * html/FTPDirectoryDocument.cpp:
+        * html/FTPDirectoryDocument.h:
+        * html/FileInputType.cpp:
+        * html/HTMLAnchorElement.cpp:
+        * html/HTMLAnchorElement.h:
+        * html/HTMLAppletElement.cpp:
+        * html/HTMLAppletElement.h:
+        * html/HTMLAreaElement.cpp:
+        * html/HTMLAreaElement.h:
+        * html/HTMLAttachmentElement.cpp:
+        * html/HTMLAttachmentElement.h:
+        * html/HTMLBDIElement.cpp: Added.
+        * html/HTMLBDIElement.h:
+        * html/HTMLBRElement.cpp:
+        * html/HTMLBRElement.h:
+        * html/HTMLBaseElement.cpp:
+        * html/HTMLBaseElement.h:
+        * html/HTMLBodyElement.cpp:
+        * html/HTMLBodyElement.h:
+        * html/HTMLButtonElement.cpp:
+        * html/HTMLButtonElement.h:
+        * html/HTMLCanvasElement.cpp:
+        * html/HTMLCanvasElement.h:
+        * html/HTMLDListElement.cpp:
+        * html/HTMLDListElement.h:
+        * html/HTMLDataElement.cpp:
+        * html/HTMLDataElement.h:
+        * html/HTMLDataListElement.cpp:
+        * html/HTMLDataListElement.h:
+        * html/HTMLDetailsElement.cpp:
+        * html/HTMLDetailsElement.h:
+        * html/HTMLDirectoryElement.cpp:
+        * html/HTMLDirectoryElement.h:
+        * html/HTMLDivElement.cpp:
+        * html/HTMLDivElement.h:
+        * html/HTMLDocument.cpp:
+        * html/HTMLDocument.h:
+        * html/HTMLElement.cpp:
+        * html/HTMLElement.h:
+        * html/HTMLEmbedElement.cpp:
+        * html/HTMLEmbedElement.h:
+        * html/HTMLFieldSetElement.cpp:
+        * html/HTMLFieldSetElement.h:
+        * html/HTMLFontElement.cpp:
+        * html/HTMLFontElement.h:
+        * html/HTMLFormControlElement.cpp:
+        * html/HTMLFormControlElement.h:
+        * html/HTMLFormControlElementWithState.cpp:
+        * html/HTMLFormControlElementWithState.h:
+        * html/HTMLFormElement.cpp:
+        * html/HTMLFormElement.h:
+        * html/HTMLFrameElement.cpp:
+        * html/HTMLFrameElement.h:
+        * html/HTMLFrameElementBase.cpp:
+        * html/HTMLFrameElementBase.h:
+        * html/HTMLFrameOwnerElement.cpp:
+        * html/HTMLFrameOwnerElement.h:
+        * html/HTMLFrameSetElement.cpp:
+        * html/HTMLFrameSetElement.h:
+        * html/HTMLHRElement.cpp:
+        * html/HTMLHRElement.h:
+        * html/HTMLHeadElement.cpp:
+        * html/HTMLHeadElement.h:
+        * html/HTMLHeadingElement.cpp:
+        * html/HTMLHeadingElement.h:
+        * html/HTMLHtmlElement.cpp:
+        * html/HTMLHtmlElement.h:
+        * html/HTMLIFrameElement.cpp:
+        * html/HTMLIFrameElement.h:
+        * html/HTMLImageElement.cpp:
+        * html/HTMLImageElement.h:
+        * html/HTMLInputElement.cpp:
+        * html/HTMLInputElement.h:
+        * html/HTMLKeygenElement.cpp:
+        * html/HTMLKeygenElement.h:
+        * html/HTMLLIElement.cpp:
+        * html/HTMLLIElement.h:
+        * html/HTMLLabelElement.cpp:
+        * html/HTMLLabelElement.h:
+        * html/HTMLLegendElement.cpp:
+        * html/HTMLLegendElement.h:
+        * html/HTMLLinkElement.cpp:
+        * html/HTMLLinkElement.h:
+        * html/HTMLMapElement.cpp:
+        * html/HTMLMapElement.h:
+        * html/HTMLMarqueeElement.cpp:
+        * html/HTMLMarqueeElement.h:
+        * html/HTMLMenuElement.cpp:
+        * html/HTMLMenuElement.h:
+        * html/HTMLMenuItemElement.cpp:
+        * html/HTMLMenuItemElement.h:
+        * html/HTMLMetaElement.cpp:
+        * html/HTMLMetaElement.h:
+        * html/HTMLMeterElement.cpp:
+        * html/HTMLMeterElement.h:
+        * html/HTMLModElement.cpp:
+        * html/HTMLModElement.h:
+        * html/HTMLOListElement.cpp:
+        * html/HTMLOListElement.h:
+        * html/HTMLObjectElement.cpp:
+        * html/HTMLObjectElement.h:
+        * html/HTMLOptGroupElement.cpp:
+        * html/HTMLOptGroupElement.h:
+        * html/HTMLOptionElement.cpp:
+        * html/HTMLOptionElement.h:
+        * html/HTMLOutputElement.cpp:
+        * html/HTMLOutputElement.h:
+        * html/HTMLParagraphElement.cpp:
+        * html/HTMLParagraphElement.h:
+        * html/HTMLParamElement.cpp:
+        * html/HTMLParamElement.h:
+        * html/HTMLPictureElement.cpp:
+        * html/HTMLPictureElement.h:
+        * html/HTMLPlugInElement.cpp:
+        * html/HTMLPlugInElement.h:
+        * html/HTMLPlugInImageElement.cpp:
+        * html/HTMLPlugInImageElement.h:
+        * html/HTMLPreElement.cpp:
+        * html/HTMLPreElement.h:
+        * html/HTMLProgressElement.cpp:
+        * html/HTMLProgressElement.h:
+        * html/HTMLQuoteElement.cpp:
+        * html/HTMLQuoteElement.h:
+        * html/HTMLScriptElement.cpp:
+        * html/HTMLScriptElement.h:
+        * html/HTMLSelectElement.cpp:
+        * html/HTMLSelectElement.h:
+        * html/HTMLSlotElement.cpp:
+        * html/HTMLSlotElement.h:
+        * html/HTMLSourceElement.cpp:
+        * html/HTMLSourceElement.h:
+        * html/HTMLSpanElement.cpp:
+        * html/HTMLSpanElement.h:
+        * html/HTMLStyleElement.cpp:
+        * html/HTMLStyleElement.h:
+        * html/HTMLSummaryElement.cpp:
+        * html/HTMLSummaryElement.h:
+        * html/HTMLTableCaptionElement.cpp:
+        * html/HTMLTableCaptionElement.h:
+        * html/HTMLTableCellElement.cpp:
+        * html/HTMLTableCellElement.h:
+        * html/HTMLTableColElement.cpp:
+        * html/HTMLTableColElement.h:
+        * html/HTMLTableElement.cpp:
+        * html/HTMLTableElement.h:
+        * html/HTMLTablePartElement.cpp:
+        * html/HTMLTablePartElement.h:
+        * html/HTMLTableRowElement.cpp:
+        * html/HTMLTableRowElement.h:
+        * html/HTMLTableSectionElement.cpp:
+        * html/HTMLTableSectionElement.h:
+        * html/HTMLTemplateElement.cpp:
+        * html/HTMLTemplateElement.h:
+        * html/HTMLTextAreaElement.cpp:
+        * html/HTMLTextAreaElement.h:
+        * html/HTMLTextFormControlElement.cpp:
+        * html/HTMLTextFormControlElement.h:
+        * html/HTMLTimeElement.cpp:
+        * html/HTMLTimeElement.h:
+        * html/HTMLTitleElement.cpp:
+        * html/HTMLTitleElement.h:
+        * html/HTMLTrackElement.cpp:
+        * html/HTMLTrackElement.h:
+        * html/HTMLUListElement.cpp:
+        * html/HTMLUListElement.h:
+        * html/HTMLUnknownElement.cpp: Added.
+        * html/HTMLUnknownElement.h:
+        * html/HTMLWBRElement.cpp:
+        * html/HTMLWBRElement.h:
+        * html/ImageDocument.cpp:
+        * html/ImageDocument.h:
+        * html/LabelableElement.cpp:
+        * html/LabelableElement.h:
+        * html/MediaController.cpp:
+        (MediaController::create): Deleted.
+        (MediaController::MediaController): Deleted.
+        (MediaController::addMediaElement): Deleted.
+        (MediaController::removeMediaElement): Deleted.
+        (MediaController::containsMediaElement const): Deleted.
+        (MediaController::buffered const): Deleted.
+        (MediaController::seekable const): Deleted.
+        (MediaController::played): Deleted.
+        (MediaController::duration const): Deleted.
+        (MediaController::currentTime const): Deleted.
+        (MediaController::setCurrentTime): Deleted.
+        (MediaController::unpause): Deleted.
+        (MediaController::play): Deleted.
+        (MediaController::pause): Deleted.
+        (MediaController::setDefaultPlaybackRate): Deleted.
+        (MediaController::playbackRate const): Deleted.
+        (MediaController::setPlaybackRate): Deleted.
+        (MediaController::setVolume): Deleted.
+        (MediaController::setMuted): Deleted.
+        (playbackStateWaiting): Deleted.
+        (playbackStatePlaying): Deleted.
+        (playbackStateEnded): Deleted.
+        (MediaController::playbackState const): Deleted.
+        (MediaController::reportControllerState): Deleted.
+        (eventNameForReadyState): Deleted.
+        (MediaController::updateReadyState): Deleted.
+        (MediaController::updatePlaybackState): Deleted.
+        (MediaController::updateMediaElements): Deleted.
+        (MediaController::bringElementUpToSpeed): Deleted.
+        (MediaController::isBlocked const): Deleted.
+        (MediaController::hasEnded const): Deleted.
+        (MediaController::scheduleEvent): Deleted.
+        (MediaController::asyncEventTimerFired): Deleted.
+        (MediaController::clearPositionTimerFired): Deleted.
+        (MediaController::hasAudio const): Deleted.
+        (MediaController::hasVideo const): Deleted.
+        (MediaController::hasClosedCaptions const): Deleted.
+        (MediaController::setClosedCaptionsVisible): Deleted.
+        (MediaController::supportsScanning const): Deleted.
+        (MediaController::beginScrubbing): Deleted.
+        (MediaController::endScrubbing): Deleted.
+        (MediaController::beginScanning): Deleted.
+        (MediaController::endScanning): Deleted.
+        (MediaController::canPlay const): Deleted.
+        (MediaController::isLiveStream const): Deleted.
+        (MediaController::hasCurrentSrc const): Deleted.
+        (MediaController::returnToRealtime): Deleted.
+        (MediaController::startTimeupdateTimer): Deleted.
+        (MediaController::scheduleTimeupdateEvent): Deleted.
+        * html/MediaDocument.cpp:
+        * html/MediaDocument.h:
+        * html/PluginDocument.cpp:
+        * html/PluginDocument.h:
+        * html/RubyElement.cpp:
+        * html/RubyElement.h:
+        * html/RubyTextElement.cpp:
+        * html/RubyTextElement.h:
+        * html/TextDocument.cpp:
+        * html/TextDocument.h:
+        * html/shadow/AutoFillButtonElement.cpp:
+        * html/shadow/AutoFillButtonElement.h:
+        * html/shadow/DetailsMarkerControl.cpp:
+        * html/shadow/DetailsMarkerControl.h:
+        * html/shadow/ImageControlsRootElement.cpp:
+        * html/shadow/ImageControlsRootElement.h:
+        * html/shadow/MediaControlElementTypes.cpp:
+        * html/shadow/MediaControlElementTypes.h:
+        * html/shadow/MediaControlElements.cpp:
+        * html/shadow/MediaControlElements.h:
+        * html/shadow/MediaControls.cpp:
+        * html/shadow/MediaControls.h:
+        * html/shadow/ProgressShadowElement.cpp:
+        * html/shadow/ProgressShadowElement.h:
+        * html/shadow/SliderThumbElement.cpp:
+        * html/shadow/SliderThumbElement.h:
+        * html/shadow/SpinButtonElement.cpp:
+        * html/shadow/SpinButtonElement.h:
+        * html/shadow/TextControlInnerElements.cpp:
+        * html/shadow/TextControlInnerElements.h:
+        * html/shadow/YouTubeEmbedShadowElement.cpp:
+        * html/shadow/YouTubeEmbedShadowElement.h:
+        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
+        * html/shadow/mac/ImageControlsButtonElementMac.h:
+        * html/shadow/mac/ImageControlsRootElementMac.cpp:
+        * html/shadow/mac/ImageControlsRootElementMac.h:
+        * html/track/TextTrackCueGeneric.cpp:
+        * html/track/VTTCue.cpp:
+        * html/track/VTTCue.h:
+        * html/track/WebVTTElement.cpp:
+        * html/track/WebVTTElement.h:
+        * loader/SinkDocument.cpp:
+        * loader/SinkDocument.h:
+        * mathml/MathMLAnnotationElement.cpp:
+        * mathml/MathMLAnnotationElement.h:
+        * mathml/MathMLElement.cpp:
+        * mathml/MathMLElement.h:
+        * mathml/MathMLFractionElement.cpp:
+        * mathml/MathMLFractionElement.h:
+        * mathml/MathMLMathElement.cpp:
+        * mathml/MathMLMathElement.h:
+        * mathml/MathMLMencloseElement.cpp:
+        * mathml/MathMLMencloseElement.h:
+        * mathml/MathMLOperatorElement.cpp:
+        * mathml/MathMLOperatorElement.h:
+        * mathml/MathMLPaddedElement.cpp:
+        * mathml/MathMLPaddedElement.h:
+        * mathml/MathMLPresentationElement.cpp:
+        * mathml/MathMLPresentationElement.h:
+        * mathml/MathMLRootElement.cpp:
+        * mathml/MathMLRootElement.h:
+        * mathml/MathMLRowElement.cpp:
+        * mathml/MathMLRowElement.h:
+        * mathml/MathMLScriptsElement.cpp:
+        * mathml/MathMLScriptsElement.h:
+        * mathml/MathMLSelectElement.cpp:
+        * mathml/MathMLSelectElement.h:
+        * mathml/MathMLSpaceElement.cpp:
+        * mathml/MathMLSpaceElement.h:
+        * mathml/MathMLTokenElement.cpp:
+        * mathml/MathMLTokenElement.h:
+        * mathml/MathMLUnderOverElement.cpp:
+        * mathml/MathMLUnderOverElement.h:
+        * mathml/MathMLUnknownElement.cpp: Added.
+        * mathml/MathMLUnknownElement.h:
+        * svg/SVGAElement.cpp:
+        * svg/SVGAElement.h:
+        * svg/SVGAltGlyphDefElement.cpp:
+        * svg/SVGAltGlyphDefElement.h:
+        * svg/SVGAltGlyphElement.cpp:
+        * svg/SVGAltGlyphElement.h:
+        * svg/SVGAltGlyphItemElement.cpp:
+        * svg/SVGAltGlyphItemElement.h:
+        * svg/SVGAnimateColorElement.cpp:
+        * svg/SVGAnimateColorElement.h:
+        * svg/SVGAnimateElement.cpp:
+        * svg/SVGAnimateElement.h:
+        * svg/SVGAnimateElementBase.cpp:
+        * svg/SVGAnimateElementBase.h:
+        * svg/SVGAnimateMotionElement.cpp:
+        * svg/SVGAnimateMotionElement.h:
+        * svg/SVGAnimateTransformElement.cpp:
+        * svg/SVGAnimateTransformElement.h:
+        * svg/SVGAnimationElement.cpp:
+        * svg/SVGAnimationElement.h:
+        * svg/SVGCircleElement.cpp:
+        * svg/SVGCircleElement.h:
+        * svg/SVGClipPathElement.cpp:
+        * svg/SVGClipPathElement.h:
+        * svg/SVGComponentTransferFunctionElement.cpp:
+        * svg/SVGComponentTransferFunctionElement.h:
+        * svg/SVGCursorElement.cpp:
+        * svg/SVGCursorElement.h:
+        * svg/SVGDefsElement.cpp:
+        * svg/SVGDefsElement.h:
+        * svg/SVGDescElement.cpp:
+        * svg/SVGDescElement.h:
+        * svg/SVGDocument.cpp:
+        * svg/SVGDocument.h:
+        * svg/SVGElement.cpp:
+        * svg/SVGElement.h:
+        * svg/SVGEllipseElement.cpp:
+        * svg/SVGEllipseElement.h:
+        * svg/SVGFEBlendElement.cpp:
+        * svg/SVGFEBlendElement.h:
+        * svg/SVGFEColorMatrixElement.cpp:
+        * svg/SVGFEColorMatrixElement.h:
+        * svg/SVGFEComponentTransferElement.cpp:
+        * svg/SVGFEComponentTransferElement.h:
+        * svg/SVGFECompositeElement.cpp:
+        * svg/SVGFECompositeElement.h:
+        * svg/SVGFEConvolveMatrixElement.cpp:
+        * svg/SVGFEConvolveMatrixElement.h:
+        * svg/SVGFEDiffuseLightingElement.cpp:
+        * svg/SVGFEDiffuseLightingElement.h:
+        * svg/SVGFEDisplacementMapElement.cpp:
+        * svg/SVGFEDisplacementMapElement.h:
+        * svg/SVGFEDropShadowElement.cpp:
+        * svg/SVGFEDropShadowElement.h:
+        * svg/SVGFEFloodElement.cpp:
+        * svg/SVGFEFloodElement.h:
+        * svg/SVGFEGaussianBlurElement.cpp:
+        * svg/SVGFEGaussianBlurElement.h:
+        * svg/SVGFEImageElement.cpp:
+        * svg/SVGFEImageElement.h:
+        * svg/SVGFELightElement.cpp:
+        * svg/SVGFELightElement.h:
+        * svg/SVGFEMergeElement.cpp:
+        * svg/SVGFEMergeElement.h:
+        * svg/SVGFEMergeNodeElement.cpp:
+        * svg/SVGFEMergeNodeElement.h:
+        * svg/SVGFEMorphologyElement.cpp:
+        * svg/SVGFEMorphologyElement.h:
+        * svg/SVGFEOffsetElement.cpp:
+        * svg/SVGFEOffsetElement.h:
+        * svg/SVGFESpecularLightingElement.cpp:
+        * svg/SVGFESpecularLightingElement.h:
+        * svg/SVGFETileElement.cpp:
+        * svg/SVGFETileElement.h:
+        * svg/SVGFETurbulenceElement.cpp:
+        * svg/SVGFETurbulenceElement.h:
+        * svg/SVGFilterElement.cpp:
+        * svg/SVGFilterElement.h:
+        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+        * svg/SVGFilterPrimitiveStandardAttributes.h:
+        * svg/SVGFontFaceElement.cpp:
+        * svg/SVGFontFaceElement.h:
+        * svg/SVGFontFaceFormatElement.cpp:
+        * svg/SVGFontFaceFormatElement.h:
+        * svg/SVGFontFaceNameElement.cpp:
+        * svg/SVGFontFaceNameElement.h:
+        * svg/SVGFontFaceSrcElement.cpp:
+        * svg/SVGFontFaceSrcElement.h:
+        * svg/SVGFontFaceUriElement.cpp:
+        * svg/SVGFontFaceUriElement.h:
+        * svg/SVGForeignObjectElement.cpp:
+        * svg/SVGForeignObjectElement.h:
+        * svg/SVGGElement.cpp:
+        * svg/SVGGElement.h:
+        * svg/SVGGlyphElement.cpp:
+        * svg/SVGGlyphElement.h:
+        * svg/SVGGlyphRefElement.cpp:
+        * svg/SVGGlyphRefElement.h:
+        * svg/SVGGradientElement.cpp:
+        * svg/SVGGradientElement.h:
+        * svg/SVGGraphicsElement.cpp:
+        * svg/SVGGraphicsElement.h:
+        * svg/SVGHKernElement.cpp:
+        * svg/SVGHKernElement.h:
+        * svg/SVGImageElement.cpp:
+        * svg/SVGImageElement.h:
+        * svg/SVGLineElement.cpp:
+        * svg/SVGLineElement.h:
+        * svg/SVGLinearGradientElement.cpp:
+        * svg/SVGLinearGradientElement.h:
+        * svg/SVGMPathElement.cpp:
+        * svg/SVGMPathElement.h:
+        * svg/SVGMarkerElement.cpp:
+        * svg/SVGMarkerElement.h:
+        * svg/SVGMaskElement.cpp:
+        * svg/SVGMaskElement.h:
+        * svg/SVGMetadataElement.cpp:
+        * svg/SVGMetadataElement.h:
+        * svg/SVGMissingGlyphElement.cpp:
+        * svg/SVGMissingGlyphElement.h:
+        * svg/SVGPathElement.cpp:
+        * svg/SVGPathElement.h:
+        * svg/SVGPatternElement.cpp:
+        * svg/SVGPatternElement.h:
+        * svg/SVGPolyElement.cpp:
+        * svg/SVGPolyElement.h:
+        * svg/SVGPolygonElement.cpp:
+        * svg/SVGPolygonElement.h:
+        * svg/SVGPolylineElement.cpp:
+        * svg/SVGPolylineElement.h:
+        * svg/SVGRadialGradientElement.cpp:
+        * svg/SVGRadialGradientElement.h:
+        * svg/SVGRectElement.cpp:
+        * svg/SVGRectElement.h:
+        * svg/SVGSVGElement.cpp:
+        * svg/SVGSVGElement.h:
+        * svg/SVGScriptElement.cpp:
+        * svg/SVGScriptElement.h:
+        * svg/SVGSetElement.cpp:
+        * svg/SVGSetElement.h:
+        * svg/SVGStopElement.cpp:
+        * svg/SVGStopElement.h:
+        * svg/SVGStyleElement.cpp:
+        * svg/SVGStyleElement.h:
+        * svg/SVGSwitchElement.cpp:
+        * svg/SVGSwitchElement.h:
+        * svg/SVGSymbolElement.cpp:
+        * svg/SVGSymbolElement.h:
+        * svg/SVGTRefElement.cpp:
+        * svg/SVGTRefElement.h:
+        * svg/SVGTSpanElement.cpp:
+        * svg/SVGTSpanElement.h:
+        * svg/SVGTextContentElement.cpp:
+        * svg/SVGTextContentElement.h:
+        * svg/SVGTextElement.cpp:
+        * svg/SVGTextElement.h:
+        * svg/SVGTextPathElement.cpp:
+        * svg/SVGTextPathElement.h:
+        * svg/SVGTextPositioningElement.cpp:
+        * svg/SVGTextPositioningElement.h:
+        * svg/SVGTitleElement.cpp:
+        * svg/SVGTitleElement.h:
+        * svg/SVGUnknownElement.cpp: Added.
+        * svg/SVGUnknownElement.h:
+        * svg/SVGUseElement.cpp:
+        * svg/SVGUseElement.h:
+        * svg/SVGVKernElement.cpp:
+        * svg/SVGVKernElement.h:
+        * svg/SVGViewElement.cpp:
+        * svg/SVGViewElement.h:
+        * svg/animation/SVGSMILElement.cpp:
+        * svg/animation/SVGSMILElement.h:
+
 2018-03-16  Youenn Fablet  <youenn@apple.com>
 
         Ensure Document::responseReceived and clearResource are called on the main thread
index 35ac620..02da4cb 100644 (file)
@@ -809,6 +809,7 @@ dom/StaticRange.cpp
 dom/StringCallback.cpp
 dom/StyledElement.cpp
 dom/TagCollection.cpp
+dom/TemplateContentDocumentFragment.cpp
 dom/Text.cpp
 dom/TextDecoder.cpp
 dom/TextEncoder.cpp
@@ -832,6 +833,7 @@ dom/VisitedLinkState.cpp
 dom/WebKitAnimationEvent.cpp
 dom/WebKitTransitionEvent.cpp
 dom/WheelEvent.cpp
+dom/XMLDocument.cpp
 
 dom/messageports/MessagePortChannel.cpp
 dom/messageports/MessagePortChannelProvider.cpp
@@ -953,6 +955,7 @@ html/HTMLAppletElement.cpp
 html/HTMLAreaElement.cpp
 html/HTMLAttachmentElement.cpp
 html/HTMLAudioElement.cpp
+html/HTMLBDIElement.cpp
 html/HTMLBRElement.cpp
 html/HTMLBaseElement.cpp
 html/HTMLBodyElement.cpp
@@ -1036,6 +1039,7 @@ html/HTMLTimeElement.cpp
 html/HTMLTitleElement.cpp
 html/HTMLTrackElement.cpp
 html/HTMLUListElement.cpp
+html/HTMLUnknownElement.cpp
 html/HTMLVideoElement.cpp
 html/HTMLWBRElement.cpp
 html/HiddenInputType.cpp
@@ -1304,6 +1308,7 @@ mathml/MathMLSelectElement.cpp
 mathml/MathMLSpaceElement.cpp
 mathml/MathMLTokenElement.cpp
 mathml/MathMLUnderOverElement.cpp
+mathml/MathMLUnknownElement.cpp
 
 page/AutoscrollController.cpp
 page/BarProp.cpp
@@ -2200,6 +2205,7 @@ svg/SVGTransformListValues.cpp
 svg/SVGTransformValue.cpp
 svg/SVGTransformable.cpp
 svg/SVGURIReference.cpp
+svg/SVGUnknownElement.cpp
 svg/SVGUseElement.cpp
 svg/SVGVKernElement.cpp
 svg/SVGViewElement.cpp
index 620f6f2..47ee189 100644 (file)
                0F15ED5A1B7EC7C500EDDFEB /* WillChangeData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WillChangeData.h; sourceTree = "<group>"; };
                0F17747E1378B771009DA76A /* ScrollAnimatorIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollAnimatorIOS.h; sourceTree = "<group>"; };
                0F17747F1378B772009DA76A /* ScrollAnimatorIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollAnimatorIOS.mm; sourceTree = "<group>"; };
+               0F26A7A72054C2270090A141 /* TemplateContentDocumentFragment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TemplateContentDocumentFragment.cpp; sourceTree = "<group>"; };
+               0F26A7A92054C3CF0090A141 /* HTMLBDIElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLBDIElement.cpp; sourceTree = "<group>"; };
+               0F26A7AA2054EC5A0090A141 /* HTMLUnknownElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLUnknownElement.cpp; sourceTree = "<group>"; };
+               0F26A7AB2054FCE10090A141 /* MathMLUnknownElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLUnknownElement.cpp; sourceTree = "<group>"; };
+               0F26A7AC2055C8D70090A141 /* XMLDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XMLDocument.cpp; sourceTree = "<group>"; };
+               0F26A7AD205626100090A141 /* SVGUnknownElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGUnknownElement.cpp; sourceTree = "<group>"; };
                0F36E7361BD1837A002DB891 /* LayoutPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LayoutPoint.cpp; sourceTree = "<group>"; };
                0F36E7381BD184B9002DB891 /* LayoutSize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LayoutSize.cpp; sourceTree = "<group>"; };
                0F3DD44D12F5EA1B000D9190 /* ShadowBlur.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShadowBlur.cpp; sourceTree = "<group>"; };
                                A871DC1E0A15205700B12A68 /* HTMLBaseElement.cpp */,
                                A871DC130A15205700B12A68 /* HTMLBaseElement.h */,
                                A80E7AAF0A19D1F1007FB8C5 /* HTMLBaseElement.idl */,
+                               0F26A7A92054C3CF0090A141 /* HTMLBDIElement.cpp */,
                                9B24DE8C15194B9500C59C27 /* HTMLBDIElement.h */,
                                A871DE1D0A152AC800B12A68 /* HTMLBodyElement.cpp */,
                                A871DE200A152AC800B12A68 /* HTMLBodyElement.h */,
                                A8EA79E70A1916DF00A8EF5F /* HTMLUListElement.cpp */,
                                A8EA79E60A1916DF00A8EF5F /* HTMLUListElement.h */,
                                1A85B1D50A1B236C00D8C87C /* HTMLUListElement.idl */,
+                               0F26A7AA2054EC5A0090A141 /* HTMLUnknownElement.cpp */,
                                AD49914118F0815100BF0092 /* HTMLUnknownElement.h */,
                                AD49914218F0815100BF0092 /* HTMLUnknownElement.idl */,
                                E44613980CD6331000FADA75 /* HTMLVideoElement.cpp */,
                                B22279500D00BF210071B782 /* SVGTSpanElement.idl */,
                                B22279510D00BF210071B782 /* SVGUnitTypes.h */,
                                B22279520D00BF210071B782 /* SVGUnitTypes.idl */,
+                               0F26A7AD205626100090A141 /* SVGUnknownElement.cpp */,
                                37C738EC1EDBD5B7003F2B0B /* SVGUnknownElement.h */,
                                B22279530D00BF210071B782 /* SVGURIReference.cpp */,
                                B22279540D00BF210071B782 /* SVGURIReference.h */,
                                C99058121E32B7340073BDDA /* SuccessOr.h */,
                                463EB6201B8789CB0096ED51 /* TagCollection.cpp */,
                                463EB6211B8789CB0096ED51 /* TagCollection.h */,
+                               0F26A7A72054C2270090A141 /* TemplateContentDocumentFragment.cpp */,
                                C65046A8167BFB5500CC2A4D /* TemplateContentDocumentFragment.h */,
                                6550B69B099DF0270090D781 /* Text.cpp */,
                                6550B69C099DF0270090D781 /* Text.h */,
                                85031B3A0A44EFC700F992E0 /* WheelEvent.cpp */,
                                85031B3B0A44EFC700F992E0 /* WheelEvent.h */,
                                93EEC1F709C2877700C515D1 /* WheelEvent.idl */,
+                               0F26A7AC2055C8D70090A141 /* XMLDocument.cpp */,
                                830784B11C52EE1900104D1D /* XMLDocument.h */,
                                830784B01C52EE1900104D1D /* XMLDocument.idl */,
                        );
                                FA654A6A1108ABED002615E0 /* MathMLTokenElement.h */,
                                FA654A691108ABED002626F1 /* MathMLUnderOverElement.cpp */,
                                FA654A6A1108ABED002626F1 /* MathMLUnderOverElement.h */,
+                               0F26A7AB2054FCE10090A141 /* MathMLUnknownElement.cpp */,
                                37C738EE1EDBD718003F2B0B /* MathMLUnknownElement.h */,
                                FABE72F31059C1EB00D999DD /* mathtags.in */,
                        );
index f7583f5..deb95cc 100644 (file)
 #include "StyledElement.h"
 #include "TextNodeTraversal.h"
 #include "XMLNSNames.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/AtomicString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Attr);
+
 using namespace HTMLNames;
 
 Attr::Attr(Element& element, const QualifiedName& name)
index bed20de..7ee0a0b 100644 (file)
@@ -34,6 +34,7 @@ class CSSStyleDeclaration;
 class MutableStyleProperties;
 
 class Attr final : public Node {
+    WTF_MAKE_ISO_ALLOCATED(Attr);
 public:
     static Ref<Attr> create(Element&, const QualifiedName&);
     static Ref<Attr> create(Document&, const QualifiedName&, const AtomicString& value);
index 598530f..b443df6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "CDATASection.h"
 
 #include "Document.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(CDATASection);
+
 inline CDATASection::CDATASection(Document& document, const String& data)
     : Text(document, data, CreateText)
 {
index bdb9db7..d9405ca 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class CDATASection final : public Text {
+    WTF_MAKE_ISO_ALLOCATED(CDATASection);
 public:
     static Ref<CDATASection> create(Document&, const String&);
 
index c3f4b09..43aeb39 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "RenderText.h"
 #include "StyleInheritedData.h"
 #include <unicode/ubrk.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(CharacterData);
+
 static bool canUseSetDataOptimization(const CharacterData& node)
 {
     auto& document = node.document();
index 1bb1bbe..d9e9605 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class CharacterData : public Node {
+    WTF_MAKE_ISO_ALLOCATED(CharacterData);
 public:
     const String& data() const { return m_data; }
     static ptrdiff_t dataMemoryOffset() { return OBJECT_OFFSETOF(CharacterData, m_data); }
index 7314368..ef0ae33 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "Comment.h"
 
 #include "Document.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Comment);
+
 inline Comment::Comment(Document& document, const String& text)
     : CharacterData(document, text, CreateOther)
 {
index fe7d348..d4c1e95 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class Comment final : public CharacterData {
+    WTF_MAKE_ISO_ALLOCATED(Comment);
 public:
     static Ref<Comment> create(Document&, const String&);
 
index c4827ff..0a5f4da 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
  *           (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2004-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "SelectorQuery.h"
 #include "TemplateContentDocumentFragment.h"
 #include <algorithm>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Variant.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ContainerNode);
+
 static void dispatchChildInsertionEvents(Node&);
 static void dispatchChildRemovalEvents(Ref<Node>&);
 
index f1644ac..65a6896 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
  *           (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2004-2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2004-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -36,6 +36,7 @@ const int initialNodeVectorSize = 11; // Covers 99.5%. See webkit.org/b/80706
 typedef Vector<Ref<Node>, initialNodeVectorSize> NodeVector;
 
 class ContainerNode : public Node {
+    WTF_MAKE_ISO_ALLOCATED(ContainerNode);
 public:
     virtual ~ContainerNode();
 
index 9c691fa..7fde9c1 100644 (file)
 #include <JavaScriptCore/ScriptCallStack.h>
 #include <JavaScriptCore/VM.h>
 #include <ctime>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Language.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/SetForScope.h>
 
 
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(Document);
+
 using namespace PAL;
 using namespace WTF;
 using namespace Unicode;
index 4824793..f004c89 100644 (file)
@@ -319,6 +319,7 @@ class Document
     , public FrameDestructionObserver
     , public Supplementable<Document>
     , public Logger::Observer {
+    WTF_MAKE_ISO_ALLOCATED(Document);
 public:
     static Ref<Document> create(Frame* frame, const URL& url)
     {
index 5c9351d..12cd2e9 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
  *           (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2004-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "HTMLDocumentParser.h"
 #include "Page.h"
 #include "XMLDocumentParser.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DocumentFragment);
+
 DocumentFragment::DocumentFragment(Document& document, ConstructionType constructionType)
     : ContainerNode(document, constructionType)
 {
index 9d00c6c..d1c9322 100644 (file)
@@ -29,6 +29,7 @@
 namespace WebCore {
 
 class DocumentFragment : public ContainerNode {
+    WTF_MAKE_ISO_ALLOCATED(DocumentFragment);
 public:
     static Ref<DocumentFragment> create(Document&);
 
index 1394ecf..aa36956 100644 (file)
 
 #include "Document.h"
 #include "NamedNodeMap.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(DocumentType);
+
 DocumentType::DocumentType(Document& document, const String& name, const String& publicId, const String& systemId)
     : Node(document, CreateOther)
     , m_name(name)
index 6492837..7193b60 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class NamedNodeMap;
 
 class DocumentType final : public Node {
+    WTF_MAKE_ISO_ALLOCATED(DocumentType);
 public:
     static Ref<DocumentType> create(Document& document, const String& name, const String& publicId, const String& systemId)
     {
index 5768c46..177a503 100644 (file)
 #include "XMLNSNames.h"
 #include "XMLNames.h"
 #include "markup.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Element);
+
 using namespace HTMLNames;
 using namespace XMLNames;
 
index aa17815..5ed23e0 100644 (file)
@@ -69,6 +69,7 @@ enum class SelectionRevealMode {
 };
 
 class Element : public ContainerNode {
+    WTF_MAKE_ISO_ALLOCATED(Element);
 public:
     static Ref<Element> create(const QualifiedName&, Document&);
     virtual ~Element();
index 2d899e7..5fc4cb1 100644 (file)
@@ -71,6 +71,7 @@
 #include "WheelEvent.h"
 #include "XMLNSNames.h"
 #include "XMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/RefCountedLeakCounter.h>
 #include <wtf/SHA1.h>
 #include <wtf/Variant.h>
@@ -79,6 +80,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Node);
+
 using namespace HTMLNames;
 
 #if DUMP_NODE_STATISTICS
index acee486..7488f5d 100644 (file)
@@ -33,6 +33,7 @@
 #include "TreeScope.h"
 #include "URLHash.h"
 #include <wtf/Forward.h>
+#include <wtf/IsoMalloc.h>
 #include <wtf/ListHashSet.h>
 #include <wtf/MainThread.h>
 
@@ -78,7 +79,7 @@ private:
 };
 
 class Node : public EventTarget {
-    WTF_MAKE_FAST_ALLOCATED;
+    WTF_MAKE_ISO_ALLOCATED(Node);
 
     friend class Document;
     friend class TreeScope;
index 4a738a1..398b3f9 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2000 Peter Kelly (pmk@post.com)
- * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2006-2018 Apple Inc. All rights reserved.
  * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
 #include "StyleSheetContents.h"
 #include "XMLDocumentParser.h"
 #include "XSLStyleSheet.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/SetForScope.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ProcessingInstruction);
+
 inline ProcessingInstruction::ProcessingInstruction(Document& document, const String& target, const String& data)
     : CharacterData(document, data, CreateOther)
     , m_target(target)
index c4b7cf2..54dcf75 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2000 Peter Kelly (pmk@post.com)
- * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2006-2018 Apple Inc. All rights reserved.
  * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
@@ -32,6 +32,7 @@ class StyleSheet;
 class CSSStyleSheet;
 
 class ProcessingInstruction final : public CharacterData, private CachedStyleSheetClient {
+    WTF_MAKE_ISO_ALLOCATED(ProcessingInstruction);
 public:
     static Ref<ProcessingInstruction> create(Document&, const String& target, const String& data);
     virtual ~ProcessingInstruction();
index 2a59b71..fc13860 100644 (file)
 #include "RenderImage.h"
 #include "RenderQuote.h"
 #include "StyleResolver.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(PseudoElement);
+
 const QualifiedName& pseudoElementTagName()
 {
     static NeverDestroyed<QualifiedName> name(nullAtom(), "<pseudo>", nullAtom());
index 280950c..2fad31d 100644 (file)
@@ -32,6 +32,7 @@
 namespace WebCore {
 
 class PseudoElement final : public Element {
+    WTF_MAKE_ISO_ALLOCATED(PseudoElement);
 public:
     static Ref<PseudoElement> create(Element& host, PseudoId);
     virtual ~PseudoElement();
index dec7988..a019f1b 100644 (file)
 #include "StyleResolver.h"
 #include "StyleScope.h"
 #include "markup.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(ShadowRoot);
+
 struct SameSizeAsShadowRoot : public DocumentFragment, public TreeScope {
     unsigned countersAndFlags[1];
     void* styleScope;
index 1bf896b..42530df 100644 (file)
@@ -37,6 +37,7 @@ class HTMLSlotElement;
 class SlotAssignment;
 
 class ShadowRoot final : public DocumentFragment, public TreeScope {
+    WTF_MAKE_ISO_ALLOCATED(ShadowRoot);
 public:
     static Ref<ShadowRoot> create(Document& document, ShadowRootMode type)
     {
index 6f61482..f523636 100644 (file)
@@ -3,7 +3,7 @@
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
  *           (C) 2001 Peter Kelly (pmk@post.com)
  *           (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2008, 2010, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2004-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "StyleProperties.h"
 #include "StyleResolver.h"
 #include <wtf/HashFunctions.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(StyledElement);
+
 COMPILE_ASSERT(sizeof(StyledElement) == sizeof(Element), styledelement_should_remain_same_size_as_element);
 
 using namespace HTMLNames;
index 31b8fb3..0349fd5 100644 (file)
@@ -3,7 +3,7 @@
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
  *           (C) 2001 Peter Kelly (pmk@post.com)
  *           (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -37,6 +37,7 @@ class PropertySetCSSStyleDeclaration;
 class StyleProperties;
 
 class StyledElement : public Element {
+    WTF_MAKE_ISO_ALLOCATED(StyledElement);
 public:
     virtual ~StyledElement();
 
diff --git a/Source/WebCore/dom/TemplateContentDocumentFragment.cpp b/Source/WebCore/dom/TemplateContentDocumentFragment.cpp
new file mode 100644 (file)
index 0000000..480de34
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2018 Apple 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 APPLE 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 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. 
+ */
+
+#include "config.h"
+#include "TemplateContentDocumentFragment.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(TemplateContentDocumentFragment);
+
+} // namespace WebCore
+
index 44576e2..0417cdb 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2012, 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -31,6 +32,7 @@
 namespace WebCore {
 
 class TemplateContentDocumentFragment final : public DocumentFragment {
+    WTF_MAKE_ISO_ALLOCATED(TemplateContentDocumentFragment);
 public:
     static Ref<TemplateContentDocumentFragment> create(Document& document, const Element* host)
     {
index 12d1d24..7315d16 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "StyleUpdate.h"
 #include "TextNodeTraversal.h"
 #include <wtf/CheckedArithmetic.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/CString.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(Text);
+
 Ref<Text> Text::create(Document& document, const String& data)
 {
     return adoptRef(*new Text(document, data, CreateText));
index 187b56f..6d84a6b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -30,6 +30,7 @@ namespace WebCore {
 class RenderText;
 
 class Text : public CharacterData {
+    WTF_MAKE_ISO_ALLOCATED(Text);
 public:
     static const unsigned defaultLengthLimit = 1 << 16;
 
diff --git a/Source/WebCore/dom/XMLDocument.cpp b/Source/WebCore/dom/XMLDocument.cpp
new file mode 100644 (file)
index 0000000..8feb72f
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2018 Apple 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 APPLE 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 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. 
+ */
+
+#include "config.h"
+#include "XMLDocument.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(XMLDocument);
+
+} // namespace WebCore
+
index 461b8c6..964d9d7 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class XMLDocument : public Document {
+    WTF_MAKE_ISO_ALLOCATED(XMLDocument);
 public:
     static Ref<XMLDocument> create(Frame* frame, const URL& url)
     {
index 29c2861..fa07b5f 100644 (file)
 #include "SharedBuffer.h"
 #include "Text.h"
 #include <wtf/GregorianDateTime.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/StdLibExtras.h>
 #include <wtf/unicode/CharacterNames.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(FTPDirectoryDocument);
+
 using namespace HTMLNames;
     
 class FTPDirectoryDocumentParser final : public HTMLDocumentParser {
index 0e07b52..9cc876c 100644 (file)
@@ -29,6 +29,7 @@
 namespace WebCore {
 
 class FTPDirectoryDocument final : public HTMLDocument {
+    WTF_MAKE_ISO_ALLOCATED(FTPDirectoryDocument);
 public:
     static Ref<FTPDirectoryDocument> create(Frame* frame, const URL& url)
     {
index 134b65d..3e55a05 100644 (file)
@@ -43,6 +43,7 @@
 #include "Settings.h"
 #include "ShadowRoot.h"
 #include "UserGestureIndicator.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/TypeCasts.h>
 #include <wtf/text/StringBuilder.h>
 
@@ -60,6 +61,7 @@ namespace WebCore {
 using namespace HTMLNames;
 
 class UploadButtonElement final : public HTMLInputElement {
+    WTF_MAKE_ISO_ALLOCATED_INLINE(UploadButtonElement);
 public:
     static Ref<UploadButtonElement> create(Document&);
     static Ref<UploadButtonElement> createForMultiple(Document&);
index bc64fd0..648664c 100644 (file)
 #include "SecurityPolicy.h"
 #include "Settings.h"
 #include "URLUtils.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLAnchorElement);
+
 using namespace HTMLNames;
 
 HTMLAnchorElement::HTMLAnchorElement(const QualifiedName& tagName, Document& document)
index 980691b..55818d1 100644 (file)
@@ -40,6 +40,7 @@ enum class Relation {
 };
 
 class HTMLAnchorElement : public HTMLElement, public URLUtils<HTMLAnchorElement> {
+    WTF_MAKE_ISO_ALLOCATED(HTMLAnchorElement);
 public:
     static Ref<HTMLAnchorElement> create(Document&);
     static Ref<HTMLAnchorElement> create(const QualifiedName&, Document&);
index 0fb11d9..9b64019 100644 (file)
 #include "Settings.h"
 #include "SubframeLoader.h"
 #include "Widget.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLAppletElement);
+
 using namespace HTMLNames;
 
 inline HTMLAppletElement::HTMLAppletElement(const QualifiedName& tagName, Document& document)
index e022202..60dd581 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLAppletElement final : public HTMLPlugInImageElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLAppletElement);
 public:
     static Ref<HTMLAppletElement> create(const QualifiedName&, Document&);
 
index 95ea69e..e34c694 100644 (file)
 #include "Path.h"
 #include "RenderImage.h"
 #include "RenderView.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLAreaElement);
+
 using namespace HTMLNames;
 
 inline HTMLAreaElement::HTMLAreaElement(const QualifiedName& tagName, Document& document)
index 71664bd..cd6fdbc 100644 (file)
@@ -33,6 +33,7 @@ class HitTestResult;
 class Path;
 
 class HTMLAreaElement final : public HTMLAnchorElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLAreaElement);
 public:
     static Ref<HTMLAreaElement> create(const QualifiedName&, Document&);
 
index 636e25e..fe7dd53 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2015-2018 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -44,6 +44,7 @@
 #include "ShadowRoot.h"
 #include "SharedBuffer.h"
 #include <pal/FileSizeFormatter.h>
+#include <wtf/IsoMallocInlines.h>
 
 #if PLATFORM(COCOA)
 #include "UTIUtilities.h"
@@ -51,6 +52,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLAttachmentElement);
+
 using namespace HTMLNames;
 
 class AttachmentDataReader : public FileReaderLoaderClient {
index e811bf8..2367e8e 100644 (file)
@@ -40,6 +40,7 @@ class RenderAttachment;
 class SharedBuffer;
 
 class HTMLAttachmentElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLAttachmentElement);
 public:
     static Ref<HTMLAttachmentElement> create(const QualifiedName&, Document&);
 
index 0fcc4e3..dd1331b 100644 (file)
 #include "HTMLAudioElement.h"
 
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLAudioElement);
+
 using namespace HTMLNames;
 
 inline HTMLAudioElement::HTMLAudioElement(const QualifiedName& tagName, Document& document, bool createdByParser)
index 6bb2a70..2713bf2 100644 (file)
@@ -35,6 +35,7 @@ namespace WebCore {
 class Document;
 
 class HTMLAudioElement final : public HTMLMediaElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLAudioElement);
 public:
     static Ref<HTMLAudioElement> create(const QualifiedName&, Document&, bool);
     static Ref<HTMLAudioElement> createForJSConstructor(Document&, const AtomicString& src);
diff --git a/Source/WebCore/html/HTMLBDIElement.cpp b/Source/WebCore/html/HTMLBDIElement.cpp
new file mode 100644 (file)
index 0000000..b0ce8db
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2018 Apple 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 APPLE 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 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. 
+ */
+
+#include "config.h"
+#include "HTMLBDIElement.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLBDIElement);
+
+} // namespace WebCore
+
index 217d28f..b4d43a4 100644 (file)
@@ -25,6 +25,7 @@
 namespace WebCore {
 
 class HTMLBDIElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLBDIElement);
 public:
     static Ref<HTMLBDIElement> create(const QualifiedName& name, Document& document)
     {
index db1f0cc..9956c06 100644 (file)
 #include "CSSValueKeywords.h"
 #include "HTMLNames.h"
 #include "RenderLineBreak.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLBRElement);
+
 using namespace HTMLNames;
 
 HTMLBRElement::HTMLBRElement(const QualifiedName& tagName, Document& document)
index bf44631..6adc116 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLBRElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLBRElement);
 public:
     static Ref<HTMLBRElement> create(Document&);
     static Ref<HTMLBRElement> create(const QualifiedName&, Document&);
index fcedfa2..e6e2e6f 100644 (file)
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
 #include "TextResourceDecoder.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLBaseElement);
+
 using namespace HTMLNames;
 
 inline HTMLBaseElement::HTMLBaseElement(const QualifiedName& tagName, Document& document)
index 0527b32..7cb69d9 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLBaseElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLBaseElement);
 public:
     static Ref<HTMLBaseElement> create(const QualifiedName&, Document&);
 
index 1c6bf96..8442ac9 100644 (file)
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
 #include "StyleProperties.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLBodyElement);
+
 using namespace HTMLNames;
 
 HTMLBodyElement::HTMLBodyElement(const QualifiedName& tagName, Document& document)
index c9cc397..9197ecc 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLBodyElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLBodyElement);
 public:
     static Ref<HTMLBodyElement> create(Document&);
     static Ref<HTMLBodyElement> create(const QualifiedName&, Document&);
index 4c5f309..59a9729 100644 (file)
 #include "HTMLNames.h"
 #include "KeyboardEvent.h"
 #include "RenderButton.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/StdLibExtras.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLButtonElement);
+
 using namespace HTMLNames;
 
 inline HTMLButtonElement::HTMLButtonElement(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
index 2ec8a4e..19df246 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class RenderButton;
 
 class HTMLButtonElement final : public HTMLFormControlElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLButtonElement);
 public:
     static Ref<HTMLButtonElement> create(const QualifiedName&, Document&, HTMLFormElement*);
 
index 6edafe3..664edf0 100644 (file)
@@ -55,6 +55,7 @@
 #include <JavaScriptCore/JSCInlines.h>
 #include <JavaScriptCore/JSLock.h>
 #include <math.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/RAMSize.h>
 #include <wtf/text/StringBuilder.h>
 
@@ -82,6 +83,9 @@
 #endif
 
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLCanvasElement);
+
 using namespace PAL;
 using namespace HTMLNames;
 
index f0bcd64..f88d611 100644 (file)
@@ -59,6 +59,7 @@ using AsTextFlags = unsigned;
 }
 
 class HTMLCanvasElement final : public HTMLElement, public CanvasBase {
+    WTF_MAKE_ISO_ALLOCATED(HTMLCanvasElement);
 public:
     static Ref<HTMLCanvasElement> create(Document&);
     static Ref<HTMLCanvasElement> create(const QualifiedName&, Document&);
index f61ed02..923a460 100644 (file)
 #include "HTMLDListElement.h"
 
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLDListElement);
+
 using namespace HTMLNames;
 
 inline HTMLDListElement::HTMLDListElement(const QualifiedName& tagName, Document& document)
index 7ac9221..abdf6d1 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLDListElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLDListElement);
 public:
     static Ref<HTMLDListElement> create(const QualifiedName&, Document&);
 
index 6a9ac1a..2b3fcad 100644 (file)
 #include "HTMLDataElement.h"
 
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLDataElement);
+
 using namespace HTMLNames;
 
 Ref<HTMLDataElement> HTMLDataElement::create(const QualifiedName& tagName, Document& document)
index f2ac0bd..d44125d 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class HTMLDataElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLDataElement);
 public:
     static Ref<HTMLDataElement> create(const QualifiedName&, Document&);
 
index 2846547..bec87b3 100644 (file)
  */
 
 #include "config.h"
+
 #if ENABLE(DATALIST_ELEMENT)
+
 #include "HTMLDataListElement.h"
 
 #include "GenericCachedHTMLCollection.h"
 #include "HTMLNames.h"
 #include "IdTargetObserverRegistry.h"
 #include "NodeRareData.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLDataListElement);
+
 inline HTMLDataListElement::HTMLDataListElement(const QualifiedName& tagName, Document& document)
     : HTMLElement(tagName, document)
 {
@@ -61,4 +66,5 @@ void HTMLDataListElement::optionElementChildrenChanged()
 }
 
 } // namespace WebCore
+
 #endif // ENABLE(DATALIST_ELEMENT)
index 8b3fc8f..8f71fa5 100644 (file)
@@ -39,6 +39,7 @@
 namespace WebCore {
 
 class HTMLDataListElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLDataListElement);
 public:
     static Ref<HTMLDataListElement> create(const QualifiedName&, Document&);
 
index 6469fc6..7f975f6 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "ShadowRoot.h"
 #include "SlotAssignment.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLDetailsElement);
+
 using namespace HTMLNames;
 
 static DetailEventSender& detailToggleEventSender()
index e483657..fd1450e 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -30,6 +31,7 @@ template<typename T> class EventSender;
 typedef EventSender<HTMLDetailsElement> DetailEventSender;
 
 class HTMLDetailsElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLDetailsElement);
 public:
     static Ref<HTMLDetailsElement> create(const QualifiedName& tagName, Document&);
     ~HTMLDetailsElement();
index bb77d35..8cca669 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "HTMLDirectoryElement.h"
 
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLDirectoryElement);
+
 using namespace HTMLNames;
 
 inline HTMLDirectoryElement::HTMLDirectoryElement(const QualifiedName& tagName, Document& document)
index 86af897..f577778 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLDirectoryElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLDirectoryElement);
 public:
     static Ref<HTMLDirectoryElement> create(const QualifiedName& tagName, Document&);
 
index c3b16ac..f6f9933 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2003, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "CSSPropertyNames.h"
 #include "CSSValueKeywords.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLDivElement);
+
 using namespace HTMLNames;
 
 HTMLDivElement::HTMLDivElement(const QualifiedName& tagName, Document& document)
index 0189638..43ac8ee 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLDivElement : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLDivElement);
 public:
     static Ref<HTMLDivElement> create(Document&);
     static Ref<HTMLDivElement> create(const QualifiedName&, Document&);
index 7dedec0..a3d7d97 100644 (file)
 #include "HashTools.h"
 #include "ScriptController.h"
 #include "StyleResolver.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLDocument);
+
 using namespace HTMLNames;
 
 HTMLDocument::HTMLDocument(Frame* frame, const URL& url, DocumentClassFlags documentClasses, unsigned constructionFlags)
index 23de4dc..a363974 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLDocument : public Document {
+    WTF_MAKE_ISO_ALLOCATED(HTMLDocument);
 public:
     static Ref<HTMLDocument> create(Frame* frame, const URL& url)
     {
index 36985e9..b1add24 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2004-2018 Apple Inc. All rights reserved.
  * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
  * Copyright (C) 2011 Motorola Mobility. All rights reserved.
  *
 #include "Text.h"
 #include "XMLNames.h"
 #include "markup.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/StdLibExtras.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLElement);
+
 using namespace HTMLNames;
 using namespace WTF;
 
index 685aac9..e598c78 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2004-2018 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -36,6 +36,7 @@ class HTMLCollection;
 class HTMLFormElement;
 
 class HTMLElement : public StyledElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLElement);
 public:
     static Ref<HTMLElement> create(const QualifiedName& tagName, Document&);
 
index 7af5ba4..cffd3e8 100644 (file)
 #include "RenderWidget.h"
 #include "Settings.h"
 #include "SubframeLoader.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLEmbedElement);
+
 using namespace HTMLNames;
 
 inline HTMLEmbedElement::HTMLEmbedElement(const QualifiedName& tagName, Document& document)
index 2839b98..c563624 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLEmbedElement final : public HTMLPlugInImageElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLEmbedElement);
 public:
     static Ref<HTMLEmbedElement> create(Document&);
     static Ref<HTMLEmbedElement> create(const QualifiedName&, Document&);
index 6860237..64c2373 100644 (file)
 #include "NodeRareData.h"
 #include "RenderElement.h"
 #include "ScriptDisallowedScope.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/StdLibExtras.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFieldSetElement);
+
 using namespace HTMLNames;
 
 inline HTMLFieldSetElement::HTMLFieldSetElement(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
index d0b4a3b..0c32ed6 100644 (file)
@@ -32,6 +32,7 @@ class FormAssociatedElement;
 class HTMLFormControlsCollection;
 
 class HTMLFieldSetElement final : public HTMLFormControlElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFieldSetElement);
 public:
     static Ref<HTMLFieldSetElement> create(const QualifiedName&, Document&, HTMLFormElement*);
 
index 7d7760b..8d6c347 100644 (file)
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
 #include "StyleProperties.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/StringBuilder.h>
 
-
 namespace WebCore {
-using namespace WTF;
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFontElement);
 
 using namespace HTMLNames;
+using namespace WTF;
 
 HTMLFontElement::HTMLFontElement(const QualifiedName& tagName, Document& document)
     : HTMLElement(tagName, document)
index 6748d63..a204871 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLFontElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFontElement);
 public:
     static Ref<HTMLFontElement> create(const QualifiedName&, Document&);
     
index fab13b6..9e4c831 100644 (file)
 #include "RenderTheme.h"
 #include "StyleTreeResolver.h"
 #include "ValidationMessage.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFormControlElement);
+
 using namespace HTMLNames;
 
 HTMLFormControlElement::HTMLFormControlElement(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
index 538bdc9..fbf225d 100644 (file)
@@ -43,6 +43,7 @@ class ValidationMessage;
 // and form-associated element implementations should use HTMLFormControlElement
 // unless there is a special reason.
 class HTMLFormControlElement : public LabelableElement, public FormAssociatedElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFormControlElement);
 public:
     virtual ~HTMLFormControlElement();
 
index 7ed148d..e9a2852 100644 (file)
 #include "FormController.h"
 #include "Frame.h"
 #include "HTMLFormElement.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFormControlElementWithState);
+
 HTMLFormControlElementWithState::HTMLFormControlElementWithState(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
     : HTMLFormControlElement(tagName, document, form)
 {
index 4440116..fafbb8d 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 using FormControlState = Vector<String>;
 
 class HTMLFormControlElementWithState : public HTMLFormControlElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFormControlElementWithState);
 public:
     virtual ~HTMLFormControlElementWithState();
 
index 1e4389d..56da93f 100644 (file)
 #include "Settings.h"
 #include "UserGestureIndicator.h"
 #include <limits>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 #include <wtf/SetForScope.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFormElement);
+
 using namespace HTMLNames;
 
 HTMLFormElement::HTMLFormElement(const QualifiedName& tagName, Document& document)
index add8581..4d1e811 100644 (file)
@@ -42,6 +42,7 @@ class HTMLFormControlsCollection;
 class HTMLImageElement;
 
 class HTMLFormElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFormElement);
 public:
     static Ref<HTMLFormElement> create(Document&);
     static Ref<HTMLFormElement> create(const QualifiedName&, Document&);
index 8e0679c..314e733 100644 (file)
 #include "HTMLFrameSetElement.h"
 #include "HTMLNames.h"
 #include "RenderFrame.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFrameElement);
+
 using namespace HTMLNames;
 
 inline HTMLFrameElement::HTMLFrameElement(const QualifiedName& tagName, Document& document)
index 4f08ab0..92bf598 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class RenderFrame;
 
 class HTMLFrameElement final : public HTMLFrameElementBase {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFrameElement);
 public:
     static Ref<HTMLFrameElement> create(const QualifiedName&, Document&);
 
index a6e824a..f84d7ed 100644 (file)
 #include "Settings.h"
 #include "SubframeLoader.h"
 #include "URL.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFrameElementBase);
+
 using namespace HTMLNames;
 
 HTMLFrameElementBase::HTMLFrameElementBase(const QualifiedName& tagName, Document& document)
index 4128056..858ca8a 100644 (file)
@@ -33,6 +33,7 @@ class ExecState;
 namespace WebCore {
 
 class HTMLFrameElementBase : public HTMLFrameOwnerElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFrameElementBase);
 public:
     WEBCORE_EXPORT URL location() const;
     WEBCORE_EXPORT void setLocation(const String&);
index 20b929d..5887398 100644 (file)
 #include "ShadowRoot.h"
 #include "SVGDocument.h"
 #include "StyleTreeResolver.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFrameOwnerElement);
+
 HTMLFrameOwnerElement::HTMLFrameOwnerElement(const QualifiedName& tagName, Document& document)
     : HTMLElement(tagName, document)
     , m_contentFrame(nullptr)
index 4d0a424..865eddb 100644 (file)
@@ -32,6 +32,7 @@ class RenderWidget;
 class SVGDocument;
 
 class HTMLFrameOwnerElement : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFrameOwnerElement);
 public:
     virtual ~HTMLFrameOwnerElement();
 
index 4d1a01e..2856424 100644 (file)
 #include "MouseEvent.h"
 #include "RenderFrameSet.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLFrameSetElement);
+
 using namespace HTMLNames;
 
 HTMLFrameSetElement::HTMLFrameSetElement(const QualifiedName& tagName, Document& document)
index 3fd667f..d1f379b 100644 (file)
@@ -29,6 +29,7 @@
 namespace WebCore {
 
 class HTMLFrameSetElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLFrameSetElement);
 public:
     static Ref<HTMLFrameSetElement> create(const QualifiedName&, Document&);
 
index 29485e5..f24d7e8 100644 (file)
 #include "CSSValuePool.h"
 #include "HTMLNames.h"
 #include "StyleProperties.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLHRElement);
+
 using namespace HTMLNames;
 
 HTMLHRElement::HTMLHRElement(const QualifiedName& tagName, Document& document)
index 8517ee4..ebecbd2 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLHRElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLHRElement);
 public:
     static Ref<HTMLHRElement> create(Document&);
     static Ref<HTMLHRElement> create(const QualifiedName&, Document&);
index 150ec61..5d6c1d8 100644 (file)
 
 #include "HTMLNames.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLHeadElement);
+
 using namespace HTMLNames;
 
 HTMLHeadElement::HTMLHeadElement(const QualifiedName& tagName, Document& document)
index 90d23c1..3015a65 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLHeadElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLHeadElement);
 public:
     static Ref<HTMLHeadElement> create(Document&);
     static Ref<HTMLHeadElement> create(const QualifiedName&, Document&);
index 9aad035..2dc300e 100644 (file)
 #include "config.h"
 #include "HTMLHeadingElement.h"
 
+#include <wtf/IsoMallocInlines.h>
+
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLHeadingElement);
+
 inline HTMLHeadingElement::HTMLHeadingElement(const QualifiedName& tagName, Document& document)
     : HTMLElement(tagName, document)
 {
index 4f1c297..c32f2a9 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLHeadingElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLHeadingElement);
 public:
     static Ref<HTMLHeadingElement> create(const QualifiedName&, Document&);
 
index d9ed2cb..2250754 100644 (file)
 #include "Frame.h"
 #include "FrameLoader.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLHtmlElement);
+
 using namespace HTMLNames;
 
 HTMLHtmlElement::HTMLHtmlElement(const QualifiedName& tagName, Document& document)
index a13370e..12195d3 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLHtmlElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLHtmlElement);
 public:
     static Ref<HTMLHtmlElement> create(Document&);
     static Ref<HTMLHtmlElement> create(const QualifiedName&, Document&);
index 7a5da1c..e5ffd81 100644 (file)
 #include "HTMLNames.h"
 #include "RenderIFrame.h"
 #include "ScriptableDocumentParser.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLIFrameElement);
+
 using namespace HTMLNames;
 
 inline HTMLIFrameElement::HTMLIFrameElement(const QualifiedName& tagName, Document& document)
index a4ae3ea..0bf126a 100644 (file)
@@ -31,6 +31,7 @@ class DOMTokenList;
 class RenderIFrame;
 
 class HTMLIFrameElement final : public HTMLFrameElementBase {
+    WTF_MAKE_ISO_ALLOCATED(HTMLIFrameElement);
 public:
     static Ref<HTMLIFrameElement> create(const QualifiedName&, Document&);
 
index f02b4de..65d940c 100644 (file)
@@ -43,6 +43,7 @@
 #include "Settings.h"
 #include "ShadowRoot.h"
 #include "SizesAttributeParser.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/StringBuilder.h>
 
 #if ENABLE(SERVICE_CONTROLS)
@@ -51,6 +52,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLImageElement);
+
 using namespace HTMLNames;
 
 typedef HashMap<const HTMLImageElement*, WeakPtr<HTMLPictureElement>> PictureOwnerMap;
index 3a11f0f..b396bfd 100644 (file)
@@ -36,6 +36,7 @@ class HTMLFormElement;
 struct ImageCandidate;
 
 class HTMLImageElement : public HTMLElement, public FormNamedItem {
+    WTF_MAKE_ISO_ALLOCATED(HTMLImageElement);
     friend class HTMLFormElement;
 public:
     static Ref<HTMLImageElement> create(Document&);
index eb64ccc..5bda782 100644 (file)
@@ -61,6 +61,7 @@
 #include "Settings.h"
 #include "StyleResolver.h"
 #include "TextControlInnerElements.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Language.h>
 #include <wtf/MathExtras.h>
 #include <wtf/Ref.h>
@@ -71,6 +72,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLInputElement);
+
 using namespace HTMLNames;
 
 #if ENABLE(DATALIST_ELEMENT)
index 48dd055..f8d9d2c 100644 (file)
@@ -55,6 +55,7 @@ struct InputElementClickState {
 };
 
 class HTMLInputElement : public HTMLTextFormControlElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLInputElement);
 public:
     static Ref<HTMLInputElement> create(const QualifiedName&, Document&, HTMLFormElement*, bool createdByParser);
     virtual ~HTMLInputElement();
index adb4ed9..cdd53ed 100644 (file)
@@ -35,6 +35,7 @@
 #include "SSLKeyGenerator.h"
 #include "ShadowRoot.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/StdLibExtras.h>
 
@@ -42,9 +43,12 @@ using namespace WebCore;
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLKeygenElement);
+
 using namespace HTMLNames;
 
 class KeygenSelectElement final : public HTMLSelectElement {
+    WTF_MAKE_ISO_ALLOCATED_INLINE(KeygenSelectElement);
 public:
     static Ref<KeygenSelectElement> create(Document& document)
     {
index 1c48ee4..9c9c9e7 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class HTMLSelectElement;
 
 class HTMLKeygenElement final : public HTMLFormControlElementWithState {
+    WTF_MAKE_ISO_ALLOCATED(HTMLKeygenElement);
 public:
     static Ref<HTMLKeygenElement> create(const QualifiedName&, Document&, HTMLFormElement*);
 
index 13eb1a9..f980f4c 100644 (file)
 #include "HTMLOListElement.h"
 #include "HTMLUListElement.h"
 #include "RenderListItem.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLLIElement);
+
 using namespace HTMLNames;
 
 HTMLLIElement::HTMLLIElement(const QualifiedName& tagName, Document& document)
index 8d871ec..821215d 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLLIElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLLIElement);
 public:
     static Ref<HTMLLIElement> create(Document&);
     static Ref<HTMLLIElement> create(const QualifiedName&, Document&);
index 0d95c9b..abee8fb 100644 (file)
 #include "FormAssociatedElement.h"
 #include "HTMLFormControlElement.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLLabelElement);
+
 using namespace HTMLNames;
 
 static LabelableElement* firstElementWithIdIfLabelable(TreeScope& treeScope, const AtomicString& id)
index 275df56..748f859 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLLabelElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLLabelElement);
 public:
     static Ref<HTMLLabelElement> create(const QualifiedName&, Document&);
 
index e4cc496..054ef12 100644 (file)
 #include "ElementIterator.h"
 #include "HTMLFieldSetElement.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLLegendElement);
+
 inline HTMLLegendElement::HTMLLegendElement(const QualifiedName& tagName, Document& document)
     : HTMLElement(tagName, document)
 {
index 142fd45..10fe045 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class HTMLFormControlElement;
 
 class HTMLLegendElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLLegendElement);
 public:
     static Ref<HTMLLegendElement> create(const QualifiedName&, Document&);
 
index b0d8bec..f9ce07a 100644 (file)
 #include "StyleScope.h"
 #include "StyleSheetContents.h"
 #include "SubresourceIntegrity.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 #include <wtf/SetForScope.h>
 #include <wtf/StdLibExtras.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLLinkElement);
+
 using namespace HTMLNames;
 
 static LinkEventSender& linkLoadEventSender()
index c2cc735..510f4cf 100644 (file)
@@ -43,6 +43,7 @@ template<typename T> class EventSender;
 typedef EventSender<HTMLLinkElement> LinkEventSender;
 
 class HTMLLinkElement final : public HTMLElement, public CachedStyleSheetClient, public LinkLoaderClient {
+    WTF_MAKE_ISO_ALLOCATED(HTMLLinkElement);
 public:
     static Ref<HTMLLinkElement> create(const QualifiedName&, Document&, bool createdByParser);
     virtual ~HTMLLinkElement();
index ad376b8..ceb8bb8 100644 (file)
 #include "HitTestResult.h"
 #include "IntSize.h"
 #include "NodeRareData.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLMapElement);
+
 using namespace HTMLNames;
 
 HTMLMapElement::HTMLMapElement(const QualifiedName& tagName, Document& document)
index cc77ea0..bdf2e4e 100644 (file)
@@ -30,6 +30,7 @@ class HitTestResult;
 class HTMLImageElement;
     
 class HTMLMapElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLMapElement);
 public:
     static Ref<HTMLMapElement> create(Document&);
     static Ref<HTMLMapElement> create(const QualifiedName&, Document&);
index ba062c1..21173ad 100644 (file)
 #include "HTMLParserIdioms.h"
 #include "RenderLayer.h"
 #include "RenderMarquee.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLMarqueeElement);
+
 using namespace HTMLNames;
 
 inline HTMLMarqueeElement::HTMLMarqueeElement(const QualifiedName& tagName, Document& document)
index 13b1472..68490fd 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class RenderMarquee;
 
 class HTMLMarqueeElement final : public HTMLElement, private ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(HTMLMarqueeElement);
 public:
     static Ref<HTMLMarqueeElement> create(const QualifiedName&, Document&);
 
index 176c4f3..f00c437 100644 (file)
@@ -92,6 +92,7 @@
 #include <pal/SessionID.h>
 #include <pal/system/SleepDisabler.h>
 #include <wtf/Algorithms.h>
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Language.h>
 #include <wtf/MathExtras.h>
 #include <wtf/MemoryPressureHandler.h>
@@ -185,6 +186,9 @@ struct LogArgument<WebCore::URL> {
 
 
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLMediaElement);
+
 using namespace PAL;
 
 static const Seconds SeekRepeatDelay { 100_ms };
index a5d1ced..fc81dc2 100644 (file)
@@ -144,6 +144,7 @@ class HTMLMediaElement
     , private LoggerHelper
 #endif
 {
+    WTF_MAKE_ISO_ALLOCATED(HTMLMediaElement);
 public:
     WeakPtr<HTMLMediaElement> createWeakPtr() { return m_weakFactory.createWeakPtr(*this); }
     RefPtr<MediaPlayer> player() const { return m_player; }
index 6212294..ba05bb9 100644 (file)
 #include "Chrome.h"
 #include "ChromeClient.h"
 #include "Document.h"
+#include "ElementChildIterator.h"
 #include "HTMLMenuItemElement.h"
 #include "HTMLNames.h"
 #include "Page.h"
+#include "RuntimeEnabledFeatures.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLMenuElement);
+
 using namespace HTMLNames;
 
 inline HTMLMenuElement::HTMLMenuElement(const QualifiedName& tagName, Document& document)
index 1ad90e3..e659f70 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLMenuElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLMenuElement);
 public:
     static Ref<HTMLMenuElement> create(const QualifiedName&, Document&);
     
index b58747c..092b6af 100644 (file)
 #include "HTMLMenuElement.h"
 #include "HTMLNames.h"
 #include "Page.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLMenuItemElement);
+
 using namespace HTMLNames;
     
 inline HTMLMenuItemElement::HTMLMenuItemElement(const QualifiedName& tagName, Document& document)
index b244512..d23aa9e 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class HTMLMenuItemElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLMenuItemElement);
 public:
     static Ref<HTMLMenuItemElement> create(const QualifiedName&, Document&);
     
index 57fc951..a5cde40 100644 (file)
 #include "Document.h"
 #include "HTMLHeadElement.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLMetaElement);
+
 using namespace HTMLNames;
 
 inline HTMLMetaElement::HTMLMetaElement(const QualifiedName& tagName, Document& document)
index c8adc5c..156e19c 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLMetaElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLMetaElement);
 public:
     static Ref<HTMLMetaElement> create(Document&);
     static Ref<HTMLMetaElement> create(const QualifiedName&, Document&);
index 0d44a67..bdc7183 100644 (file)
 #include "RenderTheme.h"
 #include "ShadowRoot.h"
 #include "UserAgentStyleSheets.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLMeterElement);
+
 using namespace HTMLNames;
 
 HTMLMeterElement::HTMLMeterElement(const QualifiedName& tagName, Document& document)
index 4865a6d..ae16f82 100644 (file)
@@ -30,6 +30,7 @@ class MeterValueElement;
 class RenderMeter;
 
 class HTMLMeterElement final : public LabelableElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLMeterElement);
 public:
     static Ref<HTMLMeterElement> create(const QualifiedName&, Document&);
 
index f62690a..30abe5d 100644 (file)
 #include "HTMLModElement.h"
 
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLModElement);
+
 using namespace HTMLNames;
 
 inline HTMLModElement::HTMLModElement(const QualifiedName& tagName, Document& document)
index 0edd09a..87e7841 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLModElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLModElement);
 public:
     static Ref<HTMLModElement> create(const QualifiedName&, Document&);
 
index 7c96e27..eff7629 100644 (file)
@@ -28,6 +28,7 @@
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
 #include "RenderListItem.h"
+#include <wtf/IsoMallocInlines.h>
 
 // FIXME: There should be a standard way to turn a std::expected into a std::optional.
 // Maybe we should put this into the header file for Expected and give it a better name.
@@ -38,6 +39,8 @@ template<typename T, typename E> inline std::optional<T> optionalValue(Expected<
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLOListElement);
+
 using namespace HTMLNames;
 
 inline HTMLOListElement::HTMLOListElement(const QualifiedName& tagName, Document& document)
index 9cc381c..c2bed0b 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLOListElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLOListElement);
 public:
     static Ref<HTMLOListElement> create(Document&);
     static Ref<HTMLOListElement> create(const QualifiedName&, Document&);
index 1bc0ee4..97f85a4 100644 (file)
@@ -49,6 +49,7 @@
 #include "SubframeLoader.h"
 #include "Text.h"
 #include "Widget.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 
 #if PLATFORM(IOS)
@@ -58,6 +59,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLObjectElement);
+
 using namespace HTMLNames;
 
 inline HTMLObjectElement::HTMLObjectElement(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
index 5fbf9ec..82f582d 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class HTMLFormElement;
 
 class HTMLObjectElement final : public HTMLPlugInImageElement, public FormAssociatedElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLObjectElement);
 public:
     static Ref<HTMLObjectElement> create(const QualifiedName&, Document&, HTMLFormElement*);
 
index 5d25f78..58fee1d 100644 (file)
 #include "RenderMenuList.h"
 #include "NodeRenderStyle.h"
 #include "StyleResolver.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/StdLibExtras.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLOptGroupElement);
+
 using namespace HTMLNames;
 
 inline HTMLOptGroupElement::HTMLOptGroupElement(const QualifiedName& tagName, Document& document)
index d42dfeb..2f88a73 100644 (file)
@@ -30,6 +30,7 @@ namespace WebCore {
 class HTMLSelectElement;
 
 class HTMLOptGroupElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLOptGroupElement);
 public:
     static Ref<HTMLOptGroupElement> create(const QualifiedName&, Document&);
 
index 9795969..9f6dad2 100644 (file)
 #include "ScriptElement.h"
 #include "StyleResolver.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLOptionElement);
+
 using namespace HTMLNames;
 
 HTMLOptionElement::HTMLOptionElement(const QualifiedName& tagName, Document& document)
index 50869b6..7b27fbd 100644 (file)
@@ -32,6 +32,7 @@ class HTMLDataListElement;
 class HTMLSelectElement;
 
 class HTMLOptionElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLOptionElement);
 public:
     static Ref<HTMLOptionElement> create(Document&);
     static Ref<HTMLOptionElement> create(const QualifiedName&, Document&);
index 3395f09..f30d9da 100644 (file)
 
 #include "HTMLFormElement.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLOutputElement);
+
 using namespace HTMLNames;
 
 inline HTMLOutputElement::HTMLOutputElement(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
index 03d4998..0a72e45 100644 (file)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
 class HTMLOutputElement final : public HTMLFormControlElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLOutputElement);
 public:
     static Ref<HTMLOutputElement> create(const QualifiedName&, Document&, HTMLFormElement*);
 
index cb2edf5..0d3b05e 100644 (file)
 #include "CSSValueKeywords.h"
 #include "Document.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLParagraphElement);
+
 using namespace HTMLNames;
 
 inline HTMLParagraphElement::HTMLParagraphElement(const QualifiedName& tagName, Document& document)
index 2760130..bd5e837 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLParagraphElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLParagraphElement);
 public:
     static Ref<HTMLParagraphElement> create(Document&);
     static Ref<HTMLParagraphElement> create(const QualifiedName&, Document&);
index ed9a180..f7615cf 100644 (file)
 
 #include "Document.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLParamElement);
+
 using namespace HTMLNames;
 
 inline HTMLParamElement::HTMLParamElement(const QualifiedName& tagName, Document& document)
index a10af50..892fe55 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLParamElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLParamElement);
 public:
     static Ref<HTMLParamElement> create(const QualifiedName&, Document&);
 
index a7c0606..4c0aadb 100644 (file)
 #include "ElementChildIterator.h"
 #include "HTMLImageElement.h"
 #include "Logging.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLPictureElement);
+
 HTMLPictureElement::HTMLPictureElement(const QualifiedName& tagName, Document& document)
     : HTMLElement(tagName, document)
 {
index 0cb4781..7ef6b91 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebCore {
 
 class HTMLPictureElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLPictureElement);
 public:
     static Ref<HTMLPictureElement> create(const QualifiedName&, Document&);
     virtual ~HTMLPictureElement();
index 31ac810..1e2b833 100644 (file)
@@ -50,6 +50,7 @@
 #include "ShadowRoot.h"
 #include "SubframeLoader.h"
 #include "Widget.h"
+#include <wtf/IsoMallocInlines.h>
 
 #if ENABLE(NETSCAPE_PLUGIN_API)
 #include "npruntime_impl.h"
@@ -62,6 +63,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLPlugInElement);
+
 using namespace HTMLNames;
 
 HTMLPlugInElement::HTMLPlugInElement(const QualifiedName& tagName, Document& document)
index bf174c1..b4cae1b 100644 (file)
@@ -39,6 +39,7 @@ class RenderWidget;
 class Widget;
 
 class HTMLPlugInElement : public HTMLFrameOwnerElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLPlugInElement);
 public:
     virtual ~HTMLPlugInElement();
 
index 9026cba..d37ff17 100644 (file)
 #include "TypedElementDescendantIterator.h"
 #include "UserGestureIndicator.h"
 #include <JavaScriptCore/CatchScope.h>
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLPlugInImageElement);
+
 static const int sizingTinyDimensionThreshold = 40;
 static const float sizingFullPageAreaRatioThreshold = 0.96;
 static const Seconds autostartSoonAfterUserGestureThreshold = 5_s;
index a798b0f..ce0ea36 100644 (file)
@@ -32,6 +32,7 @@ enum class CreatePlugins { No, Yes };
 // Base class for HTMLAppletElement, HTMLEmbedElement, and HTMLObjectElement.
 // FIXME: Perhaps HTMLAppletElement should inherit from HTMLPlugInElement directly instead.
 class HTMLPlugInImageElement : public HTMLPlugInElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLPlugInImageElement);
 public:
     virtual ~HTMLPlugInImageElement();
 
index 60af0de..5cf319d 100644 (file)
 #include "CSSValueKeywords.h"
 #include "HTMLNames.h"
 #include "StyleProperties.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLPreElement);
+
 using namespace HTMLNames;
 
 inline HTMLPreElement::HTMLPreElement(const QualifiedName& tagName, Document& document)
index 7e8d51b..70db482 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLPreElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLPreElement);
 public:
     static Ref<HTMLPreElement> create(const QualifiedName&, Document&);
 
index 987b573..c2e750e 100644 (file)
 #include "ProgressShadowElement.h"
 #include "RenderProgress.h"
 #include "ShadowRoot.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLProgressElement);
+
 using namespace HTMLNames;
 
 const double HTMLProgressElement::IndeterminatePosition = -1;
index 826736d..d1fa08c 100644 (file)
@@ -28,6 +28,7 @@ class ProgressValueElement;
 class RenderProgress;
 
 class HTMLProgressElement final : public LabelableElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLProgressElement);
 public:
     static const double IndeterminatePosition;
     static const double InvalidPosition;
index 7cddafa..3cc9925 100644 (file)
 
 #include "Document.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLQuoteElement);
+
 using namespace HTMLNames;
 
 inline HTMLQuoteElement::HTMLQuoteElement(const QualifiedName& tagName, Document& document)
index 8bb6e02..82bc5cb 100644 (file)
@@ -29,6 +29,7 @@
 namespace WebCore {
 
 class HTMLQuoteElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLQuoteElement);
 public:
     static Ref<HTMLQuoteElement> create(const QualifiedName&, Document&);
 
index 2ed0c74..e0e6bf6 100644 (file)
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLScriptElement);
+
 using namespace HTMLNames;
 
 inline HTMLScriptElement::HTMLScriptElement(const QualifiedName& tagName, Document& document, bool wasInsertedByParser, bool alreadyStarted)
index a8b4d58..bd1e3ed 100644 (file)
@@ -29,6 +29,7 @@
 namespace WebCore {
 
 class HTMLScriptElement final : public HTMLElement, public ScriptElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLScriptElement);
 public:
     static Ref<HTMLScriptElement> create(const QualifiedName&, Document&, bool wasInsertedByParser, bool alreadyStarted = false);
 
index 6fb927d..0a8602e 100644 (file)
 #include "RenderTheme.h"
 #include "Settings.h"
 #include "SpatialNavigation.h"
-
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLSelectElement);
+
 using namespace WTF::Unicode;
 
 using namespace HTMLNames;
index c962431..26ebda8 100644 (file)
@@ -33,6 +33,7 @@ namespace WebCore {
 class HTMLOptionsCollection;
 
 class HTMLSelectElement : public HTMLFormControlElementWithState, private TypeAheadDataSource {
+    WTF_MAKE_ISO_ALLOCATED(HTMLSelectElement);
 public:
     static Ref<HTMLSelectElement> create(const QualifiedName&, Document&, HTMLFormElement*);
 
index e7d6a3b..1688887 100644 (file)
 #include "MutationObserver.h"
 #include "ShadowRoot.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLSlotElement);
+
 using namespace HTMLNames;
 
 Ref<HTMLSlotElement> HTMLSlotElement::create(const QualifiedName& tagName, Document& document)
index df489b4..987f7c2 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebCore {
 
 class HTMLSlotElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLSlotElement);
 public:
     static Ref<HTMLSlotElement> create(const QualifiedName&, Document&);
 
index 69b478e..9dc8d64 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2007-2018 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -34,6 +34,7 @@
 #include "Logging.h"
 #include "MediaList.h"
 #include "MediaQueryParser.h"
+#include <wtf/IsoMallocInlines.h>
 
 #if ENABLE(VIDEO)
 #include "HTMLMediaElement.h"
@@ -41,6 +42,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLSourceElement);
+
 using namespace HTMLNames;
 
 inline HTMLSourceElement::HTMLSourceElement(const QualifiedName& tagName, Document& document)
index 09e403f..3204f54 100644 (file)
@@ -33,6 +33,7 @@ namespace WebCore {
 class MediaQuerySet;
 
 class HTMLSourceElement final : public HTMLElement, private ActiveDOMObject {
+    WTF_MAKE_ISO_ALLOCATED(HTMLSourceElement);
 public:
     static Ref<HTMLSourceElement> create(Document&);
     static Ref<HTMLSourceElement> create(const QualifiedName&, Document&);
index 1449f17..2817cab 100644 (file)
 #include "HTMLSpanElement.h"
 
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLSpanElement);
+
 using namespace HTMLNames;
 
 HTMLSpanElement::HTMLSpanElement(const QualifiedName& tagName, Document& document)
index 0829556..dbe1106 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class HTMLSpanElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLSpanElement);
 public:
     static Ref<HTMLSpanElement> create(Document&);
     static Ref<HTMLSpanElement> create(const QualifiedName&, Document&);
index 5e82274..14ea570 100644 (file)
 #include "ShadowRoot.h"
 #include "StyleScope.h"
 #include "StyleSheetContents.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/NeverDestroyed.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLStyleElement);
+
 using namespace HTMLNames;
 
 static StyleEventSender& styleLoadEventSender()
index a9b0ad2..af05b71 100644 (file)
@@ -35,6 +35,7 @@ template<typename T> class EventSender;
 using StyleEventSender = EventSender<HTMLStyleElement>;
 
 class HTMLStyleElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLStyleElement);
 public:
     static Ref<HTMLStyleElement> create(Document&);
     static Ref<HTMLStyleElement> create(const QualifiedName&, Document&, bool createdByParser);
index 2390e91..f098d5a 100644 (file)
 #include "RenderBlockFlow.h"
 #include "ShadowRoot.h"
 #include "SlotAssignment.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLSummaryElement);
+
 using namespace HTMLNames;
 
 class SummarySlotElement final : public SlotAssignment {
index 5999d5e..4cb4e99 100644 (file)
@@ -27,6 +27,7 @@ namespace WebCore {
 class HTMLDetailsElement;
 
 class HTMLSummaryElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLSummaryElement);
 public:
     static Ref<HTMLSummaryElement> create(const QualifiedName&, Document&);
 
index 261ad17..ffe1523 100644 (file)
 
 #include "CSSPropertyNames.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTableCaptionElement);
+
 using namespace HTMLNames;
 
 inline HTMLTableCaptionElement::HTMLTableCaptionElement(const QualifiedName& tagName, Document& document)
index b1a0259..4d04f7f 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class HTMLTableCaptionElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTableCaptionElement);
 public:
     static Ref<HTMLTableCaptionElement> create(const QualifiedName&, Document&);
 
index 12ab57e..1e1ebb9 100644 (file)
 #include "HTMLParserIdioms.h"
 #include "HTMLTableElement.h"
 #include "RenderTableCell.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTableCellElement);
+
 using namespace HTMLNames;
 
 // These limits are defined in the HTML specification:
index 0709bce..84233b5 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class HTMLTableCellElement final : public HTMLTablePartElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTableCellElement);
 public:
     static Ref<HTMLTableCellElement> create(const QualifiedName&, Document&);
 
index 7cd63bf..209ff4e 100644 (file)
 #include "HTMLTableElement.h"
 #include "RenderTableCol.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTableColElement);
+
 const unsigned defaultSpan { 1 };
 const unsigned minSpan { 1 };
 const unsigned maxSpan { 1000 };
index 78797f9..dcf074d 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class HTMLTableColElement final : public HTMLTablePartElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTableColElement);
 public:
     static Ref<HTMLTableColElement> create(const QualifiedName& tagName, Document&);
 
index aa2bdca..0971c04 100644 (file)
 #include "NodeRareData.h"
 #include "RenderTable.h"
 #include "StyleProperties.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTableElement);
+
 using namespace HTMLNames;
 
 HTMLTableElement::HTMLTableElement(const QualifiedName& tagName, Document& document)
index db34fdf..91035f2 100644 (file)
@@ -35,6 +35,7 @@ class HTMLTableRowsCollection;
 class HTMLTableSectionElement;
 
 class HTMLTableElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTableElement);
 public:
     static Ref<HTMLTableElement> create(Document&);
     static Ref<HTMLTableElement> create(const QualifiedName&, Document&);
index 2a4d9b3..1e228a5 100644 (file)
 #include "HTMLParserIdioms.h"
 #include "HTMLTableElement.h"
 #include "StyleProperties.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTablePartElement);
+
 using namespace HTMLNames;
 
 bool HTMLTablePartElement::isPresentationAttribute(const QualifiedName& name) const
index 301d7df..194fc5d 100644 (file)
@@ -32,6 +32,7 @@ namespace WebCore {
 class HTMLTableElement;
 
 class HTMLTablePartElement : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTablePartElement);
 protected:
     HTMLTablePartElement(const QualifiedName& tagName, Document& document)
         : HTMLElement(tagName, document)
index cc1a2c5..b4b60f3 100644 (file)
 #include "NodeList.h"
 #include "NodeRareData.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTableRowElement);
+
 using namespace HTMLNames;
 
 inline HTMLTableRowElement::HTMLTableRowElement(const QualifiedName& tagName, Document& document)
index ad77d8a..755ec67 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebCore {
 
 class HTMLTableRowElement final : public HTMLTablePartElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTableRowElement);
 public:
     static Ref<HTMLTableRowElement> create(Document&);
     static Ref<HTMLTableRowElement> create(const QualifiedName&, Document&);
index cc868ac..e516a81 100644 (file)
 #include "NodeList.h"
 #include "NodeRareData.h"
 #include "Text.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTableSectionElement);
+
 using namespace HTMLNames;
 
 inline HTMLTableSectionElement::HTMLTableSectionElement(const QualifiedName& tagName, Document& document)
index 609ce76..efa33e9 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebCore {
 
 class HTMLTableSectionElement final : public HTMLTablePartElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTableSectionElement);
 public:
     static Ref<HTMLTableSectionElement> create(const QualifiedName&, Document&);
 
index 242fc1a..818eff6 100644 (file)
 #include "HTMLDocument.h"
 #include "TemplateContentDocumentFragment.h"
 #include "markup.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTemplateElement);
+
 using namespace HTMLNames;
 
 inline HTMLTemplateElement::HTMLTemplateElement(const QualifiedName& tagName, Document& document)
index 9413bd4..1b0b179 100644 (file)
@@ -38,6 +38,7 @@ class DocumentFragment;
 class TemplateContentDocumentFragment;
 
 class HTMLTemplateElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTemplateElement);
 public:
     static Ref<HTMLTemplateElement> create(const QualifiedName&, Document&);
     virtual ~HTMLTemplateElement();
index 9557ea9..536d897 100644 (file)
 #include "TextControlInnerElements.h"
 #include "TextIterator.h"
 #include "TextNodeTraversal.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 #include <wtf/StdLibExtras.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTextAreaElement);
+
 using namespace HTMLNames;
 
 static const int defaultRows = 2;
index 5eb4872..a52bc62 100644 (file)
@@ -32,6 +32,7 @@ class RenderTextControlMultiLine;
 class VisibleSelection;
 
 class HTMLTextAreaElement final : public HTMLTextFormControlElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTextAreaElement);
 public:
     static Ref<HTMLTextAreaElement> create(const QualifiedName&, Document&, HTMLFormElement*);
 
index a67fa55..ed14857 100644 (file)
 #include "ShadowRoot.h"
 #include "Text.h"
 #include "TextControlInnerElements.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTextFormControlElement);
+
 using namespace HTMLNames;
 
 static Position positionForIndex(TextControlInnerTextElement*, unsigned);
index f752da3..7e8303c 100644 (file)
@@ -38,6 +38,7 @@ enum TextFieldSelectionDirection { SelectionHasNoDirection, SelectionHasForwardD
 enum TextFieldEventBehavior { DispatchNoEvent, DispatchChangeEvent, DispatchInputAndChangeEvent };
 
 class HTMLTextFormControlElement : public HTMLFormControlElementWithState {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTextFormControlElement);
 public:
     // Common flag for HTMLInputElement::tooLong() / tooShort() and HTMLTextAreaElement::tooLong() / tooShort().
     enum NeedsToCheckDirtyFlag {CheckDirtyFlag, IgnoreDirtyFlag};
index a55bc9d..f5b74c8 100644 (file)
 #include "HTMLTimeElement.h"
 
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTimeElement);
+
 using namespace HTMLNames;
 
 Ref<HTMLTimeElement> HTMLTimeElement::create(const QualifiedName& tagName, Document& document)
index 212643c..5859ec3 100644 (file)
@@ -30,6 +30,7 @@
 namespace WebCore {
 
 class HTMLTimeElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTimeElement);
 public:
     static Ref<HTMLTimeElement> create(const QualifiedName&, Document&);
 
index cd07b6f..80af68f 100644 (file)
 #include "StyleResolver.h"
 #include "Text.h"
 #include "TextNodeTraversal.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/Ref.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTitleElement);
+
 using namespace HTMLNames;
 
 inline HTMLTitleElement::HTMLTitleElement(const QualifiedName& tagName, Document& document)
index cb14d4f..8c37a89 100644 (file)
@@ -28,6 +28,7 @@
 namespace WebCore {
 
 class HTMLTitleElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTitleElement);
 public:
     static Ref<HTMLTitleElement> create(const QualifiedName&, Document&);
 
index abee095..7cd0c92 100644 (file)
 #include "HTMLNames.h"
 #include "Logging.h"
 #include "RuntimeEnabledFeatures.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLTrackElement);
+
 using namespace HTMLNames;
 
 #if !LOG_DISABLED
index f386df2..b9ca948 100644 (file)
@@ -36,6 +36,7 @@ namespace WebCore {
 class HTMLMediaElement;
 
 class HTMLTrackElement final : public HTMLElement, public TextTrackClient {
+    WTF_MAKE_ISO_ALLOCATED(HTMLTrackElement);
 public:
     static Ref<HTMLTrackElement> create(const QualifiedName&, Document&);
 
index a6c223c..d9cd6e3 100644 (file)
 
 #include "CSSPropertyNames.h"
 #include "HTMLNames.h"
+#include <wtf/IsoMallocInlines.h>
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLUListElement);
+
 using namespace HTMLNames;
 
 HTMLUListElement::HTMLUListElement(const QualifiedName& tagName, Document& document)
index f06b62c..6a0b720 100644 (file)
@@ -27,6 +27,7 @@
 namespace WebCore {
 
 class HTMLUListElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLUListElement);
 public:
     static Ref<HTMLUListElement> create(Document&);
     static Ref<HTMLUListElement> create(const QualifiedName&, Document&);
diff --git a/Source/WebCore/html/HTMLUnknownElement.cpp b/Source/WebCore/html/HTMLUnknownElement.cpp
new file mode 100644 (file)
index 0000000..4d7646f
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2018 Apple 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 APPLE 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 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. 
+ */
+
+#include "config.h"
+#include "HTMLUnknownElement.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLUnknownElement);
+
+} // namespace WebCore
+
index 039448c..3186d0b 100644 (file)
@@ -34,6 +34,7 @@
 namespace WebCore {
 
 class HTMLUnknownElement final : public HTMLElement {
+    WTF_MAKE_ISO_ALLOCATED(HTMLUnknownElement);
 public:
     static Ref<HTMLUnknownElement> create(const QualifiedName& tagName, Document& document)
     {
index 1cbe32a..3fc0e99 100644 (file)
@@ -43,6 +43,7 @@
 #include "RenderVideo.h"
 #include "ScriptController.h"
 #include "Settings.h"
+#include <wtf/IsoMallocInlines.h>
 #include <wtf/text/TextStream.h>
 
 #if ENABLE(VIDEO_PRESENTATION_MODE)
@@ -51,6 +52,8 @@
 
 namespace WebCore {
 
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLVideoElement);
+
 using namespace HTMLNames;
 
 inline HTMLVideoElement::HTMLVideoElement(const QualifiedName& tagName, Document& document, bool createdByParser)