<!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 <rniwa@webkit.org>
+
+ 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 <cgarcia@igalia.com>
</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, "dialog") && !nodeHasRole(element, "alertdialog"))
</span><span class="cx"> continue;
</span><del>- if (!equalLettersIgnoringASCIICase(element->fastGetAttribute(aria_modalAttr), "true"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(element->attributeWithoutSynchronization(aria_modalAttr), "true"))
</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<Element>(node))
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- auto& roleValue = downcast<Element>(*node).fastGetAttribute(roleAttr);
</del><ins>+ auto& roleValue = downcast<Element>(*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<Element>(node);
</span><del>- String liveRegionStatus = element->fastGetAttribute(aria_liveAttr);
</del><ins>+ String liveRegionStatus = element->attributeWithoutSynchronization(aria_liveAttr);
</ins><span class="cx"> if (liveRegionStatus.isEmpty()) {
</span><del>- const AtomicString& ariaRole = element->fastGetAttribute(roleAttr);
</del><ins>+ const AtomicString& ariaRole = element->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, "menuitem") && !nodeHasRole(node, "menuitemradio") && !nodeHasRole(node, "menuitemcheckbox"))
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (!downcast<Element>(*node).focused() && !equalLettersIgnoringASCIICase(downcast<Element>(*node).fastGetAttribute(aria_selectedAttr), "true"))
</del><ins>+ if (!downcast<Element>(*node).focused() && !equalLettersIgnoringASCIICase(downcast<Element>(*node).attributeWithoutSynchronization(aria_selectedAttr), "true"))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> postNotification(getOrCreate(node), &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<Element>(*node).fastGetAttribute(aria_modalAttr), "true")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(downcast<Element>(*node).attributeWithoutSynchronization(aria_modalAttr), "true")) {
</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->parentNode()) {
</span><span class="cx"> if (is<Element>(*testNode)) {
</span><del>- const AtomicString& ariaHiddenValue = downcast<Element>(*testNode).fastGetAttribute(aria_hiddenAttr);
</del><ins>+ const AtomicString& ariaHiddenValue = downcast<Element>(*testNode).attributeWithoutSynchronization(aria_hiddenAttr);
</ins><span class="cx"> if (equalLettersIgnoringASCIICase(ariaHiddenValue, "true"))
</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& sibling : childrenOfType<Element>(*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 &sibling;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1247,7 +1247,7 @@
</span><span class="cx"> AccessibilityObject* labelObject = axObjectCache()->getOrCreate(label);
</span><span class="cx"> String innerText = label->innerText();
</span><span class="cx">
</span><del>- const AtomicString& ariaLabel = label->fastGetAttribute(aria_labelAttr);
</del><ins>+ const AtomicString& ariaLabel = label->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->documentElement()) {
</span><del>- const AtomicString& ariaLabel = documentElement->fastGetAttribute(aria_labelAttr);
</del><ins>+ const AtomicString& ariaLabel = documentElement->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->ownerElement()) {
</span><span class="cx"> if (owner->hasTagName(frameTag) || owner->hasTagName(iframeTag)) {
</span><del>- const AtomicString& title = owner->fastGetAttribute(titleAttr);
</del><ins>+ const AtomicString& title = owner->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<Element>(node))
</span><span class="cx"> return 0;
</span><span class="cx"> Element& element = downcast<Element>(*node);
</span><del>- const AtomicString& ariaLevel = element.fastGetAttribute(aria_levelAttr);
</del><ins>+ const AtomicString& 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<HTMLElement*>& listItems = selectElement.listItems();
</span><span class="cx"> if (selectedIndex >= 0 && static_cast<size_t>(selectedIndex) < listItems.size()) {
</span><del>- const AtomicString& overriddenDescription = listItems[selectedIndex]->fastGetAttribute(aria_labelAttr);
</del><ins>+ const AtomicString& overriddenDescription = listItems[selectedIndex]->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& element = downcast<Element>(*node);
</span><del>- const AtomicString& ariaLabel = element.fastGetAttribute(aria_labelAttr);
</del><ins>+ const AtomicString& 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& alt = element.fastGetAttribute(altAttr);
</del><ins>+ const AtomicString& 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& title = element.fastGetAttribute(titleAttr);
</del><ins>+ const AtomicString& 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& contentEditableValue = element->fastGetAttribute(contenteditableAttr);
</del><ins>+ const AtomicString& contentEditableValue = element->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& AccessibilityObject::getAttribute(const QualifiedName& attribute) const
</span><span class="cx"> {
</span><span class="cx"> if (Element* element = this->element())
</span><del>- return element->fastGetAttribute(attribute);
</del><ins>+ return element->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<HTMLElement*>& listItems = selectElement.listItems();
</span><span class="cx"> if (selectedIndex >= 0 && static_cast<size_t>(selectedIndex) < listItems.size()) {
</span><del>- const AtomicString& overriddenDescription = listItems[selectedIndex]->fastGetAttribute(aria_labelAttr);
</del><ins>+ const AtomicString& overriddenDescription = listItems[selectedIndex]->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<HTMLInputElement>(*this->node()) || AccessibilityObject::isARIAInput(ariaRoleAttribute())) {
</span><span class="cx"> if (HTMLLabelElement* label = labelForElement(downcast<Element>(node()))) {
</span><del>- if (!label->fastGetAttribute(aria_labelAttr).isEmpty())
</del><ins>+ if (!label->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<String> childLanguageCodes;
</span><span class="cx"> Vector<Element*> elements;
</span><span class="cx"> for (auto& 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(&child);
</span><span class="cx">
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx"> return titleChild->textContent();
</span><span class="cx">
</span><span class="cx"> if (is<SVGAElement>(element())) {
</span><del>- String xlinkTitle = element()->fastGetAttribute(XLinkNames::titleAttr);
</del><ins>+ String xlinkTitle = element()->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& link = *static_cast<HTMLLinkElement*>(core(self));
</span><span class="cx">
</span><del>- auto& media = link.fastGetAttribute(HTMLNames::mediaAttr);
</del><ins>+ auto& 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->IsSVGAnimatedType($attributeType)) {
</span><span class="cx"> $functionName = "getAttribute";
</span><span class="cx"> } else {
</span><del>- $functionName = "fastGetAttribute";
</del><ins>+ $functionName = "attributeWithoutSynchronization";
</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->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 "fastGetAttribute") {
</del><ins>+ # To avoid bloating Obj-C bindings, we use getAttribute() instead of attributeWithoutSynchronization().
+ if ($functionName eq "attributeWithoutSynchronization") {
</ins><span class="cx"> $functionName = "getAttribute";
</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->fastGetAttribute(WebCore::HTMLNames::reflectedstringattrAttr));
</del><ins>+ gchar* result = convertToUTF8String(item->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->fastGetAttribute(WebCore::HTMLNames::customContentStringAttrAttr));
</del><ins>+ gchar* result = convertToUTF8String(item->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, "TestObj", "reflectedStringAttr");
</span><span class="cx"> }
</span><span class="cx"> auto& impl = castedThis->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, "TestObj", "reflectedStringAttr");
</span><span class="cx"> }
</span><span class="cx"> auto& impl = castedThis->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<HTMLLinkElement>(*node) || is<HTMLStyleElement>(*node) || is<SVGStyleElement>(*node)) {
</span><span class="cx"> Element& element = downcast<Element>(*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<HTMLLinkElement>(element)) {
</span><span class="cx"> // <LINK> 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 && !title.isEmpty() && m_preferredStylesheetSetName.isEmpty()) {
</span><del>- if (!linkElement.fastGetAttribute(relAttr).contains("alternate")) {
</del><ins>+ if (!linkElement.attributeWithoutSynchronization(relAttr).contains("alternate")) {
</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& rel = element.fastGetAttribute(relAttr);
</del><ins>+ auto& rel = element.attributeWithoutSynchronization(relAttr);
</ins><span class="cx"> if (!enabledViaScript && !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& element : descendantsOfType<Element>(scope->rootNode())) {
</span><del>- const AtomicString& accessKey = element.fastGetAttribute(accesskeyAttr);
</del><ins>+ const AtomicString& accessKey = element.attributeWithoutSynchronization(accesskeyAttr);
</ins><span class="cx"> if (!accessKey.isEmpty())
</span><span class="cx"> m_elementsByAccessKey.set(accessKey.impl(), &element);
</span><span class="cx">
</span><span class="lines">@@ -3031,7 +3031,7 @@
</span><span class="cx"> auto baseDescendants = descendantsOfType<HTMLBaseElement>(*this);
</span><span class="cx"> for (auto& base : baseDescendants) {
</span><span class="cx"> if (!href) {
</span><del>- const AtomicString& value = base.fastGetAttribute(hrefAttr);
</del><ins>+ const AtomicString& value = base.attributeWithoutSynchronization(hrefAttr);
</ins><span class="cx"> if (!value.isNull()) {
</span><span class="cx"> href = &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& value = base.fastGetAttribute(targetAttr);
</del><ins>+ const AtomicString& value = base.attributeWithoutSynchronization(targetAttr);
</ins><span class="cx"> if (!value.isNull()) {
</span><span class="cx"> target = &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& key, const TreeScope& scope) const
</span><span class="cx"> {
</span><span class="cx"> return downcast<HTMLLabelElement>(get(key, scope, [] (const AtomicStringImpl& key, const Element& element) {
</span><del>- return is<HTMLLabelElement>(element) && element.fastGetAttribute(forAttr).impl() == &key;
</del><ins>+ return is<HTMLLabelElement>(element) && element.attributeWithoutSynchronization(forAttr).impl() == &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& 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& style)
</span><span class="lines">@@ -1568,7 +1568,7 @@
</span><span class="cx">
</span><span class="cx"> if (newScope && hasTagName(labelTag)) {
</span><span class="cx"> if (newScope->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 && hasTagName(labelTag)) {
</span><span class="cx"> if (oldScope->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& 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& 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& value = fastGetAttribute(HTMLNames::spellcheckAttr);
</del><ins>+ const AtomicString& 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, "true"))
</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), "img");
</del><ins>+ return !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(roleAttr), "img");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String Element::completeURLsInAttributeValue(const URL& base, const Attribute& 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&) const;
</span><del>- const AtomicString& fastGetAttribute(const QualifiedName&) const;
</del><ins>+ const AtomicString& attributeWithoutSynchronization(const QualifiedName&) const;
</ins><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> WEBCORE_EXPORT bool fastAttributeLookupAllowed(const QualifiedName&) const;
</span><span class="cx"> #endif
</span><span class="lines">@@ -669,7 +669,7 @@
</span><span class="cx"> return elementData() && findAttributeByName(name);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-inline const AtomicString& Element::fastGetAttribute(const QualifiedName& name) const
</del><ins>+inline const AtomicString& Element::attributeWithoutSynchronization(const QualifiedName& 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& 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()->allowScriptWithNonce(m_element.fastGetAttribute(HTMLNames::nonceAttr), m_element.isInUserAgentShadowTree());
</del><ins>+ bool hasKnownNonce = m_element.document().contentSecurityPolicy()->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()->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, "use-credentials") ? 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& 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<Text>(child))
</span><span class="cx"> return SlotAssignment::defaultSlotName();
</span><span class="cx">
</span><del>- return slotNameFromAttributeValue(downcast<Element>(child).fastGetAttribute(slotAttr));
</del><ins>+ return slotNameFromAttributeValue(downcast<Element>(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->innerSlotDidChange(slotElement.fastGetAttribute(slotAttr));
</del><ins>+ shadowRootOfSlotParent->innerSlotDidChange(slotElement.attributeWithoutSynchronization(slotAttr));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SlotAssignment::didChangeSlot(const AtomicString& slotAttrValue, ChangeType changeType, ShadowRoot& shadowRoot)
</span><span class="lines">@@ -166,13 +166,13 @@
</span><span class="cx">
</span><span class="cx"> void SlotAssignment::hostChildElementDidChange(const Element& childElement, ShadowRoot& 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<Node*>* SlotAssignment::assignedNodesForSlot(const HTMLSlotElement& slotElement, ShadowRoot& shadowRoot)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(slotElement.containingShadowRoot() == &shadowRoot);
</span><del>- const AtomicString& slotName = slotNameFromAttributeValue(slotElement.fastGetAttribute(nameAttr));
</del><ins>+ const AtomicString& 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& slotElement : descendantsOfType<HTMLSlotElement>(shadowRoot)) {
</span><del>- auto& slotName = slotNameFromAttributeValue(slotElement.fastGetAttribute(nameAttr));
</del><ins>+ auto& 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<DocumentOrderedMap>();
</span><span class="cx">
</span><span class="cx"> for (auto& label : descendantsOfType<HTMLLabelElement>(m_rootNode)) {
</span><del>- const AtomicString& forValue = label.fastGetAttribute(forAttr);
</del><ins>+ const AtomicString& 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 &element.fastGetAttribute(HTMLNames::hrefAttr);
</del><ins>+ return &element.attributeWithoutSynchronization(HTMLNames::hrefAttr);
</ins><span class="cx"> if (element.isSVGElement())
</span><span class="cx"> return &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<HTMLSpanElement>(node))
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- return downcast<HTMLSpanElement>(*node).fastGetAttribute(classAttr) == styleSpanClassString();
</del><ins>+ return downcast<HTMLSpanElement>(*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->fastGetAttribute(classAttr) == styleSpanClassString())
</del><ins>+ if (element->attributeWithoutSynchronization(classAttr) == styleSpanClassString())
</ins><span class="cx"> matchedAttributes++;
</span><span class="cx"> if (element->hasAttribute(styleAttr) && (shouldStyleAttributeBeEmpty == AllowNonEmptyStyleAttribute
</span><span class="cx"> || !element->inlineStyle() || element->inlineStyle()->isEmpty()))
</span></span></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 && !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->fastGetAttribute(HTMLNames::classAttr) == AppleStyleSpanClass)
</del><ins>+ if (element->attributeWithoutSynchronization(HTMLNames::classAttr) == AppleStyleSpanClass)
</ins><span class="cx"> matchedAttributes++;
</span><span class="cx">
</span><span class="cx"> if (element->hasAttribute(HTMLNames::styleAttr)) {
</span></span></pre></div>
<a id="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<String> interchangeNewlineClassString(AppleInterchangeNewline);
</span><del>- return is<HTMLBRElement>(node) && downcast<HTMLBRElement>(*node).fastGetAttribute(classAttr) == interchangeNewlineClassString;
</del><ins>+ return is<HTMLBRElement>(node) && downcast<HTMLBRElement>(*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<String> convertedSpaceSpanClassString(AppleConvertedSpace);
</span><del>- return is<HTMLElement>(node) && downcast<HTMLElement>(*node).fastGetAttribute(classAttr) == convertedSpaceSpanClassString;
</del><ins>+ return is<HTMLElement>(node) && downcast<HTMLElement>(*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 && node->hasTagName(blockquoteTag) && downcast<Element>(node)->fastGetAttribute(classAttr) == ApplePasteAsQuotation;
</del><ins>+ return node && node->hasTagName(blockquoteTag) && downcast<Element>(node)->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<const HTMLElement*>(node);
</span><del>- const AtomicString& classAttributeValue = element->fastGetAttribute(classAttr);
</del><ins>+ const AtomicString& classAttributeValue = element->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& element = downcast<Element>(*renderer->node());
</span><span class="cx"> if (is<HTMLFormControlElement>(element) || is<HTMLLegendElement>(element) || is<HTMLProgressElement>(element) || element.hasTagName(meterTag))
</span><span class="cx"> return true;
</span><del>- if (equalLettersIgnoringASCIICase(element.fastGetAttribute(roleAttr), "img"))
</del><ins>+ if (equalLettersIgnoringASCIICase(element.attributeWithoutSynchronization(roleAttr), "img"))
</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 >= 100000
</span><span class="cx"> return [softLink_DataDetectorsCore_DDURLTapAndHoldSchemes() containsObject:(NSString *)downcast<HTMLAnchorElement>(element).href().protocol().convertToASCIILowercase()];
</span><span class="cx"> #else
</span><del>- if (equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectorsAttr), "true"))
</del><ins>+ if (equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectorsAttr), "true"))
</ins><span class="cx"> return true;
</span><span class="cx"> URL url = downcast<HTMLAnchorElement>(element).href();
</span><span class="cx"> return url.protocolIs("mailto") || url.protocolIs("tel");
</span><span class="lines">@@ -167,12 +167,12 @@
</span><span class="cx">
</span><span class="cx"> bool DataDetection::requiresExtendedContext(Element& element)
</span><span class="cx"> {
</span><del>- return equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectors_typeAttr), "calendar-event");
</del><ins>+ return equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectors_typeAttr), "calendar-event");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String DataDetection::dataDetectorIdentifier(Element& 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& element)
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx"> if (softLink_DataDetectorsCore_DDShouldImmediatelyShowActionSheetForURL(downcast<HTMLAnchorElement>(element).href()))
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- const AtomicString& resultAttribute = element.fastGetAttribute(x_apple_data_detectors_resultAttr);
</del><ins>+ const AtomicString& 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()->dataDetectionResults();
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx"> #else
</span><span class="cx"> if (!is<HTMLAnchorElement>(element))
</span><span class="cx"> return false;
</span><del>- if (!equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectorsAttr), "true"))
</del><ins>+ if (!equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectorsAttr), "true"))
</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 == "misc" || type == "calendar-event" || type == "telephone")
</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<HTMLAnchorElement>(element) && equalIgnoringASCIICase(element.fastGetAttribute(x_apple_data_detectorsAttr), "true");
</del><ins>+ bool elementIsDDAnchor = is<HTMLAnchorElement>(element) && equalIgnoringASCIICase(element.attributeWithoutSynchronization(x_apple_data_detectorsAttr), "true");
</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 = &startNode; node; node = NodeTraversal::next(*node, &startNode)) {
</span><span class="cx"> if (is<HTMLAnchorElement>(*node)) {
</span><span class="cx"> auto& anchor = downcast<HTMLAnchorElement>(*node);
</span><del>- if (!equalIgnoringASCIICase(anchor.fastGetAttribute(x_apple_data_detectorsAttr), "true"))
</del><ins>+ if (!equalIgnoringASCIICase(anchor.attributeWithoutSynchronization(x_apple_data_detectorsAttr), "true"))
</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& anchor : ancestorsOfType<HTMLAnchorElement>(startNode)) {
</span><del>- if (!equalIgnoringASCIICase(anchor.fastGetAttribute(x_apple_data_detectorsAttr), "true"))
</del><ins>+ if (!equalIgnoringASCIICase(anchor.attributeWithoutSynchronization(x_apple_data_detectorsAttr), "true"))
</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& elementURL(Element& element)
</span><span class="cx"> {
</span><span class="cx"> if (is<HTMLImageElement>(element) || is<HTMLInputElement>(element))
</span><del>- return element.fastGetAttribute(HTMLNames::srcAttr);
</del><ins>+ return element.attributeWithoutSynchronization(HTMLNames::srcAttr);
</ins><span class="cx"> if (is<SVGImageElement>(element))
</span><del>- return element.fastGetAttribute(XLinkNames::hrefAttr);
</del><ins>+ return element.attributeWithoutSynchronization(XLinkNames::hrefAttr);
</ins><span class="cx"> if (is<HTMLEmbedElement>(element) || is<HTMLObjectElement>(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<HTMLSpanElement>(node) && downcast<HTMLSpanElement>(*node).fastGetAttribute(classAttr) == AppleTabSpanClass;
</del><ins>+ return is<HTMLSpanElement>(node) && downcast<HTMLSpanElement>(*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->hasTagName(blockquoteTag))
</span><span class="cx"> return false;
</span><del>- return downcast<HTMLElement>(*node).fastGetAttribute(typeAttr) == "cite";
</del><ins>+ return downcast<HTMLElement>(*node).attributeWithoutSynchronization(typeAttr) == "cite";
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int caretMinOffset(const Node& 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& attachment : attachments) {
</span><del>- attachment->setFile(File::create(attachment->fastGetAttribute(webkitattachmentpathAttr)).ptr());
</del><ins>+ attachment->setFile(File::create(attachment->attributeWithoutSynchronization(webkitattachmentpathAttr)).ptr());
</ins><span class="cx"> attachment->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& attributeValue = element.fastGetAttribute(HTMLNames::autocompleteAttr);
</del><ins>+ const AtomicString& 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& value) const
</span><span class="cx"> {
</span><del>- const AtomicString& rawPattern = element().fastGetAttribute(patternAttr);
</del><ins>+ const AtomicString& 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 = "^(?:" + rawPattern + ")$";
</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<const StepRange::StepDescription> 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<const StepRange::StepDescription> 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<const StepRange::StepDescription> 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& formId(element->fastGetAttribute(formAttr));
</del><ins>+ const AtomicString& formId(element->attributeWithoutSynchronization(formAttr));
</ins><span class="cx"> if (!formId.isNull() && element->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<FormAttributeTargetObserver>(asHTMLElement().fastGetAttribute(formAttr), *this);
</del><ins>+ m_formAttributeTargetObserver = std::make_unique<FormAttributeTargetObserver>(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& value = fastGetAttribute(draggableAttr);
</del><ins>+ const AtomicString& value = attributeWithoutSynchronization(draggableAttr);
</ins><span class="cx"> if (equalLettersIgnoringASCIICase(value, "true"))
</span><span class="cx"> return true;
</span><span class="cx"> if (equalLettersIgnoringASCIICase(value, "false"))
</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& 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()->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 < 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->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<String> paramValues;
</span><span class="cx">
</span><span class="cx"> paramNames.append("code");
</span><del>- paramValues.append(fastGetAttribute(codeAttr).string());
</del><ins>+ paramValues.append(attributeWithoutSynchronization(codeAttr).string());
</ins><span class="cx">
</span><del>- const AtomicString& codeBase = fastGetAttribute(codebaseAttr);
</del><ins>+ const AtomicString& codeBase = attributeWithoutSynchronization(codebaseAttr);
</ins><span class="cx"> if (!codeBase.isNull()) {
</span><span class="cx"> paramNames.append(ASCIILiteral("codeBase"));
</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& archive = fastGetAttribute(archiveAttr);
</del><ins>+ const AtomicString& archive = attributeWithoutSynchronization(archiveAttr);
</ins><span class="cx"> if (!archive.isNull()) {
</span><span class="cx"> paramNames.append(ASCIILiteral("archive"));
</span><span class="cx"> paramValues.append(archive.string());
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx"> paramNames.append(ASCIILiteral("baseURL"));
</span><span class="cx"> paramValues.append(document().baseURL().string());
</span><span class="cx">
</span><del>- const AtomicString& mayScript = fastGetAttribute(mayscriptAttr);
</del><ins>+ const AtomicString& mayScript = attributeWithoutSynchronization(mayscriptAttr);
</ins><span class="cx"> if (!mayScript.isNull()) {
</span><span class="cx"> paramNames.append(ASCIILiteral("mayScript"));
</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& title = fastGetAttribute(titleAttr);
</del><ins>+ auto& 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->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& attributeValue = fastGetAttribute(hrefAttr);
</del><ins>+ const AtomicString& 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& 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->fastGetAttribute(bgcolorAttr);
</del><ins>+ return bodyElement->attributeWithoutSynchronization(bgcolorAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocument::setBgColor(const String& 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->fastGetAttribute(textAttr);
</del><ins>+ return bodyElement->attributeWithoutSynchronization(textAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocument::setFgColor(const String& 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->fastGetAttribute(alinkAttr);
</del><ins>+ return bodyElement->attributeWithoutSynchronization(alinkAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocument::setAlinkColor(const String& 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->fastGetAttribute(linkAttr);
</del><ins>+ return bodyElement->attributeWithoutSynchronization(linkAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocument::setLinkColor(const String& 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->fastGetAttribute(vlinkAttr);
</del><ins>+ return bodyElement->attributeWithoutSynchronization(vlinkAttr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocument::setVlinkColor(const String& 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& 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& name, const AtomicString& value, MutableStyleProperties& style)
</span><span class="lines">@@ -536,7 +536,7 @@
</span><span class="cx">
</span><span class="cx"> const AtomicString& 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& 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), "true");
</del><ins>+ return equalLettersIgnoringASCIICase(attributeWithoutSynchronization(draggableAttr), "true");
</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& value = fastGetAttribute(translateAttr);
</del><ins>+ const AtomicString& 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& direction = fastGetAttribute(dirAttr);
</del><ins>+ const AtomicString& direction = attributeWithoutSynchronization(dirAttr);
</ins><span class="cx"> return (hasTagName(bdiTag) && direction.isNull()) || equalLettersIgnoringASCIICase(direction, "auto");
</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<Element>(*node)) {
</span><del>- AtomicString dirAttributeValue = downcast<Element>(*node).fastGetAttribute(dirAttr);
</del><ins>+ AtomicString dirAttributeValue = downcast<Element>(*node).attributeWithoutSynchronization(dirAttr);
</ins><span class="cx"> if (isLTROrRTLIgnoringCase(dirAttributeValue) || equalLettersIgnoringASCIICase(dirAttributeValue, "auto")) {
</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& 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<URL>& 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& formEnctypeAttr = fastGetAttribute(formenctypeAttr);
</del><ins>+ const AtomicString& 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& formMethodAttr = fastGetAttribute(formmethodAttr);
</del><ins>+ const AtomicString& 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& value = fastGetAttribute(formactionAttr);
</del><ins>+ const AtomicString& 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& autocorrectValue = fastGetAttribute(autocorrectAttr);
</del><ins>+ const AtomicString& autocorrectValue = attributeWithoutSynchronization(autocorrectAttr);
</ins><span class="cx"> if (!autocorrectValue.isEmpty())
</span><span class="cx"> return !equalLettersIgnoringASCIICase(autocorrectValue, "off");
</span><span class="cx"> if (HTMLFormElement* form = this->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->form())
</span><span class="cx"> return form->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& autocorrectValue = fastGetAttribute(autocorrectAttr);
</del><ins>+ const AtomicString& autocorrectValue = attributeWithoutSynchronization(autocorrectAttr);
</ins><span class="cx"> if (!autocorrectValue.isEmpty())
</span><span class="cx"> return !equalLettersIgnoringASCIICase(autocorrectValue, "off");
</span><span class="cx"> if (HTMLFormElement* form = this->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& 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 &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), "off");
</del><ins>+ return !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(autocompleteAttr), "off");
</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<AtomicString> on("on", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<AtomicString> off("off", AtomicString::ConstructFromLiteral);
</span><span class="cx">
</span><del>- return equalIgnoringASCIICase(fastGetAttribute(autocompleteAttr), "off") ? off : on;
</del><ins>+ return equalIgnoringASCIICase(attributeWithoutSynchronization(autocompleteAttr), "off") ? 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, "about:srcdoc");
</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& 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& manifest = fastGetAttribute(manifestAttr);
</del><ins>+ const AtomicString& manifest = attributeWithoutSynchronization(manifestAttr);
</ins><span class="cx"> if (manifest.isEmpty())
</span><span class="cx"> documentLoader->applicationCacheHost()->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& 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& candidate)
</span><span class="lines">@@ -154,11 +154,11 @@
</span><span class="cx"> continue;
</span><span class="cx"> auto& source = downcast<HTMLSourceElement>(*child);
</span><span class="cx">
</span><del>- auto& srcset = source.fastGetAttribute(srcsetAttr);
</del><ins>+ auto& srcset = source.attributeWithoutSynchronization(srcsetAttr);
</ins><span class="cx"> if (srcset.isEmpty())
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>- auto& typeAttribute = source.fastGetAttribute(typeAttr);
</del><ins>+ auto& 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 <picture> 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& alt = fastGetAttribute(altAttr);
</del><ins>+ const AtomicString& 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<RenderElement> HTMLImageElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
</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(&ok);
</del><ins>+ int width = attributeWithoutSynchronization(widthAttr).toInt(&ok);
</ins><span class="cx"> if (ok)
</span><span class="cx"> return width;
</span><span class="cx">
</span><span class="lines">@@ -401,7 +401,7 @@
</span><span class="cx"> if (!renderer()) {
</span><span class="cx"> // check the attribute first for an explicit pixel value
</span><span class="cx"> bool ok;
</span><del>- int height = fastGetAttribute(heightAttr).toInt(&ok);
</del><ins>+ int height = attributeWithoutSynchronization(heightAttr).toInt(&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& 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), "false");
</del><ins>+ return !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(draggableAttr), "false");
</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& 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 "#"?
</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& usemap = fastGetAttribute(usemapAttr);
</del><ins>+ const AtomicString& 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->formControlType() == newType->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 && 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& type = fastGetAttribute(typeAttr);
</del><ins>+ const AtomicString& 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 &value)
</span><span class="lines">@@ -1256,22 +1256,22 @@
</span><span class="cx">
</span><span class="cx"> Vector<String> 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<String> 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->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<HTMLDataListElement>(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<ListAttributeTargetObserver>(fastGetAttribute(listAttr), this);
</del><ins>+ m_listAttributeTargetObserver = std::make_unique<ListAttributeTargetObserver>(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& keyType = fastGetAttribute(keytypeAttr);
</del><ins>+ const auto& keyType = attributeWithoutSynchronization(keytypeAttr);
</ins><span class="cx"> return keyType.isNull() || equalLettersIgnoringASCIICase(keyType, "rsa");
</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()->selectedIndex(), fastGetAttribute(challengeAttr), document().baseURL());
</del><ins>+ String value = signedPublicKeyAndChallengeString(shadowSelect()->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& 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& controlId = fastGetAttribute(forAttr);
</del><ins>+ const AtomicString& 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() && document().settings()->treatsAnyTextCSSLinkAsStylesheet() && m_type.containsIgnoringASCIICase("text/css"));
</span><span class="cx">
</span><span class="cx"> if (m_disabledState != Disabled && treatAsStyleSheet && document().frame() && url.isValid()) {
</span><del>- AtomicString charset = fastGetAttribute(charsetAttr);
</del><ins>+ AtomicString charset = attributeWithoutSynchronization(charsetAttr);
</ins><span class="cx"> if (charset.isEmpty() && 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()->allowStyleWithNonce(fastGetAttribute(HTMLNames::nonceAttr))) {
</del><ins>+ if (document().contentSecurityPolicy()->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& 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& 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<LinkIconType> 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(&ok);
</del><ins>+ int loopValue = attributeWithoutSynchronization(loopAttr).toInt(&ok);
</ins><span class="cx"> return ok && loopValue > 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 && !fastGetAttribute(srcAttr).isEmpty() && m_mediaSession->dataLoadingPermitted(*this))
</del><ins>+ if (m_networkState == NETWORK_EMPTY && !attributeWithoutSynchronization(srcAttr).isEmpty() && m_mediaSession->dataLoadingPermitted(*this))
</ins><span class="cx"> #else
</span><del>- if (m_networkState == NETWORK_EMPTY && !fastGetAttribute(srcAttr).isEmpty())
</del><ins>+ if (m_networkState == NETWORK_EMPTY && !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& contentValue = fastGetAttribute(contentAttr);
</del><ins>+ const AtomicString& 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(), "referrer"))
</span><span class="cx"> document().processReferrerPolicy(contentValue);
</span><span class="cx">
</span><del>- const AtomicString& httpEquivValue = fastGetAttribute(http_equivAttr);
</del><ins>+ const AtomicString& 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& 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& 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& 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& 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& 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()->settings().needsSiteSpecificQuirks()
</span><span class="cx"> || hasFallbackContent()
</span><del>- || !equalLettersIgnoringASCIICase(fastGetAttribute(classidAttr), "clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b"))
</del><ins>+ || !equalLettersIgnoringASCIICase(attributeWithoutSynchronization(classidAttr), "clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> for (auto& metaElement : descendantsOfType<HTMLMetaElement>(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()) && fastGetAttribute(classidAttr).startsWith("java:", false))
</del><ins>+ if (MIMETypeRegistry::isJavaAppletMIMEType(serviceType()) && attributeWithoutSynchronization(classidAttr).startsWith("java:", 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& 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& child : childrenOfType<Element>(*this)) {
</span><span class="cx"> if (child.hasTagName(paramTag) && equalLettersIgnoringASCIICase(child.getNameAttribute(), "type")
</span><del>- && MIMETypeRegistry::isJavaAppletMIMEType(child.fastGetAttribute(valueAttr).string()))
</del><ins>+ && MIMETypeRegistry::isJavaAppletMIMEType(child.attributeWithoutSynchronization(valueAttr).string()))
</ins><span class="cx"> return true;
</span><span class="cx"> if (child.hasTagName(objectTag) && downcast<HTMLObjectElement>(child).containsJavaApplet())
</span><span class="cx"> return true;
</span><span 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 "#" 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& useMap = fastGetAttribute(usemapAttr);
</del><ins>+ const AtomicString& 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& value = fastGetAttribute(valueAttr);
</del><ins>+ const AtomicString& 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& 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 < 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 <= 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() && isInShadowTree() && &insertionPoint.treeScope() == &treeScope()) {
</span><span class="cx"> if (auto shadowRoot = containingShadowRoot())
</span><del>- shadowRoot->addSlotElementByName(fastGetAttribute(nameAttr), *this);
</del><ins>+ shadowRoot->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() && isInShadowTree() && &treeScope() == &document()) {
</span><span class="cx"> auto* oldShadowRoot = insertionPoint.containingShadowRoot();
</span><span class="cx"> ASSERT(oldShadowRoot);
</span><del>- oldShadowRoot->removeSlotElementByName(fastGetAttribute(nameAttr), *this);
</del><ins>+ oldShadowRoot->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& 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& 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<const AtomicString> rowgroup("rowgroup", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<const AtomicString> colgroup("colgroup", AtomicString::ConstructFromLiteral);
</span><span class="cx">
</span><del>- const AtomicString& value = fastGetAttribute(HTMLNames::scopeAttr);
</del><ins>+ const AtomicString& 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& 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& 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<URL>& 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& 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& value)
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx">
</span><span class="cx"> const AtomicString& 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& value)
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx">
</span><span class="cx"> const AtomicString& 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& value)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx">
</span><span class="cx"> const AtomicString& 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& 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& text = (m_wrap == HardWrap) ? valueWithHardLineBreaks() : value();
</span><span class="cx"> encoding.appendData(name(), text);
</span><span class="cx">
</span><del>- const AtomicString& dirnameAttrValue = fastGetAttribute(dirnameAttr);
</del><ins>+ const AtomicString& 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& attributeValue = fastGetAttribute(placeholderAttr);
</del><ins>+ const AtomicString& attributeValue = attributeWithoutSynchronization(placeholderAttr);
</ins><span class="cx"> if (!attributeValue.contains(newlineCharacter) && !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& attributeValue = fastGetAttribute(placeholderAttr);
</del><ins>+ const AtomicString& 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& dirAttributeValue = element->fastGetAttribute(dirAttr);
</del><ins>+ const AtomicString& dirAttributeValue = element->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& 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& 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& HTMLTrackElement::mediaElementCrossOriginAttribute() const
</span><span class="cx"> {
</span><span class="cx"> if (HTMLMediaElement* parent = mediaElement())
</span><del>- return parent->fastGetAttribute(HTMLNames::crossoriginAttr);
</del><ins>+ return parent->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) && 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), "deny"))
</del><ins>+ if (equalLettersIgnoringASCIICase(attributeWithoutSynchronization(HTMLNames::webkitairplayAttr), "deny"))
</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& HTMLVideoElement::imageSourceURL() const
</span><span class="cx"> {
</span><del>- const AtomicString& url = fastGetAttribute(posterAttr);
</del><ins>+ const AtomicString& 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->renderer()) {
</span><span class="cx"> // Check the attribute first for an explicit pixel value.
</span><del>- if (Optional<int> height = parseHTMLNonNegativeInteger(element->fastGetAttribute(heightAttr)))
</del><ins>+ if (Optional<int> height = parseHTMLNonNegativeInteger(element->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->renderer()) {
</span><span class="cx"> // Check the attribute first for an explicit pixel value.
</span><del>- if (Optional<int> width = parseHTMLNonNegativeInteger(element->fastGetAttribute(widthAttr)))
</del><ins>+ if (Optional<int> width = parseHTMLNonNegativeInteger(element->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 < stepRange.minimum())
</span><span class="cx"> newValue = stepRange.minimum();
</span><span class="cx">
</span><del>- if (!equalLettersIgnoringASCIICase(element().fastGetAttribute(stepAttr), "any"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(element().attributeWithoutSynchronization(stepAttr), "any"))
</ins><span class="cx"> newValue = stepRange.alignValueForStep(current, newValue);
</span><span class="cx">
</span><span class="cx"> if (newValue - stepRange.maximum() > 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, "deny")) {
</span><span class="cx"> LOG(Media, "MediaElementSession::wirelessVideoPlaybackDisabled - returning TRUE because of legacy attribute");
</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<const StepRange::StepDescription> 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<const StepRange::StepDescription> 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<double>::max for number input type.
</span><span class="cx"> const Decimal floatMax = Decimal::fromDouble(std::numeric_limits<float>::max());
</span><span class="cx"> const Element& element = this->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 = [&] (const QualifiedName& attributeName, const Decimal& defaultValue) -> Decimal {
</span><del>- const AtomicString& attributeValue = element.fastGetAttribute(attributeName);
</del><ins>+ const AtomicString& 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& stepString = element().fastGetAttribute(stepAttr);
</del><ins>+ auto& stepString = element().attributeWithoutSynchronization(stepAttr);
</ins><span class="cx"> if (equalLettersIgnoringASCIICase(stepString, "any"))
</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<const StepRange::StepDescription> 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& precisionValue = element().fastGetAttribute(precisionAttr);
</del><ins>+ const AtomicString& precisionValue = element().attributeWithoutSynchronization(precisionAttr);
</ins><span class="cx"> if (!precisionValue.isNull()) {
</span><span class="cx"> const Decimal step = equalLettersIgnoringASCIICase(precisionValue, "float") ? 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 "any". 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), "any") ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step();
</del><ins>+ const Decimal step = equalLettersIgnoringASCIICase(element().attributeWithoutSynchronization(stepAttr), "any") ? (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& list, bool multipart) const
</span><span class="cx"> {
</span><span class="cx"> InputType::appendFormData(list, multipart);
</span><del>- const AtomicString& dirnameAttrValue = element().fastGetAttribute(dirnameAttr);
</del><ins>+ const AtomicString& 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& attribute = m_autoFillButton->fastGetAttribute(pseudoAttr);
</del><ins>+ const AtomicString& attribute = m_autoFillButton->attributeWithoutSynchronization(pseudoAttr);
</ins><span class="cx"> bool shouldUpdateAutoFillButtonType = isAutoFillButtonTypeChanged(attribute, element().autoFillButtonType());
</span><span class="cx"> if (shouldUpdateAutoFillButtonType) {
</span><span class="cx"> m_autoFillButton->setPseudo(autoFillButtonTypeToAutoFillButtonPseudoClassName(element().autoFillButtonType()));
</span></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<const StepRange::StepDescription> 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& title = m_element->fastGetAttribute(titleAttr);
</del><ins>+ const AtomicString& title = m_element->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<const StepRange::StepDescription> 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->setAttributeWithoutSynchronization(HTMLNames::titleAttr, fastGetAttribute(voiceAttributeName()));
- htmlElement->setAttributeWithoutSynchronization(HTMLNames::langAttr, fastGetAttribute(langAttributeName()));
</del><ins>+ htmlElement->setAttributeWithoutSynchronization(HTMLNames::titleAttr, attributeWithoutSynchronization(voiceAttributeName()));
+ htmlElement->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->setAttributeWithoutSynchronization(HTMLNames::classAttr, fastGetAttribute(HTMLNames::classAttr));
</del><ins>+ htmlElement->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->ownerElement()) {
</span><span class="cx"> String name = frame->ownerElement()->getNameAttribute();
</span><span class="cx"> if (name.isEmpty())
</span><del>- name = frame->ownerElement()->fastGetAttribute(HTMLNames::idAttr);
</del><ins>+ name = frame->ownerElement()->attributeWithoutSynchronization(HTMLNames::idAttr);
</ins><span class="cx"> frameObject->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->fastGetAttribute(formactionAttr)).isNull())
</del><ins>+ if (!(attributeValue = submitButton->attributeWithoutSynchronization(formactionAttr)).isNull())
</ins><span class="cx"> copiedAttributes.parseAction(attributeValue);
</span><del>- if (!(attributeValue = submitButton->fastGetAttribute(formenctypeAttr)).isNull())
</del><ins>+ if (!(attributeValue = submitButton->attributeWithoutSynchronization(formenctypeAttr)).isNull())
</ins><span class="cx"> copiedAttributes.updateEncodingType(attributeValue);
</span><del>- if (!(attributeValue = submitButton->fastGetAttribute(formmethodAttr)).isNull())
</del><ins>+ if (!(attributeValue = submitButton->attributeWithoutSynchronization(formmethodAttr)).isNull())
</ins><span class="cx"> copiedAttributes.updateMethodType(attributeValue);
</span><del>- if (!(attributeValue = submitButton->fastGetAttribute(formtargetAttr)).isNull())
</del><ins>+ if (!(attributeValue = submitButton->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()->fastGetAttribute(srcdocAttr);
</del><ins>+ String srcdoc = m_frame.ownerElement()->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(&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, "use-credentials") ? 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& contentSecurityPolicy = *document()->contentSecurityPolicy();
</span><span class="cx">
</span><span class="cx"> String declaredMimeType = document()->isPluginDocument() && document()->ownerElement() ?
</span><del>- document()->ownerElement()->fastGetAttribute(HTMLNames::typeAttr) : pluginElement.fastGetAttribute(HTMLNames::typeAttr);
</del><ins>+ document()->ownerElement()->attributeWithoutSynchronization(HTMLNames::typeAttr) : pluginElement.attributeWithoutSynchronization(HTMLNames::typeAttr);
</ins><span class="cx"> bool isInUserAgentShadowTree = pluginElement.isInUserAgentShadowTree();
</span><span class="cx"> return contentSecurityPolicy.allowObjectFromSource(url, isInUserAgentShadowTree) && 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& colSpanValue = fastGetAttribute(columnspanAttr);
</del><ins>+ const AtomicString& 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& rowSpanValue = fastGetAttribute(rowspanAttr);
</del><ins>+ const AtomicString& 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& child) const
</span><span class="cx"> {
</span><span class="cx"> if (hasTagName(annotation_xmlTag)) {
</span><del>- const AtomicString& value = fastGetAttribute(MathMLNames::encodingAttr);
</del><ins>+ const AtomicString& 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& href = fastGetAttribute(hrefAttr);
</del><ins>+ const AtomicString& href = attributeWithoutSynchronization(hrefAttr);
</ins><span class="cx"> String url = stripLeadingAndTrailingHTMLSpaces(href);
</span><span class="cx"> event->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& MathMLElement::cachedMathMLLength(const QualifiedName& name, Length& 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 "medium" is the default thickness.
</span><span class="cx"> // However, it only states that "thin" and "thick" 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, "thin")) {
</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, "left"))
</span><span class="cx"> alignment.value = FractionAlignmentLeft;
</span><span class="cx"> else if (equalLettersIgnoringASCIICase(value, "right"))
</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 < selection; i++) {
</span><span class="cx"> auto* nextChild = selectedChild->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& actiontype = fastGetAttribute(MathMLNames::actiontypeAttr);
</del><ins>+ const AtomicString& actiontype = attributeWithoutSynchronization(MathMLNames::actiontypeAttr);
</ins><span class="cx"> if (actiontype == "statusline")
</span><span class="cx"> // FIXME: implement user interaction for the "statusline" action type (http://wkbug/124922).
</span><span class="cx"> { }
</span><span class="lines">@@ -185,7 +185,7 @@
</span><span class="cx"> if (child->hasAttribute(MathMLNames::srcAttr))
</span><span class="cx"> continue;
</span><span class="cx"> // If the <annotation-xml> 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& value = child->fastGetAttribute(MathMLNames::encodingAttr);
</del><ins>+ const AtomicString& value = child->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->type() == eventNames().clickEvent) {
</span><del>- if (fastGetAttribute(MathMLNames::actiontypeAttr) == "toggle") {
</del><ins>+ if (attributeWithoutSynchronization(MathMLNames::actiontypeAttr) == "toggle") {
</ins><span class="cx"> toggle();
</span><span class="cx"> event->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) == "toggle" || MathMLInlineContainerElement::willRespondToMouseClickEvents();
</del><ins>+ return attributeWithoutSynchronization(MathMLNames::actiontypeAttr) == "toggle" || 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<Element>(*target) ? downcast<Element>(target) : target->parentElement();
</span><span class="cx"> for (; element; element = element->parentElement()) {
</span><del>- SpaceSplitString keywords(element->fastGetAttribute(webkitdropzoneAttr), true);
</del><ins>+ SpaceSplitString keywords(element->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 < 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->fastGetAttribute(idAttr));
</del><ins>+ return matchLabelsAgainstString(labels, element->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<HTMLImageElement>(element)) {
</span><span class="cx"> HTMLImageElement& imageElement = downcast<HTMLImageElement>(element);
</span><del>- URL url = document->completeURL(imageElement.fastGetAttribute(HTMLNames::srcAttr));
</del><ins>+ URL url = document->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<HTMLLinkElement>(element)) {
</span><span class="cx"> HTMLLinkElement& linkElement = downcast<HTMLLinkElement>(element);
</span><span class="cx"> if (CSSStyleSheet* sheet = linkElement.sheet()) {
</span><del>- URL url = document->completeURL(linkElement.fastGetAttribute(HTMLNames::hrefAttr));
</del><ins>+ URL url = document->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->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<HTMLImageElement>(*m_innerNonSharedNode)) {
</span><span class="cx"> HTMLImageElement& image = downcast<HTMLImageElement>(*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<HTMLInputElement>(*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->node())
</span><span class="cx"> continue;
</span><span class="cx"> if (is<HTMLDetailsElement>(*renderer->node()))
</span><del>- return !downcast<HTMLDetailsElement>(*renderer->node()).fastGetAttribute(openAttr).isNull();
</del><ins>+ return !downcast<HTMLDetailsElement>(*renderer->node()).attributeWithoutSynchronization(openAttr).isNull();
</ins><span class="cx"> if (is<HTMLInputElement>(*renderer->node()))
</span><span class="cx"> return true;
</span><span class="cx"> }
</span></span></pre></div>
<a id="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<HTMLImageElement>(element()) ? downcast<HTMLImageElement>(element()) : nullptr;
</span><del>- return image ? image->treeScope().getImageMap(image->fastGetAttribute(usemapAttr)) : nullptr;
</del><ins>+ return image ? image->treeScope().getImageMap(image->attributeWithoutSynchronization(usemapAttr)) : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& 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<HTMLElement*>& listItems = selectElement().listItems();
</span><span class="cx"> if (listIndex >= listItems.size())
</span><span class="cx"> return String();
</span><del>- return listItems[listIndex]->fastGetAttribute(aria_labelAttr);
</del><ins>+ return listItems[listIndex]->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& 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& attachment, float& 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& 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<RenderMathMLMath>(renderer))
</span><del>- m_displayStyle = downcast<RenderElement>(renderer)->element()->fastGetAttribute(displayAttr) == "block"; // The default displaystyle of the <math> element depends on its display attribute.
</del><ins>+ m_displayStyle = downcast<RenderElement>(renderer)->element()->attributeWithoutSynchronization(displayAttr) == "block"; // The default displaystyle of the <math> element depends on its display attribute.
</ins><span class="cx"> else if (is<RenderMathMLTable>(renderer))
</span><span class="cx"> m_displayStyle = false; // The default displaystyle of <mtable> is false.
</span><span class="cx"> else if (parentRenderer) {
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx"> const QualifiedName& tagName = element->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& attributeValue = element->fastGetAttribute(displaystyleAttr);
</del><ins>+ const AtomicString& attributeValue = element->attributeWithoutSynchronization(displaystyleAttr);
</ins><span class="cx"> if (attributeValue == "true")
</span><span class="cx"> m_displayStyle = true;
</span><span class="cx"> else if (attributeValue == "false")
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx">
</span><span class="cx"> // The mathvariant attribute on the <math>, <mstyle> or token elements overrides the default behavior.
</span><span class="cx"> if (is<RenderMathMLMath>(renderer) || is<RenderMathMLToken>(renderer) || tagName == mstyleTag) {
</span><del>- MathVariant mathvariant = parseMathVariant(element->fastGetAttribute(mathvariantAttr));
</del><ins>+ MathVariant mathvariant = parseMathVariant(element->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& 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 < 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& 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& 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& form = element().fastGetAttribute(MathMLNames::formAttr);
</del><ins>+ const AtomicString& form = element().attributeWithoutSynchronization(MathMLNames::formAttr);
</ins><span class="cx"> if (form == "prefix")
</span><span class="cx"> m_operatorForm = MathMLOperatorDictionary::Prefix;
</span><span class="cx"> else if (form == "infix")
</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, &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, &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, &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, &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, &style(), false);
- const AtomicString& maxsize = element().fastGetAttribute(MathMLNames::maxsizeAttr);
</del><ins>+ parseMathMLLength(element().attributeWithoutSynchronization(MathMLNames::minsizeAttr), m_minSize, &style(), false);
+ const AtomicString& maxsize = element().attributeWithoutSynchronization(MathMLNames::maxsizeAttr);
</ins><span class="cx"> if (maxsize != "infinity")
</span><span class="cx"> parseMathMLLength(maxsize, m_maxSize, &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()->fastGetAttribute(MathMLNames::subscriptshiftAttr), specifiedMinSubShift, &style(), false);
</del><ins>+ parseMathMLLength(element()->attributeWithoutSynchronization(MathMLNames::subscriptshiftAttr), specifiedMinSubShift, &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()->fastGetAttribute(MathMLNames::superscriptshiftAttr), specifiedMinSupShift, &style(), false);
</del><ins>+ parseMathMLLength(element()->attributeWithoutSynchronization(MathMLNames::superscriptshiftAttr), specifiedMinSupShift, &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 && m_scriptType == Under) || (!accentUnder && m_scriptType == Over));
</span><span class="cx">
</span><del>- const AtomicString& attributeValue = element()->fastGetAttribute(accentUnder ? accentunderAttr : accentAttr);
</del><ins>+ const AtomicString& attributeValue = element()->attributeWithoutSynchronization(accentUnder ? accentunderAttr : accentAttr);
</ins><span class="cx"> if (attributeValue == "true")
</span><span class="cx"> return true;
</span><span class="cx"> if (attributeValue == "false")
</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& 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& title = fastGetAttribute(XLinkNames::titleAttr);
</del><ins>+ const AtomicString& 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->target();
</span><del>- if (target.isEmpty() && fastGetAttribute(XLinkNames::showAttr) == "new")
</del><ins>+ if (target.isEmpty() && attributeWithoutSynchronization(XLinkNames::showAttr) == "new")
</ins><span class="cx"> target = "_blank";
</span><span class="cx"> event->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& 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&, ExceptionCode& ec)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">
</span><span class="cx"> const AtomicString& 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& 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<const AtomicString> sum("sum", AtomicString::ConstructFromLiteral);
</span><del>- const AtomicString& value = fastGetAttribute(SVGNames::additiveAttr);
</del><ins>+ const AtomicString& 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<const AtomicString> sum("sum", AtomicString::ConstructFromLiteral);
</span><del>- const AtomicString& value = fastGetAttribute(SVGNames::accumulateAttr);
</del><ins>+ const AtomicString& value = attributeWithoutSynchronization(SVGNames::accumulateAttr);
</ins><span class="cx"> return value == sum && 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& value, ExceptionCode&)
</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& value = fastGetAttribute(units_per_emAttr);
</del><ins>+ const AtomicString& 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<int>(ceilf(fastGetAttribute(x_heightAttr).toFloat()));
</del><ins>+ return static_cast<int>(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<int>(ceilf(fastGetAttribute(cap_heightAttr).toFloat()));
</del><ins>+ return static_cast<int>(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 "0" were specified.
</span><del>- return m_fontElement->fastGetAttribute(horiz_origin_xAttr).toFloat();
</del><ins>+ return m_fontElement->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 "0" were specified.
</span><del>- return m_fontElement->fastGetAttribute(horiz_origin_yAttr).toFloat();
</del><ins>+ return m_fontElement->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->fastGetAttribute(horiz_adv_xAttr).toFloat();
</del><ins>+ return m_fontElement->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& value = m_fontElement->fastGetAttribute(vert_origin_xAttr);
</del><ins>+ const AtomicString& value = m_fontElement->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& value = m_fontElement->fastGetAttribute(vert_origin_yAttr);
</del><ins>+ const AtomicString& value = m_fontElement->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& value = m_fontElement->fastGetAttribute(vert_adv_yAttr);
</del><ins>+ const AtomicString& value = m_fontElement->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& ascentValue = fastGetAttribute(ascentAttr);
</del><ins>+ const AtomicString& ascentValue = attributeWithoutSynchronization(ascentAttr);
</ins><span class="cx"> if (!ascentValue.isEmpty())
</span><span class="cx"> return static_cast<int>(ceilf(ascentValue.toFloat()));
</span><span class="cx">
</span><span class="cx"> if (m_fontElement) {
</span><del>- const AtomicString& vertOriginY = m_fontElement->fastGetAttribute(vert_origin_yAttr);
</del><ins>+ const AtomicString& vertOriginY = m_fontElement->attributeWithoutSynchronization(vert_origin_yAttr);
</ins><span class="cx"> if (!vertOriginY.isEmpty())
</span><span class="cx"> return static_cast<int>(unitsPerEm()) - static_cast<int>(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& descentValue = fastGetAttribute(descentAttr);
</del><ins>+ const AtomicString& 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& vertOriginY = m_fontElement->fastGetAttribute(vert_origin_yAttr);
</del><ins>+ const AtomicString& vertOriginY = m_fontElement->attributeWithoutSynchronization(vert_origin_yAttr);
</ins><span class="cx"> if (!vertOriginY.isEmpty())
</span><span class="cx"> return static_cast<int>(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<CSSFontFaceSrcValue> 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<CSSFontFaceSrcValue> 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() ? "svg" : 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& 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&, ExceptionCode&)
</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& 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() && g1.isEmpty()) || (u2.isEmpty() && g2.isEmpty()))
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> && parseKerningUnicodeString(u1, kerningPair.unicodeRange1, kerningPair.unicodeName1)
</span><span class="cx"> && parseKerningUnicodeString(u2, kerningPair.unicodeRange2, kerningPair.unicodeName2)) {
</span><span class="cx"> bool ok = false;
</span><del>- kerningPair.kerning = fastGetAttribute(SVGNames::kAttr).string().toFloat(&ok);
</del><ins>+ kerningPair.kerning = attributeWithoutSynchronization(SVGNames::kAttr).string().toFloat(&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& SVGSVGElement::contentScriptType() const
</span><span class="cx"> {
</span><span class="cx"> static NeverDestroyed<AtomicString> defaultScriptType { "text/ecmascript" };
</span><del>- const AtomicString& type = fastGetAttribute(SVGNames::contentScriptTypeAttr);
</del><ins>+ const AtomicString& 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& SVGSVGElement::contentStyleType() const
</span><span class="cx"> {
</span><span class="cx"> static NeverDestroyed<AtomicString> defaultStyleType { "text/css" };
</span><del>- const AtomicString& type = fastGetAttribute(SVGNames::contentStyleTypeAttr);
</del><ins>+ const AtomicString& 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& SVGStyleElement::media() const
</span><span class="cx"> {
</span><span class="cx"> static NeverDestroyed<const AtomicString> defaultValue("all", AtomicString::ConstructFromLiteral);
</span><del>- const AtomicString& n = fastGetAttribute(SVGNames::mediaAttr);
</del><ins>+ const AtomicString& 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& title, ExceptionCode&)
</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(&ok);
</del><ins>+ int value = m_fontElement.attributeWithoutSynchronization(SVGNames::horiz_adv_xAttr).toInt(&ok);
</ins><span class="cx"> if (!ok && m_missingGlyphElement)
</span><del>- value = m_missingGlyphElement->fastGetAttribute(SVGNames::horiz_adv_xAttr).toInt(&ok);
</del><ins>+ value = m_missingGlyphElement->attributeWithoutSynchronization(SVGNames::horiz_adv_xAttr).toInt(&ok);
</ins><span class="cx"> value = scaleUnitsPerEm(value);
</span><span class="cx"> if (ok)
</span><span class="cx"> averageAdvance = clampTo<int16_t>(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<String> segments;
</span><del>- m_fontFaceElement->fastGetAttribute(SVGNames::panose_1Attr).string().split(' ', segments);
</del><ins>+ m_fontFaceElement->attributeWithoutSynchronization(SVGNames::panose_1Attr).string().split(' ', segments);
</ins><span class="cx"> if (segments.size() == panoseSize) {
</span><span class="cx"> for (auto& 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& potentialWeight = m_fontFaceElement->fastGetAttribute(SVGNames::font_weightAttr);
</del><ins>+ auto& potentialWeight = m_fontFaceElement->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& pair : m_codepointsToIndicesMap) {
</span><span class="cx"> for (auto glyphIndex : pair.value) {
</span><span class="cx"> auto& glyph = m_glyphs[glyphIndex];
</span><del>- if (glyph.glyphElement && equalIgnoringASCIICase(glyph.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), arabicForm))
</del><ins>+ if (glyph.glyphElement && equalIgnoringASCIICase(glyph.glyphElement->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(&ok);
</del><ins>+ int defaultVerticalOriginY = m_fontElement.attributeWithoutSynchronization(SVGNames::vert_origin_yAttr).toInt(&ok);
</ins><span class="cx"> if (!ok && m_missingGlyphElement)
</span><del>- defaultVerticalOriginY = m_missingGlyphElement->fastGetAttribute(SVGNames::vert_origin_yAttr).toInt();
</del><ins>+ defaultVerticalOriginY = m_missingGlyphElement->attributeWithoutSynchronization(SVGNames::vert_origin_yAttr).toInt();
</ins><span class="cx"> defaultVerticalOriginY = scaleUnitsPerEm(defaultVerticalOriginY);
</span><span class="cx"> append16(clampTo<int16_t>(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 < m_glyphs.size(); ++i) {
</span><span class="cx"> if (auto* glyph = m_glyphs[i].glyphElement) {
</span><del>- if (int verticalOriginY = glyph->fastGetAttribute(SVGNames::vert_origin_yAttr).toInt()) {
</del><ins>+ if (int verticalOriginY = glyph->attributeWithoutSynchronization(SVGNames::vert_origin_yAttr).toInt()) {
</ins><span class="cx"> append16(i);
</span><span class="cx"> append16(clampTo<int16_t>(scaleUnitsPerEm(verticalOriginY)));
</span><span class="cx"> }
</span><span class="lines">@@ -1254,7 +1254,7 @@
</span><span class="cx"> {
</span><span class="cx"> Vector<char> result;
</span><span class="cx">
</span><del>- auto& dAttribute = glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::dAttr);
</del><ins>+ auto& 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(&ok));
</del><ins>+ float horizontalOriginX = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::horiz_origin_xAttr).toFloat(&ok));
</ins><span class="cx"> if (!ok && m_fontFaceElement)
</span><span class="cx"> horizontalOriginX = scaleUnitsPerEm(m_fontFaceElement->horizontalOriginX());
</span><del>- float horizontalOriginY = scaleUnitsPerEm(glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::horiz_origin_yAttr).toFloat(&ok));
</del><ins>+ float horizontalOriginY = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::horiz_origin_yAttr).toFloat(&ok));
</ins><span class="cx"> if (!ok && m_fontFaceElement)
</span><span class="cx"> horizontalOriginY = scaleUnitsPerEm(m_fontFaceElement->horizontalOriginY());
</span><span class="cx">
</span><span class="lines">@@ -1289,11 +1289,11 @@
</span><span class="cx"> void SVGToOTFFontConverter::processGlyphElement(const SVGElement& glyphOrMissingGlyphElement, const SVGGlyphElement* glyphElement, float defaultHorizontalAdvance, float defaultVerticalAdvance, const String& codepoints, Optional<FloatRect>& boundingBox)
</span><span class="cx"> {
</span><span class="cx"> bool ok;
</span><del>- float horizontalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.fastGetAttribute(SVGNames::horiz_adv_xAttr).toFloat(&ok));
</del><ins>+ float horizontalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::horiz_adv_xAttr).toFloat(&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(&ok));
</del><ins>+ float verticalAdvance = scaleUnitsPerEm(glyphOrMissingGlyphElement.attributeWithoutSynchronization(SVGNames::vert_adv_yAttr).toFloat(&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() && iterator2 == codePoints2.end()) {
</span><del>- bool firstIsIsolated = data1.glyphElement && equalLettersIgnoringASCIICase(data1.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
- bool secondIsIsolated = data2.glyphElement && equalLettersIgnoringASCIICase(data2.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
</del><ins>+ bool firstIsIsolated = data1.glyphElement && equalLettersIgnoringASCIICase(data1.glyphElement->attributeWithoutSynchronization(SVGNames::arabic_formAttr), "isolated");
+ bool secondIsIsolated = data2.glyphElement && equalLettersIgnoringASCIICase(data2.glyphElement->attributeWithoutSynchronization(SVGNames::arabic_formAttr), "isolated");
</ins><span class="cx"> return firstIsIsolated && !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& glyphElement : childrenOfType<SVGGlyphElement>(m_fontElement)) {
</span><del>- auto& unicodeAttribute = glyphElement.fastGetAttribute(SVGNames::unicodeAttr);
</del><ins>+ auto& 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, &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 < m_glyphs.size(); ++i) {
</span><span class="cx"> GlyphData& glyph = m_glyphs[i];
</span><span class="cx"> if (glyph.glyphElement) {
</span><del>- auto& glyphName = glyph.glyphElement->fastGetAttribute(SVGNames::glyph_nameAttr);
</del><ins>+ auto& glyphName = glyph.glyphElement->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& glyphVector = m_codepointsToIndicesMap.add(glyph.codepoints, Vector<Glyph>()).iterator->value;
</span><span class="cx"> // Prefer isolated arabic forms
</span><del>- if (glyph.glyphElement && equalLettersIgnoringASCIICase(glyph.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated"))
</del><ins>+ if (glyph.glyphElement && equalLettersIgnoringASCIICase(glyph.glyphElement->attributeWithoutSynchronization(SVGNames::arabic_formAttr), "isolated"))
</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<String> segments;
</span><del>- m_fontFaceElement->fastGetAttribute(SVGNames::font_weightAttr).string().split(' ', segments);
</del><ins>+ m_fontFaceElement->attributeWithoutSynchronization(SVGNames::font_weightAttr).string().split(' ', segments);
</ins><span class="cx"> for (auto& segment : segments) {
</span><span class="cx"> if (equalLettersIgnoringASCIICase(segment, "bold")) {
</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->fastGetAttribute(SVGNames::font_styleAttr).string().split(' ', segments);
</del><ins>+ m_fontFaceElement->attributeWithoutSynchronization(SVGNames::font_styleAttr).string().split(' ', segments);
</ins><span class="cx"> for (auto& segment : segments) {
</span><span class="cx"> if (equalLettersIgnoringASCIICase(segment, "italic") || equalLettersIgnoringASCIICase(segment, "oblique")) {
</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& 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() && g1.isEmpty()) || (u2.isEmpty() && g2.isEmpty()))
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> && parseKerningUnicodeString(u1, kerningPair.unicodeRange1, kerningPair.unicodeName1)
</span><span class="cx"> && parseKerningUnicodeString(u2, kerningPair.unicodeRange2, kerningPair.unicodeName2)) {
</span><span class="cx"> bool ok = false;
</span><del>- kerningPair.kerning = fastGetAttribute(SVGNames::kAttr).string().toFloat(&ok);
</del><ins>+ kerningPair.kerning = attributeWithoutSynchronization(SVGNames::kAttr).string().toFloat(&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 <use> 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<const AtomicString> never("never", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<const AtomicString> whenNotActive("whenNotActive", AtomicString::ConstructFromLiteral);
</span><del>- const AtomicString& value = fastGetAttribute(SVGNames::restartAttr);
</del><ins>+ const AtomicString& 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<const AtomicString> freeze("freeze", AtomicString::ConstructFromLiteral);
</span><del>- const AtomicString& value = fastGetAttribute(SVGNames::fillAttr);
</del><ins>+ const AtomicString& 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& value = fastGetAttribute(SVGNames::durAttr);
</del><ins>+ const AtomicString& value = attributeWithoutSynchronization(SVGNames::durAttr);
</ins><span class="cx"> SMILTime clockValue = parseClockValue(value);
</span><span class="cx"> return m_cachedDur = clockValue <= 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& value = fastGetAttribute(SVGNames::repeatDurAttr);
</del><ins>+ const AtomicString& value = attributeWithoutSynchronization(SVGNames::repeatDurAttr);
</ins><span class="cx"> SMILTime clockValue = parseClockValue(value);
</span><span class="cx"> m_cachedRepeatDur = clockValue <= 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& value = fastGetAttribute(SVGNames::repeatCountAttr);
</del><ins>+ const AtomicString& 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& value = fastGetAttribute(SVGNames::maxAttr);
</del><ins>+ const AtomicString& value = attributeWithoutSynchronization(SVGNames::maxAttr);
</ins><span class="cx"> SMILTime result = parseClockValue(value);
</span><span class="cx"> return m_cachedMax = (result.isUnresolved() || result <= 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& value = fastGetAttribute(SVGNames::minAttr);
</del><ins>+ const AtomicString& value = attributeWithoutSynchronization(SVGNames::minAttr);
</ins><span class="cx"> SMILTime result = parseClockValue(value);
</span><span class="cx"> return m_cachedMin = (result.isUnresolved() || result < 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 <rniwa@webkit.org>
+
+ 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 <cdumez@apple.com>
</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->fastGetAttribute(nameAttr));
</del><ins>+ String resultFromNameAttribute = matchLabelsAgainstString(labels, element->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->fastGetAttribute(idAttr));
</del><ins>+ return matchLabelsAgainstString(labels, element->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 <rniwa@webkit.org>
+
+ 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 <cdumez@apple.com>
</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<HTMLElement>(m_element));
</span><del>- String idString = downcast<HTMLElement>(m_element)->fastGetAttribute(idAttr);
</del><ins>+ String idString = downcast<HTMLElement>(m_element)->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 <rniwa@webkit.org>
+
+ 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 <timothy@apple.com>
</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->document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkElement->getAttribute(HTMLNames::hrefAttr))) absoluteString];
</span><del>- info.title = element->fastGetAttribute(HTMLNames::titleAttr).string();
</del><ins>+ info.title = element->attributeWithoutSynchronization(HTMLNames::titleAttr).string();
</ins><span class="cx"> if (linkElement && info.title.isEmpty())
</span><span class="cx"> info.title = element->innerText();
</span><span class="cx"> if (element->renderer())
</span><span class="lines">@@ -2438,9 +2438,9 @@
</span><span class="cx"> if (!linkElement)
</span><span class="cx"> m_interactionNode->document().frame()->editor().writeImageToPasteboard(*Pasteboard::createForCopyAndPaste(), element, URL(), String());
</span><span class="cx"> else
</span><del>- m_interactionNode->document().frame()->editor().copyURL(linkElement->document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkElement->fastGetAttribute(HTMLNames::hrefAttr))), linkElement->textContent());
</del><ins>+ m_interactionNode->document().frame()->editor().copyURL(linkElement->document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkElement->attributeWithoutSynchronization(HTMLNames::hrefAttr))), linkElement->textContent());
</ins><span class="cx"> } else if (element.isLink()) {
</span><del>- m_interactionNode->document().frame()->editor().copyURL(element.document().completeURL(stripLeadingAndTrailingHTMLSpaces(element.fastGetAttribute(HTMLNames::hrefAttr))), element.textContent());
</del><ins>+ m_interactionNode->document().frame()->editor().copyURL(element.document().completeURL(stripLeadingAndTrailingHTMLSpaces(element.attributeWithoutSynchronization(HTMLNames::hrefAttr))), element.textContent());
</ins><span class="cx"> }
</span><span class="cx"> } else if (static_cast<SheetAction>(action) == SheetAction::SaveImage) {
</span><span class="cx"> if (!is<RenderImage>(*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& pattern = element.fastGetAttribute(HTMLNames::patternAttr);
</del><ins>+ const AtomicString& pattern = element.attributeWithoutSynchronization(HTMLNames::patternAttr);
</ins><span class="cx"> if (pattern == "\\d*" || pattern == "[0-9]*")
</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>- && (element.getNameAttribute().contains("search") || element.getIdAttribute().contains("search") || element.fastGetAttribute(HTMLNames::titleAttr).contains("search")))
</del><ins>+ && (element.getNameAttribute().contains("search") || element.getIdAttribute().contains("search") || element.attributeWithoutSynchronization(HTMLNames::titleAttr).contains("search")))
</ins><span class="cx"> information.elementType = InputType::Search;
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>