<!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>[195452] 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/195452">195452</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2016-01-22 09:17:04 -0800 (Fri, 22 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Reduce use of equalIgnoringCase to just ignore ASCII case
https://bugs.webkit.org/show_bug.cgi?id=153266

Reviewed by Ryosuke Niwa.

Source/WebCore:

Changed many call sites that were using equalIgnoringCase to instead use
equalLettersIgnoringASCIICase. What these all have in common is that the
thing they are comparing with is a string literal that has all lowercase
letters, spaces, and a few simple examples of punctuation.

Not 100% sure that the new function name is just right, but it's a long name
so it's easy to change it with a global replace if we come up with a better one.

Or if we decide ther eis no need for the &quot;letters&quot; optimization, we can change
these all to just use equalIgnoringASCIICase, also with a global replace.

Also made a few tweaks to some code nearby and some includes.

* Modules/encryptedmedia/CDMPrivateClearKey.cpp:
(WebCore::CDMPrivateClearKey::supportsKeySystem): Use equalLettersIgnoringASCIICase.
(WebCore::CDMPrivateClearKey::supportsKeySystemAndMimeType): Ditto.
* Modules/encryptedmedia/CDMSessionClearKey.cpp:
(WebCore::CDMSessionClearKey::update): Ditto.
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::supportsMimeType): Ditto.
(WebCore::YouTubePluginReplacement::supportsFileExtension): Ditto.
* Modules/webdatabase/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::createVTable): Ditto.
(WebCore::DatabaseAuthorizer::dropVTable): Ditto.
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::readHTTPHeaders): Ditto.
(WebCore::WebSocketHandshake::checkResponseHeaders): Ditto.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::findAriaModalNodes): Ditto.
(WebCore::AXObjectCache::handleMenuItemSelected): Ditto.
(WebCore::AXObjectCache::handleAriaModalChange): Ditto.
(WebCore::isNodeAriaVisible): Ditto.
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::isEnabled): Ditto.

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAccessibilityRole): Use isColorControl
instead of checking the typeAttr of the HTMLInputElement directly.
(WebCore::AccessibilityNodeObject::isEnabled): Use equalLettersIgnoringASCIICase.
(WebCore::AccessibilityNodeObject::isPressed): Ditto.
(WebCore::AccessibilityNodeObject::isChecked): Ditto.
(WebCore::AccessibilityNodeObject::isMultiSelectable): Ditto.
(WebCore::AccessibilityNodeObject::isRequired): Ditto.
(WebCore::shouldUseAccessibilityObjectInnerText): Ditto.
(WebCore::AccessibilityNodeObject::colorValue): Ditto.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
Use equalLettersIgnoringASCIICase.
(WebCore::AccessibilityObject::ariaIsMultiline): Ditto.
(WebCore::AccessibilityObject::liveRegionStatusIsEnabled): Ditto.
(WebCore::AccessibilityObject::sortDirection): Ditto.
(WebCore::AccessibilityObject::supportsARIAPressed): Ditto.
(WebCore::AccessibilityObject::supportsExpanded): Ditto.
(WebCore::AccessibilityObject::isExpanded): Ditto.
(WebCore::AccessibilityObject::checkboxOrRadioValue): Ditto.
(WebCore::AccessibilityObject::isARIAHidden): Ditto.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::supportsARIADragging): Ditto.
(WebCore::AccessibilityRenderObject::defaultObjectInclusion): Ditto.
(WebCore::AccessibilityRenderObject::elementAttributeValue): Ditto.
(WebCore::AccessibilityRenderObject::isSelected): Ditto.
(WebCore::AccessibilityRenderObject::determineAccessibilityRole): Ditto.
(WebCore::AccessibilityRenderObject::orientation): Ditto.
(WebCore::AccessibilityRenderObject::canSetExpandedAttribute): Ditto.
(WebCore::AccessibilityRenderObject::canSetValueAttribute): Ditto.
(WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic): Ditto.

* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::ariaRowSpan): Use == to compare a string
with &quot;0&quot; since there is no need to &quot;ignore case&quot; when there are no letters.

* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcValue::create): Use equalLettersIgnoringASCIICase.

* css/CSSCalculationValue.h: Removed unneeded include of CSSParserValues.h.
* css/CSSCustomPropertyValue.h: Ditto.

* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc): Use equalLettersIgnoringASCIICase.

* css/CSSGrammar.y.in: Use equalLettersIgnoringASCIICase. Also restructured the code
a bit to have more normal formatting and reordered it slightly.

* css/CSSParser.cpp:
(WebCore::equal): Deleted.
(WebCore::equalIgnoringCase): Deleted.
(WebCore::equalLettersIgnoringASCIICase): Added. Replaces function templates named
equal and equalIgnoringCase that are no longer used.
(WebCore::CSSParser::parseValue): Use equalLettersIgnoringASCIICase.
(WebCore::CSSParser::parseNonElementSnapPoints): Ditto.
(WebCore::CSSParser::parseAlt): Ditto.
(WebCore::CSSParser::parseContent): Ditto.
(WebCore::CSSParser::parseFillImage): Ditto.
(WebCore::CSSParser::parseAnimationName): Ditto.
(WebCore::CSSParser::parseAnimationTrigger): Ditto.
(WebCore::CSSParser::parseAnimationProperty): Ditto.
(WebCore::CSSParser::parseKeyframeSelector): Ditto.
(WebCore::CSSParser::parseAnimationTimingFunction): Ditto.
(WebCore::CSSParser::parseGridTrackList): Ditto.
(WebCore::CSSParser::parseGridTrackSize): Ditto.
(WebCore::CSSParser::parseDashboardRegions): Ditto.
(WebCore::CSSParser::parseClipShape): Ditto.
(WebCore::CSSParser::parseBasicShapeInset): Ditto.
(WebCore::CSSParser::parseBasicShape): Ditto.
(WebCore::CSSParser::parseFontFaceSrcURI): Ditto.
(WebCore::CSSParser::parseFontFaceSrc): Ditto.
(WebCore::CSSParser::isCalculation): Ditto.
(WebCore::CSSParser::parseColorFromValue): Ditto.
(WebCore::CSSParser::parseBorderImage): Ditto.
(WebCore::parseDeprecatedGradientPoint): Ditto.
(WebCore::parseDeprecatedGradientColorStop): Ditto.
(WebCore::CSSParser::parseDeprecatedGradient): Ditto.
(WebCore::CSSParser::parseLinearGradient): Ditto.
(WebCore::CSSParser::parseRadialGradient): Ditto.
(WebCore::CSSParser::isGeneratedImageValue): Ditto.
(WebCore::CSSParser::parseGeneratedImage): Ditto.
(WebCore::filterInfoForName): Ditto.
(WebCore::validFlowName): Ditto.
(WebCore::CSSParser::realLex): Ditto.
(WebCore::isValidNthToken): Ditto.
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::parsePagePseudoSelector): Ditto.

* css/CSSParserValues.h:
(WebCore::equalLettersIgnoringASCIICase): Added.

* css/CSSVariableDependentValue.h: Removed unneeded include of CSSParserValues.h.

* css/MediaList.cpp:
(WebCore::reportMediaQueryWarningIfNeeded): Use equalLettersIgnoringASCIICase.
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::mediaTypeMatch): Ditto.
(WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific): Ditto.
(WebCore::evalResolution): Ditto.

* css/SelectorPseudoTypeMap.h: Removed unneeded include of CSSParserValues.h.

* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertTouchCallout): Use equalLettersIgnoringASCIICase.

* css/makeSelectorPseudoClassAndCompatibilityElementMap.py: Added an include of
CSSParserValues.h since it's no longer included by SelectorPseudoTypeMap.h.

* dom/Document.cpp:
(WebCore::setParserFeature): Use equalLettersIgnoringASCIICase.
(WebCore::Document::processReferrerPolicy): Ditto.
(WebCore::Document::createEvent): Ditto.
(WebCore::Document::parseDNSPrefetchControlHeader): Ditto.

* dom/Element.cpp:
(WebCore::Element::spellcheckAttributeState): Use isNull instead of doing
checking equality with nullAtom. Use isEmpty instead of equalIgnoringCase(&quot;&quot;).
Use equalLettersIgnoringASCIICase.
(WebCore::Element::canContainRangeEndPoint): Ditto.

* dom/InlineStyleSheetOwner.cpp:
(WebCore::isValidCSSContentType): Use equalLettersIgnoringASCIICase.
Added comment about peculiar behavior where we do case-sensitive processing of
the MIME type if the document is XML.

* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript): Use equalLettersIgnoringASCIICase.
(WebCore::ScriptElement::isScriptForEventSupported): Ditto.
* dom/SecurityContext.cpp:
(WebCore::SecurityContext::parseSandboxPolicy): Ditto.
* dom/ViewportArguments.cpp:
(WebCore::findSizeValue): Ditto.
(WebCore::findScaleValue): Ditto.
(WebCore::findBooleanValue): Ditto.

* editing/EditorCommand.cpp:
(WebCore::executeDefaultParagraphSeparator): Use equalLettersIgnoringASCIICase.
(WebCore::executeInsertBacktab): Use ASCIILiteral.
(WebCore::executeInsertHTML): Use emptyString.
(WebCore::executeInsertLineBreak): Use ASCIILiteral.
(WebCore::executeInsertNewline): Ditto.
(WebCore::executeInsertTab): Ditto.
(WebCore::executeJustifyCenter): Ditto.
(WebCore::executeJustifyFull): Ditto.
(WebCore::executeJustifyLeft): Ditto.
(WebCore::executeJustifyRight): Ditto.
(WebCore::executeStrikethrough): Ditto.
(WebCore::executeStyleWithCSS): Use equalLettersIgnoringASCIICase.
(WebCore::executeUseCSS): Ditto.
(WebCore::executeSubscript): Use ASCIILiteral.
(WebCore::executeSuperscript): Ditto.
(WebCore::executeToggleBold): Ditto.
(WebCore::executeToggleItalic): Ditto.
(WebCore::executeUnderline): Ditto.
(WebCore::executeUnscript): Ditto.
(WebCore::stateBold): Ditto.
(WebCore::stateItalic): Ditto.
(WebCore::stateStrikethrough): Ditto.
(WebCore::stateSubscript): Ditto.
(WebCore::stateSuperscript): Ditto.
(WebCore::stateUnderline): Ditto.
(WebCore::stateJustifyCenter): Ditto.
(WebCore::stateJustifyFull): Ditto.
(WebCore::stateJustifyLeft): Ditto.
(WebCore::stateJustifyRight): Ditto.
(WebCore::valueFormatBlock): Use emptyString.
(WebCore::Editor::Command::value): Use ASCIILiteral.

* editing/TextIterator.cpp:
(WebCore::isRendererReplacedElement): Use equalLettersIgnoringASCIICase.

* fileapi/Blob.cpp:
(WebCore::Blob::isNormalizedContentType): Use isASCIIUpper.

* history/HistoryItem.cpp:
(WebCore::HistoryItem::setFormInfoFromRequest): Use equalLettersIgnoringASCIICase.

* html/Autocapitalize.cpp:
(WebCore::valueOn): Deleted.
(WebCore::valueOff): Deleted.
(WebCore::valueNone): Deleted.
(WebCore::valueWords): Deleted.
(WebCore::valueSentences): Deleted.
(WebCore::valueAllCharacters): Deleted.
(WebCore::autocapitalizeTypeForAttributeValue): Use equalLettersIgnoringASCIICase.
(WebCore::stringForAutocapitalizeType): Put the AtomicString globals right in the
switch statement instead of in separate functions.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::draggable): Use equalLettersIgnoringASCIICase.
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::parseAttribute): Ditto.
* html/HTMLBRElement.cpp:
(WebCore::HTMLBRElement::collectStyleForPresentationAttribute): Ditto.
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): Ditto.
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::parseAttribute): Ditto.

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toDataURL): Use ASCIILiteral.

* html/HTMLDivElement.cpp:
(WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
Use equalLettersIgnoringASCIICase.

* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::designMode): Use ASCIILiteral.
(WebCore::HTMLDocument::setDesignMode): Use equalLettersIgnoringASCIICase.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::nodeName): Updated comment.
(WebCore::isLTROrRTLIgnoringCase): Use equalLettersIgnoringASCIICase.
(WebCore::contentEditableType): Ditto.
(WebCore::HTMLElement::collectStyleForPresentationAttribute): Ditto.
(WebCore::toValidDirValue): Ditto.
(WebCore::HTMLElement::insertAdjacent): Ditto.
(WebCore::contextElementForInsertion): Ditto.
(WebCore::HTMLElement::applyAlignmentAttributeToStyle): Ditto.
(WebCore::HTMLElement::setContentEditable): Ditto.
(WebCore::HTMLElement::draggable): Ditto.
(WebCore::HTMLElement::translateAttributeMode): Ditto.
(WebCore::HTMLElement::hasDirectionAuto): Ditto.
(WebCore::HTMLElement::directionality): Ditto.
(WebCore::HTMLElement::dirAttributeChanged): Ditto.
(WebCore::HTMLElement::addHTMLColorToStyle): Ditto.
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute): Ditto.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::autocorrect): Ditto.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::autocorrect): Ditto.
(WebCore::HTMLFormElement::shouldAutocomplete): Ditto.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute): Ditto.

* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseAttribute): Use equalLettersIgnoringASCIICase.
Use == when comparing with &quot;0&quot; and &quot;1&quot; since there is no need for case folding.

* html/HTMLHRElement.cpp:
(WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
Use equalLettersIgnoringASCIICase.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::draggable): Ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute): Ditto.
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::appendFormData): Ditto.
* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute): Ditto.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Ditto.
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process): Ditto.

* html/HTMLObjectElement.cpp:
(WebCore::mapDataParamToSrc): Use references, modern for loops, simplify
logic to not use array indices, use ASCIILiteral and equalLettersIgnoringASCIICase.
(WebCore::HTMLObjectElement::parametersForPlugin): Update to call new function.
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Use equalLettersIgnoringASCIICase.
(WebCore::HTMLObjectElement::containsJavaApplet): Ditto.
* html/HTMLParagraphElement.cpp:
(WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute): Ditto.
* html/HTMLParamElement.cpp:
(WebCore::HTMLParamElement::isURLParameter): Ditto.
* html/HTMLTableElement.cpp:
(WebCore::getBordersFromFrameAttributeValue): Ditto.
(WebCore::HTMLTableElement::collectStyleForPresentationAttribute): Ditto.
(WebCore::HTMLTableElement::parseAttribute): Ditto.
* html/HTMLTablePartElement.cpp:
(WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute): Ditto.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::parseAttribute): Ditto.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setRangeText): Ditto.
(WebCore::HTMLTextFormControlElement::directionForFormData): Ditto.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseAttribute): Ditto.
* html/InputType.cpp:
(WebCore::InputType::applyStep): Ditto.
* html/LinkRelAttribute.cpp:
(WebCore::LinkRelAttribute::LinkRelAttribute): Ditto.
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled): Ditto.
* html/NumberInputType.cpp:
(WebCore::NumberInputType::sizeShouldIncludeDecoration): Ditto.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createStepRange): Ditto.
(WebCore::RangeInputType::handleKeydownEvent): Ditto.
* html/StepRange.cpp:
(WebCore::StepRange::parseStep): Ditto.
* html/canvas/CanvasStyle.cpp:
(WebCore::parseColor): Ditto.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype): Ditto.
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::isHTMLIntegrationPoint): Ditto.
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes): Ditto.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Ditto.
(WebCore::TokenPreloadScanner::StartTagScanner::crossOriginModeAllowsCookies): Ditto.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody): Ditto.
(WebCore::HTMLTreeBuilder::processStartTagForInTable): Ditto.
* html/parser/XSSAuditor.cpp:
(WebCore::isDangerousHTTPEquiv): Ditto.

* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::hasRequiredFileIdentifier): Removed unneeded special case
for empty string.

* inspector/InspectorPageAgent.cpp:
(WebCore::createXHRTextDecoder): Use equalLettersIgnoringASCIICase.
* inspector/NetworkResourcesData.cpp:
(WebCore::createOtherResourceTextDecoder): Ditto.
* loader/CrossOriginAccessControl.cpp:
(WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): Ditto.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::continueAfterContentPolicy): Ditto.
* loader/FormSubmission.cpp:
(WebCore::appendMailtoPostFormDataToURL): Ditto.
(WebCore::FormSubmission::Attributes::parseEncodingType): Ditto.
(WebCore::FormSubmission::Attributes::parseMethodType): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldPerformFragmentNavigation): Ditto.
(WebCore::FrameLoader::shouldTreatURLAsSrcdocDocument): Ditto.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Ditto.
* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::start): Ditto.
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::createJavaAppletWidget): Ditto.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::determineContentType): Ditto.
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::load): Ditto.
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet): Ditto.
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::canUseSheet): Ditto.
* loader/cache/CachedResource.cpp:
(WebCore::shouldCacheSchemeIndefinitely): Ditto.
* page/DOMSelection.cpp:
(WebCore::DOMSelection::modify): Ditto.
* page/EventSource.cpp:
(WebCore::EventSource::didReceiveResponse): Ditto.
* page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor): Ditto.
* page/Performance.cpp:
(WebCore::Performance::webkitGetEntriesByType): Ditto.
* page/PerformanceResourceTiming.cpp:
(WebCore::passesTimingAllowCheck): Ditto.

* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin): Use emptyString.
(WebCore::SecurityOrigin::toString): Use ASCIILiteral.
(WebCore::SecurityOrigin::databaseIdentifier): Ditto.

* page/UserContentURLPattern.cpp:
(WebCore::UserContentURLPattern::parse): Use equalLettersIgnoringASCIICase.
(WebCore::UserContentURLPattern::matches): Ditto.
* platform/URL.cpp:
(WebCore::URL::protocolIs): Ditto.

* platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType):
Changed to use early exit and equalLettersIgnoringASCIICase. Added comment
about inconsistency with next function.
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType): Added comment
about inconsistency with previous function.

* platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
(WebCore::CDMSessionAVContentKeySession::generateKeyRequest):
Use equalLettersIgnoringASCIICase.
* platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
(WebCore::CDMSessionAVStreamSession::generateKeyRequest): Ditto.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::utiFromMIMEType): Ditto.

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::similarFont): Changed to not use so many global
variables and use equalLettersIgnoringASCIICase.
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::platformFontWithFamilySpecialCase): Ditto.

* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::supportsFormat): Use equalLettersIgnoringASCIICase.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::readString): Ditto.
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::createAsync): Ditto.
(WebCore::BlobResourceHandle::loadResourceSynchronously): Ditto.
* platform/network/CacheValidation.cpp:
(WebCore::parseCacheControlDirectives): Ditto.
* platform/network/FormData.h:
(WebCore::FormData::parseEncodingType): Ditto.
* platform/network/HTTPParsers.cpp:
(WebCore::contentDispositionType): Ditto.
(WebCore::parseXFrameOptionsHeader): Ditto.

* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isHTTP): Use protocolIsInHTTPFamily, which is
both clearer and more efficient.
(WebCore::ResourceResponseBase::isAttachment): Rewrite to be a bit more terse
and use equalLettersIgnoringASCIICase.

* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegate::createResourceRequest):
Use equalLettersIgnoringASCIICase.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::willSendRequest): Ditto.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open): Ditto.
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::isColumnDeclaredAsBlob): Ditto.

* platform/text/TextEncodingRegistry.cpp:
(WebCore::defaultTextEncodingNameForSystemLanguage): Use ASCIILiteral
and equalLettersIgnoringASCIICase.

* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::updateFromElement): Use equalLettersIgnoringASCIICase.
* svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically): Ditto.
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Ditto.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setEditingBehavior): Ditto.
(WebCore::InternalSettings::setShouldDisplayTrackKind): Ditto.
(WebCore::InternalSettings::shouldDisplayTrackKind): Ditto.
* testing/Internals.cpp:
(WebCore::markerTypeFrom): Ditto.
(WebCore::markerTypesFrom): Ditto.
(WebCore::Internals::mediaElementHasCharacteristic): Ditto.
(WebCore::Internals::setCaptionDisplayMode): Ditto.
(WebCore::Internals::beginMediaSessionInterruption): Ditto.
(WebCore::Internals::endMediaSessionInterruption): Ditto.
(WebCore::Internals::setMediaSessionRestrictions): Ditto.
(WebCore::Internals::setMediaElementRestrictions): Ditto.
(WebCore::Internals::postRemoteControlCommand): Ditto.
(WebCore::Internals::setAudioContextRestrictions): Ditto.
(WebCore::Internals::setMockMediaPlaybackTargetPickerState): Ditto.
* testing/MockCDM.cpp:
(WebCore::MockCDM::supportsKeySystem): Ditto.
(WebCore::MockCDM::supportsKeySystemAndMimeType): Ditto.
(WebCore::MockCDM::supportsMIMEType): Ditto.
* xml/XMLHttpRequest.cpp:
(WebCore::isSetCookieHeader): Ditto.
(WebCore::XMLHttpRequest::responseXML): Ditto.
(WebCore::XMLHttpRequest::isAllowedHTTPMethod): Ditto.
(WebCore::XMLHttpRequest::didReceiveData): Ditto.

Source/WebKit:

* Storage/StorageTracker.cpp:
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
Removed extraneous unneeded &quot;, true&quot; in call to String::endsWith.
Preparation for later removing the boolean argument.

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin): Use equalLettersIgnoringASCIICase.

Source/WebKit2:

* UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::hasOnlySecureContent): Use the protocolIs
function from WebCore instead of calling startsWith.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::initialize): Use equalLettersIgnoringASCIICase.

Source/WTF:

* wtf/ASCIICType.h:
(WTF::isASCIIAlphaCaselessEqual): Loosened the assertion in this function
so it can work with ASCII spaces, numeric digits, and some punctuation.
Commented that we might want to change its name later.

* wtf/Assertions.cpp:
(WTFInitializeLogChannelStatesFromString): Use equalLettersIgnoringASCIICase.

* wtf/text/AtomicString.h:
(WTF::equalLettersIgnoringASCIICase): Added. Calls the version that takes a String.

* wtf/text/StringCommon.h:
(WTF::equalLettersIgnoringASCIICase): Added. Takes a pointer to characters.
(WTF::equalLettersIgnoringASCIICaseCommonWithoutLength): Added.
(WTF::equalLettersIgnoringASCIICaseCommon): Added.

* wtf/text/StringImpl.h:
(WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon.

* wtf/text/StringView.h:
(WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon.

* wtf/text/WTFString.h: Reordered/reformatted a little.
(WTF::equalIgnoringASCIICase): Added. Calls the version that takes a StringImpl.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfASCIICTypeh">trunk/Source/WTF/wtf/ASCIICType.h</a></li>
<li><a href="#trunkSourceWTFwtfAssertionscpp">trunk/Source/WTF/wtf/Assertions.cpp</a></li>
<li><a href="#trunkSourceWTFwtftextAtomicStringh">trunk/Source/WTF/wtf/text/AtomicString.h</a></li>
<li><a href="#trunkSourceWTFwtftextStringCommonh">trunk/Source/WTF/wtf/text/StringCommon.h</a></li>
<li><a href="#trunkSourceWTFwtftextStringImplh">trunk/Source/WTF/wtf/text/StringImpl.h</a></li>
<li><a href="#trunkSourceWTFwtftextStringViewh">trunk/Source/WTF/wtf/text/StringView.h</a></li>
<li><a href="#trunkSourceWTFwtftextWTFStringh">trunk/Source/WTF/wtf/text/WTFString.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaCDMPrivateClearKeycpp">trunk/Source/WebCore/Modules/encryptedmedia/CDMPrivateClearKey.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaCDMSessionClearKeycpp">trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp">trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebdatabaseDatabaseAuthorizercpp">trunk/Source/WebCore/Modules/webdatabase/DatabaseAuthorizer.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketHandshakecpp">trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAXObjectCachecpp">trunk/Source/WebCore/accessibility/AXObjectCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityListBoxOptioncpp">trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.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="#trunkSourceWebCoreaccessibilityAccessibilityTableCellcpp">trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSCalculationValuecpp">trunk/Source/WebCore/css/CSSCalculationValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSCalculationValueh">trunk/Source/WebCore/css/CSSCalculationValue.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSCustomPropertyValueh">trunk/Source/WebCore/css/CSSCustomPropertyValue.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceSrcValuecpp">trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSGrammaryin">trunk/Source/WebCore/css/CSSGrammar.y.in</a></li>
<li><a href="#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSParserValuescpp">trunk/Source/WebCore/css/CSSParserValues.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSParserValuesh">trunk/Source/WebCore/css/CSSParserValues.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSVariableDependentValueh">trunk/Source/WebCore/css/CSSVariableDependentValue.h</a></li>
<li><a href="#trunkSourceWebCorecssMediaListcpp">trunk/Source/WebCore/css/MediaList.cpp</a></li>
<li><a href="#trunkSourceWebCorecssMediaQueryEvaluatorcpp">trunk/Source/WebCore/css/MediaQueryEvaluator.cpp</a></li>
<li><a href="#trunkSourceWebCorecssSelectorPseudoTypeMaph">trunk/Source/WebCore/css/SelectorPseudoTypeMap.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorecssmakeSelectorPseudoClassAndCompatibilityElementMappy">trunk/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</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="#trunkSourceWebCoredomSecurityContextcpp">trunk/Source/WebCore/dom/SecurityContext.cpp</a></li>
<li><a href="#trunkSourceWebCoredomViewportArgumentscpp">trunk/Source/WebCore/dom/ViewportArguments.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorCommandcpp">trunk/Source/WebCore/editing/EditorCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTextIteratorcpp">trunk/Source/WebCore/editing/TextIterator.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiBlobcpp">trunk/Source/WebCore/fileapi/Blob.cpp</a></li>
<li><a href="#trunkSourceWebCorehistoryHistoryItemcpp">trunk/Source/WebCore/history/HistoryItem.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlAutocapitalizecpp">trunk/Source/WebCore/html/Autocapitalize.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAreaElementcpp">trunk/Source/WebCore/html/HTMLAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLBRElementcpp">trunk/Source/WebCore/html/HTMLBRElement.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="#trunkSourceWebCorehtmlHTMLDivElementcpp">trunk/Source/WebCore/html/HTMLDivElement.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="#trunkSourceWebCorehtmlHTMLFrameSetElementcpp">trunk/Source/WebCore/html/HTMLFrameSetElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLHRElementcpp">trunk/Source/WebCore/html/HTMLHRElement.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="#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="#trunkSourceWebCorehtmlHTMLObjectElementcpp">trunk/Source/WebCore/html/HTMLObjectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLParagraphElementcpp">trunk/Source/WebCore/html/HTMLParagraphElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLParamElementcpp">trunk/Source/WebCore/html/HTMLParamElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableElementcpp">trunk/Source/WebCore/html/HTMLTableElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTablePartElementcpp">trunk/Source/WebCore/html/HTMLTablePartElement.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="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlInputTypecpp">trunk/Source/WebCore/html/InputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlLinkRelAttributecpp">trunk/Source/WebCore/html/LinkRelAttribute.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaElementSessioncpp">trunk/Source/WebCore/html/MediaElementSession.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="#trunkSourceWebCorehtmlStepRangecpp">trunk/Source/WebCore/html/StepRange.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasStylecpp">trunk/Source/WebCore/html/canvas/CanvasStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLConstructionSitecpp">trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLElementStackcpp">trunk/Source/WebCore/html/parser/HTMLElementStack.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLMetaCharsetParsercpp">trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLPreloadScannercpp">trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTreeBuildercpp">trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserXSSAuditorcpp">trunk/Source/WebCore/html/parser/XSSAuditor.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackWebVTTParsercpp">trunk/Source/WebCore/html/track/WebVTTParser.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgentcpp">trunk/Source/WebCore/inspector/InspectorPageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorNetworkResourcesDatacpp">trunk/Source/WebCore/inspector/NetworkResourcesData.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderCrossOriginAccessControlcpp">trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderDocumentLoadercpp">trunk/Source/WebCore/loader/DocumentLoader.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="#trunkSourceWebCoreloaderMediaResourceLoadercpp">trunk/Source/WebCore/loader/MediaResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderSubframeLoadercpp">trunk/Source/WebCore/loader/SubframeLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderTextResourceDecodercpp">trunk/Source/WebCore/loader/TextResourceDecoder.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderTextTrackLoadercpp">trunk/Source/WebCore/loader/TextTrackLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCachecpp">trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedCSSStyleSheetcpp">trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourcecpp">trunk/Source/WebCore/loader/cache/CachedResource.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMSelectioncpp">trunk/Source/WebCore/page/DOMSelection.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventSourcecpp">trunk/Source/WebCore/page/EventSource.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePerformancecpp">trunk/Source/WebCore/page/Performance.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceResourceTimingcpp">trunk/Source/WebCore/page/PerformanceResourceTiming.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSecurityOrigincpp">trunk/Source/WebCore/page/SecurityOrigin.cpp</a></li>
<li><a href="#trunkSourceWebCorepageUserContentURLPatterncpp">trunk/Source/WebCore/page/UserContentURLPattern.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformURLcpp">trunk/Source/WebCore/platform/URL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationCDMPrivateMediaSourceAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVContentKeySessionmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVStreamSessionmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscgImageBufferCGcpp">trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaFontCacheCoreTextcpp">trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsiosFontCacheIOSmm">trunk/Source/WebCore/platform/graphics/ios/FontCacheIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacFontCacheMacmm">trunk/Source/WebCore/platform/graphics/mac/FontCacheMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacFontCustomPlatformDatacpp">trunk/Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmacPasteboardMacmm">trunk/Source/WebCore/platform/mac/PasteboardMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp">trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkCacheValidationcpp">trunk/Source/WebCore/platform/network/CacheValidation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkFormDatah">trunk/Source/WebCore/platform/network/FormData.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkHTTPParserscpp">trunk/Source/WebCore/platform/network/HTTPParsers.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceResponseBasecpp">trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfResourceHandleCFURLConnectionDelegatecpp">trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm">trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformsqlSQLiteDatabasecpp">trunk/Source/WebCore/platform/sql/SQLiteDatabase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformsqlSQLiteStatementcpp">trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextTextEncodingRegistrycpp">trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGToOTFFontConversioncpp">trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalSettingscpp">trunk/Source/WebCore/testing/InternalSettings.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingMockCDMcpp">trunk/Source/WebCore/testing/MockCDM.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitStorageStorageTrackercpp">trunk/Source/WebKit/Storage/StorageTracker.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPageLoadStatecpp">trunk/Source/WebKit2/UIProcess/PageLoadState.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapeNetscapePlugincpp">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/ChangeLog        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2016-01-22  Darin Adler  &lt;darin@apple.com&gt;
+
+        Reduce use of equalIgnoringCase to just ignore ASCII case
+        https://bugs.webkit.org/show_bug.cgi?id=153266
+
+        Reviewed by Ryosuke Niwa.
+
+        * wtf/ASCIICType.h:
+        (WTF::isASCIIAlphaCaselessEqual): Loosened the assertion in this function
+        so it can work with ASCII spaces, numeric digits, and some punctuation.
+        Commented that we might want to change its name later.
+
+        * wtf/Assertions.cpp:
+        (WTFInitializeLogChannelStatesFromString): Use equalLettersIgnoringASCIICase.
+
+        * wtf/text/AtomicString.h:
+        (WTF::equalLettersIgnoringASCIICase): Added. Calls the version that takes a String.
+
+        * wtf/text/StringCommon.h:
+        (WTF::equalLettersIgnoringASCIICase): Added. Takes a pointer to characters.
+        (WTF::equalLettersIgnoringASCIICaseCommonWithoutLength): Added.
+        (WTF::equalLettersIgnoringASCIICaseCommon): Added.
+
+        * wtf/text/StringImpl.h:
+        (WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon.
+
+        * wtf/text/StringView.h:
+        (WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon.
+
+        * wtf/text/WTFString.h: Reordered/reformatted a little.
+        (WTF::equalIgnoringASCIICase): Added. Calls the version that takes a StringImpl.
+
</ins><span class="cx"> 2016-01-22  Csaba Osztrogonác  &lt;ossy@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Buildfix for older GCCs after r195142
</span></span></pre></div>
<a id="trunkSourceWTFwtfASCIICTypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/ASCIICType.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/ASCIICType.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/wtf/ASCIICType.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -189,7 +189,18 @@
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename CharacterType&gt; inline bool isASCIIAlphaCaselessEqual(CharacterType inputCharacter, char expectedASCIILowercaseLetter)
</span><span class="cx"> {
</span><del>-    ASSERT(isASCIILower(expectedASCIILowercaseLetter));
</del><ins>+    // Name of this argument says this must be a lowercase letter, but it can actually be:
+    //   - a lowercase letter
+    //   - a numeric digit
+    //   - a space
+    //   - punctuation in the range 0x21-0x3F, including &quot;-&quot;, &quot;/&quot;, and &quot;+&quot;
+    // It cannot be:
+    //   - an uppercase letter
+    //   - a non-ASCII character
+    //   - other punctuation, such as underscore and backslash
+    //   - a control character such as &quot;\n&quot;
+    // FIXME: Would be nice to make both the function name and expectedASCIILowercaseLetter argument name clearer.
+    ASSERT(toASCIILowerUnchecked(expectedASCIILowercaseLetter) == expectedASCIILowercaseLetter);
</ins><span class="cx">     return LIKELY(toASCIILowerUnchecked(inputCharacter) == expectedASCIILowercaseLetter);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFwtfAssertionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Assertions.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Assertions.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/wtf/Assertions.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -489,7 +489,7 @@
</span><span class="cx">             component = component.substring(1);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (equalIgnoringCase(component, &quot;all&quot;)) {
</del><ins>+        if (equalLettersIgnoringASCIICase(component, &quot;all&quot;)) {
</ins><span class="cx">             setStateOfAllChannels(channels, count, logChannelState);
</span><span class="cx">             continue;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWTFwtftextAtomicStringh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/AtomicString.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/AtomicString.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/wtf/text/AtomicString.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -223,8 +223,7 @@
</span><span class="cx"> inline bool equalIgnoringASCIICase(const AtomicString&amp; a, const String&amp; b) { return equalIgnoringASCIICase(a.impl(), b.impl()); }
</span><span class="cx"> inline bool equalIgnoringASCIICase(const String&amp; a, const AtomicString&amp; b) { return equalIgnoringASCIICase(a.impl(), b.impl()); }
</span><span class="cx"> 
</span><del>-template &lt;unsigned charactersCount&gt;
-inline bool equalIgnoringASCIICase(const AtomicString&amp; a, const char (&amp;b)[charactersCount]) { return equalIgnoringASCIICase&lt;charactersCount&gt;(a.impl(), b); }
</del><ins>+template&lt;unsigned length&gt; bool equalLettersIgnoringASCIICase(const AtomicString&amp;, const char (&amp;lowercaseLetters)[length]);
</ins><span class="cx"> 
</span><span class="cx"> inline AtomicString::AtomicString()
</span><span class="cx"> {
</span><span class="lines">@@ -336,6 +335,11 @@
</span><span class="cx">     typedef AtomicStringHash Hash;
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+template&lt;unsigned length&gt; inline bool equalLettersIgnoringASCIICase(const AtomicString&amp; string, const char (&amp;lowercaseLetters)[length])
+{
+    return equalLettersIgnoringASCIICase(string.string(), lowercaseLetters);
+}
+
</ins><span class="cx"> } // namespace WTF
</span><span class="cx"> 
</span><span class="cx"> #ifndef ATOMICSTRING_HIDE_GLOBALS
</span><span class="lines">@@ -351,4 +355,5 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/text/StringConcatenate.h&gt;
</span><ins>+
</ins><span class="cx"> #endif // AtomicString_h
</span></span></pre></div>
<a id="trunkSourceWTFwtftextStringCommonh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/StringCommon.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/StringCommon.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/wtf/text/StringCommon.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -31,6 +31,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WTF {
</span><span class="cx"> 
</span><ins>+template&lt;typename CharacterType&gt; bool equalLettersIgnoringASCIICase(const CharacterType*, const char* lowercaseLetters, unsigned length);
+template&lt;typename StringClass, unsigned length&gt; bool equalLettersIgnoringASCIICaseCommon(const StringClass&amp;, const char (&amp;lowercaseLetters)[length]);
+
</ins><span class="cx"> template&lt;typename T&gt;
</span><span class="cx"> inline T loadUnaligned(const char* s)
</span><span class="cx"> {
</span><span class="lines">@@ -545,6 +548,42 @@
</span><span class="cx">     return findInner(haystack.characters16() + start, needle.characters16(), start, searchLength, needleLength);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// This is marked inline since it's mostly used in non-inline functions for each string type.
+// When used directly in code it's probably OK to be inline; maybe the loop will be unrolled.
+template&lt;typename CharacterType&gt; inline bool equalLettersIgnoringASCIICase(const CharacterType* characters, const char* lowercaseLetters, unsigned length)
+{
+    for (unsigned i = 0; i &lt; length; ++i) {
+        if (!isASCIIAlphaCaselessEqual(characters[i], lowercaseLetters[i]))
+            return false;
+    }
+    return true;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// This is intentionally not marked inline because it's used often and is not speed-critical enough to want it inlined everywhere.
+template&lt;typename StringClass&gt; bool equalLettersIgnoringASCIICaseCommonWithoutLength(const StringClass&amp; string, const char* lowercaseLetters)
+{
+#if !ASSERT_DISABLED
+    ASSERT(*lowercaseLetters);
+    for (const char* letter = lowercaseLetters; *letter; ++letter)
+        ASSERT(toASCIILowerUnchecked(*letter) == *letter);
+#endif
+    unsigned length = string.length();
+    if (length != strlen(lowercaseLetters))
+        return false;
+    if (string.is8Bit())
+        return equalLettersIgnoringASCIICase(string.characters8(), lowercaseLetters, length);
+    return equalLettersIgnoringASCIICase(string.characters16(), lowercaseLetters, length);
+}
+
+template&lt;typename StringClass, unsigned length&gt; inline bool equalLettersIgnoringASCIICaseCommon(const StringClass&amp; string, const char (&amp;lowercaseLetters)[length])
+{
+    // Don't actually use the length; we are choosing code size over speed.
+    const char* pointer = lowercaseLetters;
+    return equalLettersIgnoringASCIICaseCommonWithoutLength(string, pointer);
+}
+
+}
+
+using WTF::equalLettersIgnoringASCIICase;
+
</ins><span class="cx"> #endif // StringCommon_h
</span></span></pre></div>
<a id="trunkSourceWTFwtftextStringImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/StringImpl.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/StringImpl.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/wtf/text/StringImpl.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -968,6 +968,9 @@
</span><span class="cx">     return a ? equalIgnoringASCIICase(*a, b, charactersCount - 1) : false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+template&lt;unsigned length&gt; bool equalLettersIgnoringASCIICase(const StringImpl&amp;, const char (&amp;lowercaseLetters)[length]);
+template&lt;unsigned length&gt; bool equalLettersIgnoringASCIICase(const StringImpl*, const char (&amp;lowercaseLetters)[length]);
+
</ins><span class="cx"> inline size_t find(const LChar* characters, unsigned length, CharacterMatchFunctionPtr matchFunction, unsigned index = 0)
</span><span class="cx"> {
</span><span class="cx">     while (index &lt; length) {
</span><span class="lines">@@ -1183,6 +1186,16 @@
</span><span class="cx">     typedef StringHash Hash;
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+template&lt;unsigned length&gt; inline bool equalLettersIgnoringASCIICase(const StringImpl&amp; string, const char (&amp;lowercaseLetters)[length])
+{
+    return equalLettersIgnoringASCIICaseCommon(string, lowercaseLetters);
+}
+
+template&lt;unsigned length&gt; inline bool equalLettersIgnoringASCIICase(const StringImpl* string, const char (&amp;lowercaseLetters)[length])
+{
+    return string &amp;&amp; equalLettersIgnoringASCIICase(*string, lowercaseLetters);
+}
+
</ins><span class="cx"> } // namespace WTF
</span><span class="cx"> 
</span><span class="cx"> using WTF::StringImpl;
</span></span></pre></div>
<a id="trunkSourceWTFwtftextStringViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/StringView.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/StringView.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/wtf/text/StringView.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -170,6 +170,8 @@
</span><span class="cx">     return equalIgnoringASCIICase(a, b, charactersCount - 1);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+template&lt;unsigned length&gt; bool equalLettersIgnoringASCIICase(StringView, const char (&amp;lowercaseLetters)[length]);
+
</ins><span class="cx"> inline bool operator==(StringView a, StringView b) { return equal(a, b); }
</span><span class="cx"> inline bool operator==(StringView a, const LChar* b) { return equal(a, b); }
</span><span class="cx"> inline bool operator==(StringView a, const char* b) { return equal(a, b); }
</span><span class="lines">@@ -704,6 +706,11 @@
</span><span class="cx">     return Iterator(m_stringView, m_stringView.length());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+template&lt;unsigned length&gt; inline bool equalLettersIgnoringASCIICase(StringView string, const char (&amp;lowercaseLetters)[length])
+{
+    return equalLettersIgnoringASCIICaseCommon(string, lowercaseLetters);
+}
+
</ins><span class="cx"> } // namespace WTF
</span><span class="cx"> 
</span><span class="cx"> using WTF::append;
</span></span></pre></div>
<a id="trunkSourceWTFwtftextWTFStringh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/WTFString.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/WTFString.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WTF/wtf/text/WTFString.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -492,10 +492,8 @@
</span><span class="cx"> inline bool operator==(const String&amp; a, const char* b) { return equal(a.impl(), reinterpret_cast&lt;const LChar*&gt;(b)); }
</span><span class="cx"> inline bool operator==(const LChar* a, const String&amp; b) { return equal(a, b.impl()); }
</span><span class="cx"> inline bool operator==(const char* a, const String&amp; b) { return equal(reinterpret_cast&lt;const LChar*&gt;(a), b.impl()); }
</span><del>-template&lt;size_t inlineCapacity&gt;
-inline bool operator==(const Vector&lt;char, inlineCapacity&gt;&amp; a, const String&amp; b) { return equal(b.impl(), a.data(), a.size()); }
-template&lt;size_t inlineCapacity&gt;
-inline bool operator==(const String&amp; a, const Vector&lt;char, inlineCapacity&gt;&amp; b) { return b == a; }
</del><ins>+template&lt;size_t inlineCapacity&gt; inline bool operator==(const Vector&lt;char, inlineCapacity&gt;&amp; a, const String&amp; b) { return equal(b.impl(), a.data(), a.size()); }
+template&lt;size_t inlineCapacity&gt; inline bool operator==(const String&amp; a, const Vector&lt;char, inlineCapacity&gt;&amp; b) { return b == a; }
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> inline bool operator!=(const String&amp; a, const String&amp; b) { return !equal(a.impl(), b.impl()); }
</span><span class="lines">@@ -503,10 +501,8 @@
</span><span class="cx"> inline bool operator!=(const String&amp; a, const char* b) { return !equal(a.impl(), reinterpret_cast&lt;const LChar*&gt;(b)); }
</span><span class="cx"> inline bool operator!=(const LChar* a, const String&amp; b) { return !equal(a, b.impl()); }
</span><span class="cx"> inline bool operator!=(const char* a, const String&amp; b) { return !equal(reinterpret_cast&lt;const LChar*&gt;(a), b.impl()); }
</span><del>-template&lt;size_t inlineCapacity&gt;
-inline bool operator!=(const Vector&lt;char, inlineCapacity&gt;&amp; a, const String&amp; b) { return !(a == b); }
-template&lt;size_t inlineCapacity&gt;
-inline bool operator!=(const String&amp; a, const Vector&lt;char, inlineCapacity&gt;&amp; b) { return b != a; }
</del><ins>+template&lt;size_t inlineCapacity&gt; inline bool operator!=(const Vector&lt;char, inlineCapacity&gt;&amp; a, const String&amp; b) { return !(a == b); }
+template&lt;size_t inlineCapacity&gt; inline bool operator!=(const String&amp; a, const Vector&lt;char, inlineCapacity&gt;&amp; b) { return b != a; }
</ins><span class="cx"> 
</span><span class="cx"> inline bool equalIgnoringCase(const String&amp; a, const String&amp; b) { return equalIgnoringCase(a.impl(), b.impl()); }
</span><span class="cx"> inline bool equalIgnoringCase(const String&amp; a, const LChar* b) { return equalIgnoringCase(a.impl(), b); }
</span><span class="lines">@@ -514,20 +510,16 @@
</span><span class="cx"> inline bool equalIgnoringCase(const LChar* a, const String&amp; b) { return equalIgnoringCase(a, b.impl()); }
</span><span class="cx"> inline bool equalIgnoringCase(const char* a, const String&amp; b) { return equalIgnoringCase(reinterpret_cast&lt;const LChar*&gt;(a), b.impl()); }
</span><span class="cx"> 
</span><ins>+bool equalPossiblyIgnoringCase(const String&amp;, const String&amp;, bool ignoreCase);
+
</ins><span class="cx"> inline bool equalIgnoringASCIICase(const String&amp; a, const String&amp; b) { return equalIgnoringASCIICase(a.impl(), b.impl()); }
</span><del>-template&lt;unsigned charactersCount&gt;
-inline bool equalIgnoringASCIICase(const String&amp; a, const char (&amp;b)[charactersCount]) { return equalIgnoringASCIICase&lt;charactersCount&gt;(a.impl(), b); }
</del><ins>+template&lt;unsigned charactersCount&gt; inline bool equalIgnoringASCIICase(const String&amp; a, const char (&amp;b)[charactersCount]) { return equalIgnoringASCIICase&lt;charactersCount&gt;(a.impl(), b); }
</ins><span class="cx"> 
</span><del>-inline bool equalPossiblyIgnoringCase(const String&amp; a, const String&amp; b, bool ignoreCase) 
-{
-    return ignoreCase ? equalIgnoringCase(a, b) : (a == b);
-}
</del><ins>+template&lt;unsigned length&gt; bool equalLettersIgnoringASCIICase(const String&amp;, const char (&amp;lowercaseLetters)[length]);
</ins><span class="cx"> 
</span><span class="cx"> inline bool equalIgnoringNullity(const String&amp; a, const String&amp; b) { return equalIgnoringNullity(a.impl(), b.impl()); }
</span><ins>+template&lt;size_t inlineCapacity&gt; inline bool equalIgnoringNullity(const Vector&lt;UChar, inlineCapacity&gt;&amp; a, const String&amp; b) { return equalIgnoringNullity(a, b.impl()); }
</ins><span class="cx"> 
</span><del>-template&lt;size_t inlineCapacity&gt;
-inline bool equalIgnoringNullity(const Vector&lt;UChar, inlineCapacity&gt;&amp; a, const String&amp; b) { return equalIgnoringNullity(a, b.impl()); }
-
</del><span class="cx"> inline bool operator!(const String&amp; str) { return str.isNull(); }
</span><span class="cx"> 
</span><span class="cx"> inline void swap(String&amp; a, String&amp; b) { a.swap(b); }
</span><span class="lines">@@ -676,6 +668,11 @@
</span><span class="cx">     return WTF::isAllSpecialCharacters&lt;isSpecialCharacter, UChar&gt;(characters16(), len);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline bool equalPossiblyIgnoringCase(const String&amp; a, const String&amp; b, bool ignoreCase)
+{
+    return ignoreCase ? equalIgnoringCase(a, b) : (a == b);
+}
+
</ins><span class="cx"> // StringHash is the default hash for String
</span><span class="cx"> template&lt;typename T&gt; struct DefaultHash;
</span><span class="cx"> template&lt;&gt; struct DefaultHash&lt;String&gt; {
</span><span class="lines">@@ -715,8 +712,13 @@
</span><span class="cx"> // Shared global empty string.
</span><span class="cx"> WTF_EXPORT_STRING_API const String&amp; emptyString();
</span><span class="cx"> 
</span><ins>+template&lt;unsigned length&gt; inline bool equalLettersIgnoringASCIICase(const String&amp; string, const char (&amp;lowercaseLetters)[length])
+{
+    return equalLettersIgnoringASCIICase(string.impl(), lowercaseLetters);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+}
+
</ins><span class="cx"> using WTF::CString;
</span><span class="cx"> using WTF::KeepTrailingZeros;
</span><span class="cx"> using WTF::String;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/ChangeLog        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1,3 +1,499 @@
</span><ins>+2016-01-22  Darin Adler  &lt;darin@apple.com&gt;
+
+        Reduce use of equalIgnoringCase to just ignore ASCII case
+        https://bugs.webkit.org/show_bug.cgi?id=153266
+
+        Reviewed by Ryosuke Niwa.
+
+        Changed many call sites that were using equalIgnoringCase to instead use
+        equalLettersIgnoringASCIICase. What these all have in common is that the
+        thing they are comparing with is a string literal that has all lowercase
+        letters, spaces, and a few simple examples of punctuation.
+
+        Not 100% sure that the new function name is just right, but it's a long name
+        so it's easy to change it with a global replace if we come up with a better one.
+
+        Or if we decide ther eis no need for the &quot;letters&quot; optimization, we can change
+        these all to just use equalIgnoringASCIICase, also with a global replace.
+
+        Also made a few tweaks to some code nearby and some includes.
+
+        * Modules/encryptedmedia/CDMPrivateClearKey.cpp:
+        (WebCore::CDMPrivateClearKey::supportsKeySystem): Use equalLettersIgnoringASCIICase.
+        (WebCore::CDMPrivateClearKey::supportsKeySystemAndMimeType): Ditto.
+        * Modules/encryptedmedia/CDMSessionClearKey.cpp:
+        (WebCore::CDMSessionClearKey::update): Ditto.
+        * Modules/plugins/YouTubePluginReplacement.cpp:
+        (WebCore::YouTubePluginReplacement::supportsMimeType): Ditto.
+        (WebCore::YouTubePluginReplacement::supportsFileExtension): Ditto.
+        * Modules/webdatabase/DatabaseAuthorizer.cpp:
+        (WebCore::DatabaseAuthorizer::createVTable): Ditto.
+        (WebCore::DatabaseAuthorizer::dropVTable): Ditto.
+        * Modules/websockets/WebSocketHandshake.cpp:
+        (WebCore::WebSocketHandshake::readHTTPHeaders): Ditto.
+        (WebCore::WebSocketHandshake::checkResponseHeaders): Ditto.
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::findAriaModalNodes): Ditto.
+        (WebCore::AXObjectCache::handleMenuItemSelected): Ditto.
+        (WebCore::AXObjectCache::handleAriaModalChange): Ditto.
+        (WebCore::isNodeAriaVisible): Ditto.
+        * accessibility/AccessibilityListBoxOption.cpp:
+        (WebCore::AccessibilityListBoxOption::isEnabled): Ditto.
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::determineAccessibilityRole): Use isColorControl
+        instead of checking the typeAttr of the HTMLInputElement directly.
+        (WebCore::AccessibilityNodeObject::isEnabled): Use equalLettersIgnoringASCIICase.
+        (WebCore::AccessibilityNodeObject::isPressed): Ditto.
+        (WebCore::AccessibilityNodeObject::isChecked): Ditto.
+        (WebCore::AccessibilityNodeObject::isMultiSelectable): Ditto.
+        (WebCore::AccessibilityNodeObject::isRequired): Ditto.
+        (WebCore::shouldUseAccessibilityObjectInnerText): Ditto.
+        (WebCore::AccessibilityNodeObject::colorValue): Ditto.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
+        Use equalLettersIgnoringASCIICase.
+        (WebCore::AccessibilityObject::ariaIsMultiline): Ditto.
+        (WebCore::AccessibilityObject::liveRegionStatusIsEnabled): Ditto.
+        (WebCore::AccessibilityObject::sortDirection): Ditto.
+        (WebCore::AccessibilityObject::supportsARIAPressed): Ditto.
+        (WebCore::AccessibilityObject::supportsExpanded): Ditto.
+        (WebCore::AccessibilityObject::isExpanded): Ditto.
+        (WebCore::AccessibilityObject::checkboxOrRadioValue): Ditto.
+        (WebCore::AccessibilityObject::isARIAHidden): Ditto.
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::supportsARIADragging): Ditto.
+        (WebCore::AccessibilityRenderObject::defaultObjectInclusion): Ditto.
+        (WebCore::AccessibilityRenderObject::elementAttributeValue): Ditto.
+        (WebCore::AccessibilityRenderObject::isSelected): Ditto.
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Ditto.
+        (WebCore::AccessibilityRenderObject::orientation): Ditto.
+        (WebCore::AccessibilityRenderObject::canSetExpandedAttribute): Ditto.
+        (WebCore::AccessibilityRenderObject::canSetValueAttribute): Ditto.
+        (WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic): Ditto.
+
+        * accessibility/AccessibilityTableCell.cpp:
+        (WebCore::AccessibilityTableCell::ariaRowSpan): Use == to compare a string
+        with &quot;0&quot; since there is no need to &quot;ignore case&quot; when there are no letters.
+
+        * css/CSSCalculationValue.cpp:
+        (WebCore::CSSCalcValue::create): Use equalLettersIgnoringASCIICase.
+
+        * css/CSSCalculationValue.h: Removed unneeded include of CSSParserValues.h.
+        * css/CSSCustomPropertyValue.h: Ditto.
+
+        * css/CSSFontFaceSrcValue.cpp:
+        (WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc): Use equalLettersIgnoringASCIICase.
+
+        * css/CSSGrammar.y.in: Use equalLettersIgnoringASCIICase. Also restructured the code
+        a bit to have more normal formatting and reordered it slightly.
+
+        * css/CSSParser.cpp:
+        (WebCore::equal): Deleted.
+        (WebCore::equalIgnoringCase): Deleted.
+        (WebCore::equalLettersIgnoringASCIICase): Added. Replaces function templates named
+        equal and equalIgnoringCase that are no longer used.
+        (WebCore::CSSParser::parseValue): Use equalLettersIgnoringASCIICase.
+        (WebCore::CSSParser::parseNonElementSnapPoints): Ditto.
+        (WebCore::CSSParser::parseAlt): Ditto.
+        (WebCore::CSSParser::parseContent): Ditto.
+        (WebCore::CSSParser::parseFillImage): Ditto.
+        (WebCore::CSSParser::parseAnimationName): Ditto.
+        (WebCore::CSSParser::parseAnimationTrigger): Ditto.
+        (WebCore::CSSParser::parseAnimationProperty): Ditto.
+        (WebCore::CSSParser::parseKeyframeSelector): Ditto.
+        (WebCore::CSSParser::parseAnimationTimingFunction): Ditto.
+        (WebCore::CSSParser::parseGridTrackList): Ditto.
+        (WebCore::CSSParser::parseGridTrackSize): Ditto.
+        (WebCore::CSSParser::parseDashboardRegions): Ditto.
+        (WebCore::CSSParser::parseClipShape): Ditto.
+        (WebCore::CSSParser::parseBasicShapeInset): Ditto.
+        (WebCore::CSSParser::parseBasicShape): Ditto.
+        (WebCore::CSSParser::parseFontFaceSrcURI): Ditto.
+        (WebCore::CSSParser::parseFontFaceSrc): Ditto.
+        (WebCore::CSSParser::isCalculation): Ditto.
+        (WebCore::CSSParser::parseColorFromValue): Ditto.
+        (WebCore::CSSParser::parseBorderImage): Ditto.
+        (WebCore::parseDeprecatedGradientPoint): Ditto.
+        (WebCore::parseDeprecatedGradientColorStop): Ditto.
+        (WebCore::CSSParser::parseDeprecatedGradient): Ditto.
+        (WebCore::CSSParser::parseLinearGradient): Ditto.
+        (WebCore::CSSParser::parseRadialGradient): Ditto.
+        (WebCore::CSSParser::isGeneratedImageValue): Ditto.
+        (WebCore::CSSParser::parseGeneratedImage): Ditto.
+        (WebCore::filterInfoForName): Ditto.
+        (WebCore::validFlowName): Ditto.
+        (WebCore::CSSParser::realLex): Ditto.
+        (WebCore::isValidNthToken): Ditto.
+        * css/CSSParserValues.cpp:
+        (WebCore::CSSParserSelector::parsePagePseudoSelector): Ditto.
+
+        * css/CSSParserValues.h:
+        (WebCore::equalLettersIgnoringASCIICase): Added.
+
+        * css/CSSVariableDependentValue.h: Removed unneeded include of CSSParserValues.h.
+
+        * css/MediaList.cpp:
+        (WebCore::reportMediaQueryWarningIfNeeded): Use equalLettersIgnoringASCIICase.
+        * css/MediaQueryEvaluator.cpp:
+        (WebCore::MediaQueryEvaluator::mediaTypeMatch): Ditto.
+        (WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific): Ditto.
+        (WebCore::evalResolution): Ditto.
+
+        * css/SelectorPseudoTypeMap.h: Removed unneeded include of CSSParserValues.h.
+
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertTouchCallout): Use equalLettersIgnoringASCIICase.
+
+        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py: Added an include of
+        CSSParserValues.h since it's no longer included by SelectorPseudoTypeMap.h.
+
+        * dom/Document.cpp:
+        (WebCore::setParserFeature): Use equalLettersIgnoringASCIICase.
+        (WebCore::Document::processReferrerPolicy): Ditto.
+        (WebCore::Document::createEvent): Ditto.
+        (WebCore::Document::parseDNSPrefetchControlHeader): Ditto.
+
+        * dom/Element.cpp:
+        (WebCore::Element::spellcheckAttributeState): Use isNull instead of doing
+        checking equality with nullAtom. Use isEmpty instead of equalIgnoringCase(&quot;&quot;).
+        Use equalLettersIgnoringASCIICase.
+        (WebCore::Element::canContainRangeEndPoint): Ditto.
+
+        * dom/InlineStyleSheetOwner.cpp:
+        (WebCore::isValidCSSContentType): Use equalLettersIgnoringASCIICase.
+        Added comment about peculiar behavior where we do case-sensitive processing of
+        the MIME type if the document is XML.
+
+        * dom/ScriptElement.cpp:
+        (WebCore::ScriptElement::requestScript): Use equalLettersIgnoringASCIICase.
+        (WebCore::ScriptElement::isScriptForEventSupported): Ditto.
+        * dom/SecurityContext.cpp:
+        (WebCore::SecurityContext::parseSandboxPolicy): Ditto.
+        * dom/ViewportArguments.cpp:
+        (WebCore::findSizeValue): Ditto.
+        (WebCore::findScaleValue): Ditto.
+        (WebCore::findBooleanValue): Ditto.
+
+        * editing/EditorCommand.cpp:
+        (WebCore::executeDefaultParagraphSeparator): Use equalLettersIgnoringASCIICase.
+        (WebCore::executeInsertBacktab): Use ASCIILiteral.
+        (WebCore::executeInsertHTML): Use emptyString.
+        (WebCore::executeInsertLineBreak): Use ASCIILiteral.
+        (WebCore::executeInsertNewline): Ditto.
+        (WebCore::executeInsertTab): Ditto.
+        (WebCore::executeJustifyCenter): Ditto.
+        (WebCore::executeJustifyFull): Ditto.
+        (WebCore::executeJustifyLeft): Ditto.
+        (WebCore::executeJustifyRight): Ditto.
+        (WebCore::executeStrikethrough): Ditto.
+        (WebCore::executeStyleWithCSS): Use equalLettersIgnoringASCIICase.
+        (WebCore::executeUseCSS): Ditto.
+        (WebCore::executeSubscript): Use ASCIILiteral.
+        (WebCore::executeSuperscript): Ditto.
+        (WebCore::executeToggleBold): Ditto.
+        (WebCore::executeToggleItalic): Ditto.
+        (WebCore::executeUnderline): Ditto.
+        (WebCore::executeUnscript): Ditto.
+        (WebCore::stateBold): Ditto.
+        (WebCore::stateItalic): Ditto.
+        (WebCore::stateStrikethrough): Ditto.
+        (WebCore::stateSubscript): Ditto.
+        (WebCore::stateSuperscript): Ditto.
+        (WebCore::stateUnderline): Ditto.
+        (WebCore::stateJustifyCenter): Ditto.
+        (WebCore::stateJustifyFull): Ditto.
+        (WebCore::stateJustifyLeft): Ditto.
+        (WebCore::stateJustifyRight): Ditto.
+        (WebCore::valueFormatBlock): Use emptyString.
+        (WebCore::Editor::Command::value): Use ASCIILiteral.
+
+        * editing/TextIterator.cpp:
+        (WebCore::isRendererReplacedElement): Use equalLettersIgnoringASCIICase.
+
+        * fileapi/Blob.cpp:
+        (WebCore::Blob::isNormalizedContentType): Use isASCIIUpper.
+
+        * history/HistoryItem.cpp:
+        (WebCore::HistoryItem::setFormInfoFromRequest): Use equalLettersIgnoringASCIICase.
+
+        * html/Autocapitalize.cpp:
+        (WebCore::valueOn): Deleted.
+        (WebCore::valueOff): Deleted.
+        (WebCore::valueNone): Deleted.
+        (WebCore::valueWords): Deleted.
+        (WebCore::valueSentences): Deleted.
+        (WebCore::valueAllCharacters): Deleted.
+        (WebCore::autocapitalizeTypeForAttributeValue): Use equalLettersIgnoringASCIICase.
+        (WebCore::stringForAutocapitalizeType): Put the AtomicString globals right in the
+        switch statement instead of in separate functions.
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::draggable): Use equalLettersIgnoringASCIICase.
+        * html/HTMLAreaElement.cpp:
+        (WebCore::HTMLAreaElement::parseAttribute): Ditto.
+        * html/HTMLBRElement.cpp:
+        (WebCore::HTMLBRElement::collectStyleForPresentationAttribute): Ditto.
+        * html/HTMLBodyElement.cpp:
+        (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): Ditto.
+        * html/HTMLButtonElement.cpp:
+        (WebCore::HTMLButtonElement::parseAttribute): Ditto.
+
+        * html/HTMLCanvasElement.cpp:
+        (WebCore::HTMLCanvasElement::toDataURL): Use ASCIILiteral.
+
+        * html/HTMLDivElement.cpp:
+        (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
+        Use equalLettersIgnoringASCIICase.
+
+        * html/HTMLDocument.cpp:
+        (WebCore::HTMLDocument::designMode): Use ASCIILiteral.
+        (WebCore::HTMLDocument::setDesignMode): Use equalLettersIgnoringASCIICase.
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::nodeName): Updated comment.
+        (WebCore::isLTROrRTLIgnoringCase): Use equalLettersIgnoringASCIICase.
+        (WebCore::contentEditableType): Ditto.
+        (WebCore::HTMLElement::collectStyleForPresentationAttribute): Ditto.
+        (WebCore::toValidDirValue): Ditto.
+        (WebCore::HTMLElement::insertAdjacent): Ditto.
+        (WebCore::contextElementForInsertion): Ditto.
+        (WebCore::HTMLElement::applyAlignmentAttributeToStyle): Ditto.
+        (WebCore::HTMLElement::setContentEditable): Ditto.
+        (WebCore::HTMLElement::draggable): Ditto.
+        (WebCore::HTMLElement::translateAttributeMode): Ditto.
+        (WebCore::HTMLElement::hasDirectionAuto): Ditto.
+        (WebCore::HTMLElement::directionality): Ditto.
+        (WebCore::HTMLElement::dirAttributeChanged): Ditto.
+        (WebCore::HTMLElement::addHTMLColorToStyle): Ditto.
+        * html/HTMLEmbedElement.cpp:
+        (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute): Ditto.
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::autocorrect): Ditto.
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::autocorrect): Ditto.
+        (WebCore::HTMLFormElement::shouldAutocomplete): Ditto.
+        * html/HTMLFrameElementBase.cpp:
+        (WebCore::HTMLFrameElementBase::parseAttribute): Ditto.
+
+        * html/HTMLFrameSetElement.cpp:
+        (WebCore::HTMLFrameSetElement::parseAttribute): Use equalLettersIgnoringASCIICase.
+        Use == when comparing with &quot;0&quot; and &quot;1&quot; since there is no need for case folding.
+
+        * html/HTMLHRElement.cpp:
+        (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
+        Use equalLettersIgnoringASCIICase.
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::draggable): Ditto.
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::parseAttribute): Ditto.
+        * html/HTMLKeygenElement.cpp:
+        (WebCore::HTMLKeygenElement::appendFormData): Ditto.
+        * html/HTMLMarqueeElement.cpp:
+        (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute): Ditto.
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::parseAttribute): Ditto.
+        * html/HTMLMetaElement.cpp:
+        (WebCore::HTMLMetaElement::process): Ditto.
+
+        * html/HTMLObjectElement.cpp:
+        (WebCore::mapDataParamToSrc): Use references, modern for loops, simplify
+        logic to not use array indices, use ASCIILiteral and equalLettersIgnoringASCIICase.
+        (WebCore::HTMLObjectElement::parametersForPlugin): Update to call new function.
+        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Use equalLettersIgnoringASCIICase.
+        (WebCore::HTMLObjectElement::containsJavaApplet): Ditto.
+        * html/HTMLParagraphElement.cpp:
+        (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute): Ditto.
+        * html/HTMLParamElement.cpp:
+        (WebCore::HTMLParamElement::isURLParameter): Ditto.
+        * html/HTMLTableElement.cpp:
+        (WebCore::getBordersFromFrameAttributeValue): Ditto.
+        (WebCore::HTMLTableElement::collectStyleForPresentationAttribute): Ditto.
+        (WebCore::HTMLTableElement::parseAttribute): Ditto.
+        * html/HTMLTablePartElement.cpp:
+        (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute): Ditto.
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::parseAttribute): Ditto.
+        * html/HTMLTextFormControlElement.cpp:
+        (WebCore::HTMLTextFormControlElement::setRangeText): Ditto.
+        (WebCore::HTMLTextFormControlElement::directionForFormData): Ditto.
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::parseAttribute): Ditto.
+        * html/InputType.cpp:
+        (WebCore::InputType::applyStep): Ditto.
+        * html/LinkRelAttribute.cpp:
+        (WebCore::LinkRelAttribute::LinkRelAttribute): Ditto.
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::wirelessVideoPlaybackDisabled): Ditto.
+        * html/NumberInputType.cpp:
+        (WebCore::NumberInputType::sizeShouldIncludeDecoration): Ditto.
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::createStepRange): Ditto.
+        (WebCore::RangeInputType::handleKeydownEvent): Ditto.
+        * html/StepRange.cpp:
+        (WebCore::StepRange::parseStep): Ditto.
+        * html/canvas/CanvasStyle.cpp:
+        (WebCore::parseColor): Ditto.
+        * html/parser/HTMLConstructionSite.cpp:
+        (WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype): Ditto.
+        * html/parser/HTMLElementStack.cpp:
+        (WebCore::HTMLElementStack::isHTMLIntegrationPoint): Ditto.
+        * html/parser/HTMLMetaCharsetParser.cpp:
+        (WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes): Ditto.
+        * html/parser/HTMLPreloadScanner.cpp:
+        (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Ditto.
+        (WebCore::TokenPreloadScanner::StartTagScanner::crossOriginModeAllowsCookies): Ditto.
+        * html/parser/HTMLTreeBuilder.cpp:
+        (WebCore::HTMLTreeBuilder::processStartTagForInBody): Ditto.
+        (WebCore::HTMLTreeBuilder::processStartTagForInTable): Ditto.
+        * html/parser/XSSAuditor.cpp:
+        (WebCore::isDangerousHTTPEquiv): Ditto.
+
+        * html/track/WebVTTParser.cpp:
+        (WebCore::WebVTTParser::hasRequiredFileIdentifier): Removed unneeded special case
+        for empty string.
+
+        * inspector/InspectorPageAgent.cpp:
+        (WebCore::createXHRTextDecoder): Use equalLettersIgnoringASCIICase.
+        * inspector/NetworkResourcesData.cpp:
+        (WebCore::createOtherResourceTextDecoder): Ditto.
+        * loader/CrossOriginAccessControl.cpp:
+        (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): Ditto.
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::continueAfterContentPolicy): Ditto.
+        * loader/FormSubmission.cpp:
+        (WebCore::appendMailtoPostFormDataToURL): Ditto.
+        (WebCore::FormSubmission::Attributes::parseEncodingType): Ditto.
+        (WebCore::FormSubmission::Attributes::parseMethodType): Ditto.
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::shouldPerformFragmentNavigation): Ditto.
+        (WebCore::FrameLoader::shouldTreatURLAsSrcdocDocument): Ditto.
+        * loader/ImageLoader.cpp:
+        (WebCore::ImageLoader::updateFromElement): Ditto.
+        * loader/MediaResourceLoader.cpp:
+        (WebCore::MediaResourceLoader::start): Ditto.
+        * loader/SubframeLoader.cpp:
+        (WebCore::SubframeLoader::createJavaAppletWidget): Ditto.
+        * loader/TextResourceDecoder.cpp:
+        (WebCore::TextResourceDecoder::determineContentType): Ditto.
+        * loader/TextTrackLoader.cpp:
+        (WebCore::TextTrackLoader::load): Ditto.
+        * loader/appcache/ApplicationCache.cpp:
+        (WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet): Ditto.
+        * loader/cache/CachedCSSStyleSheet.cpp:
+        (WebCore::CachedCSSStyleSheet::canUseSheet): Ditto.
+        * loader/cache/CachedResource.cpp:
+        (WebCore::shouldCacheSchemeIndefinitely): Ditto.
+        * page/DOMSelection.cpp:
+        (WebCore::DOMSelection::modify): Ditto.
+        * page/EventSource.cpp:
+        (WebCore::EventSource::didReceiveResponse): Ditto.
+        * page/FrameView.cpp:
+        (WebCore::FrameView::scrollToAnchor): Ditto.
+        * page/Performance.cpp:
+        (WebCore::Performance::webkitGetEntriesByType): Ditto.
+        * page/PerformanceResourceTiming.cpp:
+        (WebCore::passesTimingAllowCheck): Ditto.
+
+        * page/SecurityOrigin.cpp:
+        (WebCore::SecurityOrigin::SecurityOrigin): Use emptyString.
+        (WebCore::SecurityOrigin::toString): Use ASCIILiteral.
+        (WebCore::SecurityOrigin::databaseIdentifier): Ditto.
+
+        * page/UserContentURLPattern.cpp:
+        (WebCore::UserContentURLPattern::parse): Use equalLettersIgnoringASCIICase.
+        (WebCore::UserContentURLPattern::matches): Ditto.
+        * platform/URL.cpp:
+        (WebCore::URL::protocolIs): Ditto.
+
+        * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
+        (WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType):
+        Changed to use early exit and equalLettersIgnoringASCIICase. Added comment
+        about inconsistency with next function.
+        (WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType): Added comment
+        about inconsistency with previous function.
+
+        * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
+        (WebCore::CDMSessionAVContentKeySession::generateKeyRequest):
+        Use equalLettersIgnoringASCIICase.
+        * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
+        (WebCore::CDMSessionAVStreamSession::generateKeyRequest): Ditto.
+        * platform/graphics/cg/ImageBufferCG.cpp:
+        (WebCore::utiFromMIMEType): Ditto.
+
+        * platform/graphics/cocoa/FontCacheCoreText.cpp:
+        (WebCore::FontCache::similarFont): Changed to not use so many global
+        variables and use equalLettersIgnoringASCIICase.
+        * platform/graphics/ios/FontCacheIOS.mm:
+        (WebCore::platformFontWithFamilySpecialCase): Ditto.
+
+        * platform/graphics/mac/FontCustomPlatformData.cpp:
+        (WebCore::FontCustomPlatformData::supportsFormat): Use equalLettersIgnoringASCIICase.
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::Pasteboard::readString): Ditto.
+        * platform/network/BlobResourceHandle.cpp:
+        (WebCore::BlobResourceHandle::createAsync): Ditto.
+        (WebCore::BlobResourceHandle::loadResourceSynchronously): Ditto.
+        * platform/network/CacheValidation.cpp:
+        (WebCore::parseCacheControlDirectives): Ditto.
+        * platform/network/FormData.h:
+        (WebCore::FormData::parseEncodingType): Ditto.
+        * platform/network/HTTPParsers.cpp:
+        (WebCore::contentDispositionType): Ditto.
+        (WebCore::parseXFrameOptionsHeader): Ditto.
+
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::ResourceResponseBase::isHTTP): Use protocolIsInHTTPFamily, which is
+        both clearer and more efficient.
+        (WebCore::ResourceResponseBase::isAttachment): Rewrite to be a bit more terse
+        and use equalLettersIgnoringASCIICase.
+
+        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
+        (WebCore::ResourceHandleCFURLConnectionDelegate::createResourceRequest):
+        Use equalLettersIgnoringASCIICase.
+        * platform/network/mac/ResourceHandleMac.mm:
+        (WebCore::ResourceHandle::willSendRequest): Ditto.
+        * platform/sql/SQLiteDatabase.cpp:
+        (WebCore::SQLiteDatabase::open): Ditto.
+        * platform/sql/SQLiteStatement.cpp:
+        (WebCore::SQLiteStatement::isColumnDeclaredAsBlob): Ditto.
+
+        * platform/text/TextEncodingRegistry.cpp:
+        (WebCore::defaultTextEncodingNameForSystemLanguage): Use ASCIILiteral
+        and equalLettersIgnoringASCIICase.
+
+        * rendering/mathml/RenderMathMLFraction.cpp:
+        (WebCore::RenderMathMLFraction::updateFromElement): Use equalLettersIgnoringASCIICase.
+        * svg/SVGToOTFFontConversion.cpp:
+        (WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically): Ditto.
+        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Ditto.
+        * testing/InternalSettings.cpp:
+        (WebCore::InternalSettings::setEditingBehavior): Ditto.
+        (WebCore::InternalSettings::setShouldDisplayTrackKind): Ditto.
+        (WebCore::InternalSettings::shouldDisplayTrackKind): Ditto.
+        * testing/Internals.cpp:
+        (WebCore::markerTypeFrom): Ditto.
+        (WebCore::markerTypesFrom): Ditto.
+        (WebCore::Internals::mediaElementHasCharacteristic): Ditto.
+        (WebCore::Internals::setCaptionDisplayMode): Ditto.
+        (WebCore::Internals::beginMediaSessionInterruption): Ditto.
+        (WebCore::Internals::endMediaSessionInterruption): Ditto.
+        (WebCore::Internals::setMediaSessionRestrictions): Ditto.
+        (WebCore::Internals::setMediaElementRestrictions): Ditto.
+        (WebCore::Internals::postRemoteControlCommand): Ditto.
+        (WebCore::Internals::setAudioContextRestrictions): Ditto.
+        (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Ditto.
+        * testing/MockCDM.cpp:
+        (WebCore::MockCDM::supportsKeySystem): Ditto.
+        (WebCore::MockCDM::supportsKeySystemAndMimeType): Ditto.
+        (WebCore::MockCDM::supportsMIMEType): Ditto.
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::isSetCookieHeader): Ditto.
+        (WebCore::XMLHttpRequest::responseXML): Ditto.
+        (WebCore::XMLHttpRequest::isAllowedHTTPMethod): Ditto.
+        (WebCore::XMLHttpRequest::didReceiveData): Ditto.
+
</ins><span class="cx"> 2016-01-22  Youenn Fablet  &lt;youenn.fablet@crf.canon.fr&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove PassRefPtr from ResourceRequest and FormData
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaCDMPrivateClearKeycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDMPrivateClearKey.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/CDMPrivateClearKey.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/Modules/encryptedmedia/CDMPrivateClearKey.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool CDMPrivateClearKey::supportsKeySystem(const String&amp; keySystem)
</span><span class="cx"> {
</span><del>-    if (!equalIgnoringCase(keySystem, &quot;org.w3c.clearkey&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(keySystem, &quot;org.w3c.clearkey&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // The MediaPlayer must also support the key system:
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool CDMPrivateClearKey::supportsKeySystemAndMimeType(const String&amp; keySystem, const String&amp; mimeType)
</span><span class="cx"> {
</span><del>-    if (!equalIgnoringCase(keySystem, &quot;org.w3c.clearkey&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(keySystem, &quot;org.w3c.clearkey&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // The MediaPlayer must also support the key system:
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaCDMSessionClearKeycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/Modules/encryptedmedia/CDMSessionClearKey.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -137,13 +137,13 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             String algorithm;
</span><del>-            if (!keyDictionary.get(&quot;alg&quot;, algorithm) || !equalIgnoringCase(algorithm, &quot;a128kw&quot;)) {
</del><ins>+            if (!keyDictionary.get(&quot;alg&quot;, algorithm) || !equalLettersIgnoringASCIICase(algorithm, &quot;a128kw&quot;)) {
</ins><span class="cx">                 LOG(Media, &quot;CDMSessionClearKey::update(%p) - failed: algorithm unsupported&quot;, this);
</span><span class="cx">                 continue;
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             String keyType;
</span><del>-            if (!keyDictionary.get(&quot;kty&quot;, keyType) || !equalIgnoringCase(keyType, &quot;oct&quot;)) {
</del><ins>+            if (!keyDictionary.get(&quot;kty&quot;, keyType) || !equalLettersIgnoringASCIICase(keyType, &quot;oct&quot;)) {
</ins><span class="cx">                 LOG(Media, &quot;CDMSessionClearKey::update(%p) - failed: keyType unsupported&quot;, this);
</span><span class="cx">                 continue;
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -50,13 +50,13 @@
</span><span class="cx"> 
</span><span class="cx"> bool YouTubePluginReplacement::supportsMimeType(const String&amp; mimeType)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(mimeType, &quot;application/x-shockwave-flash&quot;)
-        || equalIgnoringCase(mimeType, &quot;application/futuresplash&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(mimeType, &quot;application/x-shockwave-flash&quot;)
+        || equalLettersIgnoringASCIICase(mimeType, &quot;application/futuresplash&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool YouTubePluginReplacement::supportsFileExtension(const String&amp; extension)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(extension, &quot;spl&quot;) || equalIgnoringCase(extension, &quot;swf&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(extension, &quot;spl&quot;) || equalLettersIgnoringASCIICase(extension, &quot;swf&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> YouTubePluginReplacement::YouTubePluginReplacement(HTMLPlugInElement&amp; plugin, const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues)
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebdatabaseDatabaseAuthorizercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseAuthorizer.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webdatabase/DatabaseAuthorizer.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseAuthorizer.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -289,7 +289,7 @@
</span><span class="cx">         return SQLAuthDeny;
</span><span class="cx"> 
</span><span class="cx">     // Allow only the FTS3 extension
</span><del>-    if (!equalIgnoringCase(moduleName, &quot;fts3&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(moduleName, &quot;fts3&quot;))
</ins><span class="cx">         return SQLAuthDeny;
</span><span class="cx"> 
</span><span class="cx">     m_lastActionChangedDatabase = true;
</span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx">         return SQLAuthDeny;
</span><span class="cx"> 
</span><span class="cx">     // Allow only the FTS3 extension
</span><del>-    if (!equalIgnoringCase(moduleName, &quot;fts3&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(moduleName, &quot;fts3&quot;))
</ins><span class="cx">         return SQLAuthDeny;
</span><span class="cx"> 
</span><span class="cx">     return updateDeletesBasedOnTableName(tableName);
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketHandshakecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -470,34 +470,34 @@
</span><span class="cx">     for (; p &lt; end; p++) {
</span><span class="cx">         size_t consumedLength = parseHTTPHeader(p, end - p, m_failureReason, name, value);
</span><span class="cx">         if (!consumedLength)
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">         p += consumedLength;
</span><span class="cx"> 
</span><span class="cx">         // Stop once we consumed an empty line.
</span><span class="cx">         if (name.isEmpty())
</span><span class="cx">             break;
</span><span class="cx"> 
</span><del>-        if (equalIgnoringCase(&quot;sec-websocket-extensions&quot;, name)) {
</del><ins>+        if (equalLettersIgnoringASCIICase(name, &quot;sec-websocket-extensions&quot;)) {
</ins><span class="cx">             if (sawSecWebSocketExtensionsHeaderField) {
</span><span class="cx">                 m_failureReason = &quot;The Sec-WebSocket-Extensions header MUST NOT appear more than once in an HTTP response&quot;;
</span><del>-                return 0;
</del><ins>+                return nullptr;
</ins><span class="cx">             }
</span><span class="cx">             if (!m_extensionDispatcher.processHeaderValue(value)) {
</span><span class="cx">                 m_failureReason = m_extensionDispatcher.failureReason();
</span><del>-                return 0;
</del><ins>+                return nullptr;
</ins><span class="cx">             }
</span><span class="cx">             sawSecWebSocketExtensionsHeaderField = true;
</span><del>-        } else if (equalIgnoringCase(&quot;Sec-WebSocket-Accept&quot;, name)) {
</del><ins>+        } else if (equalLettersIgnoringASCIICase(name, &quot;sec-websocket-accept&quot;)) {
</ins><span class="cx">             if (sawSecWebSocketAcceptHeaderField) {
</span><span class="cx">                 m_failureReason = &quot;The Sec-WebSocket-Accept header MUST NOT appear more than once in an HTTP response&quot;;
</span><del>-                return 0;
</del><ins>+                return nullptr;
</ins><span class="cx">             }
</span><span class="cx">             m_serverHandshakeResponse.addHTTPHeaderField(name, value);
</span><span class="cx">             sawSecWebSocketAcceptHeaderField = true;
</span><del>-        } else if (equalIgnoringCase(&quot;Sec-WebSocket-Protocol&quot;, name)) {
</del><ins>+        } else if (equalLettersIgnoringASCIICase(name, &quot;sec-websocket-protocol&quot;)) {
</ins><span class="cx">             if (sawSecWebSocketProtocolHeaderField) {
</span><span class="cx">                 m_failureReason = &quot;The Sec-WebSocket-Protocol header MUST NOT appear more than once in an HTTP response&quot;;
</span><del>-                return 0;
</del><ins>+                return nullptr;
</ins><span class="cx">             }
</span><span class="cx">             m_serverHandshakeResponse.addHTTPHeaderField(name, value);
</span><span class="cx">             sawSecWebSocketProtocolHeaderField = true;
</span><span class="lines">@@ -527,11 +527,11 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!equalIgnoringCase(serverUpgrade, &quot;websocket&quot;)) {
</del><ins>+    if (!equalLettersIgnoringASCIICase(serverUpgrade, &quot;websocket&quot;)) {
</ins><span class="cx">         m_failureReason = &quot;Error during WebSocket handshake: 'Upgrade' header value is not 'WebSocket'&quot;;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><del>-    if (!equalIgnoringCase(serverConnection, &quot;upgrade&quot;)) {
</del><ins>+    if (!equalLettersIgnoringASCIICase(serverConnection, &quot;upgrade&quot;)) {
</ins><span class="cx">         m_failureReason = &quot;Error during WebSocket handshake: 'Connection' header value is not 'Upgrade'&quot;;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx">         // Must have dialog or alertdialog role
</span><span class="cx">         if (!nodeHasRole(element, &quot;dialog&quot;) &amp;&amp; !nodeHasRole(element, &quot;alertdialog&quot;))
</span><span class="cx">             continue;
</span><del>-        if (!equalIgnoringCase(element-&gt;fastGetAttribute(aria_modalAttr), &quot;true&quot;))
</del><ins>+        if (!equalLettersIgnoringASCIICase(element-&gt;fastGetAttribute(aria_modalAttr), &quot;true&quot;))
</ins><span class="cx">             continue;
</span><span class="cx">         
</span><span class="cx">         m_ariaModalNodesSet.add(element);
</span><span class="lines">@@ -948,7 +948,7 @@
</span><span class="cx">     if (!nodeHasRole(node, &quot;menuitem&quot;) &amp;&amp; !nodeHasRole(node, &quot;menuitemradio&quot;) &amp;&amp; !nodeHasRole(node, &quot;menuitemcheckbox&quot;))
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    if (!downcast&lt;Element&gt;(*node).focused() &amp;&amp; !equalIgnoringCase(downcast&lt;Element&gt;(*node).fastGetAttribute(aria_selectedAttr), &quot;true&quot;))
</del><ins>+    if (!downcast&lt;Element&gt;(*node).focused() &amp;&amp; !equalLettersIgnoringASCIICase(downcast&lt;Element&gt;(*node).fastGetAttribute(aria_selectedAttr), &quot;true&quot;))
</ins><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     postNotification(getOrCreate(node), &amp;document(), AXMenuListItemSelected);
</span><span class="lines">@@ -1357,7 +1357,7 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     stopCachingComputedObjectAttributes();
</span><del>-    if (equalIgnoringCase(downcast&lt;Element&gt;(*node).fastGetAttribute(aria_modalAttr), &quot;true&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(downcast&lt;Element&gt;(*node).fastGetAttribute(aria_modalAttr), &quot;true&quot;)) {
</ins><span class="cx">         // Add the newly modified node to the modal nodes set, and set it to be the current valid aria modal node.
</span><span class="cx">         // We will recompute the current valid aria modal node in ariaModalNode() when this node is not visible.
</span><span class="cx">         m_ariaModalNodesSet.add(node);
</span><span class="lines">@@ -1854,10 +1854,10 @@
</span><span class="cx">     for (Node* testNode = node; testNode; testNode = testNode-&gt;parentNode()) {
</span><span class="cx">         if (is&lt;Element&gt;(*testNode)) {
</span><span class="cx">             const AtomicString&amp; ariaHiddenValue = downcast&lt;Element&gt;(*testNode).fastGetAttribute(aria_hiddenAttr);
</span><del>-            if (equalIgnoringCase(ariaHiddenValue, &quot;true&quot;))
</del><ins>+            if (equalLettersIgnoringASCIICase(ariaHiddenValue, &quot;true&quot;))
</ins><span class="cx">                 return false;
</span><span class="cx">             
</span><del>-            bool ariaHiddenFalse = equalIgnoringCase(ariaHiddenValue, &quot;false&quot;);
</del><ins>+            bool ariaHiddenFalse = equalLettersIgnoringASCIICase(ariaHiddenValue, &quot;false&quot;);
</ins><span class="cx">             if (!testNode-&gt;renderer() &amp;&amp; !ariaHiddenFalse)
</span><span class="cx">                 return false;
</span><span class="cx">             if (!ariaHiddenFalsePresent &amp;&amp; ariaHiddenFalse)
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityListBoxOptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     if (is&lt;HTMLOptGroupElement&gt;(m_optionElement))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(getAttribute(aria_disabledAttr), &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(getAttribute(aria_disabledAttr), &quot;true&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     if (m_optionElement-&gt;fastHasAttribute(disabledAttr))
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -308,13 +308,10 @@
</span><span class="cx">             return IgnoredRole;
</span><span class="cx">         if (input.isSearchField())
</span><span class="cx">             return SearchFieldRole;
</span><del>-        
</del><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-        const AtomicString&amp; type = input.getAttribute(typeAttr);
-        if (equalIgnoringCase(type, &quot;color&quot;))
</del><ins>+        if (input.isColorControl())
</ins><span class="cx">             return ColorWellRole;
</span><span class="cx"> #endif
</span><del>-
</del><span class="cx">         return TextFieldRole;
</span><span class="cx">     }
</span><span class="cx">     if (node()-&gt;hasTagName(selectTag)) {
</span><span class="lines">@@ -650,9 +647,9 @@
</span><span class="cx">     // ARIA says that the disabled status applies to the current element and all descendant elements.
</span><span class="cx">     for (AccessibilityObject* object = const_cast&lt;AccessibilityNodeObject*&gt;(this); object; object = object-&gt;parentObject()) {
</span><span class="cx">         const AtomicString&amp; disabledStatus = object-&gt;getAttribute(aria_disabledAttr);
</span><del>-        if (equalIgnoringCase(disabledStatus, &quot;true&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(disabledStatus, &quot;true&quot;))
</ins><span class="cx">             return false;
</span><del>-        if (equalIgnoringCase(disabledStatus, &quot;false&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(disabledStatus, &quot;false&quot;))
</ins><span class="cx">             break;
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -684,7 +681,7 @@
</span><span class="cx">     // If this is an ARIA button, check the aria-pressed attribute rather than node()-&gt;active()
</span><span class="cx">     AccessibilityRole ariaRole = ariaRoleAttribute();
</span><span class="cx">     if (ariaRole == ButtonRole || ariaRole == ToggleButtonRole) {
</span><del>-        if (equalIgnoringCase(getAttribute(aria_pressedAttr), &quot;true&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(getAttribute(aria_pressedAttr), &quot;true&quot;))
</ins><span class="cx">             return true;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="lines">@@ -719,7 +716,7 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    if (validRole &amp;&amp; equalIgnoringCase(getAttribute(aria_checkedAttr), &quot;true&quot;))
</del><ins>+    if (validRole &amp;&amp; equalLettersIgnoringASCIICase(getAttribute(aria_checkedAttr), &quot;true&quot;))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -734,9 +731,9 @@
</span><span class="cx"> bool AccessibilityNodeObject::isMultiSelectable() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; ariaMultiSelectable = getAttribute(aria_multiselectableAttr);
</span><del>-    if (equalIgnoringCase(ariaMultiSelectable, &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(ariaMultiSelectable, &quot;true&quot;))
</ins><span class="cx">         return true;
</span><del>-    if (equalIgnoringCase(ariaMultiSelectable, &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(ariaMultiSelectable, &quot;false&quot;))
</ins><span class="cx">         return false;
</span><span class="cx">     
</span><span class="cx">     return node() &amp;&amp; node()-&gt;hasTagName(selectTag) &amp;&amp; downcast&lt;HTMLSelectElement&gt;(*node()).multiple();
</span><span class="lines">@@ -764,9 +761,9 @@
</span><span class="cx"> {
</span><span class="cx">     // Explicit aria-required values should trump native required attributes.
</span><span class="cx">     const AtomicString&amp; requiredValue = getAttribute(aria_requiredAttr);
</span><del>-    if (equalIgnoringCase(requiredValue, &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(requiredValue, &quot;true&quot;))
</ins><span class="cx">         return true;
</span><del>-    if (equalIgnoringCase(requiredValue, &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(requiredValue, &quot;false&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     Node* n = this-&gt;node();
</span><span class="lines">@@ -1640,7 +1637,7 @@
</span><span class="cx">         &amp;&amp; !obj-&gt;accessibleNameDerivesFromContent())
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    if (equalIgnoringCase(obj-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(obj-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;))
</ins><span class="cx">         return false;
</span><span class="cx">     
</span><span class="cx">     // If something doesn't expose any children, then we can always take the inner text content.
</span><span class="lines">@@ -1855,8 +1852,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     HTMLInputElement&amp; input = downcast&lt;HTMLInputElement&gt;(*node());
</span><del>-    const AtomicString&amp; type = input.getAttribute(typeAttr);
-    if (!equalIgnoringCase(type, &quot;color&quot;))
</del><ins>+    if (!input.isColorControl())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // HTMLInputElement::value always returns a string parseable by Color().
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1546,7 +1546,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     
</span><span class="cx">     // Both &quot;true&quot; (case-insensitive) and the empty string count as true.
</span><del>-    return contentEditableValue.isEmpty() || equalIgnoringCase(contentEditableValue, &quot;true&quot;);
</del><ins>+    return contentEditableValue.isEmpty() || equalLettersIgnoringASCIICase(contentEditableValue, &quot;true&quot;);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> #if HAVE(ACCESSIBILITY)
</span><span class="lines">@@ -1835,7 +1835,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityObject::ariaIsMultiline() const
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(getAttribute(aria_multilineAttr), &quot;true&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(getAttribute(aria_multilineAttr), &quot;true&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String AccessibilityObject::invalidStatus() const
</span><span class="lines">@@ -2246,7 +2246,7 @@
</span><span class="cx">     
</span><span class="cx"> bool AccessibilityObject::liveRegionStatusIsEnabled(const AtomicString&amp; liveRegionStatus)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(liveRegionStatus, &quot;polite&quot;) || equalIgnoringCase(liveRegionStatus, &quot;assertive&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(liveRegionStatus, &quot;polite&quot;) || equalLettersIgnoringASCIICase(liveRegionStatus, &quot;assertive&quot;);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> bool AccessibilityObject::supportsARIALiveRegion() const
</span><span class="lines">@@ -2299,11 +2299,11 @@
</span><span class="cx"> AccessibilitySortDirection AccessibilityObject::sortDirection() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; sortAttribute = getAttribute(aria_sortAttr);
</span><del>-    if (equalIgnoringCase(sortAttribute, &quot;ascending&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(sortAttribute, &quot;ascending&quot;))
</ins><span class="cx">         return SortDirectionAscending;
</span><del>-    if (equalIgnoringCase(sortAttribute, &quot;descending&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(sortAttribute, &quot;descending&quot;))
</ins><span class="cx">         return SortDirectionDescending;
</span><del>-    if (equalIgnoringCase(sortAttribute, &quot;other&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(sortAttribute, &quot;other&quot;))
</ins><span class="cx">         return SortDirectionOther;
</span><span class="cx">     
</span><span class="cx">     return SortDirectionNone;
</span><span class="lines">@@ -2358,14 +2358,14 @@
</span><span class="cx"> bool AccessibilityObject::supportsARIAPressed() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; expanded = getAttribute(aria_pressedAttr);
</span><del>-    return equalIgnoringCase(expanded, &quot;true&quot;) || equalIgnoringCase(expanded, &quot;false&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(expanded, &quot;true&quot;) || equalLettersIgnoringASCIICase(expanded, &quot;false&quot;);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> bool AccessibilityObject::supportsExpanded() const
</span><span class="cx"> {
</span><span class="cx">     // Undefined values should not result in this attribute being exposed to ATs according to ARIA.
</span><span class="cx">     const AtomicString&amp; expanded = getAttribute(aria_expandedAttr);
</span><del>-    if (equalIgnoringCase(expanded, &quot;true&quot;) || equalIgnoringCase(expanded, &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(expanded, &quot;true&quot;) || equalLettersIgnoringASCIICase(expanded, &quot;false&quot;))
</ins><span class="cx">         return true;
</span><span class="cx">     switch (roleValue()) {
</span><span class="cx">     case ComboBoxRole:
</span><span class="lines">@@ -2379,7 +2379,7 @@
</span><span class="cx">     
</span><span class="cx"> bool AccessibilityObject::isExpanded() const
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(getAttribute(aria_expandedAttr), &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(getAttribute(aria_expandedAttr), &quot;true&quot;))
</ins><span class="cx">         return true;
</span><span class="cx">     
</span><span class="cx">     if (is&lt;HTMLDetailsElement&gt;(node()))
</span><span class="lines">@@ -2410,17 +2410,17 @@
</span><span class="cx"> 
</span><span class="cx">     if (isToggleButton()) {
</span><span class="cx">         const AtomicString&amp; ariaPressed = getAttribute(aria_pressedAttr);
</span><del>-        if (equalIgnoringCase(ariaPressed, &quot;true&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(ariaPressed, &quot;true&quot;))
</ins><span class="cx">             return ButtonStateOn;
</span><del>-        if (equalIgnoringCase(ariaPressed, &quot;mixed&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(ariaPressed, &quot;mixed&quot;))
</ins><span class="cx">             return ButtonStateMixed;
</span><span class="cx">         return ButtonStateOff;
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     const AtomicString&amp; result = getAttribute(aria_checkedAttr);
</span><del>-    if (equalIgnoringCase(result, &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(result, &quot;true&quot;))
</ins><span class="cx">         return ButtonStateOn;
</span><del>-    if (equalIgnoringCase(result, &quot;mixed&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(result, &quot;mixed&quot;)) {
</ins><span class="cx">         // ARIA says that radio, menuitemradio, and switch elements must NOT expose button state mixed.
</span><span class="cx">         AccessibilityRole ariaRole = ariaRoleAttribute();
</span><span class="cx">         if (ariaRole == RadioButtonRole || ariaRole == MenuItemRadioRole || ariaRole == SwitchRole)
</span><span class="lines">@@ -2428,7 +2428,7 @@
</span><span class="cx">         return ButtonStateMixed;
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    if (equalIgnoringCase(getAttribute(indeterminateAttr), &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(getAttribute(indeterminateAttr), &quot;true&quot;))
</ins><span class="cx">         return ButtonStateMixed;
</span><span class="cx">     
</span><span class="cx">     return ButtonStateOff;
</span><span class="lines">@@ -2842,7 +2842,7 @@
</span><span class="cx"> bool AccessibilityObject::isARIAHidden() const
</span><span class="cx"> {
</span><span class="cx">     for (const AccessibilityObject* object = this; object; object = object-&gt;parentObject()) {
</span><del>-        if (equalIgnoringCase(object-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(object-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;))
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx">     return false;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1052,7 +1052,7 @@
</span><span class="cx"> bool AccessibilityRenderObject::supportsARIADragging() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; grabbed = getAttribute(aria_grabbedAttr);
</span><del>-    return equalIgnoringCase(grabbed, &quot;true&quot;) || equalIgnoringCase(grabbed, &quot;false&quot;);   
</del><ins>+    return equalLettersIgnoringASCIICase(grabbed, &quot;true&quot;) || equalLettersIgnoringASCIICase(grabbed, &quot;false&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityRenderObject::isARIAGrabbed()
</span><span class="lines">@@ -1156,7 +1156,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (m_renderer-&gt;style().visibility() != VISIBLE) {
</span><span class="cx">         // aria-hidden is meant to override visibility as the determinant in AX hierarchy inclusion.
</span><del>-        if (equalIgnoringCase(getAttribute(aria_hiddenAttr), &quot;false&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(getAttribute(aria_hiddenAttr), &quot;false&quot;))
</ins><span class="cx">             return DefaultBehavior;
</span><span class="cx">         
</span><span class="cx">         return IgnoreObject;
</span><span class="lines">@@ -1583,7 +1583,7 @@
</span><span class="cx">     if (!m_renderer)
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    return equalIgnoringCase(getAttribute(attributeName), &quot;true&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(getAttribute(attributeName), &quot;true&quot;);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> bool AccessibilityRenderObject::isSelected() const
</span><span class="lines">@@ -1591,12 +1591,10 @@
</span><span class="cx">     if (!m_renderer)
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    Node* node = m_renderer-&gt;node();
-    if (!node)
</del><ins>+    if (!m_renderer-&gt;node())
</ins><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    const AtomicString&amp; ariaSelected = getAttribute(aria_selectedAttr);
-    if (equalIgnoringCase(ariaSelected, &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(getAttribute(aria_selectedAttr), &quot;true&quot;))
</ins><span class="cx">         return true;    
</span><span class="cx">     
</span><span class="cx">     if (isTabItem() &amp;&amp; isTabItemSelected())
</span><span class="lines">@@ -2558,11 +2556,8 @@
</span><span class="cx">         if (input.isDateField() || input.isTimeField())
</span><span class="cx">             return PopUpButtonRole;
</span><span class="cx"> #endif
</span><del>-        
</del><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-        // FIXME: Shouldn't this use input.isColorControl()?
-        const AtomicString&amp; type = input.getAttribute(typeAttr);
-        if (equalIgnoringCase(type, &quot;color&quot;))
</del><ins>+        if (input.isColorControl())
</ins><span class="cx">             return ColorWellRole;
</span><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="lines">@@ -2728,11 +2723,11 @@
</span><span class="cx"> AccessibilityOrientation AccessibilityRenderObject::orientation() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; ariaOrientation = getAttribute(aria_orientationAttr);
</span><del>-    if (equalIgnoringCase(ariaOrientation, &quot;horizontal&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(ariaOrientation, &quot;horizontal&quot;))
</ins><span class="cx">         return AccessibilityOrientationHorizontal;
</span><del>-    if (equalIgnoringCase(ariaOrientation, &quot;vertical&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(ariaOrientation, &quot;vertical&quot;))
</ins><span class="cx">         return AccessibilityOrientationVertical;
</span><del>-    if (equalIgnoringCase(ariaOrientation, &quot;undefined&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(ariaOrientation, &quot;undefined&quot;))
</ins><span class="cx">         return AccessibilityOrientationUndefined;
</span><span class="cx"> 
</span><span class="cx">     // ARIA 1.1 Implicit defaults are defined on some roles.
</span><span class="lines">@@ -2832,7 +2827,7 @@
</span><span class="cx">     
</span><span class="cx">     // An object can be expanded if it aria-expanded is true or false.
</span><span class="cx">     const AtomicString&amp; ariaExpanded = getAttribute(aria_expandedAttr);
</span><del>-    return equalIgnoringCase(ariaExpanded, &quot;true&quot;) || equalIgnoringCase(ariaExpanded, &quot;false&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(ariaExpanded, &quot;true&quot;) || equalLettersIgnoringASCIICase(ariaExpanded, &quot;false&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AccessibilityRenderObject::canSetValueAttribute() const
</span><span class="lines">@@ -2846,10 +2841,10 @@
</span><span class="cx">     if (isMeter())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(getAttribute(aria_readonlyAttr), &quot;true&quot;))
</del><ins>+    auto&amp; readOnly = getAttribute(aria_readonlyAttr);
+    if (equalLettersIgnoringASCIICase(readOnly, &quot;true&quot;))
</ins><span class="cx">         return false;
</span><del>-    
-    if (equalIgnoringCase(getAttribute(aria_readonlyAttr), &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(readOnly, &quot;false&quot;))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     if (isProgressIndicator() || isSlider())
</span><span class="lines">@@ -3190,10 +3185,11 @@
</span><span class="cx"> bool AccessibilityRenderObject::ariaLiveRegionAtomic() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; atomic = getAttribute(aria_atomicAttr);
</span><del>-    if (equalIgnoringCase(atomic, &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(atomic, &quot;true&quot;))
</ins><span class="cx">         return true;
</span><del>-    if (equalIgnoringCase(atomic, &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(atomic, &quot;false&quot;))
</ins><span class="cx">         return false;
</span><ins>+
</ins><span class="cx">     // WAI-ARIA &quot;alert&quot; and &quot;status&quot; roles have an implicit aria-atomic value of true.
</span><span class="cx">     switch (roleValue()) {
</span><span class="cx">     case ApplicationAlertRole:
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTableCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -417,7 +417,7 @@
</span><span class="cx">     
</span><span class="cx">     // ARIA 1.1: Authors must set the value of aria-rowspan to an integer greater than or equal to 0.
</span><span class="cx">     // Setting the value to 0 indicates that the cell or gridcell is to span all the remaining rows in the row group.
</span><del>-    if (equalIgnoringCase(rowSpanValue, &quot;0&quot;))
</del><ins>+    if (rowSpanValue == &quot;0&quot;)
</ins><span class="cx">         return 0;
</span><span class="cx">     if (rowSpanValue.toInt() &gt;= 1)
</span><span class="cx">         return rowSpanValue.toInt();
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSCalculationValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSCalculationValue.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSCalculationValue.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSCalculationValue.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -757,7 +757,7 @@
</span><span class="cx">     CSSCalcExpressionNodeParser parser;
</span><span class="cx">     RefPtr&lt;CSSCalcExpressionNode&gt; expression;
</span><span class="cx"> 
</span><del>-    if (name.equalIgnoringCase(&quot;calc(&quot;) || name.equalIgnoringCase(&quot;-webkit-calc(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(name, &quot;calc(&quot;) || equalLettersIgnoringASCIICase(name, &quot;-webkit-calc(&quot;))
</ins><span class="cx">         expression = parser.parseCalc(&amp;parserValueList);
</span><span class="cx"> 
</span><span class="cx">     return expression ? adoptRef(new CSSCalcValue(expression.releaseNonNull(), range != CalculationRangeAll)) : nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSCalculationValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSCalculationValue.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSCalculationValue.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSCalculationValue.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -31,15 +31,17 @@
</span><span class="cx"> #ifndef CSSCalculationValue_h
</span><span class="cx"> #define CSSCalculationValue_h
</span><span class="cx"> 
</span><del>-#include &quot;CSSParserValues.h&quot;
</del><span class="cx"> #include &quot;CSSPrimitiveValue.h&quot;
</span><span class="cx"> #include &quot;CalculationValue.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class CSSParserValueList;
</ins><span class="cx"> class CSSToLengthConversionData;
</span><span class="cx"> class RenderStyle;
</span><span class="cx"> 
</span><ins>+struct CSSParserString;
+
</ins><span class="cx"> enum CalculationCategory {
</span><span class="cx">     CalcNumber = 0,
</span><span class="cx">     CalcLength,
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSCustomPropertyValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSCustomPropertyValue.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSCustomPropertyValue.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSCustomPropertyValue.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #ifndef CSSCustomPropertyValue_h
</span><span class="cx"> #define CSSCustomPropertyValue_h
</span><span class="cx"> 
</span><del>-#include &quot;CSSParserValues.h&quot;
</del><span class="cx"> #include &quot;CSSValue.h&quot;
</span><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceSrcValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><span class="cx"> bool CSSFontFaceSrcValue::isSVGFontFaceSrc() const
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(m_format, &quot;svg&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(m_format, &quot;svg&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool CSSFontFaceSrcValue::isSVGFontTarget() const
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSGrammaryin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSGrammar.y.in (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSGrammar.y.in        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSGrammar.y.in        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -832,16 +832,17 @@
</span><span class="cx"> key:
</span><span class="cx">     maybe_unary_operator PERCENTAGE { $$.id = CSSValueInvalid; $$.isInt = false; $$.fValue = $1 * $2; $$.unit = CSSPrimitiveValue::CSS_NUMBER; }
</span><span class="cx">     | IDENT {
</span><del>-        $$.id = CSSValueInvalid; $$.isInt = false; $$.unit = CSSPrimitiveValue::CSS_NUMBER;
-        CSSParserString&amp; str = $1;
-        if (str.equalIgnoringCase(&quot;from&quot;))
</del><ins>+        $$.id = CSSValueInvalid;
+        $$.isInt = false;
+        if (equalLettersIgnoringASCIICase($1, &quot;from&quot;))
</ins><span class="cx">             $$.fValue = 0;
</span><del>-        else if (str.equalIgnoringCase(&quot;to&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase($1, &quot;to&quot;))
</ins><span class="cx">             $$.fValue = 100;
</span><span class="cx">         else {
</span><span class="cx">             $$.unit = 0;
</span><span class="cx">             YYERROR;
</span><span class="cx">         }
</span><ins>+        $$.unit = CSSPrimitiveValue::CSS_NUMBER;
</ins><span class="cx">     }
</span><span class="cx">     | error {
</span><span class="cx">         $$.unit = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -167,31 +167,10 @@
</span><span class="cx"> static const unsigned INVALID_NUM_PARSED_PROPERTIES = UINT_MAX;
</span><span class="cx"> static const double MAX_SCALE = 1000000;
</span><span class="cx"> 
</span><del>-template &lt;unsigned N&gt;
-static bool equal(const CSSParserString&amp; a, const char (&amp;b)[N])
</del><ins>+template&lt;unsigned length&gt; bool equalLettersIgnoringASCIICase(const CSSParserValue&amp; value, const char (&amp;lowercaseLetters)[length])
</ins><span class="cx"> {
</span><del>-    unsigned length = N - 1; // Ignore the trailing null character
-    if (a.length() != length)
-        return false;
-
-    return a.is8Bit() ? WTF::equal(a.characters8(), reinterpret_cast&lt;const LChar*&gt;(b), length) : WTF::equal(a.characters16(), reinterpret_cast&lt;const LChar*&gt;(b), length);
-}
-
-template &lt;unsigned N&gt;
-static bool equalIgnoringCase(const CSSParserString&amp; a, const char (&amp;b)[N])
-{
-    unsigned length = N - 1; // Ignore the trailing null character
-    if (a.length() != length)
-        return false;
-
-    return a.is8Bit() ? WTF::equalIgnoringCase(b, a.characters8(), length) : WTF::equalIgnoringCase(b, a.characters16(), length);
-}
-
-template &lt;unsigned N&gt;
-static bool equalIgnoringCase(CSSParserValue&amp; value, const char (&amp;b)[N])
-{
</del><span class="cx">     ASSERT(value.unit == CSSPrimitiveValue::CSS_IDENT || value.unit == CSSPrimitiveValue::CSS_STRING);
</span><del>-    return equalIgnoringCase(value.string, b);
</del><ins>+    return equalLettersIgnoringASCIICase(value.string, lowercaseLetters);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool hasPrefix(const char* string, unsigned length, const char* prefix)
</span><span class="lines">@@ -2150,7 +2129,7 @@
</span><span class="cx">                 if (!uri.isNull())
</span><span class="cx">                     image = CSSImageValue::create(completeURL(uri));
</span><span class="cx"> #if ENABLE(CSS_IMAGE_SET) &amp;&amp; ENABLE(MOUSE_CURSOR_SCALE)
</span><del>-            } else if (value-&gt;unit == CSSParserValue::Function &amp;&amp; equalIgnoringCase(value-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</del><ins>+            } else if (value-&gt;unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</ins><span class="cx">                 image = parseImageSet();
</span><span class="cx">                 if (!image)
</span><span class="cx">                     break;
</span><span class="lines">@@ -2283,7 +2262,7 @@
</span><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx"> #if ENABLE(CSS_IMAGE_SET)
</span><del>-        else if (valueWithCalculation.value().unit == CSSParserValue::Function &amp;&amp; equalIgnoringCase(valueWithCalculation.value().function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</del><ins>+        else if (valueWithCalculation.value().unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(valueWithCalculation.value().function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</ins><span class="cx">             parsedValue = parseImageSet();
</span><span class="cx">             if (!parsedValue)
</span><span class="cx">                 return false;
</span><span class="lines">@@ -3538,7 +3517,7 @@
</span><span class="cx">         else if (value-&gt;unit == CSSParserValue::Function
</span><span class="cx">             &amp;&amp; value-&gt;function-&gt;args
</span><span class="cx">             &amp;&amp; value-&gt;function-&gt;args-&gt;size() == 1
</span><del>-            &amp;&amp; equalIgnoringCase(value-&gt;function-&gt;name, &quot;repeat(&quot;)) {
</del><ins>+            &amp;&amp; equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;repeat(&quot;)) {
</ins><span class="cx">             ValueWithCalculation argumentWithCalculation(*value-&gt;function-&gt;args.get()-&gt;current());
</span><span class="cx">             if (validateUnit(argumentWithCalculation, FLength | FPercent | FNonNeg)) {
</span><span class="cx">                 values-&gt;append(CSSValuePool::singleton().createValue(LengthRepeat::create(createPrimitiveNumericValue(argumentWithCalculation))));
</span><span class="lines">@@ -4213,7 +4192,7 @@
</span><span class="cx">         CSSParserValueList* args = currentValue.function-&gt;args.get();
</span><span class="cx">         if (!args)
</span><span class="cx">             return false;
</span><del>-        if (equalIgnoringCase(currentValue.function-&gt;name, &quot;attr(&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(currentValue.function-&gt;name, &quot;attr(&quot;))
</ins><span class="cx">             parsedValue = parseAttr(*args);
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -4270,20 +4249,20 @@
</span><span class="cx">             CSSParserValueList* args = value-&gt;function-&gt;args.get();
</span><span class="cx">             if (!args)
</span><span class="cx">                 return false;
</span><del>-            if (equalIgnoringCase(value-&gt;function-&gt;name, &quot;attr(&quot;)) {
</del><ins>+            if (equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;attr(&quot;)) {
</ins><span class="cx">                 parsedValue = parseAttr(*args);
</span><span class="cx">                 if (!parsedValue)
</span><span class="cx">                     return false;
</span><del>-            } else if (equalIgnoringCase(value-&gt;function-&gt;name, &quot;counter(&quot;)) {
</del><ins>+            } else if (equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;counter(&quot;)) {
</ins><span class="cx">                 parsedValue = parseCounterContent(*args, false);
</span><span class="cx">                 if (!parsedValue)
</span><span class="cx">                     return false;
</span><del>-            } else if (equalIgnoringCase(value-&gt;function-&gt;name, &quot;counters(&quot;)) {
</del><ins>+            } else if (equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;counters(&quot;)) {
</ins><span class="cx">                 parsedValue = parseCounterContent(*args, true);
</span><span class="cx">                 if (!parsedValue)
</span><span class="cx">                     return false;
</span><span class="cx"> #if ENABLE(CSS_IMAGE_SET)
</span><del>-            } else if (equalIgnoringCase(value-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</del><ins>+            } else if (equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</ins><span class="cx">                 parsedValue = parseImageSet();
</span><span class="cx">                 if (!parsedValue)
</span><span class="cx">                     return false;
</span><span class="lines">@@ -4379,7 +4358,7 @@
</span><span class="cx">         return parseGeneratedImage(valueList, value);
</span><span class="cx">     
</span><span class="cx"> #if ENABLE(CSS_IMAGE_SET)
</span><del>-    if (valueList.current()-&gt;unit == CSSParserValue::Function &amp;&amp; equalIgnoringCase(valueList.current()-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</del><ins>+    if (valueList.current()-&gt;unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(valueList.current()-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</ins><span class="cx">         value = parseImageSet();
</span><span class="cx">         if (value)
</span><span class="cx">             return true;
</span><span class="lines">@@ -5059,7 +5038,7 @@
</span><span class="cx"> {
</span><span class="cx">     CSSParserValue&amp; value = *m_valueList-&gt;current();
</span><span class="cx">     if (value.unit == CSSPrimitiveValue::CSS_STRING || value.unit == CSSPrimitiveValue::CSS_IDENT) {
</span><del>-        if (value.id == CSSValueNone || (value.unit == CSSPrimitiveValue::CSS_STRING &amp;&amp; equalIgnoringCase(value, &quot;none&quot;))) {
</del><ins>+        if (value.id == CSSValueNone || (value.unit == CSSPrimitiveValue::CSS_STRING &amp;&amp; equalLettersIgnoringASCIICase(value, &quot;none&quot;))) {
</ins><span class="cx">             return CSSValuePool::singleton().createIdentifierValue(CSSValueNone);
</span><span class="cx">         }
</span><span class="cx">         return createPrimitiveStringValue(value);
</span><span class="lines">@@ -5087,7 +5066,7 @@
</span><span class="cx"> 
</span><span class="cx">     CSSParserValueList* args = value-&gt;function-&gt;args.get();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(value-&gt;function-&gt;name, &quot;container-scroll(&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;container-scroll(&quot;)) {
</ins><span class="cx">         if (!args || (args-&gt;size() != 1 &amp;&amp; args-&gt;size() != 3))
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -5128,11 +5107,11 @@
</span><span class="cx">     CSSPropertyID result = cssPropertyID(value.string);
</span><span class="cx">     if (result &amp;&amp; result != CSSPropertyAll) // &quot;all&quot; value in animation is not equivalent to the all property.
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(result);
</span><del>-    if (equalIgnoringCase(value, &quot;all&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;all&quot;)) {
</ins><span class="cx">         context.sawAnimationPropertyKeyword();
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueAll);
</span><span class="cx">     }
</span><del>-    if (equalIgnoringCase(value, &quot;none&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;none&quot;)) {
</ins><span class="cx">         context.commitAnimationPropertyKeyword();
</span><span class="cx">         context.sawAnimationPropertyKeyword();
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueNone);
</span><span class="lines">@@ -5151,9 +5130,9 @@
</span><span class="cx">         String cur = strings[i].stripWhiteSpace();
</span><span class="cx"> 
</span><span class="cx">         // For now the syntax MUST be 'xxx%' or 'from' or 'to', where xxx is a legal floating point number
</span><del>-        if (equalIgnoringCase(cur, &quot;from&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(cur, &quot;from&quot;))
</ins><span class="cx">             key = 0;
</span><del>-        else if (equalIgnoringCase(cur, &quot;to&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(cur, &quot;to&quot;))
</ins><span class="cx">             key = 1;
</span><span class="cx">         else if (cur.endsWith('%')) {
</span><span class="cx">             double k = cur.substring(0, cur.length() - 1).toDouble();
</span><span class="lines">@@ -5218,7 +5197,7 @@
</span><span class="cx"> 
</span><span class="cx">     CSSParserValueList* args = value.function-&gt;args.get();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(value.function-&gt;name, &quot;steps(&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;steps(&quot;)) {
</ins><span class="cx">         // For steps, 1 or 2 params must be specified (comma-separated)
</span><span class="cx">         if (!args || (args-&gt;size() != 1 &amp;&amp; args-&gt;size() != 3))
</span><span class="cx">             return nullptr;
</span><span class="lines">@@ -5249,7 +5228,7 @@
</span><span class="cx">         return CSSStepsTimingFunctionValue::create(numSteps, stepAtStart);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(value.function-&gt;name, &quot;cubic-bezier(&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;cubic-bezier(&quot;)) {
</ins><span class="cx">         // For cubic bezier, 4 values must be specified.
</span><span class="cx">         if (!args || args-&gt;size() != 7)
</span><span class="cx">             return nullptr;
</span><span class="lines">@@ -5827,7 +5806,7 @@
</span><span class="cx">     while (CSSParserValue* currentValue = m_valueList-&gt;current()) {
</span><span class="cx">         if (isForwardSlashOperator(*currentValue))
</span><span class="cx">             break;
</span><del>-        if (currentValue-&gt;unit == CSSParserValue::Function &amp;&amp; equalIgnoringCase(currentValue-&gt;function-&gt;name, &quot;repeat(&quot;)) {
</del><ins>+        if (currentValue-&gt;unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(currentValue-&gt;function-&gt;name, &quot;repeat(&quot;)) {
</ins><span class="cx">             if (!parseGridTrackRepeatFunction(*values))
</span><span class="cx">                 return nullptr;
</span><span class="cx">         } else {
</span><span class="lines">@@ -5913,7 +5892,7 @@
</span><span class="cx">     if (currentValue.id == CSSValueAuto)
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueAuto);
</span><span class="cx"> 
</span><del>-    if (currentValue.unit == CSSParserValue::Function &amp;&amp; equalIgnoringCase(currentValue.function-&gt;name, &quot;minmax(&quot;)) {
</del><ins>+    if (currentValue.unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(currentValue.function-&gt;name, &quot;minmax(&quot;)) {
</ins><span class="cx">         // The spec defines the following grammar: minmax( &lt;track-breadth&gt; , &lt;track-breadth&gt; )
</span><span class="cx">         CSSParserValueList* arguments = currentValue.function-&gt;args.get();
</span><span class="cx">         if (!arguments || arguments-&gt;size() != 3 || !isComma(arguments-&gt;valueAt(1)))
</span><span class="lines">@@ -6066,7 +6045,7 @@
</span><span class="cx">         // dashboard-region(label, type) or dashboard-region(label type)
</span><span class="cx">         // dashboard-region(label, type) or dashboard-region(label type)
</span><span class="cx">         CSSParserValueList* args = value-&gt;function-&gt;args.get();
</span><del>-        if (!equalIgnoringCase(value-&gt;function-&gt;name, &quot;dashboard-region(&quot;) || !args) {
</del><ins>+        if (!equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;dashboard-region(&quot;) || !args) {
</ins><span class="cx">             valid = false;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -6095,9 +6074,9 @@
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (equalIgnoringCase(*arg, &quot;circle&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(*arg, &quot;circle&quot;))
</ins><span class="cx">             region-&gt;m_isCircle = true;
</span><del>-        else if (equalIgnoringCase(*arg, &quot;rectangle&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(*arg, &quot;rectangle&quot;))
</ins><span class="cx">             region-&gt;m_isRectangle = true;
</span><span class="cx">         else {
</span><span class="cx">             valid = false;
</span><span class="lines">@@ -6325,7 +6304,7 @@
</span><span class="cx">     CSSParserValue&amp; value = *m_valueList-&gt;current();
</span><span class="cx">     CSSParserValueList* args = value.function-&gt;args.get();
</span><span class="cx"> 
</span><del>-    if (!equalIgnoringCase(value.function-&gt;name, &quot;rect(&quot;) || !args)
</del><ins>+    if (!equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;rect(&quot;) || !args)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // rect(t, r, b, l) || rect(t r b l)
</span><span class="lines">@@ -6454,7 +6433,7 @@
</span><span class="cx">     Vector&lt;RefPtr&lt;CSSPrimitiveValue&gt; &gt; widthArguments;
</span><span class="cx">     bool hasRoundedInset = false;
</span><span class="cx">     while (argument) {
</span><del>-        if (argument-&gt;unit == CSSPrimitiveValue::CSS_IDENT &amp;&amp; equalIgnoringCase(argument-&gt;string, &quot;round&quot;)) {
</del><ins>+        if (argument-&gt;unit == CSSPrimitiveValue::CSS_IDENT &amp;&amp; equalLettersIgnoringASCIICase(argument-&gt;string, &quot;round&quot;)) {
</ins><span class="cx">             hasRoundedInset = true;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -6779,15 +6758,15 @@
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CSSBasicShape&gt; shape;
</span><del>-    if (equalIgnoringCase(value.function-&gt;name, &quot;circle(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;circle(&quot;))
</ins><span class="cx">         shape = parseBasicShapeCircle(*args);
</span><del>-    else if (equalIgnoringCase(value.function-&gt;name, &quot;ellipse(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;ellipse(&quot;))
</ins><span class="cx">         shape = parseBasicShapeEllipse(*args);
</span><del>-    else if (equalIgnoringCase(value.function-&gt;name, &quot;polygon(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;polygon(&quot;))
</ins><span class="cx">         shape = parseBasicShapePolygon(*args);
</span><del>-    else if (equalIgnoringCase(value.function-&gt;name, &quot;path(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;path(&quot;))
</ins><span class="cx">         shape = parseBasicShapePath(*args);
</span><del>-    else if (equalIgnoringCase(value.function-&gt;name, &quot;inset(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;inset(&quot;))
</ins><span class="cx">         shape = parseBasicShapeInset(*args);
</span><span class="cx"> 
</span><span class="cx">     if (!shape)
</span><span class="lines">@@ -7115,7 +7094,7 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (value-&gt;unit != CSSParserValue::Function || !equalIgnoringCase(value-&gt;function-&gt;name, &quot;format(&quot;))
</del><ins>+    if (value-&gt;unit != CSSParserValue::Function || !equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;format(&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: http://www.w3.org/TR/2011/WD-css3-fonts-20111004/ says that format() contains a comma-separated list of strings,
</span><span class="lines">@@ -7167,7 +7146,7 @@
</span><span class="cx">         if (value-&gt;unit == CSSPrimitiveValue::CSS_URI) {
</span><span class="cx">             if (!parseFontFaceSrcURI(*values))
</span><span class="cx">                 return false;
</span><del>-        } else if (value-&gt;unit == CSSParserValue::Function &amp;&amp; equalIgnoringCase(value-&gt;function-&gt;name, &quot;local(&quot;)) {
</del><ins>+        } else if (value-&gt;unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(value-&gt;function-&gt;name, &quot;local(&quot;)) {
</ins><span class="cx">             if (!parseFontFaceSrcLocal(*values))
</span><span class="cx">                 return false;
</span><span class="cx">         } else
</span><span class="lines">@@ -7593,9 +7572,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool CSSParser::isCalculation(CSSParserValue&amp; value)
</span><span class="cx"> {
</span><del>-    return (value.unit == CSSParserValue::Function)
-        &amp;&amp; (equalIgnoringCase(value.function-&gt;name, &quot;calc(&quot;)
-            || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-calc(&quot;));
</del><ins>+    return value.unit == CSSParserValue::Function
+        &amp;&amp; (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;calc(&quot;)
+            || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-calc(&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline int CSSParser::colorIntFromValue(ValueWithCalculation&amp; valueWithCalculation)
</span><span class="lines">@@ -7721,7 +7700,7 @@
</span><span class="cx">     } else if (value.unit == CSSParserValue::Function
</span><span class="cx">         &amp;&amp; value.function-&gt;args
</span><span class="cx">         &amp;&amp; value.function-&gt;args-&gt;size() == 5 /* rgb + two commas */
</span><del>-        &amp;&amp; equalIgnoringCase(value.function-&gt;name, &quot;rgb(&quot;)) {
</del><ins>+        &amp;&amp; equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;rgb(&quot;)) {
</ins><span class="cx">         int colorValues[3];
</span><span class="cx">         if (!parseColorParameters(value, colorValues, false))
</span><span class="cx">             return false;
</span><span class="lines">@@ -7730,7 +7709,7 @@
</span><span class="cx">         if (value.unit == CSSParserValue::Function
</span><span class="cx">             &amp;&amp; value.function-&gt;args
</span><span class="cx">             &amp;&amp; value.function-&gt;args-&gt;size() == 7 /* rgba + three commas */
</span><del>-            &amp;&amp; equalIgnoringCase(value.function-&gt;name, &quot;rgba(&quot;)) {
</del><ins>+            &amp;&amp; equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;rgba(&quot;)) {
</ins><span class="cx">             int colorValues[4];
</span><span class="cx">             if (!parseColorParameters(value, colorValues, true))
</span><span class="cx">                 return false;
</span><span class="lines">@@ -7738,7 +7717,7 @@
</span><span class="cx">         } else if (value.unit == CSSParserValue::Function
</span><span class="cx">             &amp;&amp; value.function-&gt;args
</span><span class="cx">             &amp;&amp; value.function-&gt;args-&gt;size() == 5 /* hsl + two commas */
</span><del>-            &amp;&amp; equalIgnoringCase(value.function-&gt;name, &quot;hsl(&quot;)) {
</del><ins>+            &amp;&amp; equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;hsl(&quot;)) {
</ins><span class="cx">             double colorValues[3];
</span><span class="cx">             if (!parseHSLParameters(value, colorValues, false))
</span><span class="cx">                 return false;
</span><span class="lines">@@ -7746,7 +7725,7 @@
</span><span class="cx">         } else if (value.unit == CSSParserValue::Function
</span><span class="cx">             &amp;&amp; value.function-&gt;args
</span><span class="cx">             &amp;&amp; value.function-&gt;args-&gt;size() == 7 /* hsla + three commas */
</span><del>-            &amp;&amp; equalIgnoringCase(value.function-&gt;name, &quot;hsla(&quot;)) {
</del><ins>+            &amp;&amp; equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;hsla(&quot;)) {
</ins><span class="cx">             double colorValues[4];
</span><span class="cx">             if (!parseHSLParameters(value, colorValues, true))
</span><span class="cx">                 return false;
</span><span class="lines">@@ -8179,7 +8158,7 @@
</span><span class="cx">                 else
</span><span class="cx">                     return false;
</span><span class="cx"> #if ENABLE(CSS_IMAGE_SET)
</span><del>-            } else if (currentValue-&gt;unit == CSSParserValue::Function &amp;&amp; equalIgnoringCase(currentValue-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</del><ins>+            } else if (currentValue-&gt;unit == CSSParserValue::Function &amp;&amp; equalLettersIgnoringASCIICase(currentValue-&gt;function-&gt;name, &quot;-webkit-image-set(&quot;)) {
</ins><span class="cx">                 RefPtr&lt;CSSValue&gt; value = parseImageSet();
</span><span class="cx">                 if (value)
</span><span class="cx">                     context.commitImage(value.release());
</span><span class="lines">@@ -8638,13 +8617,13 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; result;
</span><span class="cx">     if (value.unit == CSSPrimitiveValue::CSS_IDENT) {
</span><del>-        if ((equalIgnoringCase(value, &quot;left&quot;) &amp;&amp; horizontal)
-            || (equalIgnoringCase(value, &quot;top&quot;) &amp;&amp; !horizontal))
</del><ins>+        if ((equalLettersIgnoringASCIICase(value, &quot;left&quot;) &amp;&amp; horizontal)
+            || (equalLettersIgnoringASCIICase(value, &quot;top&quot;) &amp;&amp; !horizontal))
</ins><span class="cx">             result = CSSValuePool::singleton().createValue(0., CSSPrimitiveValue::CSS_PERCENTAGE);
</span><del>-        else if ((equalIgnoringCase(value, &quot;right&quot;) &amp;&amp; horizontal)
-            || (equalIgnoringCase(value, &quot;bottom&quot;) &amp;&amp; !horizontal))
</del><ins>+        else if ((equalLettersIgnoringASCIICase(value, &quot;right&quot;) &amp;&amp; horizontal)
+            || (equalLettersIgnoringASCIICase(value, &quot;bottom&quot;) &amp;&amp; !horizontal))
</ins><span class="cx">             result = CSSValuePool::singleton().createValue(100., CSSPrimitiveValue::CSS_PERCENTAGE);
</span><del>-        else if (equalIgnoringCase(value, &quot;center&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;center&quot;))
</ins><span class="cx">             result = CSSValuePool::singleton().createValue(50., CSSPrimitiveValue::CSS_PERCENTAGE);
</span><span class="cx">     } else if (value.unit == CSSPrimitiveValue::CSS_NUMBER || value.unit == CSSPrimitiveValue::CSS_PERCENTAGE)
</span><span class="cx">         result = CSSValuePool::singleton().createValue(value.fValue, static_cast&lt;CSSPrimitiveValue::UnitTypes&gt;(value.unit));
</span><span class="lines">@@ -8656,22 +8635,22 @@
</span><span class="cx">     if (value.unit != CSSParserValue::Function)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!equalIgnoringCase(value.function-&gt;name, &quot;from(&quot;)
-        &amp;&amp; !equalIgnoringCase(value.function-&gt;name, &quot;to(&quot;)
-        &amp;&amp; !equalIgnoringCase(value.function-&gt;name, &quot;color-stop(&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;from(&quot;)
+        &amp;&amp; !equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;to(&quot;)
+        &amp;&amp; !equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;color-stop(&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     CSSParserValueList* args = value.function-&gt;args.get();
</span><span class="cx">     if (!args)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(value.function-&gt;name, &quot;from(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;to(&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;from(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;to(&quot;)) {
</ins><span class="cx">         // The &quot;from&quot; and &quot;to&quot; stops expect 1 argument.
</span><span class="cx">         if (args-&gt;size() != 1)
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><del>-        if (equalIgnoringCase(value.function-&gt;name, &quot;from(&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;from(&quot;))
</ins><span class="cx">             stop.m_position = CSSValuePool::singleton().createValue(0, CSSPrimitiveValue::CSS_NUMBER);
</span><span class="cx">         else
</span><span class="cx">             stop.m_position = CSSValuePool::singleton().createValue(1, CSSPrimitiveValue::CSS_NUMBER);
</span><span class="lines">@@ -8686,7 +8665,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // The &quot;color-stop&quot; function expects 3 arguments.
</span><del>-    if (equalIgnoringCase(value.function-&gt;name, &quot;color-stop(&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;color-stop(&quot;)) {
</ins><span class="cx">         if (args-&gt;size() != 3)
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><span class="lines">@@ -8727,9 +8706,9 @@
</span><span class="cx">     CSSParserValue* argument = args-&gt;current();
</span><span class="cx">     if (!argument || argument-&gt;unit != CSSPrimitiveValue::CSS_IDENT)
</span><span class="cx">         return false;
</span><del>-    if (equalIgnoringCase(*argument, &quot;linear&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(*argument, &quot;linear&quot;))
</ins><span class="cx">         gradientType = CSSDeprecatedLinearGradient;
</span><del>-    else if (equalIgnoringCase(*argument, &quot;radial&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(*argument, &quot;radial&quot;))
</ins><span class="cx">         gradientType = CSSDeprecatedRadialGradient;
</span><span class="cx">     else
</span><span class="cx">         return false;
</span><span class="lines">@@ -9090,7 +9069,7 @@
</span><span class="cx"> 
</span><span class="cx">         args-&gt;next();
</span><span class="cx">         expectComma = true;
</span><del>-    } else if (firstArgumentWithCalculation.value().unit == CSSPrimitiveValue::CSS_IDENT &amp;&amp; equalIgnoringCase(firstArgumentWithCalculation, &quot;to&quot;)) {
</del><ins>+    } else if (firstArgumentWithCalculation.value().unit == CSSPrimitiveValue::CSS_IDENT &amp;&amp; equalLettersIgnoringASCIICase(firstArgumentWithCalculation, &quot;to&quot;)) {
</ins><span class="cx">         // to [ [left | right] || [top | bottom] ]
</span><span class="cx">         CSSParserValue* nextArgument = args-&gt;next();
</span><span class="cx">         if (!nextArgument)
</span><span class="lines">@@ -9239,7 +9218,7 @@
</span><span class="cx">     // at &lt;position&gt;
</span><span class="cx">     RefPtr&lt;CSSValue&gt; centerX;
</span><span class="cx">     RefPtr&lt;CSSValue&gt; centerY;
</span><del>-    if (argument-&gt;unit == CSSPrimitiveValue::CSS_IDENT &amp;&amp; equalIgnoringCase(*argument, &quot;at&quot;)) {
</del><ins>+    if (argument-&gt;unit == CSSPrimitiveValue::CSS_IDENT &amp;&amp; equalLettersIgnoringASCIICase(*argument, &quot;at&quot;)) {
</ins><span class="cx">         argument = args-&gt;next();
</span><span class="cx">         if (!argument)
</span><span class="cx">             return false;
</span><span class="lines">@@ -9325,20 +9304,20 @@
</span><span class="cx">     if (value.unit != CSSParserValue::Function)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return equalIgnoringCase(value.function-&gt;name, &quot;-webkit-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-linear-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;linear-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-repeating-linear-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;repeating-linear-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-radial-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;radial-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-repeating-radial-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;repeating-radial-gradient(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-canvas(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-cross-fade(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;filter(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-filter(&quot;)
-        || equalIgnoringCase(value.function-&gt;name, &quot;-webkit-named-image(&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-linear-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;linear-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-repeating-linear-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;repeating-linear-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-radial-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;radial-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-repeating-radial-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;repeating-radial-gradient(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-canvas(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-cross-fade(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;filter(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-filter(&quot;)
+        || equalLettersIgnoringASCIICase(value.function-&gt;name, &quot;-webkit-named-image(&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool CSSParser::parseGeneratedImage(CSSParserValueList&amp; valueList, RefPtr&lt;CSSValue&gt;&amp; value)
</span><span class="lines">@@ -9348,43 +9327,43 @@
</span><span class="cx">     if (parserValue.unit != CSSParserValue::Function)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-gradient(&quot;))
</ins><span class="cx">         return parseDeprecatedGradient(valueList, value);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-linear-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-linear-gradient(&quot;))
</ins><span class="cx">         return parseDeprecatedLinearGradient(valueList, value, NonRepeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;linear-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;linear-gradient(&quot;))
</ins><span class="cx">         return parseLinearGradient(valueList, value, NonRepeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-repeating-linear-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-repeating-linear-gradient(&quot;))
</ins><span class="cx">         return parseDeprecatedLinearGradient(valueList, value, Repeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;repeating-linear-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;repeating-linear-gradient(&quot;))
</ins><span class="cx">         return parseLinearGradient(valueList, value, Repeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-radial-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-radial-gradient(&quot;))
</ins><span class="cx">         return parseDeprecatedRadialGradient(valueList, value, NonRepeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;radial-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;radial-gradient(&quot;))
</ins><span class="cx">         return parseRadialGradient(valueList, value, NonRepeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-repeating-radial-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-repeating-radial-gradient(&quot;))
</ins><span class="cx">         return parseDeprecatedRadialGradient(valueList, value, Repeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;repeating-radial-gradient(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;repeating-radial-gradient(&quot;))
</ins><span class="cx">         return parseRadialGradient(valueList, value, Repeating);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-canvas(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-canvas(&quot;))
</ins><span class="cx">         return parseCanvas(valueList, value);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-cross-fade(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-cross-fade(&quot;))
</ins><span class="cx">         return parseCrossfade(valueList, value);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;filter(&quot;) || equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-filter(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;filter(&quot;) || equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-filter(&quot;))
</ins><span class="cx">         return parseFilterImage(valueList, value);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(parserValue.function-&gt;name, &quot;-webkit-named-image(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(parserValue.function-&gt;name, &quot;-webkit-named-image(&quot;))
</ins><span class="cx">         return parseNamedImage(valueList, value);
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -9957,25 +9936,25 @@
</span><span class="cx"> 
</span><span class="cx"> static void filterInfoForName(const CSSParserString&amp; name, WebKitCSSFilterValue::FilterOperationType&amp; filterType, unsigned&amp; maximumArgumentCount)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(name, &quot;grayscale(&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(name, &quot;grayscale(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::GrayscaleFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;sepia(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;sepia(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::SepiaFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;saturate(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;saturate(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::SaturateFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;hue-rotate(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;hue-rotate(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::HueRotateFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;invert(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;invert(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::InvertFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;opacity(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;opacity(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::OpacityFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;brightness(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;brightness(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::BrightnessFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;contrast(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;contrast(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::ContrastFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;blur(&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;blur(&quot;))
</ins><span class="cx">         filterType = WebKitCSSFilterValue::BlurFilterOperation;
</span><del>-    else if (equalIgnoringCase(name, &quot;drop-shadow(&quot;)) {
</del><ins>+    else if (equalLettersIgnoringASCIICase(name, &quot;drop-shadow(&quot;)) {
</ins><span class="cx">         filterType = WebKitCSSFilterValue::DropShadowFilterOperation;
</span><span class="cx">         maximumArgumentCount = 4;  // x-offset, y-offset, blur-radius, color -- spread and inset style not allowed.
</span><span class="cx">     }
</span><span class="lines">@@ -10116,11 +10095,11 @@
</span><span class="cx"> #if ENABLE(CSS_REGIONS)
</span><span class="cx"> static bool validFlowName(const String&amp; flowName)
</span><span class="cx"> {
</span><del>-    return !(equalIgnoringCase(flowName, &quot;auto&quot;)
-            || equalIgnoringCase(flowName, &quot;default&quot;)
-            || equalIgnoringCase(flowName, &quot;inherit&quot;)
-            || equalIgnoringCase(flowName, &quot;initial&quot;)
-            || equalIgnoringCase(flowName, &quot;none&quot;));
</del><ins>+    return !(equalLettersIgnoringASCIICase(flowName, &quot;auto&quot;)
+        || equalLettersIgnoringASCIICase(flowName, &quot;default&quot;)
+        || equalLettersIgnoringASCIICase(flowName, &quot;inherit&quot;)
+        || equalLettersIgnoringASCIICase(flowName, &quot;initial&quot;)
+        || equalLettersIgnoringASCIICase(flowName, &quot;none&quot;));
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -12364,7 +12343,7 @@
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         }
</span><del>-        if (m_parsingMode == NthChildMode &amp;&amp; m_token == IDENT &amp;&amp; yylval-&gt;string.length() == 2 &amp;&amp; yylval-&gt;string.equalIgnoringCase(&quot;of&quot;)) {
</del><ins>+        if (m_parsingMode == NthChildMode &amp;&amp; m_token == IDENT &amp;&amp; yylval-&gt;string.length() == 2 &amp;&amp; equalLettersIgnoringASCIICase(yylval-&gt;string, &quot;of&quot;)) {
</ins><span class="cx">             m_parsingMode = NormalMode;
</span><span class="cx">             m_token = NTHCHILDSELECTORSEPARATOR;
</span><span class="cx">         }
</span><span class="lines">@@ -12647,7 +12626,7 @@
</span><span class="cx">             parseIdentifier(result, yylval-&gt;string, hasEscape);
</span><span class="cx">             m_token = IDENT;
</span><span class="cx">         }
</span><del>-        if (m_parsingMode == NthChildMode &amp;&amp; m_token == IDENT &amp;&amp; yylval-&gt;string.length() == 2 &amp;&amp; yylval-&gt;string.equalIgnoringCase(&quot;of&quot;)) {
</del><ins>+        if (m_parsingMode == NthChildMode &amp;&amp; m_token == IDENT &amp;&amp; yylval-&gt;string.length() == 2 &amp;&amp; equalLettersIgnoringASCIICase(yylval-&gt;string, &quot;of&quot;)) {
</ins><span class="cx">             m_parsingMode = NormalMode;
</span><span class="cx">             m_token = NTHCHILDSELECTORSEPARATOR;
</span><span class="cx">         }
</span><span class="lines">@@ -13642,8 +13621,10 @@
</span><span class="cx">     // However, since the {ident} rule precedes the {nth} rule, some of those
</span><span class="cx">     // tokens are identified as string literal. Furthermore we need to accept
</span><span class="cx">     // &quot;odd&quot; and &quot;even&quot; which does not match to an+b.
</span><del>-    return equalIgnoringCase(token, &quot;odd&quot;) || equalIgnoringCase(token, &quot;even&quot;)
-        || equalIgnoringCase(token, &quot;n&quot;) || equalIgnoringCase(token, &quot;-n&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(token, &quot;odd&quot;)
+        || equalLettersIgnoringASCIICase(token, &quot;even&quot;)
+        || equalLettersIgnoringASCIICase(token, &quot;n&quot;)
+        || equalLettersIgnoringASCIICase(token, &quot;-n&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParserValuescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParserValues.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParserValues.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSParserValues.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -182,11 +182,11 @@
</span><span class="cx"> CSSParserSelector* CSSParserSelector::parsePagePseudoSelector(const CSSParserString&amp; pseudoTypeString)
</span><span class="cx"> {
</span><span class="cx">     CSSSelector::PagePseudoClassType pseudoType;
</span><del>-    if (pseudoTypeString.equalIgnoringCase(&quot;first&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(pseudoTypeString, &quot;first&quot;))
</ins><span class="cx">         pseudoType = CSSSelector::PagePseudoClassFirst;
</span><del>-    else if (pseudoTypeString.equalIgnoringCase(&quot;left&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(pseudoTypeString, &quot;left&quot;))
</ins><span class="cx">         pseudoType = CSSSelector::PagePseudoClassLeft;
</span><del>-    else if (pseudoTypeString.equalIgnoringCase(&quot;right&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(pseudoTypeString, &quot;right&quot;))
</ins><span class="cx">         pseudoType = CSSSelector::PagePseudoClassRight;
</span><span class="cx">     else
</span><span class="cx">         return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParserValuesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParserValues.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParserValues.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSParserValues.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -107,6 +107,8 @@
</span><span class="cx">     bool m_is8Bit;
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+template&lt;unsigned length&gt; bool equalLettersIgnoringASCIICase(const CSSParserString&amp;, const char (&amp;lowercaseLetters)[length]);
+
</ins><span class="cx"> struct CSSParserFunction;
</span><span class="cx"> struct CSSParserVariable;
</span><span class="cx"> 
</span><span class="lines">@@ -275,6 +277,12 @@
</span><span class="cx">     this-&gt;valueList = valueList.release();
</span><span class="cx">     unit = ValueList;
</span><span class="cx"> }
</span><ins>+
+template&lt;unsigned length&gt; inline bool equalLettersIgnoringASCIICase(const CSSParserString&amp; string, const char (&amp;lowercaseLetters)[length])
+{
+    return WTF::equalLettersIgnoringASCIICaseCommon(string, lowercaseLetters);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+}
+
</ins><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSVariableDependentValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSVariableDependentValue.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSVariableDependentValue.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/CSSVariableDependentValue.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #ifndef CSSVariableDependentValue_h
</span><span class="cx"> #define CSSVariableDependentValue_h
</span><span class="cx"> 
</span><del>-#include &quot;CSSParserValues.h&quot;
</del><span class="cx"> #include &quot;CSSPropertyNames.h&quot;
</span><span class="cx"> #include &quot;CSSValueList.h&quot;
</span><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaList.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaList.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/MediaList.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -322,7 +322,7 @@
</span><span class="cx">     for (size_t i = 0; i &lt; queryCount; ++i) {
</span><span class="cx">         const MediaQuery* query = mediaQueries[i].get();
</span><span class="cx">         String mediaType = query-&gt;mediaType();
</span><del>-        if (!query-&gt;ignored() &amp;&amp; !equalIgnoringCase(mediaType, &quot;print&quot;)) {
</del><ins>+        if (!query-&gt;ignored() &amp;&amp; !equalLettersIgnoringASCIICase(mediaType, &quot;print&quot;)) {
</ins><span class="cx">             auto&amp; expressions = query-&gt;expressions();
</span><span class="cx">             for (size_t j = 0; j &lt; expressions.size(); ++j) {
</span><span class="cx">                 const MediaQueryExp* exp = expressions.at(j).get();
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaQueryEvaluatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> bool MediaQueryEvaluator::mediaTypeMatch(const String&amp; mediaTypeToMatch) const
</span><span class="cx"> {
</span><span class="cx">     return mediaTypeToMatch.isEmpty()
</span><del>-        || equalIgnoringCase(mediaTypeToMatch, &quot;all&quot;)
</del><ins>+        || equalLettersIgnoringASCIICase(mediaTypeToMatch, &quot;all&quot;)
</ins><span class="cx">         || equalIgnoringCase(mediaTypeToMatch, m_mediaType);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">     // Like mediaTypeMatch, but without the special cases for &quot;&quot; and &quot;all&quot;.
</span><span class="cx">     ASSERT(mediaTypeToMatch);
</span><span class="cx">     ASSERT(mediaTypeToMatch[0] != '\0');
</span><del>-    ASSERT(!equalIgnoringCase(mediaTypeToMatch, String(&quot;all&quot;)));
</del><ins>+    ASSERT(!equalLettersIgnoringASCIICase(StringView(mediaTypeToMatch), &quot;all&quot;));
</ins><span class="cx">     return equalIgnoringCase(mediaTypeToMatch, m_mediaType);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -332,9 +332,9 @@
</span><span class="cx">     // in the query. Thus, if if the document's media type is &quot;print&quot;, the
</span><span class="cx">     // media type of the query will either be &quot;print&quot; or &quot;all&quot;.
</span><span class="cx">     String mediaType = view-&gt;mediaType();
</span><del>-    if (equalIgnoringCase(mediaType, &quot;screen&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mediaType, &quot;screen&quot;))
</ins><span class="cx">         deviceScaleFactor = frame-&gt;page()-&gt;deviceScaleFactor();
</span><del>-    else if (equalIgnoringCase(mediaType, &quot;print&quot;)) {
</del><ins>+    else if (equalLettersIgnoringASCIICase(mediaType, &quot;print&quot;)) {
</ins><span class="cx">         // The resolution of images while printing should not depend on the dpi
</span><span class="cx">         // of the screen. Until we support proper ways of querying this info
</span><span class="cx">         // we use 300px which is considered minimum for current printers.
</span></span></pre></div>
<a id="trunkSourceWebCorecssSelectorPseudoTypeMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SelectorPseudoTypeMap.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SelectorPseudoTypeMap.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/SelectorPseudoTypeMap.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -26,11 +26,12 @@
</span><span class="cx"> #ifndef SelectorPseudoTypeMap_h
</span><span class="cx"> #define SelectorPseudoTypeMap_h
</span><span class="cx"> 
</span><del>-#include &quot;CSSParserValues.h&quot;
</del><span class="cx"> #include &quot;CSSSelector.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+struct CSSParserString;
+
</ins><span class="cx"> struct PseudoClassOrCompatibilityPseudoElement {
</span><span class="cx">     CSSSelector::PseudoClassType pseudoClass;
</span><span class="cx">     CSSSelector::PseudoElementType compatibilityPseudoElement;
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1025,7 +1025,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> inline bool StyleBuilderConverter::convertTouchCallout(StyleResolver&amp;, CSSValue&amp; value)
</span><span class="cx"> {
</span><del>-    return !equalIgnoringCase(downcast&lt;CSSPrimitiveValue&gt;(value).getStringValue(), &quot;none&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(downcast&lt;CSSPrimitiveValue&gt;(value).getStringValue(), &quot;none&quot;);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssmakeSelectorPseudoClassAndCompatibilityElementMappy"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -91,6 +91,8 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;SelectorPseudoTypeMap.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;CSSParserValues.h&quot;
+
</ins><span class="cx"> #if defined(__clang__)
</span><span class="cx"> #pragma clang diagnostic push
</span><span class="cx"> #pragma clang diagnostic ignored &quot;-Wunknown-pragmas&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -3342,7 +3342,7 @@
</span><span class="cx"> // FIXME: Find a better place for this functionality.
</span><span class="cx"> void setParserFeature(const String&amp; key, const String&amp; value, Document* document, void*)
</span><span class="cx"> {
</span><del>-    if (key == &quot;telephone&quot; &amp;&amp; equalIgnoringCase(value, &quot;no&quot;))
</del><ins>+    if (key == &quot;telephone&quot; &amp;&amp; equalLettersIgnoringASCIICase(value, &quot;no&quot;))
</ins><span class="cx">         document-&gt;setIsTelephoneNumberParsingAllowed(false);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3370,13 +3370,13 @@
</span><span class="cx"> 
</span><span class="cx">     // Note that we're supporting both the standard and legacy keywords for referrer
</span><span class="cx">     // policies, as defined by http://www.w3.org/TR/referrer-policy/#referrer-policy-delivery-meta
</span><del>-    if (equalIgnoringCase(policy, &quot;no-referrer&quot;) || equalIgnoringCase(policy, &quot;never&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(policy, &quot;no-referrer&quot;) || equalLettersIgnoringASCIICase(policy, &quot;never&quot;))
</ins><span class="cx">         setReferrerPolicy(ReferrerPolicyNever);
</span><del>-    else if (equalIgnoringCase(policy, &quot;unsafe-url&quot;) || equalIgnoringCase(policy, &quot;always&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(policy, &quot;unsafe-url&quot;) || equalLettersIgnoringASCIICase(policy, &quot;always&quot;))
</ins><span class="cx">         setReferrerPolicy(ReferrerPolicyAlways);
</span><del>-    else if (equalIgnoringCase(policy, &quot;origin&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(policy, &quot;origin&quot;))
</ins><span class="cx">         setReferrerPolicy(ReferrerPolicyOrigin);
</span><del>-    else if (equalIgnoringCase(policy, &quot;no-referrer-when-downgrade&quot;) || equalIgnoringCase(policy, &quot;default&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(policy, &quot;no-referrer-when-downgrade&quot;) || equalLettersIgnoringASCIICase(policy, &quot;default&quot;))
</ins><span class="cx">         setReferrerPolicy(ReferrerPolicyDefault);
</span><span class="cx">     else {
</span><span class="cx">         addConsoleMessage(MessageSource::Rendering, MessageLevel::Error, &quot;Failed to set referrer policy: The value '&quot; + policy + &quot;' is not one of 'no-referrer', 'origin', 'no-referrer-when-downgrade', or 'unsafe-url'. Defaulting to 'no-referrer'.&quot;);
</span><span class="lines">@@ -4161,21 +4161,21 @@
</span><span class="cx">     // The following strings are the ones from the DOM specification
</span><span class="cx">     // &lt;https://dom.spec.whatwg.org/#dom-document-createevent&gt;.
</span><span class="cx"> 
</span><del>-    if (equalIgnoringASCIICase(type, &quot;customevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;customevent&quot;))
</ins><span class="cx">         return CustomEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;event&quot;) || equalIgnoringASCIICase(type, &quot;events&quot;) || equalIgnoringASCIICase(type, &quot;htmlevents&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;event&quot;) || equalLettersIgnoringASCIICase(type, &quot;events&quot;) || equalLettersIgnoringASCIICase(type, &quot;htmlevents&quot;))
</ins><span class="cx">         return Event::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;keyboardevent&quot;) || equalIgnoringASCIICase(type, &quot;keyboardevents&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;keyboardevent&quot;) || equalLettersIgnoringASCIICase(type, &quot;keyboardevents&quot;))
</ins><span class="cx">         return KeyboardEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;messageevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;messageevent&quot;))
</ins><span class="cx">         return MessageEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;mouseevent&quot;) || equalIgnoringASCIICase(type, &quot;mouseevents&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;mouseevent&quot;) || equalLettersIgnoringASCIICase(type, &quot;mouseevents&quot;))
</ins><span class="cx">         return MouseEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;uievent&quot;) || equalIgnoringASCIICase(type, &quot;uievents&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;uievent&quot;) || equalLettersIgnoringASCIICase(type, &quot;uievents&quot;))
</ins><span class="cx">         return UIEvent::create();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    if (equalIgnoringASCIICase(type, &quot;touchevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;touchevent&quot;))
</ins><span class="cx">         return TouchEvent::create();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -4185,7 +4185,7 @@
</span><span class="cx">     // However, since there is no provision for initializing the event once it is created,
</span><span class="cx">     // there is no practical value in this feature.
</span><span class="cx"> 
</span><del>-    if (equalIgnoringASCIICase(type, &quot;svgzoomevents&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;svgzoomevents&quot;))
</ins><span class="cx">         return SVGZoomEvent::create();
</span><span class="cx"> 
</span><span class="cx">     // The following strings are for event classes where WebKit supplies an init function.
</span><span class="lines">@@ -4195,25 +4195,25 @@
</span><span class="cx">     // FIXME: For each of the strings below, prove there is no content depending on it and remove
</span><span class="cx">     // both the string and the corresponding init function for that class.
</span><span class="cx"> 
</span><del>-    if (equalIgnoringASCIICase(type, &quot;compositionevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;compositionevent&quot;))
</ins><span class="cx">         return CompositionEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;hashchangeevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;hashchangeevent&quot;))
</ins><span class="cx">         return HashChangeEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;mutationevent&quot;) || equalIgnoringASCIICase(type, &quot;mutationevents&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;mutationevent&quot;) || equalLettersIgnoringASCIICase(type, &quot;mutationevents&quot;))
</ins><span class="cx">         return MutationEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;overflowevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;overflowevent&quot;))
</ins><span class="cx">         return OverflowEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;storageevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;storageevent&quot;))
</ins><span class="cx">         return StorageEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;textevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;textevent&quot;))
</ins><span class="cx">         return TextEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;wheelevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;wheelevent&quot;))
</ins><span class="cx">         return WheelEvent::create();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DEVICE_ORIENTATION)
</span><del>-    if (equalIgnoringASCIICase(type, &quot;devicemotionevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;devicemotionevent&quot;))
</ins><span class="cx">         return DeviceMotionEvent::create();
</span><del>-    if (equalIgnoringASCIICase(type, &quot;deviceorientationevent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;deviceorientationevent&quot;))
</ins><span class="cx">         return DeviceOrientationEvent::create();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -5338,7 +5338,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Document::parseDNSPrefetchControlHeader(const String&amp; dnsPrefetchControl)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(dnsPrefetchControl, &quot;on&quot;) &amp;&amp; !m_haveExplicitlyDisabledDNSPrefetch) {
</del><ins>+    if (equalLettersIgnoringASCIICase(dnsPrefetchControl, &quot;on&quot;) &amp;&amp; !m_haveExplicitlyDisabledDNSPrefetch) {
</ins><span class="cx">         m_isDNSPrefetchEnabled = true;
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -2873,11 +2873,11 @@
</span><span class="cx"> SpellcheckAttributeState Element::spellcheckAttributeState() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; value = fastGetAttribute(HTMLNames::spellcheckAttr);
</span><del>-    if (value == nullAtom)
</del><ins>+    if (value.isNull())
</ins><span class="cx">         return SpellcheckAttributeDefault;
</span><del>-    if (equalIgnoringCase(value, &quot;true&quot;) || equalIgnoringCase(value, &quot;&quot;))
</del><ins>+    if (value.isEmpty() || equalLettersIgnoringASCIICase(value, &quot;true&quot;))
</ins><span class="cx">         return SpellcheckAttributeTrue;
</span><del>-    if (equalIgnoringCase(value, &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;false&quot;))
</ins><span class="cx">         return SpellcheckAttributeFalse;
</span><span class="cx"> 
</span><span class="cx">     return SpellcheckAttributeDefault;
</span><span class="lines">@@ -3372,7 +3372,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool Element::canContainRangeEndPoint() const
</span><span class="cx"> {
</span><del>-    return !equalIgnoringCase(fastGetAttribute(roleAttr), &quot;img&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(fastGetAttribute(roleAttr), &quot;img&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String Element::completeURLsInAttributeValue(const URL&amp; base, const Attribute&amp; attribute) const
</span></span></pre></div>
<a id="trunkSourceWebCoredomInlineStyleSheetOwnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -114,10 +114,13 @@
</span><span class="cx"> 
</span><span class="cx"> inline bool isValidCSSContentType(Element&amp; element, const AtomicString&amp; type)
</span><span class="cx"> {
</span><del>-    static NeverDestroyed&lt;const AtomicString&gt; cssContentType(&quot;text/css&quot;, AtomicString::ConstructFromLiteral);
</del><span class="cx">     if (type.isEmpty())
</span><span class="cx">         return true;
</span><del>-    return element.isHTMLElement() ? equalIgnoringCase(type, cssContentType) : type == cssContentType;
</del><ins>+    // FIXME: Should MIME types really be case sensitive in XML documents? Doesn't seem like they should,
+    // even though other things are case sensitive in that context. MIME types should never be case sensitive.
+    // We should verify this and then remove the isHTMLElement check here.
+    static NeverDestroyed&lt;const AtomicString&gt; cssContentType(&quot;text/css&quot;, AtomicString::ConstructFromLiteral);
+    return element.isHTMLElement() ? equalLettersIgnoringASCIICase(type, &quot;text/css&quot;) : type == cssContentType;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InlineStyleSheetOwner::createSheet(Element&amp; element, const String&amp; text)
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/dom/ScriptElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -262,7 +262,7 @@
</span><span class="cx">         String crossOriginMode = m_element.fastGetAttribute(HTMLNames::crossoriginAttr);
</span><span class="cx">         if (!crossOriginMode.isNull()) {
</span><span class="cx">             m_requestUsesAccessControl = true;
</span><del>-            StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+            StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</ins><span class="cx">             updateRequestForAccessControl(request.mutableResourceRequest(), m_element.document().securityOrigin(), allowCredentials);
</span><span class="cx">         }
</span><span class="cx">         request.setCharset(scriptCharset());
</span><span class="lines">@@ -371,11 +371,11 @@
</span><span class="cx">     String forAttribute = forAttributeValue();
</span><span class="cx">     if (!eventAttribute.isNull() &amp;&amp; !forAttribute.isNull()) {
</span><span class="cx">         forAttribute = stripLeadingAndTrailingHTMLSpaces(forAttribute);
</span><del>-        if (!equalIgnoringCase(forAttribute, &quot;window&quot;))
</del><ins>+        if (!equalLettersIgnoringASCIICase(forAttribute, &quot;window&quot;))
</ins><span class="cx">             return false;
</span><span class="cx"> 
</span><span class="cx">         eventAttribute = stripLeadingAndTrailingHTMLSpaces(eventAttribute);
</span><del>-        if (!equalIgnoringCase(eventAttribute, &quot;onload&quot;) &amp;&amp; !equalIgnoringCase(eventAttribute, &quot;onload()&quot;))
</del><ins>+        if (!equalLettersIgnoringASCIICase(eventAttribute, &quot;onload&quot;) &amp;&amp; !equalLettersIgnoringASCIICase(eventAttribute, &quot;onload()&quot;))
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebCoredomSecurityContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/SecurityContext.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SecurityContext.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/dom/SecurityContext.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -104,18 +104,18 @@
</span><span class="cx"> 
</span><span class="cx">         // Turn off the corresponding sandbox flag if it's set as &quot;allowed&quot;.
</span><span class="cx">         String sandboxToken = policy.substring(start, end - start);
</span><del>-        if (equalIgnoringCase(sandboxToken, &quot;allow-same-origin&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(sandboxToken, &quot;allow-same-origin&quot;))
</ins><span class="cx">             flags &amp;= ~SandboxOrigin;
</span><del>-        else if (equalIgnoringCase(sandboxToken, &quot;allow-forms&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(sandboxToken, &quot;allow-forms&quot;))
</ins><span class="cx">             flags &amp;= ~SandboxForms;
</span><del>-        else if (equalIgnoringCase(sandboxToken, &quot;allow-scripts&quot;)) {
</del><ins>+        else if (equalLettersIgnoringASCIICase(sandboxToken, &quot;allow-scripts&quot;)) {
</ins><span class="cx">             flags &amp;= ~SandboxScripts;
</span><span class="cx">             flags &amp;= ~SandboxAutomaticFeatures;
</span><del>-        } else if (equalIgnoringCase(sandboxToken, &quot;allow-top-navigation&quot;))
</del><ins>+        } else if (equalLettersIgnoringASCIICase(sandboxToken, &quot;allow-top-navigation&quot;))
</ins><span class="cx">             flags &amp;= ~SandboxTopNavigation;
</span><del>-        else if (equalIgnoringCase(sandboxToken, &quot;allow-popups&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(sandboxToken, &quot;allow-popups&quot;))
</ins><span class="cx">             flags &amp;= ~SandboxPopups;
</span><del>-        else if (equalIgnoringCase(sandboxToken, &quot;allow-pointer-lock&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(sandboxToken, &quot;allow-pointer-lock&quot;))
</ins><span class="cx">             flags &amp;= ~SandboxPointerLock;
</span><span class="cx">         else {
</span><span class="cx">             if (numberOfTokenErrors)
</span></span></pre></div>
<a id="trunkSourceWebCoredomViewportArgumentscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ViewportArguments.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ViewportArguments.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/dom/ViewportArguments.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -314,9 +314,9 @@
</span><span class="cx">     // 3) device-width and device-height are used as keywords.
</span><span class="cx">     // 4) Other keywords and unknown values translate to 0.0.
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(valueString, &quot;device-width&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;device-width&quot;))
</ins><span class="cx">         return ViewportArguments::ValueDeviceWidth;
</span><del>-    if (equalIgnoringCase(valueString, &quot;device-height&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;device-height&quot;))
</ins><span class="cx">         return ViewportArguments::ValueDeviceHeight;
</span><span class="cx"> 
</span><span class="cx">     float value = numericPrefix(keyString, valueString, document);
</span><span class="lines">@@ -335,13 +335,13 @@
</span><span class="cx">     // 4) device-width and device-height are translated to 10.0.
</span><span class="cx">     // 5) no and unknown values are translated to 0.0
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(valueString, &quot;yes&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;yes&quot;))
</ins><span class="cx">         return 1;
</span><del>-    if (equalIgnoringCase(valueString, &quot;no&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;no&quot;))
</ins><span class="cx">         return 0;
</span><del>-    if (equalIgnoringCase(valueString, &quot;device-width&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;device-width&quot;))
</ins><span class="cx">         return 10;
</span><del>-    if (equalIgnoringCase(valueString, &quot;device-height&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;device-height&quot;))
</ins><span class="cx">         return 10;
</span><span class="cx"> 
</span><span class="cx">     float value = numericPrefix(keyString, valueString, document);
</span><span class="lines">@@ -361,13 +361,13 @@
</span><span class="cx">     // Numbers &gt;= 1, numbers &lt;= -1, device-width and device-height are mapped to yes.
</span><span class="cx">     // Numbers in the range &lt;-1, 1&gt;, and unknown values, are mapped to no.
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(valueString, &quot;yes&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;yes&quot;))
</ins><span class="cx">         return 1;
</span><del>-    if (equalIgnoringCase(valueString, &quot;no&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;no&quot;))
</ins><span class="cx">         return 0;
</span><del>-    if (equalIgnoringCase(valueString, &quot;device-width&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;device-width&quot;))
</ins><span class="cx">         return 1;
</span><del>-    if (equalIgnoringCase(valueString, &quot;device-height&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(valueString, &quot;device-height&quot;))
</ins><span class="cx">         return 1;
</span><span class="cx"> 
</span><span class="cx">     float value = numericPrefix(keyString, valueString, document);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditorCommand.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditorCommand.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/editing/EditorCommand.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -279,9 +279,9 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeDefaultParagraphSeparator(Frame&amp; frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(value, &quot;div&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;div&quot;))
</ins><span class="cx">         frame.editor().setDefaultParagraphSeparator(EditorParagraphSeparatorIsDiv);
</span><del>-    else if (equalIgnoringCase(value, &quot;p&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;p&quot;))
</ins><span class="cx">         frame.editor().setDefaultParagraphSeparator(EditorParagraphSeparatorIsP);
</span><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="lines">@@ -459,7 +459,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertBacktab(Frame&amp; frame, Event* event, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    return targetFrame(frame, event)-&gt;eventHandler().handleTextInputEvent(&quot;\t&quot;, event, TextEventInputBackTab);
</del><ins>+    return targetFrame(frame, event)-&gt;eventHandler().handleTextInputEvent(ASCIILiteral(&quot;\t&quot;), event, TextEventInputBackTab);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertHorizontalRule(Frame&amp; frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="lines">@@ -472,7 +472,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertHTML(Frame&amp; frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><del>-    return executeInsertFragment(frame, createFragmentFromMarkup(*frame.document(), value, &quot;&quot;));
</del><ins>+    return executeInsertFragment(frame, createFragmentFromMarkup(*frame.document(), value, emptyString()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertImage(Frame&amp; frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="lines">@@ -487,7 +487,7 @@
</span><span class="cx"> {
</span><span class="cx">     switch (source) {
</span><span class="cx">     case CommandFromMenuOrKeyBinding:
</span><del>-        return targetFrame(frame, event)-&gt;eventHandler().handleTextInputEvent(&quot;\n&quot;, event, TextEventInputLineBreak);
</del><ins>+        return targetFrame(frame, event)-&gt;eventHandler().handleTextInputEvent(ASCIILiteral(&quot;\n&quot;), event, TextEventInputLineBreak);
</ins><span class="cx">     case CommandFromDOM:
</span><span class="cx">     case CommandFromDOMWithUserInterface:
</span><span class="cx">         // Doesn't scroll to make the selection visible, or modify the kill ring.
</span><span class="lines">@@ -503,7 +503,7 @@
</span><span class="cx"> static bool executeInsertNewline(Frame&amp; frame, Event* event, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><span class="cx">     Frame* targetFrame = WebCore::targetFrame(frame, event);
</span><del>-    return targetFrame-&gt;eventHandler().handleTextInputEvent(&quot;\n&quot;, event, targetFrame-&gt;editor().canEditRichly() ? TextEventInputKeyboard : TextEventInputLineBreak);
</del><ins>+    return targetFrame-&gt;eventHandler().handleTextInputEvent(ASCIILiteral(&quot;\n&quot;), event, targetFrame-&gt;editor().canEditRichly() ? TextEventInputKeyboard : TextEventInputLineBreak);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertNewlineInQuotedContent(Frame&amp; frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="lines">@@ -527,7 +527,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertTab(Frame&amp; frame, Event* event, EditorCommandSource, const String&amp;)
</span><span class="cx"> {
</span><del>-    return targetFrame(frame, event)-&gt;eventHandler().handleTextInputEvent(&quot;\t&quot;, event);
</del><ins>+    return targetFrame(frame, event)-&gt;eventHandler().handleTextInputEvent(ASCIILiteral(&quot;\t&quot;), event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeInsertText(Frame&amp; frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="lines">@@ -545,22 +545,22 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeJustifyCenter(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeApplyParagraphStyle(frame, source, EditActionCenter, CSSPropertyTextAlign, &quot;center&quot;);
</del><ins>+    return executeApplyParagraphStyle(frame, source, EditActionCenter, CSSPropertyTextAlign, ASCIILiteral(&quot;center&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeJustifyFull(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeApplyParagraphStyle(frame, source, EditActionJustify, CSSPropertyTextAlign, &quot;justify&quot;);
</del><ins>+    return executeApplyParagraphStyle(frame, source, EditActionJustify, CSSPropertyTextAlign, ASCIILiteral(&quot;justify&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeJustifyLeft(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeApplyParagraphStyle(frame, source, EditActionAlignLeft, CSSPropertyTextAlign, &quot;left&quot;);
</del><ins>+    return executeApplyParagraphStyle(frame, source, EditActionAlignLeft, CSSPropertyTextAlign, ASCIILiteral(&quot;left&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeJustifyRight(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeApplyParagraphStyle(frame, source, EditActionAlignRight, CSSPropertyTextAlign, &quot;right&quot;);
</del><ins>+    return executeApplyParagraphStyle(frame, source, EditActionAlignRight, CSSPropertyTextAlign, ASCIILiteral(&quot;right&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeMakeTextWritingDirectionLeftToRight(Frame&amp; frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="lines">@@ -1035,31 +1035,31 @@
</span><span class="cx"> static bool executeStrikethrough(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><span class="cx">     Ref&lt;EditingStyle&gt; style = EditingStyle::create();
</span><del>-    style-&gt;setStrikeThroughChange(textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, &quot;line-through&quot;));
</del><ins>+    style-&gt;setStrikeThroughChange(textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral(&quot;line-through&quot;)));
</ins><span class="cx">     // FIXME: Needs a new EditAction!
</span><span class="cx">     return applyCommandToFrame(frame, source, EditActionUnderline, WTFMove(style));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeStyleWithCSS(Frame&amp; frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><del>-    frame.editor().setShouldStyleWithCSS(!equalIgnoringCase(value, &quot;false&quot;));
</del><ins>+    frame.editor().setShouldStyleWithCSS(!equalLettersIgnoringASCIICase(value, &quot;false&quot;));
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeUseCSS(Frame&amp; frame, Event*, EditorCommandSource, const String&amp; value)
</span><span class="cx"> {
</span><del>-    frame.editor().setShouldStyleWithCSS(equalIgnoringCase(value, &quot;false&quot;));
</del><ins>+    frame.editor().setShouldStyleWithCSS(equalLettersIgnoringASCIICase(value, &quot;false&quot;));
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeSubscript(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeToggleStyle(frame, source, EditActionSubscript, CSSPropertyVerticalAlign, &quot;baseline&quot;, &quot;sub&quot;);
</del><ins>+    return executeToggleStyle(frame, source, EditActionSubscript, CSSPropertyVerticalAlign, ASCIILiteral(&quot;baseline&quot;), ASCIILiteral(&quot;sub&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeSuperscript(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeToggleStyle(frame, source, EditActionSuperscript, CSSPropertyVerticalAlign, &quot;baseline&quot;, &quot;super&quot;);
</del><ins>+    return executeToggleStyle(frame, source, EditActionSuperscript, CSSPropertyVerticalAlign, ASCIILiteral(&quot;baseline&quot;), ASCIILiteral(&quot;super&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeSwapWithMark(Frame&amp; frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="lines">@@ -1085,12 +1085,12 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeToggleBold(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeToggleStyle(frame, source, EditActionBold, CSSPropertyFontWeight, &quot;normal&quot;, &quot;bold&quot;);
</del><ins>+    return executeToggleStyle(frame, source, EditActionBold, CSSPropertyFontWeight, ASCIILiteral(&quot;normal&quot;), ASCIILiteral(&quot;bold&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeToggleItalic(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeToggleStyle(frame, source, EditActionItalics, CSSPropertyFontStyle, &quot;normal&quot;, &quot;italic&quot;);
</del><ins>+    return executeToggleStyle(frame, source, EditActionItalics, CSSPropertyFontStyle, ASCIILiteral(&quot;normal&quot;), ASCIILiteral(&quot;italic&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeTranspose(Frame&amp; frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="lines">@@ -1102,7 +1102,7 @@
</span><span class="cx"> static bool executeUnderline(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><span class="cx">     Ref&lt;EditingStyle&gt; style = EditingStyle::create();
</span><del>-    TextDecorationChange change = textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, &quot;underline&quot;);
</del><ins>+    TextDecorationChange change = textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral(&quot;underline&quot;));
</ins><span class="cx">     style-&gt;setUnderlineChange(change);
</span><span class="cx">     return applyCommandToFrame(frame, source, EditActionUnderline, WTFMove(style));
</span><span class="cx"> }
</span><span class="lines">@@ -1122,7 +1122,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool executeUnscript(Frame&amp; frame, Event*, EditorCommandSource source, const String&amp;)
</span><span class="cx"> {
</span><del>-    return executeApplyStyle(frame, source, EditActionUnscript, CSSPropertyVerticalAlign, &quot;baseline&quot;);
</del><ins>+    return executeApplyStyle(frame, source, EditActionUnscript, CSSPropertyVerticalAlign, ASCIILiteral(&quot;baseline&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool executeUnselect(Frame&amp; frame, Event*, EditorCommandSource, const String&amp;)
</span><span class="lines">@@ -1308,12 +1308,12 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateBold(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyFontWeight, &quot;bold&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyFontWeight, ASCIILiteral(&quot;bold&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateItalic(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyFontStyle, &quot;italic&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyFontStyle, ASCIILiteral(&quot;italic&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateOrderedList(Frame&amp; frame, Event*)
</span><span class="lines">@@ -1323,7 +1323,7 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateStrikethrough(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, &quot;line-through&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral(&quot;line-through&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateStyleWithCSS(Frame&amp; frame, Event*)
</span><span class="lines">@@ -1333,12 +1333,12 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateSubscript(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyVerticalAlign, &quot;sub&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyVerticalAlign, ASCIILiteral(&quot;sub&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateSuperscript(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyVerticalAlign, &quot;super&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyVerticalAlign, ASCIILiteral(&quot;super&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateTextWritingDirectionLeftToRight(Frame&amp; frame, Event*)
</span><span class="lines">@@ -1358,7 +1358,7 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateUnderline(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, &quot;underline&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral(&quot;underline&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateUnorderedList(Frame&amp; frame, Event*)
</span><span class="lines">@@ -1368,22 +1368,22 @@
</span><span class="cx"> 
</span><span class="cx"> static TriState stateJustifyCenter(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyTextAlign, &quot;center&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral(&quot;center&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateJustifyFull(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyTextAlign, &quot;justify&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral(&quot;justify&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateJustifyLeft(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyTextAlign, &quot;left&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral(&quot;left&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static TriState stateJustifyRight(Frame&amp; frame, Event*)
</span><span class="cx"> {
</span><del>-    return stateStyle(frame, CSSPropertyTextAlign, &quot;right&quot;);
</del><ins>+    return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral(&quot;right&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Value functions
</span><span class="lines">@@ -1435,10 +1435,10 @@
</span><span class="cx"> {
</span><span class="cx">     const VisibleSelection&amp; selection = frame.selection().selection();
</span><span class="cx">     if (!selection.isNonOrphanedCaretOrRange() || !selection.isContentEditable())
</span><del>-        return &quot;&quot;;
</del><ins>+        return emptyString();
</ins><span class="cx">     Element* formatBlockElement = FormatBlockCommand::elementForFormatBlockCommand(selection.firstRange().get());
</span><span class="cx">     if (!formatBlockElement)
</span><del>-        return &quot;&quot;;
</del><ins>+        return emptyString();
</ins><span class="cx">     return formatBlockElement-&gt;localName();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1742,7 +1742,7 @@
</span><span class="cx">     if (!isSupported() || !m_frame)
</span><span class="cx">         return String();
</span><span class="cx">     if (m_command-&gt;value == valueNull &amp;&amp; m_command-&gt;state != stateNone)
</span><del>-        return m_command-&gt;state(*m_frame, triggeringEvent) == TrueTriState ? &quot;true&quot; : &quot;false&quot;;
</del><ins>+        return m_command-&gt;state(*m_frame, triggeringEvent) == TrueTriState ? ASCIILiteral(&quot;true&quot;) : ASCIILiteral(&quot;false&quot;);
</ins><span class="cx">     return m_command-&gt;value(*m_frame, triggeringEvent);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTextIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextIterator.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextIterator.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/editing/TextIterator.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -261,7 +261,7 @@
</span><span class="cx">         Element&amp; element = downcast&lt;Element&gt;(*renderer-&gt;node());
</span><span class="cx">         if (is&lt;HTMLFormControlElement&gt;(element) || is&lt;HTMLLegendElement&gt;(element) || is&lt;HTMLMeterElement&gt;(element) || is&lt;HTMLProgressElement&gt;(element))
</span><span class="cx">             return true;
</span><del>-        if (equalIgnoringCase(element.fastGetAttribute(roleAttr), &quot;img&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(element.fastGetAttribute(roleAttr), &quot;img&quot;))
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiBlobcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/Blob.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/Blob.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/fileapi/Blob.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx">         for (size_t i = 0; i &lt; length; ++i) {
</span><span class="cx">             if (characters[i] &lt; 0x20 || characters[i] &gt; 0x7e)
</span><span class="cx">                 return false;
</span><del>-            if (characters[i] &gt;= 'A' &amp;&amp; characters[i] &lt;= 'Z')
</del><ins>+            if (isASCIIUpper(characters[i]))
</ins><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx">     } else {
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx">         for (size_t i = 0; i &lt; length; ++i) {
</span><span class="cx">             if (characters[i] &lt; 0x20 || characters[i] &gt; 0x7e)
</span><span class="cx">                 return false;
</span><del>-            if (characters[i] &gt;= 'A' &amp;&amp; characters[i] &lt;= 'Z')
</del><ins>+            if (isASCIIUpper(characters[i]))
</ins><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx">     for (size_t i = 0; i &lt; length; ++i) {
</span><span class="cx">         if (characters[i] &lt; 0x20 || characters[i] &gt; 0x7e)
</span><span class="cx">             return false;
</span><del>-        if (characters[i] &gt;= 'A' &amp;&amp; characters[i] &lt;= 'Z')
</del><ins>+        if (isASCIIUpper(characters[i]))
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebCorehistoryHistoryItemcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/history/HistoryItem.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/history/HistoryItem.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/history/HistoryItem.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -473,7 +473,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_referrer = request.httpReferrer();
</span><span class="cx">     
</span><del>-    if (equalIgnoringCase(request.httpMethod(), &quot;POST&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(request.httpMethod(), &quot;post&quot;)) {
</ins><span class="cx">         // FIXME: Eventually we have to make this smart enough to handle the case where
</span><span class="cx">         // we have a stream for the body to handle the &quot;data interspersed with files&quot; feature.
</span><span class="cx">         m_formData = request.httpBody();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlAutocapitalizecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/Autocapitalize.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/Autocapitalize.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/Autocapitalize.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -30,55 +30,19 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static const AtomicString&amp; valueOn()
-{
-    static NeverDestroyed&lt;const AtomicString&gt; valueOn(&quot;on&quot;, AtomicString::ConstructFromLiteral);
-    return valueOn;
-}
-
-static const AtomicString&amp; valueOff()
-{
-    static NeverDestroyed&lt;const AtomicString&gt; valueOff(&quot;off&quot;, AtomicString::ConstructFromLiteral);
-    return valueOff;
-}
-
-static const AtomicString&amp; valueNone()
-{
-    static NeverDestroyed&lt;const AtomicString&gt; valueNone(&quot;none&quot;, AtomicString::ConstructFromLiteral);
-    return valueNone;
-}
-
-static const AtomicString&amp; valueWords()
-{
-    static NeverDestroyed&lt;const AtomicString&gt; valueWords(&quot;words&quot;, AtomicString::ConstructFromLiteral);
-    return valueWords;
-}
-
-static const AtomicString&amp; valueSentences()
-{
-    static NeverDestroyed&lt;const AtomicString&gt; valueSentences(&quot;sentences&quot;, AtomicString::ConstructFromLiteral);
-    return valueSentences;
-}
-
-static const AtomicString&amp; valueAllCharacters()
-{
-    static NeverDestroyed&lt;const AtomicString&gt; valueAllCharacters(&quot;characters&quot;, AtomicString::ConstructFromLiteral);
-    return valueAllCharacters;
-}
-
</del><span class="cx"> WebAutocapitalizeType autocapitalizeTypeForAttributeValue(const AtomicString&amp; attributeValue)
</span><span class="cx"> {
</span><span class="cx">     // Omitted / missing values are the Default state.
</span><del>-    if (attributeValue.isNull() || attributeValue.isEmpty())
</del><ins>+    if (attributeValue.isEmpty())
</ins><span class="cx">         return WebAutocapitalizeTypeDefault;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(attributeValue, valueOn()) || equalIgnoringCase(attributeValue, valueSentences()))
</del><ins>+    if (equalLettersIgnoringASCIICase(attributeValue, &quot;on&quot;) || equalLettersIgnoringASCIICase(attributeValue, &quot;sentences&quot;))
</ins><span class="cx">         return WebAutocapitalizeTypeSentences;
</span><del>-    if (equalIgnoringCase(attributeValue, valueOff()) || equalIgnoringCase(attributeValue, valueNone()))
</del><ins>+    if (equalLettersIgnoringASCIICase(attributeValue, &quot;off&quot;) || equalLettersIgnoringASCIICase(attributeValue, &quot;none&quot;))
</ins><span class="cx">         return WebAutocapitalizeTypeNone;
</span><del>-    if (equalIgnoringCase(attributeValue, valueWords()))
</del><ins>+    if (equalLettersIgnoringASCIICase(attributeValue, &quot;words&quot;))
</ins><span class="cx">         return WebAutocapitalizeTypeWords;
</span><del>-    if (equalIgnoringCase(attributeValue, valueAllCharacters()))
</del><ins>+    if (equalLettersIgnoringASCIICase(attributeValue, &quot;characters&quot;))
</ins><span class="cx">         return WebAutocapitalizeTypeAllCharacters;
</span><span class="cx"> 
</span><span class="cx">     // Unrecognized values fall back to &quot;on&quot;.
</span><span class="lines">@@ -90,15 +54,23 @@
</span><span class="cx">     switch (type) {
</span><span class="cx">     case WebAutocapitalizeTypeDefault:
</span><span class="cx">         return nullAtom;
</span><del>-    case WebAutocapitalizeTypeNone:
-        return valueNone();
-    case WebAutocapitalizeTypeSentences:
-        return valueSentences();
-    case WebAutocapitalizeTypeWords:
-        return valueWords();
-    case WebAutocapitalizeTypeAllCharacters:
-        return valueAllCharacters();
</del><ins>+    case WebAutocapitalizeTypeNone: {
+        static NeverDestroyed&lt;const AtomicString&gt; valueNone(&quot;none&quot;, AtomicString::ConstructFromLiteral);
+        return valueNone;
</ins><span class="cx">     }
</span><ins>+    case WebAutocapitalizeTypeSentences: {
+        static NeverDestroyed&lt;const AtomicString&gt; valueSentences(&quot;sentences&quot;, AtomicString::ConstructFromLiteral);
+        return valueSentences;
+    }
+    case WebAutocapitalizeTypeWords: {
+        static NeverDestroyed&lt;const AtomicString&gt; valueWords(&quot;words&quot;, AtomicString::ConstructFromLiteral);
+        return valueWords;
+    }
+    case WebAutocapitalizeTypeAllCharacters: {
+        static NeverDestroyed&lt;const AtomicString&gt; valueAllCharacters(&quot;characters&quot;, AtomicString::ConstructFromLiteral);
+        return valueAllCharacters;
+    }
+    }
</ins><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return nullAtom;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -285,11 +285,10 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLAnchorElement::draggable() const
</span><span class="cx"> {
</span><del>-    // Should be draggable if we have an href attribute.
</del><span class="cx">     const AtomicString&amp; value = fastGetAttribute(draggableAttr);
</span><del>-    if (equalIgnoringCase(value, &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;true&quot;))
</ins><span class="cx">         return true;
</span><del>-    if (equalIgnoringCase(value, &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;false&quot;))
</ins><span class="cx">         return false;
</span><span class="cx">     return hasAttribute(hrefAttr);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAreaElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAreaElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLAreaElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -52,13 +52,13 @@
</span><span class="cx"> void HTMLAreaElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == shapeAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;default&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;default&quot;))
</ins><span class="cx">             m_shape = Default;
</span><del>-        else if (equalIgnoringCase(value, &quot;circle&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;circle&quot;))
</ins><span class="cx">             m_shape = Circle;
</span><del>-        else if (equalIgnoringCase(value, &quot;poly&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;poly&quot;))
</ins><span class="cx">             m_shape = Poly;
</span><del>-        else if (equalIgnoringCase(value, &quot;rect&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;rect&quot;))
</ins><span class="cx">             m_shape = Rect;
</span><span class="cx">         invalidateCachedRegion();
</span><span class="cx">     } else if (name == coordsAttr) {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBRElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBRElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBRElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLBRElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">         // If the string is empty, then don't add the clear property.
</span><span class="cx">         // &lt;br clear&gt; and &lt;br clear=&quot;&quot;&gt; are just treated like &lt;br&gt; by Gecko, Mac IE, etc. -dwh
</span><span class="cx">         if (!value.isEmpty()) {
</span><del>-            if (equalIgnoringCase(value, &quot;all&quot;))
</del><ins>+            if (equalLettersIgnoringASCIICase(value, &quot;all&quot;))
</ins><span class="cx">                 addPropertyToPresentationAttributeStyle(style, CSSPropertyClear, CSSValueBoth);
</span><span class="cx">             else
</span><span class="cx">                 addPropertyToPresentationAttributeStyle(style, CSSPropertyClear, value);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBodyElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBodyElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBodyElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLBodyElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">     } else if (name == textAttr) {
</span><span class="cx">         addHTMLColorToStyle(style, CSSPropertyColor, value);
</span><span class="cx">     } else if (name == bgpropertiesAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;fixed&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;fixed&quot;))
</ins><span class="cx">            addPropertyToPresentationAttributeStyle(style, CSSPropertyBackgroundAttachment, CSSValueFixed);
</span><span class="cx">     } else
</span><span class="cx">         HTMLElement::collectStyleForPresentationAttribute(name, value, style);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLButtonElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLButtonElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLButtonElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLButtonElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -96,9 +96,9 @@
</span><span class="cx"> void HTMLButtonElement::parseAttribute(const QualifiedName&amp; name, const AtomicString&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (name == typeAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;reset&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;reset&quot;))
</ins><span class="cx">             m_type = RESET;
</span><del>-        else if (equalIgnoringCase(value, &quot;button&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;button&quot;))
</ins><span class="cx">             m_type = BUTTON;
</span><span class="cx">         else
</span><span class="cx">             m_type = SUBMIT;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCanvasElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -497,7 +497,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (m_size.isEmpty() || !buffer())
</span><del>-        return String(&quot;data:,&quot;);
</del><ins>+        return ASCIILiteral(&quot;data:,&quot;);
</ins><span class="cx"> 
</span><span class="cx">     String encodingMimeType = toEncodingMimeType(mimeType);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDivElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDivElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDivElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLDivElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -57,11 +57,11 @@
</span><span class="cx"> void HTMLDivElement::collectStyleForPresentationAttribute(const QualifiedName&amp; name, const AtomicString&amp; value, MutableStyleProperties&amp; style)
</span><span class="cx"> {
</span><span class="cx">     if (name == alignAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;middle&quot;) || equalIgnoringCase(value, &quot;center&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;middle&quot;) || equalLettersIgnoringASCIICase(value, &quot;center&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitCenter);
</span><del>-        else if (equalIgnoringCase(value, &quot;left&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;left&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitLeft);
</span><del>-        else if (equalIgnoringCase(value, &quot;right&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;right&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitRight);
</span><span class="cx">         else
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, value);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDocument.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDocument.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLDocument.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -124,15 +124,15 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLDocument::designMode() const
</span><span class="cx"> {
</span><del>-    return inDesignMode() ? &quot;on&quot; : &quot;off&quot;;
</del><ins>+    return inDesignMode() ? ASCIILiteral(&quot;on&quot;) : ASCIILiteral(&quot;off&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLDocument::setDesignMode(const String&amp; value)
</span><span class="cx"> {
</span><span class="cx">     InheritedBool mode;
</span><del>-    if (equalIgnoringCase(value, &quot;on&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;on&quot;))
</ins><span class="cx">         mode = on;
</span><del>-    else if (equalIgnoringCase(value, &quot;off&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;off&quot;))
</ins><span class="cx">         mode = off;
</span><span class="cx">     else
</span><span class="cx">         mode = inherit;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -73,8 +73,8 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLElement::nodeName() const
</span><span class="cx"> {
</span><del>-    // FIXME: Would be nice to have an atomicstring lookup based off uppercase
-    // chars that does not have to copy the string on a hit in the hash.
</del><ins>+    // FIXME: Would be nice to have an AtomicString lookup based off uppercase
+    // ASCII characters that does not have to copy the string on a hit in the hash.
</ins><span class="cx">     if (document().isHTMLDocument()) {
</span><span class="cx">         if (!tagQName().hasPrefix())
</span><span class="cx">             return tagQName().localNameUpper();
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool isLTROrRTLIgnoringCase(const AtomicString&amp; dirAttributeValue)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(dirAttributeValue, &quot;rtl&quot;) || equalIgnoringCase(dirAttributeValue, &quot;ltr&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(dirAttributeValue, &quot;rtl&quot;) || equalLettersIgnoringASCIICase(dirAttributeValue, &quot;ltr&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> enum class ContentEditableType {
</span><span class="lines">@@ -179,11 +179,11 @@
</span><span class="cx"> {
</span><span class="cx">     if (value.isNull())
</span><span class="cx">         return ContentEditableType::Inherit;
</span><del>-    if (value.isEmpty() || equalIgnoringCase(value, &quot;true&quot;))
</del><ins>+    if (value.isEmpty() || equalLettersIgnoringASCIICase(value, &quot;true&quot;))
</ins><span class="cx">         return ContentEditableType::True;
</span><del>-    if (equalIgnoringCase(value, &quot;false&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;false&quot;))
</ins><span class="cx">         return ContentEditableType::False;
</span><del>-    if (equalIgnoringCase(value, &quot;plaintext-only&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;plaintext-only&quot;))
</ins><span class="cx">         return ContentEditableType::PlaintextOnly;
</span><span class="cx"> 
</span><span class="cx">     return ContentEditableType::Inherit;
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx"> void HTMLElement::collectStyleForPresentationAttribute(const QualifiedName&amp; name, const AtomicString&amp; value, MutableStyleProperties&amp; style)
</span><span class="cx"> {
</span><span class="cx">     if (name == alignAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;middle&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;middle&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueCenter);
</span><span class="cx">         else
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, value);
</span><span class="lines">@@ -225,13 +225,13 @@
</span><span class="cx">     } else if (name == hiddenAttr) {
</span><span class="cx">         addPropertyToPresentationAttributeStyle(style, CSSPropertyDisplay, CSSValueNone);
</span><span class="cx">     } else if (name == draggableAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;true&quot;)) {
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;true&quot;)) {
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitUserDrag, CSSValueElement);
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitUserSelect, CSSValueNone);
</span><del>-        } else if (equalIgnoringCase(value, &quot;false&quot;))
</del><ins>+        } else if (equalLettersIgnoringASCIICase(value, &quot;false&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitUserDrag, CSSValueNone);
</span><span class="cx">     } else if (name == dirAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;auto&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;auto&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyUnicodeBidi, unicodeBidiAttributeForDirAuto(*this));
</span><span class="cx">         else {
</span><span class="cx">             if (isLTROrRTLIgnoringCase(value))
</span><span class="lines">@@ -526,12 +526,11 @@
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; ltrValue(&quot;ltr&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; rtlValue(&quot;rtl&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; autoValue(&quot;auto&quot;, AtomicString::ConstructFromLiteral);
</span><del>-
-    if (equalIgnoringCase(value, ltrValue))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;ltr&quot;))
</ins><span class="cx">         return ltrValue;
</span><del>-    if (equalIgnoringCase(value, rtlValue))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;rtl&quot;))
</ins><span class="cx">         return rtlValue;
</span><del>-    if (equalIgnoringCase(value, autoValue))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;auto&quot;))
</ins><span class="cx">         return autoValue;
</span><span class="cx">     return nullAtom;
</span><span class="cx"> }
</span><span class="lines">@@ -641,18 +640,18 @@
</span><span class="cx">     // This is impossible for us to implement as the DOM tree does not allow for such structures,
</span><span class="cx">     // Opera also appears to disallow such usage.
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(where, &quot;beforeBegin&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(where, &quot;beforebegin&quot;)) {
</ins><span class="cx">         ContainerNode* parent = this-&gt;parentNode();
</span><span class="cx">         return (parent &amp;&amp; parent-&gt;insertBefore(newChild.copyRef(), this, ec)) ? newChild.ptr() : nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(where, &quot;afterBegin&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(where, &quot;afterbegin&quot;))
</ins><span class="cx">         return insertBefore(newChild.copyRef(), firstChild(), ec) ? newChild.ptr() : nullptr;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(where, &quot;beforeEnd&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(where, &quot;beforeend&quot;))
</ins><span class="cx">         return appendChild(newChild.copyRef(), ec) ? newChild.ptr() : nullptr;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(where, &quot;afterEnd&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(where, &quot;afterend&quot;)) {
</ins><span class="cx">         ContainerNode* parent = this-&gt;parentNode();
</span><span class="cx">         return (parent &amp;&amp; parent-&gt;insertBefore(newChild.copyRef(), nextSibling(), ec)) ? newChild.ptr() : nullptr;
</span><span class="cx">     }
</span><span class="lines">@@ -678,7 +677,7 @@
</span><span class="cx"> // Step 3 of http://www.whatwg.org/specs/web-apps/current-work/multipage/apis-in-html-documents.html#insertadjacenthtml()
</span><span class="cx"> static Element* contextElementForInsertion(const String&amp; where, Element* element, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(where, &quot;beforeBegin&quot;) || equalIgnoringCase(where, &quot;afterEnd&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(where, &quot;beforebegin&quot;) || equalLettersIgnoringASCIICase(where, &quot;afterend&quot;)) {
</ins><span class="cx">         ContainerNode* parent = element-&gt;parentNode();
</span><span class="cx">         if (parent &amp;&amp; !is&lt;Element&gt;(*parent)) {
</span><span class="cx">             ec = NO_MODIFICATION_ALLOWED_ERR;
</span><span class="lines">@@ -687,7 +686,7 @@
</span><span class="cx">         ASSERT_WITH_SECURITY_IMPLICATION(!parent || is&lt;Element&gt;(*parent));
</span><span class="cx">         return downcast&lt;Element&gt;(parent);
</span><span class="cx">     }
</span><del>-    if (equalIgnoringCase(where, &quot;afterBegin&quot;) || equalIgnoringCase(where, &quot;beforeEnd&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(where, &quot;afterbegin&quot;) || equalLettersIgnoringASCIICase(where, &quot;beforeend&quot;))
</ins><span class="cx">         return element;
</span><span class="cx">     ec =  SYNTAX_ERR;
</span><span class="cx">     return nullptr;
</span><span class="lines">@@ -716,25 +715,25 @@
</span><span class="cx">     CSSValueID floatValue = CSSValueInvalid;
</span><span class="cx">     CSSValueID verticalAlignValue = CSSValueInvalid;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(alignment, &quot;absmiddle&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(alignment, &quot;absmiddle&quot;))
</ins><span class="cx">         verticalAlignValue = CSSValueMiddle;
</span><del>-    else if (equalIgnoringCase(alignment, &quot;absbottom&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(alignment, &quot;absbottom&quot;))
</ins><span class="cx">         verticalAlignValue = CSSValueBottom;
</span><del>-    else if (equalIgnoringCase(alignment, &quot;left&quot;)) {
</del><ins>+    else if (equalLettersIgnoringASCIICase(alignment, &quot;left&quot;)) {
</ins><span class="cx">         floatValue = CSSValueLeft;
</span><span class="cx">         verticalAlignValue = CSSValueTop;
</span><del>-    } else if (equalIgnoringCase(alignment, &quot;right&quot;)) {
</del><ins>+    } else if (equalLettersIgnoringASCIICase(alignment, &quot;right&quot;)) {
</ins><span class="cx">         floatValue = CSSValueRight;
</span><span class="cx">         verticalAlignValue = CSSValueTop;
</span><del>-    } else if (equalIgnoringCase(alignment, &quot;top&quot;))
</del><ins>+    } else if (equalLettersIgnoringASCIICase(alignment, &quot;top&quot;))
</ins><span class="cx">         verticalAlignValue = CSSValueTop;
</span><del>-    else if (equalIgnoringCase(alignment, &quot;middle&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(alignment, &quot;middle&quot;))
</ins><span class="cx">         verticalAlignValue = CSSValueWebkitBaselineMiddle;
</span><del>-    else if (equalIgnoringCase(alignment, &quot;center&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(alignment, &quot;center&quot;))
</ins><span class="cx">         verticalAlignValue = CSSValueMiddle;
</span><del>-    else if (equalIgnoringCase(alignment, &quot;bottom&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(alignment, &quot;bottom&quot;))
</ins><span class="cx">         verticalAlignValue = CSSValueBaseline;
</span><del>-    else if (equalIgnoringCase(alignment, &quot;texttop&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(alignment, &quot;texttop&quot;))
</ins><span class="cx">         verticalAlignValue = CSSValueTextTop;
</span><span class="cx"> 
</span><span class="cx">     if (floatValue != CSSValueInvalid)
</span><span class="lines">@@ -771,13 +770,13 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLElement::setContentEditable(const String&amp; enabled, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(enabled, &quot;true&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(enabled, &quot;true&quot;))
</ins><span class="cx">         setAttribute(contenteditableAttr, AtomicString(&quot;true&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    else if (equalIgnoringCase(enabled, &quot;false&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(enabled, &quot;false&quot;))
</ins><span class="cx">         setAttribute(contenteditableAttr, AtomicString(&quot;false&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    else if (equalIgnoringCase(enabled, &quot;plaintext-only&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(enabled, &quot;plaintext-only&quot;))
</ins><span class="cx">         setAttribute(contenteditableAttr, AtomicString(&quot;plaintext-only&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    else if (equalIgnoringCase(enabled, &quot;inherit&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(enabled, &quot;inherit&quot;))
</ins><span class="cx">         removeAttribute(contenteditableAttr);
</span><span class="cx">     else
</span><span class="cx">         ec = SYNTAX_ERR;
</span><span class="lines">@@ -785,7 +784,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLElement::draggable() const
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(fastGetAttribute(draggableAttr), &quot;true&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(fastGetAttribute(draggableAttr), &quot;true&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLElement::setDraggable(bool value)
</span><span class="lines">@@ -835,9 +834,9 @@
</span><span class="cx"> 
</span><span class="cx">     if (value.isNull())
</span><span class="cx">         return TranslateAttributeInherit;
</span><del>-    if (equalIgnoringCase(value, &quot;yes&quot;) || value.isEmpty())
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;yes&quot;) || value.isEmpty())
</ins><span class="cx">         return TranslateAttributeYes;
</span><del>-    if (equalIgnoringCase(value, &quot;no&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;no&quot;))
</ins><span class="cx">         return TranslateAttributeNo;
</span><span class="cx"> 
</span><span class="cx">     return TranslateAttributeInherit;
</span><span class="lines">@@ -926,7 +925,7 @@
</span><span class="cx"> bool HTMLElement::hasDirectionAuto() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; direction = fastGetAttribute(dirAttr);
</span><del>-    return (hasTagName(bdiTag) &amp;&amp; direction.isNull()) || equalIgnoringCase(direction, &quot;auto&quot;);
</del><ins>+    return (hasTagName(bdiTag) &amp;&amp; direction.isNull()) || equalLettersIgnoringASCIICase(direction, &quot;auto&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> TextDirection HTMLElement::directionalityIfhasDirAutoAttribute(bool&amp; isAuto) const
</span><span class="lines">@@ -954,7 +953,7 @@
</span><span class="cx">     Node* node = firstChild();
</span><span class="cx">     while (node) {
</span><span class="cx">         // Skip bdi, script, style and text form controls.
</span><del>-        if (equalIgnoringCase(node-&gt;nodeName(), &quot;bdi&quot;) || node-&gt;hasTagName(scriptTag) || node-&gt;hasTagName(styleTag) 
</del><ins>+        if (equalLettersIgnoringASCIICase(node-&gt;nodeName(), &quot;bdi&quot;) || node-&gt;hasTagName(scriptTag) || node-&gt;hasTagName(styleTag)
</ins><span class="cx">             || (is&lt;Element&gt;(*node) &amp;&amp; downcast&lt;Element&gt;(*node).isTextFormControl())) {
</span><span class="cx">             node = NodeTraversal::nextSkippingChildren(*node, this);
</span><span class="cx">             continue;
</span><span class="lines">@@ -963,7 +962,7 @@
</span><span class="cx">         // Skip elements with valid dir attribute
</span><span class="cx">         if (is&lt;Element&gt;(*node)) {
</span><span class="cx">             AtomicString dirAttributeValue = downcast&lt;Element&gt;(*node).fastGetAttribute(dirAttr);
</span><del>-            if (isLTROrRTLIgnoringCase(dirAttributeValue) || equalIgnoringCase(dirAttributeValue, &quot;auto&quot;)) {
</del><ins>+            if (isLTROrRTLIgnoringCase(dirAttributeValue) || equalLettersIgnoringASCIICase(dirAttributeValue, &quot;auto&quot;)) {
</ins><span class="cx">                 node = NodeTraversal::nextSkippingChildren(*node, this);
</span><span class="cx">                 continue;
</span><span class="cx">             }
</span><span class="lines">@@ -992,7 +991,7 @@
</span><span class="cx">     if (is&lt;HTMLElement&gt;(parent) &amp;&amp; parent-&gt;selfOrAncestorHasDirAutoAttribute())
</span><span class="cx">         downcast&lt;HTMLElement&gt;(*parent).adjustDirectionalityIfNeededAfterChildAttributeChanged(this);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(value, &quot;auto&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;auto&quot;))
</ins><span class="cx">         calculateAndAdjustDirectionality();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1143,7 +1142,7 @@
</span><span class="cx">     String colorString = attributeValue.stripWhiteSpace();
</span><span class="cx"> 
</span><span class="cx">     // &quot;transparent&quot; doesn't apply a color either.
</span><del>-    if (equalIgnoringCase(colorString, &quot;transparent&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(colorString, &quot;transparent&quot;))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // If the string is a named CSS color or a 3/6-digit hex color, use that.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLEmbedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLEmbedElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLEmbedElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLEmbedElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> void HTMLEmbedElement::collectStyleForPresentationAttribute(const QualifiedName&amp; name, const AtomicString&amp; value, MutableStyleProperties&amp; style)
</span><span class="cx"> {
</span><span class="cx">     if (name == hiddenAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;yes&quot;) || equalIgnoringCase(value, &quot;true&quot;)) {
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;yes&quot;) || equalLettersIgnoringASCIICase(value, &quot;true&quot;)) {
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyWidth, 0, CSSPrimitiveValue::CSS_PX);
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyHeight, 0, CSSPrimitiveValue::CSS_PX);
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -562,13 +562,14 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE)
</span><del>-// FIXME: We should look to share these methods with class HTMLFormElement instead of duplicating them.
</del><span class="cx"> 
</span><ins>+// FIXME: We should look to share this code with class HTMLFormElement instead of duplicating the logic.
+
</ins><span class="cx"> bool HTMLFormControlElement::autocorrect() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; autocorrectValue = fastGetAttribute(autocorrectAttr);
</span><span class="cx">     if (!autocorrectValue.isEmpty())
</span><del>-        return !equalIgnoringCase(autocorrectValue, &quot;off&quot;);
</del><ins>+        return !equalLettersIgnoringASCIICase(autocorrectValue, &quot;off&quot;);
</ins><span class="cx">     if (HTMLFormElement* form = this-&gt;form())
</span><span class="cx">         return form-&gt;autocorrect();
</span><span class="cx">     return true;
</span><span class="lines">@@ -598,6 +599,7 @@
</span><span class="cx"> {
</span><span class="cx">     setAttribute(autocapitalizeAttr, value);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> HTMLFormControlElement* HTMLFormControlElement::enclosingFormControlElement(Node* node)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -388,13 +388,14 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE)
</span><del>-// FIXME: We should look to share these methods with class HTMLFormControlElement instead of duplicating them.
</del><span class="cx"> 
</span><ins>+// FIXME: We should look to share this code with class HTMLFormControlElement instead of duplicating the logic.
+
</ins><span class="cx"> bool HTMLFormElement::autocorrect() const
</span><span class="cx"> {
</span><span class="cx">     const AtomicString&amp; autocorrectValue = fastGetAttribute(autocorrectAttr);
</span><span class="cx">     if (!autocorrectValue.isEmpty())
</span><del>-        return !equalIgnoringCase(autocorrectValue, &quot;off&quot;);
</del><ins>+        return !equalLettersIgnoringASCIICase(autocorrectValue, &quot;off&quot;);
</ins><span class="cx">     if (HTMLFormElement* form = this-&gt;form())
</span><span class="cx">         return form-&gt;autocorrect();
</span><span class="cx">     return true;
</span><span class="lines">@@ -833,7 +834,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLFormElement::shouldAutocomplete() const
</span><span class="cx"> {
</span><del>-    return !equalIgnoringCase(fastGetAttribute(autocompleteAttr), &quot;off&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(fastGetAttribute(autocompleteAttr), &quot;off&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLFormElement::finishParsingChildren()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameElementBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameElementBase.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -114,9 +114,9 @@
</span><span class="cx">         // FIXME: If we are already attached, this has no effect.
</span><span class="cx">     } else if (name == scrollingAttr) {
</span><span class="cx">         // Auto and yes both simply mean &quot;allow scrolling.&quot; No means &quot;don't allow scrolling.&quot;
</span><del>-        if (equalIgnoringCase(value, &quot;auto&quot;) || equalIgnoringCase(value, &quot;yes&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;auto&quot;) || equalLettersIgnoringASCIICase(value, &quot;yes&quot;))
</ins><span class="cx">             m_scrolling = document().frameElementsShouldIgnoreScrolling() ? ScrollbarAlwaysOff : ScrollbarAuto;
</span><del>-        else if (equalIgnoringCase(value, &quot;no&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;no&quot;))
</ins><span class="cx">             m_scrolling = ScrollbarAlwaysOff;
</span><span class="cx">         // FIXME: If we are already attached, this has no effect.
</span><span class="cx">     } else
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameSetElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameSetElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameSetElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLFrameSetElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -104,10 +104,10 @@
</span><span class="cx"> 
</span><span class="cx">     if (name == frameborderAttr) {
</span><span class="cx">         if (!value.isNull()) {
</span><del>-            if (equalIgnoringCase(value, &quot;no&quot;) || equalIgnoringCase(value, &quot;0&quot;)) {
</del><ins>+            if (equalLettersIgnoringASCIICase(value, &quot;no&quot;) || value == &quot;0&quot;) {
</ins><span class="cx">                 m_frameborder = false;
</span><span class="cx">                 m_frameborderSet = true;
</span><del>-            } else if (equalIgnoringCase(value, &quot;yes&quot;) || equalIgnoringCase(value, &quot;1&quot;)) {
</del><ins>+            } else if (equalLettersIgnoringASCIICase(value, &quot;yes&quot;) || value == &quot;1&quot;) {
</ins><span class="cx">                 m_frameborderSet = true;
</span><span class="cx">             }
</span><span class="cx">         } else {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLHRElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLHRElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLHRElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLHRElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -59,10 +59,10 @@
</span><span class="cx"> void HTMLHRElement::collectStyleForPresentationAttribute(const QualifiedName&amp; name, const AtomicString&amp; value, MutableStyleProperties&amp; style)
</span><span class="cx"> {
</span><span class="cx">     if (name == alignAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;left&quot;)) {
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;left&quot;)) {
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyMarginLeft, 0, CSSPrimitiveValue::CSS_PX);
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyMarginRight, CSSValueAuto);
</span><del>-        } else if (equalIgnoringCase(value, &quot;right&quot;)) {
</del><ins>+        } else if (equalLettersIgnoringASCIICase(value, &quot;right&quot;)) {
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyMarginLeft, CSSValueAuto);
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyMarginRight, 0, CSSPrimitiveValue::CSS_PX);
</span><span class="cx">         } else {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -489,7 +489,7 @@
</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 !equalIgnoringCase(fastGetAttribute(draggableAttr), &quot;false&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(fastGetAttribute(draggableAttr), &quot;false&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLImageElement::setHeight(int value)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -641,7 +641,7 @@
</span><span class="cx">         addToRadioButtonGroup();
</span><span class="cx">         HTMLTextFormControlElement::parseAttribute(name, value);
</span><span class="cx">     } else if (name == autocompleteAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;off&quot;)) {
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;off&quot;)) {
</ins><span class="cx">             m_autocomplete = Off;
</span><span class="cx">             registerForSuspensionCallbackIfNeeded();
</span><span class="cx">         } else {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLKeygenElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLKeygenElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> {
</span><span class="cx">     // Only RSA is supported at this time.
</span><span class="cx">     const AtomicString&amp; keyType = fastGetAttribute(keytypeAttr);
</span><del>-    if (!keyType.isNull() &amp;&amp; !equalIgnoringCase(keyType, &quot;rsa&quot;))
</del><ins>+    if (!keyType.isNull() &amp;&amp; !equalLettersIgnoringASCIICase(keyType, &quot;rsa&quot;))
</ins><span class="cx">         return false;
</span><span class="cx">     String value = signedPublicKeyAndChallengeString(shadowSelect()-&gt;selectedIndex(), fastGetAttribute(challengeAttr), document().baseURL());
</span><span class="cx">     if (value.isNull())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMarqueeElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMarqueeElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMarqueeElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLMarqueeElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">             addHTMLLengthToStyle(style, CSSPropertyWebkitMarqueeSpeed, value);
</span><span class="cx">     } else if (name == loopAttr) {
</span><span class="cx">         if (!value.isEmpty()) {
</span><del>-            if (value == &quot;-1&quot; || equalIgnoringCase(value, &quot;infinite&quot;))
</del><ins>+            if (value == &quot;-1&quot; || equalLettersIgnoringASCIICase(value, &quot;infinite&quot;))
</ins><span class="cx">                 addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitMarqueeRepetition, CSSValueInfinite);
</span><span class="cx">             else
</span><span class="cx">                 addHTMLLengthToStyle(style, CSSPropertyWebkitMarqueeRepetition, value);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -659,9 +659,9 @@
</span><span class="cx">     else if (name == loopAttr)
</span><span class="cx">         updateSleepDisabling();
</span><span class="cx">     else if (name == preloadAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;none&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;none&quot;))
</ins><span class="cx">             m_preload = MediaPlayer::None;
</span><del>-        else if (equalIgnoringCase(value, &quot;metadata&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;metadata&quot;))
</ins><span class="cx">             m_preload = MediaPlayer::MetaData;
</span><span class="cx">         else {
</span><span class="cx">             // The spec does not define an &quot;invalid value default&quot; but &quot;auto&quot; is suggested as the
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMetaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMetaElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMetaElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLMetaElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -71,15 +71,15 @@
</span><span class="cx">     if (contentValue.isNull())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(name(), &quot;viewport&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(name(), &quot;viewport&quot;))
</ins><span class="cx">         document().processViewport(contentValue, ViewportArguments::ViewportMeta);
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    else if (equalIgnoringCase(name(), &quot;format-detection&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name(), &quot;format-detection&quot;))
</ins><span class="cx">         document().processFormatDetection(contentValue);
</span><del>-    else if (equalIgnoringCase(name(), &quot;apple-mobile-web-app-orientations&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name(), &quot;apple-mobile-web-app-orientations&quot;))
</ins><span class="cx">         document().processWebAppOrientations();
</span><span class="cx"> #endif
</span><del>-    else if (equalIgnoringCase(name(), &quot;referrer&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(name(), &quot;referrer&quot;))
</ins><span class="cx">         document().processReferrerPolicy(contentValue);
</span><span class="cx"> 
</span><span class="cx">     // Get the document to process the tag, but only if we're actually part of DOM tree (changing a meta tag while
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLObjectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLObjectElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -138,21 +138,20 @@
</span><span class="cx">     setNeedsStyleRecalc(ReconstructRenderTree);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void mapDataParamToSrc(Vector&lt;String&gt;* paramNames, Vector&lt;String&gt;* paramValues)
</del><ins>+static void mapDataParamToSrc(Vector&lt;String&gt;&amp; paramNames, Vector&lt;String&gt;&amp; paramValues)
</ins><span class="cx"> {
</span><del>-    // Some plugins don't understand the &quot;data&quot; attribute of the OBJECT tag (i.e. Real and WMP
-    // require &quot;src&quot; attribute).
-    int srcIndex = -1, dataIndex = -1;
-    for (unsigned int i = 0; i &lt; paramNames-&gt;size(); ++i) {
-        if (equalIgnoringCase((*paramNames)[i], &quot;src&quot;))
-            srcIndex = i;
-        else if (equalIgnoringCase((*paramNames)[i], &quot;data&quot;))
-            dataIndex = i;
</del><ins>+    // Some plugins don't understand the &quot;data&quot; attribute of the OBJECT tag (i.e. Real and WMP require &quot;src&quot; attribute).
+    bool foundSrcParam = false;
+    String dataParamValue;
+    for (unsigned i = 0; i &lt; paramNames.size(); ++i) {
+        if (equalLettersIgnoringASCIICase(paramNames[i], &quot;src&quot;))
+            foundSrcParam = true;
+        else if (equalLettersIgnoringASCIICase(paramNames[i], &quot;data&quot;))
+            dataParamValue = paramValues[i];
</ins><span class="cx">     }
</span><del>-    
-    if (srcIndex == -1 &amp;&amp; dataIndex != -1) {
-        paramNames-&gt;append(&quot;src&quot;);
-        paramValues-&gt;append((*paramValues)[dataIndex]);
</del><ins>+    if (!foundSrcParam &amp;&amp; !dataParamValue.isNull()) {
+        paramNames.append(ASCIILiteral(&quot;src&quot;));
+        paramValues.append(WTFMove(dataParamValue));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -182,10 +181,10 @@
</span><span class="cx">         paramValues.append(param.value());
</span><span class="cx"> 
</span><span class="cx">         // FIXME: url adjustment does not belong in this function.
</span><del>-        if (url.isEmpty() &amp;&amp; urlParameter.isEmpty() &amp;&amp; (equalIgnoringCase(name, &quot;src&quot;) || equalIgnoringCase(name, &quot;movie&quot;) || equalIgnoringCase(name, &quot;code&quot;) || equalIgnoringCase(name, &quot;url&quot;)))
</del><ins>+        if (url.isEmpty() &amp;&amp; urlParameter.isEmpty() &amp;&amp; (equalLettersIgnoringASCIICase(name, &quot;src&quot;) || equalLettersIgnoringASCIICase(name, &quot;movie&quot;) || equalLettersIgnoringASCIICase(name, &quot;code&quot;) || equalLettersIgnoringASCIICase(name, &quot;url&quot;)))
</ins><span class="cx">             urlParameter = stripLeadingAndTrailingHTMLSpaces(param.value());
</span><span class="cx">         // FIXME: serviceType calculation does not belong in this function.
</span><del>-        if (serviceType.isEmpty() &amp;&amp; equalIgnoringCase(name, &quot;type&quot;)) {
</del><ins>+        if (serviceType.isEmpty() &amp;&amp; equalLettersIgnoringASCIICase(name, &quot;type&quot;)) {
</ins><span class="cx">             serviceType = param.value();
</span><span class="cx">             size_t pos = serviceType.find(';');
</span><span class="cx">             if (pos != notFound)
</span><span class="lines">@@ -215,7 +214,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    mapDataParamToSrc(&amp;paramNames, &amp;paramValues);
</del><ins>+    mapDataParamToSrc(paramNames, paramValues);
</ins><span class="cx">     
</span><span class="cx">     // HTML5 says that an object resource's URL is specified by the object's data
</span><span class="cx">     // attribute, not by a param element. However, for compatibility, allow the
</span><span class="lines">@@ -259,11 +258,11 @@
</span><span class="cx">     if (!document().page()
</span><span class="cx">         || !document().page()-&gt;settings().needsSiteSpecificQuirks()
</span><span class="cx">         || hasFallbackContent()
</span><del>-        || !equalIgnoringCase(fastGetAttribute(classidAttr), &quot;clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B&quot;))
</del><ins>+        || !equalLettersIgnoringASCIICase(fastGetAttribute(classidAttr), &quot;clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; metaElement : descendantsOfType&lt;HTMLMetaElement&gt;(document())) {
</span><del>-        if (equalIgnoringCase(metaElement.name(), &quot;generator&quot;) &amp;&amp; metaElement.content().startsWith(&quot;Mac OS X Server Web Services Server&quot;, false))
</del><ins>+        if (equalLettersIgnoringASCIICase(metaElement.name(), &quot;generator&quot;) &amp;&amp; metaElement.content().startsWith(&quot;Mac OS X Server Web Services Server&quot;, false))
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -475,7 +474,7 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : childrenOfType&lt;Element&gt;(*this)) {
</span><del>-        if (child.hasTagName(paramTag) &amp;&amp; equalIgnoringCase(child.getNameAttribute(), &quot;type&quot;)
</del><ins>+        if (child.hasTagName(paramTag) &amp;&amp; equalLettersIgnoringASCIICase(child.getNameAttribute(), &quot;type&quot;)
</ins><span class="cx">             &amp;&amp; MIMETypeRegistry::isJavaAppletMIMEType(child.getAttribute(valueAttr).string()))
</span><span class="cx">             return true;
</span><span class="cx">         if (child.hasTagName(objectTag) &amp;&amp; downcast&lt;HTMLObjectElement&gt;(child).containsJavaApplet())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLParagraphElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLParagraphElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLParagraphElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLParagraphElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -58,11 +58,11 @@
</span><span class="cx"> void HTMLParagraphElement::collectStyleForPresentationAttribute(const QualifiedName&amp; name, const AtomicString&amp; value, MutableStyleProperties&amp; style)
</span><span class="cx"> {
</span><span class="cx">     if (name == alignAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;middle&quot;) || equalIgnoringCase(value, &quot;center&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;middle&quot;) || equalLettersIgnoringASCIICase(value, &quot;center&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitCenter);
</span><del>-        else if (equalIgnoringCase(value, &quot;left&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;left&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitLeft);
</span><del>-        else if (equalIgnoringCase(value, &quot;right&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;right&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitRight);
</span><span class="cx">         else
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, value);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLParamElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLParamElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLParamElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLParamElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLParamElement::isURLParameter(const String&amp; name)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(name, &quot;data&quot;) || equalIgnoringCase(name, &quot;movie&quot;) || equalIgnoringCase(name, &quot;src&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(name, &quot;data&quot;) || equalLettersIgnoringASCIICase(name, &quot;movie&quot;) || equalLettersIgnoringASCIICase(name, &quot;src&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLParamElement::isURLAttribute(const Attribute&amp; attribute) const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -301,21 +301,21 @@
</span><span class="cx">     borderBottom = false;
</span><span class="cx">     borderLeft = false;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(value, &quot;above&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(value, &quot;above&quot;))
</ins><span class="cx">         borderTop = true;
</span><del>-    else if (equalIgnoringCase(value, &quot;below&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;below&quot;))
</ins><span class="cx">         borderBottom = true;
</span><del>-    else if (equalIgnoringCase(value, &quot;hsides&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;hsides&quot;))
</ins><span class="cx">         borderTop = borderBottom = true;
</span><del>-    else if (equalIgnoringCase(value, &quot;vsides&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;vsides&quot;))
</ins><span class="cx">         borderLeft = borderRight = true;
</span><del>-    else if (equalIgnoringCase(value, &quot;lhs&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;lhs&quot;))
</ins><span class="cx">         borderLeft = true;
</span><del>-    else if (equalIgnoringCase(value, &quot;rhs&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;rhs&quot;))
</ins><span class="cx">         borderRight = true;
</span><del>-    else if (equalIgnoringCase(value, &quot;box&quot;) || equalIgnoringCase(value, &quot;border&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(value, &quot;box&quot;) || equalLettersIgnoringASCIICase(value, &quot;border&quot;))
</ins><span class="cx">         borderTop = borderBottom = borderLeft = borderRight = true;
</span><del>-    else if (!equalIgnoringCase(value, &quot;void&quot;))
</del><ins>+    else if (!equalLettersIgnoringASCIICase(value, &quot;void&quot;))
</ins><span class="cx">         return false;
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -351,7 +351,7 @@
</span><span class="cx">         addHTMLLengthToStyle(style, CSSPropertyMarginRight, value);
</span><span class="cx">     } else if (name == alignAttr) {
</span><span class="cx">         if (!value.isEmpty()) {
</span><del>-            if (equalIgnoringCase(value, &quot;center&quot;)) {
</del><ins>+            if (equalLettersIgnoringASCIICase(value, &quot;center&quot;)) {
</ins><span class="cx">                 addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitMarginStart, CSSValueAuto);
</span><span class="cx">                 addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitMarginEnd, CSSValueAuto);
</span><span class="cx">             } else
</span><span class="lines">@@ -403,15 +403,15 @@
</span><span class="cx">         m_frameAttr = getBordersFromFrameAttributeValue(value, borderTop, borderRight, borderBottom, borderLeft);
</span><span class="cx">     } else if (name == rulesAttr) {
</span><span class="cx">         m_rulesAttr = UnsetRules;
</span><del>-        if (equalIgnoringCase(value, &quot;none&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;none&quot;))
</ins><span class="cx">             m_rulesAttr = NoneRules;
</span><del>-        else if (equalIgnoringCase(value, &quot;groups&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;groups&quot;))
</ins><span class="cx">             m_rulesAttr = GroupsRules;
</span><del>-        else if (equalIgnoringCase(value, &quot;rows&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;rows&quot;))
</ins><span class="cx">             m_rulesAttr = RowsRules;
</span><del>-        else if (equalIgnoringCase(value, &quot;cols&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;cols&quot;))
</ins><span class="cx">             m_rulesAttr = ColsRules;
</span><del>-        else if (equalIgnoringCase(value, &quot;all&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;all&quot;))
</ins><span class="cx">             m_rulesAttr = AllRules;
</span><span class="cx">     } else if (name == cellpaddingAttr) {
</span><span class="cx">         if (!value.isEmpty())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTablePartElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTablePartElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTablePartElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLTablePartElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -54,24 +54,24 @@
</span><span class="cx">         if (!url.isEmpty())
</span><span class="cx">             style.setProperty(CSSProperty(CSSPropertyBackgroundImage, CSSImageValue::create(document().completeURL(url).string())));
</span><span class="cx">     } else if (name == valignAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;top&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;top&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, CSSValueTop);
</span><del>-        else if (equalIgnoringCase(value, &quot;middle&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;middle&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, CSSValueMiddle);
</span><del>-        else if (equalIgnoringCase(value, &quot;bottom&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;bottom&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, CSSValueBottom);
</span><del>-        else if (equalIgnoringCase(value, &quot;baseline&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;baseline&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, CSSValueBaseline);
</span><span class="cx">         else
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, value);
</span><span class="cx">     } else if (name == alignAttr) {
</span><del>-        if (equalIgnoringCase(value, &quot;middle&quot;) || equalIgnoringCase(value, &quot;center&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;middle&quot;) || equalLettersIgnoringASCIICase(value, &quot;center&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitCenter);
</span><del>-        else if (equalIgnoringCase(value, &quot;absmiddle&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;absmiddle&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueCenter);
</span><del>-        else if (equalIgnoringCase(value, &quot;left&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;left&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitLeft);
</span><del>-        else if (equalIgnoringCase(value, &quot;right&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;right&quot;))
</ins><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitRight);
</span><span class="cx">         else
</span><span class="cx">             addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, value);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -190,9 +190,9 @@
</span><span class="cx">         // The virtual/physical values were a Netscape extension of HTML 3.0, now deprecated.
</span><span class="cx">         // The soft/hard /off values are a recommendation for HTML 4 extension by IE and NS 4.
</span><span class="cx">         WrapMethod wrap;
</span><del>-        if (equalIgnoringCase(value, &quot;physical&quot;) || equalIgnoringCase(value, &quot;hard&quot;) || equalIgnoringCase(value, &quot;on&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(value, &quot;physical&quot;) || equalLettersIgnoringASCIICase(value, &quot;hard&quot;) || equalLettersIgnoringASCIICase(value, &quot;on&quot;))
</ins><span class="cx">             wrap = HardWrap;
</span><del>-        else if (equalIgnoringCase(value, &quot;off&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(value, &quot;off&quot;))
</ins><span class="cx">             wrap = NoWrap;
</span><span class="cx">         else
</span><span class="cx">             wrap = SoftWrap;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -244,12 +244,12 @@
</span><span class="cx"> 
</span><span class="cx">     subtreeHasChanged();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(selectionMode, &quot;select&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(selectionMode, &quot;select&quot;)) {
</ins><span class="cx">         newSelectionStart = start;
</span><span class="cx">         newSelectionEnd = start + replacementLength;
</span><del>-    } else if (equalIgnoringCase(selectionMode, &quot;start&quot;))
</del><ins>+    } else if (equalLettersIgnoringASCIICase(selectionMode, &quot;start&quot;))
</ins><span class="cx">         newSelectionStart = newSelectionEnd = start;
</span><del>-    else if (equalIgnoringCase(selectionMode, &quot;end&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(selectionMode, &quot;end&quot;))
</ins><span class="cx">         newSelectionStart = newSelectionEnd = start + replacementLength;
</span><span class="cx">     else {
</span><span class="cx">         // Default is &quot;preserve&quot;.
</span><span class="lines">@@ -745,10 +745,10 @@
</span><span class="cx">         if (dirAttributeValue.isNull())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        if (equalIgnoringCase(dirAttributeValue, &quot;rtl&quot;) || equalIgnoringCase(dirAttributeValue, &quot;ltr&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(dirAttributeValue, &quot;rtl&quot;) || equalLettersIgnoringASCIICase(dirAttributeValue, &quot;ltr&quot;))
</ins><span class="cx">             return dirAttributeValue;
</span><span class="cx"> 
</span><del>-        if (equalIgnoringCase(dirAttributeValue, &quot;auto&quot;)) {
</del><ins>+        if (equalLettersIgnoringASCIICase(dirAttributeValue, &quot;auto&quot;)) {
</ins><span class="cx">             bool isAuto;
</span><span class="cx">             TextDirection textDirection = static_cast&lt;const HTMLElement*&gt;(element)-&gt;directionalityIfhasDirAutoAttribute(isAuto);
</span><span class="cx">             return textDirection == RTL ? &quot;rtl&quot; : &quot;ltr&quot;;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx"> #if PLATFORM(IOS) &amp;&amp; ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="cx">         if (name == webkitairplayAttr) {
</span><span class="cx">             bool disabled = false;
</span><del>-            if (equalIgnoringCase(fastGetAttribute(HTMLNames::webkitairplayAttr), &quot;deny&quot;))
</del><ins>+            if (equalLettersIgnoringASCIICase(fastGetAttribute(HTMLNames::webkitairplayAttr), &quot;deny&quot;))
</ins><span class="cx">                 disabled = true;
</span><span class="cx">             mediaSession().setWirelessVideoPlaybackDisabled(*this, disabled);
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/InputType.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/InputType.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/InputType.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1006,8 +1006,7 @@
</span><span class="cx">     if (newValue &lt; stepRange.minimum())
</span><span class="cx">         newValue = stepRange.minimum();
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; stepString = element().fastGetAttribute(stepAttr);
-    if (!equalIgnoringCase(stepString, &quot;any&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(element().fastGetAttribute(stepAttr), &quot;any&quot;))
</ins><span class="cx">         newValue = stepRange.alignValueForStep(current, newValue);
</span><span class="cx"> 
</span><span class="cx">     if (newValue - stepRange.maximum() &gt; acceptableErrorValue) {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlLinkRelAttributecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/LinkRelAttribute.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/LinkRelAttribute.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/LinkRelAttribute.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -42,19 +42,19 @@
</span><span class="cx"> 
</span><span class="cx"> LinkRelAttribute::LinkRelAttribute(const String&amp; rel)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(rel, &quot;stylesheet&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(rel, &quot;stylesheet&quot;))
</ins><span class="cx">         isStyleSheet = true;
</span><del>-    else if (equalIgnoringCase(rel, &quot;icon&quot;) || equalIgnoringCase(rel, &quot;shortcut icon&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(rel, &quot;icon&quot;) || equalLettersIgnoringASCIICase(rel, &quot;shortcut icon&quot;))
</ins><span class="cx">         iconType = Favicon;
</span><span class="cx"> #if ENABLE(TOUCH_ICON_LOADING)
</span><del>-    else if (equalIgnoringCase(rel, &quot;apple-touch-icon&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(rel, &quot;apple-touch-icon&quot;))
</ins><span class="cx">         iconType = TouchIcon;
</span><del>-    else if (equalIgnoringCase(rel, &quot;apple-touch-icon-precomposed&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(rel, &quot;apple-touch-icon-precomposed&quot;))
</ins><span class="cx">         iconType = TouchPrecomposedIcon;
</span><span class="cx"> #endif
</span><del>-    else if (equalIgnoringCase(rel, &quot;dns-prefetch&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(rel, &quot;dns-prefetch&quot;))
</ins><span class="cx">         isDNSPrefetch = true;
</span><del>-    else if (equalIgnoringCase(rel, &quot;alternate stylesheet&quot;) || equalIgnoringCase(rel, &quot;stylesheet alternate&quot;)) {
</del><ins>+    else if (equalLettersIgnoringASCIICase(rel, &quot;alternate stylesheet&quot;) || equalLettersIgnoringASCIICase(rel, &quot;stylesheet alternate&quot;)) {
</ins><span class="cx">         isStyleSheet = true;
</span><span class="cx">         isAlternate = true;
</span><span class="cx">     } else {
</span><span class="lines">@@ -64,22 +64,22 @@
</span><span class="cx">         Vector&lt;String&gt; list;
</span><span class="cx">         relCopy.split(' ', list);
</span><span class="cx">         for (auto&amp; word : list) {
</span><del>-            if (equalIgnoringCase(word, &quot;stylesheet&quot;))
</del><ins>+            if (equalLettersIgnoringASCIICase(word, &quot;stylesheet&quot;))
</ins><span class="cx">                 isStyleSheet = true;
</span><del>-            else if (equalIgnoringCase(word, &quot;alternate&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(word, &quot;alternate&quot;))
</ins><span class="cx">                 isAlternate = true;
</span><del>-            else if (equalIgnoringCase(word, &quot;icon&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(word, &quot;icon&quot;))
</ins><span class="cx">                 iconType = Favicon;
</span><span class="cx"> #if ENABLE(TOUCH_ICON_LOADING)
</span><del>-            else if (equalIgnoringCase(word, &quot;apple-touch-icon&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(word, &quot;apple-touch-icon&quot;))
</ins><span class="cx">                 iconType = TouchIcon;
</span><del>-            else if (equalIgnoringCase(word, &quot;apple-touch-icon-precomposed&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(word, &quot;apple-touch-icon-precomposed&quot;))
</ins><span class="cx">                 iconType = TouchPrecomposedIcon;
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(LINK_PREFETCH)
</span><del>-            else if (equalIgnoringCase(word, &quot;prefetch&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(word, &quot;prefetch&quot;))
</ins><span class="cx">                 isLinkPrefetch = true;
</span><del>-            else if (equalIgnoringCase(word, &quot;subresource&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(word, &quot;subresource&quot;))
</ins><span class="cx">                 isLinkSubresource = true;
</span><span class="cx"> #endif
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaElementSessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaElementSession.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaElementSession.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/MediaElementSession.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -237,11 +237,11 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     String legacyAirplayAttributeValue = element.fastGetAttribute(HTMLNames::webkitairplayAttr);
</span><del>-    if (equalIgnoringCase(legacyAirplayAttributeValue, &quot;deny&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(legacyAirplayAttributeValue, &quot;deny&quot;)) {
</ins><span class="cx">         LOG(Media, &quot;MediaElementSession::wirelessVideoPlaybackDisabled - returning TRUE because of legacy attribute&quot;);
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><del>-    if (equalIgnoringCase(legacyAirplayAttributeValue, &quot;allow&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(legacyAirplayAttributeValue, &quot;allow&quot;)) {
</ins><span class="cx">         LOG(Media, &quot;MediaElementSession::wirelessVideoPlaybackDisabled - returning FALSE because of legacy attribute&quot;);
</span><span class="cx">         return false;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlNumberInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/NumberInputType.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/NumberInputType.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/NumberInputType.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -166,8 +166,8 @@
</span><span class="cx"> {
</span><span class="cx">     preferredSize = defaultSize;
</span><span class="cx"> 
</span><del>-    const String stepString = element().fastGetAttribute(stepAttr);
-    if (equalIgnoringCase(stepString, &quot;any&quot;))
</del><ins>+    auto&amp; stepString = element().fastGetAttribute(stepAttr);
+    if (equalLettersIgnoringASCIICase(stepString, &quot;any&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     const Decimal minimum = parseToDecimalForNumberType(element().fastGetAttribute(minAttr));
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRangeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RangeInputType.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RangeInputType.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/RangeInputType.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx"> 
</span><span class="cx">     const AtomicString&amp; precisionValue = element().fastGetAttribute(precisionAttr);
</span><span class="cx">     if (!precisionValue.isNull()) {
</span><del>-        const Decimal step = equalIgnoringCase(precisionValue, &quot;float&quot;) ? Decimal::nan() : 1;
</del><ins>+        const Decimal step = equalLettersIgnoringASCIICase(precisionValue, &quot;float&quot;) ? Decimal::nan() : 1;
</ins><span class="cx">         return StepRange(minimum, minimum, maximum, step, stepDescription);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -207,7 +207,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: We can't use stepUp() for the step value &quot;any&quot;. So, we increase
</span><span class="cx">     // or decrease the value by 1/100 of the value range. Is it reasonable?
</span><del>-    const Decimal step = equalIgnoringCase(element().fastGetAttribute(stepAttr), &quot;any&quot;) ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step();
</del><ins>+    const Decimal step = equalLettersIgnoringASCIICase(element().fastGetAttribute(stepAttr), &quot;any&quot;) ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step();
</ins><span class="cx">     const Decimal bigStep = std::max((stepRange.maximum() - stepRange.minimum()) / 10, step);
</span><span class="cx"> 
</span><span class="cx">     bool isVertical = false;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlStepRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/StepRange.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/StepRange.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/StepRange.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">     if (stepString.isEmpty())
</span><span class="cx">         return stepDescription.defaultValue();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(stepString, &quot;any&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(stepString, &quot;any&quot;)) {
</ins><span class="cx">         switch (anyStepHandling) {
</span><span class="cx">         case RejectAny:
</span><span class="cx">             return Decimal::nan();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasStyle.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasStyle.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/canvas/CanvasStyle.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -45,9 +45,9 @@
</span><span class="cx"> 
</span><span class="cx"> enum ColorParseResult { ParsedRGBA, ParsedCurrentColor, ParsedSystemColor, ParseFailed };
</span><span class="cx"> 
</span><del>-static ColorParseResult parseColor(RGBA32&amp; parsedColor, const String&amp; colorString, Document* document = 0)
</del><ins>+static ColorParseResult parseColor(RGBA32&amp; parsedColor, const String&amp; colorString, Document* document = nullptr)
</ins><span class="cx"> {
</span><del>-    if (equalIgnoringCase(colorString, &quot;currentcolor&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(colorString, &quot;currentcolor&quot;))
</ins><span class="cx">         return ParsedCurrentColor;
</span><span class="cx">     if (CSSParser::parseColor(parsedColor, colorString))
</span><span class="cx">         return ParsedRGBA;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLConstructionSitecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -375,12 +375,12 @@
</span><span class="cx">         || publicId.startsWith(&quot;-//W3C//DTD HTML Experimental 970421//&quot;, false)
</span><span class="cx">         || publicId.startsWith(&quot;-//W3C//DTD W3 HTML//&quot;, false)
</span><span class="cx">         || publicId.startsWith(&quot;-//W3O//DTD W3 HTML 3.0//&quot;, false)
</span><del>-        || equalIgnoringCase(publicId, &quot;-//W3O//DTD W3 HTML Strict 3.0//EN//&quot;)
</del><ins>+        || equalLettersIgnoringASCIICase(publicId, &quot;-//w3o//dtd w3 html strict 3.0//en//&quot;)
</ins><span class="cx">         || publicId.startsWith(&quot;-//WebTechs//DTD Mozilla HTML 2.0//&quot;, false)
</span><span class="cx">         || publicId.startsWith(&quot;-//WebTechs//DTD Mozilla HTML//&quot;, false)
</span><del>-        || equalIgnoringCase(publicId, &quot;-/W3C/DTD HTML 4.0 Transitional/EN&quot;)
-        || equalIgnoringCase(publicId, &quot;HTML&quot;)
-        || equalIgnoringCase(systemId, &quot;http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd&quot;)
</del><ins>+        || equalLettersIgnoringASCIICase(publicId, &quot;-/w3c/dtd html 4.0 transitional/en&quot;)
+        || equalLettersIgnoringASCIICase(publicId, &quot;html&quot;)
+        || equalLettersIgnoringASCIICase(systemId, &quot;http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd&quot;)
</ins><span class="cx">         || (systemId.isEmpty() &amp;&amp; publicId.startsWith(&quot;-//W3C//DTD HTML 4.01 Frameset//&quot;, false))
</span><span class="cx">         || (systemId.isEmpty() &amp;&amp; publicId.startsWith(&quot;-//W3C//DTD HTML 4.01 Transitional//&quot;, false))) {
</span><span class="cx">         setCompatibilityMode(DocumentCompatibilityMode::QuirksMode);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLElementStackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLElementStack.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLElementStack.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/parser/HTMLElementStack.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -284,8 +284,8 @@
</span><span class="cx">         const Attribute* encodingAttr = item.findAttribute(MathMLNames::encodingAttr);
</span><span class="cx">         if (encodingAttr) {
</span><span class="cx">             const String&amp; encoding = encodingAttr-&gt;value();
</span><del>-            return equalIgnoringCase(encoding, &quot;text/html&quot;)
-                || equalIgnoringCase(encoding, &quot;application/xhtml+xml&quot;);
</del><ins>+            return equalLettersIgnoringASCIICase(encoding, &quot;text/html&quot;)
+                || equalLettersIgnoringASCIICase(encoding, &quot;application/xhtml+xml&quot;);
</ins><span class="cx">         }
</span><span class="cx">         return false;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLMetaCharsetParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">         const String&amp; attributeValue = attribute.second;
</span><span class="cx"> 
</span><span class="cx">         if (attributeName == http_equivAttr) {
</span><del>-            if (equalIgnoringCase(attributeValue, &quot;content-type&quot;))
</del><ins>+            if (equalLettersIgnoringASCIICase(attributeValue, &quot;content-type&quot;))
</ins><span class="cx">                 gotPragma = true;
</span><span class="cx">         } else if (charset.isEmpty()) {
</span><span class="cx">             if (attributeName == charsetAttr) {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLPreloadScannercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -229,13 +229,13 @@
</span><span class="cx">             if (match(attributeName, srcAttr))
</span><span class="cx">                 setUrlToLoad(attributeValue);
</span><span class="cx">             else if (match(attributeName, typeAttr))
</span><del>-                m_inputIsImage = equalIgnoringCase(attributeValue, InputTypeNames::image());
</del><ins>+                m_inputIsImage = equalLettersIgnoringASCIICase(attributeValue, &quot;image&quot;);
</ins><span class="cx">             break;
</span><span class="cx">         case TagId::Meta:
</span><span class="cx">             if (match(attributeName, contentAttr))
</span><span class="cx">                 m_metaContent = attributeValue;
</span><span class="cx">             else if (match(attributeName, nameAttr))
</span><del>-                m_metaIsViewport = equalIgnoringCase(attributeValue, &quot;viewport&quot;);
</del><ins>+                m_metaIsViewport = equalLettersIgnoringASCIICase(attributeValue, &quot;viewport&quot;);
</ins><span class="cx">             break;
</span><span class="cx">         case TagId::Base:
</span><span class="cx">         case TagId::Style:
</span><span class="lines">@@ -315,7 +315,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool crossOriginModeAllowsCookies()
</span><span class="cx">     {
</span><del>-        return m_crossOriginMode.isNull() || equalIgnoringCase(m_crossOriginMode, &quot;use-credentials&quot;);
</del><ins>+        return m_crossOriginMode.isNull() || equalLettersIgnoringASCIICase(m_crossOriginMode, &quot;use-credentials&quot;);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     TagId m_tagId;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTreeBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -777,7 +777,7 @@
</span><span class="cx">         m_tree.reconstructTheActiveFormattingElements();
</span><span class="cx">         m_tree.insertSelfClosingHTMLElement(&amp;token);
</span><span class="cx">         Attribute* typeAttribute = findAttribute(token.attributes(), typeAttr);
</span><del>-        if (!typeAttribute || !equalIgnoringCase(typeAttribute-&gt;value(), &quot;hidden&quot;))
</del><ins>+        if (!typeAttribute || !equalLettersIgnoringASCIICase(typeAttribute-&gt;value(), &quot;hidden&quot;))
</ins><span class="cx">             m_framesetOk = false;
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -1019,7 +1019,7 @@
</span><span class="cx">     }
</span><span class="cx">     if (token.name() == inputTag) {
</span><span class="cx">         Attribute* typeAttribute = findAttribute(token.attributes(), typeAttr);
</span><del>-        if (typeAttribute &amp;&amp; equalIgnoringCase(typeAttribute-&gt;value(), &quot;hidden&quot;)) {
</del><ins>+        if (typeAttribute &amp;&amp; equalLettersIgnoringASCIICase(typeAttribute-&gt;value(), &quot;hidden&quot;)) {
</ins><span class="cx">             parseError(token);
</span><span class="cx">             m_tree.insertSelfClosingHTMLElement(&amp;token);
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserXSSAuditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/XSSAuditor.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/XSSAuditor.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/parser/XSSAuditor.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx"> static bool isDangerousHTTPEquiv(const String&amp; value)
</span><span class="cx"> {
</span><span class="cx">     String equiv = value.stripWhiteSpace();
</span><del>-    return equalIgnoringCase(equiv, &quot;refresh&quot;) || equalIgnoringCase(equiv, &quot;set-cookie&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(equiv, &quot;refresh&quot;) || equalLettersIgnoringASCIICase(equiv, &quot;set-cookie&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline String decode16BitUnicodeEscapeSequences(const String&amp; string)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackWebVTTParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/WebVTTParser.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/WebVTTParser.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/html/track/WebVTTParser.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -247,12 +247,8 @@
</span><span class="cx">     // A WebVTT file identifier consists of an optional BOM character,
</span><span class="cx">     // the string &quot;WEBVTT&quot; followed by an optional space or tab character,
</span><span class="cx">     // and any number of characters that are not line terminators ...
</span><del>-    if (line.isEmpty())
-        return false;
-
</del><span class="cx">     if (!line.startsWith(fileIdentifier, fileIdentifierLength))
</span><span class="cx">         return false;
</span><del>-
</del><span class="cx">     if (line.length() &gt; fileIdentifierLength &amp;&amp; !isHTMLSpace(line[fileIdentifierLength]))
</span><span class="cx">         return false;
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorPageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx">     else if (DOMImplementation::isXMLMIMEType(mimeType.lower())) {
</span><span class="cx">         decoder = TextResourceDecoder::create(&quot;application/xml&quot;);
</span><span class="cx">         decoder-&gt;useLenientXMLDecoding();
</span><del>-    } else if (equalIgnoringCase(mimeType, &quot;text/html&quot;))
</del><ins>+    } else if (equalLettersIgnoringASCIICase(mimeType, &quot;text/html&quot;))
</ins><span class="cx">         decoder = TextResourceDecoder::create(&quot;text/html&quot;, &quot;UTF-8&quot;);
</span><span class="cx">     else
</span><span class="cx">         decoder = TextResourceDecoder::create(&quot;text/plain&quot;, &quot;UTF-8&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorNetworkResourcesDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/NetworkResourcesData.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/NetworkResourcesData.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/inspector/NetworkResourcesData.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">     else if (DOMImplementation::isXMLMIMEType(mimeType.lower())) {
</span><span class="cx">         decoder = TextResourceDecoder::create(&quot;application/xml&quot;);
</span><span class="cx">         decoder-&gt;useLenientXMLDecoding();
</span><del>-    } else if (equalIgnoringCase(mimeType, &quot;text/html&quot;))
</del><ins>+    } else if (equalLettersIgnoringASCIICase(mimeType, &quot;text/html&quot;))
</ins><span class="cx">         decoder = TextResourceDecoder::create(&quot;text/html&quot;, &quot;UTF-8&quot;);
</span><span class="cx">     else if (mimeType == &quot;text/plain&quot;)
</span><span class="cx">         decoder = TextResourceDecoder::create(&quot;text/plain&quot;, &quot;ISO-8859-1&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderCrossOriginAccessControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -56,9 +56,9 @@
</span><span class="cx">     case HTTPHeaderName::ContentType: {
</span><span class="cx">         // Preflight is required for MIME types that can not be sent via form submission.
</span><span class="cx">         String mimeType = extractMIMETypeFromMediaType(value);
</span><del>-        return equalIgnoringCase(mimeType, &quot;application/x-www-form-urlencoded&quot;)
-            || equalIgnoringCase(mimeType, &quot;multipart/form-data&quot;)
-            || equalIgnoringCase(mimeType, &quot;text/plain&quot;);
</del><ins>+        return equalIgnoringASCIICase(mimeType, &quot;application/x-www-form-urlencoded&quot;)
+            || equalIgnoringASCIICase(mimeType, &quot;multipart/form-data&quot;)
+            || equalIgnoringASCIICase(mimeType, &quot;text/plain&quot;);
</ins><span class="cx">     }
</span><span class="cx">     default:
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderDocumentLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/DocumentLoader.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -714,12 +714,12 @@
</span><span class="cx">     switch (policy) {
</span><span class="cx">     case PolicyUse: {
</span><span class="cx">         // Prevent remote web archives from loading because they can claim to be from any domain and thus avoid cross-domain security checks (4120255).
</span><del>-        bool isRemoteWebArchive = (equalIgnoringCase(&quot;application/x-webarchive&quot;, mimeType)
-            || equalIgnoringCase(&quot;application/x-mimearchive&quot;, mimeType)
</del><ins>+        bool isRemoteWebArchive = (equalLettersIgnoringASCIICase(mimeType, &quot;application/x-webarchive&quot;)
+            || equalLettersIgnoringASCIICase(mimeType, &quot;application/x-mimearchive&quot;)
</ins><span class="cx"> #if PLATFORM(GTK)
</span><del>-            || equalIgnoringCase(&quot;message/rfc822&quot;, mimeType)
</del><ins>+            || equalLettersIgnoringASCIICase(mimeType, &quot;message/rfc822&quot;)
</ins><span class="cx"> #endif
</span><del>-            || equalIgnoringCase(&quot;multipart/related&quot;, mimeType))
</del><ins>+            || equalLettersIgnoringASCIICase(mimeType, &quot;multipart/related&quot;))
</ins><span class="cx">             &amp;&amp; !m_substituteData.isValid() &amp;&amp; !SchemeRegistry::shouldTreatURLSchemeAsLocal(url.protocol());
</span><span class="cx">         if (!frameLoader()-&gt;client().canShowMIMEType(mimeType) || isRemoteWebArchive) {
</span><span class="cx">             frameLoader()-&gt;policyChecker().cannotShowMIMEType(m_response);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFormSubmissioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FormSubmission.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FormSubmission.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/FormSubmission.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> {
</span><span class="cx">     String body = data.flattenToString();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(encodingType, &quot;text/plain&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(encodingType, &quot;text/plain&quot;)) {
</ins><span class="cx">         // Convention seems to be to decode, and s/&amp;/\r\n/. Also, spaces are encoded as %20.
</span><span class="cx">         body = decodeURLEscapeSequences(body.replaceWithLiteral('&amp;', &quot;\r\n&quot;).replace('+', ' ') + &quot;\r\n&quot;);
</span><span class="cx">     }
</span><span class="lines">@@ -90,9 +90,9 @@
</span><span class="cx"> 
</span><span class="cx"> String FormSubmission::Attributes::parseEncodingType(const String&amp; type)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(type, &quot;multipart/form-data&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;multipart/form-data&quot;))
</ins><span class="cx">         return &quot;multipart/form-data&quot;;
</span><del>-    if (equalIgnoringCase(type, &quot;text/plain&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(type, &quot;text/plain&quot;))
</ins><span class="cx">         return &quot;text/plain&quot;;
</span><span class="cx">     return &quot;application/x-www-form-urlencoded&quot;;
</span><span class="cx"> }
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> 
</span><span class="cx"> FormSubmission::Method FormSubmission::Attributes::parseMethodType(const String&amp; type)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(type, &quot;post&quot;) ? FormSubmission::PostMethod : FormSubmission::GetMethod;
</del><ins>+    return equalLettersIgnoringASCIICase(type, &quot;post&quot;) ? FormSubmission::PostMethod : FormSubmission::GetMethod;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FormSubmission::Attributes::updateMethodType(const String&amp; type)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -2806,7 +2806,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: What about load types other than Standard and Reload?
</span><span class="cx"> 
</span><del>-    return (!isFormSubmission || equalIgnoringCase(httpMethod, &quot;GET&quot;))
</del><ins>+    return (!isFormSubmission || equalLettersIgnoringASCIICase(httpMethod, &quot;get&quot;))
</ins><span class="cx">         &amp;&amp; loadType != FrameLoadType::Reload
</span><span class="cx">         &amp;&amp; loadType != FrameLoadType::ReloadFromOrigin
</span><span class="cx">         &amp;&amp; loadType != FrameLoadType::Same
</span><span class="lines">@@ -3216,7 +3216,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool FrameLoader::shouldTreatURLAsSrcdocDocument(const URL&amp; url) const
</span><span class="cx"> {
</span><del>-    if (!equalIgnoringCase(url.string(), &quot;about:srcdoc&quot;))
</del><ins>+    if (!equalLettersIgnoringASCIICase(url.string(), &quot;about:srcdoc&quot;))
</ins><span class="cx">         return false;
</span><span class="cx">     HTMLFrameOwnerElement* ownerElement = m_frame.ownerElement();
</span><span class="cx">     if (!ownerElement)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderImageLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ImageLoader.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ImageLoader.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/ImageLoader.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> 
</span><span class="cx">         String crossOriginMode = element().fastGetAttribute(HTMLNames::crossoriginAttr);
</span><span class="cx">         if (!crossOriginMode.isNull()) {
</span><del>-            StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+            StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</ins><span class="cx">             updateRequestForAccessControl(request.mutableResourceRequest(), document.securityOrigin(), allowCredentials);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderMediaResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/MediaResourceLoader.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/MediaResourceLoader.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx">     DataBufferingPolicy bufferingPolicy = options &amp; LoadOption::BufferData ? WebCore::BufferData : WebCore::DoNotBufferData;
</span><span class="cx">     RequestOriginPolicy corsPolicy = !m_crossOriginMode.isNull() ? PotentiallyCrossOriginEnabled : UseDefaultOriginRestrictionsForType;
</span><del>-    StoredCredentials allowCredentials = m_crossOriginMode.isNull() || equalIgnoringCase(m_crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+    StoredCredentials allowCredentials = m_crossOriginMode.isNull() || equalLettersIgnoringASCIICase(m_crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</ins><span class="cx"> 
</span><span class="cx">     // ContentSecurityPolicyImposition::DoPolicyCheck is a placeholder value. It does not affect the request since Content Security Policy does not apply to raw resources.
</span><span class="cx">     CachedResourceRequest cacheRequest(request, ResourceLoaderOptions(SendCallbacks, DoNotSniffContent, bufferingPolicy, allowCredentials, DoNotAskClientForCrossOriginCredentials, ClientDidNotRequestCredentials, DoSecurityCheck, corsPolicy, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::DoPolicyCheck, DefersLoadingPolicy::AllowDefersLoading));
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderSubframeLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/SubframeLoader.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/SubframeLoader.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/SubframeLoader.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -239,9 +239,9 @@
</span><span class="cx">     String codeBaseURLString;
</span><span class="cx"> 
</span><span class="cx">     for (size_t i = 0; i &lt; paramNames.size(); ++i) {
</span><del>-        if (equalIgnoringCase(paramNames[i], &quot;baseurl&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(paramNames[i], &quot;baseurl&quot;))
</ins><span class="cx">             baseURLString = paramValues[i];
</span><del>-        else if (equalIgnoringCase(paramNames[i], &quot;codebase&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(paramNames[i], &quot;codebase&quot;))
</ins><span class="cx">             codeBaseURLString = paramValues[i];
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderTextResourceDecodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/TextResourceDecoder.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/TextResourceDecoder.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/TextResourceDecoder.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -302,9 +302,9 @@
</span><span class="cx"> 
</span><span class="cx"> TextResourceDecoder::ContentType TextResourceDecoder::determineContentType(const String&amp; mimeType)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(mimeType, &quot;text/css&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mimeType, &quot;text/css&quot;))
</ins><span class="cx">         return CSS;
</span><del>-    if (equalIgnoringCase(mimeType, &quot;text/html&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mimeType, &quot;text/html&quot;))
</ins><span class="cx">         return HTML;
</span><span class="cx">     if (DOMImplementation::isXMLMIMEType(mimeType))
</span><span class="cx">         return XML;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderTextTrackLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/TextTrackLoader.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/TextTrackLoader.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/TextTrackLoader.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!crossOriginMode.isNull()) {
</span><span class="cx">         m_crossOriginMode = crossOriginMode;
</span><del>-        StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+        StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, &quot;use-credentials&quot;) ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</ins><span class="cx">         updateRequestForAccessControl(cueRequest.mutableResourceRequest(), document-&gt;securityOrigin(), allowCredentials);
</span><span class="cx">     } else {
</span><span class="cx">         // Cross-origin resources that are not suitably CORS-enabled may not load.
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -123,15 +123,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool ApplicationCache::requestIsHTTPOrHTTPSGet(const ResourceRequest&amp; request)
</span><span class="cx"> {
</span><del>-    if (!request.url().protocolIsInHTTPFamily())
-        return false;
-    
-    if (!equalIgnoringCase(request.httpMethod(), &quot;GET&quot;))
-        return false;
</del><ins>+    return request.url().protocolIsInHTTPFamily() &amp;&amp; equalLettersIgnoringASCIICase(request.httpMethod(), &quot;get&quot;);
+}
</ins><span class="cx"> 
</span><del>-    return true;
-}    
-
</del><span class="cx"> ApplicationCacheResource* ApplicationCache::resourceForRequest(const ResourceRequest&amp; request)
</span><span class="cx"> {
</span><span class="cx">     // We only care about HTTP/HTTPS GET requests.
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedCSSStyleSheetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx">     // This code defaults to allowing the stylesheet for non-HTTP protocols so
</span><span class="cx">     // folks can use standards mode for local HTML documents.
</span><span class="cx">     String mimeType = extractMIMETypeFromMediaType(response().httpHeaderField(HTTPHeaderName::ContentType));
</span><del>-    bool typeOK = mimeType.isEmpty() || equalIgnoringCase(mimeType, &quot;text/css&quot;) || equalIgnoringCase(mimeType, &quot;application/x-unknown-content-type&quot;);
</del><ins>+    bool typeOK = mimeType.isEmpty() || equalLettersIgnoringASCIICase(mimeType, &quot;text/css&quot;) || equalLettersIgnoringASCIICase(mimeType, &quot;application/x-unknown-content-type&quot;);
</ins><span class="cx">     if (hasValidMIMEType)
</span><span class="cx">         *hasValidMIMEType = typeOK;
</span><span class="cx">     return typeOK;
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResource.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -362,14 +362,14 @@
</span><span class="cx"> static inline bool shouldCacheSchemeIndefinitely(const String&amp; scheme)
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-    if (equalIgnoringCase(scheme, &quot;applewebdata&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(scheme, &quot;applewebdata&quot;))
</ins><span class="cx">         return true;
</span><span class="cx"> #endif
</span><span class="cx"> #if USE(SOUP)
</span><del>-    if (equalIgnoringCase(scheme, &quot;resource&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(scheme, &quot;resource&quot;))
</ins><span class="cx">         return true;
</span><span class="cx"> #endif
</span><del>-    return equalIgnoringCase(scheme, &quot;data&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(scheme, &quot;data&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> std::chrono::microseconds CachedResource::freshnessLifetime(const ResourceResponse&amp; response) const
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMSelection.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMSelection.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/page/DOMSelection.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -283,43 +283,43 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     FrameSelection::EAlteration alter;
</span><del>-    if (equalIgnoringCase(alterString, &quot;extend&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(alterString, &quot;extend&quot;))
</ins><span class="cx">         alter = FrameSelection::AlterationExtend;
</span><del>-    else if (equalIgnoringCase(alterString, &quot;move&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(alterString, &quot;move&quot;))
</ins><span class="cx">         alter = FrameSelection::AlterationMove;
</span><span class="cx">     else
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     SelectionDirection direction;
</span><del>-    if (equalIgnoringCase(directionString, &quot;forward&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(directionString, &quot;forward&quot;))
</ins><span class="cx">         direction = DirectionForward;
</span><del>-    else if (equalIgnoringCase(directionString, &quot;backward&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(directionString, &quot;backward&quot;))
</ins><span class="cx">         direction = DirectionBackward;
</span><del>-    else if (equalIgnoringCase(directionString, &quot;left&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(directionString, &quot;left&quot;))
</ins><span class="cx">         direction = DirectionLeft;
</span><del>-    else if (equalIgnoringCase(directionString, &quot;right&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(directionString, &quot;right&quot;))
</ins><span class="cx">         direction = DirectionRight;
</span><span class="cx">     else
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     TextGranularity granularity;
</span><del>-    if (equalIgnoringCase(granularityString, &quot;character&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(granularityString, &quot;character&quot;))
</ins><span class="cx">         granularity = CharacterGranularity;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;word&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;word&quot;))
</ins><span class="cx">         granularity = WordGranularity;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;sentence&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;sentence&quot;))
</ins><span class="cx">         granularity = SentenceGranularity;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;line&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;line&quot;))
</ins><span class="cx">         granularity = LineGranularity;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;paragraph&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;paragraph&quot;))
</ins><span class="cx">         granularity = ParagraphGranularity;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;lineboundary&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;lineboundary&quot;))
</ins><span class="cx">         granularity = LineBoundary;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;sentenceboundary&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;sentenceboundary&quot;))
</ins><span class="cx">         granularity = SentenceBoundary;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;paragraphboundary&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;paragraphboundary&quot;))
</ins><span class="cx">         granularity = ParagraphBoundary;
</span><del>-    else if (equalIgnoringCase(granularityString, &quot;documentboundary&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(granularityString, &quot;documentboundary&quot;))
</ins><span class="cx">         granularity = DocumentBoundary;
</span><span class="cx">     else
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/page/EventSource.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -211,7 +211,7 @@
</span><span class="cx">     if (responseIsValid) {
</span><span class="cx">         const String&amp; charset = response.textEncodingName();
</span><span class="cx">         // If we have a charset, the only allowed value is UTF-8 (case-insensitive).
</span><del>-        responseIsValid = charset.isEmpty() || equalIgnoringCase(charset, &quot;UTF-8&quot;);
</del><ins>+        responseIsValid = charset.isEmpty() || equalLettersIgnoringASCIICase(charset, &quot;utf-8&quot;);
</ins><span class="cx">         if (!responseIsValid) {
</span><span class="cx">             String message = makeString(&quot;EventSource's response has a charset (\&quot;&quot;, charset, &quot;\&quot;) that is not UTF-8. Aborting the connection.&quot;);
</span><span class="cx">             // FIXME: We are missing the source line.
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/page/FrameView.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -2065,7 +2065,7 @@
</span><span class="cx">     }
</span><span class="cx">   
</span><span class="cx">     // Implement the rule that &quot;&quot; and &quot;top&quot; both mean top of page as in other browsers.
</span><del>-    if (!anchorElement &amp;&amp; !(name.isEmpty() || equalIgnoringCase(name, &quot;top&quot;)))
</del><ins>+    if (!anchorElement &amp;&amp; !(name.isEmpty() || equalLettersIgnoringASCIICase(name, &quot;top&quot;)))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     ContainerNode* scrollPositionAnchor = anchorElement;
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformancecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Performance.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Performance.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/page/Performance.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -116,19 +116,20 @@
</span><span class="cx">     RefPtr&lt;PerformanceEntryList&gt; entries = PerformanceEntryList::create();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(RESOURCE_TIMING)
</span><del>-    if (equalIgnoringCase(entryType, &quot;resource&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(entryType, &quot;resource&quot;)) {
</ins><span class="cx">         for (auto&amp; resource : m_resourceTimingBuffer)
</span><span class="cx">             entries-&gt;append(resource);
</span><del>-#endif // ENABLE(RESOURCE_TIMING)
</del><ins>+    }
+#endif
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(USER_TIMING)
</span><span class="cx">     if (m_userTiming) {
</span><del>-        if (equalIgnoringCase(entryType, &quot;mark&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(entryType, &quot;mark&quot;))
</ins><span class="cx">             entries-&gt;appendAll(m_userTiming-&gt;getMarks());
</span><del>-        else if (equalIgnoringCase(entryType, &quot;measure&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(entryType, &quot;measure&quot;))
</ins><span class="cx">             entries-&gt;appendAll(m_userTiming-&gt;getMeasures());
</span><span class="cx">     }
</span><del>-#endif // ENABLE(USER_TIMING)
</del><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx">     entries-&gt;sort();
</span><span class="cx">     return entries;
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceResourceTimingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PerformanceResourceTiming.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PerformanceResourceTiming.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/page/PerformanceResourceTiming.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     const String&amp; timingAllowOriginString = response.httpHeaderField(HTTPHeaderName::TimingAllowOrigin);
</span><del>-    if (timingAllowOriginString.isEmpty() || equalIgnoringCase(timingAllowOriginString, &quot;null&quot;))
</del><ins>+    if (timingAllowOriginString.isEmpty() || equalLettersIgnoringASCIICase(timingAllowOriginString, &quot;null&quot;))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     if (timingAllowOriginString == &quot;*&quot;)
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityOrigincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityOrigin.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityOrigin.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/page/SecurityOrigin.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -109,8 +109,8 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SecurityOrigin::SecurityOrigin(const URL&amp; url)
</span><del>-    : m_protocol(url.protocol().isNull() ? &quot;&quot; : url.protocol().lower())
-    , m_host(url.host().isNull() ? &quot;&quot; : url.host().lower())
</del><ins>+    : m_protocol(url.protocol().isNull() ? emptyString() : url.protocol().lower())
+    , m_host(url.host().isNull() ? emptyString() : url.host().lower())
</ins><span class="cx">     , m_port(url.port())
</span><span class="cx">     , m_isUnique(false)
</span><span class="cx">     , m_universalAccess(false)
</span><span class="lines">@@ -133,9 +133,9 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SecurityOrigin::SecurityOrigin()
</span><del>-    : m_protocol(&quot;&quot;)
-    , m_host(&quot;&quot;)
-    , m_domain(&quot;&quot;)
</del><ins>+    : m_protocol(emptyString())
+    , m_host(emptyString())
+    , m_domain(emptyString())
</ins><span class="cx">     , m_port(InvalidPort)
</span><span class="cx">     , m_isUnique(true)
</span><span class="cx">     , m_universalAccess(false)
</span><span class="lines">@@ -462,9 +462,9 @@
</span><span class="cx"> String SecurityOrigin::toString() const
</span><span class="cx"> {
</span><span class="cx">     if (isUnique())
</span><del>-        return &quot;null&quot;;
</del><ins>+        return ASCIILiteral(&quot;null&quot;);
</ins><span class="cx">     if (m_protocol == &quot;file&quot; &amp;&amp; m_enforceFilePathSeparation)
</span><del>-        return &quot;null&quot;;
</del><ins>+        return ASCIILiteral(&quot;null&quot;);
</ins><span class="cx">     return toRawString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -552,7 +552,7 @@
</span><span class="cx">     // Now that we've fixed that bug, we still need to produce this string
</span><span class="cx">     // to avoid breaking existing persistent state.
</span><span class="cx">     if (m_needsDatabaseIdentifierQuirkForFiles)
</span><del>-        return &quot;file__0&quot;;
</del><ins>+        return ASCIILiteral(&quot;file__0&quot;);
</ins><span class="cx"> 
</span><span class="cx">     StringBuilder stringBuilder;
</span><span class="cx">     stringBuilder.append(m_protocol);
</span></span></pre></div>
<a id="trunkSourceWebCorepageUserContentURLPatterncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/UserContentURLPattern.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/UserContentURLPattern.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/page/UserContentURLPattern.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> 
</span><span class="cx">     int pathStartPos = 0;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(m_scheme, &quot;file&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(m_scheme, &quot;file&quot;))
</ins><span class="cx">         pathStartPos = hostStartPos;
</span><span class="cx">     else {
</span><span class="cx">         size_t hostEndPos = pattern.find('/', hostStartPos);
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">     if (!equalIgnoringCase(test.protocol(), m_scheme))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!equalIgnoringCase(m_scheme, &quot;file&quot;) &amp;&amp; !matchesHost(test))
</del><ins>+    if (!equalLettersIgnoringASCIICase(m_scheme, &quot;file&quot;) &amp;&amp; !matchesHost(test))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return matchesPath(test);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformURLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/URL.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/URL.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/URL.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -787,7 +787,7 @@
</span><span class="cx"> 
</span><span class="cx">     // JavaScript URLs are &quot;valid&quot; and should be executed even if URL decides they are invalid.
</span><span class="cx">     // The free function protocolIsJavaScript() should be used instead. 
</span><del>-    ASSERT(!equalIgnoringCase(protocol, String(&quot;javascript&quot;)));
</del><ins>+    ASSERT(!equalLettersIgnoringASCIICase(StringView(protocol), &quot;javascript&quot;));
</ins><span class="cx"> 
</span><span class="cx">     if (!m_isValid)
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationCDMPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -73,22 +73,23 @@
</span><span class="cx">     if (!supportsKeySystem(keySystem))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!mimeType.isEmpty()) {
-        if (equalIgnoringCase(mimeType, &quot;keyrelease&quot;))
-            return true;
</del><ins>+    if (mimeType.isEmpty())
+        return true;
</ins><span class="cx"> 
</span><del>-        MediaEngineSupportParameters parameters;
-        parameters.isMediaSource = true;
-        parameters.type = mimeType;
</del><ins>+    // FIXME: Why is this ignoring case since the check in supportsMIMEType is checking case?
+    if (equalLettersIgnoringASCIICase(mimeType, &quot;keyrelease&quot;))
+        return true;
</ins><span class="cx"> 
</span><del>-        return MediaPlayerPrivateMediaSourceAVFObjC::supportsType(parameters) != MediaPlayer::IsNotSupported;
-    }
</del><ins>+    MediaEngineSupportParameters parameters;
+    parameters.isMediaSource = true;
+    parameters.type = mimeType;
</ins><span class="cx"> 
</span><del>-    return true;
</del><ins>+    return MediaPlayerPrivateMediaSourceAVFObjC::supportsType(parameters) != MediaPlayer::IsNotSupported;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool CDMPrivateMediaSourceAVFObjC::supportsMIMEType(const String&amp; mimeType)
</span><span class="cx"> {
</span><ins>+    // FIXME: Why is this checking case since the check in supportsKeySystemAndMimeType is ignoring case?
</ins><span class="cx">     if (mimeType == &quot;keyrelease&quot;)
</span><span class="cx">         return true;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVContentKeySessionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_initData = initData;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(mimeType, &quot;keyrelease&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(mimeType, &quot;keyrelease&quot;)) {
</ins><span class="cx">         m_mode = KeyRelease;
</span><span class="cx">         return generateKeyReleaseMessage(errorCode, systemCode);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVStreamSessionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -125,7 +125,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_initData = initData;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(mimeType, &quot;keyrelease&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(mimeType, &quot;keyrelease&quot;)) {
</ins><span class="cx">         m_mode = KeyRelease;
</span><span class="cx">         return generateKeyReleaseMessage(errorCode, systemCode);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscgImageBufferCGcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -417,11 +417,11 @@
</span><span class="cx">     static const CFStringRef kUTTypePNG = CFSTR(&quot;public.png&quot;);
</span><span class="cx">     static const CFStringRef kUTTypeGIF = CFSTR(&quot;com.compuserve.gif&quot;);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(mimeType, &quot;image/png&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mimeType, &quot;image/png&quot;))
</ins><span class="cx">         return kUTTypePNG;
</span><del>-    if (equalIgnoringCase(mimeType, &quot;image/jpeg&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mimeType, &quot;image/jpeg&quot;))
</ins><span class="cx">         return jpegUTI();
</span><del>-    if (equalIgnoringCase(mimeType, &quot;image/gif&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mimeType, &quot;image/gif&quot;))
</ins><span class="cx">         return kUTTypeGIF;
</span><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaFontCacheCoreTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -504,17 +504,16 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     // Substitute the default monospace font for well-known monospace fonts.
</span><del>-    static NeverDestroyed&lt;AtomicString&gt; monaco(&quot;monaco&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; menlo(&quot;menlo&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; courier(&quot;courier&quot;, AtomicString::ConstructFromLiteral);
-    if (equalIgnoringCase(family, monaco) || equalIgnoringCase(family, menlo))
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;monaco&quot;) || equalLettersIgnoringASCIICase(family, &quot;menlo&quot;)) {
+        static NeverDestroyed&lt;AtomicString&gt; courier(&quot;courier&quot;, AtomicString::ConstructFromLiteral);
</ins><span class="cx">         return fontForFamily(description, courier);
</span><ins>+    }
</ins><span class="cx"> 
</span><span class="cx">     // Substitute Verdana for Lucida Grande.
</span><del>-    static NeverDestroyed&lt;AtomicString&gt; lucidaGrande(&quot;lucida grande&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; verdana(&quot;verdana&quot;, AtomicString::ConstructFromLiteral);
-    if (equalIgnoringCase(family, lucidaGrande))
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;lucida grande&quot;)) {
+        static NeverDestroyed&lt;AtomicString&gt; verdana(&quot;verdana&quot;, AtomicString::ConstructFromLiteral);
</ins><span class="cx">         return fontForFamily(description, verdana);
</span><ins>+    }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     static NeverDestroyed&lt;String&gt; arabic(ASCIILiteral(&quot;Arabic&quot;));
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsiosFontCacheIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ios/FontCacheIOS.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ios/FontCacheIOS.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/ios/FontCacheIOS.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -146,13 +146,10 @@
</span><span class="cx">         return adoptCF(CTFontCreateWithFontDescriptor(fontDescriptor.get(), size, nullptr));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static NeverDestroyed&lt;AtomicString&gt; systemUIFontWithWebKitPrefix(&quot;-webkit-system-font&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; systemUIFontWithApplePrefix(&quot;-apple-system&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; systemUIFontWithAppleAlternatePrefix(&quot;-apple-system-font&quot;, AtomicString::ConstructFromLiteral);
-    if (equalIgnoringCase(family, systemUIFontWithWebKitPrefix) || equalIgnoringCase(family, systemUIFontWithApplePrefix) || equalIgnoringCase(family, systemUIFontWithAppleAlternatePrefix)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;-webkit-system-font&quot;) || equalLettersIgnoringASCIICase(family, &quot;-apple-system&quot;) || equalLettersIgnoringASCIICase(family, &quot;-apple-system-font&quot;)) {
</ins><span class="cx">         CTFontUIFontType fontType = kCTFontUIFontSystem;
</span><span class="cx">         if (weight &gt; FontWeight300) {
</span><del>-            // The comment below has been copied from CoreText/UIFoundation. However, in WebKit we synthesize the oblique,
</del><ins>+            // The code below has been copied from CoreText/UIFoundation. However, in WebKit we synthesize the oblique,
</ins><span class="cx">             // so we should investigate the result &lt;rdar://problem/14449340&gt;:
</span><span class="cx">             if (traits &amp; kCTFontTraitBold)
</span><span class="cx">                 fontType = kCTFontUIFontEmphasizedSystem;
</span><span class="lines">@@ -168,8 +165,7 @@
</span><span class="cx">         return adoptCF(CTFontCreateWithFontDescriptor(fontDescriptor.get(), size, nullptr));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static NeverDestroyed&lt;AtomicString&gt; systemUIMonospacedNumbersFontWithApplePrefix(&quot;-apple-system-monospaced-numbers&quot;, AtomicString::ConstructFromLiteral);
-    if (equalIgnoringCase(family, systemUIMonospacedNumbersFontWithApplePrefix)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;-apple-system-monospaced-numbers&quot;)) {
</ins><span class="cx">         RetainPtr&lt;CTFontDescriptorRef&gt; systemFontDescriptor = adoptCF(CTFontDescriptorCreateForUIType(kCTFontUIFontSystem, size, nullptr));
</span><span class="cx">         RetainPtr&lt;CTFontDescriptorRef&gt; monospaceFontDescriptor = adoptCF(CTFontDescriptorCreateCopyWithFeature(systemFontDescriptor.get(), (CFNumberRef)@(kNumberSpacingType), (CFNumberRef)@(kMonospacedNumbersSelector)));
</span><span class="cx">         return adoptCF(CTFontCreateWithFontDescriptor(monospaceFontDescriptor.get(), size, nullptr));
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacFontCacheMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/FontCacheMac.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/FontCacheMac.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/mac/FontCacheMac.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -209,9 +209,7 @@
</span><span class="cx"> 
</span><span class="cx"> RetainPtr&lt;CTFontRef&gt; platformFontWithFamilySpecialCase(const AtomicString&amp; family, FontWeight weight, CTFontSymbolicTraits desiredTraits, float size)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringASCIICase(family, &quot;-webkit-system-font&quot;)
-        || equalIgnoringASCIICase(family, &quot;-apple-system&quot;)
-        || equalIgnoringASCIICase(family, &quot;-apple-system-font&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;-webkit-system-font&quot;) || equalLettersIgnoringASCIICase(family, &quot;-apple-system&quot;) || equalLettersIgnoringASCIICase(family, &quot;-apple-system-font&quot;)) {
</ins><span class="cx">         RetainPtr&lt;CTFontRef&gt; result = toCTFont([NSFont systemFontOfSize:size weight:toNSFontWeight(weight)]);
</span><span class="cx">         if (desiredTraits &amp; kCTFontItalicTrait) {
</span><span class="cx">             if (auto italicizedFont = adoptCF(CTFontCreateCopyWithSymbolicTraits(result.get(), size, nullptr, desiredTraits, desiredTraits)))
</span><span class="lines">@@ -220,7 +218,7 @@
</span><span class="cx">         return result;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (equalIgnoringASCIICase(family, &quot;-apple-system-monospaced-numbers&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;-apple-system-monospaced-numbers&quot;)) {
</ins><span class="cx">         int numberSpacingType = kNumberSpacingType;
</span><span class="cx">         int monospacedNumbersSelector = kMonospacedNumbersSelector;
</span><span class="cx">         RetainPtr&lt;CFNumberRef&gt; numberSpacingNumber = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;numberSpacingType));
</span><span class="lines">@@ -238,10 +236,10 @@
</span><span class="cx">         return adoptCF(CTFontCreateCopyWithAttributes(result.get(), size, nullptr, adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get())).get()));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (equalIgnoringASCIICase(family, &quot;-apple-menu&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;-apple-menu&quot;))
</ins><span class="cx">         return toCTFont([NSFont menuFontOfSize:size]);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringASCIICase(family, &quot;-apple-status-bar&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(family, &quot;-apple-status-bar&quot;))
</ins><span class="cx">         return toCTFont([NSFont labelFontOfSize:size]);
</span><span class="cx"> 
</span><span class="cx">     return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacFontCustomPlatformDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -57,11 +57,12 @@
</span><span class="cx"> 
</span><span class="cx"> bool FontCustomPlatformData::supportsFormat(const String&amp; format)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(format, &quot;truetype&quot;) || equalIgnoringCase(format, &quot;opentype&quot;)
</del><ins>+    return equalLettersIgnoringASCIICase(format, &quot;truetype&quot;)
+        || equalLettersIgnoringASCIICase(format, &quot;opentype&quot;)
</ins><span class="cx"> #if (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101200)
</span><del>-        || equalIgnoringCase(format, &quot;woff2&quot;)
</del><ins>+        || equalLettersIgnoringASCIICase(format, &quot;woff2&quot;)
</ins><span class="cx"> #endif
</span><del>-        || equalIgnoringCase(format, &quot;woff&quot;);
</del><ins>+        || equalLettersIgnoringASCIICase(format, &quot;woff&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacPasteboardMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/PasteboardMac.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/PasteboardMac.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/mac/PasteboardMac.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -505,7 +505,7 @@
</span><span class="cx">     // Grab the value off the pasteboard corresponding to the cocoaType
</span><span class="cx">     if (cocoaType == String(NSURLPboardType)) {
</span><span class="cx">         // &quot;url&quot; and &quot;text/url-list&quot; both map to NSURLPboardType in cocoaTypeFromHTMLClipboardType(), &quot;url&quot; only wants the first URL
</span><del>-        bool onlyFirstURL = (equalIgnoringCase(type, &quot;url&quot;));
</del><ins>+        bool onlyFirstURL = equalLettersIgnoringASCIICase(type, &quot;url&quot;);
</ins><span class="cx">         Vector&lt;String&gt; absoluteURLs = absoluteURLsFromPasteboard(m_pasteboardName, onlyFirstURL);
</span><span class="cx">         for (size_t i = 0; i &lt; absoluteURLs.size(); i++)
</span><span class="cx">             cocoaValue = i ? &quot;\n&quot; + absoluteURLs[i]: absoluteURLs[i];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -137,15 +137,15 @@
</span><span class="cx"> PassRefPtr&lt;BlobResourceHandle&gt; BlobResourceHandle::createAsync(BlobData* blobData, const ResourceRequest&amp; request, ResourceHandleClient* client)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: Should probably call didFail() instead of blocking the load without explanation.
</span><del>-    if (!equalIgnoringCase(request.httpMethod(), &quot;GET&quot;))
-        return 0;
</del><ins>+    if (!equalLettersIgnoringASCIICase(request.httpMethod(), &quot;get&quot;))
+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     return adoptRef(new BlobResourceHandle(blobData, request, client, true));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void BlobResourceHandle::loadResourceSynchronously(BlobData* blobData, const ResourceRequest&amp; request, ResourceError&amp; error, ResourceResponse&amp; response, Vector&lt;char&gt;&amp; data)
</span><span class="cx"> {
</span><del>-    if (!equalIgnoringCase(request.httpMethod(), &quot;GET&quot;)) {
</del><ins>+    if (!equalLettersIgnoringASCIICase(request.httpMethod(), &quot;get&quot;)) {
</ins><span class="cx">         error = ResourceError(webKitBlobResourceDomain, methodNotAllowed, response.url(), &quot;Request method must be GET&quot;);
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkCacheValidationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/CacheValidation.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/CacheValidation.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/network/CacheValidation.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -280,13 +280,13 @@
</span><span class="cx">             // A no-cache directive with a value is only meaningful for proxy caches.
</span><span class="cx">             // It should be ignored by a browser level cache.
</span><span class="cx">             // http://tools.ietf.org/html/rfc7234#section-5.2.2.2
</span><del>-            if (equalIgnoringCase(directives[i].first, &quot;no-cache&quot;) &amp;&amp; directives[i].second.isEmpty())
</del><ins>+            if (equalLettersIgnoringASCIICase(directives[i].first, &quot;no-cache&quot;) &amp;&amp; directives[i].second.isEmpty())
</ins><span class="cx">                 result.noCache = true;
</span><del>-            else if (equalIgnoringCase(directives[i].first, &quot;no-store&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(directives[i].first, &quot;no-store&quot;))
</ins><span class="cx">                 result.noStore = true;
</span><del>-            else if (equalIgnoringCase(directives[i].first, &quot;must-revalidate&quot;))
</del><ins>+            else if (equalLettersIgnoringASCIICase(directives[i].first, &quot;must-revalidate&quot;))
</ins><span class="cx">                 result.mustRevalidate = true;
</span><del>-            else if (equalIgnoringCase(directives[i].first, &quot;max-age&quot;)) {
</del><ins>+            else if (equalLettersIgnoringASCIICase(directives[i].first, &quot;max-age&quot;)) {
</ins><span class="cx">                 if (result.maxAge) {
</span><span class="cx">                     // First max-age directive wins if there are multiple ones.
</span><span class="cx">                     continue;
</span><span class="lines">@@ -295,7 +295,7 @@
</span><span class="cx">                 double maxAge = directives[i].second.toDouble(&amp;ok);
</span><span class="cx">                 if (ok)
</span><span class="cx">                     result.maxAge = duration_cast&lt;microseconds&gt;(duration&lt;double&gt;(maxAge));
</span><del>-            } else if (equalIgnoringCase(directives[i].first, &quot;max-stale&quot;)) {
</del><ins>+            } else if (equalLettersIgnoringASCIICase(directives[i].first, &quot;max-stale&quot;)) {
</ins><span class="cx">                 // https://tools.ietf.org/html/rfc7234#section-5.2.1.2
</span><span class="cx">                 if (result.maxStale) {
</span><span class="cx">                     // First max-stale directive wins if there are multiple ones.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkFormDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/FormData.h (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/FormData.h        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/network/FormData.h        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -245,9 +245,9 @@
</span><span class="cx"> 
</span><span class="cx">     static EncodingType parseEncodingType(const String&amp; type)
</span><span class="cx">     {
</span><del>-        if (equalIgnoringCase(type, &quot;text/plain&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(type, &quot;text/plain&quot;))
</ins><span class="cx">             return TextPlain;
</span><del>-        if (equalIgnoringCase(type, &quot;multipart/form-data&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(type, &quot;multipart/form-data&quot;))
</ins><span class="cx">             return MultipartFormData;
</span><span class="cx">         return FormURLEncoded;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkHTTPParserscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/HTTPParsers.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/HTTPParsers.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/network/HTTPParsers.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx">     String dispositionType = parameters[0];
</span><span class="cx">     dispositionType.stripWhiteSpace();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(dispositionType, &quot;inline&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(dispositionType, &quot;inline&quot;))
</ins><span class="cx">         return ContentDispositionInline;
</span><span class="cx"> 
</span><span class="cx">     // Some broken sites just send bogus headers like
</span><span class="lines">@@ -483,11 +483,11 @@
</span><span class="cx">     for (size_t i = 0; i &lt; headers.size(); i++) {
</span><span class="cx">         String currentHeader = headers[i].stripWhiteSpace();
</span><span class="cx">         XFrameOptionsDisposition currentValue = XFrameOptionsNone;
</span><del>-        if (equalIgnoringCase(currentHeader, &quot;deny&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(currentHeader, &quot;deny&quot;))
</ins><span class="cx">             currentValue = XFrameOptionsDeny;
</span><del>-        else if (equalIgnoringCase(currentHeader, &quot;sameorigin&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(currentHeader, &quot;sameorigin&quot;))
</ins><span class="cx">             currentValue = XFrameOptionsSameOrigin;
</span><del>-        else if (equalIgnoringCase(currentHeader, &quot;allowall&quot;))
</del><ins>+        else if (equalLettersIgnoringASCIICase(currentHeader, &quot;allowall&quot;))
</ins><span class="cx">             currentValue = XFrameOptionsAllowAll;
</span><span class="cx">         else
</span><span class="cx">             currentValue = XFrameOptionsInvalid;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceResponseBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -96,13 +96,12 @@
</span><span class="cx">     return asResourceResponse().doPlatformCopyData(WTFMove(data));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// FIXME: Name does not make it clear this is true for HTTPS!
</ins><span class="cx"> bool ResourceResponseBase::isHTTP() const
</span><span class="cx"> {
</span><span class="cx">     lazyInit(CommonFieldsOnly);
</span><span class="cx"> 
</span><del>-    String protocol = m_url.protocol();
-
-    return equalIgnoringCase(protocol, &quot;http&quot;)  || equalIgnoringCase(protocol, &quot;https&quot;);
</del><ins>+    return m_url.protocolIsInHTTPFamily();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const URL&amp; ResourceResponseBase::url() const
</span><span class="lines">@@ -466,15 +465,10 @@
</span><span class="cx"> {
</span><span class="cx">     lazyInit(AllFields);
</span><span class="cx"> 
</span><del>-    String value = m_httpHeaderFields.get(HTTPHeaderName::ContentDisposition);
-    size_t loc = value.find(';');
-    if (loc != notFound)
-        value = value.left(loc);
-    value = value.stripWhiteSpace();
-
-    return equalIgnoringCase(value, &quot;attachment&quot;);
</del><ins>+    auto value = m_httpHeaderFields.get(HTTPHeaderName::ContentDisposition);
+    return equalLettersIgnoringASCIICase(value.left(value.find(';')).stripWhiteSpace(), &quot;attachment&quot;);
</ins><span class="cx"> }
</span><del>-  
</del><ins>+
</ins><span class="cx"> ResourceResponseBase::Source ResourceResponseBase::source() const
</span><span class="cx"> {
</span><span class="cx">     lazyInit(AllFields);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfResourceHandleCFURLConnectionDelegatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx">             CFURLRequestSetHTTPRequestMethod(mutableRequest.get(), lastHTTPMethod.get());
</span><span class="cx"> 
</span><span class="cx">             FormData* body = m_handle-&gt;firstRequest().httpBody();
</span><del>-            if (!equalIgnoringCase(m_handle-&gt;firstRequest().httpMethod(), &quot;GET&quot;) &amp;&amp; body &amp;&amp; !body-&gt;isEmpty())
</del><ins>+            if (!equalLettersIgnoringASCIICase(m_handle-&gt;firstRequest().httpMethod(), &quot;get&quot;) &amp;&amp; body &amp;&amp; !body-&gt;isEmpty())
</ins><span class="cx">                 WebCore::setHTTPBody(mutableRequest.get(), body);
</span><span class="cx"> 
</span><span class="cx">             String originalContentType = m_handle-&gt;firstRequest().httpContentType();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -440,7 +440,7 @@
</span><span class="cx">             request.setHTTPMethod(lastHTTPMethod);
</span><span class="cx">     
</span><span class="cx">             FormData* body = d-&gt;m_firstRequest.httpBody();
</span><del>-            if (!equalIgnoringCase(lastHTTPMethod, &quot;GET&quot;) &amp;&amp; body &amp;&amp; !body-&gt;isEmpty())
</del><ins>+            if (!equalLettersIgnoringASCIICase(lastHTTPMethod, &quot;get&quot;) &amp;&amp; body &amp;&amp; !body-&gt;isEmpty())
</ins><span class="cx">                 request.setHTTPBody(body);
</span><span class="cx"> 
</span><span class="cx">             String originalContentType = d-&gt;m_firstRequest.httpContentType();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformsqlSQLiteDatabasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/sql/SQLiteDatabase.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/sql/SQLiteDatabase.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/sql/SQLiteDatabase.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -118,12 +118,12 @@
</span><span class="cx">     SQLiteStatement walStatement(*this, ASCIILiteral(&quot;PRAGMA journal_mode=WAL;&quot;));
</span><span class="cx">     int result = walStatement.step();
</span><span class="cx">     if (result != SQLITE_OK &amp;&amp; result != SQLITE_ROW)
</span><del>-        LOG_ERROR(&quot;SQLite database failed to set journal_mode to WAL, error: %s&quot;,  lastErrorMsg());
</del><ins>+        LOG_ERROR(&quot;SQLite database failed to set journal_mode to WAL, error: %s&quot;, lastErrorMsg());
</ins><span class="cx"> 
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     if (result == SQLITE_ROW) {
</span><span class="cx">         String mode = walStatement.getColumnText(0);
</span><del>-        if (!equalIgnoringCase(mode, &quot;wal&quot;))
</del><ins>+        if (!equalLettersIgnoringASCIICase(mode, &quot;wal&quot;))
</ins><span class="cx">             LOG_ERROR(&quot;journal_mode of database should be 'wal', but is '%s'&quot;, mode.utf8().data());
</span><span class="cx">     }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformsqlSQLiteStatementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -288,8 +288,7 @@
</span><span class="cx">         if (prepare() != SQLITE_OK)
</span><span class="cx">             return false;
</span><span class="cx">     }
</span><del>-
-    return equalIgnoringCase(String(&quot;BLOB&quot;), String(reinterpret_cast&lt;const UChar*&gt;(sqlite3_column_decltype16(m_statement, col))));
</del><ins>+    return equalLettersIgnoringASCIICase(StringView(reinterpret_cast&lt;const UChar*&gt;(sqlite3_column_decltype16(m_statement, col))), &quot;blob&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String SQLiteStatement::getColumnName(int col)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextTextEncodingRegistrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -357,11 +357,11 @@
</span><span class="cx">     // ICU uses this name for a different encoding, so we need to change the name to a value that actually gives us windows-949.
</span><span class="cx">     // In addition, this value must match what is used in Safari, see &lt;rdar://problem/5579292&gt;.
</span><span class="cx">     // On some OS versions, the result is CP949 (uppercase).
</span><del>-    if (equalIgnoringCase(systemEncodingName, &quot;cp949&quot;))
-        systemEncodingName = &quot;ks_c_5601-1987&quot;;
</del><ins>+    if (equalLettersIgnoringASCIICase(systemEncodingName, &quot;cp949&quot;))
+        systemEncodingName = ASCIILiteral(&quot;ks_c_5601-1987&quot;);
</ins><span class="cx">     return systemEncodingName;
</span><span class="cx"> #else
</span><del>-    return String(&quot;ISO-8859-1&quot;);
</del><ins>+    return ASCIILiteral(&quot;ISO-8859-1&quot;);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -70,11 +70,11 @@
</span><span class="cx"> 
</span><span class="cx">     String thickness = element().getAttribute(MathMLNames::linethicknessAttr);
</span><span class="cx">     m_lineThickness = gLineMedium;
</span><del>-    if (equalIgnoringCase(thickness, &quot;thin&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(thickness, &quot;thin&quot;))
</ins><span class="cx">         m_lineThickness = gLineThin;
</span><del>-    else if (equalIgnoringCase(thickness, &quot;medium&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(thickness, &quot;medium&quot;))
</ins><span class="cx">         m_lineThickness = gLineMedium;
</span><del>-    else if (equalIgnoringCase(thickness, &quot;thick&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(thickness, &quot;thick&quot;))
</ins><span class="cx">         m_lineThickness = gLineThick;
</span><span class="cx">     else {
</span><span class="cx">         // This function parses the thickness attribute using gLineMedium as
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGToOTFFontConversioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1361,8 +1361,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (iterator1 == codePoints1.end() &amp;&amp; iterator2 == codePoints2.end()) {
</span><del>-        bool firstIsIsolated = data1.glyphElement &amp;&amp; equalIgnoringCase(data1.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;);
-        bool secondIsIsolated = data2.glyphElement &amp;&amp; equalIgnoringCase(data2.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;);
</del><ins>+        bool firstIsIsolated = data1.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(data1.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;);
+        bool secondIsIsolated = data2.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(data2.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;);
</ins><span class="cx">         return firstIsIsolated &amp;&amp; !secondIsIsolated;
</span><span class="cx">     }
</span><span class="cx">     return iterator1 == codePoints1.end();
</span><span class="lines">@@ -1457,7 +1457,7 @@
</span><span class="cx">         if (m_codepointsToIndicesMap.isValidKey(glyph.codepoints)) {
</span><span class="cx">             auto&amp; glyphVector = m_codepointsToIndicesMap.add(glyph.codepoints, Vector&lt;Glyph&gt;()).iterator-&gt;value;
</span><span class="cx">             // Prefer isolated arabic forms
</span><del>-            if (glyph.glyphElement &amp;&amp; equalIgnoringCase(glyph.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;))
</del><ins>+            if (glyph.glyphElement &amp;&amp; equalLettersIgnoringASCIICase(glyph.glyphElement-&gt;fastGetAttribute(SVGNames::arabic_formAttr), &quot;isolated&quot;))
</ins><span class="cx">                 glyphVector.insert(0, i);
</span><span class="cx">             else
</span><span class="cx">                 glyphVector.append(i);
</span><span class="lines">@@ -1469,7 +1469,7 @@
</span><span class="cx">         Vector&lt;String&gt; segments;
</span><span class="cx">         m_fontFaceElement-&gt;fastGetAttribute(SVGNames::font_weightAttr).string().split(' ', segments);
</span><span class="cx">         for (auto&amp; segment : segments) {
</span><del>-            if (equalIgnoringCase(segment, &quot;bold&quot;)) {
</del><ins>+            if (equalLettersIgnoringASCIICase(segment, &quot;bold&quot;)) {
</ins><span class="cx">                 m_weight = 7;
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="lines">@@ -1482,7 +1482,7 @@
</span><span class="cx">         }
</span><span class="cx">         m_fontFaceElement-&gt;fastGetAttribute(SVGNames::font_styleAttr).string().split(' ', segments);
</span><span class="cx">         for (auto&amp; segment : segments) {
</span><del>-            if (equalIgnoringCase(segment, &quot;italic&quot;) || equalIgnoringCase(segment, &quot;oblique&quot;)) {
</del><ins>+            if (equalLettersIgnoringASCIICase(segment, &quot;italic&quot;) || equalLettersIgnoringASCIICase(segment, &quot;oblique&quot;)) {
</ins><span class="cx">                 m_italic = true;
</span><span class="cx">                 break;
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/InternalSettings.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -379,13 +379,13 @@
</span><span class="cx"> void InternalSettings::setEditingBehavior(const String&amp; editingBehavior, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     InternalSettingsGuardForSettings();
</span><del>-    if (equalIgnoringCase(editingBehavior, &quot;win&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(editingBehavior, &quot;win&quot;))
</ins><span class="cx">         settings()-&gt;setEditingBehaviorType(EditingWindowsBehavior);
</span><del>-    else if (equalIgnoringCase(editingBehavior, &quot;mac&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(editingBehavior, &quot;mac&quot;))
</ins><span class="cx">         settings()-&gt;setEditingBehaviorType(EditingMacBehavior);
</span><del>-    else if (equalIgnoringCase(editingBehavior, &quot;unix&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(editingBehavior, &quot;unix&quot;))
</ins><span class="cx">         settings()-&gt;setEditingBehaviorType(EditingUnixBehavior);
</span><del>-    else if (equalIgnoringCase(editingBehavior, &quot;ios&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(editingBehavior, &quot;ios&quot;))
</ins><span class="cx">         settings()-&gt;setEditingBehaviorType(EditingIOSBehavior);
</span><span class="cx">     else
</span><span class="cx">         ec = SYNTAX_ERR;
</span><span class="lines">@@ -400,11 +400,11 @@
</span><span class="cx">         return;
</span><span class="cx">     CaptionUserPreferences* captionPreferences = page()-&gt;group().captionPreferences();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(kind, &quot;Subtitles&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(kind, &quot;subtitles&quot;))
</ins><span class="cx">         captionPreferences-&gt;setUserPrefersSubtitles(enabled);
</span><del>-    else if (equalIgnoringCase(kind, &quot;Captions&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(kind, &quot;captions&quot;))
</ins><span class="cx">         captionPreferences-&gt;setUserPrefersCaptions(enabled);
</span><del>-    else if (equalIgnoringCase(kind, &quot;TextDescriptions&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(kind, &quot;textdescriptions&quot;))
</ins><span class="cx">         captionPreferences-&gt;setUserPrefersTextDescriptions(enabled);
</span><span class="cx">     else
</span><span class="cx">         ec = SYNTAX_ERR;
</span><span class="lines">@@ -423,11 +423,11 @@
</span><span class="cx">         return false;
</span><span class="cx">     CaptionUserPreferences* captionPreferences = page()-&gt;group().captionPreferences();
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(kind, &quot;Subtitles&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(kind, &quot;subtitles&quot;))
</ins><span class="cx">         return captionPreferences-&gt;userPrefersSubtitles();
</span><del>-    if (equalIgnoringCase(kind, &quot;Captions&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(kind, &quot;captions&quot;))
</ins><span class="cx">         return captionPreferences-&gt;userPrefersCaptions();
</span><del>-    if (equalIgnoringCase(kind, &quot;TextDescriptions&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(kind, &quot;textdescriptions&quot;))
</ins><span class="cx">         return captionPreferences-&gt;userPrefersTextDescriptions();
</span><span class="cx"> 
</span><span class="cx">     ec = SYNTAX_ERR;
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/testing/Internals.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -294,28 +294,28 @@
</span><span class="cx"> 
</span><span class="cx"> static bool markerTypeFrom(const String&amp; markerType, DocumentMarker::MarkerType&amp; result)
</span><span class="cx"> {
</span><del>-    if (equalIgnoringCase(markerType, &quot;Spelling&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(markerType, &quot;spelling&quot;))
</ins><span class="cx">         result = DocumentMarker::Spelling;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;Grammar&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;grammar&quot;))
</ins><span class="cx">         result = DocumentMarker::Grammar;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;TextMatch&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;textmatch&quot;))
</ins><span class="cx">         result = DocumentMarker::TextMatch;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;Replacement&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;replacement&quot;))
</ins><span class="cx">         result = DocumentMarker::Replacement;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;CorrectionIndicator&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;correctionindicator&quot;))
</ins><span class="cx">         result = DocumentMarker::CorrectionIndicator;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;RejectedCorrection&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;rejectedcorrection&quot;))
</ins><span class="cx">         result = DocumentMarker::RejectedCorrection;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;Autocorrected&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;autocorrected&quot;))
</ins><span class="cx">         result = DocumentMarker::Autocorrected;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;SpellCheckingExemption&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;spellcheckingexemption&quot;))
</ins><span class="cx">         result = DocumentMarker::SpellCheckingExemption;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;DeletedAutocorrection&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;deletedautocorrection&quot;))
</ins><span class="cx">         result = DocumentMarker::DeletedAutocorrection;
</span><del>-    else if (equalIgnoringCase(markerType, &quot;DictationAlternatives&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;dictationalternatives&quot;))
</ins><span class="cx">         result = DocumentMarker::DictationAlternatives;
</span><span class="cx"> #if ENABLE(TELEPHONE_NUMBER_DETECTION)
</span><del>-    else if (equalIgnoringCase(markerType, &quot;TelephoneNumber&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(markerType, &quot;telephonenumber&quot;))
</ins><span class="cx">         result = DocumentMarker::TelephoneNumber;
</span><span class="cx"> #endif
</span><span class="cx">     else
</span><span class="lines">@@ -328,7 +328,7 @@
</span><span class="cx"> {
</span><span class="cx">     DocumentMarker::MarkerType singularResult;
</span><span class="cx"> 
</span><del>-    if (markerType.isEmpty() || equalIgnoringCase(markerType, &quot;all&quot;))
</del><ins>+    if (markerType.isEmpty() || equalLettersIgnoringASCIICase(markerType, &quot;all&quot;))
</ins><span class="cx">         result = DocumentMarker::AllMarkers();
</span><span class="cx">     else if (markerTypeFrom(markerType, singularResult))
</span><span class="cx">         result = singularResult;
</span><span class="lines">@@ -2589,11 +2589,11 @@
</span><span class="cx"> 
</span><span class="cx">     HTMLMediaElement* element = downcast&lt;HTMLMediaElement&gt;(node);
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(characteristic, &quot;Audible&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(characteristic, &quot;audible&quot;))
</ins><span class="cx">         return element-&gt;hasAudio();
</span><del>-    if (equalIgnoringCase(characteristic, &quot;Visual&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(characteristic, &quot;visual&quot;))
</ins><span class="cx">         return element-&gt;hasVideo();
</span><del>-    if (equalIgnoringCase(characteristic, &quot;Legible&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(characteristic, &quot;legible&quot;))
</ins><span class="cx">         return element-&gt;hasClosedCaptions();
</span><span class="cx"> 
</span><span class="cx">     ec = SYNTAX_ERR;
</span><span class="lines">@@ -2676,11 +2676,11 @@
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     CaptionUserPreferences* captionPreferences = document-&gt;page()-&gt;group().captionPreferences();
</span><span class="cx">     
</span><del>-    if (equalIgnoringCase(mode, &quot;Automatic&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mode, &quot;automatic&quot;))
</ins><span class="cx">         captionPreferences-&gt;setCaptionDisplayMode(CaptionUserPreferences::Automatic);
</span><del>-    else if (equalIgnoringCase(mode, &quot;ForcedOnly&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(mode, &quot;forcedonly&quot;))
</ins><span class="cx">         captionPreferences-&gt;setCaptionDisplayMode(CaptionUserPreferences::ForcedOnly);
</span><del>-    else if (equalIgnoringCase(mode, &quot;AlwaysOn&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(mode, &quot;alwayson&quot;))
</ins><span class="cx">         captionPreferences-&gt;setCaptionDisplayMode(CaptionUserPreferences::AlwaysOn);
</span><span class="cx">     else
</span><span class="cx">         ec = SYNTAX_ERR;
</span><span class="lines">@@ -2784,11 +2784,11 @@
</span><span class="cx"> {
</span><span class="cx">     PlatformMediaSession::InterruptionType interruption = PlatformMediaSession::SystemInterruption;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(interruptionString, &quot;System&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(interruptionString, &quot;system&quot;))
</ins><span class="cx">         interruption = PlatformMediaSession::SystemInterruption;
</span><del>-    else if (equalIgnoringCase(interruptionString, &quot;SystemSleep&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(interruptionString, &quot;systemsleep&quot;))
</ins><span class="cx">         interruption = PlatformMediaSession::SystemSleep;
</span><del>-    else if (equalIgnoringCase(interruptionString, &quot;EnteringBackground&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(interruptionString, &quot;enteringbackground&quot;))
</ins><span class="cx">         interruption = PlatformMediaSession::EnteringBackground;
</span><span class="cx">     else {
</span><span class="cx">         ec = INVALID_ACCESS_ERR;
</span><span class="lines">@@ -2802,7 +2802,7 @@
</span><span class="cx"> {
</span><span class="cx">     PlatformMediaSession::EndInterruptionFlags flags = PlatformMediaSession::NoFlags;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(flagsString, &quot;MayResumePlaying&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(flagsString, &quot;mayresumeplaying&quot;))
</ins><span class="cx">         flags = PlatformMediaSession::MayResumePlaying;
</span><span class="cx">     
</span><span class="cx">     PlatformMediaSessionManager::sharedManager().endInterruption(flags);
</span><span class="lines">@@ -2821,11 +2821,11 @@
</span><span class="cx"> void Internals::setMediaSessionRestrictions(const String&amp; mediaTypeString, const String&amp; restrictionsString, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     PlatformMediaSession::MediaType mediaType = PlatformMediaSession::None;
</span><del>-    if (equalIgnoringCase(mediaTypeString, &quot;Video&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(mediaTypeString, &quot;video&quot;))
</ins><span class="cx">         mediaType = PlatformMediaSession::Video;
</span><del>-    else if (equalIgnoringCase(mediaTypeString, &quot;Audio&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(mediaTypeString, &quot;audio&quot;))
</ins><span class="cx">         mediaType = PlatformMediaSession::Audio;
</span><del>-    else if (equalIgnoringCase(mediaTypeString, &quot;WebAudio&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(mediaTypeString, &quot;webaudio&quot;))
</ins><span class="cx">         mediaType = PlatformMediaSession::WebAudio;
</span><span class="cx">     else {
</span><span class="cx">         ec = INVALID_ACCESS_ERR;
</span><span class="lines">@@ -2840,13 +2840,13 @@
</span><span class="cx">     Vector&lt;String&gt; restrictionsArray;
</span><span class="cx">     restrictionsString.split(',', false, restrictionsArray);
</span><span class="cx">     for (auto&amp; restrictionString : restrictionsArray) {
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;ConcurrentPlaybackNotPermitted&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;concurrentplaybacknotpermitted&quot;))
</ins><span class="cx">             restrictions |= PlatformMediaSessionManager::ConcurrentPlaybackNotPermitted;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;BackgroundProcessPlaybackRestricted&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;backgroundprocessplaybackrestricted&quot;))
</ins><span class="cx">             restrictions |= PlatformMediaSessionManager::BackgroundProcessPlaybackRestricted;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;BackgroundTabPlaybackRestricted&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;backgroundtabplaybackrestricted&quot;))
</ins><span class="cx">             restrictions |= PlatformMediaSessionManager::BackgroundTabPlaybackRestricted;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;InterruptedPlaybackNotPermitted&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;interruptedplaybacknotpermitted&quot;))
</ins><span class="cx">             restrictions |= PlatformMediaSessionManager::InterruptedPlaybackNotPermitted;
</span><span class="cx">     }
</span><span class="cx">     PlatformMediaSessionManager::sharedManager().addRestriction(mediaType, restrictions);
</span><span class="lines">@@ -2867,31 +2867,31 @@
</span><span class="cx">     Vector&lt;String&gt; restrictionsArray;
</span><span class="cx">     restrictionsString.split(',', false, restrictionsArray);
</span><span class="cx">     for (auto&amp; restrictionString : restrictionsArray) {
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;NoRestrictions&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;norestrictions&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::NoRestrictions;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequireUserGestureForLoad&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requireusergestureforload&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::RequireUserGestureForLoad;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequireUserGestureForRateChange&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requireusergestureforratechange&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::RequireUserGestureForRateChange;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequireUserGestureForFullscreen&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requireusergestureforfullscreen&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::RequireUserGestureForFullscreen;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequirePageConsentToLoadMedia&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requirepageconsenttoloadmedia&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::RequirePageConsentToLoadMedia;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequirePageConsentToResumeMedia&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requirepageconsenttoresumemedia&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::RequirePageConsentToResumeMedia;
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequireUserGestureToShowPlaybackTargetPicker&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requireusergesturetoshowplaybacktargetpicker&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::RequireUserGestureToShowPlaybackTargetPicker;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;WirelessVideoPlaybackDisabled&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;wirelessvideoplaybackdisabled&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::WirelessVideoPlaybackDisabled;
</span><span class="cx"> #endif
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequireUserGestureForAudioRateChange&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requireusergestureforaudioratechange&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::RequireUserGestureForAudioRateChange;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;MetadataPreloadingNotPermitted&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;metadatapreloadingnotpermitted&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::MetadataPreloadingNotPermitted;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;AutoPreloadingNotPermitted&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;autopreloadingnotpermitted&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::AutoPreloadingNotPermitted;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;InvisibleAutoplayNotPermitted&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;invisibleautoplaynotpermitted&quot;))
</ins><span class="cx">             restrictions |= MediaElementSession::InvisibleAutoplayNotPermitted;
</span><span class="cx">     }
</span><span class="cx">     element-&gt;mediaSession().addBehaviorRestriction(restrictions);
</span><span class="lines">@@ -2901,21 +2901,21 @@
</span><span class="cx"> {
</span><span class="cx">     PlatformMediaSession::RemoteControlCommandType command;
</span><span class="cx">     
</span><del>-    if (equalIgnoringCase(commandString, &quot;Play&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(commandString, &quot;play&quot;))
</ins><span class="cx">         command = PlatformMediaSession::PlayCommand;
</span><del>-    else if (equalIgnoringCase(commandString, &quot;Pause&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(commandString, &quot;pause&quot;))
</ins><span class="cx">         command = PlatformMediaSession::PauseCommand;
</span><del>-    else if (equalIgnoringCase(commandString, &quot;Stop&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(commandString, &quot;stop&quot;))
</ins><span class="cx">         command = PlatformMediaSession::StopCommand;
</span><del>-    else if (equalIgnoringCase(commandString, &quot;TogglePlayPause&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(commandString, &quot;toggleplaypause&quot;))
</ins><span class="cx">         command = PlatformMediaSession::TogglePlayPauseCommand;
</span><del>-    else if (equalIgnoringCase(commandString, &quot;BeginSeekingBackward&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(commandString, &quot;beginseekingbackward&quot;))
</ins><span class="cx">         command = PlatformMediaSession::BeginSeekingBackwardCommand;
</span><del>-    else if (equalIgnoringCase(commandString, &quot;EndSeekingBackward&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(commandString, &quot;endseekingbackward&quot;))
</ins><span class="cx">         command = PlatformMediaSession::EndSeekingBackwardCommand;
</span><del>-    else if (equalIgnoringCase(commandString, &quot;BeginSeekingForward&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(commandString, &quot;beginseekingforward&quot;))
</ins><span class="cx">         command = PlatformMediaSession::BeginSeekingForwardCommand;
</span><del>-    else if (equalIgnoringCase(commandString, &quot;EndSeekingForward&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(commandString, &quot;endseekingforward&quot;))
</ins><span class="cx">         command = PlatformMediaSession::EndSeekingForwardCommand;
</span><span class="cx">     else {
</span><span class="cx">         ec = INVALID_ACCESS_ERR;
</span><span class="lines">@@ -3003,11 +3003,11 @@
</span><span class="cx">     Vector&lt;String&gt; restrictionsArray;
</span><span class="cx">     restrictionsString.split(',', false, restrictionsArray);
</span><span class="cx">     for (auto&amp; restrictionString : restrictionsArray) {
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;NoRestrictions&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;norestrictions&quot;))
</ins><span class="cx">             restrictions |= AudioContext::NoRestrictions;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequireUserGestureForAudioStart&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requireusergestureforaudiostart&quot;))
</ins><span class="cx">             restrictions |= AudioContext::RequireUserGestureForAudioStartRestriction;
</span><del>-        if (equalIgnoringCase(restrictionString, &quot;RequirePageConsentForAudioStart&quot;))
</del><ins>+        if (equalLettersIgnoringASCIICase(restrictionString, &quot;requirepageconsentforaudiostart&quot;))
</ins><span class="cx">             restrictions |= AudioContext::RequirePageConsentForAudioStartRestriction;
</span><span class="cx">     }
</span><span class="cx">     context-&gt;addBehaviorRestriction(restrictions);
</span><span class="lines">@@ -3044,11 +3044,11 @@
</span><span class="cx"> 
</span><span class="cx">     MediaPlaybackTargetContext::State state = MediaPlaybackTargetContext::Unknown;
</span><span class="cx"> 
</span><del>-    if (equalIgnoringCase(deviceState, &quot;DeviceAvailable&quot;))
</del><ins>+    if (equalLettersIgnoringASCIICase(deviceState, &quot;deviceavailable&quot;))
</ins><span class="cx">         state = MediaPlaybackTargetContext::OutputDeviceAvailable;
</span><del>-    else if (equalIgnoringCase(deviceState, &quot;DeviceUnavailable&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(deviceState, &quot;deviceunavailable&quot;))
</ins><span class="cx">         state = MediaPlaybackTargetContext::OutputDeviceUnavailable;
</span><del>-    else if (equalIgnoringCase(deviceState, &quot;Unknown&quot;))
</del><ins>+    else if (equalLettersIgnoringASCIICase(deviceState, &quot;unknown&quot;))
</ins><span class="cx">         state = MediaPlaybackTargetContext::Unknown;
</span><span class="cx">     else {
</span><span class="cx">         ec = INVALID_ACCESS_ERR;
</span></span></pre></div>
<a id="trunkSourceWebCoretestingMockCDMcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/MockCDM.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/MockCDM.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/testing/MockCDM.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool MockCDM::supportsKeySystem(const String&amp; keySystem)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(keySystem, &quot;com.webcore.mock&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(keySystem, &quot;com.webcore.mock&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MockCDM::supportsKeySystemAndMimeType(const String&amp; keySystem, const String&amp; mimeType)
</span><span class="lines">@@ -63,12 +63,12 @@
</span><span class="cx">     if (!supportsKeySystem(keySystem))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return equalIgnoringCase(mimeType, &quot;video/mock&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(mimeType, &quot;video/mock&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MockCDM::supportsMIMEType(const String&amp; mimeType)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(mimeType, &quot;video/mock&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(mimeType, &quot;video/mock&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> std::unique_ptr&lt;CDMSession&gt; MockCDM::createSession(CDMSessionClient* client)
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool isSetCookieHeader(const String&amp; name)
</span><span class="cx"> {
</span><del>-    return equalIgnoringCase(name, &quot;set-cookie&quot;) || equalIgnoringCase(name, &quot;set-cookie2&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(name, &quot;set-cookie&quot;) || equalLettersIgnoringASCIICase(name, &quot;set-cookie2&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void replaceCharsetInMediaType(String&amp; mediaType, const String&amp; charsetValue)
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!m_createdDocument) {
</span><span class="cx">         String mimeType = responseMIMEType();
</span><del>-        bool isHTML = equalIgnoringCase(mimeType, &quot;text/html&quot;);
</del><ins>+        bool isHTML = equalLettersIgnoringASCIICase(mimeType, &quot;text/html&quot;);
</ins><span class="cx"> 
</span><span class="cx">         // The W3C spec requires the final MIME type to be some valid XML type, or text/html.
</span><span class="cx">         // If it is text/html, then the responseType of &quot;document&quot; must have been supplied explicitly.
</span><span class="lines">@@ -397,9 +397,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool XMLHttpRequest::isAllowedHTTPMethod(const String&amp; method)
</span><span class="cx"> {
</span><del>-    return !equalIgnoringCase(method, &quot;TRACE&quot;)
-        &amp;&amp; !equalIgnoringCase(method, &quot;TRACK&quot;)
-        &amp;&amp; !equalIgnoringCase(method, &quot;CONNECT&quot;);
</del><ins>+    return !equalLettersIgnoringASCIICase(method, &quot;trace&quot;)
+        &amp;&amp; !equalLettersIgnoringASCIICase(method, &quot;track&quot;)
+        &amp;&amp; !equalLettersIgnoringASCIICase(method, &quot;connect&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String XMLHttpRequest::uppercaseKnownHTTPMethod(const String&amp; method)
</span><span class="lines">@@ -1170,7 +1170,7 @@
</span><span class="cx">             m_decoder = TextResourceDecoder::create(&quot;application/xml&quot;);
</span><span class="cx">             // Don't stop on encoding errors, unlike it is done for other kinds of XML resources. This matches the behavior of previous WebKit versions, Firefox and Opera.
</span><span class="cx">             m_decoder-&gt;useLenientXMLDecoding();
</span><del>-        } else if (equalIgnoringCase(responseMIMEType(), &quot;text/html&quot;))
</del><ins>+        } else if (equalLettersIgnoringASCIICase(responseMIMEType(), &quot;text/html&quot;))
</ins><span class="cx">             m_decoder = TextResourceDecoder::create(&quot;text/html&quot;, &quot;UTF-8&quot;);
</span><span class="cx">         else
</span><span class="cx">             m_decoder = TextResourceDecoder::create(&quot;text/plain&quot;, &quot;UTF-8&quot;);
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebKit/ChangeLog        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-01-22  Darin Adler  &lt;darin@apple.com&gt;
+
+        Reduce use of equalIgnoringCase to just ignore ASCII case
+        https://bugs.webkit.org/show_bug.cgi?id=153266
+
+        Reviewed by Ryosuke Niwa.
+
+        * Storage/StorageTracker.cpp:
+        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
+        Removed extraneous unneeded &quot;, true&quot; in call to String::endsWith.
+        Preparation for later removing the boolean argument.
+
</ins><span class="cx"> 2016-01-14  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: Support opening and deleting SQLite databases on disk.
</span></span></pre></div>
<a id="trunkSourceWebKitStorageStorageTrackercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Storage/StorageTracker.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Storage/StorageTracker.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebKit/Storage/StorageTracker.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx">     for (Vector&lt;String&gt;::const_iterator it = paths.begin(), end = paths.end(); it != end; ++it) {
</span><span class="cx">         const String&amp; path = *it;
</span><span class="cx"> 
</span><del>-        if (path.length() &gt; fileExtension.length() &amp;&amp; path.endsWith(fileExtension, true)) {
</del><ins>+        if (path.length() &gt; fileExtension.length() &amp;&amp; path.endsWith(fileExtension)) {
</ins><span class="cx">             String file = pathGetFileName(path);
</span><span class="cx">             String originIdentifier = file.substring(0, file.length() - fileExtension.length());
</span><span class="cx">             if (!originSetCopy.contains(originIdentifier))
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-01-22  Darin Adler  &lt;darin@apple.com&gt;
+
+        Reduce use of equalIgnoringCase to just ignore ASCII case
+        https://bugs.webkit.org/show_bug.cgi?id=153266
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+        (WebFrameLoaderClient::createPlugin): Use equalLettersIgnoringASCIICase.
+
</ins><span class="cx"> 2016-01-21  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Tooltips do not honor some types of obscuring windows
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1940,7 +1940,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     NSMutableArray *attributeKeys = kit(paramNames);
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>-    if (frame &amp;&amp; frame-&gt;settings().needsSiteSpecificQuirks() &amp;&amp; equalIgnoringCase(mimeType, &quot;application/x-snkp&quot;)) {
</del><ins>+    if (frame &amp;&amp; frame-&gt;settings().needsSiteSpecificQuirks() &amp;&amp; equalLettersIgnoringASCIICase(mimeType, &quot;application/x-snkp&quot;)) {
</ins><span class="cx">         for (NSUInteger i = 0; i &lt; [attributeKeys count]; ++i)
</span><span class="cx">             [attributeKeys replaceObjectAtIndex:i withObject:[[attributeKeys objectAtIndex:i] lowercaseString]];
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebKit2/ChangeLog        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-01-22  Darin Adler  &lt;darin@apple.com&gt;
+
+        Reduce use of equalIgnoringCase to just ignore ASCII case
+        https://bugs.webkit.org/show_bug.cgi?id=153266
+
+        Reviewed by Ryosuke Niwa.
+
+        * UIProcess/PageLoadState.cpp:
+        (WebKit::PageLoadState::hasOnlySecureContent): Use the protocolIs
+        function from WebCore instead of calling startsWith.
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::initialize): Use equalLettersIgnoringASCIICase.
+
</ins><span class="cx"> 2016-01-21  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Tooltips do not honor some types of obscuring windows
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPageLoadStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/PageLoadState.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/PageLoadState.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebKit2/UIProcess/PageLoadState.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">     if (data.hasInsecureContent)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    return data.url.startsWith(&quot;https:&quot;, false);
</del><ins>+    return WebCore::protocolIs(data.url, &quot;https&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool PageLoadState::hasOnlySecureContent() const
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeNetscapePlugincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp (195451 => 195452)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp        2016-01-22 16:50:17 UTC (rev 195451)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp        2016-01-22 17:17:04 UTC (rev 195452)
</span><span class="lines">@@ -648,18 +648,18 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if PLUGIN_ARCHITECTURE(X11)
</span><del>-    if (equalIgnoringCase(parameters.mimeType, &quot;application/x-shockwave-flash&quot;)) {
</del><ins>+    if (equalLettersIgnoringASCIICase(parameters.mimeType, &quot;application/x-shockwave-flash&quot;)) {
</ins><span class="cx">         size_t wmodeIndex = parameters.names.find(&quot;wmode&quot;);
</span><span class="cx">         if (wmodeIndex != notFound) {
</span><span class="cx">             // Transparent window mode is not supported by X11 backend.
</span><del>-            if (equalIgnoringCase(parameters.values[wmodeIndex], &quot;transparent&quot;)
-                || (m_pluginModule-&gt;pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode) &amp;&amp; equalIgnoringCase(parameters.values[wmodeIndex], &quot;window&quot;)))
</del><ins>+            if (equalLettersIgnoringASCIICase(parameters.values[wmodeIndex], &quot;transparent&quot;)
+                || (m_pluginModule-&gt;pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode) &amp;&amp; equalLettersIgnoringASCIICase(parameters.values[wmodeIndex], &quot;window&quot;)))
</ins><span class="cx">                 paramValues[wmodeIndex] = &quot;opaque&quot;;
</span><span class="cx">         } else if (m_pluginModule-&gt;pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode)) {
</span><span class="cx">             paramNames.append(&quot;wmode&quot;);
</span><span class="cx">             paramValues.append(&quot;opaque&quot;);
</span><span class="cx">         }
</span><del>-    } else if (equalIgnoringCase(parameters.mimeType, &quot;application/x-webkit-test-netscape&quot;)) {
</del><ins>+    } else if (equalLettersIgnoringASCIICase(parameters.mimeType, &quot;application/x-webkit-test-netscape&quot;)) {
</ins><span class="cx">         paramNames.append(&quot;windowedPlugin&quot;);
</span><span class="cx">         paramValues.append(&quot;false&quot;);
</span><span class="cx">     }
</span><span class="lines">@@ -676,7 +676,7 @@
</span><span class="cx"> #if PLUGIN_ARCHITECTURE(MAC)
</span><span class="cx">     if (m_pluginModule-&gt;pluginQuirks().contains(PluginQuirks::MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists)) {
</span><span class="cx">         for (size_t i = 0; i &lt; parameters.names.size(); ++i) {
</span><del>-            if (equalIgnoringCase(parameters.names[i], &quot;background&quot;)) {
</del><ins>+            if (equalLettersIgnoringASCIICase(parameters.names[i], &quot;background&quot;)) {
</ins><span class="cx">                 setIsTransparent(isTransparentSilverlightBackgroundValue(parameters.values[i].lower()));
</span><span class="cx">                 break;
</span><span class="cx">             }
</span></span></pre>
</div>
</div>

</body>
</html>