<!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>[203324] 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/203324">203324</a></dd>
<dt>Author</dt> <dd>rniwa@webkit.org</dd>
<dt>Date</dt> <dd>2016-07-16 08:21:55 -0700 (Sat, 16 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Rename fastGetAttribute to attributeWithoutSynchronization
https://bugs.webkit.org/show_bug.cgi?id=159852

Reviewed by Darin Adler.

Source/WebCore:

Renamed fastGetAttribute to attributeWithoutSynchronization for clarity.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::findAriaModalNodes):
(WebCore::nodeHasRole):
(WebCore::AXObjectCache::handleLiveRegionCreated):
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::AXObjectCache::handleAriaModalChange):
(WebCore::isNodeAriaVisible):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::siblingWithAriaRole):
(WebCore::AccessibilityNodeObject::titleElementText):
(WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
(WebCore::AccessibilityNodeObject::hierarchicalLevel):
(WebCore::AccessibilityNodeObject::stringValue):
(WebCore::accessibleNameForNode):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
(WebCore::AccessibilityObject::getAttribute):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue):
(WebCore::AccessibilityRenderObject::exposesTitleUIElement):
* accessibility/AccessibilitySVGElement.cpp:
(WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage):
(WebCore::AccessibilitySVGElement::accessibilityDescription):
* bindings/objc/DOM.mm:
(-[DOMHTMLLinkElement _mediaQueryMatches]):
* bindings/scripts/CodeGenerator.pm:
(GetterExpression):
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReflectedStringAttr):
* dom/AuthorStyleSheets.cpp:
(WebCore::AuthorStyleSheets::collectActiveStyleSheets):
* dom/Document.cpp:
(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::processBaseElement):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
* dom/Element.cpp:
(WebCore::Element::imageSourceURL):
(WebCore::Element::rendererIsNeeded):
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::pseudo):
(WebCore::Element::setPseudo):
(WebCore::Element::spellcheckAttributeState):
(WebCore::Element::canContainRangeEndPoint):
(WebCore::Element::completeURLsInAttributeValue):
* dom/Element.h:
(WebCore::Element::fastHasAttribute):
(WebCore::Element::attributeWithoutSynchronization):
(WebCore::Element::fastGetAttribute): Deleted.
* dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::executeScript):
* dom/SlotAssignment.cpp:
(WebCore::slotNameFromSlotAttribute):
(WebCore::SlotAssignment::SlotAssignment):
(WebCore::recursivelyFireSlotChangeEvent):
(WebCore::SlotAssignment::didChangeSlot):
(WebCore::SlotAssignment::hostChildElementDidChange):
(WebCore::SlotAssignment::assignedNodesForSlot):
(WebCore::SlotAssignment::resolveAllSlotElements):
* dom/TreeScope.cpp:
(WebCore::TreeScope::labelElementForId):
* dom/VisitedLinkState.cpp:
(WebCore::linkAttribute):
* editing/ApplyStyleCommand.cpp:
(WebCore::isLegacyAppleStyleSpan):
(WebCore::hasNoAttributeOrOnlyStyleAttribute):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isInterchangeNewlineNode):
(WebCore::isInterchangeConvertedSpaceSpan):
(WebCore::positionAvoidingPrecedingNodes):
(WebCore::isMailPasteAsQuotationNode):
(WebCore::isHeaderElement):
(WebCore::isInlineNodeWithStyle):
* editing/TextIterator.cpp:
(WebCore::isRendererReplacedElement):
* editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::requiresExtendedContext):
(WebCore::DataDetection::dataDetectorIdentifier):
(WebCore::DataDetection::shouldCancelDefaultAction):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):
* editing/gtk/EditorGtk.cpp:
(WebCore::elementURL):
* editing/htmlediting.cpp:
(WebCore::isTabSpanNode):
(WebCore::isTabSpanTextNode):
(WebCore::isMailBlockquote):
(WebCore::caretMinOffset):
* editing/markup.cpp:
(WebCore::createFragmentFromMarkup):
* html/Autofill.cpp:
(WebCore::AutofillData::createFromHTMLFormControlElement):
* html/BaseTextInputType.cpp:
(WebCore::BaseTextInputType::patternMismatch):
* html/DateInputType.cpp:
(WebCore::DateInputType::createStepRange):
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::createStepRange):
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::createStepRange):
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::findAssociatedForm):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):
(WebCore::FormAssociatedElement::formAttributeTargetChanged):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::draggable):
(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::setHref):
(WebCore::HTMLAnchorElement::target):
(WebCore::HTMLAnchorElement::origin):
(WebCore::HTMLAnchorElement::sendPings):
(WebCore::HTMLAnchorElement::handleClick):
* html/HTMLAnchorElement.h:
(WebCore::HTMLAnchorElement::visitedLinkHash):
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::updateWidget):
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::target):
* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::attachmentTitle):
(WebCore::HTMLAttachmentElement::attachmentType):
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::target):
(WebCore::HTMLBaseElement::href):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::addSubresourceAttributeURLs):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::value):
(WebCore::HTMLButtonElement::computeWillValidate):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::reset):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::bgColor):
(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::fgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::alinkColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::linkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::vlinkColor):
(WebCore::HTMLDocument::setVlinkColor):
* html/HTMLElement.cpp:
(WebCore::contentEditableType):
(WebCore::HTMLElement::collectStyleForPresentationAttribute):
(WebCore::HTMLElement::dir):
(WebCore::HTMLElement::setDir):
(WebCore::HTMLElement::draggable):
(WebCore::HTMLElement::setDraggable):
(WebCore::HTMLElement::title):
(WebCore::HTMLElement::tabIndex):
(WebCore::HTMLElement::translateAttributeMode):
(WebCore::HTMLElement::hasDirectionAuto):
(WebCore::HTMLElement::directionality):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::imageSourceURL):
(WebCore::HTMLEmbedElement::addSubresourceAttributeURLs):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::formEnctype):
(WebCore::HTMLFormControlElement::formMethod):
(WebCore::HTMLFormControlElement::formAction):
(WebCore::HTMLFormControlElement::autocorrect):
(WebCore::HTMLFormControlElement::autocapitalizeType):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::autocorrect):
(WebCore::HTMLFormElement::autocapitalizeType):
(WebCore::HTMLFormElement::autocapitalize):
(WebCore::HTMLFormElement::action):
(WebCore::HTMLFormElement::setAction):
(WebCore::HTMLFormElement::target):
(WebCore::HTMLFormElement::wasUserSubmitted):
(WebCore::HTMLFormElement::shouldAutocomplete):
(WebCore::HTMLFormElement::finishParsingChildren):
(WebCore::HTMLFormElement::autocomplete):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::location):
(WebCore::HTMLFrameElementBase::setLocation):
* html/HTMLHtmlElement.cpp:
(WebCore::HTMLHtmlElement::insertedByParser):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::imageSourceURL):
(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::selectImageSource):
(WebCore::HTMLImageElement::altText):
(WebCore::HTMLImageElement::createElementRenderer):
(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
(WebCore::HTMLImageElement::alt):
(WebCore::HTMLImageElement::draggable):
(WebCore::HTMLImageElement::setHeight):
(WebCore::HTMLImageElement::src):
(WebCore::HTMLImageElement::setSrc):
(WebCore::HTMLImageElement::addSubresourceAttributeURLs):
(WebCore::HTMLImageElement::didMoveToNewDocument):
(WebCore::HTMLImageElement::isServerMap):
(WebCore::HTMLImageElement::crossOrigin):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::altText):
(WebCore::HTMLInputElement::value):
(WebCore::HTMLInputElement::defaultValue):
(WebCore::HTMLInputElement::setDefaultValue):
(WebCore::HTMLInputElement::acceptMIMETypes):
(WebCore::HTMLInputElement::acceptFileExtensions):
(WebCore::HTMLInputElement::accept):
(WebCore::HTMLInputElement::alt):
(WebCore::HTMLInputElement::effectiveMaxLength):
(WebCore::HTMLInputElement::src):
(WebCore::HTMLInputElement::setAutoFilled):
(WebCore::HTMLInputElement::dataList):
(WebCore::HTMLInputElement::resetListAttributeTargetObserver):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::isKeytypeRSA):
(WebCore::HTMLKeygenElement::appendFormData):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::didAttachRenderers):
(WebCore::HTMLLIElement::parseValue):
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::control):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::crossOrigin):
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::href):
(WebCore::HTMLLinkElement::rel):
(WebCore::HTMLLinkElement::target):
(WebCore::HTMLLinkElement::type):
(WebCore::HTMLLinkElement::iconType):
* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::scrollAmount):
(WebCore::HTMLMarqueeElement::setScrollAmount):
(WebCore::HTMLMarqueeElement::scrollDelay):
(WebCore::HTMLMarqueeElement::setScrollDelay):
(WebCore::HTMLMarqueeElement::loop):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::insertedInto):
(WebCore::HTMLMediaElement::crossOrigin):
(WebCore::HTMLMediaElement::networkState):
(WebCore::HTMLMediaElement::mediaSessionTitle):
(WebCore::HTMLMediaElement::doesHaveAttribute):
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process):
(WebCore::HTMLMetaElement::content):
(WebCore::HTMLMetaElement::httpEquiv):
(WebCore::HTMLMetaElement::name):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::min):
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::max):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::value):
(WebCore::HTMLMeterElement::low):
(WebCore::HTMLMeterElement::high):
(WebCore::HTMLMeterElement::optimum):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
(WebCore::HTMLObjectElement::hasValidClassId):
(WebCore::HTMLObjectElement::imageSourceURL):
(WebCore::HTMLObjectElement::renderFallbackContent):
(WebCore::HTMLObjectElement::containsJavaApplet):
(WebCore::HTMLObjectElement::addSubresourceAttributeURLs):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::groupLabelText):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::value):
(WebCore::HTMLOptionElement::label):
* html/HTMLParamElement.cpp:
(WebCore::HTMLParamElement::value):
(WebCore::HTMLParamElement::isURLParameter):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::value):
(WebCore::HTMLProgressElement::max):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::crossOrigin):
(WebCore::HTMLScriptElement::src):
(WebCore::HTMLScriptElement::sourceAttributeValue):
(WebCore::HTMLScriptElement::charsetAttributeValue):
(WebCore::HTMLScriptElement::typeAttributeValue):
(WebCore::HTMLScriptElement::languageAttributeValue):
(WebCore::HTMLScriptElement::forAttributeValue):
(WebCore::HTMLScriptElement::eventAttributeValue):
(WebCore::HTMLScriptElement::asyncAttributeValue):
* html/HTMLSlotElement.cpp:
(WebCore::HTMLSlotElement::insertedInto):
(WebCore::HTMLSlotElement::removedFrom):
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::media):
(WebCore::HTMLSourceElement::setMedia):
(WebCore::HTMLSourceElement::type):
(WebCore::HTMLSourceElement::setType):
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::colSpanForBindings):
(WebCore::HTMLTableCellElement::rowSpan):
(WebCore::HTMLTableCellElement::rowSpanForBindings):
(WebCore::HTMLTableCellElement::cellIndex):
(WebCore::HTMLTableCellElement::abbr):
(WebCore::HTMLTableCellElement::axis):
(WebCore::HTMLTableCellElement::setColSpanForBindings):
(WebCore::HTMLTableCellElement::headers):
(WebCore::HTMLTableCellElement::setRowSpanForBindings):
(WebCore::HTMLTableCellElement::scope):
(WebCore::HTMLTableCellElement::addSubresourceAttributeURLs):
(WebCore::HTMLTableCellElement::cellAbove):
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::width):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::rules):
(WebCore::HTMLTableElement::summary):
(WebCore::HTMLTableElement::addSubresourceAttributeURLs):
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::align):
(WebCore::HTMLTableSectionElement::setAlign):
(WebCore::HTMLTableSectionElement::ch):
(WebCore::HTMLTableSectionElement::setCh):
(WebCore::HTMLTableSectionElement::chOff):
(WebCore::HTMLTableSectionElement::setChOff):
(WebCore::HTMLTableSectionElement::vAlign):
(WebCore::HTMLTableSectionElement::setVAlign):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::appendFormData):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::strippedPlaceholder):
(WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
(WebCore::HTMLTextFormControlElement::directionForFormData):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::srclang):
(WebCore::HTMLTrackElement::label):
(WebCore::HTMLTrackElement::isDefault):
(WebCore::HTMLTrackElement::ensureTrack):
(WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseAttribute):
(WebCore::HTMLVideoElement::imageSourceURL):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):
* html/InputType.cpp:
(WebCore::InputType::applyStep):
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
* html/MonthInputType.cpp:
(WebCore::MonthInputType::createStepRange):
* html/NumberInputType.cpp:
(WebCore::NumberInputType::createStepRange):
(WebCore::NumberInputType::sizeShouldIncludeDecoration):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createStepRange):
(WebCore::RangeInputType::handleKeydownEvent):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::appendFormData):
(WebCore::TextFieldInputType::updateAutoFillButton):
* html/TimeInputType.cpp:
(WebCore::TimeInputType::createStepRange):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::updateValidationMessage):
* html/WeekInputType.cpp:
(WebCore::WeekInputType::createStepRange):
* html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::createEquivalentHTMLElement):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::buildObjectForFrame):
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::defaultSubstituteDataForURL):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::isPluginContentAllowedByContentSecurityPolicy):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::colSpan):
(WebCore::MathMLElement::rowSpan):
(WebCore::MathMLElement::childShouldCreateRenderer):
(WebCore::MathMLElement::defaultEventHandler):
(WebCore::MathMLElement::cachedMathMLLength):
* mathml/MathMLFractionElement.cpp:
(WebCore::MathMLFractionElement::lineThickness):
(WebCore::MathMLFractionElement::cachedFractionAlignment):
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):
(WebCore::MathMLSelectElement::defaultEventHandler):
(WebCore::MathMLSelectElement::willRespondToMouseClickEvents):
(WebCore::MathMLSelectElement::toggle):
* page/EventHandler.cpp:
(WebCore::findDropZone):
* page/Frame.cpp:
(WebCore::Frame::matchLabelsAgainstElement):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeImageToDataObject):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::altDisplayString):
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::isOpen):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageMap):
(WebCore::RenderImage::nodeAtPoint):
* rendering/RenderMenuList.cpp:
(RenderMenuList::itemAccessibilityText):
(RenderMenuList::itemToolTip):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::autosaveName):
* rendering/RenderThemeIOS.mm:
(WebCore::getAttachmentProgress):
(WebCore::AttachmentInfo::AttachmentInfo):
* rendering/RenderThemeMac.mm:
(WebCore::AttachmentLayout::layOutSubtitle):
(WebCore::RenderThemeMac::paintAttachment):
* rendering/mathml/MathMLStyle.cpp:
(WebCore::MathMLStyle::resolveMathMLStyle):
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::updateFromElement):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttributeValue):
(WebCore::RenderMathMLOperator::setOperatorProperties):
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
* rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::hasAccent):
* style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::SharingResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::title):
(WebCore::SVGAElement::defaultEventHandler):
* svg/SVGAltGlyphElement.cpp:
(WebCore::SVGAltGlyphElement::glyphRef):
(WebCore::SVGAltGlyphElement::setFormat):
(WebCore::SVGAltGlyphElement::format):
(WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::toValue):
(WebCore::SVGAnimationElement::byValue):
(WebCore::SVGAnimationElement::fromValue):
(WebCore::SVGAnimationElement::isAdditive):
(WebCore::SVGAnimationElement::isAccumulated):
* svg/SVGElement.cpp:
(WebCore::SVGElement::xmlbase):
(WebCore::SVGElement::setXmlbase):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::unitsPerEm):
(WebCore::SVGFontFaceElement::xHeight):
(WebCore::SVGFontFaceElement::capHeight):
(WebCore::SVGFontFaceElement::horizontalOriginX):
(WebCore::SVGFontFaceElement::horizontalOriginY):
(WebCore::SVGFontFaceElement::horizontalAdvanceX):
(WebCore::SVGFontFaceElement::verticalOriginX):
(WebCore::SVGFontFaceElement::verticalOriginY):
(WebCore::SVGFontFaceElement::verticalAdvanceY):
(WebCore::SVGFontFaceElement::ascent):
(WebCore::SVGFontFaceElement::descent):
* svg/SVGFontFaceNameElement.cpp:
(WebCore::SVGFontFaceNameElement::srcValue):
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::srcValue):
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::glyphRef):
(WebCore::SVGGlyphRefElement::setGlyphRef):
* svg/SVGHKernElement.cpp:
(WebCore::SVGHKernElement::buildHorizontalKerningPair):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::contentScriptType):
(WebCore::SVGSVGElement::contentStyleType):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::media):
(WebCore::SVGStyleElement::title):
(WebCore::SVGStyleElement::setTitle):
* svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::appendCFFTable):
(WebCore::SVGToOTFFontConverter::appendArabicReplacementSubtable):
(WebCore::SVGToOTFFontConverter::appendVORGTable):
(WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):
* svg/SVGVKernElement.cpp:
(WebCore::SVGVKernElement::buildVerticalKerningPair):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::insertedInto):
(WebCore::SVGSMILElement::parseAttribute):
(WebCore::SVGSMILElement::svgAttributeChanged):
(WebCore::SVGSMILElement::restart):
(WebCore::SVGSMILElement::fill):
(WebCore::SVGSMILElement::dur):
(WebCore::SVGSMILElement::repeatDur):
(WebCore::SVGSMILElement::repeatCount):
(WebCore::SVGSMILElement::maxValue):
(WebCore::SVGSMILElement::minValue):

Source/WebKit/mac:

* WebView/WebHTMLRepresentation.mm:
(matchLabelsAgainstElement):

Source/WebKit/win:

* DOMHTMLClasses.cpp:
(DOMHTMLElement::idName):

