<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[203302] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/203302">203302</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-07-15 14:35:40 -0700 (Fri, 15 Jul 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
https://bugs.webkit.org/show_bug.cgi?id=159793
Reviewed by Ryosuke Niwa.
Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.
Source/WebCore:
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::installReplacement):
* dom/Element.h:
(WebCore::Element::setIdAttribute):
* editing/ApplyStyleCommand.cpp:
(WebCore::hasNoAttributeOrOnlyStyleAttribute):
(WebCore::createFontElement):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
* editing/Editor.cpp:
(WebCore::Editor::setBaseWritingDirection):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isMailPasteAsQuotationNode):
(WebCore::isInlineNodeWithStyle):
* editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange):
* editing/htmlediting.cpp:
(WebCore::createTabSpanElement):
* editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
(WebCore::Editor::WebContentReader::readURL):
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readURL):
* editing/markup.cpp:
(WebCore::createFragmentFromText):
* html/BaseButtonInputType.cpp:
(WebCore::BaseButtonInputType::setValue):
* html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::setValue):
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::setHref):
(WebCore::HTMLAnchorElement::target):
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::target):
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::setHref):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::setType):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
(WebCore::HTMLDetailsElement::toggleOpen):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::setVlinkColor):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setDir):
(WebCore::HTMLElement::setContentEditable):
(WebCore::HTMLElement::setDraggable):
(WebCore::HTMLElement::setSpellcheck):
(WebCore::HTMLElement::setTranslate):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::setFormEnctype):
(WebCore::HTMLFormControlElement::setFormMethod):
(WebCore::HTMLFormControlElement::setAutocorrect):
(WebCore::HTMLFormControlElement::setAutocapitalize):
(WebCore::HTMLFormControlElement::setAutocomplete):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::setAutocorrect):
(WebCore::HTMLFormElement::setAutocapitalize):
(WebCore::HTMLFormElement::setAction):
(WebCore::HTMLFormElement::setEnctype):
(WebCore::HTMLFormElement::setMethod):
(WebCore::HTMLFormElement::target):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
(WebCore::HTMLImageElement::setSrc):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setType):
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::altText):
(WebCore::HTMLInputElement::setDefaultValue):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::href):
(WebCore::HTMLLinkElement::target):
(WebCore::HTMLLinkElement::type):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setSrc):
(WebCore::HTMLMediaElement::setPreload):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::min):
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::max):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::value):
(WebCore::HTMLMeterElement::setValue):
(WebCore::HTMLMeterElement::low):
(WebCore::HTMLMeterElement::setLow):
(WebCore::HTMLMeterElement::high):
(WebCore::HTMLMeterElement::setHigh):
(WebCore::HTMLMeterElement::optimum):
(WebCore::HTMLMeterElement::setOptimum):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::containsJavaApplet):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor):
(WebCore::HTMLOptionElement::setValue):
(WebCore::HTMLOptionElement::setLabel):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::setValue):
(WebCore::HTMLProgressElement::setMax):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::typeAttributeValue):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setMultiple):
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::setSrc):
(WebCore::HTMLSourceElement::media):
(WebCore::HTMLSourceElement::setMedia):
(WebCore::HTMLSourceElement::type):
(WebCore::HTMLSourceElement::setType):
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::setAlign):
(WebCore::HTMLTableSectionElement::setCh):
(WebCore::HTMLTableSectionElement::chOff):
(WebCore::HTMLTableSectionElement::setChOff):
(WebCore::HTMLTableSectionElement::setVAlign):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::imageSourceURL):
* html/HiddenInputType.cpp:
(WebCore::HiddenInputType::restoreFormControlState):
(WebCore::HiddenInputType::setValue):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createAutoFillButton):
(WebCore::TextFieldInputType::updateAutoFillButton):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
* html/shadow/mac/ImageControlsButtonElementMac.cpp:
(WebCore::ImageControlsButtonElementMac::tryCreate):
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElement::tryCreate):
* html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::createEquivalentHTMLElement):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTTreeBuilder::constructTreeFromToken):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::buildObjectForFrame):
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::toggle):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::isOpen):
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::updateFromElement):
* svg/SVGElement.cpp:
(WebCore::SVGElement::setXmlbase):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::setContentScriptType):
(WebCore::SVGSVGElement::setContentStyleType):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::setMedia):
(WebCore::SVGStyleElement::setTitle):
Source/WebKit/mac:
* WebView/WebHTMLRepresentation.mm:
(matchLabelsAgainstElement):
Source/WebKit/win:
* DOMHTMLClasses.cpp:
(DOMHTMLElement::idName):
Source/WebKit2:
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::createPasswordEntryForm):
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::attach):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp">trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoreeditingApplyStyleCommandcpp">trunk/Source/WebCore/editing/ApplyStyleCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditingStylecpp">trunk/Source/WebCore/editing/EditingStyle.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorcpp">trunk/Source/WebCore/editing/Editor.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceSelectionCommandcpp">trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaDataDetectionmm">trunk/Source/WebCore/editing/cocoa/DataDetection.mm</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmacEditorMacmm">trunk/Source/WebCore/editing/mac/EditorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkupcpp">trunk/Source/WebCore/editing/markup.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlBaseButtonInputTypecpp">trunk/Source/WebCore/html/BaseButtonInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlBaseCheckableInputTypecpp">trunk/Source/WebCore/html/BaseCheckableInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFTPDirectoryDocumentcpp">trunk/Source/WebCore/html/FTPDirectoryDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAreaElementcpp">trunk/Source/WebCore/html/HTMLAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLBaseElementcpp">trunk/Source/WebCore/html/HTMLBaseElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLButtonElementcpp">trunk/Source/WebCore/html/HTMLButtonElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLDetailsElementcpp">trunk/Source/WebCore/html/HTMLDetailsElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLDocumentcpp">trunk/Source/WebCore/html/HTMLDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormControlElementcpp">trunk/Source/WebCore/html/HTMLFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormElementcpp">trunk/Source/WebCore/html/HTMLFormElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLinkElementcpp">trunk/Source/WebCore/html/HTMLLinkElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMeterElementcpp">trunk/Source/WebCore/html/HTMLMeterElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLObjectElementcpp">trunk/Source/WebCore/html/HTMLObjectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionElementcpp">trunk/Source/WebCore/html/HTMLOptionElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLProgressElementcpp">trunk/Source/WebCore/html/HTMLProgressElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLScriptElementcpp">trunk/Source/WebCore/html/HTMLScriptElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementcpp">trunk/Source/WebCore/html/HTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSourceElementcpp">trunk/Source/WebCore/html/HTMLSourceElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableSectionElementcpp">trunk/Source/WebCore/html/HTMLTableSectionElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextFormControlElementcpp">trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHiddenInputTypecpp">trunk/Source/WebCore/html/HiddenInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaDocumentcpp">trunk/Source/WebCore/html/MediaDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlPluginDocumentcpp">trunk/Source/WebCore/html/PluginDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlTextFieldInputTypecpp">trunk/Source/WebCore/html/TextFieldInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTreeBuildercpp">trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowTextControlInnerElementscpp">trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowmacImageControlsButtonElementMaccpp">trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowmacImageControlsRootElementMaccpp">trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackWebVTTElementcpp">trunk/Source/WebCore/html/track/WebVTTElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackWebVTTParsercpp">trunk/Source/WebCore/html/track/WebVTTParser.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorCSSAgentcpp">trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgentcpp">trunk/Source/WebCore/inspector/InspectorPageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLSelectElementcpp">trunk/Source/WebCore/mathml/MathMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageSerializercpp">trunk/Source/WebCore/page/PageSerializer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderDetailsMarkercpp">trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGElementcpp">trunk/Source/WebCore/svg/SVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGSVGElementcpp">trunk/Source/WebCore/svg/SVGSVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGStyleElementcpp">trunk/Source/WebCore/svg/SVGStyleElement.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebHTMLRepresentationmm">trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinDOMHTMLClassescpp">trunk/Source/WebKit/win/DOMHTMLClasses.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginAnnotationmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginAnnotation.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -1,5 +1,194 @@
</span><span class="cx"> 2016-07-15 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><ins>+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
+ https://bugs.webkit.org/show_bug.cgi?id=159793
+
+ Reviewed by Ryosuke Niwa.
+
+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.
+
+ * Modules/plugins/YouTubePluginReplacement.cpp:
+ (WebCore::YouTubePluginReplacement::installReplacement):
+ * dom/Element.h:
+ (WebCore::Element::setIdAttribute):
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::hasNoAttributeOrOnlyStyleAttribute):
+ (WebCore::createFontElement):
+ (WebCore::ApplyStyleCommand::applyInlineStyleChange):
+ * editing/EditingStyle.cpp:
+ (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
+ * editing/Editor.cpp:
+ (WebCore::Editor::setBaseWritingDirection):
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::isMailPasteAsQuotationNode):
+ (WebCore::isInlineNodeWithStyle):
+ * editing/cocoa/DataDetection.mm:
+ (WebCore::DataDetection::detectContentInRange):
+ * editing/htmlediting.cpp:
+ (WebCore::createTabSpanElement):
+ * editing/ios/EditorIOS.mm:
+ (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
+ (WebCore::Editor::WebContentReader::readURL):
+ * editing/mac/EditorMac.mm:
+ (WebCore::Editor::WebContentReader::readURL):
+ * editing/markup.cpp:
+ (WebCore::createFragmentFromText):
+ * html/BaseButtonInputType.cpp:
+ (WebCore::BaseButtonInputType::setValue):
+ * html/BaseCheckableInputType.cpp:
+ (WebCore::BaseCheckableInputType::setValue):
+ * html/FTPDirectoryDocument.cpp:
+ (WebCore::FTPDirectoryDocumentParser::appendEntry):
+ (WebCore::FTPDirectoryDocumentParser::createTDForFilename):
+ (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
+ (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::HTMLAnchorElement::href):
+ (WebCore::HTMLAnchorElement::setHref):
+ (WebCore::HTMLAnchorElement::target):
+ * html/HTMLAreaElement.cpp:
+ (WebCore::HTMLAreaElement::target):
+ * html/HTMLBaseElement.cpp:
+ (WebCore::HTMLBaseElement::setHref):
+ * html/HTMLButtonElement.cpp:
+ (WebCore::HTMLButtonElement::setType):
+ * html/HTMLDetailsElement.cpp:
+ (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
+ (WebCore::HTMLDetailsElement::toggleOpen):
+ * html/HTMLDocument.cpp:
+ (WebCore::HTMLDocument::setBgColor):
+ (WebCore::HTMLDocument::setFgColor):
+ (WebCore::HTMLDocument::setAlinkColor):
+ (WebCore::HTMLDocument::setLinkColor):
+ (WebCore::HTMLDocument::setVlinkColor):
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::setDir):
+ (WebCore::HTMLElement::setContentEditable):
+ (WebCore::HTMLElement::setDraggable):
+ (WebCore::HTMLElement::setSpellcheck):
+ (WebCore::HTMLElement::setTranslate):
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::setFormEnctype):
+ (WebCore::HTMLFormControlElement::setFormMethod):
+ (WebCore::HTMLFormControlElement::setAutocorrect):
+ (WebCore::HTMLFormControlElement::setAutocapitalize):
+ (WebCore::HTMLFormControlElement::setAutocomplete):
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::setAutocorrect):
+ (WebCore::HTMLFormElement::setAutocapitalize):
+ (WebCore::HTMLFormElement::setAction):
+ (WebCore::HTMLFormElement::setEnctype):
+ (WebCore::HTMLFormElement::setMethod):
+ (WebCore::HTMLFormElement::target):
+ * html/HTMLImageElement.cpp:
+ (WebCore::HTMLImageElement::width):
+ (WebCore::HTMLImageElement::height):
+ (WebCore::HTMLImageElement::setSrc):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::setType):
+ (WebCore::HTMLInputElement::updateType):
+ (WebCore::HTMLInputElement::altText):
+ (WebCore::HTMLInputElement::setDefaultValue):
+ * html/HTMLLinkElement.cpp:
+ (WebCore::HTMLLinkElement::href):
+ (WebCore::HTMLLinkElement::target):
+ (WebCore::HTMLLinkElement::type):
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::setSrc):
+ (WebCore::HTMLMediaElement::setPreload):
+ * html/HTMLMeterElement.cpp:
+ (WebCore::HTMLMeterElement::min):
+ (WebCore::HTMLMeterElement::setMin):
+ (WebCore::HTMLMeterElement::max):
+ (WebCore::HTMLMeterElement::setMax):
+ (WebCore::HTMLMeterElement::value):
+ (WebCore::HTMLMeterElement::setValue):
+ (WebCore::HTMLMeterElement::low):
+ (WebCore::HTMLMeterElement::setLow):
+ (WebCore::HTMLMeterElement::high):
+ (WebCore::HTMLMeterElement::setHigh):
+ (WebCore::HTMLMeterElement::optimum):
+ (WebCore::HTMLMeterElement::setOptimum):
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::containsJavaApplet):
+ * html/HTMLOptionElement.cpp:
+ (WebCore::HTMLOptionElement::createForJSConstructor):
+ (WebCore::HTMLOptionElement::setValue):
+ (WebCore::HTMLOptionElement::setLabel):
+ * html/HTMLProgressElement.cpp:
+ (WebCore::HTMLProgressElement::setValue):
+ (WebCore::HTMLProgressElement::setMax):
+ * html/HTMLScriptElement.cpp:
+ (WebCore::HTMLScriptElement::typeAttributeValue):
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::setMultiple):
+ * html/HTMLSourceElement.cpp:
+ (WebCore::HTMLSourceElement::setSrc):
+ (WebCore::HTMLSourceElement::media):
+ (WebCore::HTMLSourceElement::setMedia):
+ (WebCore::HTMLSourceElement::type):
+ (WebCore::HTMLSourceElement::setType):
+ * html/HTMLTableSectionElement.cpp:
+ (WebCore::HTMLTableSectionElement::setAlign):
+ (WebCore::HTMLTableSectionElement::setCh):
+ (WebCore::HTMLTableSectionElement::chOff):
+ (WebCore::HTMLTableSectionElement::setChOff):
+ (WebCore::HTMLTableSectionElement::setVAlign):
+ * html/HTMLTextFormControlElement.cpp:
+ (WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::imageSourceURL):
+ * html/HiddenInputType.cpp:
+ (WebCore::HiddenInputType::restoreFormControlState):
+ (WebCore::HiddenInputType::setValue):
+ * html/MediaDocument.cpp:
+ (WebCore::MediaDocumentParser::createDocumentStructure):
+ (WebCore::MediaDocument::replaceMediaElementTimerFired):
+ * html/PluginDocument.cpp:
+ (WebCore::PluginDocumentParser::createDocumentStructure):
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::createAutoFillButton):
+ (WebCore::TextFieldInputType::updateAutoFillButton):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlClosedCaptionsContainerElement::create):
+ (WebCore::MediaControlTimelineElement::create):
+ (WebCore::MediaControlPanelVolumeSliderElement::create):
+ (WebCore::MediaControlFullscreenVolumeSliderElement::create):
+ * html/shadow/TextControlInnerElements.cpp:
+ (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
+ * html/shadow/mac/ImageControlsButtonElementMac.cpp:
+ (WebCore::ImageControlsButtonElementMac::tryCreate):
+ * html/shadow/mac/ImageControlsRootElementMac.cpp:
+ (WebCore::ImageControlsRootElement::tryCreate):
+ * html/track/WebVTTElement.cpp:
+ (WebCore::WebVTTElement::createEquivalentHTMLElement):
+ * html/track/WebVTTParser.cpp:
+ (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
+ * inspector/InspectorCSSAgent.cpp:
+ (WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::buildObjectForFrame):
+ * mathml/MathMLSelectElement.cpp:
+ (WebCore::MathMLSelectElement::toggle):
+ * page/PageSerializer.cpp:
+ (WebCore::PageSerializer::serializeFrame):
+ * rendering/RenderDetailsMarker.cpp:
+ (WebCore::RenderDetailsMarker::isOpen):
+ * rendering/mathml/RenderMathMLFraction.cpp:
+ (WebCore::RenderMathMLFraction::updateFromElement):
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::setXmlbase):
+ * svg/SVGSVGElement.cpp:
+ (WebCore::SVGSVGElement::setContentScriptType):
+ (WebCore::SVGSVGElement::setContentStyleType):
+ * svg/SVGStyleElement.cpp:
+ (WebCore::SVGStyleElement::setMedia):
+ (WebCore::SVGStyleElement::setTitle):
+
+2016-07-15 Chris Dumez <cdumez@apple.com>
+
</ins><span class="cx"> Modernize StaticNodeList / StaticElementList
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=159831
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -85,19 +85,19 @@
</span><span class="cx">
</span><span class="cx"> auto iframeElement = HTMLIFrameElement::create(HTMLNames::iframeTag, m_parentElement->document());
</span><span class="cx"> if (m_attributes.contains("width"))
</span><del>- iframeElement->setAttribute(HTMLNames::widthAttr, AtomicString("100%", AtomicString::ConstructFromLiteral));
</del><ins>+ iframeElement->setAttributeWithoutSynchronization(HTMLNames::widthAttr, AtomicString("100%", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> const auto& heightValue = m_attributes.find("height");
</span><span class="cx"> if (heightValue != m_attributes.end()) {
</span><span class="cx"> iframeElement->setAttribute(HTMLNames::styleAttr, AtomicString("max-height: 100%", AtomicString::ConstructFromLiteral));
</span><del>- iframeElement->setAttribute(HTMLNames::heightAttr, heightValue->value);
</del><ins>+ iframeElement->setAttributeWithoutSynchronization(HTMLNames::heightAttr, heightValue->value);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- iframeElement->setAttribute(HTMLNames::srcAttr, youTubeURL(m_attributes.get("src")));
- iframeElement->setAttribute(HTMLNames::frameborderAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
</del><ins>+ iframeElement->setAttributeWithoutSynchronization(HTMLNames::srcAttr, youTubeURL(m_attributes.get("src")));
+ iframeElement->setAttributeWithoutSynchronization(HTMLNames::frameborderAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> // Disable frame flattening for this iframe.
</span><del>- iframeElement->setAttribute(HTMLNames::scrollingAttr, AtomicString("no", AtomicString::ConstructFromLiteral));
</del><ins>+ iframeElement->setAttributeWithoutSynchronization(HTMLNames::scrollingAttr, AtomicString("no", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> m_embedShadowElement->appendChild(iframeElement);
</span><span class="cx">
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/dom/Element.h        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> WEBCORE_EXPORT bool hasAttribute(const QualifiedName&) const;
</span><span class="cx"> WEBCORE_EXPORT const AtomicString& getAttribute(const QualifiedName&) const;
</span><span class="cx"> WEBCORE_EXPORT void setAttribute(const QualifiedName&, const AtomicString& value);
</span><del>- void setAttributeWithoutSynchronization(const QualifiedName&, const AtomicString& value);
</del><ins>+ WEBCORE_EXPORT void setAttributeWithoutSynchronization(const QualifiedName&, const AtomicString& value);
</ins><span class="cx"> void setSynchronizedLazyAttribute(const QualifiedName&, const AtomicString& value);
</span><span class="cx"> bool removeAttribute(const QualifiedName&);
</span><span class="cx">
</span><span class="lines">@@ -705,7 +705,7 @@
</span><span class="cx">
</span><span class="cx"> inline void Element::setIdAttribute(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(HTMLNames::idAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(HTMLNames::idAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline const SpaceSplitString& Element::classNames() const
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingApplyStyleCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ApplyStyleCommand.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ApplyStyleCommand.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/ApplyStyleCommand.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> unsigned matchedAttributes = 0;
</span><del>- if (element->getAttribute(classAttr) == styleSpanClassString())
</del><ins>+ if (element->fastGetAttribute(classAttr) == styleSpanClassString())
</ins><span class="cx"> matchedAttributes++;
</span><span class="cx"> if (element->hasAttribute(styleAttr) && (shouldStyleAttributeBeEmpty == AllowNonEmptyStyleAttribute
</span><span class="cx"> || !element->inlineStyle() || element->inlineStyle()->isEmpty()))
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> return hasNoAttributeOrOnlyStyleAttribute(downcast<HTMLFontElement>(element), shouldStyleAttributeBeEmpty);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static RefPtr<Element> createFontElement(Document& document)
</del><ins>+static RefPtr<HTMLElement> createFontElement(Document& document)
</ins><span class="cx"> {
</span><span class="cx"> return createHTMLElement(document, fontTag);
</span><span class="cx"> }
</span><span class="lines">@@ -1461,13 +1461,13 @@
</span><span class="cx"> if (styleChange.applyFontSize())
</span><span class="cx"> setNodeAttribute(fontContainer, sizeAttr, styleChange.fontSize());
</span><span class="cx"> } else {
</span><del>- RefPtr<Element> fontElement = createFontElement(document());
</del><ins>+ auto fontElement = createFontElement(document());
</ins><span class="cx"> if (styleChange.applyFontColor())
</span><del>- fontElement->setAttribute(colorAttr, styleChange.fontColor());
</del><ins>+ fontElement->setAttributeWithoutSynchronization(colorAttr, styleChange.fontColor());
</ins><span class="cx"> if (styleChange.applyFontFace())
</span><del>- fontElement->setAttribute(faceAttr, styleChange.fontFace());
</del><ins>+ fontElement->setAttributeWithoutSynchronization(faceAttr, styleChange.fontFace());
</ins><span class="cx"> if (styleChange.applyFontSize())
</span><del>- fontElement->setAttribute(sizeAttr, styleChange.fontSize());
</del><ins>+ fontElement->setAttributeWithoutSynchronization(sizeAttr, styleChange.fontSize());
</ins><span class="cx"> surroundNodeRangeWithElement(startNode, endNode, fontElement.get());
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditingStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditingStyle.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditingStyle.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/EditingStyle.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -1050,7 +1050,7 @@
</span><span class="cx"> if (!elementIsSpanOrElementEquivalent && !matchedAttributes)
</span><span class="cx"> return false; // element is not a span, a html element equivalent, or font element.
</span><span class="cx">
</span><del>- if (element->getAttribute(HTMLNames::classAttr) == AppleStyleSpanClass)
</del><ins>+ if (element->fastGetAttribute(HTMLNames::classAttr) == AppleStyleSpanClass)
</ins><span class="cx"> matchedAttributes++;
</span><span class="cx">
</span><span class="cx"> if (element->hasAttribute(HTMLNames::styleAttr)) {
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/Editor.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -1661,7 +1661,7 @@
</span><span class="cx"> if (is<HTMLTextFormControlElement>(focusedElement)) {
</span><span class="cx"> if (direction == NaturalWritingDirection)
</span><span class="cx"> return;
</span><del>- downcast<HTMLTextFormControlElement>(*focusedElement).setAttribute(dirAttr, direction == LeftToRightWritingDirection ? "ltr" : "rtl");
</del><ins>+ downcast<HTMLTextFormControlElement>(*focusedElement).setAttributeWithoutSynchronization(dirAttr, direction == LeftToRightWritingDirection ? "ltr" : "rtl");
</ins><span class="cx"> focusedElement->dispatchInputEvent();
</span><span class="cx"> document().updateStyleIfNeeded();
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -436,7 +436,7 @@
</span><span class="cx">
</span><span class="cx"> static bool isMailPasteAsQuotationNode(const Node* node)
</span><span class="cx"> {
</span><del>- return node && node->hasTagName(blockquoteTag) && downcast<Element>(node)->getAttribute(classAttr) == ApplePasteAsQuotation;
</del><ins>+ return node && node->hasTagName(blockquoteTag) && downcast<Element>(node)->fastGetAttribute(classAttr) == ApplePasteAsQuotation;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool isHeaderElement(const Node* a)
</span><span class="lines">@@ -894,7 +894,7 @@
</span><span class="cx"> // We can skip over elements whose class attribute is
</span><span class="cx"> // one of our internal classes.
</span><span class="cx"> const HTMLElement* element = static_cast<const HTMLElement*>(node);
</span><del>- const AtomicString& classAttributeValue = element->getAttribute(classAttr);
</del><ins>+ const AtomicString& classAttributeValue = element->fastGetAttribute(classAttr);
</ins><span class="cx"> if (classAttributeValue == AppleTabSpanClass
</span><span class="cx"> || classAttributeValue == AppleConvertedSpace
</span><span class="cx"> || classAttributeValue == ApplePasteAsQuotation)
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaDataDetectionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/DataDetection.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/DataDetection.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/cocoa/DataDetection.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -634,9 +634,9 @@
</span><span class="cx"> }
</span><span class="cx"> anchorElement->appendChild(WTFMove(newTextNode));
</span><span class="cx"> // Add a special attribute to mark this URLification as the result of data detectors.
</span><del>- anchorElement->setAttribute(x_apple_data_detectorsAttr, "true");
- anchorElement->setAttribute(x_apple_data_detectors_typeAttr, dataDetectorTypeForCategory(softLink_DataDetectorsCore_DDResultGetCategory(coreResult)));
- anchorElement->setAttribute(x_apple_data_detectors_resultAttr, identifier);
</del><ins>+ anchorElement->setAttributeWithoutSynchronization(x_apple_data_detectorsAttr, AtomicString("true", AtomicString::ConstructFromLiteral));
+ anchorElement->setAttributeWithoutSynchronization(x_apple_data_detectors_typeAttr, dataDetectorTypeForCategory(softLink_DataDetectorsCore_DDResultGetCategory(coreResult)));
+ anchorElement->setAttributeWithoutSynchronization(x_apple_data_detectors_resultAttr, identifier);
</ins><span class="cx">
</span><span class="cx"> parentNode->insertBefore(WTFMove(anchorElement), &currentTextNode);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/htmlediting.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -931,7 +931,7 @@
</span><span class="cx"> {
</span><span class="cx"> auto spanElement = document.createElement(spanTag, false);
</span><span class="cx">
</span><del>- spanElement->setAttribute(classAttr, AppleTabSpanClass);
</del><ins>+ spanElement->setAttributeWithoutSynchronization(classAttr, AppleTabSpanClass);
</ins><span class="cx"> spanElement->setAttribute(styleAttr, "white-space:pre");
</span><span class="cx">
</span><span class="cx"> spanElement->appendChild(tabTextNode, ASSERT_NO_EXCEPTION);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx"> || downcast<HTMLInputElement>(*focusedElement).isSearchField())))) {
</span><span class="cx"> if (direction == NaturalWritingDirection)
</span><span class="cx"> return;
</span><del>- downcast<HTMLElement>(*focusedElement).setAttribute(alignAttr, newValue);
</del><ins>+ downcast<HTMLElement>(*focusedElement).setAttributeWithoutSynchronization(alignAttr, newValue);
</ins><span class="cx"> m_frame.document()->updateStyleIfNeeded();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -490,7 +490,7 @@
</span><span class="cx"> }
</span><span class="cx"> } else {
</span><span class="cx"> auto anchor = frame.document()->createElement(HTMLNames::aTag, false);
</span><del>- anchor->setAttribute(HTMLNames::hrefAttr, url.string());
</del><ins>+ anchor->setAttributeWithoutSynchronization(HTMLNames::hrefAttr, url.string());
</ins><span class="cx"> anchor->appendChild(frame.document()->createTextNode([[(NSURL *)url absoluteString] precomposedStringWithCanonicalMapping]));
</span><span class="cx">
</span><span class="cx"> auto newFragment = frame.document()->createDocumentFragment();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacEditorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/EditorMac.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -598,7 +598,7 @@
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> auto anchor = frame.document()->createElement(HTMLNames::aTag, false);
</span><del>- anchor->setAttribute(HTMLNames::hrefAttr, url.string());
</del><ins>+ anchor->setAttributeWithoutSynchronization(HTMLNames::hrefAttr, url.string());
</ins><span class="cx"> anchor->appendChild(frame.document()->createTextNode([title precomposedStringWithCanonicalMapping]));
</span><span class="cx">
</span><span class="cx"> fragment = frame.document()->createDocumentFragment();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/editing/markup.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -796,7 +796,7 @@
</span><span class="cx"> fragment->appendChild(document.createTextNode(string), ASSERT_NO_EXCEPTION);
</span><span class="cx"> if (string.endsWith('\n')) {
</span><span class="cx"> auto element = HTMLBRElement::create(document);
</span><del>- element->setAttribute(classAttr, AppleInterchangeNewline);
</del><ins>+ element->setAttributeWithoutSynchronization(classAttr, AppleInterchangeNewline);
</ins><span class="cx"> fragment->appendChild(element, ASSERT_NO_EXCEPTION);
</span><span class="cx"> }
</span><span class="cx"> return fragment;
</span><span class="lines">@@ -828,7 +828,7 @@
</span><span class="cx"> if (s.isEmpty() && i + 1 == numLines) {
</span><span class="cx"> // For last line, use the "magic BR" rather than a P.
</span><span class="cx"> element = HTMLBRElement::create(document);
</span><del>- element->setAttribute(classAttr, AppleInterchangeNewline);
</del><ins>+ element->setAttributeWithoutSynchronization(classAttr, AppleInterchangeNewline);
</ins><span class="cx"> } else if (useLineBreak) {
</span><span class="cx"> element = HTMLBRElement::create(document);
</span><span class="cx"> fillContainerFromString(fragment, s);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlBaseButtonInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/BaseButtonInputType.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/BaseButtonInputType.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/BaseButtonInputType.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">
</span><span class="cx"> void BaseButtonInputType::setValue(const String& sanitizedValue, bool, TextFieldEventBehavior)
</span><span class="cx"> {
</span><del>- element().setAttribute(valueAttr, sanitizedValue);
</del><ins>+ element().setAttributeWithoutSynchronization(valueAttr, sanitizedValue);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlBaseCheckableInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/BaseCheckableInputType.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/BaseCheckableInputType.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/BaseCheckableInputType.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx">
</span><span class="cx"> void BaseCheckableInputType::setValue(const String& sanitizedValue, bool, TextFieldEventBehavior)
</span><span class="cx"> {
</span><del>- element().setAttribute(valueAttr, sanitizedValue);
</del><ins>+ element().setAttributeWithoutSynchronization(valueAttr, sanitizedValue);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool BaseCheckableInputType::isCheckable()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFTPDirectoryDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FTPDirectoryDocument.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -101,29 +101,29 @@
</span><span class="cx">
</span><span class="cx"> void FTPDirectoryDocumentParser::appendEntry(const String& filename, const String& size, const String& date, bool isDirectory)
</span><span class="cx"> {
</span><del>- RefPtr<Element> rowElement = m_tableElement->insertRow(-1, IGNORE_EXCEPTION);
- rowElement->setAttribute(HTMLNames::classAttr, "ftpDirectoryEntryRow");
</del><ins>+ auto rowElement = m_tableElement->insertRow(-1, IGNORE_EXCEPTION);
+ rowElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryEntryRow", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> auto typeElement = document()->createElement(tdTag, false);
</span><span class="cx"> typeElement->appendChild(Text::create(*document(), String(&noBreakSpace, 1)), IGNORE_EXCEPTION);
</span><span class="cx"> if (isDirectory)
</span><del>- typeElement->setAttribute(HTMLNames::classAttr, "ftpDirectoryIcon ftpDirectoryTypeDirectory");
</del><ins>+ typeElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryIcon ftpDirectoryTypeDirectory", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> else
</span><del>- typeElement->setAttribute(HTMLNames::classAttr, "ftpDirectoryIcon ftpDirectoryTypeFile");
</del><ins>+ typeElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryIcon ftpDirectoryTypeFile", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> rowElement->appendChild(typeElement, IGNORE_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> auto nameElement = createTDForFilename(filename);
</span><del>- nameElement->setAttribute(HTMLNames::classAttr, "ftpDirectoryFileName");
</del><ins>+ nameElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryFileName", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> rowElement->appendChild(nameElement, IGNORE_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> auto dateElement = document()->createElement(tdTag, false);
</span><span class="cx"> dateElement->appendChild(Text::create(*document(), date), IGNORE_EXCEPTION);
</span><del>- dateElement->setAttribute(HTMLNames::classAttr, "ftpDirectoryFileDate");
</del><ins>+ dateElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryFileDate", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> rowElement->appendChild(dateElement, IGNORE_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> auto sizeElement = document()->createElement(tdTag, false);
</span><span class="cx"> sizeElement->appendChild(Text::create(*document(), size), IGNORE_EXCEPTION);
</span><del>- sizeElement->setAttribute(HTMLNames::classAttr, "ftpDirectoryFileSize");
</del><ins>+ sizeElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("ftpDirectoryFileSize", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> rowElement->appendChild(sizeElement, IGNORE_EXCEPTION);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> fullURL = fullURL + '/' + filename;
</span><span class="cx">
</span><span class="cx"> auto anchorElement = document()->createElement(aTag, false);
</span><del>- anchorElement->setAttribute(HTMLNames::hrefAttr, fullURL);
</del><ins>+ anchorElement->setAttributeWithoutSynchronization(HTMLNames::hrefAttr, fullURL);
</ins><span class="cx"> anchorElement->appendChild(Text::create(*document(), filename), IGNORE_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> Ref<Element> tdElement = document()->createElement(tdTag, false);
</span><span class="lines">@@ -306,7 +306,7 @@
</span><span class="cx"> // Otherwise create one manually
</span><span class="cx"> tableElement = document()->createElement(tableTag, false);
</span><span class="cx"> m_tableElement = downcast<HTMLTableElement>(tableElement.get());
</span><del>- m_tableElement->setAttribute(HTMLNames::idAttr, "ftpDirectoryTable");
</del><ins>+ m_tableElement->setAttributeWithoutSynchronization(HTMLNames::idAttr, AtomicString("ftpDirectoryTable", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> // If we didn't find the table element, lets try to append our own to the body
</span><span class="cx"> // If that fails for some reason, cram it on the end of the document as a last
</span><span class="lines">@@ -331,8 +331,8 @@
</span><span class="cx">
</span><span class="cx"> auto tableElement = document()->createElement(tableTag, false);
</span><span class="cx"> m_tableElement = downcast<HTMLTableElement>(tableElement.ptr());
</span><del>- m_tableElement->setAttribute(HTMLNames::idAttr, "ftpDirectoryTable");
- m_tableElement->setAttribute(HTMLNames::styleAttr, "width:100%");
</del><ins>+ m_tableElement->setAttributeWithoutSynchronization(HTMLNames::idAttr, AtomicString("ftpDirectoryTable", AtomicString::ConstructFromLiteral));
+ m_tableElement->setAttribute(HTMLNames::styleAttr, AtomicString("width:100%", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> bodyElement->appendChild(tableElement, IGNORE_EXCEPTION);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -286,12 +286,12 @@
</span><span class="cx">
</span><span class="cx"> URL HTMLAnchorElement::href() const
</span><span class="cx"> {
</span><del>- return document().completeURL(stripLeadingAndTrailingHTMLSpaces(getAttribute(hrefAttr)));
</del><ins>+ return document().completeURL(stripLeadingAndTrailingHTMLSpaces(fastGetAttribute(hrefAttr)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLAnchorElement::setHref(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(hrefAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(hrefAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLAnchorElement::hasRel(uint32_t relation) const
</span><span class="lines">@@ -319,7 +319,7 @@
</span><span class="cx">
</span><span class="cx"> String HTMLAnchorElement::target() const
</span><span class="cx"> {
</span><del>- return getAttribute(targetAttr);
</del><ins>+ return fastGetAttribute(targetAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLAnchorElement::origin() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAreaElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAreaElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLAreaElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -251,7 +251,7 @@
</span><span class="cx">
</span><span class="cx"> String HTMLAreaElement::target() const
</span><span class="cx"> {
</span><del>- return getAttribute(targetAttr);
</del><ins>+ return fastGetAttribute(targetAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBaseElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBaseElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBaseElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLBaseElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLBaseElement::setHref(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(hrefAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(hrefAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLButtonElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLButtonElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLButtonElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLButtonElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLButtonElement::setType(const AtomicString& type)
</span><span class="cx"> {
</span><del>- setAttribute(typeAttr, type);
</del><ins>+ setAttributeWithoutSynchronization(typeAttr, type);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RenderPtr<RenderElement> HTMLButtonElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDetailsElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDetailsElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> void HTMLDetailsElement::didAddUserAgentShadowRoot(ShadowRoot* root)
</span><span class="cx"> {
</span><span class="cx"> auto summarySlot = HTMLSlotElement::create(slotTag, document());
</span><del>- summarySlot->setAttribute(nameAttr, summarySlotName());
</del><ins>+ summarySlot->setAttributeWithoutSynchronization(nameAttr, summarySlotName());
</ins><span class="cx"> m_summarySlot = summarySlot.ptr();
</span><span class="cx">
</span><span class="cx"> auto defaultSummary = HTMLSummaryElement::create(summaryTag, document());
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLDetailsElement::toggleOpen()
</span><span class="cx"> {
</span><del>- setAttribute(openAttr, m_isOpen ? nullAtom : emptyAtom);
</del><ins>+ setAttributeWithoutSynchronization(openAttr, m_isOpen ? nullAtom : emptyAtom);
</ins><span class="cx">
</span><span class="cx"> // We need to post to the document because toggling this element will delete it.
</span><span class="cx"> if (AXObjectCache* cache = document().existingAXObjectCache())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDocument.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDocument.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLDocument.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx"> void HTMLDocument::setBgColor(const String& value)
</span><span class="cx"> {
</span><span class="cx"> if (auto* bodyElement = body())
</span><del>- bodyElement->setAttribute(bgcolorAttr, value);
</del><ins>+ bodyElement->setAttributeWithoutSynchronization(bgcolorAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLDocument::fgColor() const
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx"> void HTMLDocument::setFgColor(const String& value)
</span><span class="cx"> {
</span><span class="cx"> if (auto* bodyElement = body())
</span><del>- bodyElement->setAttribute(textAttr, value);
</del><ins>+ bodyElement->setAttributeWithoutSynchronization(textAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLDocument::alinkColor() const
</span><span class="lines">@@ -178,7 +178,7 @@
</span><span class="cx"> void HTMLDocument::setAlinkColor(const String& value)
</span><span class="cx"> {
</span><span class="cx"> if (auto* bodyElement = body())
</span><del>- bodyElement->setAttribute(alinkAttr, value);
</del><ins>+ bodyElement->setAttributeWithoutSynchronization(alinkAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLDocument::linkColor() const
</span><span class="lines">@@ -192,7 +192,7 @@
</span><span class="cx"> void HTMLDocument::setLinkColor(const String& value)
</span><span class="cx"> {
</span><span class="cx"> if (auto* bodyElement = body())
</span><del>- bodyElement->setAttribute(linkAttr, value);
</del><ins>+ bodyElement->setAttributeWithoutSynchronization(linkAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLDocument::vlinkColor() const
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx"> void HTMLDocument::setVlinkColor(const String& value)
</span><span class="cx"> {
</span><span class="cx"> if (auto* bodyElement = body())
</span><del>- bodyElement->setAttribute(vlinkAttr, value);
</del><ins>+ bodyElement->setAttributeWithoutSynchronization(vlinkAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocument::captureEvents()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -541,7 +541,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLElement::setDir(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(dirAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(dirAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLElement::setInnerText(const String& text, ExceptionCode& ec)
</span><span class="lines">@@ -764,11 +764,11 @@
</span><span class="cx"> void HTMLElement::setContentEditable(const String& enabled, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> if (equalLettersIgnoringASCIICase(enabled, "true"))
</span><del>- setAttribute(contenteditableAttr, AtomicString("true", AtomicString::ConstructFromLiteral));
</del><ins>+ setAttributeWithoutSynchronization(contenteditableAttr, AtomicString("true", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> else if (equalLettersIgnoringASCIICase(enabled, "false"))
</span><del>- setAttribute(contenteditableAttr, AtomicString("false", AtomicString::ConstructFromLiteral));
</del><ins>+ setAttributeWithoutSynchronization(contenteditableAttr, AtomicString("false", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> else if (equalLettersIgnoringASCIICase(enabled, "plaintext-only"))
</span><del>- setAttribute(contenteditableAttr, AtomicString("plaintext-only", AtomicString::ConstructFromLiteral));
</del><ins>+ setAttributeWithoutSynchronization(contenteditableAttr, AtomicString("plaintext-only", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> else if (equalLettersIgnoringASCIICase(enabled, "inherit"))
</span><span class="cx"> removeAttribute(contenteditableAttr);
</span><span class="cx"> else
</span><span class="lines">@@ -782,7 +782,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLElement::setDraggable(bool value)
</span><span class="cx"> {
</span><del>- setAttribute(draggableAttr, value
</del><ins>+ setAttributeWithoutSynchronization(draggableAttr, value
</ins><span class="cx"> ? AtomicString("true", AtomicString::ConstructFromLiteral)
</span><span class="cx"> : AtomicString("false", AtomicString::ConstructFromLiteral));
</span><span class="cx"> }
</span><span class="lines">@@ -794,7 +794,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLElement::setSpellcheck(bool enable)
</span><span class="cx"> {
</span><del>- setAttribute(spellcheckAttr, enable
</del><ins>+ setAttributeWithoutSynchronization(spellcheckAttr, enable
</ins><span class="cx"> ? AtomicString("true", AtomicString::ConstructFromLiteral)
</span><span class="cx"> : AtomicString("false", AtomicString::ConstructFromLiteral));
</span><span class="cx"> }
</span><span class="lines">@@ -851,7 +851,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLElement::setTranslate(bool enable)
</span><span class="cx"> {
</span><del>- setAttribute(translateAttr, enable ? "yes" : "no");
</del><ins>+ setAttributeWithoutSynchronization(translateAttr, enable ? "yes" : "no");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLElement::rendererIsNeeded(const RenderStyle& style)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormControlElement::setFormEnctype(const String& value)
</span><span class="cx"> {
</span><del>- setAttribute(formenctypeAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(formenctypeAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLFormControlElement::formMethod() const
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormControlElement::setFormMethod(const String& value)
</span><span class="cx"> {
</span><del>- setAttribute(formmethodAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(formmethodAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLFormControlElement::formNoValidate() const
</span><span class="lines">@@ -580,7 +580,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormControlElement::setAutocorrect(bool autocorrect)
</span><span class="cx"> {
</span><del>- setAttribute(autocorrectAttr, autocorrect ? AtomicString("on", AtomicString::ConstructFromLiteral) : AtomicString("off", AtomicString::ConstructFromLiteral));
</del><ins>+ setAttributeWithoutSynchronization(autocorrectAttr, autocorrect ? AtomicString("on", AtomicString::ConstructFromLiteral) : AtomicString("off", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebAutocapitalizeType HTMLFormControlElement::autocapitalizeType() const
</span><span class="lines">@@ -600,7 +600,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormControlElement::setAutocapitalize(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(autocapitalizeAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(autocapitalizeAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #endif
</span><span class="lines">@@ -621,7 +621,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormControlElement::setAutocomplete(const String& value)
</span><span class="cx"> {
</span><del>- setAttribute(autocompleteAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(autocompleteAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AutofillMantle HTMLFormControlElement::autofillMantle() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -406,7 +406,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormElement::setAutocorrect(bool autocorrect)
</span><span class="cx"> {
</span><del>- setAttribute(autocorrectAttr, autocorrect ? AtomicString("on", AtomicString::ConstructFromLiteral) : AtomicString("off", AtomicString::ConstructFromLiteral));
</del><ins>+ setAttributeWithoutSynchronization(autocorrectAttr, autocorrect ? AtomicString("on", AtomicString::ConstructFromLiteral) : AtomicString("off", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WebAutocapitalizeType HTMLFormElement::autocapitalizeType() const
</span><span class="lines">@@ -421,7 +421,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormElement::setAutocapitalize(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(autocapitalizeAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(autocapitalizeAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #endif
</span><span class="lines">@@ -687,12 +687,12 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormElement::setAction(const String &value)
</span><span class="cx"> {
</span><del>- setAttribute(actionAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(actionAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLFormElement::setEnctype(const String &value)
</span><span class="cx"> {
</span><del>- setAttribute(enctypeAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(enctypeAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLFormElement::method() const
</span><span class="lines">@@ -702,12 +702,12 @@
</span><span class="cx">
</span><span class="cx"> void HTMLFormElement::setMethod(const String &value)
</span><span class="cx"> {
</span><del>- setAttribute(methodAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(methodAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLFormElement::target() const
</span><span class="cx"> {
</span><del>- return getAttribute(targetAttr);
</del><ins>+ return fastGetAttribute(targetAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLFormElement::wasUserSubmitted() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -375,7 +375,7 @@
</span><span class="cx"> if (!renderer()) {
</span><span class="cx"> // check the attribute first for an explicit pixel value
</span><span class="cx"> bool ok;
</span><del>- int width = getAttribute(widthAttr).toInt(&ok);
</del><ins>+ int width = fastGetAttribute(widthAttr).toInt(&ok);
</ins><span class="cx"> if (ok)
</span><span class="cx"> return width;
</span><span class="cx">
</span><span class="lines">@@ -401,7 +401,7 @@
</span><span class="cx"> if (!renderer()) {
</span><span class="cx"> // check the attribute first for an explicit pixel value
</span><span class="cx"> bool ok;
</span><del>- int height = getAttribute(heightAttr).toInt(&ok);
</del><ins>+ int height = fastGetAttribute(heightAttr).toInt(&ok);
</ins><span class="cx"> if (ok)
</span><span class="cx"> return height;
</span><span class="cx">
</span><span class="lines">@@ -507,7 +507,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLImageElement::setSrc(const String& value)
</span><span class="cx"> {
</span><del>- setAttribute(srcAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(srcAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLImageElement::setWidth(int value)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -441,7 +441,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLInputElement::setType(const AtomicString& type)
</span><span class="cx"> {
</span><del>- setAttribute(typeAttr, type);
</del><ins>+ setAttributeWithoutSynchronization(typeAttr, type);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLInputElement::updateType()
</span><span class="lines">@@ -456,7 +456,7 @@
</span><span class="cx"> if (hadType && !newType->canChangeFromAnotherType()) {
</span><span class="cx"> // Set the attribute back to the old value.
</span><span class="cx"> // Useful in case we were called from inside parseAttribute.
</span><del>- setAttribute(typeAttr, type());
</del><ins>+ setAttributeWithoutSynchronization(typeAttr, type());
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -478,7 +478,7 @@
</span><span class="cx"> bool willStoreValue = m_inputType->storesValueSeparateFromAttribute();
</span><span class="cx">
</span><span class="cx"> if (didStoreValue && !willStoreValue && hasDirtyValue()) {
</span><del>- setAttribute(valueAttr, m_valueIfDirty);
</del><ins>+ setAttributeWithoutSynchronization(valueAttr, m_valueIfDirty);
</ins><span class="cx"> m_valueIfDirty = String();
</span><span class="cx"> }
</span><span class="cx"> if (!didStoreValue && willStoreValue) {
</span><span class="lines">@@ -808,7 +808,7 @@
</span><span class="cx"> String alt = fastGetAttribute(altAttr);
</span><span class="cx"> // fall back to title attribute
</span><span class="cx"> if (alt.isNull())
</span><del>- alt = getAttribute(titleAttr);
</del><ins>+ alt = fastGetAttribute(titleAttr);
</ins><span class="cx"> if (alt.isNull())
</span><span class="cx"> alt = fastGetAttribute(valueAttr);
</span><span class="cx"> if (alt.isEmpty())
</span><span class="lines">@@ -1207,7 +1207,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLInputElement::setDefaultValue(const String &value)
</span><span class="cx"> {
</span><del>- setAttribute(valueAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(valueAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static inline bool isRFC2616TokenCharacter(UChar ch)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLinkElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLinkElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLinkElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLLinkElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -478,7 +478,7 @@
</span><span class="cx">
</span><span class="cx"> URL HTMLLinkElement::href() const
</span><span class="cx"> {
</span><del>- return document().completeURL(getAttribute(hrefAttr));
</del><ins>+ return document().completeURL(fastGetAttribute(hrefAttr));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLLinkElement::rel() const
</span><span class="lines">@@ -488,12 +488,12 @@
</span><span class="cx">
</span><span class="cx"> String HTMLLinkElement::target() const
</span><span class="cx"> {
</span><del>- return getAttribute(targetAttr);
</del><ins>+ return fastGetAttribute(targetAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLLinkElement::type() const
</span><span class="cx"> {
</span><del>- return getAttribute(typeAttr);
</del><ins>+ return fastGetAttribute(typeAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Optional<LinkIconType> HTMLLinkElement::iconType() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -996,7 +996,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLMediaElement::setSrc(const String& url)
</span><span class="cx"> {
</span><del>- setAttribute(srcAttr, url);
</del><ins>+ setAttributeWithoutSynchronization(srcAttr, url);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="lines">@@ -3047,7 +3047,7 @@
</span><span class="cx"> return;
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- setAttribute(preloadAttr, preload);
</del><ins>+ setAttributeWithoutSynchronization(preloadAttr, preload);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLMediaElement::play(PlayPromise&& promise)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMeterElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMeterElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">
</span><span class="cx"> double HTMLMeterElement::min() const
</span><span class="cx"> {
</span><del>- return parseToDoubleForNumberType(getAttribute(minAttr), 0);
</del><ins>+ return parseToDoubleForNumberType(fastGetAttribute(minAttr), 0);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLMeterElement::setMin(double min, ExceptionCode& ec)
</span><span class="lines">@@ -89,12 +89,12 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(minAttr, AtomicString::number(min));
</del><ins>+ setAttributeWithoutSynchronization(minAttr, AtomicString::number(min));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double HTMLMeterElement::max() const
</span><span class="cx"> {
</span><del>- return std::max(parseToDoubleForNumberType(getAttribute(maxAttr), std::max(1.0, min())), min());
</del><ins>+ return std::max(parseToDoubleForNumberType(fastGetAttribute(maxAttr), std::max(1.0, min())), min());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLMeterElement::setMax(double max, ExceptionCode& ec)
</span><span class="lines">@@ -103,12 +103,12 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(maxAttr, AtomicString::number(max));
</del><ins>+ setAttributeWithoutSynchronization(maxAttr, AtomicString::number(max));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double HTMLMeterElement::value() const
</span><span class="cx"> {
</span><del>- double value = parseToDoubleForNumberType(getAttribute(valueAttr), 0);
</del><ins>+ double value = parseToDoubleForNumberType(fastGetAttribute(valueAttr), 0);
</ins><span class="cx"> return std::min(std::max(value, min()), max());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -118,12 +118,12 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(valueAttr, AtomicString::number(value));
</del><ins>+ setAttributeWithoutSynchronization(valueAttr, AtomicString::number(value));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double HTMLMeterElement::low() const
</span><span class="cx"> {
</span><del>- double low = parseToDoubleForNumberType(getAttribute(lowAttr), min());
</del><ins>+ double low = parseToDoubleForNumberType(fastGetAttribute(lowAttr), min());
</ins><span class="cx"> return std::min(std::max(low, min()), max());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -133,12 +133,12 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(lowAttr, AtomicString::number(low));
</del><ins>+ setAttributeWithoutSynchronization(lowAttr, AtomicString::number(low));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double HTMLMeterElement::high() const
</span><span class="cx"> {
</span><del>- double high = parseToDoubleForNumberType(getAttribute(highAttr), max());
</del><ins>+ double high = parseToDoubleForNumberType(fastGetAttribute(highAttr), max());
</ins><span class="cx"> return std::min(std::max(high, low()), max());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -148,12 +148,12 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(highAttr, AtomicString::number(high));
</del><ins>+ setAttributeWithoutSynchronization(highAttr, AtomicString::number(high));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double HTMLMeterElement::optimum() const
</span><span class="cx"> {
</span><del>- double optimum = parseToDoubleForNumberType(getAttribute(optimumAttr), (max() + min()) / 2);
</del><ins>+ double optimum = parseToDoubleForNumberType(fastGetAttribute(optimumAttr), (max() + min()) / 2);
</ins><span class="cx"> return std::min(std::max(optimum, min()), max());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(optimumAttr, AtomicString::number(optimum));
</del><ins>+ setAttributeWithoutSynchronization(optimumAttr, AtomicString::number(optimum));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLMeterElement::GaugeRegion HTMLMeterElement::gaugeRegion() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLObjectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLObjectElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -470,12 +470,12 @@
</span><span class="cx">
</span><span class="cx"> bool HTMLObjectElement::containsJavaApplet() const
</span><span class="cx"> {
</span><del>- if (MIMETypeRegistry::isJavaAppletMIMEType(getAttribute(typeAttr)))
</del><ins>+ if (MIMETypeRegistry::isJavaAppletMIMEType(fastGetAttribute(typeAttr)))
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> for (auto& child : childrenOfType<Element>(*this)) {
</span><span class="cx"> if (child.hasTagName(paramTag) && equalLettersIgnoringASCIICase(child.getNameAttribute(), "type")
</span><del>- && MIMETypeRegistry::isJavaAppletMIMEType(child.getAttribute(valueAttr).string()))
</del><ins>+ && MIMETypeRegistry::isJavaAppletMIMEType(child.fastGetAttribute(valueAttr).string()))
</ins><span class="cx"> return true;
</span><span class="cx"> if (child.hasTagName(objectTag) && downcast<HTMLObjectElement>(child).containsJavaApplet())
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> if (!value.isNull())
</span><span class="cx"> element->setValue(value);
</span><span class="cx"> if (defaultSelected)
</span><del>- element->setAttribute(selectedAttr, emptyAtom);
</del><ins>+ element->setAttributeWithoutSynchronization(selectedAttr, emptyAtom);
</ins><span class="cx"> element->setSelected(selected);
</span><span class="cx">
</span><span class="cx"> return WTFMove(element);
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLOptionElement::setValue(const String& value)
</span><span class="cx"> {
</span><del>- setAttribute(valueAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(valueAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLOptionElement::selected()
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLOptionElement::setLabel(const String& label)
</span><span class="cx"> {
</span><del>- setAttribute(labelAttr, label);
</del><ins>+ setAttributeWithoutSynchronization(labelAttr, label);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLOptionElement::willResetComputedStyle()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLProgressElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLProgressElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(valueAttr, AtomicString::number(value >= 0 ? value : 0));
</del><ins>+ setAttributeWithoutSynchronization(valueAttr, AtomicString::number(value >= 0 ? value : 0));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double HTMLProgressElement::max() const
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx"> ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- setAttribute(maxAttr, AtomicString::number(max > 0 ? max : 1));
</del><ins>+ setAttributeWithoutSynchronization(maxAttr, AtomicString::number(max > 0 ? max : 1));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double HTMLProgressElement::position() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLScriptElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLScriptElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLScriptElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLScriptElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">
</span><span class="cx"> String HTMLScriptElement::typeAttributeValue() const
</span><span class="cx"> {
</span><del>- return getAttribute(typeAttr).string();
</del><ins>+ return fastGetAttribute(typeAttr).string();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLScriptElement::languageAttributeValue() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -405,7 +405,7 @@
</span><span class="cx"> {
</span><span class="cx"> bool oldMultiple = this->multiple();
</span><span class="cx"> int oldSelectedIndex = selectedIndex();
</span><del>- setAttribute(multipleAttr, multiple ? "" : 0);
</del><ins>+ setAttributeWithoutSynchronization(multipleAttr, multiple ? emptyAtom : nullAtom);
</ins><span class="cx">
</span><span class="cx"> // Restore selectedIndex after changing the multiple flag to preserve
</span><span class="cx"> // selection as single-line and multi-line has different defaults.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSourceElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSourceElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSourceElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLSourceElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -91,27 +91,27 @@
</span><span class="cx">
</span><span class="cx"> void HTMLSourceElement::setSrc(const String& url)
</span><span class="cx"> {
</span><del>- setAttribute(srcAttr, url);
</del><ins>+ setAttributeWithoutSynchronization(srcAttr, url);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLSourceElement::media() const
</span><span class="cx"> {
</span><del>- return getAttribute(mediaAttr);
</del><ins>+ return fastGetAttribute(mediaAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLSourceElement::setMedia(const String& media)
</span><span class="cx"> {
</span><del>- setAttribute(mediaAttr, media);
</del><ins>+ setAttributeWithoutSynchronization(mediaAttr, media);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLSourceElement::type() const
</span><span class="cx"> {
</span><del>- return getAttribute(typeAttr);
</del><ins>+ return fastGetAttribute(typeAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLSourceElement::setType(const String& type)
</span><span class="cx"> {
</span><del>- setAttribute(typeAttr, type);
</del><ins>+ setAttributeWithoutSynchronization(typeAttr, type);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLSourceElement::scheduleErrorEvent()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableSectionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableSectionElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableSectionElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLTableSectionElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLTableSectionElement::setAlign(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(alignAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(alignAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLTableSectionElement::ch() const
</span><span class="lines">@@ -127,17 +127,17 @@
</span><span class="cx">
</span><span class="cx"> void HTMLTableSectionElement::setCh(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(charAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(charAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLTableSectionElement::chOff() const
</span><span class="cx"> {
</span><del>- return getAttribute(charoffAttr);
</del><ins>+ return fastGetAttribute(charoffAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLTableSectionElement::setChOff(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(charoffAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(charoffAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLTableSectionElement::vAlign() const
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLTableSectionElement::setVAlign(const AtomicString& value)
</span><span class="cx"> {
</span><del>- setAttribute(valignAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(valignAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<HTMLCollection> HTMLTableSectionElement::rows()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -506,7 +506,7 @@
</span><span class="cx"> void HTMLTextFormControlElement::updateInnerTextElementEditability()
</span><span class="cx"> {
</span><span class="cx"> if (TextControlInnerTextElement* innerText = innerTextElement())
</span><del>- innerText->setAttribute(contenteditableAttr, isDisabledOrReadOnly() ? "false" : "plaintext-only");
</del><ins>+ innerText->setAttributeWithoutSynchronization(contenteditableAttr, isDisabledOrReadOnly() ? "false" : "plaintext-only");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLTextFormControlElement::lastChangeWasUserEdit() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx">
</span><span class="cx"> const AtomicString& HTMLVideoElement::imageSourceURL() const
</span><span class="cx"> {
</span><del>- const AtomicString& url = getAttribute(posterAttr);
</del><ins>+ const AtomicString& url = fastGetAttribute(posterAttr);
</ins><span class="cx"> if (!stripLeadingAndTrailingHTMLSpaces(url).isEmpty())
</span><span class="cx"> return url;
</span><span class="cx"> return m_defaultPosterURL;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHiddenInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HiddenInputType.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HiddenInputType.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/HiddenInputType.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">
</span><span class="cx"> void HiddenInputType::restoreFormControlState(const FormControlState& state)
</span><span class="cx"> {
</span><del>- element().setAttribute(valueAttr, state[0]);
</del><ins>+ element().setAttributeWithoutSynchronization(valueAttr, state[0]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HiddenInputType::supportsValidation() const
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">
</span><span class="cx"> void HiddenInputType::setValue(const String& sanitizedValue, bool, TextFieldEventBehavior)
</span><span class="cx"> {
</span><del>- element().setAttribute(valueAttr, sanitizedValue);
</del><ins>+ element().setAttributeWithoutSynchronization(valueAttr, sanitizedValue);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HiddenInputType::isHiddenType() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaDocument.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaDocument.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/MediaDocument.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -92,8 +92,8 @@
</span><span class="cx"> rootElement->appendChild(headElement, IGNORE_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> auto metaElement = document()->createElement(metaTag, false);
</span><del>- metaElement->setAttribute(nameAttr, "viewport");
- metaElement->setAttribute(contentAttr, "width=device-width,initial-scale=1,user-scalable=no");
</del><ins>+ metaElement->setAttributeWithoutSynchronization(nameAttr, AtomicString("viewport", AtomicString::ConstructFromLiteral));
+ metaElement->setAttributeWithoutSynchronization(contentAttr, AtomicString("width=device-width,initial-scale=1,user-scalable=no", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> headElement->appendChild(metaElement, IGNORE_EXCEPTION);
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="lines">@@ -103,10 +103,10 @@
</span><span class="cx"> auto mediaElement = document()->createElement(videoTag, false);
</span><span class="cx">
</span><span class="cx"> m_mediaElement = downcast<HTMLVideoElement>(mediaElement.ptr());
</span><del>- m_mediaElement->setAttribute(controlsAttr, emptyAtom);
- m_mediaElement->setAttribute(autoplayAttr, emptyAtom);
</del><ins>+ m_mediaElement->setAttributeWithoutSynchronization(controlsAttr, emptyAtom);
+ m_mediaElement->setAttributeWithoutSynchronization(autoplayAttr, emptyAtom);
</ins><span class="cx">
</span><del>- m_mediaElement->setAttribute(nameAttr, "media");
</del><ins>+ m_mediaElement->setAttributeWithoutSynchronization(nameAttr, AtomicString("media", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> StringBuilder elementStyle;
</span><span class="cx"> elementStyle.appendLiteral("max-width: 100%; max-height: 100%;");
</span><span class="lines">@@ -237,22 +237,22 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // Set body margin width and height to 0 as that is what a PluginDocument uses.
</span><del>- htmlBody->setAttribute(marginwidthAttr, "0");
- htmlBody->setAttribute(marginheightAttr, "0");
</del><ins>+ htmlBody->setAttributeWithoutSynchronization(marginwidthAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
+ htmlBody->setAttributeWithoutSynchronization(marginheightAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> if (HTMLVideoElement* videoElement = descendantVideoElement(*htmlBody)) {
</span><span class="cx"> RefPtr<Element> element = Document::createElement(embedTag, false);
</span><span class="cx"> HTMLEmbedElement& embedElement = downcast<HTMLEmbedElement>(*element);
</span><span class="cx">
</span><del>- embedElement.setAttribute(widthAttr, "100%");
- embedElement.setAttribute(heightAttr, "100%");
- embedElement.setAttribute(nameAttr, "plugin");
- embedElement.setAttribute(srcAttr, url().string());
</del><ins>+ embedElement.setAttributeWithoutSynchronization(widthAttr, AtomicString("100%", AtomicString::ConstructFromLiteral));
+ embedElement.setAttributeWithoutSynchronization(heightAttr, AtomicString("100%", AtomicString::ConstructFromLiteral));
+ embedElement.setAttributeWithoutSynchronization(nameAttr, AtomicString("plugin", AtomicString::ConstructFromLiteral));
+ embedElement.setAttributeWithoutSynchronization(srcAttr, url().string());
</ins><span class="cx">
</span><span class="cx"> DocumentLoader* documentLoader = loader();
</span><span class="cx"> ASSERT(documentLoader);
</span><span class="cx"> if (documentLoader)
</span><del>- embedElement.setAttribute(typeAttr, documentLoader->writer().mimeType());
</del><ins>+ embedElement.setAttributeWithoutSynchronization(typeAttr, documentLoader->writer().mimeType());
</ins><span class="cx">
</span><span class="cx"> videoElement->parentNode()->replaceChild(embedElement, *videoElement, IGNORE_EXCEPTION);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlPluginDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/PluginDocument.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/PluginDocument.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/PluginDocument.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -80,8 +80,8 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> auto body = document()->createElement(bodyTag, false);
</span><del>- body->setAttribute(marginwidthAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
- body->setAttribute(marginheightAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
</del><ins>+ body->setAttributeWithoutSynchronization(marginwidthAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
+ body->setAttributeWithoutSynchronization(marginheightAttr, AtomicString("0", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> body->setAttribute(styleAttr, AtomicString("background-color: rgb(217,224,233)", AtomicString::ConstructFromLiteral));
</span><span class="cx"> #else
</span><span class="lines">@@ -93,16 +93,16 @@
</span><span class="cx"> auto embedElement = document()->createElement(embedTag, false);
</span><span class="cx">
</span><span class="cx"> m_embedElement = downcast<HTMLEmbedElement>(embedElement.ptr());
</span><del>- m_embedElement->setAttribute(widthAttr, "100%");
- m_embedElement->setAttribute(heightAttr, "100%");
</del><ins>+ m_embedElement->setAttributeWithoutSynchronization(widthAttr, AtomicString("100%", AtomicString::ConstructFromLiteral));
+ m_embedElement->setAttributeWithoutSynchronization(heightAttr, AtomicString("100%", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><del>- m_embedElement->setAttribute(nameAttr, "plugin");
- m_embedElement->setAttribute(srcAttr, document()->url().string());
</del><ins>+ m_embedElement->setAttributeWithoutSynchronization(nameAttr, AtomicString("plugin", AtomicString::ConstructFromLiteral));
+ m_embedElement->setAttributeWithoutSynchronization(srcAttr, document()->url().string());
</ins><span class="cx">
</span><span class="cx"> DocumentLoader* loader = document()->loader();
</span><span class="cx"> ASSERT(loader);
</span><span class="cx"> if (loader)
</span><del>- m_embedElement->setAttribute(typeAttr, loader->writer().mimeType());
</del><ins>+ m_embedElement->setAttributeWithoutSynchronization(typeAttr, loader->writer().mimeType());
</ins><span class="cx">
</span><span class="cx"> downcast<PluginDocument>(*document()).setPluginElement(m_embedElement);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTextFieldInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TextFieldInputType.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -664,8 +664,8 @@
</span><span class="cx">
</span><span class="cx"> m_autoFillButton = AutoFillButtonElement::create(element().document(), *this);
</span><span class="cx"> m_autoFillButton->setPseudo(autoFillButtonTypeToAutoFillButtonPseudoClassName(autoFillButtonType));
</span><del>- m_autoFillButton->setAttribute(roleAttr, "button");
- m_autoFillButton->setAttribute(aria_labelAttr, autoFillButtonTypeToAccessibilityLabel(autoFillButtonType));
</del><ins>+ m_autoFillButton->setAttributeWithoutSynchronization(roleAttr, AtomicString("button", AtomicString::ConstructFromLiteral));
+ m_autoFillButton->setAttributeWithoutSynchronization(aria_labelAttr, autoFillButtonTypeToAccessibilityLabel(autoFillButtonType));
</ins><span class="cx"> m_container->appendChild(*m_autoFillButton, IGNORE_EXCEPTION);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -682,7 +682,7 @@
</span><span class="cx"> bool shouldUpdateAutoFillButtonType = isAutoFillButtonTypeChanged(attribute, element().autoFillButtonType());
</span><span class="cx"> if (shouldUpdateAutoFillButtonType) {
</span><span class="cx"> m_autoFillButton->setPseudo(autoFillButtonTypeToAutoFillButtonPseudoClassName(element().autoFillButtonType()));
</span><del>- m_autoFillButton->setAttribute(aria_labelAttr, autoFillButtonTypeToAccessibilityLabel(element().autoFillButtonType()));
</del><ins>+ m_autoFillButton->setAttributeWithoutSynchronization(aria_labelAttr, autoFillButtonTypeToAccessibilityLabel(element().autoFillButtonType()));
</ins><span class="cx"> }
</span><span class="cx"> m_autoFillButton->setInlineStyleProperty(CSSPropertyDisplay, CSSValueBlock, true);
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTreeBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -470,7 +470,7 @@
</span><span class="cx"> notImplemented(); // Acknowledge self-closing flag
</span><span class="cx"> processFakeStartTag(formTag);
</span><span class="cx"> if (Attribute* actionAttribute = findAttribute(token.attributes(), actionAttr))
</span><del>- m_tree.form()->setAttribute(actionAttr, actionAttribute->value());
</del><ins>+ m_tree.form()->setAttributeWithoutSynchronization(actionAttr, actionAttribute->value());
</ins><span class="cx"> processFakeStartTag(hrTag);
</span><span class="cx"> processFakeStartTag(labelTag);
</span><span class="cx"> if (Attribute* promptAttribute = findAttribute(token.attributes(), promptAttr))
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -656,7 +656,7 @@
</span><span class="cx"> Ref<MediaControlClosedCaptionsContainerElement> MediaControlClosedCaptionsContainerElement::create(Document& document)
</span><span class="cx"> {
</span><span class="cx"> Ref<MediaControlClosedCaptionsContainerElement> element = adoptRef(*new MediaControlClosedCaptionsContainerElement(document));
</span><del>- element->setAttribute(dirAttr, "auto");
</del><ins>+ element->setAttributeWithoutSynchronization(dirAttr, AtomicString("auto", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> element->hide();
</span><span class="cx"> return element;
</span><span class="cx"> }
</span><span class="lines">@@ -838,7 +838,7 @@
</span><span class="cx"> Ref<MediaControlTimelineElement> timeline = adoptRef(*new MediaControlTimelineElement(document, controls));
</span><span class="cx"> timeline->ensureUserAgentShadowRoot();
</span><span class="cx"> timeline->setType("range");
</span><del>- timeline->setAttribute(precisionAttr, "float");
</del><ins>+ timeline->setAttributeWithoutSynchronization(precisionAttr, AtomicString("float", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> return timeline;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -904,8 +904,8 @@
</span><span class="cx"> Ref<MediaControlPanelVolumeSliderElement> slider = adoptRef(*new MediaControlPanelVolumeSliderElement(document));
</span><span class="cx"> slider->ensureUserAgentShadowRoot();
</span><span class="cx"> slider->setType("range");
</span><del>- slider->setAttribute(precisionAttr, "float");
- slider->setAttribute(maxAttr, "1");
</del><ins>+ slider->setAttributeWithoutSynchronization(precisionAttr, AtomicString("float", AtomicString::ConstructFromLiteral));
+ slider->setAttributeWithoutSynchronization(maxAttr, AtomicString("1", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> return slider;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -922,8 +922,8 @@
</span><span class="cx"> Ref<MediaControlFullscreenVolumeSliderElement> slider = adoptRef(*new MediaControlFullscreenVolumeSliderElement(document));
</span><span class="cx"> slider->ensureUserAgentShadowRoot();
</span><span class="cx"> slider->setType("range");
</span><del>- slider->setAttribute(precisionAttr, "float");
- slider->setAttribute(maxAttr, "1");
</del><ins>+ slider->setAttributeWithoutSynchronization(precisionAttr, AtomicString("float", AtomicString::ConstructFromLiteral));
+ slider->setAttributeWithoutSynchronization(maxAttr, AtomicString("1", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> return slider;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowTextControlInnerElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -212,9 +212,9 @@
</span><span class="cx"> {
</span><span class="cx"> setPseudo(AtomicString("-webkit-search-cancel-button", AtomicString::ConstructFromLiteral));
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>- setAttribute(aria_labelAttr, AXSearchFieldCancelButtonText());
</del><ins>+ setAttributeWithoutSynchronization(aria_labelAttr, AXSearchFieldCancelButtonText());
</ins><span class="cx"> #endif
</span><del>- setAttribute(roleAttr, AtomicString("button", AtomicString::ConstructFromLiteral));
</del><ins>+ setAttributeWithoutSynchronization(roleAttr, AtomicString("button", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Ref<SearchFieldCancelButtonElement> SearchFieldCancelButtonElement::create(Document& document)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowmacImageControlsButtonElementMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> auto button = adoptRef(*new ImageControlsButtonElementMac(document));
</span><del>- button->setAttribute(HTMLNames::classAttr, "x-webkit-image-controls-button");
</del><ins>+ button->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("x-webkit-image-controls-button", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> IntSize positionOffset = document.page()->theme().imageControlsButtonPositionOffset();
</span><span class="cx"> button->setInlineStyleProperty(CSSPropertyTop, positionOffset.height(), CSSPrimitiveValue::CSS_PX);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowmacImageControlsRootElementMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> Ref<ImageControlsRootElementMac> controls = adoptRef(*new ImageControlsRootElementMac(document));
</span><del>- controls->setAttribute(HTMLNames::classAttr, "x-webkit-image-controls");
</del><ins>+ controls->setAttributeWithoutSynchronization(HTMLNames::classAttr, AtomicString("x-webkit-image-controls", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> if (RefPtr<ImageControlsButtonElementMac> button = ImageControlsButtonElementMac::tryCreate(document))
</span><span class="cx"> controls->appendChild(*button);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackWebVTTElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/WebVTTElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/WebVTTElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/track/WebVTTElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -96,8 +96,8 @@
</span><span class="cx"> case WebVTTNodeTypeLanguage:
</span><span class="cx"> case WebVTTNodeTypeVoice:
</span><span class="cx"> htmlElement = HTMLElementFactory::createElement(HTMLNames::spanTag, document);
</span><del>- htmlElement->setAttribute(HTMLNames::titleAttr, getAttribute(voiceAttributeName()));
- htmlElement->setAttribute(HTMLNames::langAttr, getAttribute(langAttributeName()));
</del><ins>+ htmlElement->setAttributeWithoutSynchronization(HTMLNames::titleAttr, fastGetAttribute(voiceAttributeName()));
+ htmlElement->setAttributeWithoutSynchronization(HTMLNames::langAttr, fastGetAttribute(langAttributeName()));
</ins><span class="cx"> break;
</span><span class="cx"> case WebVTTNodeTypeItalic:
</span><span class="cx"> htmlElement = HTMLElementFactory::createElement(HTMLNames::iTag, document);
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">
</span><span class="cx"> ASSERT(htmlElement);
</span><span class="cx"> if (htmlElement)
</span><del>- htmlElement->setAttribute(HTMLNames::classAttr, fastGetAttribute(HTMLNames::classAttr));
</del><ins>+ htmlElement->setAttributeWithoutSynchronization(HTMLNames::classAttr, fastGetAttribute(HTMLNames::classAttr));
</ins><span class="cx"> return htmlElement.releaseNonNull();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackWebVTTParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/WebVTTParser.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/WebVTTParser.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/html/track/WebVTTParser.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -551,13 +551,13 @@
</span><span class="cx">
</span><span class="cx"> auto child = WebVTTElement::create(nodeType, document);
</span><span class="cx"> if (!m_token.classes().isEmpty())
</span><del>- child->setAttribute(classAttr, m_token.classes());
</del><ins>+ child->setAttributeWithoutSynchronization(classAttr, m_token.classes());
</ins><span class="cx">
</span><span class="cx"> if (nodeType == WebVTTNodeTypeVoice)
</span><del>- child->setAttribute(WebVTTElement::voiceAttributeName(), m_token.annotation());
</del><ins>+ child->setAttributeWithoutSynchronization(WebVTTElement::voiceAttributeName(), m_token.annotation());
</ins><span class="cx"> else if (nodeType == WebVTTNodeTypeLanguage) {
</span><span class="cx"> m_languageStack.append(m_token.annotation());
</span><del>- child->setAttribute(WebVTTElement::langAttributeName(), m_languageStack.last());
</del><ins>+ child->setAttributeWithoutSynchronization(WebVTTElement::langAttributeName(), m_languageStack.last());
</ins><span class="cx"> }
</span><span class="cx"> if (!m_languageStack.isEmpty())
</span><span class="cx"> child->setLanguage(m_languageStack.last());
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorCSSAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -779,7 +779,7 @@
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> Ref<Element> styleElement = document.createElement(HTMLNames::styleTag, false);
</span><del>- styleElement->setAttribute(HTMLNames::typeAttr, "text/css");
</del><ins>+ styleElement->setAttributeWithoutSynchronization(HTMLNames::typeAttr, AtomicString("text/css", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> ContainerNode* targetNode;
</span><span class="cx"> // HEAD is absent in ImageDocuments, for example.
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorPageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -926,7 +926,7 @@
</span><span class="cx"> if (frame->ownerElement()) {
</span><span class="cx"> String name = frame->ownerElement()->getNameAttribute();
</span><span class="cx"> if (name.isEmpty())
</span><del>- name = frame->ownerElement()->getAttribute(HTMLNames::idAttr);
</del><ins>+ name = frame->ownerElement()->fastGetAttribute(HTMLNames::idAttr);
</ins><span class="cx"> frameObject->setName(name);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLSelectElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLSelectElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/mathml/MathMLSelectElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -238,7 +238,7 @@
</span><span class="cx">
</span><span class="cx"> // We update the attribute value of the selection attribute.
</span><span class="cx"> // This will also call MathMLSelectElement::attributeChanged to update the selected child.
</span><del>- setAttribute(MathMLNames::selectionAttr, AtomicString::number(newSelectedChildIndex));
</del><ins>+ setAttributeWithoutSynchronization(MathMLNames::selectionAttr, AtomicString::number(newSelectedChildIndex));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageSerializercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageSerializer.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageSerializer.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/page/PageSerializer.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx"> } else if (is<HTMLLinkElement>(element)) {
</span><span class="cx"> HTMLLinkElement& linkElement = downcast<HTMLLinkElement>(element);
</span><span class="cx"> if (CSSStyleSheet* sheet = linkElement.sheet()) {
</span><del>- URL url = document->completeURL(linkElement.getAttribute(HTMLNames::hrefAttr));
</del><ins>+ URL url = document->completeURL(linkElement.fastGetAttribute(HTMLNames::hrefAttr));
</ins><span class="cx"> serializeCSSStyleSheet(sheet, url);
</span><span class="cx"> ASSERT(m_resourceURLs.contains(url));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderDetailsMarkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx"> if (!renderer->node())
</span><span class="cx"> continue;
</span><span class="cx"> if (is<HTMLDetailsElement>(*renderer->node()))
</span><del>- return !downcast<HTMLDetailsElement>(*renderer->node()).getAttribute(openAttr).isNull();
</del><ins>+ return !downcast<HTMLDetailsElement>(*renderer->node()).fastGetAttribute(openAttr).isNull();
</ins><span class="cx"> if (is<HTMLInputElement>(*renderer->node()))
</span><span class="cx"> return true;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/svg/SVGElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -374,7 +374,7 @@
</span><span class="cx">
</span><span class="cx"> void SVGElement::setXmlbase(const String& value, ExceptionCode&)
</span><span class="cx"> {
</span><del>- setAttribute(XMLNames::baseAttr, value);
</del><ins>+ setAttributeWithoutSynchronization(XMLNames::baseAttr, value);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SVGElement::removedFrom(ContainerNode& rootParent)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGSVGElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGSVGElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/svg/SVGSVGElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx">
</span><span class="cx"> void SVGSVGElement::setContentScriptType(const AtomicString& type)
</span><span class="cx"> {
</span><del>- setAttribute(SVGNames::contentScriptTypeAttr, type);
</del><ins>+ setAttributeWithoutSynchronization(SVGNames::contentScriptTypeAttr, type);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const AtomicString& SVGSVGElement::contentStyleType() const
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">
</span><span class="cx"> void SVGSVGElement::setContentStyleType(const AtomicString& type)
</span><span class="cx"> {
</span><del>- setAttribute(SVGNames::contentStyleTypeAttr, type);
</del><ins>+ setAttributeWithoutSynchronization(SVGNames::contentStyleTypeAttr, type);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> FloatRect SVGSVGElement::viewport() const
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGStyleElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGStyleElement.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGStyleElement.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebCore/svg/SVGStyleElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">
</span><span class="cx"> void SVGStyleElement::setMedia(const AtomicString& media, ExceptionCode&)
</span><span class="cx"> {
</span><del>- setAttribute(SVGNames::mediaAttr, media);
</del><ins>+ setAttributeWithoutSynchronization(SVGNames::mediaAttr, media);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String SVGStyleElement::title() const
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">
</span><span class="cx"> void SVGStyleElement::setTitle(const AtomicString& title, ExceptionCode&)
</span><span class="cx"> {
</span><del>- setAttribute(SVGNames::titleAttr, title);
</del><ins>+ setAttributeWithoutSynchronization(SVGNames::titleAttr, title);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SVGStyleElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-07-15 Chris Dumez <cdumez@apple.com>
+
+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
+ https://bugs.webkit.org/show_bug.cgi?id=159793
+
+ Reviewed by Ryosuke Niwa.
+
+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.
+
+ * WebView/WebHTMLRepresentation.mm:
+ (matchLabelsAgainstElement):
+
</ins><span class="cx"> 2016-07-14 Alex Christensen <achristensen@webkit.org>
</span><span class="cx">
</span><span class="cx"> Use SocketProvider to create SocketStreamHandles
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLRepresentationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -520,11 +520,11 @@
</span><span class="cx"> {
</span><span class="cx"> // Match against the name element, then against the id element if no match is found for the name element.
</span><span class="cx"> // See 7538330 for one popular site that benefits from the id element check.
</span><del>- String resultFromNameAttribute = matchLabelsAgainstString(labels, element->getAttribute(nameAttr));
</del><ins>+ String resultFromNameAttribute = matchLabelsAgainstString(labels, element->fastGetAttribute(nameAttr));
</ins><span class="cx"> if (!resultFromNameAttribute.isEmpty())
</span><span class="cx"> return resultFromNameAttribute;
</span><span class="cx">
</span><del>- return matchLabelsAgainstString(labels, element->getAttribute(idAttr));
</del><ins>+ return matchLabelsAgainstString(labels, element->fastGetAttribute(idAttr));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit/win/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-07-15 Chris Dumez <cdumez@apple.com>
+
+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
+ https://bugs.webkit.org/show_bug.cgi?id=159793
+
+ Reviewed by Ryosuke Niwa.
+
+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.
+
+ * DOMHTMLClasses.cpp:
+ (DOMHTMLElement::idName):
+
</ins><span class="cx"> 2016-07-14 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Use emptyString() instead of "" when possible
</span></span></pre></div>
<a id="trunkSourceWebKitwinDOMHTMLClassescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/DOMHTMLClasses.cpp (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/DOMHTMLClasses.cpp        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit/win/DOMHTMLClasses.cpp        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -429,7 +429,7 @@
</span><span class="cx"> return E_POINTER;
</span><span class="cx">
</span><span class="cx"> ASSERT(is<HTMLElement>(m_element));
</span><del>- String idString = downcast<HTMLElement>(m_element)->getAttribute(idAttr);
</del><ins>+ String idString = downcast<HTMLElement>(m_element)->fastGetAttribute(idAttr);
</ins><span class="cx"> *result = BString(idString).release();
</span><span class="cx"> return S_OK;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit2/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2016-07-15 Chris Dumez <cdumez@apple.com>
+
+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
+ https://bugs.webkit.org/show_bug.cgi?id=159793
+
+ Reviewed by Ryosuke Niwa.
+
+ Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.
+
+ * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
+ (WebKit::PDFPlugin::PDFPlugin):
+ * WebProcess/Plugins/PDF/PDFPlugin.mm:
+ (WebKit::PDFPlugin::createPasswordEntryForm):
+ * WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
+ (WebKit::PDFPluginAnnotation::attach):
+ * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
+ (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):
+
</ins><span class="cx"> 2016-07-15 Ryosuke Niwa <rniwa@webkit.org>
</span><span class="cx">
</span><span class="cx"> Disable custom elements in Safari Tech Preview
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -523,7 +523,7 @@
</span><span class="cx"> if (supportsForms()) {
</span><span class="cx"> Document* document = webFrame()->coreFrame()->document();
</span><span class="cx"> m_annotationContainer = document->createElement(divTag, false);
</span><del>- m_annotationContainer->setAttribute(idAttr, "annotationContainer");
</del><ins>+ m_annotationContainer->setAttributeWithoutSynchronization(idAttr, AtomicString("annotationContainer", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> auto annotationStyleElement = document->createElement(styleTag, false);
</span><span class="cx"> annotationStyleElement->setTextContent(annotationStyle, ASSERT_NO_EXCEPTION);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -795,7 +795,7 @@
</span><span class="cx">
</span><span class="cx"> Document* document = webFrame()->coreFrame()->document();
</span><span class="cx"> m_passwordContainer = document->createElement(divTag, false);
</span><del>- m_passwordContainer->setAttribute(idAttr, "passwordContainer");
</del><ins>+ m_passwordContainer->setAttributeWithoutSynchronization(idAttr, AtomicString("passwordContainer", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> m_passwordField = PDFPluginPasswordField::create(m_pdfLayerController.get(), this);
</span><span class="cx"> m_passwordField->attach(m_passwordContainer.get());
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginAnnotationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginAnnotation.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginAnnotation.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginAnnotation.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> m_parent = parent;
</span><span class="cx"> m_element = createAnnotationElement();
</span><span class="cx">
</span><del>- m_element->setAttribute(classAttr, "annotation");
</del><ins>+ m_element->setAttributeWithoutSynchronization(classAttr, AtomicString("annotation", AtomicString::ConstructFromLiteral));
</ins><span class="cx"> m_element->addEventListener(eventNames().changeEvent, *m_eventListener, false);
</span><span class="cx"> m_element->addEventListener(eventNames().blurEvent, *m_eventListener, false);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm (203301 => 203302)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2016-07-15 21:34:16 UTC (rev 203301)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2016-07-15 21:35:40 UTC (rev 203302)
</span><span class="lines">@@ -87,11 +87,11 @@
</span><span class="cx">
</span><span class="cx"> for (NSString *choice in choices) {
</span><span class="cx"> auto choiceOption = document.createElement(optionTag, false);
</span><del>- choiceOption->setAttribute(valueAttr, choice);
</del><ins>+ choiceOption->setAttributeWithoutSynchronization(valueAttr, choice);
</ins><span class="cx"> choiceOption->setTextContent(choice, ASSERT_NO_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> if (choice == selectedChoice)
</span><del>- choiceOption->setAttribute(selectedAttr, "selected");
</del><ins>+ choiceOption->setAttributeWithoutSynchronization(selectedAttr, AtomicString("selected", AtomicString::ConstructFromLiteral));
</ins><span class="cx">
</span><span class="cx"> styledElement->appendChild(choiceOption);
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>