Source/WebKit2:

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::getAssistedNodeInformation):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAXObjectCachecpp">trunk/Source/WebCore/accessibility/AXObjectCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilitySVGElementcpp">trunk/Source/WebCore/accessibility/AccessibilitySVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsobjcDOMmm">trunk/Source/WebCore/bindings/objc/DOM.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorpm">trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCoredomAuthorStyleSheetscpp">trunk/Source/WebCore/dom/AuthorStyleSheets.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentOrderedMapcpp">trunk/Source/WebCore/dom/DocumentOrderedMap.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoredomInlineStyleSheetOwnercpp">trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptElementcpp">trunk/Source/WebCore/dom/ScriptElement.cpp</a></li>
<li><a href="#trunkSourceWebCoredomSlotAssignmentcpp">trunk/Source/WebCore/dom/SlotAssignment.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTreeScopecpp">trunk/Source/WebCore/dom/TreeScope.cpp</a></li>
<li><a href="#trunkSourceWebCoredomVisitedLinkStatecpp">trunk/Source/WebCore/dom/VisitedLinkState.cpp</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="#trunkSourceWebCoreeditingReplaceSelectionCommandcpp">trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTextIteratorcpp">trunk/Source/WebCore/editing/TextIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaDataDetectionmm">trunk/Source/WebCore/editing/cocoa/DataDetection.mm</a></li>
<li><a href="#trunkSourceWebCoreeditinggtkEditorGtkcpp">trunk/Source/WebCore/editing/gtk/EditorGtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkupcpp">trunk/Source/WebCore/editing/markup.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlAutofillcpp">trunk/Source/WebCore/html/Autofill.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlBaseTextInputTypecpp">trunk/Source/WebCore/html/BaseTextInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlDateInputTypecpp">trunk/Source/WebCore/html/DateInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlDateTimeInputTypecpp">trunk/Source/WebCore/html/DateTimeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlDateTimeLocalInputTypecpp">trunk/Source/WebCore/html/DateTimeLocalInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFormAssociatedElementcpp">trunk/Source/WebCore/html/FormAssociatedElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementh">trunk/Source/WebCore/html/HTMLAnchorElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAppletElementcpp">trunk/Source/WebCore/html/HTMLAppletElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAreaElementcpp">trunk/Source/WebCore/html/HTMLAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAttachmentElementcpp">trunk/Source/WebCore/html/HTMLAttachmentElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLBaseElementcpp">trunk/Source/WebCore/html/HTMLBaseElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLBodyElementcpp">trunk/Source/WebCore/html/HTMLBodyElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLButtonElementcpp">trunk/Source/WebCore/html/HTMLButtonElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCanvasElementcpp">trunk/Source/WebCore/html/HTMLCanvasElement.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="#trunkSourceWebCorehtmlHTMLEmbedElementcpp">trunk/Source/WebCore/html/HTMLEmbedElement.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="#trunkSourceWebCorehtmlHTMLFrameElementBasecpp">trunk/Source/WebCore/html/HTMLFrameElementBase.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLHtmlElementcpp">trunk/Source/WebCore/html/HTMLHtmlElement.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="#trunkSourceWebCorehtmlHTMLKeygenElementcpp">trunk/Source/WebCore/html/HTMLKeygenElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLIElementcpp">trunk/Source/WebCore/html/HTMLLIElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLabelElementcpp">trunk/Source/WebCore/html/HTMLLabelElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLinkElementcpp">trunk/Source/WebCore/html/HTMLLinkElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMarqueeElementcpp">trunk/Source/WebCore/html/HTMLMarqueeElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMetaElementcpp">trunk/Source/WebCore/html/HTMLMetaElement.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="#trunkSourceWebCorehtmlHTMLOptGroupElementcpp">trunk/Source/WebCore/html/HTMLOptGroupElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionElementcpp">trunk/Source/WebCore/html/HTMLOptionElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLParamElementcpp">trunk/Source/WebCore/html/HTMLParamElement.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="#trunkSourceWebCorehtmlHTMLSlotElementcpp">trunk/Source/WebCore/html/HTMLSlotElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSourceElementcpp">trunk/Source/WebCore/html/HTMLSourceElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableCellElementcpp">trunk/Source/WebCore/html/HTMLTableCellElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableColElementcpp">trunk/Source/WebCore/html/HTMLTableColElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableElementcpp">trunk/Source/WebCore/html/HTMLTableElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableSectionElementcpp">trunk/Source/WebCore/html/HTMLTableSectionElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementcpp">trunk/Source/WebCore/html/HTMLTextAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextFormControlElementcpp">trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTrackElementcpp">trunk/Source/WebCore/html/HTMLTrackElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlImageInputTypecpp">trunk/Source/WebCore/html/ImageInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlInputTypecpp">trunk/Source/WebCore/html/InputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaElementSessioncpp">trunk/Source/WebCore/html/MediaElementSession.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMonthInputTypecpp">trunk/Source/WebCore/html/MonthInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlNumberInputTypecpp">trunk/Source/WebCore/html/NumberInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlRangeInputTypecpp">trunk/Source/WebCore/html/RangeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlTextFieldInputTypecpp">trunk/Source/WebCore/html/TextFieldInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlTimeInputTypecpp">trunk/Source/WebCore/html/TimeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlValidationMessagecpp">trunk/Source/WebCore/html/ValidationMessage.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlWeekInputTypecpp">trunk/Source/WebCore/html/WeekInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackWebVTTElementcpp">trunk/Source/WebCore/html/track/WebVTTElement.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgentcpp">trunk/Source/WebCore/inspector/InspectorPageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFormSubmissioncpp">trunk/Source/WebCore/loader/FormSubmission.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderImageLoadercpp">trunk/Source/WebCore/loader/ImageLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderSubframeLoadercpp">trunk/Source/WebCore/loader/SubframeLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLElementcpp">trunk/Source/WebCore/mathml/MathMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLFractionElementcpp">trunk/Source/WebCore/mathml/MathMLFractionElement.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLSelectElementcpp">trunk/Source/WebCore/mathml/MathMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFramecpp">trunk/Source/WebCore/page/Frame.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageSerializercpp">trunk/Source/WebCore/page/PageSerializer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinPasteboardWincpp">trunk/Source/WebCore/platform/win/PasteboardWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingHitTestResultcpp">trunk/Source/WebCore/rendering/HitTestResult.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderDetailsMarkercpp">trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderImagecpp">trunk/Source/WebCore/rendering/RenderImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderSearchFieldcpp">trunk/Source/WebCore/rendering/RenderSearchField.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMacmm">trunk/Source/WebCore/rendering/RenderThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlMathMLStylecpp">trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLFencedcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLUnderOvercpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp</a></li>
<li><a href="#trunkSourceWebCorestyleStyleSharingResolvercpp">trunk/Source/WebCore/style/StyleSharingResolver.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAElementcpp">trunk/Source/WebCore/svg/SVGAElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAltGlyphElementcpp">trunk/Source/WebCore/svg/SVGAltGlyphElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAnimationElementcpp">trunk/Source/WebCore/svg/SVGAnimationElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGElementcpp">trunk/Source/WebCore/svg/SVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontFaceElementcpp">trunk/Source/WebCore/svg/SVGFontFaceElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontFaceNameElementcpp">trunk/Source/WebCore/svg/SVGFontFaceNameElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontFaceUriElementcpp">trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGGlyphRefElementcpp">trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGHKernElementcpp">trunk/Source/WebCore/svg/SVGHKernElement.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="#trunkSourceWebCoresvgSVGToOTFFontConversioncpp">trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGVKernElementcpp">trunk/Source/WebCore/svg/SVGVKernElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvganimationSVGSMILElementcpp">trunk/Source/WebCore/svg/animation/SVGSMILElement.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="#trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm">trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/ChangeLog        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1,3 +1,517 @@
</span><ins>+2016-07-16  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
+        Rename fastGetAttribute to attributeWithoutSynchronization
+        https://bugs.webkit.org/show_bug.cgi?id=159852
+
+        Reviewed by Darin Adler.
+
+        Renamed fastGetAttribute to attributeWithoutSynchronization for clarity.
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::findAriaModalNodes):
+        (WebCore::nodeHasRole):
+        (WebCore::AXObjectCache::handleLiveRegionCreated):
+        (WebCore::AXObjectCache::handleMenuItemSelected):
+        (WebCore::AXObjectCache::handleAriaModalChange):
+        (WebCore::isNodeAriaVisible):
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::siblingWithAriaRole):
+        (WebCore::AccessibilityNodeObject::titleElementText):
+        (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
+        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
+        (WebCore::AccessibilityNodeObject::stringValue):
+        (WebCore::accessibleNameForNode):
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
+        (WebCore::AccessibilityObject::getAttribute):
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::stringValue):
+        (WebCore::AccessibilityRenderObject::exposesTitleUIElement):
+        * accessibility/AccessibilitySVGElement.cpp:
+        (WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage):
+        (WebCore::AccessibilitySVGElement::accessibilityDescription):
+        * bindings/objc/DOM.mm:
+        (-[DOMHTMLLinkElement _mediaQueryMatches]):
+        * bindings/scripts/CodeGenerator.pm:
+        (GetterExpression):
+        * bindings/scripts/CodeGeneratorObjC.pm:
+        (GenerateImplementation):
+        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::jsTestObjReflectedStringAttr):
+        * dom/AuthorStyleSheets.cpp:
+        (WebCore::AuthorStyleSheets::collectActiveStyleSheets):
+        * dom/Document.cpp:
+        (WebCore::Document::buildAccessKeyMap):
+        (WebCore::Document::processBaseElement):
+        * dom/DocumentOrderedMap.cpp:
+        (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
+        * dom/Element.cpp:
+        (WebCore::Element::imageSourceURL):
+        (WebCore::Element::rendererIsNeeded):
+        (WebCore::Element::insertedInto):
+        (WebCore::Element::removedFrom):
+        (WebCore::Element::pseudo):
+        (WebCore::Element::setPseudo):
+        (WebCore::Element::spellcheckAttributeState):
+        (WebCore::Element::canContainRangeEndPoint):
+        (WebCore::Element::completeURLsInAttributeValue):
+        * dom/Element.h:
+        (WebCore::Element::fastHasAttribute):
+        (WebCore::Element::attributeWithoutSynchronization):
+        (WebCore::Element::fastGetAttribute): Deleted.
+        * dom/InlineStyleSheetOwner.cpp:
+        (WebCore::InlineStyleSheetOwner::createSheet):
+        * dom/ScriptElement.cpp:
+        (WebCore::ScriptElement::requestScript):
+        (WebCore::ScriptElement::executeScript):
+        * dom/SlotAssignment.cpp:
+        (WebCore::slotNameFromSlotAttribute):
+        (WebCore::SlotAssignment::SlotAssignment):
+        (WebCore::recursivelyFireSlotChangeEvent):
+        (WebCore::SlotAssignment::didChangeSlot):
+        (WebCore::SlotAssignment::hostChildElementDidChange):
+        (WebCore::SlotAssignment::assignedNodesForSlot):
+        (WebCore::SlotAssignment::resolveAllSlotElements):
+        * dom/TreeScope.cpp:
+        (WebCore::TreeScope::labelElementForId):
+        * dom/VisitedLinkState.cpp:
+        (WebCore::linkAttribute):
+        * editing/ApplyStyleCommand.cpp:
+        (WebCore::isLegacyAppleStyleSpan):
+        (WebCore::hasNoAttributeOrOnlyStyleAttribute):
+        * editing/EditingStyle.cpp:
+        (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::isInterchangeNewlineNode):
+        (WebCore::isInterchangeConvertedSpaceSpan):
+        (WebCore::positionAvoidingPrecedingNodes):
+        (WebCore::isMailPasteAsQuotationNode):
+        (WebCore::isHeaderElement):
+        (WebCore::isInlineNodeWithStyle):
+        * editing/TextIterator.cpp:
+        (WebCore::isRendererReplacedElement):
+        * editing/cocoa/DataDetection.mm:
+        (WebCore::DataDetection::isDataDetectorLink):
+        (WebCore::DataDetection::requiresExtendedContext):
+        (WebCore::DataDetection::dataDetectorIdentifier):
+        (WebCore::DataDetection::shouldCancelDefaultAction):
+        (WebCore::removeResultLinksFromAnchor):
+        (WebCore::searchForLinkRemovingExistingDDLinks):
+        * editing/gtk/EditorGtk.cpp:
+        (WebCore::elementURL):
+        * editing/htmlediting.cpp:
+        (WebCore::isTabSpanNode):
+        (WebCore::isTabSpanTextNode):
+        (WebCore::isMailBlockquote):
+        (WebCore::caretMinOffset):
+        * editing/markup.cpp:
+        (WebCore::createFragmentFromMarkup):
+        * html/Autofill.cpp:
+        (WebCore::AutofillData::createFromHTMLFormControlElement):
+        * html/BaseTextInputType.cpp:
+        (WebCore::BaseTextInputType::patternMismatch):
+        * html/DateInputType.cpp:
+        (WebCore::DateInputType::createStepRange):
+        * html/DateTimeInputType.cpp:
+        (WebCore::DateTimeInputType::createStepRange):
+        * html/DateTimeLocalInputType.cpp:
+        (WebCore::DateTimeLocalInputType::createStepRange):
+        * html/FormAssociatedElement.cpp:
+        (WebCore::FormAssociatedElement::findAssociatedForm):
+        (WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):
+        (WebCore::FormAssociatedElement::formAttributeTargetChanged):
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::draggable):
+        (WebCore::HTMLAnchorElement::href):
+        (WebCore::HTMLAnchorElement::setHref):
+        (WebCore::HTMLAnchorElement::target):
+        (WebCore::HTMLAnchorElement::origin):
+        (WebCore::HTMLAnchorElement::sendPings):
+        (WebCore::HTMLAnchorElement::handleClick):
+        * html/HTMLAnchorElement.h:
+        (WebCore::HTMLAnchorElement::visitedLinkHash):
+        * html/HTMLAppletElement.cpp:
+        (WebCore::HTMLAppletElement::updateWidget):
+        * html/HTMLAreaElement.cpp:
+        (WebCore::HTMLAreaElement::target):
+        * html/HTMLAttachmentElement.cpp:
+        (WebCore::HTMLAttachmentElement::attachmentTitle):
+        (WebCore::HTMLAttachmentElement::attachmentType):
+        * html/HTMLBaseElement.cpp:
+        (WebCore::HTMLBaseElement::target):
+        (WebCore::HTMLBaseElement::href):
+        * html/HTMLBodyElement.cpp:
+        (WebCore::HTMLBodyElement::addSubresourceAttributeURLs):
+        * html/HTMLButtonElement.cpp:
+        (WebCore::HTMLButtonElement::value):
+        (WebCore::HTMLButtonElement::computeWillValidate):
+        * html/HTMLCanvasElement.cpp:
+        (WebCore::HTMLCanvasElement::reset):
+        * html/HTMLDocument.cpp:
+        (WebCore::HTMLDocument::bgColor):
+        (WebCore::HTMLDocument::setBgColor):
+        (WebCore::HTMLDocument::fgColor):
+        (WebCore::HTMLDocument::setFgColor):
+        (WebCore::HTMLDocument::alinkColor):
+        (WebCore::HTMLDocument::setAlinkColor):
+        (WebCore::HTMLDocument::linkColor):
+        (WebCore::HTMLDocument::setLinkColor):
+        (WebCore::HTMLDocument::vlinkColor):
+        (WebCore::HTMLDocument::setVlinkColor):
+        * html/HTMLElement.cpp:
+        (WebCore::contentEditableType):
+        (WebCore::HTMLElement::collectStyleForPresentationAttribute):
+        (WebCore::HTMLElement::dir):
+        (WebCore::HTMLElement::setDir):
+        (WebCore::HTMLElement::draggable):
+        (WebCore::HTMLElement::setDraggable):
+        (WebCore::HTMLElement::title):
+        (WebCore::HTMLElement::tabIndex):
+        (WebCore::HTMLElement::translateAttributeMode):
+        (WebCore::HTMLElement::hasDirectionAuto):
+        (WebCore::HTMLElement::directionality):
+        * html/HTMLEmbedElement.cpp:
+        (WebCore::HTMLEmbedElement::imageSourceURL):
+        (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs):
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::formEnctype):
+        (WebCore::HTMLFormControlElement::formMethod):
+        (WebCore::HTMLFormControlElement::formAction):
+        (WebCore::HTMLFormControlElement::autocorrect):
+        (WebCore::HTMLFormControlElement::autocapitalizeType):
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::autocorrect):
+        (WebCore::HTMLFormElement::autocapitalizeType):
+        (WebCore::HTMLFormElement::autocapitalize):
+        (WebCore::HTMLFormElement::action):
+        (WebCore::HTMLFormElement::setAction):
+        (WebCore::HTMLFormElement::target):
+        (WebCore::HTMLFormElement::wasUserSubmitted):
+        (WebCore::HTMLFormElement::shouldAutocomplete):
+        (WebCore::HTMLFormElement::finishParsingChildren):
+        (WebCore::HTMLFormElement::autocomplete):
+        * html/HTMLFrameElementBase.cpp:
+        (WebCore::HTMLFrameElementBase::location):
+        (WebCore::HTMLFrameElementBase::setLocation):
+        * html/HTMLHtmlElement.cpp:
+        (WebCore::HTMLHtmlElement::insertedByParser):
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::imageSourceURL):
+        (WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
+        (WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
+        (WebCore::HTMLImageElement::selectImageSource):
+        (WebCore::HTMLImageElement::altText):
+        (WebCore::HTMLImageElement::createElementRenderer):
+        (WebCore::HTMLImageElement::width):
+        (WebCore::HTMLImageElement::height):
+        (WebCore::HTMLImageElement::alt):
+        (WebCore::HTMLImageElement::draggable):
+        (WebCore::HTMLImageElement::setHeight):
+        (WebCore::HTMLImageElement::src):
+        (WebCore::HTMLImageElement::setSrc):
+        (WebCore::HTMLImageElement::addSubresourceAttributeURLs):
+        (WebCore::HTMLImageElement::didMoveToNewDocument):
+        (WebCore::HTMLImageElement::isServerMap):
+        (WebCore::HTMLImageElement::crossOrigin):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::updateType):
+        (WebCore::HTMLInputElement::initializeInputType):
+        (WebCore::HTMLInputElement::altText):
+        (WebCore::HTMLInputElement::value):
+        (WebCore::HTMLInputElement::defaultValue):
+        (WebCore::HTMLInputElement::setDefaultValue):
+        (WebCore::HTMLInputElement::acceptMIMETypes):
+        (WebCore::HTMLInputElement::acceptFileExtensions):
+        (WebCore::HTMLInputElement::accept):
+        (WebCore::HTMLInputElement::alt):
+        (WebCore::HTMLInputElement::effectiveMaxLength):
+        (WebCore::HTMLInputElement::src):
+        (WebCore::HTMLInputElement::setAutoFilled):
+        (WebCore::HTMLInputElement::dataList):
+        (WebCore::HTMLInputElement::resetListAttributeTargetObserver):
+        * html/HTMLKeygenElement.cpp:
+        (WebCore::HTMLKeygenElement::isKeytypeRSA):
+        (WebCore::HTMLKeygenElement::appendFormData):
+        * html/HTMLLIElement.cpp:
+        (WebCore::HTMLLIElement::didAttachRenderers):
+        (WebCore::HTMLLIElement::parseValue):
+        * html/HTMLLabelElement.cpp:
+        (WebCore::HTMLLabelElement::control):
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::crossOrigin):
+        (WebCore::HTMLLinkElement::process):
+        (WebCore::HTMLLinkElement::href):
+        (WebCore::HTMLLinkElement::rel):
+        (WebCore::HTMLLinkElement::target):
+        (WebCore::HTMLLinkElement::type):
+        (WebCore::HTMLLinkElement::iconType):
+        * html/HTMLMarqueeElement.cpp:
+        (WebCore::HTMLMarqueeElement::scrollAmount):
+        (WebCore::HTMLMarqueeElement::setScrollAmount):
+        (WebCore::HTMLMarqueeElement::scrollDelay):
+        (WebCore::HTMLMarqueeElement::setScrollDelay):
+        (WebCore::HTMLMarqueeElement::loop):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::insertedInto):
+        (WebCore::HTMLMediaElement::crossOrigin):
+        (WebCore::HTMLMediaElement::networkState):
+        (WebCore::HTMLMediaElement::mediaSessionTitle):
+        (WebCore::HTMLMediaElement::doesHaveAttribute):
+        * html/HTMLMetaElement.cpp:
+        (WebCore::HTMLMetaElement::process):
+        (WebCore::HTMLMetaElement::content):
+        (WebCore::HTMLMetaElement::httpEquiv):
+        (WebCore::HTMLMetaElement::name):
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::min):
+        (WebCore::HTMLMeterElement::setMin):
+        (WebCore::HTMLMeterElement::max):
+        (WebCore::HTMLMeterElement::setMax):
+        (WebCore::HTMLMeterElement::value):
+        (WebCore::HTMLMeterElement::low):
+        (WebCore::HTMLMeterElement::high):
+        (WebCore::HTMLMeterElement::optimum):
+        * html/HTMLObjectElement.cpp:
+        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
+        (WebCore::HTMLObjectElement::hasValidClassId):
+        (WebCore::HTMLObjectElement::imageSourceURL):
+        (WebCore::HTMLObjectElement::renderFallbackContent):
+        (WebCore::HTMLObjectElement::containsJavaApplet):
+        (WebCore::HTMLObjectElement::addSubresourceAttributeURLs):
+        * html/HTMLOptGroupElement.cpp:
+        (WebCore::HTMLOptGroupElement::groupLabelText):
+        * html/HTMLOptionElement.cpp:
+        (WebCore::HTMLOptionElement::value):
+        (WebCore::HTMLOptionElement::label):
+        * html/HTMLParamElement.cpp:
+        (WebCore::HTMLParamElement::value):
+        (WebCore::HTMLParamElement::isURLParameter):
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::value):
+        (WebCore::HTMLProgressElement::max):
+        * html/HTMLScriptElement.cpp:
+        (WebCore::HTMLScriptElement::crossOrigin):
+        (WebCore::HTMLScriptElement::src):
+        (WebCore::HTMLScriptElement::sourceAttributeValue):
+        (WebCore::HTMLScriptElement::charsetAttributeValue):
+        (WebCore::HTMLScriptElement::typeAttributeValue):
+        (WebCore::HTMLScriptElement::languageAttributeValue):
+        (WebCore::HTMLScriptElement::forAttributeValue):
+        (WebCore::HTMLScriptElement::eventAttributeValue):
+        (WebCore::HTMLScriptElement::asyncAttributeValue):
+        * html/HTMLSlotElement.cpp:
+        (WebCore::HTMLSlotElement::insertedInto):
+        (WebCore::HTMLSlotElement::removedFrom):
+        * html/HTMLSourceElement.cpp:
+        (WebCore::HTMLSourceElement::media):
+        (WebCore::HTMLSourceElement::setMedia):
+        (WebCore::HTMLSourceElement::type):
+        (WebCore::HTMLSourceElement::setType):
+        * html/HTMLTableCellElement.cpp:
+        (WebCore::HTMLTableCellElement::colSpanForBindings):
+        (WebCore::HTMLTableCellElement::rowSpan):
+        (WebCore::HTMLTableCellElement::rowSpanForBindings):
+        (WebCore::HTMLTableCellElement::cellIndex):
+        (WebCore::HTMLTableCellElement::abbr):
+        (WebCore::HTMLTableCellElement::axis):
+        (WebCore::HTMLTableCellElement::setColSpanForBindings):
+        (WebCore::HTMLTableCellElement::headers):
+        (WebCore::HTMLTableCellElement::setRowSpanForBindings):
+        (WebCore::HTMLTableCellElement::scope):
+        (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs):
+        (WebCore::HTMLTableCellElement::cellAbove):
+        * html/HTMLTableColElement.cpp:
+        (WebCore::HTMLTableColElement::width):
+        * html/HTMLTableElement.cpp:
+        (WebCore::HTMLTableElement::rules):
+        (WebCore::HTMLTableElement::summary):
+        (WebCore::HTMLTableElement::addSubresourceAttributeURLs):
+        * html/HTMLTableSectionElement.cpp:
+        (WebCore::HTMLTableSectionElement::align):
+        (WebCore::HTMLTableSectionElement::setAlign):
+        (WebCore::HTMLTableSectionElement::ch):
+        (WebCore::HTMLTableSectionElement::setCh):
+        (WebCore::HTMLTableSectionElement::chOff):
+        (WebCore::HTMLTableSectionElement::setChOff):
+        (WebCore::HTMLTableSectionElement::vAlign):
+        (WebCore::HTMLTableSectionElement::setVAlign):
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::appendFormData):
+        * html/HTMLTextFormControlElement.cpp:
+        (WebCore::HTMLTextFormControlElement::strippedPlaceholder):
+        (WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
+        (WebCore::HTMLTextFormControlElement::directionForFormData):
+        * html/HTMLTrackElement.cpp:
+        (WebCore::HTMLTrackElement::srclang):
+        (WebCore::HTMLTrackElement::label):
+        (WebCore::HTMLTrackElement::isDefault):
+        (WebCore::HTMLTrackElement::ensureTrack):
+        (WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute):
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::parseAttribute):
+        (WebCore::HTMLVideoElement::imageSourceURL):
+        * html/ImageInputType.cpp:
+        (WebCore::ImageInputType::height):
+        (WebCore::ImageInputType::width):
+        * html/InputType.cpp:
+        (WebCore::InputType::applyStep):
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
+        * html/MonthInputType.cpp:
+        (WebCore::MonthInputType::createStepRange):
+        * html/NumberInputType.cpp:
+        (WebCore::NumberInputType::createStepRange):
+        (WebCore::NumberInputType::sizeShouldIncludeDecoration):
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::createStepRange):
+        (WebCore::RangeInputType::handleKeydownEvent):
+        * html/TextFieldInputType.cpp:
+        (WebCore::TextFieldInputType::appendFormData):
+        (WebCore::TextFieldInputType::updateAutoFillButton):
+        * html/TimeInputType.cpp:
+        (WebCore::TimeInputType::createStepRange):
+        * html/ValidationMessage.cpp:
+        (WebCore::ValidationMessage::updateValidationMessage):
+        * html/WeekInputType.cpp:
+        (WebCore::WeekInputType::createStepRange):
+        * html/track/WebVTTElement.cpp:
+        (WebCore::WebVTTElement::createEquivalentHTMLElement):
+        * inspector/InspectorPageAgent.cpp:
+        (WebCore::InspectorPageAgent::buildObjectForFrame):
+        * loader/FormSubmission.cpp:
+        (WebCore::FormSubmission::create):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::defaultSubstituteDataForURL):
+        * loader/ImageLoader.cpp:
+        (WebCore::ImageLoader::updateFromElement):
+        * loader/SubframeLoader.cpp:
+        (WebCore::SubframeLoader::isPluginContentAllowedByContentSecurityPolicy):
+        * mathml/MathMLElement.cpp:
+        (WebCore::MathMLElement::colSpan):
+        (WebCore::MathMLElement::rowSpan):
+        (WebCore::MathMLElement::childShouldCreateRenderer):
+        (WebCore::MathMLElement::defaultEventHandler):
+        (WebCore::MathMLElement::cachedMathMLLength):
+        * mathml/MathMLFractionElement.cpp:
+        (WebCore::MathMLFractionElement::lineThickness):
+        (WebCore::MathMLFractionElement::cachedFractionAlignment):
+        * mathml/MathMLSelectElement.cpp:
+        (WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
+        (WebCore::MathMLSelectElement::getSelectedActionChild):
+        (WebCore::MathMLSelectElement::getSelectedSemanticsChild):
+        (WebCore::MathMLSelectElement::defaultEventHandler):
+        (WebCore::MathMLSelectElement::willRespondToMouseClickEvents):
+        (WebCore::MathMLSelectElement::toggle):
+        * page/EventHandler.cpp:
+        (WebCore::findDropZone):
+        * page/Frame.cpp:
+        (WebCore::Frame::matchLabelsAgainstElement):
+        * page/PageSerializer.cpp:
+        (WebCore::PageSerializer::serializeFrame):
+        * platform/win/PasteboardWin.cpp:
+        (WebCore::Pasteboard::writeImageToDataObject):
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::altDisplayString):
+        * rendering/RenderDetailsMarker.cpp:
+        (WebCore::RenderDetailsMarker::isOpen):
+        * rendering/RenderImage.cpp:
+        (WebCore::RenderImage::imageMap):
+        (WebCore::RenderImage::nodeAtPoint):
+        * rendering/RenderMenuList.cpp:
+        (RenderMenuList::itemAccessibilityText):
+        (RenderMenuList::itemToolTip):
+        * rendering/RenderSearchField.cpp:
+        (WebCore::RenderSearchField::autosaveName):
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::getAttachmentProgress):
+        (WebCore::AttachmentInfo::AttachmentInfo):
+        * rendering/RenderThemeMac.mm:
+        (WebCore::AttachmentLayout::layOutSubtitle):
+        (WebCore::RenderThemeMac::paintAttachment):
+        * rendering/mathml/MathMLStyle.cpp:
+        (WebCore::MathMLStyle::resolveMathMLStyle):
+        * rendering/mathml/RenderMathMLFenced.cpp:
+        (WebCore::RenderMathMLFenced::updateFromElement):
+        * rendering/mathml/RenderMathMLOperator.cpp:
+        (WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
+        (WebCore::RenderMathMLOperator::setOperatorFlagFromAttributeValue):
+        (WebCore::RenderMathMLOperator::setOperatorProperties):
+        * rendering/mathml/RenderMathMLScripts.cpp:
+        (WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
+        * rendering/mathml/RenderMathMLUnderOver.cpp:
+        (WebCore::RenderMathMLUnderOver::hasAccent):
+        * style/StyleSharingResolver.cpp:
+        (WebCore::Style::SharingResolver::canShareStyleWithElement):
+        (WebCore::Style::SharingResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
+        * svg/SVGAElement.cpp:
+        (WebCore::SVGAElement::title):
+        (WebCore::SVGAElement::defaultEventHandler):
+        * svg/SVGAltGlyphElement.cpp:
+        (WebCore::SVGAltGlyphElement::glyphRef):
+        (WebCore::SVGAltGlyphElement::setFormat):
+        (WebCore::SVGAltGlyphElement::format):
+        (WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
+        * svg/SVGAnimationElement.cpp:
+        (WebCore::SVGAnimationElement::toValue):
+        (WebCore::SVGAnimationElement::byValue):
+        (WebCore::SVGAnimationElement::fromValue):
+        (WebCore::SVGAnimationElement::isAdditive):
+        (WebCore::SVGAnimationElement::isAccumulated):
+        * svg/SVGElement.cpp:
+        (WebCore::SVGElement::xmlbase):
+        (WebCore::SVGElement::setXmlbase):
+        * svg/SVGFontFaceElement.cpp:
+        (WebCore::SVGFontFaceElement::unitsPerEm):
+        (WebCore::SVGFontFaceElement::xHeight):
+        (WebCore::SVGFontFaceElement::capHeight):
+        (WebCore::SVGFontFaceElement::horizontalOriginX):
+        (WebCore::SVGFontFaceElement::horizontalOriginY):
+        (WebCore::SVGFontFaceElement::horizontalAdvanceX):
+        (WebCore::SVGFontFaceElement::verticalOriginX):
+        (WebCore::SVGFontFaceElement::verticalOriginY):
+        (WebCore::SVGFontFaceElement::verticalAdvanceY):
+        (WebCore::SVGFontFaceElement::ascent):
+        (WebCore::SVGFontFaceElement::descent):
+        * svg/SVGFontFaceNameElement.cpp:
+        (WebCore::SVGFontFaceNameElement::srcValue):
+        * svg/SVGFontFaceUriElement.cpp:
+        (WebCore::SVGFontFaceUriElement::srcValue):
+        * svg/SVGGlyphRefElement.cpp:
+        (WebCore::SVGGlyphRefElement::glyphRef):
+        (WebCore::SVGGlyphRefElement::setGlyphRef):
+        * svg/SVGHKernElement.cpp:
+        (WebCore::SVGHKernElement::buildHorizontalKerningPair):
+        * svg/SVGSVGElement.cpp:
+        (WebCore::SVGSVGElement::contentScriptType):
+        (WebCore::SVGSVGElement::contentStyleType):
+        * svg/SVGStyleElement.cpp:
+        (WebCore::SVGStyleElement::media):
+        (WebCore::SVGStyleElement::title):
+        (WebCore::SVGStyleElement::setTitle):
+        * svg/SVGToOTFFontConversion.cpp:
+        (WebCore::SVGToOTFFontConverter::appendOS2Table):
+        (WebCore::SVGToOTFFontConverter::appendCFFTable):
+        (WebCore::SVGToOTFFontConverter::appendArabicReplacementSubtable):
+        (WebCore::SVGToOTFFontConverter::appendVORGTable):
+        (WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
+        (WebCore::SVGToOTFFontConverter::processGlyphElement):
+        (WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
+        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):
+        * svg/SVGVKernElement.cpp:
+        (WebCore::SVGVKernElement::buildVerticalKerningPair):
+        * svg/animation/SVGSMILElement.cpp:
+        (WebCore::SVGSMILElement::insertedInto):
+        (WebCore::SVGSMILElement::parseAttribute):
+        (WebCore::SVGSMILElement::svgAttributeChanged):
+        (WebCore::SVGSMILElement::restart):
+        (WebCore::SVGSMILElement::fill):
+        (WebCore::SVGSMILElement::dur):
+        (WebCore::SVGSMILElement::repeatDur):
+        (WebCore::SVGSMILElement::repeatCount):
+        (WebCore::SVGSMILElement::maxValue):
+        (WebCore::SVGSMILElement::minValue):
+
</ins><span class="cx"> 2016-07-16  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         ASSERTION FAILED: isMainThread() in ~UniqueIDBDatabase() since r201997
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -207,7 +207,7 @@
</span><span class="cx">         // Must have dialog or alertdialog role
</span><span class="cx">         if (!nodeHasRole(element, &quot;dialog&quot;) &amp;&amp; !nodeHasRole(element, &quot;alertdialog&quot;))
</span><span class="cx">             continue;
</span><del>-        if (!equalLettersIgnoringASCIICase(element-&gt;fastGetAttribute(aria_modalAttr), &quot;true&quot;))
</del><ins>+        if (!equalLettersIgnoringASCIICase(element-&gt;attributeWithoutSynchronization(aria_modalAttr), &quot;true&quot;))
</ins><span class="cx">             continue;
</span><span class="cx">         
</span><span class="cx">         m_ariaModalNodesSet.add(element);
</span><span class="lines">@@ -398,7 +398,7 @@
</span><span class="cx">     if (!node || !is&lt;Element&gt;(node))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    auto&amp; roleValue = downcast&lt;Element&gt;(*node).fastGetAttribute(roleAttr);
</del><ins>+    auto&amp; roleValue = downcast&lt;Element&gt;(*node).attributeWithoutSynchronization(roleAttr);
</ins><span class="cx">     if (role.isNull())
</span><span class="cx">         return roleValue.isEmpty();
</span><span class="cx">     if (roleValue.isEmpty())
</span><span class="lines">@@ -831,9 +831,9 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     Element* element = downcast&lt;Element&gt;(node);
</span><del>-    String liveRegionStatus = element-&gt;fastGetAttribute(aria_liveAttr);
</del><ins>+    String liveRegionStatus = element-&gt;attributeWithoutSynchronization(aria_liveAttr);
</ins><span class="cx">     if (liveRegionStatus.isEmpty()) {
</span><del>-        const AtomicString&amp; ariaRole = element-&gt;fastGetAttribute(roleAttr);
</del><ins>+        const AtomicString&amp; ariaRole = element-&gt;attributeWithoutSynchronization(roleAttr);
</ins><span class="cx">         if (!ariaRole.isEmpty())
</span><span class="cx">             liveRegionStatus = AccessibilityObject::defaultLiveRegionStatusForRole(AccessibilityObject::ariaRoleToWebCoreRole(ariaRole));
</span><span class="cx">     }
</span><span class="lines">@@ -1006,7 +1006,7 @@
</span><span class="cx">     if (!nodeHasRole(node, &quot;menuitem&quot;) &amp;&amp; !nodeHasRole(node, &quot;menuitemradio&quot;) &amp;&amp; !nodeHasRole(node, &quot;menuitemcheckbox&quot;))
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    if (!downcast&lt;Element&gt;(*node).focused() &amp;&amp; !equalLettersIgnoringASCIICase(downcast&lt;Element&gt;(*node).fastGetAttribute(aria_selectedAttr), &quot;true&quot;))
</del><ins>+    if (!downcast&lt;Element&gt;(*node).focused() &amp;&amp; !equalLettersIgnoringASCIICase(downcast&lt;Element&gt;(*node).attributeWithoutSynchronization(aria_selectedAttr), &quot;true&quot;))
</ins><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     postNotification(getOrCreate(node), &amp;document(), AXMenuListItemSelected);
</span><span class="lines">@@ -1422,7 +1422,7 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     stopCachingComputedObjectAttributes();
</span><del>-    if (equalLettersIgnoringASCIICase(downcast&lt;Element&gt;(*node).fastGetAttribute(aria_modalAttr), &quot;true&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(downcast&lt;Element&gt;(*node).attributeWithoutSynchronization(aria_modalAttr), &quot;true&quot;)) {
</ins><span class="cx">         // Add the newly modified node to the modal nodes set, and set it to be the current valid aria modal node.
</span><span class="cx">         // We will recompute the current valid aria modal node in ariaModalNode() when this node is not visible.
</span><span class="cx">         m_ariaModalNodesSet.add(node);
</span><span class="lines">@@ -2632,7 +2632,7 @@
</span><span class="cx">     bool ariaHiddenFalsePresent = false;
</span><span class="cx">     for (Node* testNode = node; testNode; testNode = testNode-&gt;parentNode()) {
</span><span class="cx">         if (is&lt;Element&gt;(*testNode)) {
</span><del>-            const AtomicString&amp; ariaHiddenValue = downcast&lt;Element&gt;(*testNode).fastGetAttribute(aria_hiddenAttr);
</del><ins>+            const AtomicString&amp; ariaHiddenValue = downcast&lt;Element&gt;(*testNode).attributeWithoutSynchronization(aria_hiddenAttr);
</ins><span class="cx">             if (equalLettersIgnoringASCIICase(ariaHiddenValue, &quot;true&quot;))
</span><span class="cx">                 return false;
</span><span class="cx">             
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1183,7 +1183,7 @@
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; sibling : childrenOfType&lt;Element&gt;(*parent)) {
</span><span class="cx">         // FIXME: Should skip sibling that is the same as the node.
</span><del>-        if (equalIgnoringASCIICase(sibling.fastGetAttribute(roleAttr), role))
</del><ins>+        if (equalIgnoringASCIICase(sibling.attributeWithoutSynchronization(roleAttr), role))
</ins><span class="cx">             return &amp;sibling;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1247,7 +1247,7 @@
</span><span class="cx">             AccessibilityObject* labelObject = axObjectCache()-&gt;getOrCreate(label);
</span><span class="cx">             String innerText = label-&gt;innerText();
</span><span class="cx">             
</span><del>-            const AtomicString&amp; ariaLabel = label-&gt;fastGetAttribute(aria_labelAttr);
</del><ins>+            const AtomicString&amp; ariaLabel = label-&gt;attributeWithoutSynchronization(aria_labelAttr);
</ins><span class="cx">             if (!ariaLabel.isEmpty())
</span><span class="cx">                 innerText = ariaLabel;
</span><span class="cx">             
</span><span class="lines">@@ -1454,7 +1454,7 @@
</span><span class="cx">     
</span><span class="cx">     // Check if the HTML element has an aria-label for the webpage.
</span><span class="cx">     if (Element* documentElement = document-&gt;documentElement()) {
</span><del>-        const AtomicString&amp; ariaLabel = documentElement-&gt;fastGetAttribute(aria_labelAttr);
</del><ins>+        const AtomicString&amp; ariaLabel = documentElement-&gt;attributeWithoutSynchronization(aria_labelAttr);
</ins><span class="cx">         if (!ariaLabel.isEmpty())
</span><span class="cx">             return ariaLabel;
</span><span class="cx">     }
</span><span class="lines">@@ -1461,7 +1461,7 @@
</span><span class="cx">     
</span><span class="cx">     if (auto* owner = document-&gt;ownerElement()) {
</span><span class="cx">         if (owner-&gt;hasTagName(frameTag) || owner-&gt;hasTagName(iframeTag)) {
</span><del>-            const AtomicString&amp; title = owner-&gt;fastGetAttribute(titleAttr);
</del><ins>+            const AtomicString&amp; title = owner-&gt;attributeWithoutSynchronization(titleAttr);
</ins><span class="cx">             if (!title.isEmpty())
</span><span class="cx">                 return title;
</span><span class="cx">         }
</span><span class="lines">@@ -1558,7 +1558,7 @@
</span><span class="cx">     if (!is&lt;Element&gt;(node))
</span><span class="cx">         return 0;
</span><span class="cx">     Element&amp; element = downcast&lt;Element&gt;(*node);
</span><del>-    const AtomicString&amp; ariaLevel = element.fastGetAttribute(aria_levelAttr);
</del><ins>+    const AtomicString&amp; ariaLevel = element.attributeWithoutSynchronization(aria_levelAttr);
</ins><span class="cx">     if (!ariaLevel.isEmpty())
</span><span class="cx">         return ariaLevel.toInt();
</span><span class="cx">     
</span><span class="lines">@@ -1806,7 +1806,7 @@
</span><span class="cx">         int selectedIndex = selectElement.selectedIndex();
</span><span class="cx">         const Vector&lt;HTMLElement*&gt;&amp; listItems = selectElement.listItems();
</span><span class="cx">         if (selectedIndex &gt;= 0 &amp;&amp; static_cast&lt;size_t&gt;(selectedIndex) &lt; listItems.size()) {
</span><del>-            const AtomicString&amp; overriddenDescription = listItems[selectedIndex]-&gt;fastGetAttribute(aria_labelAttr);
</del><ins>+            const AtomicString&amp; overriddenDescription = listItems[selectedIndex]-&gt;attributeWithoutSynchronization(aria_labelAttr);
</ins><span class="cx">             if (!overriddenDescription.isNull())
</span><span class="cx">                 return overriddenDescription;
</span><span class="cx">         }
</span><span class="lines">@@ -1859,11 +1859,11 @@
</span><span class="cx">         return String();
</span><span class="cx">     
</span><span class="cx">     Element&amp; element = downcast&lt;Element&gt;(*node);
</span><del>-    const AtomicString&amp; ariaLabel = element.fastGetAttribute(aria_labelAttr);
</del><ins>+    const AtomicString&amp; ariaLabel = element.attributeWithoutSynchronization(aria_labelAttr);
</ins><span class="cx">     if (!ariaLabel.isEmpty())
</span><span class="cx">         return ariaLabel;
</span><span class="cx">     
</span><del>-    const AtomicString&amp; alt = element.fastGetAttribute(altAttr);
</del><ins>+    const AtomicString&amp; alt = element.attributeWithoutSynchronization(altAttr);
</ins><span class="cx">     if (!alt.isEmpty())
</span><span class="cx">         return alt;
</span><span class="cx"> 
</span><span class="lines">@@ -1889,7 +1889,7 @@
</span><span class="cx">     if (!text.isEmpty())
</span><span class="cx">         return text;
</span><span class="cx">     
</span><del>-    const AtomicString&amp; title = element.fastGetAttribute(titleAttr);
</del><ins>+    const AtomicString&amp; title = element.attributeWithoutSynchronization(titleAttr);
</ins><span class="cx">     if (!title.isEmpty())
</span><span class="cx">         return title;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1597,7 +1597,7 @@
</span><span class="cx">     if (!element)
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    const AtomicString&amp; contentEditableValue = element-&gt;fastGetAttribute(contenteditableAttr);
</del><ins>+    const AtomicString&amp; contentEditableValue = element-&gt;attributeWithoutSynchronization(contenteditableAttr);
</ins><span class="cx">     if (contentEditableValue.isNull())
</span><span class="cx">         return false;
</span><span class="cx">     
</span><span class="lines">@@ -1999,7 +1999,7 @@
</span><span class="cx"> const AtomicString&amp; AccessibilityObject::getAttribute(const QualifiedName&amp; attribute) const
</span><span class="cx"> {
</span><span class="cx">     if (Element* element = this-&gt;element())
</span><del>-        return element-&gt;fastGetAttribute(attribute);
</del><ins>+        return element-&gt;attributeWithoutSynchronization(attribute);
</ins><span class="cx">     return nullAtom;
</span><span class="cx"> }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -756,7 +756,7 @@
</span><span class="cx">         int selectedIndex = selectElement.selectedIndex();
</span><span class="cx">         const Vector&lt;HTMLElement*&gt;&amp; listItems = selectElement.listItems();
</span><span class="cx">         if (selectedIndex &gt;= 0 &amp;&amp; static_cast&lt;size_t&gt;(selectedIndex) &lt; listItems.size()) {
</span><del>-            const AtomicString&amp; overriddenDescription = listItems[selectedIndex]-&gt;fastGetAttribute(aria_labelAttr);
</del><ins>+            const AtomicString&amp; overriddenDescription = listItems[selectedIndex]-&gt;attributeWithoutSynchronization(aria_labelAttr);
</ins><span class="cx">             if (!overriddenDescription.isNull())
</span><span class="cx">                 return overriddenDescription;
</span><span class="cx">         }
</span><span class="lines">@@ -1056,7 +1056,7 @@
</span><span class="cx">     // otherwise its inner text will be announced by a screenreader.
</span><span class="cx">     if (is&lt;HTMLInputElement&gt;(*this-&gt;node()) || AccessibilityObject::isARIAInput(ariaRoleAttribute())) {
</span><span class="cx">         if (HTMLLabelElement* label = labelForElement(downcast&lt;Element&gt;(node()))) {
</span><del>-            if (!label-&gt;fastGetAttribute(aria_labelAttr).isEmpty())
</del><ins>+            if (!label-&gt;attributeWithoutSynchronization(aria_labelAttr).isEmpty())
</ins><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilitySVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilitySVGElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilitySVGElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/accessibility/AccessibilitySVGElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">     Vector&lt;String&gt; childLanguageCodes;
</span><span class="cx">     Vector&lt;Element*&gt; elements;
</span><span class="cx">     for (auto&amp; child : children) {
</span><del>-        String lang = child.fastGetAttribute(SVGNames::langAttr);
</del><ins>+        String lang = child.attributeWithoutSynchronization(SVGNames::langAttr);
</ins><span class="cx">         childLanguageCodes.append(lang);
</span><span class="cx">         elements.append(&amp;child);
</span><span class="cx"> 
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">         return titleChild-&gt;textContent();
</span><span class="cx"> 
</span><span class="cx">     if (is&lt;SVGAElement&gt;(element())) {
</span><del>-        String xlinkTitle = element()-&gt;fastGetAttribute(XLinkNames::titleAttr);
</del><ins>+        String xlinkTitle = element()-&gt;attributeWithoutSynchronization(XLinkNames::titleAttr);
</ins><span class="cx">         if (!xlinkTitle.isEmpty())
</span><span class="cx">             return xlinkTitle;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsobjcDOMmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/objc/DOM.mm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/objc/DOM.mm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/bindings/objc/DOM.mm        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -794,7 +794,7 @@
</span><span class="cx"> {
</span><span class="cx">     HTMLLinkElement&amp; link = *static_cast&lt;HTMLLinkElement*&gt;(core(self));
</span><span class="cx"> 
</span><del>-    auto&amp; media = link.fastGetAttribute(HTMLNames::mediaAttr);
</del><ins>+    auto&amp; media = link.attributeWithoutSynchronization(HTMLNames::mediaAttr);
</ins><span class="cx">     if (media.isEmpty())
</span><span class="cx">         return true;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -669,7 +669,7 @@
</span><span class="cx">         } elsif ($generator-&gt;IsSVGAnimatedType($attributeType)) {
</span><span class="cx">             $functionName = &quot;getAttribute&quot;;
</span><span class="cx">         } else {
</span><del>-            $functionName = &quot;fastGetAttribute&quot;;
</del><ins>+            $functionName = &quot;attributeWithoutSynchronization&quot;;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1269,8 +1269,8 @@
</span><span class="cx"> 
</span><span class="cx">             my ($functionName, @arguments) = $codeGenerator-&gt;GetterExpression(\%implIncludes, $interfaceName, $attribute);
</span><span class="cx"> 
</span><del>-            # To avoid bloating Obj-C bindings, we use getAttribute() instead of fastGetAttribute().
-            if ($functionName eq &quot;fastGetAttribute&quot;) {
</del><ins>+            # To avoid bloating Obj-C bindings, we use getAttribute() instead of attributeWithoutSynchronization().
+            if ($functionName eq &quot;attributeWithoutSynchronization&quot;) {
</ins><span class="cx">                 $functionName = &quot;getAttribute&quot;;
</span><span class="cx">             }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestGObjectWebKitDOMTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -2409,7 +2409,7 @@
</span><span class="cx">     WebCore::JSMainThreadNullState state;
</span><span class="cx">     g_return_val_if_fail(WEBKIT_DOM_IS_TEST_OBJ(self), 0);
</span><span class="cx">     WebCore::TestObj* item = WebKit::core(self);
</span><del>-    gchar* result = convertToUTF8String(item-&gt;fastGetAttribute(WebCore::HTMLNames::reflectedstringattrAttr));
</del><ins>+    gchar* result = convertToUTF8String(item-&gt;attributeWithoutSynchronization(WebCore::HTMLNames::reflectedstringattrAttr));
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2498,7 +2498,7 @@
</span><span class="cx">     WebCore::JSMainThreadNullState state;
</span><span class="cx">     g_return_val_if_fail(WEBKIT_DOM_IS_TEST_OBJ(self), 0);
</span><span class="cx">     WebCore::TestObj* item = WebKit::core(self);
</span><del>-    gchar* result = convertToUTF8String(item-&gt;fastGetAttribute(WebCore::HTMLNames::customContentStringAttrAttr));
</del><ins>+    gchar* result = convertToUTF8String(item-&gt;attributeWithoutSynchronization(WebCore::HTMLNames::customContentStringAttrAttr));
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1752,7 +1752,7 @@
</span><span class="cx">         return throwGetterTypeError(*state, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">     }
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    JSValue result = jsStringWithCache(state, impl.fastGetAttribute(WebCore::HTMLNames::reflectedstringattrAttr));
</del><ins>+    JSValue result = jsStringWithCache(state, impl.attributeWithoutSynchronization(WebCore::HTMLNames::reflectedstringattrAttr));
</ins><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1827,7 +1827,7 @@
</span><span class="cx">         return throwGetterTypeError(*state, &quot;TestObj&quot;, &quot;reflectedStringAttr&quot;);
</span><span class="cx">     }
</span><span class="cx">     auto&amp; impl = castedThis-&gt;wrapped();
</span><del>-    JSValue result = jsStringWithCache(state, impl.fastGetAttribute(WebCore::HTMLNames::customContentStringAttrAttr));
</del><ins>+    JSValue result = jsStringWithCache(state, impl.attributeWithoutSynchronization(WebCore::HTMLNames::customContentStringAttrAttr));
</ins><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomAuthorStyleSheetscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/AuthorStyleSheets.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/AuthorStyleSheets.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/AuthorStyleSheets.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx"> #endif
</span><span class="cx">         } else if (is&lt;HTMLLinkElement&gt;(*node) || is&lt;HTMLStyleElement&gt;(*node) || is&lt;SVGStyleElement&gt;(*node)) {
</span><span class="cx">             Element&amp; element = downcast&lt;Element&gt;(*node);
</span><del>-            AtomicString title = element.fastGetAttribute(titleAttr);
</del><ins>+            AtomicString title = element.attributeWithoutSynchronization(titleAttr);
</ins><span class="cx">             bool enabledViaScript = false;
</span><span class="cx">             if (is&lt;HTMLLinkElement&gt;(element)) {
</span><span class="cx">                 // &lt;LINK&gt; element
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx">                 if (linkElement.styleSheetIsLoading()) {
</span><span class="cx">                     // it is loading but we should still decide which style sheet set to use
</span><span class="cx">                     if (!enabledViaScript &amp;&amp; !title.isEmpty() &amp;&amp; m_preferredStylesheetSetName.isEmpty()) {
</span><del>-                        if (!linkElement.fastGetAttribute(relAttr).contains(&quot;alternate&quot;)) {
</del><ins>+                        if (!linkElement.attributeWithoutSynchronization(relAttr).contains(&quot;alternate&quot;)) {
</ins><span class="cx">                             m_preferredStylesheetSetName = title;
</span><span class="cx">                             m_selectedStylesheetSetName = title;
</span><span class="cx">                         }
</span><span class="lines">@@ -188,7 +188,7 @@
</span><span class="cx">             // Check to see if this sheet belongs to a styleset
</span><span class="cx">             // (thus making it PREFERRED or ALTERNATE rather than
</span><span class="cx">             // PERSISTENT).
</span><del>-            auto&amp; rel = element.fastGetAttribute(relAttr);
</del><ins>+            auto&amp; rel = element.attributeWithoutSynchronization(relAttr);
</ins><span class="cx">             if (!enabledViaScript &amp;&amp; !title.isEmpty()) {
</span><span class="cx">                 // Yes, we have a title.
</span><span class="cx">                 if (m_preferredStylesheetSetName.isEmpty()) {
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -748,7 +748,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(scope);
</span><span class="cx">     for (auto&amp; element : descendantsOfType&lt;Element&gt;(scope-&gt;rootNode())) {
</span><del>-        const AtomicString&amp; accessKey = element.fastGetAttribute(accesskeyAttr);
</del><ins>+        const AtomicString&amp; accessKey = element.attributeWithoutSynchronization(accesskeyAttr);
</ins><span class="cx">         if (!accessKey.isEmpty())
</span><span class="cx">             m_elementsByAccessKey.set(accessKey.impl(), &amp;element);
</span><span class="cx"> 
</span><span class="lines">@@ -3031,7 +3031,7 @@
</span><span class="cx">     auto baseDescendants = descendantsOfType&lt;HTMLBaseElement&gt;(*this);
</span><span class="cx">     for (auto&amp; base : baseDescendants) {
</span><span class="cx">         if (!href) {
</span><del>-            const AtomicString&amp; value = base.fastGetAttribute(hrefAttr);
</del><ins>+            const AtomicString&amp; value = base.attributeWithoutSynchronization(hrefAttr);
</ins><span class="cx">             if (!value.isNull()) {
</span><span class="cx">                 href = &amp;value;
</span><span class="cx">                 if (target)
</span><span class="lines">@@ -3039,7 +3039,7 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">         if (!target) {
</span><del>-            const AtomicString&amp; value = base.fastGetAttribute(targetAttr);
</del><ins>+            const AtomicString&amp; value = base.attributeWithoutSynchronization(targetAttr);
</ins><span class="cx">             if (!value.isNull()) {
</span><span class="cx">                 target = &amp;value;
</span><span class="cx">                 if (href)
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentOrderedMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentOrderedMap.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentOrderedMap.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/DocumentOrderedMap.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx"> HTMLLabelElement* DocumentOrderedMap::getElementByLabelForAttribute(const AtomicStringImpl&amp; key, const TreeScope&amp; scope) const
</span><span class="cx"> {
</span><span class="cx">     return downcast&lt;HTMLLabelElement&gt;(get(key, scope, [] (const AtomicStringImpl&amp; key, const Element&amp; element) {
</span><del>-        return is&lt;HTMLLabelElement&gt;(element) &amp;&amp; element.fastGetAttribute(forAttr).impl() == &amp;key;
</del><ins>+        return is&lt;HTMLLabelElement&gt;(element) &amp;&amp; element.attributeWithoutSynchronization(forAttr).impl() == &amp;key;
</ins><span class="cx">     }));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1508,7 +1508,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; Element::imageSourceURL() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(srcAttr);
</del><ins>+    return attributeWithoutSynchronization(srcAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Element::rendererIsNeeded(const RenderStyle&amp; style)
</span><span class="lines">@@ -1568,7 +1568,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (newScope &amp;&amp; hasTagName(labelTag)) {
</span><span class="cx">         if (newScope-&gt;shouldCacheLabelsByForAttribute())
</span><del>-            updateLabel(*newScope, nullAtom, fastGetAttribute(forAttr));
</del><ins>+            updateLabel(*newScope, nullAtom, attributeWithoutSynchronization(forAttr));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return InsertionDone;
</span><span class="lines">@@ -1614,7 +1614,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (oldScope &amp;&amp; hasTagName(labelTag)) {
</span><span class="cx">             if (oldScope-&gt;shouldCacheLabelsByForAttribute())
</span><del>-                updateLabel(*oldScope, fastGetAttribute(forAttr), nullAtom);
</del><ins>+                updateLabel(*oldScope, attributeWithoutSynchronization(forAttr), nullAtom);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -2474,7 +2474,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; Element::pseudo() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(pseudoAttr);
</del><ins>+    return attributeWithoutSynchronization(pseudoAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::setPseudo(const AtomicString&amp; value)
</span><span class="lines">@@ -2970,7 +2970,7 @@
</span><span class="cx"> 
</span><span class="cx"> SpellcheckAttributeState Element::spellcheckAttributeState() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; value = fastGetAttribute(HTMLNames::spellcheckAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(HTMLNames::spellcheckAttr);
</ins><span class="cx">     if (value.isNull())
</span><span class="cx">         return SpellcheckAttributeDefault;
</span><span class="cx">     if (value.isEmpty() || equalLettersIgnoringASCIICase(value, &quot;true&quot;))
</span><span class="lines">@@ -3460,7 +3460,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool Element::canContainRangeEndPoint() const
</span><span class="cx"> {
</span><del>-    return !equalLettersIgnoringASCIICase(fastGetAttribute(roleAttr), &quot;img&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(roleAttr), &quot;img&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String Element::completeURLsInAttributeValue(const URL&amp; base, const Attribute&amp; attribute) const
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/Element.h        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">     // Call this to get the value of an attribute that is known not to be the style
</span><span class="cx">     // attribute or one of the SVG animatable attributes.
</span><span class="cx">     bool fastHasAttribute(const QualifiedName&amp;) const;
</span><del>-    const AtomicString&amp; fastGetAttribute(const QualifiedName&amp;) const;
</del><ins>+    const AtomicString&amp; attributeWithoutSynchronization(const QualifiedName&amp;) const;
</ins><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     WEBCORE_EXPORT bool fastAttributeLookupAllowed(const QualifiedName&amp;) const;
</span><span class="cx"> #endif
</span><span class="lines">@@ -669,7 +669,7 @@
</span><span class="cx">     return elementData() &amp;&amp; findAttributeByName(name);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline const AtomicString&amp; Element::fastGetAttribute(const QualifiedName&amp; name) const
</del><ins>+inline const AtomicString&amp; Element::attributeWithoutSynchronization(const QualifiedName&amp; name) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(fastAttributeLookupAllowed(name));
</span><span class="cx">     if (elementData()) {
</span></span></pre></div>
<a id="trunkSourceWebCoredomInlineStyleSheetOwnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(document.contentSecurityPolicy());
</span><span class="cx">     const ContentSecurityPolicy&amp; contentSecurityPolicy = *document.contentSecurityPolicy();
</span><del>-    bool hasKnownNonce = contentSecurityPolicy.allowStyleWithNonce(element.fastGetAttribute(HTMLNames::nonceAttr), element.isInUserAgentShadowTree());
</del><ins>+    bool hasKnownNonce = contentSecurityPolicy.allowStyleWithNonce(element.attributeWithoutSynchronization(HTMLNames::nonceAttr), element.isInUserAgentShadowTree());
</ins><span class="cx">     if (!contentSecurityPolicy.allowInlineStyle(document.url(), m_startTextPosition.m_line, text, hasKnownNonce))
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/ScriptElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -259,7 +259,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(!m_cachedScript);
</span><span class="cx">     if (!stripLeadingAndTrailingHTMLSpaces(sourceUrl).isEmpty()) {
</span><del>-        bool hasKnownNonce = m_element.document().contentSecurityPolicy()-&gt;allowScriptWithNonce(m_element.fastGetAttribute(HTMLNames::nonceAttr), m_element.isInUserAgentShadowTree());
</del><ins>+        bool hasKnownNonce = m_element.document().contentSecurityPolicy()-&gt;allowScriptWithNonce(m_element.attributeWithoutSynchronization(HTMLNames::nonceAttr), m_element.isInUserAgentShadowTree());
</ins><span class="cx">         ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions();
</span><span class="cx">         options.setContentSecurityPolicyImposition(hasKnownNonce ? ContentSecurityPolicyImposition::SkipPolicyCheck : ContentSecurityPolicyImposition::DoPolicyCheck);
</span><span class="cx"> 
</span><span class="lines">@@ -267,7 +267,7 @@
</span><span class="cx"> 
</span><span class="cx">         m_element.document().contentSecurityPolicy()-&gt;upgradeInsecureRequestIfNeeded(request.mutableResourceRequest(), ContentSecurityPolicy::InsecureRequestType::Load);
</span><span class="cx"> 
</span><del>-        String crossOriginMode = m_element.fastGetAttribute(HTMLNames::crossoriginAttr);
</del><ins>+        String crossOriginMode = m_element.attributeWithoutSynchronization(HTMLNames::crossoriginAttr);
</ins><span class="cx">         if (!crossOriginMode.isNull()) {
</span><span class="cx">             m_requestUsesAccessControl = true;
</span><span class="cx">             StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx">     if (!m_isExternalScript) {
</span><span class="cx">         ASSERT(m_element.document().contentSecurityPolicy());
</span><span class="cx">         const ContentSecurityPolicy&amp; contentSecurityPolicy = *m_element.document().contentSecurityPolicy();
</span><del>-        bool hasKnownNonce = contentSecurityPolicy.allowScriptWithNonce(m_element.fastGetAttribute(HTMLNames::nonceAttr), m_element.isInUserAgentShadowTree());
</del><ins>+        bool hasKnownNonce = contentSecurityPolicy.allowScriptWithNonce(m_element.attributeWithoutSynchronization(HTMLNames::nonceAttr), m_element.isInUserAgentShadowTree());
</ins><span class="cx">         if (!contentSecurityPolicy.allowInlineScript(m_element.document().url(), m_startLineNumber, sourceCode.source().toStringWithoutCopying(), hasKnownNonce))
</span><span class="cx">             return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoredomSlotAssignmentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/SlotAssignment.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SlotAssignment.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/SlotAssignment.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     if (is&lt;Text&gt;(child))
</span><span class="cx">         return SlotAssignment::defaultSlotName();
</span><span class="cx"> 
</span><del>-    return slotNameFromAttributeValue(downcast&lt;Element&gt;(child).fastGetAttribute(slotAttr));
</del><ins>+    return slotNameFromAttributeValue(downcast&lt;Element&gt;(child).attributeWithoutSynchronization(slotAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SlotAssignment::SlotAssignment()
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">     if (!shadowRootOfSlotParent)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    shadowRootOfSlotParent-&gt;innerSlotDidChange(slotElement.fastGetAttribute(slotAttr));
</del><ins>+    shadowRootOfSlotParent-&gt;innerSlotDidChange(slotElement.attributeWithoutSynchronization(slotAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SlotAssignment::didChangeSlot(const AtomicString&amp; slotAttrValue, ChangeType changeType, ShadowRoot&amp; shadowRoot)
</span><span class="lines">@@ -166,13 +166,13 @@
</span><span class="cx"> 
</span><span class="cx"> void SlotAssignment::hostChildElementDidChange(const Element&amp; childElement, ShadowRoot&amp; shadowRoot)
</span><span class="cx"> {
</span><del>-    didChangeSlot(childElement.fastGetAttribute(slotAttr), ChangeType::DirectChild, shadowRoot);
</del><ins>+    didChangeSlot(childElement.attributeWithoutSynchronization(slotAttr), ChangeType::DirectChild, shadowRoot);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Vector&lt;Node*&gt;* SlotAssignment::assignedNodesForSlot(const HTMLSlotElement&amp; slotElement, ShadowRoot&amp; shadowRoot)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(slotElement.containingShadowRoot() == &amp;shadowRoot);
</span><del>-    const AtomicString&amp; slotName = slotNameFromAttributeValue(slotElement.fastGetAttribute(nameAttr));
</del><ins>+    const AtomicString&amp; slotName = slotNameFromAttributeValue(slotElement.attributeWithoutSynchronization(nameAttr));
</ins><span class="cx">     auto it = m_slots.find(slotName);
</span><span class="cx">     RELEASE_ASSERT(it != m_slots.end());
</span><span class="cx"> 
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned slotCount = m_slots.size();
</span><span class="cx">     for (auto&amp; slotElement : descendantsOfType&lt;HTMLSlotElement&gt;(shadowRoot)) {
</span><del>-        auto&amp; slotName = slotNameFromAttributeValue(slotElement.fastGetAttribute(nameAttr));
</del><ins>+        auto&amp; slotName = slotNameFromAttributeValue(slotElement.attributeWithoutSynchronization(nameAttr));
</ins><span class="cx"> 
</span><span class="cx">         auto it = m_slots.find(slotName);
</span><span class="cx">         RELEASE_ASSERT(it != m_slots.end());
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeScope.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeScope.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/TreeScope.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -236,7 +236,7 @@
</span><span class="cx">         m_labelsByForAttribute = std::make_unique&lt;DocumentOrderedMap&gt;();
</span><span class="cx"> 
</span><span class="cx">         for (auto&amp; label : descendantsOfType&lt;HTMLLabelElement&gt;(m_rootNode)) {
</span><del>-            const AtomicString&amp; forValue = label.fastGetAttribute(forAttr);
</del><ins>+            const AtomicString&amp; forValue = label.attributeWithoutSynchronization(forAttr);
</ins><span class="cx">             if (!forValue.isEmpty())
</span><span class="cx">                 addLabel(*forValue.impl(), label);
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoredomVisitedLinkStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/VisitedLinkState.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/VisitedLinkState.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/dom/VisitedLinkState.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">     if (!element.isLink())
</span><span class="cx">         return 0;
</span><span class="cx">     if (element.isHTMLElement())
</span><del>-        return &amp;element.fastGetAttribute(HTMLNames::hrefAttr);
</del><ins>+        return &amp;element.attributeWithoutSynchronization(HTMLNames::hrefAttr);
</ins><span class="cx">     if (element.isSVGElement())
</span><span class="cx">         return &amp;element.getAttribute(XLinkNames::hrefAttr);
</span><span class="cx">     return 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingApplyStyleCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ApplyStyleCommand.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ApplyStyleCommand.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/ApplyStyleCommand.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx">     if (!is&lt;HTMLSpanElement&gt;(node))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return downcast&lt;HTMLSpanElement&gt;(*node).fastGetAttribute(classAttr) == styleSpanClassString();
</del><ins>+    return downcast&lt;HTMLSpanElement&gt;(*node).attributeWithoutSynchronization(classAttr) == styleSpanClassString();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool hasNoAttributeOrOnlyStyleAttribute(const StyledElement* element, ShouldStyleAttributeBeEmpty shouldStyleAttributeBeEmpty)
</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-&gt;fastGetAttribute(classAttr) == styleSpanClassString())
</del><ins>+    if (element-&gt;attributeWithoutSynchronization(classAttr) == styleSpanClassString())
</ins><span class="cx">         matchedAttributes++;
</span><span class="cx">     if (element-&gt;hasAttribute(styleAttr) &amp;&amp; (shouldStyleAttributeBeEmpty == AllowNonEmptyStyleAttribute
</span><span class="cx">         || !element-&gt;inlineStyle() || element-&gt;inlineStyle()-&gt;isEmpty()))
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditingStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditingStyle.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditingStyle.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/EditingStyle.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1050,7 +1050,7 @@
</span><span class="cx">     if (!elementIsSpanOrElementEquivalent &amp;&amp; !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-&gt;fastGetAttribute(HTMLNames::classAttr) == AppleStyleSpanClass)
</del><ins>+    if (element-&gt;attributeWithoutSynchronization(HTMLNames::classAttr) == AppleStyleSpanClass)
</ins><span class="cx">         matchedAttributes++;
</span><span class="cx"> 
</span><span class="cx">     if (element-&gt;hasAttribute(HTMLNames::styleAttr)) {
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -108,13 +108,13 @@
</span><span class="cx"> static bool isInterchangeNewlineNode(const Node* node)
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;String&gt; interchangeNewlineClassString(AppleInterchangeNewline);
</span><del>-    return is&lt;HTMLBRElement&gt;(node) &amp;&amp; downcast&lt;HTMLBRElement&gt;(*node).fastGetAttribute(classAttr) == interchangeNewlineClassString;
</del><ins>+    return is&lt;HTMLBRElement&gt;(node) &amp;&amp; downcast&lt;HTMLBRElement&gt;(*node).attributeWithoutSynchronization(classAttr) == interchangeNewlineClassString;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isInterchangeConvertedSpaceSpan(const Node* node)
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;String&gt; convertedSpaceSpanClassString(AppleConvertedSpace);
</span><del>-    return is&lt;HTMLElement&gt;(node) &amp;&amp; downcast&lt;HTMLElement&gt;(*node).fastGetAttribute(classAttr) == convertedSpaceSpanClassString;
</del><ins>+    return is&lt;HTMLElement&gt;(node) &amp;&amp; downcast&lt;HTMLElement&gt;(*node).attributeWithoutSynchronization(classAttr) == convertedSpaceSpanClassString;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Position positionAvoidingPrecedingNodes(Position position)
</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 &amp;&amp; node-&gt;hasTagName(blockquoteTag) &amp;&amp; downcast&lt;Element&gt;(node)-&gt;fastGetAttribute(classAttr) == ApplePasteAsQuotation;
</del><ins>+    return node &amp;&amp; node-&gt;hasTagName(blockquoteTag) &amp;&amp; downcast&lt;Element&gt;(node)-&gt;attributeWithoutSynchronization(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&lt;const HTMLElement*&gt;(node);
</span><del>-    const AtomicString&amp; classAttributeValue = element-&gt;fastGetAttribute(classAttr);
</del><ins>+    const AtomicString&amp; classAttributeValue = element-&gt;attributeWithoutSynchronization(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="trunkSourceWebCoreeditingTextIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextIterator.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextIterator.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/TextIterator.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -278,7 +278,7 @@
</span><span class="cx">         Element&amp; element = downcast&lt;Element&gt;(*renderer-&gt;node());
</span><span class="cx">         if (is&lt;HTMLFormControlElement&gt;(element) || is&lt;HTMLLegendElement&gt;(element) || is&lt;HTMLProgressElement&gt;(element) || element.hasTagName(meterTag))
</span><span class="cx">             return true;
</span><del>-        if (equalLettersIgnoringASCIICase(element.fastGetAttribute(roleAttr), &quot;img&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(element.attributeWithoutSynchronization(roleAttr), &quot;img&quot;))
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaDataDetectionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/DataDetection.mm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/DataDetection.mm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/cocoa/DataDetection.mm        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx"> #if __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000
</span><span class="cx">     return [softLink_DataDetectorsCore_DDURLTapAndHoldSchemes() containsObject:(NSString *)downcast&lt;HTMLAnchorElement&gt;(element).href().protocol().convertToASCIILowercase()];
</span><span class="cx"> #else
</span><del>-    if (equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectorsAttr), &quot;true&quot;))
</del><ins>+    if (equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectorsAttr), &quot;true&quot;))
</ins><span class="cx">         return true;
</span><span class="cx">     URL url = downcast&lt;HTMLAnchorElement&gt;(element).href();
</span><span class="cx">     return url.protocolIs(&quot;mailto&quot;) || url.protocolIs(&quot;tel&quot;);
</span><span class="lines">@@ -167,12 +167,12 @@
</span><span class="cx"> 
</span><span class="cx"> bool DataDetection::requiresExtendedContext(Element&amp; element)
</span><span class="cx"> {
</span><del>-    return equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectors_typeAttr), &quot;calendar-event&quot;);
</del><ins>+    return equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectors_typeAttr), &quot;calendar-event&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String DataDetection::dataDetectorIdentifier(Element&amp; element)
</span><span class="cx"> {
</span><del>-    return element.fastGetAttribute(x_apple_data_detectors_resultAttr);
</del><ins>+    return element.attributeWithoutSynchronization(x_apple_data_detectors_resultAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DataDetection::shouldCancelDefaultAction(Element&amp; element)
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx">     if (softLink_DataDetectorsCore_DDShouldImmediatelyShowActionSheetForURL(downcast&lt;HTMLAnchorElement&gt;(element).href()))
</span><span class="cx">         return true;
</span><span class="cx">     
</span><del>-    const AtomicString&amp; resultAttribute = element.fastGetAttribute(x_apple_data_detectors_resultAttr);
</del><ins>+    const AtomicString&amp; resultAttribute = element.attributeWithoutSynchronization(x_apple_data_detectors_resultAttr);
</ins><span class="cx">     if (resultAttribute.isEmpty())
</span><span class="cx">         return false;
</span><span class="cx">     NSArray *results = element.document().frame()-&gt;dataDetectionResults();
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx"> #else
</span><span class="cx">     if (!is&lt;HTMLAnchorElement&gt;(element))
</span><span class="cx">         return false;
</span><del>-    if (!equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectorsAttr), &quot;true&quot;))
</del><ins>+    if (!equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectorsAttr), &quot;true&quot;))
</ins><span class="cx">         return false;
</span><span class="cx">     String type = element.getAttribute(x_apple_data_detectors_typeAttr).convertToASCIILowercase();
</span><span class="cx">     if (type == &quot;misc&quot; || type == &quot;calendar-event&quot; || type == &quot;telephone&quot;)
</span><span class="lines">@@ -260,7 +260,7 @@
</span><span class="cx">     if (!elementParent)
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    bool elementIsDDAnchor = is&lt;HTMLAnchorElement&gt;(element) &amp;&amp; equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectorsAttr), &quot;true&quot;);
</del><ins>+    bool elementIsDDAnchor = is&lt;HTMLAnchorElement&gt;(element) &amp;&amp; equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectorsAttr), &quot;true&quot;);
</ins><span class="cx">     if (!elementIsDDAnchor)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx">     for (Node* node = &amp;startNode; node; node = NodeTraversal::next(*node, &amp;startNode)) {
</span><span class="cx">         if (is&lt;HTMLAnchorElement&gt;(*node)) {
</span><span class="cx">             auto&amp; anchor = downcast&lt;HTMLAnchorElement&gt;(*node);
</span><del>-            if (!equalIgnoringASCIICase(anchor.fastGetAttribute(x_apple_data_detectorsAttr), &quot;true&quot;))
</del><ins>+            if (!equalIgnoringASCIICase(anchor.attributeWithoutSynchronization(x_apple_data_detectorsAttr), &quot;true&quot;))
</ins><span class="cx">                 return true;
</span><span class="cx">             removeResultLinksFromAnchor(anchor);
</span><span class="cx">             didModifyDOM = true;
</span><span class="lines">@@ -287,7 +287,7 @@
</span><span class="cx">             // If we found the end node and no link, return false unless an ancestor node is a link.
</span><span class="cx">             // The only ancestors not tested at this point are in the direct line from self's parent to the top.
</span><span class="cx">             for (auto&amp; anchor : ancestorsOfType&lt;HTMLAnchorElement&gt;(startNode)) {
</span><del>-                if (!equalIgnoringASCIICase(anchor.fastGetAttribute(x_apple_data_detectorsAttr), &quot;true&quot;))
</del><ins>+                if (!equalIgnoringASCIICase(anchor.attributeWithoutSynchronization(x_apple_data_detectorsAttr), &quot;true&quot;))
</ins><span class="cx">                     return true;
</span><span class="cx">                 removeResultLinksFromAnchor(anchor);
</span><span class="cx">                 didModifyDOM = true;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinggtkEditorGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/gtk/EditorGtk.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/gtk/EditorGtk.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/gtk/EditorGtk.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -83,9 +83,9 @@
</span><span class="cx"> static const AtomicString&amp; elementURL(Element&amp; element)
</span><span class="cx"> {
</span><span class="cx">     if (is&lt;HTMLImageElement&gt;(element) || is&lt;HTMLInputElement&gt;(element))
</span><del>-        return element.fastGetAttribute(HTMLNames::srcAttr);
</del><ins>+        return element.attributeWithoutSynchronization(HTMLNames::srcAttr);
</ins><span class="cx">     if (is&lt;SVGImageElement&gt;(element))
</span><del>-        return element.fastGetAttribute(XLinkNames::hrefAttr);
</del><ins>+        return element.attributeWithoutSynchronization(XLinkNames::hrefAttr);
</ins><span class="cx">     if (is&lt;HTMLEmbedElement&gt;(element) || is&lt;HTMLObjectElement&gt;(element))
</span><span class="cx">         return element.imageSourceURL();
</span><span class="cx">     return nullAtom;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/htmlediting.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -914,7 +914,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool isTabSpanNode(const Node* node)
</span><span class="cx"> {
</span><del>-    return is&lt;HTMLSpanElement&gt;(node) &amp;&amp; downcast&lt;HTMLSpanElement&gt;(*node).fastGetAttribute(classAttr) == AppleTabSpanClass;
</del><ins>+    return is&lt;HTMLSpanElement&gt;(node) &amp;&amp; downcast&lt;HTMLSpanElement&gt;(*node).attributeWithoutSynchronization(classAttr) == AppleTabSpanClass;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool isTabSpanTextNode(const Node* node)
</span><span class="lines">@@ -1000,7 +1000,7 @@
</span><span class="cx">     ASSERT(node);
</span><span class="cx">     if (!node-&gt;hasTagName(blockquoteTag))
</span><span class="cx">         return false;
</span><del>-    return downcast&lt;HTMLElement&gt;(*node).fastGetAttribute(typeAttr) == &quot;cite&quot;;
</del><ins>+    return downcast&lt;HTMLElement&gt;(*node).attributeWithoutSynchronization(typeAttr) == &quot;cite&quot;;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int caretMinOffset(const Node&amp; node)
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/editing/markup.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -690,7 +690,7 @@
</span><span class="cx">         attachments.append(attachment);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; attachment : attachments) {
</span><del>-        attachment-&gt;setFile(File::create(attachment-&gt;fastGetAttribute(webkitattachmentpathAttr)).ptr());
</del><ins>+        attachment-&gt;setFile(File::create(attachment-&gt;attributeWithoutSynchronization(webkitattachmentpathAttr)).ptr());
</ins><span class="cx">         attachment-&gt;removeAttribute(webkitattachmentpathAttr);
</span><span class="cx">     }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlAutofillcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/Autofill.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/Autofill.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/Autofill.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; attributeValue = element.fastGetAttribute(HTMLNames::autocompleteAttr);
</del><ins>+    const AtomicString&amp; attributeValue = element.attributeWithoutSynchronization(HTMLNames::autocompleteAttr);
</ins><span class="cx"> 
</span><span class="cx">     // 1. If the element has no autocomplete attribute, then jump to the step labeled default.
</span><span class="cx">     if (attributeValue == nullAtom)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlBaseTextInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/BaseTextInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/BaseTextInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/BaseTextInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool BaseTextInputType::patternMismatch(const String&amp; value) const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; rawPattern = element().fastGetAttribute(patternAttr);
</del><ins>+    const AtomicString&amp; rawPattern = element().attributeWithoutSynchronization(patternAttr);
</ins><span class="cx">     if (rawPattern.isNull() || value.isEmpty() || !JSC::Yarr::RegularExpression(rawPattern, TextCaseSensitive).isValid())
</span><span class="cx">         return false;
</span><span class="cx">     String pattern = &quot;^(?:&quot; + rawPattern + &quot;)$&quot;;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlDateInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/DateInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/DateInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/DateInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -64,10 +64,10 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(dateDefaultStep, dateDefaultStepBase, dateStepScaleFactor, StepRange::ParsedStepValueShouldBeInteger);
</span><span class="cx"> 
</span><del>-    const Decimal stepBase = parseToNumber(element().fastGetAttribute(minAttr), 0);
-    const Decimal minimum = parseToNumber(element().fastGetAttribute(minAttr), Decimal::fromDouble(DateComponents::minimumDate()));
-    const Decimal maximum = parseToNumber(element().fastGetAttribute(maxAttr), Decimal::fromDouble(DateComponents::maximumDate()));
-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().fastGetAttribute(stepAttr));
</del><ins>+    const Decimal stepBase = parseToNumber(element().attributeWithoutSynchronization(minAttr), 0);
+    const Decimal minimum = parseToNumber(element().attributeWithoutSynchronization(minAttr), Decimal::fromDouble(DateComponents::minimumDate()));
+    const Decimal maximum = parseToNumber(element().attributeWithoutSynchronization(maxAttr), Decimal::fromDouble(DateComponents::maximumDate()));
+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(stepBase, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlDateTimeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/DateTimeInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/DateTimeInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/DateTimeInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -65,10 +65,10 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(dateTimeDefaultStep, dateTimeDefaultStepBase, dateTimeStepScaleFactor, StepRange::ScaledStepValueShouldBeInteger);
</span><span class="cx"> 
</span><del>-    const Decimal stepBase = parseToNumber(element().fastGetAttribute(minAttr), 0);
-    const Decimal minimum = parseToNumber(element().fastGetAttribute(minAttr), Decimal::fromDouble(DateComponents::minimumDateTime()));
-    const Decimal maximum = parseToNumber(element().fastGetAttribute(maxAttr), Decimal::fromDouble(DateComponents::maximumDateTime()));
-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().fastGetAttribute(stepAttr));
</del><ins>+    const Decimal stepBase = parseToNumber(element().attributeWithoutSynchronization(minAttr), 0);
+    const Decimal minimum = parseToNumber(element().attributeWithoutSynchronization(minAttr), Decimal::fromDouble(DateComponents::minimumDateTime()));
+    const Decimal maximum = parseToNumber(element().attributeWithoutSynchronization(maxAttr), Decimal::fromDouble(DateComponents::maximumDateTime()));
+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(stepBase, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlDateTimeLocalInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/DateTimeLocalInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/DateTimeLocalInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/DateTimeLocalInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -71,10 +71,10 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(dateTimeLocalDefaultStep, dateTimeLocalDefaultStepBase, dateTimeLocalStepScaleFactor, StepRange::ScaledStepValueShouldBeInteger);
</span><span class="cx"> 
</span><del>-    const Decimal stepBase = parseToNumber(element().fastGetAttribute(minAttr), 0);
-    const Decimal minimum = parseToNumber(element().fastGetAttribute(minAttr), Decimal::fromDouble(DateComponents::minimumDateTime()));
-    const Decimal maximum = parseToNumber(element().fastGetAttribute(maxAttr), Decimal::fromDouble(DateComponents::maximumDateTime()));
-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().fastGetAttribute(stepAttr));
</del><ins>+    const Decimal stepBase = parseToNumber(element().attributeWithoutSynchronization(minAttr), 0);
+    const Decimal minimum = parseToNumber(element().attributeWithoutSynchronization(minAttr), Decimal::fromDouble(DateComponents::minimumDateTime()));
+    const Decimal maximum = parseToNumber(element().attributeWithoutSynchronization(maxAttr), Decimal::fromDouble(DateComponents::maximumDateTime()));
+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(stepBase, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFormAssociatedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FormAssociatedElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FormAssociatedElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/FormAssociatedElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx"> HTMLFormElement* FormAssociatedElement::findAssociatedForm(const HTMLElement* element, HTMLFormElement* currentAssociatedForm)
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; formId(element-&gt;fastGetAttribute(formAttr));
</del><ins>+    const AtomicString&amp; formId(element-&gt;attributeWithoutSynchronization(formAttr));
</ins><span class="cx">     if (!formId.isNull() &amp;&amp; element-&gt;inDocument()) {
</span><span class="cx">         // The HTML5 spec says that the element should be associated with
</span><span class="cx">         // the first element in the document to have an ID that equal to
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx"> 
</span><span class="cx"> void FormAssociatedElement::resetFormAttributeTargetObserver()
</span><span class="cx"> {
</span><del>-    m_formAttributeTargetObserver = std::make_unique&lt;FormAttributeTargetObserver&gt;(asHTMLElement().fastGetAttribute(formAttr), *this);
</del><ins>+    m_formAttributeTargetObserver = std::make_unique&lt;FormAttributeTargetObserver&gt;(asHTMLElement().attributeWithoutSynchronization(formAttr), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FormAssociatedElement::formAttributeTargetChanged()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -276,7 +276,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLAnchorElement::draggable() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; value = fastGetAttribute(draggableAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(draggableAttr);
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(value, &quot;true&quot;))
</span><span class="cx">         return true;
</span><span class="cx">     if (equalLettersIgnoringASCIICase(value, &quot;false&quot;))
</span><span class="lines">@@ -286,7 +286,7 @@
</span><span class="cx"> 
</span><span class="cx"> URL HTMLAnchorElement::href() const
</span><span class="cx"> {
</span><del>-    return document().completeURL(stripLeadingAndTrailingHTMLSpaces(fastGetAttribute(hrefAttr)));
</del><ins>+    return document().completeURL(stripLeadingAndTrailingHTMLSpaces(attributeWithoutSynchronization(hrefAttr)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLAnchorElement::setHref(const AtomicString&amp; value)
</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 fastGetAttribute(targetAttr);
</del><ins>+    return attributeWithoutSynchronization(targetAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLAnchorElement::origin() const
</span><span class="lines">@@ -352,7 +352,7 @@
</span><span class="cx">     if (!fastHasAttribute(pingAttr) || !document().settings() || !document().settings()-&gt;hyperlinkAuditingEnabled())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    SpaceSplitString pingURLs(fastGetAttribute(pingAttr), false);
</del><ins>+    SpaceSplitString pingURLs(attributeWithoutSynchronization(pingAttr), false);
</ins><span class="cx">     for (unsigned i = 0; i &lt; pingURLs.size(); i++)
</span><span class="cx">         PingLoader::sendPing(*document().frame(), document().completeURL(pingURLs[i]), destinationURL);
</span><span class="cx"> }
</span><span class="lines">@@ -366,7 +366,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     StringBuilder url;
</span><del>-    url.append(stripLeadingAndTrailingHTMLSpaces(fastGetAttribute(hrefAttr)));
</del><ins>+    url.append(stripLeadingAndTrailingHTMLSpaces(attributeWithoutSynchronization(hrefAttr)));
</ins><span class="cx">     appendServerMapMousePosition(url, *event);
</span><span class="cx">     URL kurl = document().completeURL(url.toString());
</span><span class="cx"> 
</span><span class="lines">@@ -373,7 +373,7 @@
</span><span class="cx">     auto downloadAttribute = nullAtom;
</span><span class="cx"> #if ENABLE(DOWNLOAD_ATTRIBUTE)
</span><span class="cx">     if (RuntimeEnabledFeatures::sharedFeatures().downloadAttributeEnabled())
</span><del>-        downloadAttribute = fastGetAttribute(downloadAttr);
</del><ins>+        downloadAttribute = attributeWithoutSynchronization(downloadAttr);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     frame-&gt;loader().urlSelected(kurl, target(), event, LockHistory::No, LockBackForwardList::No, hasRel(RelationNoReferrer) ? NeverSendReferrer : MaybeSendReferrer, document().shouldOpenExternalURLsPolicyToPropagate(), downloadAttribute);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.h (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.h        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.h        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx"> inline LinkHash HTMLAnchorElement::visitedLinkHash() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_cachedVisitedLinkHash)
</span><del>-        m_cachedVisitedLinkHash = WebCore::visitedLinkHash(document().baseURL(), fastGetAttribute(HTMLNames::hrefAttr));
</del><ins>+        m_cachedVisitedLinkHash = WebCore::visitedLinkHash(document().baseURL(), attributeWithoutSynchronization(HTMLNames::hrefAttr));
</ins><span class="cx">     return m_cachedVisitedLinkHash; 
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAppletElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAppletElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAppletElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLAppletElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -125,9 +125,9 @@
</span><span class="cx">     Vector&lt;String&gt; paramValues;
</span><span class="cx"> 
</span><span class="cx">     paramNames.append(&quot;code&quot;);
</span><del>-    paramValues.append(fastGetAttribute(codeAttr).string());
</del><ins>+    paramValues.append(attributeWithoutSynchronization(codeAttr).string());
</ins><span class="cx"> 
</span><del>-    const AtomicString&amp; codeBase = fastGetAttribute(codebaseAttr);
</del><ins>+    const AtomicString&amp; codeBase = attributeWithoutSynchronization(codebaseAttr);
</ins><span class="cx">     if (!codeBase.isNull()) {
</span><span class="cx">         paramNames.append(ASCIILiteral(&quot;codeBase&quot;));
</span><span class="cx">         paramValues.append(codeBase.string());
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">         paramValues.append(name.string());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; archive = fastGetAttribute(archiveAttr);
</del><ins>+    const AtomicString&amp; archive = attributeWithoutSynchronization(archiveAttr);
</ins><span class="cx">     if (!archive.isNull()) {
</span><span class="cx">         paramNames.append(ASCIILiteral(&quot;archive&quot;));
</span><span class="cx">         paramValues.append(archive.string());
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx">     paramNames.append(ASCIILiteral(&quot;baseURL&quot;));
</span><span class="cx">     paramValues.append(document().baseURL().string());
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; mayScript = fastGetAttribute(mayscriptAttr);
</del><ins>+    const AtomicString&amp; mayScript = attributeWithoutSynchronization(mayscriptAttr);
</ins><span class="cx">     if (!mayScript.isNull()) {
</span><span class="cx">         paramNames.append(ASCIILiteral(&quot;mayScript&quot;));
</span><span class="cx">         paramValues.append(mayScript.string());
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAreaElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAreaElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLAreaElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</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 fastGetAttribute(targetAttr);
</del><ins>+    return attributeWithoutSynchronization(targetAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAttachmentElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAttachmentElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAttachmentElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLAttachmentElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLAttachmentElement::attachmentTitle() const
</span><span class="cx"> {
</span><del>-    auto&amp; title = fastGetAttribute(titleAttr);
</del><ins>+    auto&amp; title = attributeWithoutSynchronization(titleAttr);
</ins><span class="cx">     if (!title.isEmpty())
</span><span class="cx">         return title;
</span><span class="cx">     return m_file ? m_file-&gt;name() : String();
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLAttachmentElement::attachmentType() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(typeAttr);
</del><ins>+    return attributeWithoutSynchronization(typeAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBaseElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBaseElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBaseElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLBaseElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLBaseElement::target() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(targetAttr);
</del><ins>+    return attributeWithoutSynchronization(targetAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> URL HTMLBaseElement::href() const
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     // base elements like this one can be used to set that base URL. Thus we need to resolve relative to the document's
</span><span class="cx">     // URL and ignore the base URL.
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; attributeValue = fastGetAttribute(hrefAttr);
</del><ins>+    const AtomicString&amp; attributeValue = attributeWithoutSynchronization(hrefAttr);
</ins><span class="cx">     if (attributeValue.isNull())
</span><span class="cx">         return document().url();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBodyElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBodyElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBodyElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLBodyElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -330,7 +330,7 @@
</span><span class="cx"> {
</span><span class="cx">     HTMLElement::addSubresourceAttributeURLs(urls);
</span><span class="cx"> 
</span><del>-    addSubresourceURL(urls, document().completeURL(fastGetAttribute(backgroundAttr)));
</del><ins>+    addSubresourceURL(urls, document().completeURL(attributeWithoutSynchronization(backgroundAttr)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLButtonElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLButtonElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLButtonElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLButtonElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLButtonElement::value() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(valueAttr);
</del><ins>+    return attributeWithoutSynchronization(valueAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLButtonElement::computeWillValidate() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCanvasElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -328,8 +328,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool hadImageBuffer = hasCreatedImageBuffer();
</span><span class="cx"> 
</span><del>-    int w = limitToOnlyHTMLNonNegative(fastGetAttribute(widthAttr), defaultWidth);
-    int h = limitToOnlyHTMLNonNegative(fastGetAttribute(heightAttr), defaultHeight);
</del><ins>+    int w = limitToOnlyHTMLNonNegative(attributeWithoutSynchronization(widthAttr), defaultWidth);
+    int h = limitToOnlyHTMLNonNegative(attributeWithoutSynchronization(heightAttr), defaultHeight);
</ins><span class="cx"> 
</span><span class="cx">     if (m_contextStateSaver) {
</span><span class="cx">         // Reset to the initial graphics context state.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDocument.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDocument.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLDocument.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">     auto* bodyElement = body();
</span><span class="cx">     if (!bodyElement)
</span><span class="cx">         return emptyAtom;
</span><del>-    return bodyElement-&gt;fastGetAttribute(bgcolorAttr);
</del><ins>+    return bodyElement-&gt;attributeWithoutSynchronization(bgcolorAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLDocument::setBgColor(const String&amp; value)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx">     auto* bodyElement = body();
</span><span class="cx">     if (!bodyElement)
</span><span class="cx">         return emptyAtom;
</span><del>-    return bodyElement-&gt;fastGetAttribute(textAttr);
</del><ins>+    return bodyElement-&gt;attributeWithoutSynchronization(textAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLDocument::setFgColor(const String&amp; value)
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx">     auto* bodyElement = body();
</span><span class="cx">     if (!bodyElement)
</span><span class="cx">         return emptyAtom;
</span><del>-    return bodyElement-&gt;fastGetAttribute(alinkAttr);
</del><ins>+    return bodyElement-&gt;attributeWithoutSynchronization(alinkAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLDocument::setAlinkColor(const String&amp; value)
</span><span class="lines">@@ -186,7 +186,7 @@
</span><span class="cx">     auto* bodyElement = body();
</span><span class="cx">     if (!bodyElement)
</span><span class="cx">         return emptyAtom;
</span><del>-    return bodyElement-&gt;fastGetAttribute(linkAttr);
</del><ins>+    return bodyElement-&gt;attributeWithoutSynchronization(linkAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLDocument::setLinkColor(const String&amp; value)
</span><span class="lines">@@ -200,7 +200,7 @@
</span><span class="cx">     auto* bodyElement = body();
</span><span class="cx">     if (!bodyElement)
</span><span class="cx">         return emptyAtom;
</span><del>-    return bodyElement-&gt;fastGetAttribute(vlinkAttr);
</del><ins>+    return bodyElement-&gt;attributeWithoutSynchronization(vlinkAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLDocument::setVlinkColor(const String&amp; value)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx"> 
</span><span class="cx"> static ContentEditableType contentEditableType(const HTMLElement&amp; element)
</span><span class="cx"> {
</span><del>-    return contentEditableType(element.fastGetAttribute(contenteditableAttr));
</del><ins>+    return contentEditableType(element.attributeWithoutSynchronization(contenteditableAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLElement::collectStyleForPresentationAttribute(const QualifiedName&amp; name, const AtomicString&amp; value, MutableStyleProperties&amp; style)
</span><span class="lines">@@ -536,7 +536,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLElement::dir() const
</span><span class="cx"> {
</span><del>-    return toValidDirValue(fastGetAttribute(dirAttr));
</del><ins>+    return toValidDirValue(attributeWithoutSynchronization(dirAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLElement::setDir(const AtomicString&amp; value)
</span><span class="lines">@@ -777,7 +777,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLElement::draggable() const
</span><span class="cx"> {
</span><del>-    return equalLettersIgnoringASCIICase(fastGetAttribute(draggableAttr), &quot;true&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(attributeWithoutSynchronization(draggableAttr), &quot;true&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLElement::setDraggable(bool value)
</span><span class="lines">@@ -811,7 +811,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLElement::title() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(titleAttr);
</del><ins>+    return attributeWithoutSynchronization(titleAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int HTMLElement::tabIndex() const
</span><span class="lines">@@ -823,7 +823,7 @@
</span><span class="cx"> 
</span><span class="cx"> TranslateAttributeMode HTMLElement::translateAttributeMode() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; value = fastGetAttribute(translateAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(translateAttr);
</ins><span class="cx"> 
</span><span class="cx">     if (value.isNull())
</span><span class="cx">         return TranslateAttributeInherit;
</span><span class="lines">@@ -917,7 +917,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLElement::hasDirectionAuto() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; direction = fastGetAttribute(dirAttr);
</del><ins>+    const AtomicString&amp; direction = attributeWithoutSynchronization(dirAttr);
</ins><span class="cx">     return (hasTagName(bdiTag) &amp;&amp; direction.isNull()) || equalLettersIgnoringASCIICase(direction, &quot;auto&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -954,7 +954,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Skip elements with valid dir attribute
</span><span class="cx">         if (is&lt;Element&gt;(*node)) {
</span><del>-            AtomicString dirAttributeValue = downcast&lt;Element&gt;(*node).fastGetAttribute(dirAttr);
</del><ins>+            AtomicString dirAttributeValue = downcast&lt;Element&gt;(*node).attributeWithoutSynchronization(dirAttr);
</ins><span class="cx">             if (isLTROrRTLIgnoringCase(dirAttributeValue) || equalLettersIgnoringASCIICase(dirAttributeValue, &quot;auto&quot;)) {
</span><span class="cx">                 node = NodeTraversal::nextSkippingChildren(*node, this);
</span><span class="cx">                 continue;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLEmbedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLEmbedElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLEmbedElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLEmbedElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLEmbedElement::imageSourceURL() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(srcAttr);
</del><ins>+    return attributeWithoutSynchronization(srcAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLEmbedElement::addSubresourceAttributeURLs(ListHashSet&lt;URL&gt;&amp; urls) const
</span><span class="lines">@@ -224,7 +224,7 @@
</span><span class="cx"> {
</span><span class="cx">     HTMLPlugInImageElement::addSubresourceAttributeURLs(urls);
</span><span class="cx"> 
</span><del>-    addSubresourceURL(urls, document().completeURL(fastGetAttribute(srcAttr)));
</del><ins>+    addSubresourceURL(urls, document().completeURL(attributeWithoutSynchronization(srcAttr)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLFormControlElement::formEnctype() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; formEnctypeAttr = fastGetAttribute(formenctypeAttr);
</del><ins>+    const AtomicString&amp; formEnctypeAttr = attributeWithoutSynchronization(formenctypeAttr);
</ins><span class="cx">     if (formEnctypeAttr.isNull())
</span><span class="cx">         return emptyString();
</span><span class="cx">     return FormSubmission::Attributes::parseEncodingType(formEnctypeAttr);
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLFormControlElement::formMethod() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; formMethodAttr = fastGetAttribute(formmethodAttr);
</del><ins>+    const AtomicString&amp; formMethodAttr = attributeWithoutSynchronization(formmethodAttr);
</ins><span class="cx">     if (formMethodAttr.isNull())
</span><span class="cx">         return emptyString();
</span><span class="cx">     return FormSubmission::Attributes::methodString(FormSubmission::Attributes::parseMethodType(formMethodAttr));
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLFormControlElement::formAction() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; value = fastGetAttribute(formactionAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(formactionAttr);
</ins><span class="cx">     if (value.isEmpty())
</span><span class="cx">         return document().url();
</span><span class="cx">     return getURLAttribute(formactionAttr);
</span><span class="lines">@@ -570,7 +570,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLFormControlElement::autocorrect() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; autocorrectValue = fastGetAttribute(autocorrectAttr);
</del><ins>+    const AtomicString&amp; autocorrectValue = attributeWithoutSynchronization(autocorrectAttr);
</ins><span class="cx">     if (!autocorrectValue.isEmpty())
</span><span class="cx">         return !equalLettersIgnoringASCIICase(autocorrectValue, &quot;off&quot;);
</span><span class="cx">     if (HTMLFormElement* form = this-&gt;form())
</span><span class="lines">@@ -585,7 +585,7 @@
</span><span class="cx"> 
</span><span class="cx"> WebAutocapitalizeType HTMLFormControlElement::autocapitalizeType() const
</span><span class="cx"> {
</span><del>-    WebAutocapitalizeType type = autocapitalizeTypeForAttributeValue(fastGetAttribute(autocapitalizeAttr));
</del><ins>+    WebAutocapitalizeType type = autocapitalizeTypeForAttributeValue(attributeWithoutSynchronization(autocapitalizeAttr));
</ins><span class="cx">     if (type == WebAutocapitalizeTypeDefault) {
</span><span class="cx">         if (HTMLFormElement* form = this-&gt;form())
</span><span class="cx">             return form-&gt;autocapitalizeType();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -396,7 +396,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLFormElement::autocorrect() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; autocorrectValue = fastGetAttribute(autocorrectAttr);
</del><ins>+    const AtomicString&amp; autocorrectValue = attributeWithoutSynchronization(autocorrectAttr);
</ins><span class="cx">     if (!autocorrectValue.isEmpty())
</span><span class="cx">         return !equalLettersIgnoringASCIICase(autocorrectValue, &quot;off&quot;);
</span><span class="cx">     if (HTMLFormElement* form = this-&gt;form())
</span><span class="lines">@@ -411,7 +411,7 @@
</span><span class="cx"> 
</span><span class="cx"> WebAutocapitalizeType HTMLFormElement::autocapitalizeType() const
</span><span class="cx"> {
</span><del>-    return autocapitalizeTypeForAttributeValue(fastGetAttribute(autocapitalizeAttr));
</del><ins>+    return autocapitalizeTypeForAttributeValue(attributeWithoutSynchronization(autocapitalizeAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLFormElement::autocapitalize() const
</span><span class="lines">@@ -682,7 +682,7 @@
</span><span class="cx"> // (Darin Adler) removed this, someone added it back, so I am leaving it in for now.
</span><span class="cx"> String HTMLFormElement::action() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(actionAttr);
</del><ins>+    return attributeWithoutSynchronization(actionAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLFormElement::setAction(const String &amp;value)
</span><span class="lines">@@ -707,7 +707,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLFormElement::target() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(targetAttr);
</del><ins>+    return attributeWithoutSynchronization(targetAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLFormElement::wasUserSubmitted() const
</span><span class="lines">@@ -879,7 +879,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLFormElement::shouldAutocomplete() const
</span><span class="cx"> {
</span><del>-    return !equalLettersIgnoringASCIICase(fastGetAttribute(autocompleteAttr), &quot;off&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(autocompleteAttr), &quot;off&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLFormElement::finishParsingChildren()
</span><span class="lines">@@ -909,7 +909,7 @@
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; on(&quot;on&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; off(&quot;off&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx"> 
</span><del>-    return equalIgnoringASCIICase(fastGetAttribute(autocompleteAttr), &quot;off&quot;) ? off : on;
</del><ins>+    return equalIgnoringASCIICase(attributeWithoutSynchronization(autocompleteAttr), &quot;off&quot;) ? off : on;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameElementBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameElementBase.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (fastHasAttribute(srcdocAttr))
</span><span class="cx">         return URL(ParsedURLString, &quot;about:srcdoc&quot;);
</span><del>-    return document().completeURL(fastGetAttribute(srcAttr));
</del><ins>+    return document().completeURL(attributeWithoutSynchronization(srcAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLFrameElementBase::setLocation(const String&amp; str)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLHtmlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLHtmlElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLHtmlElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLHtmlElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx">     if (!documentLoader)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; manifest = fastGetAttribute(manifestAttr);
</del><ins>+    const AtomicString&amp; manifest = attributeWithoutSynchronization(manifestAttr);
</ins><span class="cx">     if (manifest.isEmpty())
</span><span class="cx">         documentLoader-&gt;applicationCacheHost()-&gt;selectCacheWithoutManifest();
</span><span class="cx">     else
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLImageElement::imageSourceURL() const
</span><span class="cx"> {
</span><del>-    return m_bestFitImageURL.isEmpty() ? fastGetAttribute(srcAttr) : m_bestFitImageURL;
</del><ins>+    return m_bestFitImageURL.isEmpty() ? attributeWithoutSynchronization(srcAttr) : m_bestFitImageURL;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLImageElement::setBestFitURLAndDPRFromImageCandidate(const ImageCandidate&amp; candidate)
</span><span class="lines">@@ -154,11 +154,11 @@
</span><span class="cx">             continue;
</span><span class="cx">         auto&amp; source = downcast&lt;HTMLSourceElement&gt;(*child);
</span><span class="cx"> 
</span><del>-        auto&amp; srcset = source.fastGetAttribute(srcsetAttr);
</del><ins>+        auto&amp; srcset = source.attributeWithoutSynchronization(srcsetAttr);
</ins><span class="cx">         if (srcset.isEmpty())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        auto&amp; typeAttribute = source.fastGetAttribute(typeAttr);
</del><ins>+        auto&amp; typeAttribute = source.attributeWithoutSynchronization(typeAttr);
</ins><span class="cx">         if (!typeAttribute.isNull()) {
</span><span class="cx">             String type = typeAttribute.string();
</span><span class="cx">             type.truncate(type.find(';'));
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx">         if (!evaluation)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        auto sourceSize = parseSizesAttribute(document(), source.fastGetAttribute(sizesAttr).string());
</del><ins>+        auto sourceSize = parseSizesAttribute(document(), source.attributeWithoutSynchronization(sizesAttr).string());
</ins><span class="cx">         auto candidate = bestFitSourceForImageAttributes(document().deviceScaleFactor(), nullAtom, srcset, sourceSize);
</span><span class="cx">         if (!candidate.isEmpty())
</span><span class="cx">             return candidate;
</span><span class="lines">@@ -190,8 +190,8 @@
</span><span class="cx">     ImageCandidate candidate = bestFitSourceFromPictureElement();
</span><span class="cx">     if (candidate.isEmpty()) {
</span><span class="cx">         // If we don't have a &lt;picture&gt; or didn't find a source, then we use our own attributes.
</span><del>-        float sourceSize = parseSizesAttribute(document(), fastGetAttribute(sizesAttr).string());
-        candidate = bestFitSourceForImageAttributes(document().deviceScaleFactor(), fastGetAttribute(srcAttr), fastGetAttribute(srcsetAttr), sourceSize);
</del><ins>+        float sourceSize = parseSizesAttribute(document(), attributeWithoutSynchronization(sizesAttr).string());
+        candidate = bestFitSourceForImageAttributes(document().deviceScaleFactor(), attributeWithoutSynchronization(srcAttr), attributeWithoutSynchronization(srcsetAttr), sourceSize);
</ins><span class="cx">     }
</span><span class="cx">     setBestFitURLAndDPRFromImageCandidate(candidate);
</span><span class="cx">     m_imageLoader.updateFromElementIgnoringPreviousError();
</span><span class="lines">@@ -253,11 +253,11 @@
</span><span class="cx">     // lets figure out the alt text.. magic stuff
</span><span class="cx">     // http://www.w3.org/TR/1998/REC-html40-19980424/appendix/notes.html#altgen
</span><span class="cx">     // also heavily discussed by Hixie on bugzilla
</span><del>-    const AtomicString&amp; alt = fastGetAttribute(altAttr);
</del><ins>+    const AtomicString&amp; alt = attributeWithoutSynchronization(altAttr);
</ins><span class="cx">     if (!alt.isNull())
</span><span class="cx">         return alt;
</span><span class="cx">     // fall back to title attribute
</span><del>-    return fastGetAttribute(titleAttr);
</del><ins>+    return attributeWithoutSynchronization(titleAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RenderPtr&lt;RenderElement&gt; HTMLImageElement::createElementRenderer(RenderStyle&amp;&amp; style, const RenderTreePosition&amp;)
</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 = fastGetAttribute(widthAttr).toInt(&amp;ok);
</del><ins>+        int width = attributeWithoutSynchronization(widthAttr).toInt(&amp;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 = fastGetAttribute(heightAttr).toInt(&amp;ok);
</del><ins>+        int height = attributeWithoutSynchronization(heightAttr).toInt(&amp;ok);
</ins><span class="cx">         if (ok)
</span><span class="cx">             return height;
</span><span class="cx"> 
</span><span class="lines">@@ -486,13 +486,13 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLImageElement::alt() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(altAttr);
</del><ins>+    return attributeWithoutSynchronization(altAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLImageElement::draggable() const
</span><span class="cx"> {
</span><span class="cx">     // Image elements are draggable by default.
</span><del>-    return !equalLettersIgnoringASCIICase(fastGetAttribute(draggableAttr), &quot;false&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(draggableAttr), &quot;false&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLImageElement::setHeight(int value)
</span><span class="lines">@@ -502,7 +502,7 @@
</span><span class="cx"> 
</span><span class="cx"> URL HTMLImageElement::src() const
</span><span class="cx"> {
</span><del>-    return document().completeURL(fastGetAttribute(srcAttr));
</del><ins>+    return document().completeURL(attributeWithoutSynchronization(srcAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLImageElement::setSrc(const String&amp; value)
</span><span class="lines">@@ -548,7 +548,7 @@
</span><span class="cx"> 
</span><span class="cx">     addSubresourceURL(urls, document().completeURL(imageSourceURL()));
</span><span class="cx">     // FIXME: What about when the usemap attribute begins with &quot;#&quot;?
</span><del>-    addSubresourceURL(urls, document().completeURL(fastGetAttribute(usemapAttr)));
</del><ins>+    addSubresourceURL(urls, document().completeURL(attributeWithoutSynchronization(usemapAttr)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLImageElement::didMoveToNewDocument(Document* oldDocument)
</span><span class="lines">@@ -562,7 +562,7 @@
</span><span class="cx">     if (!fastHasAttribute(ismapAttr))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; usemap = fastGetAttribute(usemapAttr);
</del><ins>+    const AtomicString&amp; usemap = attributeWithoutSynchronization(usemapAttr);
</ins><span class="cx"> 
</span><span class="cx">     // If the usemap attribute starts with '#', it refers to a map element in the document.
</span><span class="cx">     if (usemap.string()[0] == '#')
</span><span class="lines">@@ -578,7 +578,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLImageElement::crossOrigin() const
</span><span class="cx"> {
</span><del>-    return parseCORSSettingsAttribute(fastGetAttribute(crossoriginAttr));
</del><ins>+    return parseCORSSettingsAttribute(attributeWithoutSynchronization(crossoriginAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -447,7 +447,7 @@
</span><span class="cx"> void HTMLInputElement::updateType()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_inputType);
</span><del>-    auto newType = InputType::create(*this, fastGetAttribute(typeAttr));
</del><ins>+    auto newType = InputType::create(*this, attributeWithoutSynchronization(typeAttr));
</ins><span class="cx">     bool hadType = m_hasType;
</span><span class="cx">     m_hasType = true;
</span><span class="cx">     if (m_inputType-&gt;formControlType() == newType-&gt;formControlType())
</span><span class="lines">@@ -482,7 +482,7 @@
</span><span class="cx">         m_valueIfDirty = String();
</span><span class="cx">     }
</span><span class="cx">     if (!didStoreValue &amp;&amp; willStoreValue) {
</span><del>-        AtomicString valueString = fastGetAttribute(valueAttr);
</del><ins>+        AtomicString valueString = attributeWithoutSynchronization(valueAttr);
</ins><span class="cx">         m_valueIfDirty = sanitizeValue(valueString);
</span><span class="cx">     } else
</span><span class="cx">         updateValueIfNeeded();
</span><span class="lines">@@ -623,7 +623,7 @@
</span><span class="cx">     ASSERT(m_parsingInProgress);
</span><span class="cx">     ASSERT(!m_inputType);
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; type = fastGetAttribute(typeAttr);
</del><ins>+    const AtomicString&amp; type = attributeWithoutSynchronization(typeAttr);
</ins><span class="cx">     if (type.isNull()) {
</span><span class="cx">         m_inputType = InputType::createText(*this);
</span><span class="cx">         ensureUserAgentShadowRoot();
</span><span class="lines">@@ -805,12 +805,12 @@
</span><span class="cx">     // http://www.w3.org/TR/1998/REC-html40-19980424/appendix/notes.html#altgen
</span><span class="cx">     // also heavily discussed by Hixie on bugzilla
</span><span class="cx">     // note this is intentionally different to HTMLImageElement::altText()
</span><del>-    String alt = fastGetAttribute(altAttr);
</del><ins>+    String alt = attributeWithoutSynchronization(altAttr);
</ins><span class="cx">     // fall back to title attribute
</span><span class="cx">     if (alt.isNull())
</span><del>-        alt = fastGetAttribute(titleAttr);
</del><ins>+        alt = attributeWithoutSynchronization(titleAttr);
</ins><span class="cx">     if (alt.isNull())
</span><del>-        alt = fastGetAttribute(valueAttr);
</del><ins>+        alt = attributeWithoutSynchronization(valueAttr);
</ins><span class="cx">     if (alt.isEmpty())
</span><span class="cx">         alt = inputElementAltText();
</span><span class="cx">     return alt;
</span><span class="lines">@@ -957,7 +957,7 @@
</span><span class="cx">     if (!value.isNull())
</span><span class="cx">         return value;
</span><span class="cx"> 
</span><del>-    AtomicString valueString = fastGetAttribute(valueAttr);
</del><ins>+    AtomicString valueString = attributeWithoutSynchronization(valueAttr);
</ins><span class="cx">     value = sanitizeValue(valueString);
</span><span class="cx">     if (!value.isNull())
</span><span class="cx">         return value;
</span><span class="lines">@@ -1202,7 +1202,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLInputElement::defaultValue() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(valueAttr);
</del><ins>+    return attributeWithoutSynchronization(valueAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLInputElement::setDefaultValue(const String &amp;value)
</span><span class="lines">@@ -1256,22 +1256,22 @@
</span><span class="cx"> 
</span><span class="cx"> Vector&lt;String&gt; HTMLInputElement::acceptMIMETypes()
</span><span class="cx"> {
</span><del>-    return parseAcceptAttribute(fastGetAttribute(acceptAttr), isValidMIMEType);
</del><ins>+    return parseAcceptAttribute(attributeWithoutSynchronization(acceptAttr), isValidMIMEType);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Vector&lt;String&gt; HTMLInputElement::acceptFileExtensions()
</span><span class="cx"> {
</span><del>-    return parseAcceptAttribute(fastGetAttribute(acceptAttr), isValidFileExtension);
</del><ins>+    return parseAcceptAttribute(attributeWithoutSynchronization(acceptAttr), isValidFileExtension);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLInputElement::accept() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(acceptAttr);
</del><ins>+    return attributeWithoutSynchronization(acceptAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLInputElement::alt() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(altAttr);
</del><ins>+    return attributeWithoutSynchronization(altAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned HTMLInputElement::effectiveMaxLength() const
</span><span class="lines">@@ -1300,7 +1300,7 @@
</span><span class="cx"> 
</span><span class="cx"> URL HTMLInputElement::src() const
</span><span class="cx"> {
</span><del>-    return document().completeURL(fastGetAttribute(srcAttr));
</del><ins>+    return document().completeURL(attributeWithoutSynchronization(srcAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLInputElement::setAutoFilled(bool autoFilled)
</span><span class="lines">@@ -1578,7 +1578,7 @@
</span><span class="cx">     if (!m_inputType-&gt;shouldRespectListAttribute())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    Element* element = treeScope().getElementById(fastGetAttribute(listAttr));
</del><ins>+    Element* element = treeScope().getElementById(attributeWithoutSynchronization(listAttr));
</ins><span class="cx">     if (!is&lt;HTMLDataListElement&gt;(element))
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -1588,7 +1588,7 @@
</span><span class="cx"> void HTMLInputElement::resetListAttributeTargetObserver()
</span><span class="cx"> {
</span><span class="cx">     if (inDocument())
</span><del>-        m_listAttributeTargetObserver = std::make_unique&lt;ListAttributeTargetObserver&gt;(fastGetAttribute(listAttr), this);
</del><ins>+        m_listAttributeTargetObserver = std::make_unique&lt;ListAttributeTargetObserver&gt;(attributeWithoutSynchronization(listAttr), this);
</ins><span class="cx">     else
</span><span class="cx">         m_listAttributeTargetObserver = nullptr;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLKeygenElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLKeygenElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLKeygenElement::isKeytypeRSA() const
</span><span class="cx"> {
</span><del>-    const auto&amp; keyType = fastGetAttribute(keytypeAttr);
</del><ins>+    const auto&amp; keyType = attributeWithoutSynchronization(keytypeAttr);
</ins><span class="cx">     return keyType.isNull() || equalLettersIgnoringASCIICase(keyType, &quot;rsa&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">     // Only RSA is supported at this time.
</span><span class="cx">     if (!isKeytypeRSA())
</span><span class="cx">         return false;
</span><del>-    String value = signedPublicKeyAndChallengeString(shadowSelect()-&gt;selectedIndex(), fastGetAttribute(challengeAttr), document().baseURL());
</del><ins>+    String value = signedPublicKeyAndChallengeString(shadowSelect()-&gt;selectedIndex(), attributeWithoutSynchronization(challengeAttr), document().baseURL());
</ins><span class="cx">     if (value.isNull())
</span><span class="cx">         return false;
</span><span class="cx">     encoded_values.appendData(name(), value.utf8());
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLIElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLIElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLIElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLLIElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">     if (!isInList)
</span><span class="cx">         listItemRenderer.setNotInList(true);
</span><span class="cx"> 
</span><del>-    parseValue(fastGetAttribute(valueAttr));
</del><ins>+    parseValue(attributeWithoutSynchronization(valueAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void HTMLLIElement::parseValue(const AtomicString&amp; value)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLabelElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLabelElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLabelElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLLabelElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> 
</span><span class="cx"> LabelableElement* HTMLLabelElement::control()
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; controlId = fastGetAttribute(forAttr);
</del><ins>+    const AtomicString&amp; controlId = attributeWithoutSynchronization(forAttr);
</ins><span class="cx">     if (controlId.isNull()) {
</span><span class="cx">         // Search the children and descendants of the label element for a form element.
</span><span class="cx">         // per http://dev.w3.org/html5/spec/Overview.html#the-label-element
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLinkElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLinkElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLinkElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLLinkElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLLinkElement::crossOrigin() const
</span><span class="cx"> {
</span><del>-    return parseCORSSettingsAttribute(fastGetAttribute(crossoriginAttr));
</del><ins>+    return parseCORSSettingsAttribute(attributeWithoutSynchronization(crossoriginAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLLinkElement::process()
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx"> 
</span><span class="cx">     URL url = getNonEmptyURLAttribute(hrefAttr);
</span><span class="cx"> 
</span><del>-    if (!m_linkLoader.loadLink(m_relAttribute, url, fastGetAttribute(asAttr), fastGetAttribute(crossoriginAttr), document()))
</del><ins>+    if (!m_linkLoader.loadLink(m_relAttribute, url, attributeWithoutSynchronization(asAttr), attributeWithoutSynchronization(crossoriginAttr), document()))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     bool treatAsStyleSheet = m_relAttribute.isStyleSheet
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx">         || (document().settings() &amp;&amp; document().settings()-&gt;treatsAnyTextCSSLinkAsStylesheet() &amp;&amp; m_type.containsIgnoringASCIICase(&quot;text/css&quot;));
</span><span class="cx"> 
</span><span class="cx">     if (m_disabledState != Disabled &amp;&amp; treatAsStyleSheet &amp;&amp; document().frame() &amp;&amp; url.isValid()) {
</span><del>-        AtomicString charset = fastGetAttribute(charsetAttr);
</del><ins>+        AtomicString charset = attributeWithoutSynchronization(charsetAttr);
</ins><span class="cx">         if (charset.isEmpty() &amp;&amp; document().frame())
</span><span class="cx">             charset = document().charset();
</span><span class="cx">         
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx">         CachedResourceRequest request(url, charset, priority);
</span><span class="cx">         request.setInitiator(this);
</span><span class="cx"> 
</span><del>-        if (document().contentSecurityPolicy()-&gt;allowStyleWithNonce(fastGetAttribute(HTMLNames::nonceAttr))) {
</del><ins>+        if (document().contentSecurityPolicy()-&gt;allowStyleWithNonce(attributeWithoutSynchronization(HTMLNames::nonceAttr))) {
</ins><span class="cx">             ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions();
</span><span class="cx">             options.setContentSecurityPolicyImposition(ContentSecurityPolicyImposition::SkipPolicyCheck);
</span><span class="cx">             request.setOptions(options);
</span><span class="lines">@@ -478,22 +478,22 @@
</span><span class="cx"> 
</span><span class="cx"> URL HTMLLinkElement::href() const
</span><span class="cx"> {
</span><del>-    return document().completeURL(fastGetAttribute(hrefAttr));
</del><ins>+    return document().completeURL(attributeWithoutSynchronization(hrefAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLLinkElement::rel() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(relAttr);
</del><ins>+    return attributeWithoutSynchronization(relAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLLinkElement::target() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(targetAttr);
</del><ins>+    return attributeWithoutSynchronization(targetAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLLinkElement::type() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(typeAttr);
</del><ins>+    return attributeWithoutSynchronization(typeAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Optional&lt;LinkIconType&gt; HTMLLinkElement::iconType() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMarqueeElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMarqueeElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMarqueeElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLMarqueeElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned HTMLMarqueeElement::scrollAmount() const
</span><span class="cx"> {
</span><del>-    return limitToOnlyHTMLNonNegative(fastGetAttribute(scrollamountAttr), RenderStyle::initialMarqueeIncrement().intValue());
</del><ins>+    return limitToOnlyHTMLNonNegative(attributeWithoutSynchronization(scrollamountAttr), RenderStyle::initialMarqueeIncrement().intValue());
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void HTMLMarqueeElement::setScrollAmount(unsigned scrollAmount)
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">     
</span><span class="cx"> unsigned HTMLMarqueeElement::scrollDelay() const
</span><span class="cx"> {
</span><del>-    return limitToOnlyHTMLNonNegative(fastGetAttribute(scrolldelayAttr), RenderStyle::initialMarqueeSpeed());
</del><ins>+    return limitToOnlyHTMLNonNegative(attributeWithoutSynchronization(scrolldelayAttr), RenderStyle::initialMarqueeSpeed());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLMarqueeElement::setScrollDelay(unsigned scrollDelay)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> int HTMLMarqueeElement::loop() const
</span><span class="cx"> {
</span><span class="cx">     bool ok;
</span><del>-    int loopValue = fastGetAttribute(loopAttr).toInt(&amp;ok);
</del><ins>+    int loopValue = attributeWithoutSynchronization(loopAttr).toInt(&amp;ok);
</ins><span class="cx">     return ok &amp;&amp; loopValue &gt; 0 ? loopValue : -1;
</span><span class="cx"> }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -773,9 +773,9 @@
</span><span class="cx">         m_inActiveDocument = true;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-        if (m_networkState == NETWORK_EMPTY &amp;&amp; !fastGetAttribute(srcAttr).isEmpty() &amp;&amp; m_mediaSession-&gt;dataLoadingPermitted(*this))
</del><ins>+        if (m_networkState == NETWORK_EMPTY &amp;&amp; !attributeWithoutSynchronization(srcAttr).isEmpty() &amp;&amp; m_mediaSession-&gt;dataLoadingPermitted(*this))
</ins><span class="cx"> #else
</span><del>-        if (m_networkState == NETWORK_EMPTY &amp;&amp; !fastGetAttribute(srcAttr).isEmpty())
</del><ins>+        if (m_networkState == NETWORK_EMPTY &amp;&amp; !attributeWithoutSynchronization(srcAttr).isEmpty())
</ins><span class="cx"> #endif
</span><span class="cx">             scheduleDelayedAction(LoadMediaResource);
</span><span class="cx">     }
</span><span class="lines">@@ -1021,7 +1021,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLMediaElement::crossOrigin() const
</span><span class="cx"> {
</span><del>-    return parseCORSSettingsAttribute(fastGetAttribute(crossoriginAttr));
</del><ins>+    return parseCORSSettingsAttribute(attributeWithoutSynchronization(crossoriginAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLMediaElement::NetworkState HTMLMediaElement::networkState() const
</span><span class="lines">@@ -6822,7 +6822,7 @@
</span><span class="cx"> String HTMLMediaElement::mediaSessionTitle() const
</span><span class="cx"> {
</span><span class="cx">     if (fastHasAttribute(titleAttr))
</span><del>-        return fastGetAttribute(titleAttr);
</del><ins>+        return attributeWithoutSynchronization(titleAttr);
</ins><span class="cx">     
</span><span class="cx">     return m_currentSrc;
</span><span class="cx"> }
</span><span class="lines">@@ -6954,7 +6954,7 @@
</span><span class="cx"> {
</span><span class="cx">     QualifiedName attributeName(nullAtom, attribute, nullAtom);
</span><span class="cx"> 
</span><del>-    AtomicString elementValue = fastGetAttribute(attributeName);
</del><ins>+    AtomicString elementValue = attributeWithoutSynchronization(attributeName);
</ins><span class="cx">     if (elementValue.isNull())
</span><span class="cx">         return false;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMetaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMetaElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMetaElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLMetaElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">     if (!inDocument())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; contentValue = fastGetAttribute(contentAttr);
</del><ins>+    const AtomicString&amp; contentValue = attributeWithoutSynchronization(contentAttr);
</ins><span class="cx">     if (contentValue.isNull())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(name(), &quot;referrer&quot;))
</span><span class="cx">         document().processReferrerPolicy(contentValue);
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; httpEquivValue = fastGetAttribute(http_equivAttr);
</del><ins>+    const AtomicString&amp; httpEquivValue = attributeWithoutSynchronization(http_equivAttr);
</ins><span class="cx">     if (!httpEquivValue.isNull())
</span><span class="cx">         document().processHttpEquiv(httpEquivValue, contentValue, isDescendantOf(document().head()));
</span><span class="cx"> }
</span><span class="lines">@@ -91,12 +91,12 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLMetaElement::content() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(contentAttr);
</del><ins>+    return attributeWithoutSynchronization(contentAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLMetaElement::httpEquiv() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(http_equivAttr);
</del><ins>+    return attributeWithoutSynchronization(http_equivAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLMetaElement::name() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMeterElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMeterElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</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(fastGetAttribute(minAttr), 0);
</del><ins>+    return parseToDoubleForNumberType(attributeWithoutSynchronization(minAttr), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLMeterElement::setMin(double min, ExceptionCode&amp; ec)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> 
</span><span class="cx"> double HTMLMeterElement::max() const
</span><span class="cx"> {
</span><del>-    return std::max(parseToDoubleForNumberType(fastGetAttribute(maxAttr), std::max(1.0, min())), min());
</del><ins>+    return std::max(parseToDoubleForNumberType(attributeWithoutSynchronization(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&amp; ec)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> 
</span><span class="cx"> double HTMLMeterElement::value() const
</span><span class="cx"> {
</span><del>-    double value = parseToDoubleForNumberType(fastGetAttribute(valueAttr), 0);
</del><ins>+    double value = parseToDoubleForNumberType(attributeWithoutSynchronization(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">@@ -123,7 +123,7 @@
</span><span class="cx"> 
</span><span class="cx"> double HTMLMeterElement::low() const
</span><span class="cx"> {
</span><del>-    double low = parseToDoubleForNumberType(fastGetAttribute(lowAttr), min());
</del><ins>+    double low = parseToDoubleForNumberType(attributeWithoutSynchronization(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">@@ -138,7 +138,7 @@
</span><span class="cx"> 
</span><span class="cx"> double HTMLMeterElement::high() const
</span><span class="cx"> {
</span><del>-    double high = parseToDoubleForNumberType(fastGetAttribute(highAttr), max());
</del><ins>+    double high = parseToDoubleForNumberType(attributeWithoutSynchronization(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">@@ -153,7 +153,7 @@
</span><span class="cx"> 
</span><span class="cx"> double HTMLMeterElement::optimum() const
</span><span class="cx"> {
</span><del>-    double optimum = parseToDoubleForNumberType(fastGetAttribute(optimumAttr), (max() + min()) / 2);
</del><ins>+    double optimum = parseToDoubleForNumberType(attributeWithoutSynchronization(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></pre></div>
<a id="trunkSourceWebCorehtmlHTMLObjectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLObjectElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx">     if (!document().page()
</span><span class="cx">         || !document().page()-&gt;settings().needsSiteSpecificQuirks()
</span><span class="cx">         || hasFallbackContent()
</span><del>-        || !equalLettersIgnoringASCIICase(fastGetAttribute(classidAttr), &quot;clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b&quot;))
</del><ins>+        || !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(classidAttr), &quot;clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; metaElement : descendantsOfType&lt;HTMLMetaElement&gt;(document())) {
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx">     
</span><span class="cx"> bool HTMLObjectElement::hasValidClassId()
</span><span class="cx"> {
</span><del>-    if (MIMETypeRegistry::isJavaAppletMIMEType(serviceType()) &amp;&amp; fastGetAttribute(classidAttr).startsWith(&quot;java:&quot;, false))
</del><ins>+    if (MIMETypeRegistry::isJavaAppletMIMEType(serviceType()) &amp;&amp; attributeWithoutSynchronization(classidAttr).startsWith(&quot;java:&quot;, false))
</ins><span class="cx">         return true;
</span><span class="cx">     
</span><span class="cx">     if (shouldAllowQuickTimeClassIdQuirk())
</span><span class="lines">@@ -279,7 +279,7 @@
</span><span class="cx"> 
</span><span class="cx">     // HTML5 says that fallback content should be rendered if a non-empty
</span><span class="cx">     // classid is specified for which the UA can't find a suitable plug-in.
</span><del>-    return fastGetAttribute(classidAttr).isEmpty();
</del><ins>+    return attributeWithoutSynchronization(classidAttr).isEmpty();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // FIXME: This should be unified with HTMLEmbedElement::updateWidget and
</span><span class="lines">@@ -367,7 +367,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLObjectElement::imageSourceURL() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(dataAttr);
</del><ins>+    return attributeWithoutSynchronization(dataAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLObjectElement::renderFallbackContent()
</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(fastGetAttribute(typeAttr)))
</del><ins>+    if (MIMETypeRegistry::isJavaAppletMIMEType(attributeWithoutSynchronization(typeAttr)))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : childrenOfType&lt;Element&gt;(*this)) {
</span><span class="cx">         if (child.hasTagName(paramTag) &amp;&amp; equalLettersIgnoringASCIICase(child.getNameAttribute(), &quot;type&quot;)
</span><del>-            &amp;&amp; MIMETypeRegistry::isJavaAppletMIMEType(child.fastGetAttribute(valueAttr).string()))
</del><ins>+            &amp;&amp; MIMETypeRegistry::isJavaAppletMIMEType(child.attributeWithoutSynchronization(valueAttr).string()))
</ins><span class="cx">             return true;
</span><span class="cx">         if (child.hasTagName(objectTag) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(child).containsJavaApplet())
</span><span class="cx">             return true;
</span><span class="lines">@@ -490,11 +490,11 @@
</span><span class="cx"> {
</span><span class="cx">     HTMLPlugInImageElement::addSubresourceAttributeURLs(urls);
</span><span class="cx"> 
</span><del>-    addSubresourceURL(urls, document().completeURL(fastGetAttribute(dataAttr)));
</del><ins>+    addSubresourceURL(urls, document().completeURL(attributeWithoutSynchronization(dataAttr)));
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Passing a string that starts with &quot;#&quot; to the completeURL function does
</span><span class="cx">     // not seem like it would work. The image element has similar but not identical code.
</span><del>-    const AtomicString&amp; useMap = fastGetAttribute(usemapAttr);
</del><ins>+    const AtomicString&amp; useMap = attributeWithoutSynchronization(usemapAttr);
</ins><span class="cx">     if (useMap.startsWith('#'))
</span><span class="cx">         addSubresourceURL(urls, document().completeURL(useMap));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptGroupElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptGroupElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptGroupElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLOptGroupElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLOptGroupElement::groupLabelText() const
</span><span class="cx"> {
</span><del>-    String itemText = document().displayStringModifiedByEncoding(fastGetAttribute(labelAttr));
</del><ins>+    String itemText = document().displayStringModifiedByEncoding(attributeWithoutSynchronization(labelAttr));
</ins><span class="cx">     
</span><span class="cx">     // In WinIE, leading and trailing whitespace is ignored in options and optgroups. We match this behavior.
</span><span class="cx">     itemText = itemText.stripWhiteSpace();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -194,7 +194,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLOptionElement::value() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; value = fastGetAttribute(valueAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(valueAttr);
</ins><span class="cx">     if (!value.isNull())
</span><span class="cx">         return value;
</span><span class="cx">     return collectOptionInnerText().stripWhiteSpace(isHTMLSpace).simplifyWhiteSpace(isHTMLSpace);
</span><span class="lines">@@ -272,7 +272,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLOptionElement::label() const
</span><span class="cx"> {
</span><del>-    String label = fastGetAttribute(labelAttr);
</del><ins>+    String label = attributeWithoutSynchronization(labelAttr);
</ins><span class="cx">     if (!label.isNull())
</span><span class="cx">         return label.stripWhiteSpace(isHTMLSpace);
</span><span class="cx">     return collectOptionInnerText().stripWhiteSpace(isHTMLSpace).simplifyWhiteSpace(isHTMLSpace);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLParamElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLParamElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLParamElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLParamElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLParamElement::value() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(valueAttr);
</del><ins>+    return attributeWithoutSynchronization(valueAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLParamElement::isURLParameter(const String&amp; name)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLProgressElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLProgressElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> 
</span><span class="cx"> double HTMLProgressElement::value() const
</span><span class="cx"> {
</span><del>-    double value = parseToDoubleForNumberType(fastGetAttribute(valueAttr));
</del><ins>+    double value = parseToDoubleForNumberType(attributeWithoutSynchronization(valueAttr));
</ins><span class="cx">     return !std::isfinite(value) || value &lt; 0 ? 0 : std::min(value, max());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> 
</span><span class="cx"> double HTMLProgressElement::max() const
</span><span class="cx"> {
</span><del>-    double max = parseToDoubleForNumberType(fastGetAttribute(maxAttr));
</del><ins>+    double max = parseToDoubleForNumberType(attributeWithoutSynchronization(maxAttr));
</ins><span class="cx">     return !std::isfinite(max) || max &lt;= 0 ? 1 : max;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLScriptElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLScriptElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLScriptElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLScriptElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLScriptElement::crossOrigin() const
</span><span class="cx"> {
</span><del>-    return parseCORSSettingsAttribute(fastGetAttribute(crossoriginAttr));
</del><ins>+    return parseCORSSettingsAttribute(attributeWithoutSynchronization(crossoriginAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> URL HTMLScriptElement::src() const
</span><span class="lines">@@ -129,32 +129,32 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLScriptElement::sourceAttributeValue() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(srcAttr).string();
</del><ins>+    return attributeWithoutSynchronization(srcAttr).string();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLScriptElement::charsetAttributeValue() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(charsetAttr).string();
</del><ins>+    return attributeWithoutSynchronization(charsetAttr).string();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLScriptElement::typeAttributeValue() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(typeAttr).string();
</del><ins>+    return attributeWithoutSynchronization(typeAttr).string();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLScriptElement::languageAttributeValue() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(languageAttr).string();
</del><ins>+    return attributeWithoutSynchronization(languageAttr).string();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLScriptElement::forAttributeValue() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(forAttr).string();
</del><ins>+    return attributeWithoutSynchronization(forAttr).string();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLScriptElement::eventAttributeValue() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(eventAttr).string();
</del><ins>+    return attributeWithoutSynchronization(eventAttr).string();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLScriptElement::asyncAttributeValue() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSlotElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSlotElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSlotElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLSlotElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     // or its ancestor is inserted belongs to the same tree scope as this element's.
</span><span class="cx">     if (insertionPoint.isInShadowTree() &amp;&amp; isInShadowTree() &amp;&amp; &amp;insertionPoint.treeScope() == &amp;treeScope()) {
</span><span class="cx">         if (auto shadowRoot = containingShadowRoot())
</span><del>-            shadowRoot-&gt;addSlotElementByName(fastGetAttribute(nameAttr), *this);
</del><ins>+            shadowRoot-&gt;addSlotElementByName(attributeWithoutSynchronization(nameAttr), *this);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return InsertionDone;
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     if (insertionPoint.isInShadowTree() &amp;&amp; isInShadowTree() &amp;&amp; &amp;treeScope() == &amp;document()) {
</span><span class="cx">         auto* oldShadowRoot = insertionPoint.containingShadowRoot();
</span><span class="cx">         ASSERT(oldShadowRoot);
</span><del>-        oldShadowRoot-&gt;removeSlotElementByName(fastGetAttribute(nameAttr), *this);
</del><ins>+        oldShadowRoot-&gt;removeSlotElementByName(attributeWithoutSynchronization(nameAttr), *this);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     HTMLElement::removedFrom(insertionPoint);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSourceElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSourceElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSourceElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLSourceElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -96,7 +96,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLSourceElement::media() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(mediaAttr);
</del><ins>+    return attributeWithoutSynchronization(mediaAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLSourceElement::setMedia(const String&amp; media)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLSourceElement::type() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(typeAttr);
</del><ins>+    return attributeWithoutSynchronization(typeAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLSourceElement::setType(const String&amp; type)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableCellElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableCellElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableCellElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLTableCellElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned HTMLTableCellElement::colSpanForBindings() const
</span><span class="cx"> {
</span><del>-    return limitToOnlyHTMLNonNegative(fastGetAttribute(colspanAttr), 1u);
</del><ins>+    return limitToOnlyHTMLNonNegative(attributeWithoutSynchronization(colspanAttr), 1u);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned HTMLTableCellElement::rowSpan() const
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned HTMLTableCellElement::rowSpanForBindings() const
</span><span class="cx"> {
</span><del>-    return limitToOnlyHTMLNonNegative(fastGetAttribute(rowspanAttr), 1u);
</del><ins>+    return limitToOnlyHTMLNonNegative(attributeWithoutSynchronization(rowspanAttr), 1u);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int HTMLTableCellElement::cellIndex() const
</span><span class="lines">@@ -136,12 +136,12 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLTableCellElement::abbr() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(abbrAttr);
</del><ins>+    return attributeWithoutSynchronization(abbrAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLTableCellElement::axis() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(axisAttr);
</del><ins>+    return attributeWithoutSynchronization(axisAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableCellElement::setColSpanForBindings(unsigned n)
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLTableCellElement::headers() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(headersAttr);
</del><ins>+    return attributeWithoutSynchronization(headersAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableCellElement::setRowSpanForBindings(unsigned n)
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; rowgroup(&quot;rowgroup&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; colgroup(&quot;colgroup&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; value = fastGetAttribute(HTMLNames::scopeAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(HTMLNames::scopeAttr);
</ins><span class="cx"> 
</span><span class="cx">     // Only conforming for th elements.
</span><span class="cx">     if (!hasTagName(thTag))
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx"> {
</span><span class="cx">     HTMLTablePartElement::addSubresourceAttributeURLs(urls);
</span><span class="cx"> 
</span><del>-    addSubresourceURL(urls, document().completeURL(fastGetAttribute(backgroundAttr)));
</del><ins>+    addSubresourceURL(urls, document().completeURL(attributeWithoutSynchronization(backgroundAttr)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLTableCellElement* HTMLTableCellElement::cellAbove() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableColElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableColElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableColElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLTableColElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLTableColElement::width() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(widthAttr);
</del><ins>+    return attributeWithoutSynchronization(widthAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -580,12 +580,12 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTableElement::rules() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(rulesAttr);
</del><ins>+    return attributeWithoutSynchronization(rulesAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTableElement::summary() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(summaryAttr);
</del><ins>+    return attributeWithoutSynchronization(summaryAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableElement::addSubresourceAttributeURLs(ListHashSet&lt;URL&gt;&amp; urls) const
</span><span class="lines">@@ -592,7 +592,7 @@
</span><span class="cx"> {
</span><span class="cx">     HTMLElement::addSubresourceAttributeURLs(urls);
</span><span class="cx"> 
</span><del>-    addSubresourceURL(urls, document().completeURL(fastGetAttribute(backgroundAttr)));
</del><ins>+    addSubresourceURL(urls, document().completeURL(attributeWithoutSynchronization(backgroundAttr)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableSectionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableSectionElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableSectionElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLTableSectionElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTableSectionElement::align() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(alignAttr);
</del><ins>+    return attributeWithoutSynchronization(alignAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableSectionElement::setAlign(const AtomicString&amp; value)
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTableSectionElement::ch() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(charAttr);
</del><ins>+    return attributeWithoutSynchronization(charAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableSectionElement::setCh(const AtomicString&amp; value)
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTableSectionElement::chOff() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(charoffAttr);
</del><ins>+    return attributeWithoutSynchronization(charoffAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableSectionElement::setChOff(const AtomicString&amp; value)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTableSectionElement::vAlign() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(valignAttr);
</del><ins>+    return attributeWithoutSynchronization(valignAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLTableSectionElement::setVAlign(const AtomicString&amp; value)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -223,7 +223,7 @@
</span><span class="cx">     const String&amp; text = (m_wrap == HardWrap) ? valueWithHardLineBreaks() : value();
</span><span class="cx">     encoding.appendData(name(), text);
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; dirnameAttrValue = fastGetAttribute(dirnameAttr);
</del><ins>+    const AtomicString&amp; dirnameAttrValue = attributeWithoutSynchronization(dirnameAttr);
</ins><span class="cx">     if (!dirnameAttrValue.isNull())
</span><span class="cx">         encoding.appendData(dirnameAttrValue, directionForFormData());
</span><span class="cx">     return true;    
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> {
</span><span class="cx">     // According to the HTML5 specification, we need to remove CR and LF from
</span><span class="cx">     // the attribute value.
</span><del>-    const AtomicString&amp; attributeValue = fastGetAttribute(placeholderAttr);
</del><ins>+    const AtomicString&amp; attributeValue = attributeWithoutSynchronization(placeholderAttr);
</ins><span class="cx">     if (!attributeValue.contains(newlineCharacter) &amp;&amp; !attributeValue.contains(carriageReturn))
</span><span class="cx">         return attributeValue;
</span><span class="cx"> 
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLTextFormControlElement::isPlaceholderEmpty() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; attributeValue = fastGetAttribute(placeholderAttr);
</del><ins>+    const AtomicString&amp; attributeValue = attributeWithoutSynchronization(placeholderAttr);
</ins><span class="cx">     return attributeValue.string().find(isNotLineBreak) == notFound;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -740,7 +740,7 @@
</span><span class="cx"> String HTMLTextFormControlElement::directionForFormData() const
</span><span class="cx"> {
</span><span class="cx">     for (const Element* element = this; element; element = parentHTMLElement(element)) {
</span><del>-        const AtomicString&amp; dirAttributeValue = element-&gt;fastGetAttribute(dirAttr);
</del><ins>+        const AtomicString&amp; dirAttributeValue = element-&gt;attributeWithoutSynchronization(dirAttr);
</ins><span class="cx">         if (dirAttributeValue.isNull())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTrackElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTrackElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTrackElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLTrackElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -125,12 +125,12 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTrackElement::srclang() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(srclangAttr);
</del><ins>+    return attributeWithoutSynchronization(srclangAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLTrackElement::label() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(labelAttr);
</del><ins>+    return attributeWithoutSynchronization(labelAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLTrackElement::isDefault() const
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!m_track) {
</span><span class="cx">         // The kind attribute is an enumerated attribute, limited only to known values. It defaults to 'subtitles' if missing or invalid.
</span><del>-        String kind = fastGetAttribute(kindAttr).convertToASCIILowercase();
</del><ins>+        String kind = attributeWithoutSynchronization(kindAttr).convertToASCIILowercase();
</ins><span class="cx">         if (!TextTrack::isValidKindKeyword(kind))
</span><span class="cx">             kind = TextTrack::subtitlesKeyword();
</span><span class="cx">         m_track = LoadableTextTrack::create(this, kind, label(), srclang());
</span><span class="lines">@@ -273,7 +273,7 @@
</span><span class="cx"> const AtomicString&amp; HTMLTrackElement::mediaElementCrossOriginAttribute() const
</span><span class="cx"> {
</span><span class="cx">     if (HTMLMediaElement* parent = mediaElement())
</span><del>-        return parent-&gt;fastGetAttribute(HTMLNames::crossoriginAttr);
</del><ins>+        return parent-&gt;attributeWithoutSynchronization(HTMLNames::crossoriginAttr);
</ins><span class="cx">     
</span><span class="cx">     return nullAtom;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> #if PLATFORM(IOS) &amp;&amp; ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="cx">         if (name == webkitairplayAttr) {
</span><span class="cx">             bool disabled = false;
</span><del>-            if (equalLettersIgnoringASCIICase(fastGetAttribute(HTMLNames::webkitairplayAttr), &quot;deny&quot;))
</del><ins>+            if (equalLettersIgnoringASCIICase(attributeWithoutSynchronization(HTMLNames::webkitairplayAttr), &quot;deny&quot;))
</ins><span class="cx">                 disabled = true;
</span><span class="cx">             mediaSession().setWirelessVideoPlaybackDisabled(*this, disabled);
</span><span class="cx">         }
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; HTMLVideoElement::imageSourceURL() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; url = fastGetAttribute(posterAttr);
</del><ins>+    const AtomicString&amp; url = attributeWithoutSynchronization(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="trunkSourceWebCorehtmlImageInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/ImageInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!element-&gt;renderer()) {
</span><span class="cx">         // Check the attribute first for an explicit pixel value.
</span><del>-        if (Optional&lt;int&gt; height = parseHTMLNonNegativeInteger(element-&gt;fastGetAttribute(heightAttr)))
</del><ins>+        if (Optional&lt;int&gt; height = parseHTMLNonNegativeInteger(element-&gt;attributeWithoutSynchronization(heightAttr)))
</ins><span class="cx">             return height.value();
</span><span class="cx"> 
</span><span class="cx">         // If the image is available, use its height.
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!element-&gt;renderer()) {
</span><span class="cx">         // Check the attribute first for an explicit pixel value.
</span><del>-        if (Optional&lt;int&gt; width = parseHTMLNonNegativeInteger(element-&gt;fastGetAttribute(widthAttr)))
</del><ins>+        if (Optional&lt;int&gt; width = parseHTMLNonNegativeInteger(element-&gt;attributeWithoutSynchronization(widthAttr)))
</ins><span class="cx">             return width.value();
</span><span class="cx"> 
</span><span class="cx">         // If the image is available, use its width.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/InputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/InputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/InputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1018,7 +1018,7 @@
</span><span class="cx">     if (newValue &lt; stepRange.minimum())
</span><span class="cx">         newValue = stepRange.minimum();
</span><span class="cx"> 
</span><del>-    if (!equalLettersIgnoringASCIICase(element().fastGetAttribute(stepAttr), &quot;any&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(element().attributeWithoutSynchronization(stepAttr), &quot;any&quot;))
</ins><span class="cx">         newValue = stepRange.alignValueForStep(current, newValue);
</span><span class="cx"> 
</span><span class="cx">     if (newValue - stepRange.maximum() &gt; acceptableErrorValue) {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaElementSessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaElementSession.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaElementSession.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/MediaElementSession.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -320,7 +320,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    String legacyAirplayAttributeValue = element.fastGetAttribute(HTMLNames::webkitairplayAttr);
</del><ins>+    String legacyAirplayAttributeValue = element.attributeWithoutSynchronization(HTMLNames::webkitairplayAttr);
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(legacyAirplayAttributeValue, &quot;deny&quot;)) {
</span><span class="cx">         LOG(Media, &quot;MediaElementSession::wirelessVideoPlaybackDisabled - returning TRUE because of legacy attribute&quot;);
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMonthInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MonthInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MonthInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/MonthInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -93,10 +93,10 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(monthDefaultStep, monthDefaultStepBase, monthStepScaleFactor, StepRange::ParsedStepValueShouldBeInteger);
</span><span class="cx"> 
</span><del>-    const Decimal stepBase = parseToNumber(element().fastGetAttribute(minAttr), Decimal::fromDouble(monthDefaultStepBase));
-    const Decimal minimum = parseToNumber(element().fastGetAttribute(minAttr), Decimal::fromDouble(DateComponents::minimumMonth()));
-    const Decimal maximum = parseToNumber(element().fastGetAttribute(maxAttr), Decimal::fromDouble(DateComponents::maximumMonth()));
-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().fastGetAttribute(stepAttr));
</del><ins>+    const Decimal stepBase = parseToNumber(element().attributeWithoutSynchronization(minAttr), Decimal::fromDouble(monthDefaultStepBase));
+    const Decimal minimum = parseToNumber(element().attributeWithoutSynchronization(minAttr), Decimal::fromDouble(DateComponents::minimumMonth()));
+    const Decimal maximum = parseToNumber(element().attributeWithoutSynchronization(maxAttr), Decimal::fromDouble(DateComponents::maximumMonth()));
+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(stepBase, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlNumberInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/NumberInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/NumberInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/NumberInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -153,7 +153,7 @@
</span><span class="cx"> StepRange NumberInputType::createStepRange(AnyStepHandling anyStepHandling) const
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(numberDefaultStep, numberDefaultStepBase, numberStepScaleFactor);
</span><del>-    const Decimal stepBase = parseToDecimalForNumberType(element().fastGetAttribute(minAttr), numberDefaultStepBase);
</del><ins>+    const Decimal stepBase = parseToDecimalForNumberType(element().attributeWithoutSynchronization(minAttr), numberDefaultStepBase);
</ins><span class="cx">     // FIXME: We should use numeric_limits&lt;double&gt;::max for number input type.
</span><span class="cx">     const Decimal floatMax = Decimal::fromDouble(std::numeric_limits&lt;float&gt;::max());
</span><span class="cx">     const Element&amp; element = this-&gt;element();
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> 
</span><span class="cx">     RangeLimitations rangeLimitations = RangeLimitations::Invalid;
</span><span class="cx">     auto extractBound = [&amp;] (const QualifiedName&amp; attributeName, const Decimal&amp; defaultValue) -&gt; Decimal {
</span><del>-        const AtomicString&amp; attributeValue = element.fastGetAttribute(attributeName);
</del><ins>+        const AtomicString&amp; attributeValue = element.attributeWithoutSynchronization(attributeName);
</ins><span class="cx">         Decimal valueFromAttribute = parseToNumberOrNaN(attributeValue);
</span><span class="cx">         if (valueFromAttribute.isFinite()) {
</span><span class="cx">             rangeLimitations = RangeLimitations::Valid;
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx">     Decimal minimum = extractBound(minAttr, -floatMax);
</span><span class="cx">     Decimal maximum = extractBound(maxAttr, floatMax);
</span><span class="cx"> 
</span><del>-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element.fastGetAttribute(stepAttr));
</del><ins>+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element.attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(stepBase, rangeLimitations, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -179,15 +179,15 @@
</span><span class="cx"> {
</span><span class="cx">     preferredSize = defaultSize;
</span><span class="cx"> 
</span><del>-    auto&amp; stepString = element().fastGetAttribute(stepAttr);
</del><ins>+    auto&amp; stepString = element().attributeWithoutSynchronization(stepAttr);
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(stepString, &quot;any&quot;))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    const Decimal minimum = parseToDecimalForNumberType(element().fastGetAttribute(minAttr));
</del><ins>+    const Decimal minimum = parseToDecimalForNumberType(element().attributeWithoutSynchronization(minAttr));
</ins><span class="cx">     if (!minimum.isFinite())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    const Decimal maximum = parseToDecimalForNumberType(element().fastGetAttribute(maxAttr));
</del><ins>+    const Decimal maximum = parseToDecimalForNumberType(element().attributeWithoutSynchronization(maxAttr));
</ins><span class="cx">     if (!maximum.isFinite())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRangeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RangeInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RangeInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/RangeInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -117,16 +117,16 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(rangeDefaultStep, rangeDefaultStepBase, rangeStepScaleFactor);
</span><span class="cx"> 
</span><del>-    const Decimal minimum = parseToNumber(element().fastGetAttribute(minAttr), rangeDefaultMinimum);
-    const Decimal maximum = ensureMaximum(parseToNumber(element().fastGetAttribute(maxAttr), rangeDefaultMaximum), minimum, rangeDefaultMaximum);
</del><ins>+    const Decimal minimum = parseToNumber(element().attributeWithoutSynchronization(minAttr), rangeDefaultMinimum);
+    const Decimal maximum = ensureMaximum(parseToNumber(element().attributeWithoutSynchronization(maxAttr), rangeDefaultMaximum), minimum, rangeDefaultMaximum);
</ins><span class="cx"> 
</span><del>-    const AtomicString&amp; precisionValue = element().fastGetAttribute(precisionAttr);
</del><ins>+    const AtomicString&amp; precisionValue = element().attributeWithoutSynchronization(precisionAttr);
</ins><span class="cx">     if (!precisionValue.isNull()) {
</span><span class="cx">         const Decimal step = equalLettersIgnoringASCIICase(precisionValue, &quot;float&quot;) ? Decimal::nan() : 1;
</span><span class="cx">         return StepRange(minimum, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().fastGetAttribute(stepAttr));
</del><ins>+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(minimum, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -208,7 +208,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: We can't use stepUp() for the step value &quot;any&quot;. So, we increase
</span><span class="cx">     // or decrease the value by 1/100 of the value range. Is it reasonable?
</span><del>-    const Decimal step = equalLettersIgnoringASCIICase(element().fastGetAttribute(stepAttr), &quot;any&quot;) ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step();
</del><ins>+    const Decimal step = equalLettersIgnoringASCIICase(element().attributeWithoutSynchronization(stepAttr), &quot;any&quot;) ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step();
</ins><span class="cx">     const Decimal bigStep = std::max((stepRange.maximum() - stepRange.minimum()) / 10, step);
</span><span class="cx"> 
</span><span class="cx">     bool isVertical = false;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTextFieldInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TextFieldInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -519,7 +519,7 @@
</span><span class="cx"> bool TextFieldInputType::appendFormData(FormDataList&amp; list, bool multipart) const
</span><span class="cx"> {
</span><span class="cx">     InputType::appendFormData(list, multipart);
</span><del>-    const AtomicString&amp; dirnameAttrValue = element().fastGetAttribute(dirnameAttr);
</del><ins>+    const AtomicString&amp; dirnameAttrValue = element().attributeWithoutSynchronization(dirnameAttr);
</ins><span class="cx">     if (!dirnameAttrValue.isNull())
</span><span class="cx">         list.appendData(dirnameAttrValue, element().directionForFormData());
</span><span class="cx">     return true;
</span><span class="lines">@@ -678,7 +678,7 @@
</span><span class="cx">         if (!m_autoFillButton)
</span><span class="cx">             createAutoFillButton(element().autoFillButtonType());
</span><span class="cx"> 
</span><del>-        const AtomicString&amp; attribute = m_autoFillButton-&gt;fastGetAttribute(pseudoAttr);
</del><ins>+        const AtomicString&amp; attribute = m_autoFillButton-&gt;attributeWithoutSynchronization(pseudoAttr);
</ins><span class="cx">         bool shouldUpdateAutoFillButtonType = isAutoFillButtonTypeChanged(attribute, element().autoFillButtonType());
</span><span class="cx">         if (shouldUpdateAutoFillButtonType) {
</span><span class="cx">             m_autoFillButton-&gt;setPseudo(autoFillButtonTypeToAutoFillButtonPseudoClassName(element().autoFillButtonType()));
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTimeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TimeInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TimeInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/TimeInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -80,10 +80,10 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(timeDefaultStep, timeDefaultStepBase, timeStepScaleFactor, StepRange::ScaledStepValueShouldBeInteger);
</span><span class="cx"> 
</span><del>-    const Decimal stepBase = parseToNumber(element().fastGetAttribute(minAttr), 0);
-    const Decimal minimum = parseToNumber(element().fastGetAttribute(minAttr), Decimal::fromDouble(DateComponents::minimumTime()));
-    const Decimal maximum = parseToNumber(element().fastGetAttribute(maxAttr), Decimal::fromDouble(DateComponents::maximumTime()));
-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().fastGetAttribute(stepAttr));
</del><ins>+    const Decimal stepBase = parseToNumber(element().attributeWithoutSynchronization(minAttr), 0);
+    const Decimal minimum = parseToNumber(element().attributeWithoutSynchronization(minAttr), Decimal::fromDouble(DateComponents::minimumTime()));
+    const Decimal maximum = parseToNumber(element().attributeWithoutSynchronization(maxAttr), Decimal::fromDouble(DateComponents::maximumTime()));
+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(stepBase, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlValidationMessagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ValidationMessage.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ValidationMessage.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/ValidationMessage.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">         // with the validationMessage. However, this behavior is same as Opera
</span><span class="cx">         // and the specification describes such behavior as an example.
</span><span class="cx">         if (!updatedMessage.isEmpty()) {
</span><del>-            const AtomicString&amp; title = m_element-&gt;fastGetAttribute(titleAttr);
</del><ins>+            const AtomicString&amp; title = m_element-&gt;attributeWithoutSynchronization(titleAttr);
</ins><span class="cx">             if (!title.isEmpty())
</span><span class="cx">                 updatedMessage = updatedMessage + '\n' + title;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlWeekInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/WeekInputType.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/WeekInputType.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/WeekInputType.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -59,10 +59,10 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const StepRange::StepDescription&gt; stepDescription(weekDefaultStep, weekDefaultStepBase, weekStepScaleFactor, StepRange::ParsedStepValueShouldBeInteger);
</span><span class="cx"> 
</span><del>-    const Decimal stepBase = parseToNumber(element().fastGetAttribute(minAttr), weekDefaultStepBase);
-    const Decimal minimum = parseToNumber(element().fastGetAttribute(minAttr), Decimal::fromDouble(DateComponents::minimumWeek()));
-    const Decimal maximum = parseToNumber(element().fastGetAttribute(maxAttr), Decimal::fromDouble(DateComponents::maximumWeek()));
-    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().fastGetAttribute(stepAttr));
</del><ins>+    const Decimal stepBase = parseToNumber(element().attributeWithoutSynchronization(minAttr), weekDefaultStepBase);
+    const Decimal minimum = parseToNumber(element().attributeWithoutSynchronization(minAttr), Decimal::fromDouble(DateComponents::minimumWeek()));
+    const Decimal maximum = parseToNumber(element().attributeWithoutSynchronization(maxAttr), Decimal::fromDouble(DateComponents::maximumWeek()));
+    const Decimal step = StepRange::parseStep(anyStepHandling, stepDescription, element().attributeWithoutSynchronization(stepAttr));
</ins><span class="cx">     return StepRange(stepBase, RangeLimitations::Valid, minimum, maximum, step, stepDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackWebVTTElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/WebVTTElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/WebVTTElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/html/track/WebVTTElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</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-&gt;setAttributeWithoutSynchronization(HTMLNames::titleAttr, fastGetAttribute(voiceAttributeName()));
-        htmlElement-&gt;setAttributeWithoutSynchronization(HTMLNames::langAttr, fastGetAttribute(langAttributeName()));
</del><ins>+        htmlElement-&gt;setAttributeWithoutSynchronization(HTMLNames::titleAttr, attributeWithoutSynchronization(voiceAttributeName()));
+        htmlElement-&gt;setAttributeWithoutSynchronization(HTMLNames::langAttr, attributeWithoutSynchronization(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-&gt;setAttributeWithoutSynchronization(HTMLNames::classAttr, fastGetAttribute(HTMLNames::classAttr));
</del><ins>+        htmlElement-&gt;setAttributeWithoutSynchronization(HTMLNames::classAttr, attributeWithoutSynchronization(HTMLNames::classAttr));
</ins><span class="cx">     return htmlElement.releaseNonNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorPageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -926,7 +926,7 @@
</span><span class="cx">     if (frame-&gt;ownerElement()) {
</span><span class="cx">         String name = frame-&gt;ownerElement()-&gt;getNameAttribute();
</span><span class="cx">         if (name.isEmpty())
</span><del>-            name = frame-&gt;ownerElement()-&gt;fastGetAttribute(HTMLNames::idAttr);
</del><ins>+            name = frame-&gt;ownerElement()-&gt;attributeWithoutSynchronization(HTMLNames::idAttr);
</ins><span class="cx">         frameObject-&gt;setName(name);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFormSubmissioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FormSubmission.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FormSubmission.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/loader/FormSubmission.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -174,13 +174,13 @@
</span><span class="cx">     copiedAttributes.copyFrom(attributes);
</span><span class="cx">     if (submitButton) {
</span><span class="cx">         AtomicString attributeValue;
</span><del>-        if (!(attributeValue = submitButton-&gt;fastGetAttribute(formactionAttr)).isNull())
</del><ins>+        if (!(attributeValue = submitButton-&gt;attributeWithoutSynchronization(formactionAttr)).isNull())
</ins><span class="cx">             copiedAttributes.parseAction(attributeValue);
</span><del>-        if (!(attributeValue = submitButton-&gt;fastGetAttribute(formenctypeAttr)).isNull())
</del><ins>+        if (!(attributeValue = submitButton-&gt;attributeWithoutSynchronization(formenctypeAttr)).isNull())
</ins><span class="cx">             copiedAttributes.updateEncodingType(attributeValue);
</span><del>-        if (!(attributeValue = submitButton-&gt;fastGetAttribute(formmethodAttr)).isNull())
</del><ins>+        if (!(attributeValue = submitButton-&gt;attributeWithoutSynchronization(formmethodAttr)).isNull())
</ins><span class="cx">             copiedAttributes.updateMethodType(attributeValue);
</span><del>-        if (!(attributeValue = submitButton-&gt;fastGetAttribute(formtargetAttr)).isNull())
</del><ins>+        if (!(attributeValue = submitButton-&gt;attributeWithoutSynchronization(formtargetAttr)).isNull())
</ins><span class="cx">             copiedAttributes.setTarget(attributeValue);
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1270,7 +1270,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!shouldTreatURLAsSrcdocDocument(url))
</span><span class="cx">         return SubstituteData();
</span><del>-    String srcdoc = m_frame.ownerElement()-&gt;fastGetAttribute(srcdocAttr);
</del><ins>+    String srcdoc = m_frame.ownerElement()-&gt;attributeWithoutSynchronization(srcdocAttr);
</ins><span class="cx">     ASSERT(!srcdoc.isNull());
</span><span class="cx">     CString encodedSrcdoc = srcdoc.utf8();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderImageLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ImageLoader.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ImageLoader.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/loader/ImageLoader.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx">         CachedResourceRequest request(ResourceRequest(document.completeURL(sourceURI(attr))), options);
</span><span class="cx">         request.setInitiator(&amp;element());
</span><span class="cx"> 
</span><del>-        String crossOriginMode = element().fastGetAttribute(HTMLNames::crossoriginAttr);
</del><ins>+        String crossOriginMode = element().attributeWithoutSynchronization(HTMLNames::crossoriginAttr);
</ins><span class="cx">         if (!crossOriginMode.isNull()) {
</span><span class="cx">             StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</span><span class="cx">             ASSERT(document.securityOrigin());
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderSubframeLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/SubframeLoader.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/SubframeLoader.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/loader/SubframeLoader.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">     const ContentSecurityPolicy&amp; contentSecurityPolicy = *document()-&gt;contentSecurityPolicy();
</span><span class="cx"> 
</span><span class="cx">     String declaredMimeType = document()-&gt;isPluginDocument() &amp;&amp; document()-&gt;ownerElement() ?
</span><del>-        document()-&gt;ownerElement()-&gt;fastGetAttribute(HTMLNames::typeAttr) : pluginElement.fastGetAttribute(HTMLNames::typeAttr);
</del><ins>+        document()-&gt;ownerElement()-&gt;attributeWithoutSynchronization(HTMLNames::typeAttr) : pluginElement.attributeWithoutSynchronization(HTMLNames::typeAttr);
</ins><span class="cx">     bool isInUserAgentShadowTree = pluginElement.isInUserAgentShadowTree();
</span><span class="cx">     return contentSecurityPolicy.allowObjectFromSource(url, isInUserAgentShadowTree) &amp;&amp; contentSecurityPolicy.allowPluginType(mimeType, declaredMimeType, url, isInUserAgentShadowTree);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/mathml/MathMLElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!hasTagName(mtdTag))
</span><span class="cx">         return 1u;
</span><del>-    const AtomicString&amp; colSpanValue = fastGetAttribute(columnspanAttr);
</del><ins>+    const AtomicString&amp; colSpanValue = attributeWithoutSynchronization(columnspanAttr);
</ins><span class="cx">     return std::max(1u, limitToOnlyHTMLNonNegative(colSpanValue, 1u));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!hasTagName(mtdTag))
</span><span class="cx">         return 1u;
</span><del>-    const AtomicString&amp; rowSpanValue = fastGetAttribute(rowspanAttr);
</del><ins>+    const AtomicString&amp; rowSpanValue = attributeWithoutSynchronization(rowspanAttr);
</ins><span class="cx">     static const unsigned maxRowspan = 8190; // This constant comes from HTMLTableCellElement.
</span><span class="cx">     return std::max(1u, std::min(limitToOnlyHTMLNonNegative(rowSpanValue, 1u), maxRowspan));
</span><span class="cx"> }
</span><span class="lines">@@ -279,7 +279,7 @@
</span><span class="cx"> bool MathMLElement::childShouldCreateRenderer(const Node&amp; child) const
</span><span class="cx"> {
</span><span class="cx">     if (hasTagName(annotation_xmlTag)) {
</span><del>-        const AtomicString&amp; value = fastGetAttribute(MathMLNames::encodingAttr);
</del><ins>+        const AtomicString&amp; value = attributeWithoutSynchronization(MathMLNames::encodingAttr);
</ins><span class="cx"> 
</span><span class="cx">         // See annotation-xml.model.mathml, annotation-xml.model.svg and annotation-xml.model.xhtml in the HTML5 RelaxNG schema.
</span><span class="cx"> 
</span><span class="lines">@@ -329,7 +329,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         if (MouseEvent::canTriggerActivationBehavior(*event)) {
</span><del>-            const AtomicString&amp; href = fastGetAttribute(hrefAttr);
</del><ins>+            const AtomicString&amp; href = attributeWithoutSynchronization(hrefAttr);
</ins><span class="cx">             String url = stripLeadingAndTrailingHTMLSpaces(href);
</span><span class="cx">             event-&gt;setDefaultHandled();
</span><span class="cx">             if (Frame* frame = document().frame())
</span><span class="lines">@@ -519,7 +519,7 @@
</span><span class="cx"> const MathMLElement::Length&amp; MathMLElement::cachedMathMLLength(const QualifiedName&amp; name, Length&amp; length)
</span><span class="cx"> {
</span><span class="cx">     if (length.dirty) {
</span><del>-        length = parseMathMLLength(fastGetAttribute(name));
</del><ins>+        length = parseMathMLLength(attributeWithoutSynchronization(name));
</ins><span class="cx">         length.dirty = false;
</span><span class="cx">     }
</span><span class="cx">     return length;
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLFractionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLFractionElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLFractionElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/mathml/MathMLFractionElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">     // The MathML3 recommendation states that &quot;medium&quot; is the default thickness.
</span><span class="cx">     // However, it only states that &quot;thin&quot; and &quot;thick&quot; are respectively thiner and thicker.
</span><span class="cx">     // The MathML in HTML5 implementation note suggests 50% and 200% and these values are also used in Gecko.
</span><del>-    String thickness = fastGetAttribute(linethicknessAttr);
</del><ins>+    String thickness = attributeWithoutSynchronization(linethicknessAttr);
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(thickness, &quot;thin&quot;)) {
</span><span class="cx">         m_lineThickness.type = LengthType::UnitLess;
</span><span class="cx">         m_lineThickness.value = .5;
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx">     if (!alignment.dirty)
</span><span class="cx">         return alignment.value;
</span><span class="cx"> 
</span><del>-    String value = fastGetAttribute(name);
</del><ins>+    String value = attributeWithoutSynchronization(name);
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(value, &quot;left&quot;))
</span><span class="cx">         alignment.value = FractionAlignmentLeft;
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(value, &quot;right&quot;))
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLSelectElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLSelectElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/mathml/MathMLSelectElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     if (!selectedChild)
</span><span class="cx">         return 1;
</span><span class="cx"> 
</span><del>-    int selection = fastGetAttribute(MathMLNames::selectionAttr).toInt();
</del><ins>+    int selection = attributeWithoutSynchronization(MathMLNames::selectionAttr).toInt();
</ins><span class="cx">     int i;
</span><span class="cx">     for (i = 1; i &lt; selection; i++) {
</span><span class="cx">         auto* nextChild = selectedChild-&gt;nextElementSibling();
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx">         return child;
</span><span class="cx"> 
</span><span class="cx">     // The value of the actiontype attribute is case-sensitive.
</span><del>-    const AtomicString&amp; actiontype = fastGetAttribute(MathMLNames::actiontypeAttr);
</del><ins>+    const AtomicString&amp; actiontype = attributeWithoutSynchronization(MathMLNames::actiontypeAttr);
</ins><span class="cx">     if (actiontype == &quot;statusline&quot;)
</span><span class="cx">         // FIXME: implement user interaction for the &quot;statusline&quot; action type (http://wkbug/124922).
</span><span class="cx">         { }
</span><span class="lines">@@ -185,7 +185,7 @@
</span><span class="cx">             if (child-&gt;hasAttribute(MathMLNames::srcAttr))
</span><span class="cx">                 continue;
</span><span class="cx">             // If the &lt;annotation-xml&gt; element has an encoding attribute describing presentation MathML, SVG or HTML we assume the content can be displayed and we stop here.
</span><del>-            const AtomicString&amp; value = child-&gt;fastGetAttribute(MathMLNames::encodingAttr);
</del><ins>+            const AtomicString&amp; value = child-&gt;attributeWithoutSynchronization(MathMLNames::encodingAttr);
</ins><span class="cx">             if (isMathMLEncoding(value) || isSVGEncoding(value) || isHTMLEncoding(value))
</span><span class="cx">                 return child;
</span><span class="cx">         }
</span><span class="lines">@@ -212,7 +212,7 @@
</span><span class="cx"> void MathMLSelectElement::defaultEventHandler(Event* event)
</span><span class="cx"> {
</span><span class="cx">     if (event-&gt;type() == eventNames().clickEvent) {
</span><del>-        if (fastGetAttribute(MathMLNames::actiontypeAttr) == &quot;toggle&quot;) {
</del><ins>+        if (attributeWithoutSynchronization(MathMLNames::actiontypeAttr) == &quot;toggle&quot;) {
</ins><span class="cx">             toggle();
</span><span class="cx">             event-&gt;setDefaultHandled();
</span><span class="cx">             return;
</span><span class="lines">@@ -224,7 +224,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool MathMLSelectElement::willRespondToMouseClickEvents()
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(MathMLNames::actiontypeAttr) == &quot;toggle&quot; || MathMLInlineContainerElement::willRespondToMouseClickEvents();
</del><ins>+    return attributeWithoutSynchronization(MathMLNames::actiontypeAttr) == &quot;toggle&quot; || MathMLInlineContainerElement::willRespondToMouseClickEvents();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MathMLSelectElement::toggle()
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -2187,7 +2187,7 @@
</span><span class="cx">     ASSERT(target);
</span><span class="cx">     Element* element = is&lt;Element&gt;(*target) ? downcast&lt;Element&gt;(target) : target-&gt;parentElement();
</span><span class="cx">     for (; element; element = element-&gt;parentElement()) {
</span><del>-        SpaceSplitString keywords(element-&gt;fastGetAttribute(webkitdropzoneAttr), true);
</del><ins>+        SpaceSplitString keywords(element-&gt;attributeWithoutSynchronization(webkitdropzoneAttr), true);
</ins><span class="cx">         bool matched = false;
</span><span class="cx">         DragOperation dragOperation = DragOperationNone;
</span><span class="cx">         for (unsigned i = 0, size = keywords.size(); i &lt; size; ++i) {
</span></span></pre></div>
<a id="trunkSourceWebCorepageFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Frame.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Frame.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/page/Frame.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -476,7 +476,7 @@
</span><span class="cx">     if (!resultFromNameAttribute.isEmpty())
</span><span class="cx">         return resultFromNameAttribute;
</span><span class="cx">     
</span><del>-    return matchLabelsAgainstString(labels, element-&gt;fastGetAttribute(idAttr));
</del><ins>+    return matchLabelsAgainstString(labels, element-&gt;attributeWithoutSynchronization(idAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageSerializercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageSerializer.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageSerializer.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/page/PageSerializer.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -233,13 +233,13 @@
</span><span class="cx"> 
</span><span class="cx">         if (is&lt;HTMLImageElement&gt;(element)) {
</span><span class="cx">             HTMLImageElement&amp; imageElement = downcast&lt;HTMLImageElement&gt;(element);
</span><del>-            URL url = document-&gt;completeURL(imageElement.fastGetAttribute(HTMLNames::srcAttr));
</del><ins>+            URL url = document-&gt;completeURL(imageElement.attributeWithoutSynchronization(HTMLNames::srcAttr));
</ins><span class="cx">             CachedImage* cachedImage = imageElement.cachedImage();
</span><span class="cx">             addImageToResources(cachedImage, imageElement.renderer(), url);
</span><span class="cx">         } else if (is&lt;HTMLLinkElement&gt;(element)) {
</span><span class="cx">             HTMLLinkElement&amp; linkElement = downcast&lt;HTMLLinkElement&gt;(element);
</span><span class="cx">             if (CSSStyleSheet* sheet = linkElement.sheet()) {
</span><del>-                URL url = document-&gt;completeURL(linkElement.fastGetAttribute(HTMLNames::hrefAttr));
</del><ins>+                URL url = document-&gt;completeURL(linkElement.attributeWithoutSynchronization(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="trunkSourceWebCoreplatformwinPasteboardWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/PasteboardWin.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/PasteboardWin.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/platform/win/PasteboardWin.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1012,7 +1012,7 @@
</span><span class="cx">     if (!imageBuffer || !imageBuffer-&gt;size())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HGLOBAL imageFileDescriptor = createGlobalImageFileDescriptor(url.string(), element.fastGetAttribute(HTMLNames::altAttr), cachedImage);
</del><ins>+    HGLOBAL imageFileDescriptor = createGlobalImageFileDescriptor(url.string(), element.attributeWithoutSynchronization(HTMLNames::altAttr), cachedImage);
</ins><span class="cx">     if (!imageFileDescriptor)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingHitTestResultcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/HitTestResult.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -313,7 +313,7 @@
</span><span class="cx">     
</span><span class="cx">     if (is&lt;HTMLImageElement&gt;(*m_innerNonSharedNode)) {
</span><span class="cx">         HTMLImageElement&amp; image = downcast&lt;HTMLImageElement&gt;(*m_innerNonSharedNode);
</span><del>-        return displayString(image.fastGetAttribute(altAttr), m_innerNonSharedNode.get());
</del><ins>+        return displayString(image.attributeWithoutSynchronization(altAttr), m_innerNonSharedNode.get());
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (is&lt;HTMLInputElement&gt;(*m_innerNonSharedNode)) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderDetailsMarkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">         if (!renderer-&gt;node())
</span><span class="cx">             continue;
</span><span class="cx">         if (is&lt;HTMLDetailsElement&gt;(*renderer-&gt;node()))
</span><del>-            return !downcast&lt;HTMLDetailsElement&gt;(*renderer-&gt;node()).fastGetAttribute(openAttr).isNull();
</del><ins>+            return !downcast&lt;HTMLDetailsElement&gt;(*renderer-&gt;node()).attributeWithoutSynchronization(openAttr).isNull();
</ins><span class="cx">         if (is&lt;HTMLInputElement&gt;(*renderer-&gt;node()))
</span><span class="cx">             return true;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderImage.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderImage.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/RenderImage.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -605,7 +605,7 @@
</span><span class="cx"> HTMLMapElement* RenderImage::imageMap() const
</span><span class="cx"> {
</span><span class="cx">     HTMLImageElement* image = is&lt;HTMLImageElement&gt;(element()) ? downcast&lt;HTMLImageElement&gt;(element()) : nullptr;
</span><del>-    return image ? image-&gt;treeScope().getImageMap(image-&gt;fastGetAttribute(usemapAttr)) : nullptr;
</del><ins>+    return image ? image-&gt;treeScope().getImageMap(image-&gt;attributeWithoutSynchronization(usemapAttr)) : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderImage::nodeAtPoint(const HitTestRequest&amp; request, HitTestResult&amp; result, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset, HitTestAction hitTestAction)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -469,7 +469,7 @@
</span><span class="cx">     const Vector&lt;HTMLElement*&gt;&amp; listItems = selectElement().listItems();
</span><span class="cx">     if (listIndex &gt;= listItems.size())
</span><span class="cx">         return String();
</span><del>-    return listItems[listIndex]-&gt;fastGetAttribute(aria_labelAttr);
</del><ins>+    return listItems[listIndex]-&gt;attributeWithoutSynchronization(aria_labelAttr);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> String RenderMenuList::itemToolTip(unsigned listIndex) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderSearchFieldcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderSearchField.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderSearchField.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/RenderSearchField.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; RenderSearchField::autosaveName() const
</span><span class="cx"> {
</span><del>-    return inputElement().fastGetAttribute(autosaveAttr);
</del><ins>+    return inputElement().attributeWithoutSynchronization(autosaveAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // PopupMenuClient methods
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1521,7 +1521,7 @@
</span><span class="cx"> 
</span><span class="cx"> static BOOL getAttachmentProgress(const RenderAttachment&amp; attachment, float&amp; progress)
</span><span class="cx"> {
</span><del>-    String progressString = attachment.attachmentElement().fastGetAttribute(progressAttr);
</del><ins>+    String progressString = attachment.attachmentElement().attributeWithoutSynchronization(progressAttr);
</ins><span class="cx">     if (progressString.isEmpty())
</span><span class="cx">         return NO;
</span><span class="cx">     bool validProgress;
</span><span class="lines">@@ -1587,8 +1587,8 @@
</span><span class="cx"> 
</span><span class="cx">     hasProgress = getAttachmentProgress(attachment, progress);
</span><span class="cx"> 
</span><del>-    String action = attachment.attachmentElement().fastGetAttribute(actionAttr);
-    String subtitle = attachment.attachmentElement().fastGetAttribute(subtitleAttr);
</del><ins>+    String action = attachment.attachmentElement().attributeWithoutSynchronization(actionAttr);
+    String subtitle = attachment.attachmentElement().attributeWithoutSynchronization(subtitleAttr);
</ins><span class="cx"> 
</span><span class="cx">     CGFloat yOffset = 0;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.mm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -2330,7 +2330,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AttachmentLayout::layOutSubtitle(const RenderAttachment&amp; attachment)
</span><span class="cx"> {
</span><del>-    String subtitleText = attachment.attachmentElement().fastGetAttribute(subtitleAttr);
</del><ins>+    String subtitleText = attachment.attachmentElement().attributeWithoutSynchronization(subtitleAttr);
</ins><span class="cx"> 
</span><span class="cx">     if (subtitleText.isEmpty())
</span><span class="cx">         return;
</span><span class="lines">@@ -2579,7 +2579,7 @@
</span><span class="cx"> 
</span><span class="cx">     AttachmentLayout layout(attachment);
</span><span class="cx"> 
</span><del>-    String progressString = attachment.attachmentElement().fastGetAttribute(progressAttr);
</del><ins>+    String progressString = attachment.attachmentElement().attributeWithoutSynchronization(progressAttr);
</ins><span class="cx">     bool validProgress = false;
</span><span class="cx">     float progress = 0;
</span><span class="cx">     if (!progressString.isEmpty())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlMathMLStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (is&lt;RenderMathMLMath&gt;(renderer))
</span><del>-        m_displayStyle = downcast&lt;RenderElement&gt;(renderer)-&gt;element()-&gt;fastGetAttribute(displayAttr) == &quot;block&quot;; // The default displaystyle of the &lt;math&gt; element depends on its display attribute.
</del><ins>+        m_displayStyle = downcast&lt;RenderElement&gt;(renderer)-&gt;element()-&gt;attributeWithoutSynchronization(displayAttr) == &quot;block&quot;; // The default displaystyle of the &lt;math&gt; element depends on its display attribute.
</ins><span class="cx">     else if (is&lt;RenderMathMLTable&gt;(renderer))
</span><span class="cx">         m_displayStyle = false; // The default displaystyle of &lt;mtable&gt; is false.
</span><span class="cx">     else if (parentRenderer) {
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx">     const QualifiedName&amp; tagName = element-&gt;tagQName();
</span><span class="cx">     if (tagName == mathTag || tagName == mtableTag || tagName == mstyleTag) {
</span><span class="cx">         // We only modify the value of displaystyle if there is an explicit and valid attribute.
</span><del>-        const AtomicString&amp; attributeValue = element-&gt;fastGetAttribute(displaystyleAttr);
</del><ins>+        const AtomicString&amp; attributeValue = element-&gt;attributeWithoutSynchronization(displaystyleAttr);
</ins><span class="cx">         if (attributeValue == &quot;true&quot;)
</span><span class="cx">             m_displayStyle = true;
</span><span class="cx">         else if (attributeValue == &quot;false&quot;)
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx"> 
</span><span class="cx">     // The mathvariant attribute on the &lt;math&gt;, &lt;mstyle&gt; or token elements overrides the default behavior.
</span><span class="cx">     if (is&lt;RenderMathMLMath&gt;(renderer) || is&lt;RenderMathMLToken&gt;(renderer) || tagName == mstyleTag) {
</span><del>-        MathVariant mathvariant = parseMathVariant(element-&gt;fastGetAttribute(mathvariantAttr));
</del><ins>+        MathVariant mathvariant = parseMathVariant(element-&gt;attributeWithoutSynchronization(mathvariantAttr));
</ins><span class="cx">         if (mathvariant != None)
</span><span class="cx">             m_mathVariant = mathvariant;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLFencedcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -54,14 +54,14 @@
</span><span class="cx">     const auto&amp; fenced = element();
</span><span class="cx"> 
</span><span class="cx">     // The open operator defaults to a left parenthesis.
</span><del>-    AtomicString open = fenced.fastGetAttribute(MathMLNames::openAttr);
</del><ins>+    AtomicString open = fenced.attributeWithoutSynchronization(MathMLNames::openAttr);
</ins><span class="cx">     m_open = open.isNull() ? gOpeningBraceChar : open;
</span><span class="cx"> 
</span><span class="cx">     // The close operator defaults to a right parenthesis.
</span><del>-    AtomicString close = fenced.fastGetAttribute(MathMLNames::closeAttr);
</del><ins>+    AtomicString close = fenced.attributeWithoutSynchronization(MathMLNames::closeAttr);
</ins><span class="cx">     m_close = close.isNull() ? gClosingBraceChar : close;
</span><span class="cx"> 
</span><del>-    AtomicString separators = fenced.fastGetAttribute(MathMLNames::separatorsAttr);
</del><ins>+    AtomicString separators = fenced.attributeWithoutSynchronization(MathMLNames::separatorsAttr);
</ins><span class="cx">     if (!separators.isNull()) {
</span><span class="cx">         StringBuilder characters;
</span><span class="cx">         for (unsigned int i = 0; i &lt; separators.length(); i++) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLOperator::setOperatorFlagFromAttribute(MathMLOperatorDictionary::Flag flag, const QualifiedName&amp; name)
</span><span class="cx"> {
</span><del>-    setOperatorFlagFromAttributeValue(flag, element().fastGetAttribute(name));
</del><ins>+    setOperatorFlagFromAttributeValue(flag, element().attributeWithoutSynchronization(name));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLOperator::setOperatorFlagFromAttributeValue(MathMLOperatorDictionary::Flag flag, const AtomicString&amp; attributeValue)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     // We determine the form of the operator.
</span><span class="cx">     bool explicitForm = true;
</span><span class="cx">     if (!isAnonymous()) {
</span><del>-        const AtomicString&amp; form = element().fastGetAttribute(MathMLNames::formAttr);
</del><ins>+        const AtomicString&amp; form = element().attributeWithoutSynchronization(MathMLNames::formAttr);
</ins><span class="cx">         if (form == &quot;prefix&quot;)
</span><span class="cx">             m_operatorForm = MathMLOperatorDictionary::Prefix;
</span><span class="cx">         else if (form == &quot;infix&quot;)
</span><span class="lines">@@ -161,11 +161,11 @@
</span><span class="cx">         setOperatorFlagFromAttribute(MathMLOperatorDictionary::MovableLimits, MathMLNames::movablelimitsAttr);
</span><span class="cx">         setOperatorFlagFromAttribute(MathMLOperatorDictionary::Accent, MathMLNames::accentAttr);
</span><span class="cx"> 
</span><del>-        parseMathMLLength(element().fastGetAttribute(MathMLNames::lspaceAttr), m_leadingSpace, &amp;style(), false); // FIXME: Negative leading space must be implemented (https://bugs.webkit.org/show_bug.cgi?id=124830).
-        parseMathMLLength(element().fastGetAttribute(MathMLNames::rspaceAttr), m_trailingSpace, &amp;style(), false); // FIXME: Negative trailing space must be implemented (https://bugs.webkit.org/show_bug.cgi?id=124830).
</del><ins>+        parseMathMLLength(element().attributeWithoutSynchronization(MathMLNames::lspaceAttr), m_leadingSpace, &amp;style(), false); // FIXME: Negative leading space must be implemented (https://bugs.webkit.org/show_bug.cgi?id=124830).
+        parseMathMLLength(element().attributeWithoutSynchronization(MathMLNames::rspaceAttr), m_trailingSpace, &amp;style(), false); // FIXME: Negative trailing space must be implemented (https://bugs.webkit.org/show_bug.cgi?id=124830).
</ins><span class="cx"> 
</span><del>-        parseMathMLLength(element().fastGetAttribute(MathMLNames::minsizeAttr), m_minSize, &amp;style(), false);
-        const AtomicString&amp; maxsize = element().fastGetAttribute(MathMLNames::maxsizeAttr);
</del><ins>+        parseMathMLLength(element().attributeWithoutSynchronization(MathMLNames::minsizeAttr), m_minSize, &amp;style(), false);
+        const AtomicString&amp; maxsize = element().attributeWithoutSynchronization(MathMLNames::maxsizeAttr);
</ins><span class="cx">         if (maxsize != &quot;infinity&quot;)
</span><span class="cx">             parseMathMLLength(maxsize, m_maxSize, &amp;style(), false);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -252,7 +252,7 @@
</span><span class="cx">         minSubScriptShift = std::max(subscriptShiftDown, baseDescent + subscriptBaselineDropMin);
</span><span class="cx">         if (!isRenderMathMLUnderOver()) {
</span><span class="cx">             LayoutUnit specifiedMinSubShift = 0;
</span><del>-            parseMathMLLength(element()-&gt;fastGetAttribute(MathMLNames::subscriptshiftAttr), specifiedMinSubShift, &amp;style(), false);
</del><ins>+            parseMathMLLength(element()-&gt;attributeWithoutSynchronization(MathMLNames::subscriptshiftAttr), specifiedMinSubShift, &amp;style(), false);
</ins><span class="cx">             minSubScriptShift = std::max(minSubScriptShift, specifiedMinSubShift);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -260,7 +260,7 @@
</span><span class="cx">         minSupScriptShift = std::max(superscriptShiftUp, baseAscent - superScriptBaselineDropMax);
</span><span class="cx">         if (!isRenderMathMLUnderOver()) {
</span><span class="cx">             LayoutUnit specifiedMinSupShift = 0;
</span><del>-            parseMathMLLength(element()-&gt;fastGetAttribute(MathMLNames::superscriptshiftAttr), specifiedMinSupShift, &amp;style(), false);
</del><ins>+            parseMathMLLength(element()-&gt;attributeWithoutSynchronization(MathMLNames::superscriptshiftAttr), specifiedMinSupShift, &amp;style(), false);
</ins><span class="cx">             minSupScriptShift = std::max(minSupScriptShift, specifiedMinSupShift);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLUnderOvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_scriptType == UnderOver || (accentUnder &amp;&amp; m_scriptType == Under) || (!accentUnder &amp;&amp; m_scriptType == Over));
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; attributeValue = element()-&gt;fastGetAttribute(accentUnder ? accentunderAttr : accentAttr);
</del><ins>+    const AtomicString&amp; attributeValue = element()-&gt;attributeWithoutSynchronization(accentUnder ? accentunderAttr : accentAttr);
</ins><span class="cx">     if (attributeValue == &quot;true&quot;)
</span><span class="cx">         return true;
</span><span class="cx">     if (attributeValue == &quot;false&quot;)
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleSharingResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleSharingResolver.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleSharingResolver.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/style/StyleSharingResolver.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -263,13 +263,13 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     if (candidateElement.elementData() != element.elementData()) {
</span><del>-        if (candidateElement.fastGetAttribute(HTMLNames::readonlyAttr) != element.fastGetAttribute(HTMLNames::readonlyAttr))
</del><ins>+        if (candidateElement.attributeWithoutSynchronization(HTMLNames::readonlyAttr) != element.attributeWithoutSynchronization(HTMLNames::readonlyAttr))
</ins><span class="cx">             return false;
</span><span class="cx">         if (candidateElement.isSVGElement()) {
</span><span class="cx">             if (candidateElement.getAttribute(HTMLNames::typeAttr) != element.getAttribute(HTMLNames::typeAttr))
</span><span class="cx">                 return false;
</span><span class="cx">         } else {
</span><del>-            if (candidateElement.fastGetAttribute(HTMLNames::typeAttr) != element.fastGetAttribute(HTMLNames::typeAttr))
</del><ins>+            if (candidateElement.attributeWithoutSynchronization(HTMLNames::typeAttr) != element.attributeWithoutSynchronization(HTMLNames::typeAttr))
</ins><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -310,9 +310,9 @@
</span><span class="cx">     auto&amp; element = context.element;
</span><span class="cx">     if (element.elementData() == sharingCandidate.elementData())
</span><span class="cx">         return true;
</span><del>-    if (element.fastGetAttribute(XMLNames::langAttr) != sharingCandidate.fastGetAttribute(XMLNames::langAttr))
</del><ins>+    if (element.attributeWithoutSynchronization(XMLNames::langAttr) != sharingCandidate.attributeWithoutSynchronization(XMLNames::langAttr))
</ins><span class="cx">         return false;
</span><del>-    if (element.fastGetAttribute(HTMLNames::langAttr) != sharingCandidate.fastGetAttribute(HTMLNames::langAttr))
</del><ins>+    if (element.attributeWithoutSynchronization(HTMLNames::langAttr) != sharingCandidate.attributeWithoutSynchronization(HTMLNames::langAttr))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     if (context.elementAffectedByClassRules) {
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGAElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> String SVGAElement::title() const
</span><span class="cx"> {
</span><span class="cx">     // If the xlink:title is set (non-empty string), use it.
</span><del>-    const AtomicString&amp; title = fastGetAttribute(XLinkNames::titleAttr);
</del><ins>+    const AtomicString&amp; title = attributeWithoutSynchronization(XLinkNames::titleAttr);
</ins><span class="cx">     if (!title.isEmpty())
</span><span class="cx">         return title;
</span><span class="cx"> 
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             String target = this-&gt;target();
</span><del>-            if (target.isEmpty() &amp;&amp; fastGetAttribute(XLinkNames::showAttr) == &quot;new&quot;)
</del><ins>+            if (target.isEmpty() &amp;&amp; attributeWithoutSynchronization(XLinkNames::showAttr) == &quot;new&quot;)
</ins><span class="cx">                 target = &quot;_blank&quot;;
</span><span class="cx">             event-&gt;setDefaultHandled();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAltGlyphElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAltGlyphElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAltGlyphElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGAltGlyphElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; SVGAltGlyphElement::glyphRef() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(SVGNames::glyphRefAttr);
</del><ins>+    return attributeWithoutSynchronization(SVGNames::glyphRefAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SVGAltGlyphElement::setFormat(const AtomicString&amp;, ExceptionCode&amp; ec)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; SVGAltGlyphElement::format() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(SVGNames::formatAttr);
</del><ins>+    return attributeWithoutSynchronization(SVGNames::formatAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool SVGAltGlyphElement::childShouldCreateRenderer(const Node&amp; child) const
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAnimationElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAnimationElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAnimationElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGAnimationElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -318,23 +318,23 @@
</span><span class="cx"> 
</span><span class="cx"> String SVGAnimationElement::toValue() const
</span><span class="cx"> {    
</span><del>-    return fastGetAttribute(SVGNames::toAttr);
</del><ins>+    return attributeWithoutSynchronization(SVGNames::toAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String SVGAnimationElement::byValue() const
</span><span class="cx"> {    
</span><del>-    return fastGetAttribute(SVGNames::byAttr);
</del><ins>+    return attributeWithoutSynchronization(SVGNames::byAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String SVGAnimationElement::fromValue() const
</span><span class="cx"> {    
</span><del>-    return fastGetAttribute(SVGNames::fromAttr);
</del><ins>+    return attributeWithoutSynchronization(SVGNames::fromAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool SVGAnimationElement::isAdditive() const
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; sum(&quot;sum&quot;, AtomicString::ConstructFromLiteral);
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::additiveAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::additiveAttr);
</ins><span class="cx">     return value == sum || animationMode() == ByAnimation;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -341,7 +341,7 @@
</span><span class="cx"> bool SVGAnimationElement::isAccumulated() const
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; sum(&quot;sum&quot;, AtomicString::ConstructFromLiteral);
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::accumulateAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::accumulateAttr);
</ins><span class="cx">     return value == sum &amp;&amp; animationMode() != ToAnimation;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -369,7 +369,7 @@
</span><span class="cx"> 
</span><span class="cx"> String SVGElement::xmlbase() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(XMLNames::baseAttr);
</del><ins>+    return attributeWithoutSynchronization(XMLNames::baseAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SVGElement::setXmlbase(const String&amp; value, ExceptionCode&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontFaceElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontFaceElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontFaceElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGFontFaceElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> 
</span><span class="cx"> unsigned SVGFontFaceElement::unitsPerEm() const
</span><span class="cx"> {
</span><del>-    const AtomicString&amp; value = fastGetAttribute(units_per_emAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(units_per_emAttr);
</ins><span class="cx">     if (value.isEmpty())
</span><span class="cx">         return gDefaultUnitsPerEm;
</span><span class="cx"> 
</span><span class="lines">@@ -83,12 +83,12 @@
</span><span class="cx"> 
</span><span class="cx"> int SVGFontFaceElement::xHeight() const
</span><span class="cx"> {
</span><del>-    return static_cast&lt;int&gt;(ceilf(fastGetAttribute(x_heightAttr).toFloat()));
</del><ins>+    return static_cast&lt;int&gt;(ceilf(attributeWithoutSynchronization(x_heightAttr).toFloat()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int SVGFontFaceElement::capHeight() const
</span><span class="cx"> {
</span><del>-    return static_cast&lt;int&gt;(ceilf(fastGetAttribute(cap_heightAttr).toFloat()));
</del><ins>+    return static_cast&lt;int&gt;(ceilf(attributeWithoutSynchronization(cap_heightAttr).toFloat()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> float SVGFontFaceElement::horizontalOriginX() const
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">     // Spec: The X-coordinate in the font coordinate system of the origin of a glyph to be used when
</span><span class="cx">     // drawing horizontally oriented text. (Note that the origin applies to all glyphs in the font.)
</span><span class="cx">     // If the attribute is not specified, the effect is as if a value of &quot;0&quot; were specified.
</span><del>-    return m_fontElement-&gt;fastGetAttribute(horiz_origin_xAttr).toFloat();
</del><ins>+    return m_fontElement-&gt;attributeWithoutSynchronization(horiz_origin_xAttr).toFloat();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> float SVGFontFaceElement::horizontalOriginY() const
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     // Spec: The Y-coordinate in the font coordinate system of the origin of a glyph to be used when
</span><span class="cx">     // drawing horizontally oriented text. (Note that the origin applies to all glyphs in the font.)
</span><span class="cx">     // If the attribute is not specified, the effect is as if a value of &quot;0&quot; were specified.
</span><del>-    return m_fontElement-&gt;fastGetAttribute(horiz_origin_yAttr).toFloat();
</del><ins>+    return m_fontElement-&gt;attributeWithoutSynchronization(horiz_origin_yAttr).toFloat();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> float SVGFontFaceElement::horizontalAdvanceX() const
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx">     // Spec: The default horizontal advance after rendering a glyph in horizontal orientation. Glyph
</span><span class="cx">     // widths are required to be non-negative, even if the glyph is typically rendered right-to-left,
</span><span class="cx">     // as in Hebrew and Arabic scripts.
</span><del>-    return m_fontElement-&gt;fastGetAttribute(horiz_adv_xAttr).toFloat();
</del><ins>+    return m_fontElement-&gt;attributeWithoutSynchronization(horiz_adv_xAttr).toFloat();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> float SVGFontFaceElement::verticalOriginX() const
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx">     // Spec: The default X-coordinate in the font coordinate system of the origin of a glyph to be used when
</span><span class="cx">     // drawing vertically oriented text. If the attribute is not specified, the effect is as if the attribute
</span><span class="cx">     // were set to half of the effective value of attribute horiz-adv-x.
</span><del>-    const AtomicString&amp; value = m_fontElement-&gt;fastGetAttribute(vert_origin_xAttr);
</del><ins>+    const AtomicString&amp; value = m_fontElement-&gt;attributeWithoutSynchronization(vert_origin_xAttr);
</ins><span class="cx">     if (value.isEmpty())
</span><span class="cx">         return horizontalAdvanceX() / 2.0f;
</span><span class="cx"> 
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx">     // Spec: The default Y-coordinate in the font coordinate system of the origin of a glyph to be used when
</span><span class="cx">     // drawing vertically oriented text. If the attribute is not specified, the effect is as if the attribute
</span><span class="cx">     // were set to the position specified by the font's ascent attribute.             
</span><del>-    const AtomicString&amp; value = m_fontElement-&gt;fastGetAttribute(vert_origin_yAttr);
</del><ins>+    const AtomicString&amp; value = m_fontElement-&gt;attributeWithoutSynchronization(vert_origin_yAttr);
</ins><span class="cx">     if (value.isEmpty())
</span><span class="cx">         return ascent();
</span><span class="cx"> 
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Spec: The default vertical advance after rendering a glyph in vertical orientation. If the attribute is
</span><span class="cx">     // not specified, the effect is as if a value equivalent of one em were specified (see units-per-em).                    
</span><del>-    const AtomicString&amp; value = m_fontElement-&gt;fastGetAttribute(vert_adv_yAttr);
</del><ins>+    const AtomicString&amp; value = m_fontElement-&gt;attributeWithoutSynchronization(vert_adv_yAttr);
</ins><span class="cx">        if (value.isEmpty())
</span><span class="cx">         return 1.0f;
</span><span class="cx"> 
</span><span class="lines">@@ -174,12 +174,12 @@
</span><span class="cx">     // unaccented height of the font within the font coordinate system. If the attribute is not specified,
</span><span class="cx">     // the effect is as if the attribute were set to the difference between the units-per-em value and the
</span><span class="cx">     // vert-origin-y value for the corresponding font.
</span><del>-    const AtomicString&amp; ascentValue = fastGetAttribute(ascentAttr);
</del><ins>+    const AtomicString&amp; ascentValue = attributeWithoutSynchronization(ascentAttr);
</ins><span class="cx">     if (!ascentValue.isEmpty())
</span><span class="cx">         return static_cast&lt;int&gt;(ceilf(ascentValue.toFloat()));
</span><span class="cx"> 
</span><span class="cx">     if (m_fontElement) {
</span><del>-        const AtomicString&amp; vertOriginY = m_fontElement-&gt;fastGetAttribute(vert_origin_yAttr);
</del><ins>+        const AtomicString&amp; vertOriginY = m_fontElement-&gt;attributeWithoutSynchronization(vert_origin_yAttr);
</ins><span class="cx">         if (!vertOriginY.isEmpty())
</span><span class="cx">             return static_cast&lt;int&gt;(unitsPerEm()) - static_cast&lt;int&gt;(ceilf(vertOriginY.toFloat()));
</span><span class="cx">     }
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx">     // Spec: Same syntax and semantics as the 'descent' descriptor within an @font-face rule. The maximum
</span><span class="cx">     // unaccented depth of the font within the font coordinate system. If the attribute is not specified,
</span><span class="cx">     // the effect is as if the attribute were set to the vert-origin-y value for the corresponding font.
</span><del>-    const AtomicString&amp; descentValue = fastGetAttribute(descentAttr);
</del><ins>+    const AtomicString&amp; descentValue = attributeWithoutSynchronization(descentAttr);
</ins><span class="cx">     if (!descentValue.isEmpty()) {
</span><span class="cx">         // 14 different W3C SVG 1.1 testcases use a negative descent value,
</span><span class="cx">         // where a positive was meant to be used  Including:
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (m_fontElement) {
</span><del>-        const AtomicString&amp; vertOriginY = m_fontElement-&gt;fastGetAttribute(vert_origin_yAttr);
</del><ins>+        const AtomicString&amp; vertOriginY = m_fontElement-&gt;attributeWithoutSynchronization(vert_origin_yAttr);
</ins><span class="cx">         if (!vertOriginY.isEmpty())
</span><span class="cx">             return static_cast&lt;int&gt;(ceilf(vertOriginY.toFloat()));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontFaceNameElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontFaceNameElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontFaceNameElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGFontFaceNameElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;CSSFontFaceSrcValue&gt; SVGFontFaceNameElement::srcValue() const
</span><span class="cx"> {
</span><del>-    return CSSFontFaceSrcValue::createLocal(fastGetAttribute(SVGNames::nameAttr));
</del><ins>+    return CSSFontFaceSrcValue::createLocal(attributeWithoutSynchronization(SVGNames::nameAttr));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontFaceUriElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> Ref&lt;CSSFontFaceSrcValue&gt; SVGFontFaceUriElement::srcValue() const
</span><span class="cx"> {
</span><span class="cx">     auto src = CSSFontFaceSrcValue::create(getAttribute(XLinkNames::hrefAttr));
</span><del>-    AtomicString value(fastGetAttribute(formatAttr));
</del><ins>+    AtomicString value(attributeWithoutSynchronization(formatAttr));
</ins><span class="cx">     src.get().setFormat(value.isEmpty() ? &quot;svg&quot; : value); // Default format
</span><span class="cx">     return src;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGGlyphRefElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; SVGGlyphRefElement::glyphRef() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(SVGNames::glyphRefAttr);
</del><ins>+    return attributeWithoutSynchronization(SVGNames::glyphRefAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SVGGlyphRefElement::setGlyphRef(const AtomicString&amp;, ExceptionCode&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGHKernElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGHKernElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGHKernElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGHKernElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -43,10 +43,10 @@
</span><span class="cx"> 
</span><span class="cx"> bool SVGHKernElement::buildHorizontalKerningPair(SVGKerningPair&amp; kerningPair) const
</span><span class="cx"> {
</span><del>-    String u1 = fastGetAttribute(SVGNames::u1Attr);
-    String g1 = fastGetAttribute(SVGNames::g1Attr);
-    String u2 = fastGetAttribute(SVGNames::u2Attr);
-    String g2 = fastGetAttribute(SVGNames::g2Attr);
</del><ins>+    String u1 = attributeWithoutSynchronization(SVGNames::u1Attr);
+    String g1 = attributeWithoutSynchronization(SVGNames::g1Attr);
+    String u2 = attributeWithoutSynchronization(SVGNames::u2Attr);
+    String g2 = attributeWithoutSynchronization(SVGNames::g2Attr);
</ins><span class="cx">     if ((u1.isEmpty() &amp;&amp; g1.isEmpty()) || (u2.isEmpty() &amp;&amp; g2.isEmpty()))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">         &amp;&amp; parseKerningUnicodeString(u1, kerningPair.unicodeRange1, kerningPair.unicodeName1)
</span><span class="cx">         &amp;&amp; parseKerningUnicodeString(u2, kerningPair.unicodeRange2, kerningPair.unicodeName2)) {
</span><span class="cx">         bool ok = false;
</span><del>-        kerningPair.kerning = fastGetAttribute(SVGNames::kAttr).string().toFloat(&amp;ok);
</del><ins>+        kerningPair.kerning = attributeWithoutSynchronization(SVGNames::kAttr).string().toFloat(&amp;ok);
</ins><span class="cx">         return ok;
</span><span class="cx">     }
</span><span class="cx">     return false;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGSVGElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGSVGElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGSVGElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> const AtomicString&amp; SVGSVGElement::contentScriptType() const
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; defaultScriptType { &quot;text/ecmascript&quot; };
</span><del>-    const AtomicString&amp; type = fastGetAttribute(SVGNames::contentScriptTypeAttr);
</del><ins>+    const AtomicString&amp; type = attributeWithoutSynchronization(SVGNames::contentScriptTypeAttr);
</ins><span class="cx">     return type.isNull() ? defaultScriptType.get() : type;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx"> const AtomicString&amp; SVGSVGElement::contentStyleType() const
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; defaultStyleType { &quot;text/css&quot; };
</span><del>-    const AtomicString&amp; type = fastGetAttribute(SVGNames::contentStyleTypeAttr);
</del><ins>+    const AtomicString&amp; type = attributeWithoutSynchronization(SVGNames::contentStyleTypeAttr);
</ins><span class="cx">     return type.isNull() ? defaultStyleType.get() : type;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGStyleElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGStyleElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGStyleElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGStyleElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> const AtomicString&amp; SVGStyleElement::media() const
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; defaultValue(&quot;all&quot;, AtomicString::ConstructFromLiteral);
</span><del>-    const AtomicString&amp; n = fastGetAttribute(SVGNames::mediaAttr);
</del><ins>+    const AtomicString&amp; n = attributeWithoutSynchronization(SVGNames::mediaAttr);
</ins><span class="cx">     return n.isNull() ? defaultValue.get() : n;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx"> 
</span><span class="cx"> String SVGStyleElement::title() const
</span><span class="cx"> {
</span><del>-    return fastGetAttribute(SVGNames::titleAttr);
</del><ins>+    return attributeWithoutSynchronization(SVGNames::titleAttr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SVGStyleElement::setTitle(const AtomicString&amp; title, ExceptionCode&amp;)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGToOTFFontConversioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -497,9 +497,9 @@
</span><span class="cx"> {
</span><span class="cx">     int16_t averageAdvance = s_outputUnitsPerEm;
</span><span class="cx">     bool ok;
</span><del>-    int value = m_fontElement.fastGetAttribute(SVGNames::horiz_adv_xAttr).toInt(&amp;ok);
</del><ins>+    int value = m_fontElement.attributeWithoutSynchronization(SVGNames::horiz_adv_xAttr).toInt(&amp;ok);
</ins><span class="cx">     if (!ok &amp;&amp; m_missingGlyphElement)
</span><del>-        value = m_missingGlyphElement-&gt;fastGetAttribute(SVGNames::horiz_adv_xAttr).toInt(&amp;ok);
</del><ins>+        value = m_missingGlyphElement-&gt;attributeWithoutSynchronization(SVGNames::horiz_adv_xAttr).toInt(&amp;ok);
</ins><span class="cx">     value = scaleUnitsPerEm(value);
</span><span class="cx">     if (ok)
</span><span class="cx">         averageAdvance = clampTo&lt;int16_t&gt;(value);
</span><span class="lines">@@ -527,7 +527,7 @@
</span><span class="cx">     char panoseBytes[panoseSize];
</span><span class="cx">     if (m_fontFaceElement) {
</span><span class="cx">         Vector&lt;String&gt; segments;
</span><del>-        m_fontFaceElement-&gt;fastGetAttribute(SVGNames::panose_1Attr).string().split(' ', segments);
</del><ins>+        m_fontFaceElement-&gt;attributeWithoutSynchronization(SVGNames::panose_1Attr).string().split(' ', segments);
</ins><span class="cx">         if (segments.size() == panoseSize) {
</span><span class="cx">             for (auto&amp; segment : segments) {
</span><span class="cx">                 bool ok;
</span><span class="lines">@@ -618,7 +618,7 @@
</span><span class="cx"> 
</span><span class="cx">     String weight;
</span><span class="cx">     if (m_fontFaceElement) {
</span><del>-        auto&amp; potentialWeight = m_fontFaceElement-&gt;fastGetAttribute(SVGNames::font_weightAttr);
</del><ins>+        auto&amp; potentialWeight = m_fontFaceElement-&gt;attributeWithoutSynchronization(SVGNames::font_weightAttr);
</ins><span class="cx">         if (isValidStringForCFF(potentialWeight))
</span><span class="cx">             weight = potentialWeight;
</span><span class="cx">     }
</span><span class="lines">@@ -821,7 +821,7 @@
</span><span class="cx">     for (auto&amp; pair : m_codepointsToIndicesMap) {
</span><span class="cx">         for (auto glyphIndex : pair.value) {
</span><span class="cx">             auto&amp; glyph = m_glyphs[glyphIndex];
</span><del>-            if (glyph.glyphElement &amp;&amp; equalIgnoringASCIICase(glyph.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), arabicForm))
</del><ins>+            if (glyph.glyphElement &amp;&amp; equalIgnoringASCIICase(glyph.glyphElement-&gt;attributeWithoutSynchronization(SVGNames::arabic_formAttr), arabicForm))
</ins><span class="cx">                 arabicFinalReplacements.append(std::make_pair(pair.value[0], glyphIndex));
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -956,9 +956,9 @@
</span><span class="cx">     append16(0); // Minor version
</span><span class="cx"> 
</span><span class="cx">     bool ok;
</span><del>-    int defaultVerticalOriginY = m_fontElement.fastGetAttribute(SVGNames::vert_origin_yAttr).toInt(&amp;ok);
</del><ins>+    int defaultVerticalOriginY = m_fontElement.attributeWithoutSynchronization(SVGNames::vert_origin_yAttr).toInt(&amp;ok);
</ins><span class="cx">     if (!ok &amp;&amp; m_missingGlyphElement)
</span><del>-        defaultVerticalOriginY = m_missingGlyphElement-&gt;fastGetAttribute(SVGNames::vert_origin_yAttr).toInt();
</del><ins>+        defaultVerticalOriginY = m_missingGlyphElement-&gt;attributeWithoutSynchronization(SVGNames::vert_origin_yAttr).toInt();
</ins><span class="cx">     defaultVerticalOriginY = scaleUnitsPerEm(defaultVerticalOriginY);
</span><span class="cx">     append16(clampTo&lt;int16_t&gt;(defaultVerticalOriginY));
</span><span class="cx"> 
</span><span class="lines">@@ -966,7 +966,7 @@
</span><span class="cx">     append16(0); // Place to write table size.
</span><span class="cx">     for (Glyph i = 0; i &lt; m_glyphs.size(); ++i) {
</span><span class="cx">         if (auto* glyph = m_glyphs[i].glyphElement) {
</span><del>-            if (int verticalOriginY = glyph-&gt;fastGetAttribute(SVGNames::vert_origin_yAttr).toInt()) {
</del><ins>+            if (int verticalOriginY = glyph-&gt;attributeWithoutSynchronization(SVGNames::vert_origin_yAttr).toInt()) {
</ins><span class="cx">                 append16(i);
</span><span class="cx">                 append16(clampTo&lt;int16_t&gt;(scaleUnitsPerEm(verticalOriginY)));
</span><span class="cx">             }
</span><span class="lines">@@ -1254,7 +1254,7 @@
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;char&gt; result;
</span><span class="cx"> 
</span><del>-    auto&amp; dAttribute = glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::dAttr);
</del><ins>+    auto&amp; dAttribute = glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::dAttr);
</ins><span class="cx">     if (dAttribute.isEmpty()) {
</span><span class="cx">         writeCFFEncodedNumber(result, width);
</span><span class="cx">         writeCFFEncodedNumber(result, 0);
</span><span class="lines">@@ -1266,10 +1266,10 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: If we are vertical, use vert_origin_x and vert_origin_y
</span><span class="cx">     bool ok;
</span><del>-    float horizontalOriginX = scaleUnitsPerEm(glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::horiz_origin_xAttr).toFloat(&amp;ok));
</del><ins>+    float horizontalOriginX = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::horiz_origin_xAttr).toFloat(&amp;ok));
</ins><span class="cx">     if (!ok &amp;&amp; m_fontFaceElement)
</span><span class="cx">         horizontalOriginX = scaleUnitsPerEm(m_fontFaceElement-&gt;horizontalOriginX());
</span><del>-    float horizontalOriginY = scaleUnitsPerEm(glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::horiz_origin_yAttr).toFloat(&amp;ok));
</del><ins>+    float horizontalOriginY = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::horiz_origin_yAttr).toFloat(&amp;ok));
</ins><span class="cx">     if (!ok &amp;&amp; m_fontFaceElement)
</span><span class="cx">         horizontalOriginY = scaleUnitsPerEm(m_fontFaceElement-&gt;horizontalOriginY());
</span><span class="cx"> 
</span><span class="lines">@@ -1289,11 +1289,11 @@
</span><span class="cx"> void SVGToOTFFontConverter::processGlyphElement(const SVGElement&amp; glyphOrMissingGlyphElement, const SVGGlyphElement* glyphElement, float defaultHorizontalAdvance, float defaultVerticalAdvance, const String&amp; codepoints, Optional&lt;FloatRect&gt;&amp; boundingBox)
</span><span class="cx"> {
</span><span class="cx">     bool ok;
</span><del>-    float horizontalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::horiz_adv_xAttr).toFloat(&amp;ok));
</del><ins>+    float horizontalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::horiz_adv_xAttr).toFloat(&amp;ok));
</ins><span class="cx">     if (!ok)
</span><span class="cx">         horizontalAdvance = defaultHorizontalAdvance;
</span><span class="cx">     m_advanceWidthMax = std::max(m_advanceWidthMax, horizontalAdvance);
</span><del>-    float verticalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::vert_adv_yAttr).toFloat(&amp;ok));
</del><ins>+    float verticalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::vert_adv_yAttr).toFloat(&amp;ok));
</ins><span class="cx">     if (!ok)
</span><span class="cx">         verticalAdvance = defaultVerticalAdvance;
</span><span class="cx">     m_advanceHeightMax = std::max(m_advanceHeightMax, verticalAdvance);
</span><span class="lines">@@ -1364,8 +1364,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (iterator1 == codePoints1.end() &amp;&amp; iterator2 == codePoints2.end()) {
</span><del>-        bool firstIsIsolated = data1.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(data1.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;);
-        bool secondIsIsolated = data2.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(data2.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;);
</del><ins>+        bool firstIsIsolated = data1.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(data1.glyphElement-&gt;attributeWithoutSynchronization(SVGNames::arabic_formAttr), &quot;isolated&quot;);
+        bool secondIsIsolated = data2.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(data2.glyphElement-&gt;attributeWithoutSynchronization(SVGNames::arabic_formAttr), &quot;isolated&quot;);
</ins><span class="cx">         return firstIsIsolated &amp;&amp; !secondIsIsolated;
</span><span class="cx">     }
</span><span class="cx">     return iterator1 == codePoints1.end();
</span><span class="lines">@@ -1430,7 +1430,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; glyphElement : childrenOfType&lt;SVGGlyphElement&gt;(m_fontElement)) {
</span><del>-        auto&amp; unicodeAttribute = glyphElement.fastGetAttribute(SVGNames::unicodeAttr);
</del><ins>+        auto&amp; unicodeAttribute = glyphElement.attributeWithoutSynchronization(SVGNames::unicodeAttr);
</ins><span class="cx">         if (!unicodeAttribute.isEmpty()) // If we can never actually trigger this glyph, ignore it completely
</span><span class="cx">             processGlyphElement(glyphElement, &amp;glyphElement, defaultHorizontalAdvance, defaultVerticalAdvance, unicodeAttribute, boundingBox);
</span><span class="cx">     }
</span><span class="lines">@@ -1455,7 +1455,7 @@
</span><span class="cx">     for (Glyph i = 0; i &lt; m_glyphs.size(); ++i) {
</span><span class="cx">         GlyphData&amp; glyph = m_glyphs[i];
</span><span class="cx">         if (glyph.glyphElement) {
</span><del>-            auto&amp; glyphName = glyph.glyphElement-&gt;fastGetAttribute(SVGNames::glyph_nameAttr);
</del><ins>+            auto&amp; glyphName = glyph.glyphElement-&gt;attributeWithoutSynchronization(SVGNames::glyph_nameAttr);
</ins><span class="cx">             if (!glyphName.isNull())
</span><span class="cx">                 m_glyphNameToIndexMap.add(glyphName, i);
</span><span class="cx">         }
</span><span class="lines">@@ -1462,7 +1462,7 @@
</span><span class="cx">         if (m_codepointsToIndicesMap.isValidKey(glyph.codepoints)) {
</span><span class="cx">             auto&amp; glyphVector = m_codepointsToIndicesMap.add(glyph.codepoints, Vector&lt;Glyph&gt;()).iterator-&gt;value;
</span><span class="cx">             // Prefer isolated arabic forms
</span><del>-            if (glyph.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(glyph.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;))
</del><ins>+            if (glyph.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(glyph.glyphElement-&gt;attributeWithoutSynchronization(SVGNames::arabic_formAttr), &quot;isolated&quot;))
</ins><span class="cx">                 glyphVector.insert(0, i);
</span><span class="cx">             else
</span><span class="cx">                 glyphVector.append(i);
</span><span class="lines">@@ -1472,7 +1472,7 @@
</span><span class="cx">     // FIXME: Handle commas.
</span><span class="cx">     if (m_fontFaceElement) {
</span><span class="cx">         Vector&lt;String&gt; segments;
</span><del>-        m_fontFaceElement-&gt;fastGetAttribute(SVGNames::font_weightAttr).string().split(' ', segments);
</del><ins>+        m_fontFaceElement-&gt;attributeWithoutSynchronization(SVGNames::font_weightAttr).string().split(' ', segments);
</ins><span class="cx">         for (auto&amp; segment : segments) {
</span><span class="cx">             if (equalLettersIgnoringASCIICase(segment, &quot;bold&quot;)) {
</span><span class="cx">                 m_weight = 7;
</span><span class="lines">@@ -1485,7 +1485,7 @@
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="cx">         }
</span><del>-        m_fontFaceElement-&gt;fastGetAttribute(SVGNames::font_styleAttr).string().split(' ', segments);
</del><ins>+        m_fontFaceElement-&gt;attributeWithoutSynchronization(SVGNames::font_styleAttr).string().split(' ', segments);
</ins><span class="cx">         for (auto&amp; segment : segments) {
</span><span class="cx">             if (equalLettersIgnoringASCIICase(segment, &quot;italic&quot;) || equalLettersIgnoringASCIICase(segment, &quot;oblique&quot;)) {
</span><span class="cx">                 m_italic = true;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGVKernElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGVKernElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGVKernElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/SVGVKernElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -42,10 +42,10 @@
</span><span class="cx"> 
</span><span class="cx"> bool SVGVKernElement::buildVerticalKerningPair(SVGKerningPair&amp; kerningPair) const
</span><span class="cx"> {
</span><del>-    String u1 = fastGetAttribute(SVGNames::u1Attr);
-    String g1 = fastGetAttribute(SVGNames::g1Attr);
-    String u2 = fastGetAttribute(SVGNames::u2Attr);
-    String g2 = fastGetAttribute(SVGNames::g2Attr);
</del><ins>+    String u1 = attributeWithoutSynchronization(SVGNames::u1Attr);
+    String g1 = attributeWithoutSynchronization(SVGNames::g1Attr);
+    String u2 = attributeWithoutSynchronization(SVGNames::u2Attr);
+    String g2 = attributeWithoutSynchronization(SVGNames::g2Attr);
</ins><span class="cx">     if ((u1.isEmpty() &amp;&amp; g1.isEmpty()) || (u2.isEmpty() &amp;&amp; g2.isEmpty()))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">         &amp;&amp; parseKerningUnicodeString(u1, kerningPair.unicodeRange1, kerningPair.unicodeName1)
</span><span class="cx">         &amp;&amp; parseKerningUnicodeString(u2, kerningPair.unicodeRange2, kerningPair.unicodeName2)) {
</span><span class="cx">         bool ok = false;
</span><del>-        kerningPair.kerning = fastGetAttribute(SVGNames::kAttr).string().toFloat(&amp;ok);
</del><ins>+        kerningPair.kerning = attributeWithoutSynchronization(SVGNames::kAttr).string().toFloat(&amp;ok);
</ins><span class="cx">         return ok;
</span><span class="cx">     }
</span><span class="cx">     return false;
</span></span></pre></div>
<a id="trunkSourceWebCoresvganimationSVGSMILElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/animation/SVGSMILElement.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/animation/SVGSMILElement.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebCore/svg/animation/SVGSMILElement.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx">     // Verify we are not in &lt;use&gt; instance tree.
</span><span class="cx">     ASSERT(!isInShadowTree());
</span><span class="cx"> 
</span><del>-    setAttributeName(constructQualifiedName(this, fastGetAttribute(SVGNames::attributeNameAttr)));
</del><ins>+    setAttributeName(constructQualifiedName(this, attributeWithoutSynchronization(SVGNames::attributeNameAttr)));
</ins><span class="cx">     SVGSVGElement* owner = ownerSVGElement();
</span><span class="cx">     if (!owner)
</span><span class="cx">         return InsertionDone;
</span><span class="lines">@@ -474,7 +474,7 @@
</span><span class="cx">         if (!m_conditions.isEmpty()) {
</span><span class="cx">             disconnectConditions();
</span><span class="cx">             m_conditions.clear();
</span><del>-            parseBeginOrEnd(fastGetAttribute(SVGNames::endAttr), End);
</del><ins>+            parseBeginOrEnd(attributeWithoutSynchronization(SVGNames::endAttr), End);
</ins><span class="cx">         }
</span><span class="cx">         parseBeginOrEnd(value.string(), Begin);
</span><span class="cx">         if (inDocument())
</span><span class="lines">@@ -483,7 +483,7 @@
</span><span class="cx">         if (!m_conditions.isEmpty()) {
</span><span class="cx">             disconnectConditions();
</span><span class="cx">             m_conditions.clear();
</span><del>-            parseBeginOrEnd(fastGetAttribute(SVGNames::beginAttr), Begin);
</del><ins>+            parseBeginOrEnd(attributeWithoutSynchronization(SVGNames::beginAttr), Begin);
</ins><span class="cx">         }
</span><span class="cx">         parseBeginOrEnd(value.string(), End);
</span><span class="cx">         if (inDocument())
</span><span class="lines">@@ -514,7 +514,7 @@
</span><span class="cx">     else if (attrName == SVGNames::maxAttr)
</span><span class="cx">         m_cachedMax = invalidCachedTime;
</span><span class="cx">     else if (attrName == SVGNames::attributeNameAttr)
</span><del>-        setAttributeName(constructQualifiedName(this, fastGetAttribute(SVGNames::attributeNameAttr)));
</del><ins>+        setAttributeName(constructQualifiedName(this, attributeWithoutSynchronization(SVGNames::attributeNameAttr)));
</ins><span class="cx">     else if (attrName.matches(XLinkNames::hrefAttr)) {
</span><span class="cx">         InstanceInvalidationGuard guard(*this);
</span><span class="cx">         buildPendingResource();
</span><span class="lines">@@ -646,7 +646,7 @@
</span><span class="cx"> {    
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; never(&quot;never&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; whenNotActive(&quot;whenNotActive&quot;, AtomicString::ConstructFromLiteral);
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::restartAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::restartAttr);
</ins><span class="cx">     if (value == never)
</span><span class="cx">         return RestartNever;
</span><span class="cx">     if (value == whenNotActive)
</span><span class="lines">@@ -657,7 +657,7 @@
</span><span class="cx"> SVGSMILElement::FillMode SVGSMILElement::fill() const
</span><span class="cx"> {   
</span><span class="cx">     static NeverDestroyed&lt;const AtomicString&gt; freeze(&quot;freeze&quot;, AtomicString::ConstructFromLiteral);
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::fillAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::fillAttr);
</ins><span class="cx">     return value == freeze ? FillFreeze : FillRemove;
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -665,7 +665,7 @@
</span><span class="cx"> {   
</span><span class="cx">     if (m_cachedDur != invalidCachedTime)
</span><span class="cx">         return m_cachedDur;
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::durAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::durAttr);
</ins><span class="cx">     SMILTime clockValue = parseClockValue(value);
</span><span class="cx">     return m_cachedDur = clockValue &lt;= 0 ? SMILTime::unresolved() : clockValue;
</span><span class="cx"> }
</span><span class="lines">@@ -674,7 +674,7 @@
</span><span class="cx"> {    
</span><span class="cx">     if (m_cachedRepeatDur != invalidCachedTime)
</span><span class="cx">         return m_cachedRepeatDur;
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::repeatDurAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::repeatDurAttr);
</ins><span class="cx">     SMILTime clockValue = parseClockValue(value);
</span><span class="cx">     m_cachedRepeatDur = clockValue &lt;= 0 ? SMILTime::unresolved() : clockValue;
</span><span class="cx">     return m_cachedRepeatDur;
</span><span class="lines">@@ -685,7 +685,7 @@
</span><span class="cx"> {    
</span><span class="cx">     if (m_cachedRepeatCount != invalidCachedTime)
</span><span class="cx">         return m_cachedRepeatCount;
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::repeatCountAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::repeatCountAttr);
</ins><span class="cx">     if (value.isNull())
</span><span class="cx">         return SMILTime::unresolved();
</span><span class="cx"> 
</span><span class="lines">@@ -701,7 +701,7 @@
</span><span class="cx"> {    
</span><span class="cx">     if (m_cachedMax != invalidCachedTime)
</span><span class="cx">         return m_cachedMax;
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::maxAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::maxAttr);
</ins><span class="cx">     SMILTime result = parseClockValue(value);
</span><span class="cx">     return m_cachedMax = (result.isUnresolved() || result &lt;= 0) ? SMILTime::indefinite() : result;
</span><span class="cx"> }
</span><span class="lines">@@ -710,7 +710,7 @@
</span><span class="cx"> {    
</span><span class="cx">     if (m_cachedMin != invalidCachedTime)
</span><span class="cx">         return m_cachedMin;
</span><del>-    const AtomicString&amp; value = fastGetAttribute(SVGNames::minAttr);
</del><ins>+    const AtomicString&amp; value = attributeWithoutSynchronization(SVGNames::minAttr);
</ins><span class="cx">     SMILTime result = parseClockValue(value);
</span><span class="cx">     return m_cachedMin = (result.isUnresolved() || result &lt; 0) ? 0 : result;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-07-16  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
+        Rename fastGetAttribute to attributeWithoutSynchronization
+        https://bugs.webkit.org/show_bug.cgi?id=159852
+
+        Reviewed by Darin Adler.
+
+        * WebView/WebHTMLRepresentation.mm:
+        (matchLabelsAgainstElement):
+
</ins><span class="cx"> 2016-07-15  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLRepresentationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm        2016-07-16 15:21:55 UTC (rev 203324)
</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-&gt;fastGetAttribute(nameAttr));
</del><ins>+    String resultFromNameAttribute = matchLabelsAgainstString(labels, element-&gt;attributeWithoutSynchronization(nameAttr));
</ins><span class="cx">     if (!resultFromNameAttribute.isEmpty())
</span><span class="cx">         return resultFromNameAttribute;
</span><span class="cx">     
</span><del>-    return matchLabelsAgainstString(labels, element-&gt;fastGetAttribute(idAttr));
</del><ins>+    return matchLabelsAgainstString(labels, element-&gt;attributeWithoutSynchronization(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 (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebKit/win/ChangeLog        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-07-16  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
+        Rename fastGetAttribute to attributeWithoutSynchronization
+        https://bugs.webkit.org/show_bug.cgi?id=159852
+
+        Reviewed by Darin Adler.
+
+        * DOMHTMLClasses.cpp:
+        (DOMHTMLElement::idName):
+
</ins><span class="cx"> 2016-07-15  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
</span></span></pre></div>
<a id="trunkSourceWebKitwinDOMHTMLClassescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/DOMHTMLClasses.cpp (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/DOMHTMLClasses.cpp        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebKit/win/DOMHTMLClasses.cpp        2016-07-16 15:21:55 UTC (rev 203324)
</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&lt;HTMLElement&gt;(m_element));
</span><del>-    String idString = downcast&lt;HTMLElement&gt;(m_element)-&gt;fastGetAttribute(idAttr);
</del><ins>+    String idString = downcast&lt;HTMLElement&gt;(m_element)-&gt;attributeWithoutSynchronization(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 (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebKit2/ChangeLog        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-07-16  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
+        Rename fastGetAttribute to attributeWithoutSynchronization
+        https://bugs.webkit.org/show_bug.cgi?id=159852
+
+        Reviewed by Darin Adler.
+
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::getPositionInformation):
+        (WebKit::WebPage::performActionOnElement):
+        (WebKit::WebPage::getAssistedNodeInformation):
+
</ins><span class="cx"> 2016-07-15  Timothy Hatcher  &lt;timothy@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Automation: Fix element and event coord space issues
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (203323 => 203324)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2016-07-16 11:33:52 UTC (rev 203323)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2016-07-16 15:21:55 UTC (rev 203324)
</span><span class="lines">@@ -2360,7 +2360,7 @@
</span><span class="cx">             }
</span><span class="cx">             if (linkElement)
</span><span class="cx">                 info.url = [(NSURL *)linkElement-&gt;document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkElement-&gt;getAttribute(HTMLNames::hrefAttr))) absoluteString];
</span><del>-            info.title = element-&gt;fastGetAttribute(HTMLNames::titleAttr).string();
</del><ins>+            info.title = element-&gt;attributeWithoutSynchronization(HTMLNames::titleAttr).string();
</ins><span class="cx">             if (linkElement &amp;&amp; info.title.isEmpty())
</span><span class="cx">                 info.title = element-&gt;innerText();
</span><span class="cx">             if (element-&gt;renderer())
</span><span class="lines">@@ -2438,9 +2438,9 @@
</span><span class="cx">             if (!linkElement)
</span><span class="cx">                 m_interactionNode-&gt;document().frame()-&gt;editor().writeImageToPasteboard(*Pasteboard::createForCopyAndPaste(), element, URL(), String());
</span><span class="cx">             else
</span><del>-                m_interactionNode-&gt;document().frame()-&gt;editor().copyURL(linkElement-&gt;document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkElement-&gt;fastGetAttribute(HTMLNames::hrefAttr))), linkElement-&gt;textContent());
</del><ins>+                m_interactionNode-&gt;document().frame()-&gt;editor().copyURL(linkElement-&gt;document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkElement-&gt;attributeWithoutSynchronization(HTMLNames::hrefAttr))), linkElement-&gt;textContent());
</ins><span class="cx">         } else if (element.isLink()) {
</span><del>-            m_interactionNode-&gt;document().frame()-&gt;editor().copyURL(element.document().completeURL(stripLeadingAndTrailingHTMLSpaces(element.fastGetAttribute(HTMLNames::hrefAttr))), element.textContent());
</del><ins>+            m_interactionNode-&gt;document().frame()-&gt;editor().copyURL(element.document().completeURL(stripLeadingAndTrailingHTMLSpaces(element.attributeWithoutSynchronization(HTMLNames::hrefAttr))), element.textContent());
</ins><span class="cx">         }
</span><span class="cx">     } else if (static_cast&lt;SheetAction&gt;(action) == SheetAction::SaveImage) {
</span><span class="cx">         if (!is&lt;RenderImage&gt;(*element.renderer()))
</span><span class="lines">@@ -2608,13 +2608,13 @@
</span><span class="cx">         else if (element.isURLField())
</span><span class="cx">             information.elementType = InputType::URL;
</span><span class="cx">         else if (element.isText()) {
</span><del>-            const AtomicString&amp; pattern = element.fastGetAttribute(HTMLNames::patternAttr);
</del><ins>+            const AtomicString&amp; pattern = element.attributeWithoutSynchronization(HTMLNames::patternAttr);
</ins><span class="cx">             if (pattern == &quot;\\d*&quot; || pattern == &quot;[0-9]*&quot;)
</span><span class="cx">                 information.elementType = InputType::NumberPad;
</span><span class="cx">             else {
</span><span class="cx">                 information.elementType = InputType::Text;
</span><span class="cx">                 if (!information.formAction.isEmpty()
</span><del>-                    &amp;&amp; (element.getNameAttribute().contains(&quot;search&quot;) || element.getIdAttribute().contains(&quot;search&quot;) || element.fastGetAttribute(HTMLNames::titleAttr).contains(&quot;search&quot;)))
</del><ins>+                    &amp;&amp; (element.getNameAttribute().contains(&quot;search&quot;) || element.getIdAttribute().contains(&quot;search&quot;) || element.attributeWithoutSynchronization(HTMLNames::titleAttr).contains(&quot;search&quot;)))
</ins><span class="cx">                     information.elementType = InputType::Search;
</span><span class="cx">             }
</span><span class="cx">         }
</span></span></pre>
</div>
</div>

</body>
</html>