<!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 "letters" 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 "0" since there is no need to "ignore case" 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("").
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 "0" and "1" 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 ", true" 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 <darin@apple.com>
+
+ 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 <ossy@webkit.org>
</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<typename CharacterType> 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 "-", "/", and "+"
+ // It cannot be:
+ // - an uppercase letter
+ // - a non-ASCII character
+ // - other punctuation, such as underscore and backslash
+ // - a control character such as "\n"
+ // 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, "all")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(component, "all")) {
</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& a, const String& b) { return equalIgnoringASCIICase(a.impl(), b.impl()); }
</span><span class="cx"> inline bool equalIgnoringASCIICase(const String& a, const AtomicString& b) { return equalIgnoringASCIICase(a.impl(), b.impl()); }
</span><span class="cx">
</span><del>-template <unsigned charactersCount>
-inline bool equalIgnoringASCIICase(const AtomicString& a, const char (&b)[charactersCount]) { return equalIgnoringASCIICase<charactersCount>(a.impl(), b); }
</del><ins>+template<unsigned length> bool equalLettersIgnoringASCIICase(const AtomicString&, const char (&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<unsigned length> inline bool equalLettersIgnoringASCIICase(const AtomicString& string, const char (&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 <wtf/text/StringConcatenate.h>
</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<typename CharacterType> bool equalLettersIgnoringASCIICase(const CharacterType*, const char* lowercaseLetters, unsigned length);
+template<typename StringClass, unsigned length> bool equalLettersIgnoringASCIICaseCommon(const StringClass&, const char (&lowercaseLetters)[length]);
+
</ins><span class="cx"> template<typename T>
</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<typename CharacterType> inline bool equalLettersIgnoringASCIICase(const CharacterType* characters, const char* lowercaseLetters, unsigned length)
+{
+ for (unsigned i = 0; i < 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<typename StringClass> bool equalLettersIgnoringASCIICaseCommonWithoutLength(const StringClass& 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<typename StringClass, unsigned length> inline bool equalLettersIgnoringASCIICaseCommon(const StringClass& string, const char (&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<unsigned length> bool equalLettersIgnoringASCIICase(const StringImpl&, const char (&lowercaseLetters)[length]);
+template<unsigned length> bool equalLettersIgnoringASCIICase(const StringImpl*, const char (&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 < 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<unsigned length> inline bool equalLettersIgnoringASCIICase(const StringImpl& string, const char (&lowercaseLetters)[length])
+{
+ return equalLettersIgnoringASCIICaseCommon(string, lowercaseLetters);
+}
+
+template<unsigned length> inline bool equalLettersIgnoringASCIICase(const StringImpl* string, const char (&lowercaseLetters)[length])
+{
+ return string && 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<unsigned length> bool equalLettersIgnoringASCIICase(StringView, const char (&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<unsigned length> inline bool equalLettersIgnoringASCIICase(StringView string, const char (&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& a, const char* b) { return equal(a.impl(), reinterpret_cast<const LChar*>(b)); }
</span><span class="cx"> inline bool operator==(const LChar* a, const String& b) { return equal(a, b.impl()); }
</span><span class="cx"> inline bool operator==(const char* a, const String& b) { return equal(reinterpret_cast<const LChar*>(a), b.impl()); }
</span><del>-template<size_t inlineCapacity>
-inline bool operator==(const Vector<char, inlineCapacity>& a, const String& b) { return equal(b.impl(), a.data(), a.size()); }
-template<size_t inlineCapacity>
-inline bool operator==(const String& a, const Vector<char, inlineCapacity>& b) { return b == a; }
</del><ins>+template<size_t inlineCapacity> inline bool operator==(const Vector<char, inlineCapacity>& a, const String& b) { return equal(b.impl(), a.data(), a.size()); }
+template<size_t inlineCapacity> inline bool operator==(const String& a, const Vector<char, inlineCapacity>& b) { return b == a; }
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> inline bool operator!=(const String& a, const String& b) { return !equal(a.impl(), b.impl()); }
</span><span class="lines">@@ -503,10 +501,8 @@
</span><span class="cx"> inline bool operator!=(const String& a, const char* b) { return !equal(a.impl(), reinterpret_cast<const LChar*>(b)); }
</span><span class="cx"> inline bool operator!=(const LChar* a, const String& b) { return !equal(a, b.impl()); }
</span><span class="cx"> inline bool operator!=(const char* a, const String& b) { return !equal(reinterpret_cast<const LChar*>(a), b.impl()); }
</span><del>-template<size_t inlineCapacity>
-inline bool operator!=(const Vector<char, inlineCapacity>& a, const String& b) { return !(a == b); }
-template<size_t inlineCapacity>
-inline bool operator!=(const String& a, const Vector<char, inlineCapacity>& b) { return b != a; }
</del><ins>+template<size_t inlineCapacity> inline bool operator!=(const Vector<char, inlineCapacity>& a, const String& b) { return !(a == b); }
+template<size_t inlineCapacity> inline bool operator!=(const String& a, const Vector<char, inlineCapacity>& b) { return b != a; }
</ins><span class="cx">
</span><span class="cx"> inline bool equalIgnoringCase(const String& a, const String& b) { return equalIgnoringCase(a.impl(), b.impl()); }
</span><span class="cx"> inline bool equalIgnoringCase(const String& 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& b) { return equalIgnoringCase(a, b.impl()); }
</span><span class="cx"> inline bool equalIgnoringCase(const char* a, const String& b) { return equalIgnoringCase(reinterpret_cast<const LChar*>(a), b.impl()); }
</span><span class="cx">
</span><ins>+bool equalPossiblyIgnoringCase(const String&, const String&, bool ignoreCase);
+
</ins><span class="cx"> inline bool equalIgnoringASCIICase(const String& a, const String& b) { return equalIgnoringASCIICase(a.impl(), b.impl()); }
</span><del>-template<unsigned charactersCount>
-inline bool equalIgnoringASCIICase(const String& a, const char (&b)[charactersCount]) { return equalIgnoringASCIICase<charactersCount>(a.impl(), b); }
</del><ins>+template<unsigned charactersCount> inline bool equalIgnoringASCIICase(const String& a, const char (&b)[charactersCount]) { return equalIgnoringASCIICase<charactersCount>(a.impl(), b); }
</ins><span class="cx">
</span><del>-inline bool equalPossiblyIgnoringCase(const String& a, const String& b, bool ignoreCase)
-{
- return ignoreCase ? equalIgnoringCase(a, b) : (a == b);
-}
</del><ins>+template<unsigned length> bool equalLettersIgnoringASCIICase(const String&, const char (&lowercaseLetters)[length]);
</ins><span class="cx">
</span><span class="cx"> inline bool equalIgnoringNullity(const String& a, const String& b) { return equalIgnoringNullity(a.impl(), b.impl()); }
</span><ins>+template<size_t inlineCapacity> inline bool equalIgnoringNullity(const Vector<UChar, inlineCapacity>& a, const String& b) { return equalIgnoringNullity(a, b.impl()); }
</ins><span class="cx">
</span><del>-template<size_t inlineCapacity>
-inline bool equalIgnoringNullity(const Vector<UChar, inlineCapacity>& a, const String& b) { return equalIgnoringNullity(a, b.impl()); }
-
</del><span class="cx"> inline bool operator!(const String& str) { return str.isNull(); }
</span><span class="cx">
</span><span class="cx"> inline void swap(String& a, String& b) { a.swap(b); }
</span><span class="lines">@@ -676,6 +668,11 @@
</span><span class="cx"> return WTF::isAllSpecialCharacters<isSpecialCharacter, UChar>(characters16(), len);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+inline bool equalPossiblyIgnoringCase(const String& a, const String& 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<typename T> struct DefaultHash;
</span><span class="cx"> template<> struct DefaultHash<String> {
</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& emptyString();
</span><span class="cx">
</span><ins>+template<unsigned length> inline bool equalLettersIgnoringASCIICase(const String& string, const char (&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 <darin@apple.com>
+
+ 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 "letters" 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 "0" since there is no need to "ignore case" 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("").
+ 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 "0" and "1" 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 <youenn.fablet@crf.canon.fr>
</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& keySystem)
</span><span class="cx"> {
</span><del>- if (!equalIgnoringCase(keySystem, "org.w3c.clearkey"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(keySystem, "org.w3c.clearkey"))
</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& keySystem, const String& mimeType)
</span><span class="cx"> {
</span><del>- if (!equalIgnoringCase(keySystem, "org.w3c.clearkey"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(keySystem, "org.w3c.clearkey"))
</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("alg", algorithm) || !equalIgnoringCase(algorithm, "a128kw")) {
</del><ins>+ if (!keyDictionary.get("alg", algorithm) || !equalLettersIgnoringASCIICase(algorithm, "a128kw")) {
</ins><span class="cx"> LOG(Media, "CDMSessionClearKey::update(%p) - failed: algorithm unsupported", 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("kty", keyType) || !equalIgnoringCase(keyType, "oct")) {
</del><ins>+ if (!keyDictionary.get("kty", keyType) || !equalLettersIgnoringASCIICase(keyType, "oct")) {
</ins><span class="cx"> LOG(Media, "CDMSessionClearKey::update(%p) - failed: keyType unsupported", 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& mimeType)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(mimeType, "application/x-shockwave-flash")
- || equalIgnoringCase(mimeType, "application/futuresplash");
</del><ins>+ return equalLettersIgnoringASCIICase(mimeType, "application/x-shockwave-flash")
+ || equalLettersIgnoringASCIICase(mimeType, "application/futuresplash");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool YouTubePluginReplacement::supportsFileExtension(const String& extension)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(extension, "spl") || equalIgnoringCase(extension, "swf");
</del><ins>+ return equalLettersIgnoringASCIICase(extension, "spl") || equalLettersIgnoringASCIICase(extension, "swf");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> YouTubePluginReplacement::YouTubePluginReplacement(HTMLPlugInElement& plugin, const Vector<String>& paramNames, const Vector<String>& 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, "fts3"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(moduleName, "fts3"))
</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, "fts3"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(moduleName, "fts3"))
</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 < 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("sec-websocket-extensions", name)) {
</del><ins>+ if (equalLettersIgnoringASCIICase(name, "sec-websocket-extensions")) {
</ins><span class="cx"> if (sawSecWebSocketExtensionsHeaderField) {
</span><span class="cx"> m_failureReason = "The Sec-WebSocket-Extensions header MUST NOT appear more than once in an HTTP response";
</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("Sec-WebSocket-Accept", name)) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(name, "sec-websocket-accept")) {
</ins><span class="cx"> if (sawSecWebSocketAcceptHeaderField) {
</span><span class="cx"> m_failureReason = "The Sec-WebSocket-Accept header MUST NOT appear more than once in an HTTP response";
</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("Sec-WebSocket-Protocol", name)) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(name, "sec-websocket-protocol")) {
</ins><span class="cx"> if (sawSecWebSocketProtocolHeaderField) {
</span><span class="cx"> m_failureReason = "The Sec-WebSocket-Protocol header MUST NOT appear more than once in an HTTP response";
</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, "websocket")) {
</del><ins>+ if (!equalLettersIgnoringASCIICase(serverUpgrade, "websocket")) {
</ins><span class="cx"> m_failureReason = "Error during WebSocket handshake: 'Upgrade' header value is not 'WebSocket'";
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><del>- if (!equalIgnoringCase(serverConnection, "upgrade")) {
</del><ins>+ if (!equalLettersIgnoringASCIICase(serverConnection, "upgrade")) {
</ins><span class="cx"> m_failureReason = "Error during WebSocket handshake: 'Connection' header value is not 'Upgrade'";
</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, "dialog") && !nodeHasRole(element, "alertdialog"))
</span><span class="cx"> continue;
</span><del>- if (!equalIgnoringCase(element->fastGetAttribute(aria_modalAttr), "true"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(element->fastGetAttribute(aria_modalAttr), "true"))
</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, "menuitem") && !nodeHasRole(node, "menuitemradio") && !nodeHasRole(node, "menuitemcheckbox"))
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (!downcast<Element>(*node).focused() && !equalIgnoringCase(downcast<Element>(*node).fastGetAttribute(aria_selectedAttr), "true"))
</del><ins>+ if (!downcast<Element>(*node).focused() && !equalLettersIgnoringASCIICase(downcast<Element>(*node).fastGetAttribute(aria_selectedAttr), "true"))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> postNotification(getOrCreate(node), &document(), AXMenuListItemSelected);
</span><span class="lines">@@ -1357,7 +1357,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> stopCachingComputedObjectAttributes();
</span><del>- if (equalIgnoringCase(downcast<Element>(*node).fastGetAttribute(aria_modalAttr), "true")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(downcast<Element>(*node).fastGetAttribute(aria_modalAttr), "true")) {
</ins><span class="cx"> // Add the newly modified node to the modal nodes set, and set it to be the current valid aria modal node.
</span><span class="cx"> // We will recompute the current valid aria modal node in ariaModalNode() when this node is not visible.
</span><span class="cx"> m_ariaModalNodesSet.add(node);
</span><span class="lines">@@ -1854,10 +1854,10 @@
</span><span class="cx"> for (Node* testNode = node; testNode; testNode = testNode->parentNode()) {
</span><span class="cx"> if (is<Element>(*testNode)) {
</span><span class="cx"> const AtomicString& ariaHiddenValue = downcast<Element>(*testNode).fastGetAttribute(aria_hiddenAttr);
</span><del>- if (equalIgnoringCase(ariaHiddenValue, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaHiddenValue, "true"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- bool ariaHiddenFalse = equalIgnoringCase(ariaHiddenValue, "false");
</del><ins>+ bool ariaHiddenFalse = equalLettersIgnoringASCIICase(ariaHiddenValue, "false");
</ins><span class="cx"> if (!testNode->renderer() && !ariaHiddenFalse)
</span><span class="cx"> return false;
</span><span class="cx"> if (!ariaHiddenFalsePresent && 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<HTMLOptGroupElement>(m_optionElement))
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (equalIgnoringCase(getAttribute(aria_disabledAttr), "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(getAttribute(aria_disabledAttr), "true"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> if (m_optionElement->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& type = input.getAttribute(typeAttr);
- if (equalIgnoringCase(type, "color"))
</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()->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<AccessibilityNodeObject*>(this); object; object = object->parentObject()) {
</span><span class="cx"> const AtomicString& disabledStatus = object->getAttribute(aria_disabledAttr);
</span><del>- if (equalIgnoringCase(disabledStatus, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(disabledStatus, "true"))
</ins><span class="cx"> return false;
</span><del>- if (equalIgnoringCase(disabledStatus, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(disabledStatus, "false"))
</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()->active()
</span><span class="cx"> AccessibilityRole ariaRole = ariaRoleAttribute();
</span><span class="cx"> if (ariaRole == ButtonRole || ariaRole == ToggleButtonRole) {
</span><del>- if (equalIgnoringCase(getAttribute(aria_pressedAttr), "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(getAttribute(aria_pressedAttr), "true"))
</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 && equalIgnoringCase(getAttribute(aria_checkedAttr), "true"))
</del><ins>+ if (validRole && equalLettersIgnoringASCIICase(getAttribute(aria_checkedAttr), "true"))
</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& ariaMultiSelectable = getAttribute(aria_multiselectableAttr);
</span><del>- if (equalIgnoringCase(ariaMultiSelectable, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaMultiSelectable, "true"))
</ins><span class="cx"> return true;
</span><del>- if (equalIgnoringCase(ariaMultiSelectable, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaMultiSelectable, "false"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> return node() && node()->hasTagName(selectTag) && downcast<HTMLSelectElement>(*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& requiredValue = getAttribute(aria_requiredAttr);
</span><del>- if (equalIgnoringCase(requiredValue, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(requiredValue, "true"))
</ins><span class="cx"> return true;
</span><del>- if (equalIgnoringCase(requiredValue, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(requiredValue, "false"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> Node* n = this->node();
</span><span class="lines">@@ -1640,7 +1637,7 @@
</span><span class="cx"> && !obj->accessibleNameDerivesFromContent())
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (equalIgnoringCase(obj->getAttribute(aria_hiddenAttr), "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(obj->getAttribute(aria_hiddenAttr), "true"))
</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& input = downcast<HTMLInputElement>(*node());
</span><del>- const AtomicString& type = input.getAttribute(typeAttr);
- if (!equalIgnoringCase(type, "color"))
</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 "true" (case-insensitive) and the empty string count as true.
</span><del>- return contentEditableValue.isEmpty() || equalIgnoringCase(contentEditableValue, "true");
</del><ins>+ return contentEditableValue.isEmpty() || equalLettersIgnoringASCIICase(contentEditableValue, "true");
</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), "true");
</del><ins>+ return equalLettersIgnoringASCIICase(getAttribute(aria_multilineAttr), "true");
</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& liveRegionStatus)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(liveRegionStatus, "polite") || equalIgnoringCase(liveRegionStatus, "assertive");
</del><ins>+ return equalLettersIgnoringASCIICase(liveRegionStatus, "polite") || equalLettersIgnoringASCIICase(liveRegionStatus, "assertive");
</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& sortAttribute = getAttribute(aria_sortAttr);
</span><del>- if (equalIgnoringCase(sortAttribute, "ascending"))
</del><ins>+ if (equalLettersIgnoringASCIICase(sortAttribute, "ascending"))
</ins><span class="cx"> return SortDirectionAscending;
</span><del>- if (equalIgnoringCase(sortAttribute, "descending"))
</del><ins>+ if (equalLettersIgnoringASCIICase(sortAttribute, "descending"))
</ins><span class="cx"> return SortDirectionDescending;
</span><del>- if (equalIgnoringCase(sortAttribute, "other"))
</del><ins>+ if (equalLettersIgnoringASCIICase(sortAttribute, "other"))
</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& expanded = getAttribute(aria_pressedAttr);
</span><del>- return equalIgnoringCase(expanded, "true") || equalIgnoringCase(expanded, "false");
</del><ins>+ return equalLettersIgnoringASCIICase(expanded, "true") || equalLettersIgnoringASCIICase(expanded, "false");
</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& expanded = getAttribute(aria_expandedAttr);
</span><del>- if (equalIgnoringCase(expanded, "true") || equalIgnoringCase(expanded, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(expanded, "true") || equalLettersIgnoringASCIICase(expanded, "false"))
</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), "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(getAttribute(aria_expandedAttr), "true"))
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> if (is<HTMLDetailsElement>(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& ariaPressed = getAttribute(aria_pressedAttr);
</span><del>- if (equalIgnoringCase(ariaPressed, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaPressed, "true"))
</ins><span class="cx"> return ButtonStateOn;
</span><del>- if (equalIgnoringCase(ariaPressed, "mixed"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaPressed, "mixed"))
</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& result = getAttribute(aria_checkedAttr);
</span><del>- if (equalIgnoringCase(result, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(result, "true"))
</ins><span class="cx"> return ButtonStateOn;
</span><del>- if (equalIgnoringCase(result, "mixed")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(result, "mixed")) {
</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), "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(getAttribute(indeterminateAttr), "true"))
</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->parentObject()) {
</span><del>- if (equalIgnoringCase(object->getAttribute(aria_hiddenAttr), "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(object->getAttribute(aria_hiddenAttr), "true"))
</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& grabbed = getAttribute(aria_grabbedAttr);
</span><del>- return equalIgnoringCase(grabbed, "true") || equalIgnoringCase(grabbed, "false");
</del><ins>+ return equalLettersIgnoringASCIICase(grabbed, "true") || equalLettersIgnoringASCIICase(grabbed, "false");
</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->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), "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(getAttribute(aria_hiddenAttr), "false"))
</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), "true");
</del><ins>+ return equalLettersIgnoringASCIICase(getAttribute(attributeName), "true");
</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->node();
- if (!node)
</del><ins>+ if (!m_renderer->node())
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- const AtomicString& ariaSelected = getAttribute(aria_selectedAttr);
- if (equalIgnoringCase(ariaSelected, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(getAttribute(aria_selectedAttr), "true"))
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> if (isTabItem() && 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& type = input.getAttribute(typeAttr);
- if (equalIgnoringCase(type, "color"))
</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& ariaOrientation = getAttribute(aria_orientationAttr);
</span><del>- if (equalIgnoringCase(ariaOrientation, "horizontal"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaOrientation, "horizontal"))
</ins><span class="cx"> return AccessibilityOrientationHorizontal;
</span><del>- if (equalIgnoringCase(ariaOrientation, "vertical"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaOrientation, "vertical"))
</ins><span class="cx"> return AccessibilityOrientationVertical;
</span><del>- if (equalIgnoringCase(ariaOrientation, "undefined"))
</del><ins>+ if (equalLettersIgnoringASCIICase(ariaOrientation, "undefined"))
</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& ariaExpanded = getAttribute(aria_expandedAttr);
</span><del>- return equalIgnoringCase(ariaExpanded, "true") || equalIgnoringCase(ariaExpanded, "false");
</del><ins>+ return equalLettersIgnoringASCIICase(ariaExpanded, "true") || equalLettersIgnoringASCIICase(ariaExpanded, "false");
</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), "true"))
</del><ins>+ auto& readOnly = getAttribute(aria_readonlyAttr);
+ if (equalLettersIgnoringASCIICase(readOnly, "true"))
</ins><span class="cx"> return false;
</span><del>-
- if (equalIgnoringCase(getAttribute(aria_readonlyAttr), "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(readOnly, "false"))
</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& atomic = getAttribute(aria_atomicAttr);
</span><del>- if (equalIgnoringCase(atomic, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(atomic, "true"))
</ins><span class="cx"> return true;
</span><del>- if (equalIgnoringCase(atomic, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(atomic, "false"))
</ins><span class="cx"> return false;
</span><ins>+
</ins><span class="cx"> // WAI-ARIA "alert" and "status" 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, "0"))
</del><ins>+ if (rowSpanValue == "0")
</ins><span class="cx"> return 0;
</span><span class="cx"> if (rowSpanValue.toInt() >= 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<CSSCalcExpressionNode> expression;
</span><span class="cx">
</span><del>- if (name.equalIgnoringCase("calc(") || name.equalIgnoringCase("-webkit-calc("))
</del><ins>+ if (equalLettersIgnoringASCIICase(name, "calc(") || equalLettersIgnoringASCIICase(name, "-webkit-calc("))
</ins><span class="cx"> expression = parser.parseCalc(&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 "CSSParserValues.h"
</del><span class="cx"> #include "CSSPrimitiveValue.h"
</span><span class="cx"> #include "CalculationValue.h"
</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 "CSSParserValues.h"
</del><span class="cx"> #include "CSSValue.h"
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</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, "svg");
</del><ins>+ return equalLettersIgnoringASCIICase(m_format, "svg");
</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& str = $1;
- if (str.equalIgnoringCase("from"))
</del><ins>+ $$.id = CSSValueInvalid;
+ $$.isInt = false;
+ if (equalLettersIgnoringASCIICase($1, "from"))
</ins><span class="cx"> $$.fValue = 0;
</span><del>- else if (str.equalIgnoringCase("to"))
</del><ins>+ else if (equalLettersIgnoringASCIICase($1, "to"))
</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 <unsigned N>
-static bool equal(const CSSParserString& a, const char (&b)[N])
</del><ins>+template<unsigned length> bool equalLettersIgnoringASCIICase(const CSSParserValue& value, const char (&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<const LChar*>(b), length) : WTF::equal(a.characters16(), reinterpret_cast<const LChar*>(b), length);
-}
-
-template <unsigned N>
-static bool equalIgnoringCase(const CSSParserString& a, const char (&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 <unsigned N>
-static bool equalIgnoringCase(CSSParserValue& value, const char (&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) && ENABLE(MOUSE_CURSOR_SCALE)
</span><del>- } else if (value->unit == CSSParserValue::Function && equalIgnoringCase(value->function->name, "-webkit-image-set(")) {
</del><ins>+ } else if (value->unit == CSSParserValue::Function && equalLettersIgnoringASCIICase(value->function->name, "-webkit-image-set(")) {
</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 && equalIgnoringCase(valueWithCalculation.value().function->name, "-webkit-image-set(")) {
</del><ins>+ else if (valueWithCalculation.value().unit == CSSParserValue::Function && equalLettersIgnoringASCIICase(valueWithCalculation.value().function->name, "-webkit-image-set(")) {
</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->unit == CSSParserValue::Function
</span><span class="cx"> && value->function->args
</span><span class="cx"> && value->function->args->size() == 1
</span><del>- && equalIgnoringCase(value->function->name, "repeat(")) {
</del><ins>+ && equalLettersIgnoringASCIICase(value->function->name, "repeat(")) {
</ins><span class="cx"> ValueWithCalculation argumentWithCalculation(*value->function->args.get()->current());
</span><span class="cx"> if (validateUnit(argumentWithCalculation, FLength | FPercent | FNonNeg)) {
</span><span class="cx"> values->append(CSSValuePool::singleton().createValue(LengthRepeat::create(createPrimitiveNumericValue(argumentWithCalculation))));
</span><span class="lines">@@ -4213,7 +4192,7 @@
</span><span class="cx"> CSSParserValueList* args = currentValue.function->args.get();
</span><span class="cx"> if (!args)
</span><span class="cx"> return false;
</span><del>- if (equalIgnoringCase(currentValue.function->name, "attr("))
</del><ins>+ if (equalLettersIgnoringASCIICase(currentValue.function->name, "attr("))
</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->function->args.get();
</span><span class="cx"> if (!args)
</span><span class="cx"> return false;
</span><del>- if (equalIgnoringCase(value->function->name, "attr(")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value->function->name, "attr(")) {
</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->function->name, "counter(")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(value->function->name, "counter(")) {
</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->function->name, "counters(")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(value->function->name, "counters(")) {
</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->function->name, "-webkit-image-set(")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(value->function->name, "-webkit-image-set(")) {
</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()->unit == CSSParserValue::Function && equalIgnoringCase(valueList.current()->function->name, "-webkit-image-set(")) {
</del><ins>+ if (valueList.current()->unit == CSSParserValue::Function && equalLettersIgnoringASCIICase(valueList.current()->function->name, "-webkit-image-set(")) {
</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& value = *m_valueList->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 && equalIgnoringCase(value, "none"))) {
</del><ins>+ if (value.id == CSSValueNone || (value.unit == CSSPrimitiveValue::CSS_STRING && equalLettersIgnoringASCIICase(value, "none"))) {
</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->function->args.get();
</span><span class="cx">
</span><del>- if (equalIgnoringCase(value->function->name, "container-scroll(")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value->function->name, "container-scroll(")) {
</ins><span class="cx"> if (!args || (args->size() != 1 && args->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 && result != CSSPropertyAll) // "all" value in animation is not equivalent to the all property.
</span><span class="cx"> return CSSValuePool::singleton().createIdentifierValue(result);
</span><del>- if (equalIgnoringCase(value, "all")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "all")) {
</ins><span class="cx"> context.sawAnimationPropertyKeyword();
</span><span class="cx"> return CSSValuePool::singleton().createIdentifierValue(CSSValueAll);
</span><span class="cx"> }
</span><del>- if (equalIgnoringCase(value, "none")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "none")) {
</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, "from"))
</del><ins>+ if (equalLettersIgnoringASCIICase(cur, "from"))
</ins><span class="cx"> key = 0;
</span><del>- else if (equalIgnoringCase(cur, "to"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(cur, "to"))
</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->args.get();
</span><span class="cx">
</span><del>- if (equalIgnoringCase(value.function->name, "steps(")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value.function->name, "steps(")) {
</ins><span class="cx"> // For steps, 1 or 2 params must be specified (comma-separated)
</span><span class="cx"> if (!args || (args->size() != 1 && args->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->name, "cubic-bezier(")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value.function->name, "cubic-bezier(")) {
</ins><span class="cx"> // For cubic bezier, 4 values must be specified.
</span><span class="cx"> if (!args || args->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->current()) {
</span><span class="cx"> if (isForwardSlashOperator(*currentValue))
</span><span class="cx"> break;
</span><del>- if (currentValue->unit == CSSParserValue::Function && equalIgnoringCase(currentValue->function->name, "repeat(")) {
</del><ins>+ if (currentValue->unit == CSSParserValue::Function && equalLettersIgnoringASCIICase(currentValue->function->name, "repeat(")) {
</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 && equalIgnoringCase(currentValue.function->name, "minmax(")) {
</del><ins>+ if (currentValue.unit == CSSParserValue::Function && equalLettersIgnoringASCIICase(currentValue.function->name, "minmax(")) {
</ins><span class="cx"> // The spec defines the following grammar: minmax( <track-breadth> , <track-breadth> )
</span><span class="cx"> CSSParserValueList* arguments = currentValue.function->args.get();
</span><span class="cx"> if (!arguments || arguments->size() != 3 || !isComma(arguments->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->function->args.get();
</span><del>- if (!equalIgnoringCase(value->function->name, "dashboard-region(") || !args) {
</del><ins>+ if (!equalLettersIgnoringASCIICase(value->function->name, "dashboard-region(") || !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, "circle"))
</del><ins>+ if (equalLettersIgnoringASCIICase(*arg, "circle"))
</ins><span class="cx"> region->m_isCircle = true;
</span><del>- else if (equalIgnoringCase(*arg, "rectangle"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(*arg, "rectangle"))
</ins><span class="cx"> region->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& value = *m_valueList->current();
</span><span class="cx"> CSSParserValueList* args = value.function->args.get();
</span><span class="cx">
</span><del>- if (!equalIgnoringCase(value.function->name, "rect(") || !args)
</del><ins>+ if (!equalLettersIgnoringASCIICase(value.function->name, "rect(") || !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<RefPtr<CSSPrimitiveValue> > widthArguments;
</span><span class="cx"> bool hasRoundedInset = false;
</span><span class="cx"> while (argument) {
</span><del>- if (argument->unit == CSSPrimitiveValue::CSS_IDENT && equalIgnoringCase(argument->string, "round")) {
</del><ins>+ if (argument->unit == CSSPrimitiveValue::CSS_IDENT && equalLettersIgnoringASCIICase(argument->string, "round")) {
</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<CSSBasicShape> shape;
</span><del>- if (equalIgnoringCase(value.function->name, "circle("))
</del><ins>+ if (equalLettersIgnoringASCIICase(value.function->name, "circle("))
</ins><span class="cx"> shape = parseBasicShapeCircle(*args);
</span><del>- else if (equalIgnoringCase(value.function->name, "ellipse("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value.function->name, "ellipse("))
</ins><span class="cx"> shape = parseBasicShapeEllipse(*args);
</span><del>- else if (equalIgnoringCase(value.function->name, "polygon("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value.function->name, "polygon("))
</ins><span class="cx"> shape = parseBasicShapePolygon(*args);
</span><del>- else if (equalIgnoringCase(value.function->name, "path("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value.function->name, "path("))
</ins><span class="cx"> shape = parseBasicShapePath(*args);
</span><del>- else if (equalIgnoringCase(value.function->name, "inset("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value.function->name, "inset("))
</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->unit != CSSParserValue::Function || !equalIgnoringCase(value->function->name, "format("))
</del><ins>+ if (value->unit != CSSParserValue::Function || !equalLettersIgnoringASCIICase(value->function->name, "format("))
</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->unit == CSSPrimitiveValue::CSS_URI) {
</span><span class="cx"> if (!parseFontFaceSrcURI(*values))
</span><span class="cx"> return false;
</span><del>- } else if (value->unit == CSSParserValue::Function && equalIgnoringCase(value->function->name, "local(")) {
</del><ins>+ } else if (value->unit == CSSParserValue::Function && equalLettersIgnoringASCIICase(value->function->name, "local(")) {
</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& value)
</span><span class="cx"> {
</span><del>- return (value.unit == CSSParserValue::Function)
- && (equalIgnoringCase(value.function->name, "calc(")
- || equalIgnoringCase(value.function->name, "-webkit-calc("));
</del><ins>+ return value.unit == CSSParserValue::Function
+ && (equalLettersIgnoringASCIICase(value.function->name, "calc(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-calc("));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline int CSSParser::colorIntFromValue(ValueWithCalculation& valueWithCalculation)
</span><span class="lines">@@ -7721,7 +7700,7 @@
</span><span class="cx"> } else if (value.unit == CSSParserValue::Function
</span><span class="cx"> && value.function->args
</span><span class="cx"> && value.function->args->size() == 5 /* rgb + two commas */
</span><del>- && equalIgnoringCase(value.function->name, "rgb(")) {
</del><ins>+ && equalLettersIgnoringASCIICase(value.function->name, "rgb(")) {
</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"> && value.function->args
</span><span class="cx"> && value.function->args->size() == 7 /* rgba + three commas */
</span><del>- && equalIgnoringCase(value.function->name, "rgba(")) {
</del><ins>+ && equalLettersIgnoringASCIICase(value.function->name, "rgba(")) {
</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"> && value.function->args
</span><span class="cx"> && value.function->args->size() == 5 /* hsl + two commas */
</span><del>- && equalIgnoringCase(value.function->name, "hsl(")) {
</del><ins>+ && equalLettersIgnoringASCIICase(value.function->name, "hsl(")) {
</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"> && value.function->args
</span><span class="cx"> && value.function->args->size() == 7 /* hsla + three commas */
</span><del>- && equalIgnoringCase(value.function->name, "hsla(")) {
</del><ins>+ && equalLettersIgnoringASCIICase(value.function->name, "hsla(")) {
</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->unit == CSSParserValue::Function && equalIgnoringCase(currentValue->function->name, "-webkit-image-set(")) {
</del><ins>+ } else if (currentValue->unit == CSSParserValue::Function && equalLettersIgnoringASCIICase(currentValue->function->name, "-webkit-image-set(")) {
</ins><span class="cx"> RefPtr<CSSValue> 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<CSSPrimitiveValue> result;
</span><span class="cx"> if (value.unit == CSSPrimitiveValue::CSS_IDENT) {
</span><del>- if ((equalIgnoringCase(value, "left") && horizontal)
- || (equalIgnoringCase(value, "top") && !horizontal))
</del><ins>+ if ((equalLettersIgnoringASCIICase(value, "left") && horizontal)
+ || (equalLettersIgnoringASCIICase(value, "top") && !horizontal))
</ins><span class="cx"> result = CSSValuePool::singleton().createValue(0., CSSPrimitiveValue::CSS_PERCENTAGE);
</span><del>- else if ((equalIgnoringCase(value, "right") && horizontal)
- || (equalIgnoringCase(value, "bottom") && !horizontal))
</del><ins>+ else if ((equalLettersIgnoringASCIICase(value, "right") && horizontal)
+ || (equalLettersIgnoringASCIICase(value, "bottom") && !horizontal))
</ins><span class="cx"> result = CSSValuePool::singleton().createValue(100., CSSPrimitiveValue::CSS_PERCENTAGE);
</span><del>- else if (equalIgnoringCase(value, "center"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "center"))
</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<CSSPrimitiveValue::UnitTypes>(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->name, "from(")
- && !equalIgnoringCase(value.function->name, "to(")
- && !equalIgnoringCase(value.function->name, "color-stop("))
</del><ins>+ if (!equalLettersIgnoringASCIICase(value.function->name, "from(")
+ && !equalLettersIgnoringASCIICase(value.function->name, "to(")
+ && !equalLettersIgnoringASCIICase(value.function->name, "color-stop("))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> CSSParserValueList* args = value.function->args.get();
</span><span class="cx"> if (!args)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (equalIgnoringCase(value.function->name, "from(")
- || equalIgnoringCase(value.function->name, "to(")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value.function->name, "from(")
+ || equalLettersIgnoringASCIICase(value.function->name, "to(")) {
</ins><span class="cx"> // The "from" and "to" stops expect 1 argument.
</span><span class="cx"> if (args->size() != 1)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (equalIgnoringCase(value.function->name, "from("))
</del><ins>+ if (equalLettersIgnoringASCIICase(value.function->name, "from("))
</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 "color-stop" function expects 3 arguments.
</span><del>- if (equalIgnoringCase(value.function->name, "color-stop(")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value.function->name, "color-stop(")) {
</ins><span class="cx"> if (args->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->current();
</span><span class="cx"> if (!argument || argument->unit != CSSPrimitiveValue::CSS_IDENT)
</span><span class="cx"> return false;
</span><del>- if (equalIgnoringCase(*argument, "linear"))
</del><ins>+ if (equalLettersIgnoringASCIICase(*argument, "linear"))
</ins><span class="cx"> gradientType = CSSDeprecatedLinearGradient;
</span><del>- else if (equalIgnoringCase(*argument, "radial"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(*argument, "radial"))
</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->next();
</span><span class="cx"> expectComma = true;
</span><del>- } else if (firstArgumentWithCalculation.value().unit == CSSPrimitiveValue::CSS_IDENT && equalIgnoringCase(firstArgumentWithCalculation, "to")) {
</del><ins>+ } else if (firstArgumentWithCalculation.value().unit == CSSPrimitiveValue::CSS_IDENT && equalLettersIgnoringASCIICase(firstArgumentWithCalculation, "to")) {
</ins><span class="cx"> // to [ [left | right] || [top | bottom] ]
</span><span class="cx"> CSSParserValue* nextArgument = args->next();
</span><span class="cx"> if (!nextArgument)
</span><span class="lines">@@ -9239,7 +9218,7 @@
</span><span class="cx"> // at <position>
</span><span class="cx"> RefPtr<CSSValue> centerX;
</span><span class="cx"> RefPtr<CSSValue> centerY;
</span><del>- if (argument->unit == CSSPrimitiveValue::CSS_IDENT && equalIgnoringCase(*argument, "at")) {
</del><ins>+ if (argument->unit == CSSPrimitiveValue::CSS_IDENT && equalLettersIgnoringASCIICase(*argument, "at")) {
</ins><span class="cx"> argument = args->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->name, "-webkit-gradient(")
- || equalIgnoringCase(value.function->name, "-webkit-linear-gradient(")
- || equalIgnoringCase(value.function->name, "linear-gradient(")
- || equalIgnoringCase(value.function->name, "-webkit-repeating-linear-gradient(")
- || equalIgnoringCase(value.function->name, "repeating-linear-gradient(")
- || equalIgnoringCase(value.function->name, "-webkit-radial-gradient(")
- || equalIgnoringCase(value.function->name, "radial-gradient(")
- || equalIgnoringCase(value.function->name, "-webkit-repeating-radial-gradient(")
- || equalIgnoringCase(value.function->name, "repeating-radial-gradient(")
- || equalIgnoringCase(value.function->name, "-webkit-canvas(")
- || equalIgnoringCase(value.function->name, "-webkit-cross-fade(")
- || equalIgnoringCase(value.function->name, "filter(")
- || equalIgnoringCase(value.function->name, "-webkit-filter(")
- || equalIgnoringCase(value.function->name, "-webkit-named-image(");
</del><ins>+ return equalLettersIgnoringASCIICase(value.function->name, "-webkit-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-linear-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "linear-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-repeating-linear-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "repeating-linear-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-radial-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "radial-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-repeating-radial-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "repeating-radial-gradient(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-canvas(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-cross-fade(")
+ || equalLettersIgnoringASCIICase(value.function->name, "filter(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-filter(")
+ || equalLettersIgnoringASCIICase(value.function->name, "-webkit-named-image(");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool CSSParser::parseGeneratedImage(CSSParserValueList& valueList, RefPtr<CSSValue>& 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->name, "-webkit-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-gradient("))
</ins><span class="cx"> return parseDeprecatedGradient(valueList, value);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "-webkit-linear-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-linear-gradient("))
</ins><span class="cx"> return parseDeprecatedLinearGradient(valueList, value, NonRepeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "linear-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "linear-gradient("))
</ins><span class="cx"> return parseLinearGradient(valueList, value, NonRepeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "-webkit-repeating-linear-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-repeating-linear-gradient("))
</ins><span class="cx"> return parseDeprecatedLinearGradient(valueList, value, Repeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "repeating-linear-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "repeating-linear-gradient("))
</ins><span class="cx"> return parseLinearGradient(valueList, value, Repeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "-webkit-radial-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-radial-gradient("))
</ins><span class="cx"> return parseDeprecatedRadialGradient(valueList, value, NonRepeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "radial-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "radial-gradient("))
</ins><span class="cx"> return parseRadialGradient(valueList, value, NonRepeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "-webkit-repeating-radial-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-repeating-radial-gradient("))
</ins><span class="cx"> return parseDeprecatedRadialGradient(valueList, value, Repeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "repeating-radial-gradient("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "repeating-radial-gradient("))
</ins><span class="cx"> return parseRadialGradient(valueList, value, Repeating);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "-webkit-canvas("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-canvas("))
</ins><span class="cx"> return parseCanvas(valueList, value);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "-webkit-cross-fade("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-cross-fade("))
</ins><span class="cx"> return parseCrossfade(valueList, value);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "filter(") || equalIgnoringCase(parserValue.function->name, "-webkit-filter("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "filter(") || equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-filter("))
</ins><span class="cx"> return parseFilterImage(valueList, value);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(parserValue.function->name, "-webkit-named-image("))
</del><ins>+ if (equalLettersIgnoringASCIICase(parserValue.function->name, "-webkit-named-image("))
</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& name, WebKitCSSFilterValue::FilterOperationType& filterType, unsigned& maximumArgumentCount)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(name, "grayscale("))
</del><ins>+ if (equalLettersIgnoringASCIICase(name, "grayscale("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::GrayscaleFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "sepia("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "sepia("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::SepiaFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "saturate("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "saturate("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::SaturateFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "hue-rotate("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "hue-rotate("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::HueRotateFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "invert("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "invert("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::InvertFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "opacity("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "opacity("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::OpacityFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "brightness("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "brightness("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::BrightnessFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "contrast("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "contrast("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::ContrastFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "blur("))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "blur("))
</ins><span class="cx"> filterType = WebKitCSSFilterValue::BlurFilterOperation;
</span><del>- else if (equalIgnoringCase(name, "drop-shadow(")) {
</del><ins>+ else if (equalLettersIgnoringASCIICase(name, "drop-shadow(")) {
</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& flowName)
</span><span class="cx"> {
</span><del>- return !(equalIgnoringCase(flowName, "auto")
- || equalIgnoringCase(flowName, "default")
- || equalIgnoringCase(flowName, "inherit")
- || equalIgnoringCase(flowName, "initial")
- || equalIgnoringCase(flowName, "none"));
</del><ins>+ return !(equalLettersIgnoringASCIICase(flowName, "auto")
+ || equalLettersIgnoringASCIICase(flowName, "default")
+ || equalLettersIgnoringASCIICase(flowName, "inherit")
+ || equalLettersIgnoringASCIICase(flowName, "initial")
+ || equalLettersIgnoringASCIICase(flowName, "none"));
</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 && m_token == IDENT && yylval->string.length() == 2 && yylval->string.equalIgnoringCase("of")) {
</del><ins>+ if (m_parsingMode == NthChildMode && m_token == IDENT && yylval->string.length() == 2 && equalLettersIgnoringASCIICase(yylval->string, "of")) {
</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->string, hasEscape);
</span><span class="cx"> m_token = IDENT;
</span><span class="cx"> }
</span><del>- if (m_parsingMode == NthChildMode && m_token == IDENT && yylval->string.length() == 2 && yylval->string.equalIgnoringCase("of")) {
</del><ins>+ if (m_parsingMode == NthChildMode && m_token == IDENT && yylval->string.length() == 2 && equalLettersIgnoringASCIICase(yylval->string, "of")) {
</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"> // "odd" and "even" which does not match to an+b.
</span><del>- return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even")
- || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n");
</del><ins>+ return equalLettersIgnoringASCIICase(token, "odd")
+ || equalLettersIgnoringASCIICase(token, "even")
+ || equalLettersIgnoringASCIICase(token, "n")
+ || equalLettersIgnoringASCIICase(token, "-n");
</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& pseudoTypeString)
</span><span class="cx"> {
</span><span class="cx"> CSSSelector::PagePseudoClassType pseudoType;
</span><del>- if (pseudoTypeString.equalIgnoringCase("first"))
</del><ins>+ if (equalLettersIgnoringASCIICase(pseudoTypeString, "first"))
</ins><span class="cx"> pseudoType = CSSSelector::PagePseudoClassFirst;
</span><del>- else if (pseudoTypeString.equalIgnoringCase("left"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(pseudoTypeString, "left"))
</ins><span class="cx"> pseudoType = CSSSelector::PagePseudoClassLeft;
</span><del>- else if (pseudoTypeString.equalIgnoringCase("right"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(pseudoTypeString, "right"))
</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<unsigned length> bool equalLettersIgnoringASCIICase(const CSSParserString&, const char (&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->valueList = valueList.release();
</span><span class="cx"> unit = ValueList;
</span><span class="cx"> }
</span><ins>+
+template<unsigned length> inline bool equalLettersIgnoringASCIICase(const CSSParserString& string, const char (&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 "CSSParserValues.h"
</del><span class="cx"> #include "CSSPropertyNames.h"
</span><span class="cx"> #include "CSSValueList.h"
</span><span class="cx"> #include <wtf/RefPtr.h>
</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 < queryCount; ++i) {
</span><span class="cx"> const MediaQuery* query = mediaQueries[i].get();
</span><span class="cx"> String mediaType = query->mediaType();
</span><del>- if (!query->ignored() && !equalIgnoringCase(mediaType, "print")) {
</del><ins>+ if (!query->ignored() && !equalLettersIgnoringASCIICase(mediaType, "print")) {
</ins><span class="cx"> auto& expressions = query->expressions();
</span><span class="cx"> for (size_t j = 0; j < 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& mediaTypeToMatch) const
</span><span class="cx"> {
</span><span class="cx"> return mediaTypeToMatch.isEmpty()
</span><del>- || equalIgnoringCase(mediaTypeToMatch, "all")
</del><ins>+ || equalLettersIgnoringASCIICase(mediaTypeToMatch, "all")
</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 "" and "all".
</span><span class="cx"> ASSERT(mediaTypeToMatch);
</span><span class="cx"> ASSERT(mediaTypeToMatch[0] != '\0');
</span><del>- ASSERT(!equalIgnoringCase(mediaTypeToMatch, String("all")));
</del><ins>+ ASSERT(!equalLettersIgnoringASCIICase(StringView(mediaTypeToMatch), "all"));
</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 "print", the
</span><span class="cx"> // media type of the query will either be "print" or "all".
</span><span class="cx"> String mediaType = view->mediaType();
</span><del>- if (equalIgnoringCase(mediaType, "screen"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mediaType, "screen"))
</ins><span class="cx"> deviceScaleFactor = frame->page()->deviceScaleFactor();
</span><del>- else if (equalIgnoringCase(mediaType, "print")) {
</del><ins>+ else if (equalLettersIgnoringASCIICase(mediaType, "print")) {
</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 "CSSParserValues.h"
</del><span class="cx"> #include "CSSSelector.h"
</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&, CSSValue& value)
</span><span class="cx"> {
</span><del>- return !equalIgnoringCase(downcast<CSSPrimitiveValue>(value).getStringValue(), "none");
</del><ins>+ return !equalLettersIgnoringASCIICase(downcast<CSSPrimitiveValue>(value).getStringValue(), "none");
</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 "config.h"
</span><span class="cx"> #include "SelectorPseudoTypeMap.h"
</span><span class="cx">
</span><ins>+#include "CSSParserValues.h"
+
</ins><span class="cx"> #if defined(__clang__)
</span><span class="cx"> #pragma clang diagnostic push
</span><span class="cx"> #pragma clang diagnostic ignored "-Wunknown-pragmas"
</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& key, const String& value, Document* document, void*)
</span><span class="cx"> {
</span><del>- if (key == "telephone" && equalIgnoringCase(value, "no"))
</del><ins>+ if (key == "telephone" && equalLettersIgnoringASCIICase(value, "no"))
</ins><span class="cx"> document->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, "no-referrer") || equalIgnoringCase(policy, "never"))
</del><ins>+ if (equalLettersIgnoringASCIICase(policy, "no-referrer") || equalLettersIgnoringASCIICase(policy, "never"))
</ins><span class="cx"> setReferrerPolicy(ReferrerPolicyNever);
</span><del>- else if (equalIgnoringCase(policy, "unsafe-url") || equalIgnoringCase(policy, "always"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(policy, "unsafe-url") || equalLettersIgnoringASCIICase(policy, "always"))
</ins><span class="cx"> setReferrerPolicy(ReferrerPolicyAlways);
</span><del>- else if (equalIgnoringCase(policy, "origin"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(policy, "origin"))
</ins><span class="cx"> setReferrerPolicy(ReferrerPolicyOrigin);
</span><del>- else if (equalIgnoringCase(policy, "no-referrer-when-downgrade") || equalIgnoringCase(policy, "default"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(policy, "no-referrer-when-downgrade") || equalLettersIgnoringASCIICase(policy, "default"))
</ins><span class="cx"> setReferrerPolicy(ReferrerPolicyDefault);
</span><span class="cx"> else {
</span><span class="cx"> addConsoleMessage(MessageSource::Rendering, MessageLevel::Error, "Failed to set referrer policy: The value '" + policy + "' is not one of 'no-referrer', 'origin', 'no-referrer-when-downgrade', or 'unsafe-url'. Defaulting to 'no-referrer'.");
</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"> // <https://dom.spec.whatwg.org/#dom-document-createevent>.
</span><span class="cx">
</span><del>- if (equalIgnoringASCIICase(type, "customevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "customevent"))
</ins><span class="cx"> return CustomEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "event") || equalIgnoringASCIICase(type, "events") || equalIgnoringASCIICase(type, "htmlevents"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "event") || equalLettersIgnoringASCIICase(type, "events") || equalLettersIgnoringASCIICase(type, "htmlevents"))
</ins><span class="cx"> return Event::create();
</span><del>- if (equalIgnoringASCIICase(type, "keyboardevent") || equalIgnoringASCIICase(type, "keyboardevents"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "keyboardevent") || equalLettersIgnoringASCIICase(type, "keyboardevents"))
</ins><span class="cx"> return KeyboardEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "messageevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "messageevent"))
</ins><span class="cx"> return MessageEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "mouseevent") || equalIgnoringASCIICase(type, "mouseevents"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "mouseevent") || equalLettersIgnoringASCIICase(type, "mouseevents"))
</ins><span class="cx"> return MouseEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "uievent") || equalIgnoringASCIICase(type, "uievents"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "uievent") || equalLettersIgnoringASCIICase(type, "uievents"))
</ins><span class="cx"> return UIEvent::create();
</span><span class="cx">
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>- if (equalIgnoringASCIICase(type, "touchevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "touchevent"))
</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, "svgzoomevents"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "svgzoomevents"))
</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, "compositionevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "compositionevent"))
</ins><span class="cx"> return CompositionEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "hashchangeevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "hashchangeevent"))
</ins><span class="cx"> return HashChangeEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "mutationevent") || equalIgnoringASCIICase(type, "mutationevents"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "mutationevent") || equalLettersIgnoringASCIICase(type, "mutationevents"))
</ins><span class="cx"> return MutationEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "overflowevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "overflowevent"))
</ins><span class="cx"> return OverflowEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "storageevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "storageevent"))
</ins><span class="cx"> return StorageEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "textevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "textevent"))
</ins><span class="cx"> return TextEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "wheelevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "wheelevent"))
</ins><span class="cx"> return WheelEvent::create();
</span><span class="cx">
</span><span class="cx"> #if ENABLE(DEVICE_ORIENTATION)
</span><del>- if (equalIgnoringASCIICase(type, "devicemotionevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "devicemotionevent"))
</ins><span class="cx"> return DeviceMotionEvent::create();
</span><del>- if (equalIgnoringASCIICase(type, "deviceorientationevent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "deviceorientationevent"))
</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& dnsPrefetchControl)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(dnsPrefetchControl, "on") && !m_haveExplicitlyDisabledDNSPrefetch) {
</del><ins>+ if (equalLettersIgnoringASCIICase(dnsPrefetchControl, "on") && !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& 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, "true") || equalIgnoringCase(value, ""))
</del><ins>+ if (value.isEmpty() || equalLettersIgnoringASCIICase(value, "true"))
</ins><span class="cx"> return SpellcheckAttributeTrue;
</span><del>- if (equalIgnoringCase(value, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "false"))
</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), "img");
</del><ins>+ return !equalLettersIgnoringASCIICase(fastGetAttribute(roleAttr), "img");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String Element::completeURLsInAttributeValue(const URL& base, const Attribute& attribute) const
</span></span></pre></div>
<a id="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& element, const AtomicString& type)
</span><span class="cx"> {
</span><del>- static NeverDestroyed<const AtomicString> cssContentType("text/css", 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<const AtomicString> cssContentType("text/css", AtomicString::ConstructFromLiteral);
+ return element.isHTMLElement() ? equalLettersIgnoringASCIICase(type, "text/css") : type == cssContentType;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InlineStyleSheetOwner::createSheet(Element& element, const String& 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, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+ StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, "use-credentials") ? 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() && !forAttribute.isNull()) {
</span><span class="cx"> forAttribute = stripLeadingAndTrailingHTMLSpaces(forAttribute);
</span><del>- if (!equalIgnoringCase(forAttribute, "window"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(forAttribute, "window"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> eventAttribute = stripLeadingAndTrailingHTMLSpaces(eventAttribute);
</span><del>- if (!equalIgnoringCase(eventAttribute, "onload") && !equalIgnoringCase(eventAttribute, "onload()"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(eventAttribute, "onload") && !equalLettersIgnoringASCIICase(eventAttribute, "onload()"))
</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 "allowed".
</span><span class="cx"> String sandboxToken = policy.substring(start, end - start);
</span><del>- if (equalIgnoringCase(sandboxToken, "allow-same-origin"))
</del><ins>+ if (equalLettersIgnoringASCIICase(sandboxToken, "allow-same-origin"))
</ins><span class="cx"> flags &= ~SandboxOrigin;
</span><del>- else if (equalIgnoringCase(sandboxToken, "allow-forms"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(sandboxToken, "allow-forms"))
</ins><span class="cx"> flags &= ~SandboxForms;
</span><del>- else if (equalIgnoringCase(sandboxToken, "allow-scripts")) {
</del><ins>+ else if (equalLettersIgnoringASCIICase(sandboxToken, "allow-scripts")) {
</ins><span class="cx"> flags &= ~SandboxScripts;
</span><span class="cx"> flags &= ~SandboxAutomaticFeatures;
</span><del>- } else if (equalIgnoringCase(sandboxToken, "allow-top-navigation"))
</del><ins>+ } else if (equalLettersIgnoringASCIICase(sandboxToken, "allow-top-navigation"))
</ins><span class="cx"> flags &= ~SandboxTopNavigation;
</span><del>- else if (equalIgnoringCase(sandboxToken, "allow-popups"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(sandboxToken, "allow-popups"))
</ins><span class="cx"> flags &= ~SandboxPopups;
</span><del>- else if (equalIgnoringCase(sandboxToken, "allow-pointer-lock"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(sandboxToken, "allow-pointer-lock"))
</ins><span class="cx"> flags &= ~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, "device-width"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "device-width"))
</ins><span class="cx"> return ViewportArguments::ValueDeviceWidth;
</span><del>- if (equalIgnoringCase(valueString, "device-height"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "device-height"))
</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, "yes"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "yes"))
</ins><span class="cx"> return 1;
</span><del>- if (equalIgnoringCase(valueString, "no"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "no"))
</ins><span class="cx"> return 0;
</span><del>- if (equalIgnoringCase(valueString, "device-width"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "device-width"))
</ins><span class="cx"> return 10;
</span><del>- if (equalIgnoringCase(valueString, "device-height"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "device-height"))
</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 >= 1, numbers <= -1, device-width and device-height are mapped to yes.
</span><span class="cx"> // Numbers in the range <-1, 1>, and unknown values, are mapped to no.
</span><span class="cx">
</span><del>- if (equalIgnoringCase(valueString, "yes"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "yes"))
</ins><span class="cx"> return 1;
</span><del>- if (equalIgnoringCase(valueString, "no"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "no"))
</ins><span class="cx"> return 0;
</span><del>- if (equalIgnoringCase(valueString, "device-width"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "device-width"))
</ins><span class="cx"> return 1;
</span><del>- if (equalIgnoringCase(valueString, "device-height"))
</del><ins>+ if (equalLettersIgnoringASCIICase(valueString, "device-height"))
</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& frame, Event*, EditorCommandSource, const String& value)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(value, "div"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "div"))
</ins><span class="cx"> frame.editor().setDefaultParagraphSeparator(EditorParagraphSeparatorIsDiv);
</span><del>- else if (equalIgnoringCase(value, "p"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "p"))
</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& frame, Event* event, EditorCommandSource, const String&)
</span><span class="cx"> {
</span><del>- return targetFrame(frame, event)->eventHandler().handleTextInputEvent("\t", event, TextEventInputBackTab);
</del><ins>+ return targetFrame(frame, event)->eventHandler().handleTextInputEvent(ASCIILiteral("\t"), event, TextEventInputBackTab);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeInsertHorizontalRule(Frame& frame, Event*, EditorCommandSource, const String& value)
</span><span class="lines">@@ -472,7 +472,7 @@
</span><span class="cx">
</span><span class="cx"> static bool executeInsertHTML(Frame& frame, Event*, EditorCommandSource, const String& value)
</span><span class="cx"> {
</span><del>- return executeInsertFragment(frame, createFragmentFromMarkup(*frame.document(), value, ""));
</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& frame, Event*, EditorCommandSource, const String& 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)->eventHandler().handleTextInputEvent("\n", event, TextEventInputLineBreak);
</del><ins>+ return targetFrame(frame, event)->eventHandler().handleTextInputEvent(ASCIILiteral("\n"), 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& frame, Event* event, EditorCommandSource, const String&)
</span><span class="cx"> {
</span><span class="cx"> Frame* targetFrame = WebCore::targetFrame(frame, event);
</span><del>- return targetFrame->eventHandler().handleTextInputEvent("\n", event, targetFrame->editor().canEditRichly() ? TextEventInputKeyboard : TextEventInputLineBreak);
</del><ins>+ return targetFrame->eventHandler().handleTextInputEvent(ASCIILiteral("\n"), event, targetFrame->editor().canEditRichly() ? TextEventInputKeyboard : TextEventInputLineBreak);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeInsertNewlineInQuotedContent(Frame& frame, Event*, EditorCommandSource, const String&)
</span><span class="lines">@@ -527,7 +527,7 @@
</span><span class="cx">
</span><span class="cx"> static bool executeInsertTab(Frame& frame, Event* event, EditorCommandSource, const String&)
</span><span class="cx"> {
</span><del>- return targetFrame(frame, event)->eventHandler().handleTextInputEvent("\t", event);
</del><ins>+ return targetFrame(frame, event)->eventHandler().handleTextInputEvent(ASCIILiteral("\t"), event);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeInsertText(Frame& frame, Event*, EditorCommandSource, const String& value)
</span><span class="lines">@@ -545,22 +545,22 @@
</span><span class="cx">
</span><span class="cx"> static bool executeJustifyCenter(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeApplyParagraphStyle(frame, source, EditActionCenter, CSSPropertyTextAlign, "center");
</del><ins>+ return executeApplyParagraphStyle(frame, source, EditActionCenter, CSSPropertyTextAlign, ASCIILiteral("center"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeJustifyFull(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeApplyParagraphStyle(frame, source, EditActionJustify, CSSPropertyTextAlign, "justify");
</del><ins>+ return executeApplyParagraphStyle(frame, source, EditActionJustify, CSSPropertyTextAlign, ASCIILiteral("justify"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeJustifyLeft(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeApplyParagraphStyle(frame, source, EditActionAlignLeft, CSSPropertyTextAlign, "left");
</del><ins>+ return executeApplyParagraphStyle(frame, source, EditActionAlignLeft, CSSPropertyTextAlign, ASCIILiteral("left"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeJustifyRight(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeApplyParagraphStyle(frame, source, EditActionAlignRight, CSSPropertyTextAlign, "right");
</del><ins>+ return executeApplyParagraphStyle(frame, source, EditActionAlignRight, CSSPropertyTextAlign, ASCIILiteral("right"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeMakeTextWritingDirectionLeftToRight(Frame& frame, Event*, EditorCommandSource, const String&)
</span><span class="lines">@@ -1035,31 +1035,31 @@
</span><span class="cx"> static bool executeStrikethrough(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><span class="cx"> Ref<EditingStyle> style = EditingStyle::create();
</span><del>- style->setStrikeThroughChange(textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, "line-through"));
</del><ins>+ style->setStrikeThroughChange(textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral("line-through")));
</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& frame, Event*, EditorCommandSource, const String& value)
</span><span class="cx"> {
</span><del>- frame.editor().setShouldStyleWithCSS(!equalIgnoringCase(value, "false"));
</del><ins>+ frame.editor().setShouldStyleWithCSS(!equalLettersIgnoringASCIICase(value, "false"));
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeUseCSS(Frame& frame, Event*, EditorCommandSource, const String& value)
</span><span class="cx"> {
</span><del>- frame.editor().setShouldStyleWithCSS(equalIgnoringCase(value, "false"));
</del><ins>+ frame.editor().setShouldStyleWithCSS(equalLettersIgnoringASCIICase(value, "false"));
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeSubscript(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeToggleStyle(frame, source, EditActionSubscript, CSSPropertyVerticalAlign, "baseline", "sub");
</del><ins>+ return executeToggleStyle(frame, source, EditActionSubscript, CSSPropertyVerticalAlign, ASCIILiteral("baseline"), ASCIILiteral("sub"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeSuperscript(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeToggleStyle(frame, source, EditActionSuperscript, CSSPropertyVerticalAlign, "baseline", "super");
</del><ins>+ return executeToggleStyle(frame, source, EditActionSuperscript, CSSPropertyVerticalAlign, ASCIILiteral("baseline"), ASCIILiteral("super"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeSwapWithMark(Frame& frame, Event*, EditorCommandSource, const String&)
</span><span class="lines">@@ -1085,12 +1085,12 @@
</span><span class="cx">
</span><span class="cx"> static bool executeToggleBold(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeToggleStyle(frame, source, EditActionBold, CSSPropertyFontWeight, "normal", "bold");
</del><ins>+ return executeToggleStyle(frame, source, EditActionBold, CSSPropertyFontWeight, ASCIILiteral("normal"), ASCIILiteral("bold"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeToggleItalic(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeToggleStyle(frame, source, EditActionItalics, CSSPropertyFontStyle, "normal", "italic");
</del><ins>+ return executeToggleStyle(frame, source, EditActionItalics, CSSPropertyFontStyle, ASCIILiteral("normal"), ASCIILiteral("italic"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeTranspose(Frame& frame, Event*, EditorCommandSource, const String&)
</span><span class="lines">@@ -1102,7 +1102,7 @@
</span><span class="cx"> static bool executeUnderline(Frame& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><span class="cx"> Ref<EditingStyle> style = EditingStyle::create();
</span><del>- TextDecorationChange change = textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, "underline");
</del><ins>+ TextDecorationChange change = textDecorationChangeForToggling(frame.editor(), CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral("underline"));
</ins><span class="cx"> style->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& frame, Event*, EditorCommandSource source, const String&)
</span><span class="cx"> {
</span><del>- return executeApplyStyle(frame, source, EditActionUnscript, CSSPropertyVerticalAlign, "baseline");
</del><ins>+ return executeApplyStyle(frame, source, EditActionUnscript, CSSPropertyVerticalAlign, ASCIILiteral("baseline"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool executeUnselect(Frame& frame, Event*, EditorCommandSource, const String&)
</span><span class="lines">@@ -1308,12 +1308,12 @@
</span><span class="cx">
</span><span class="cx"> static TriState stateBold(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyFontWeight, "bold");
</del><ins>+ return stateStyle(frame, CSSPropertyFontWeight, ASCIILiteral("bold"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateItalic(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyFontStyle, "italic");
</del><ins>+ return stateStyle(frame, CSSPropertyFontStyle, ASCIILiteral("italic"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateOrderedList(Frame& frame, Event*)
</span><span class="lines">@@ -1323,7 +1323,7 @@
</span><span class="cx">
</span><span class="cx"> static TriState stateStrikethrough(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, "line-through");
</del><ins>+ return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral("line-through"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateStyleWithCSS(Frame& frame, Event*)
</span><span class="lines">@@ -1333,12 +1333,12 @@
</span><span class="cx">
</span><span class="cx"> static TriState stateSubscript(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyVerticalAlign, "sub");
</del><ins>+ return stateStyle(frame, CSSPropertyVerticalAlign, ASCIILiteral("sub"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateSuperscript(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyVerticalAlign, "super");
</del><ins>+ return stateStyle(frame, CSSPropertyVerticalAlign, ASCIILiteral("super"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateTextWritingDirectionLeftToRight(Frame& frame, Event*)
</span><span class="lines">@@ -1358,7 +1358,7 @@
</span><span class="cx">
</span><span class="cx"> static TriState stateUnderline(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, "underline");
</del><ins>+ return stateStyle(frame, CSSPropertyWebkitTextDecorationsInEffect, ASCIILiteral("underline"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateUnorderedList(Frame& frame, Event*)
</span><span class="lines">@@ -1368,22 +1368,22 @@
</span><span class="cx">
</span><span class="cx"> static TriState stateJustifyCenter(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyTextAlign, "center");
</del><ins>+ return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral("center"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateJustifyFull(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyTextAlign, "justify");
</del><ins>+ return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral("justify"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateJustifyLeft(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyTextAlign, "left");
</del><ins>+ return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral("left"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static TriState stateJustifyRight(Frame& frame, Event*)
</span><span class="cx"> {
</span><del>- return stateStyle(frame, CSSPropertyTextAlign, "right");
</del><ins>+ return stateStyle(frame, CSSPropertyTextAlign, ASCIILiteral("right"));
</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& selection = frame.selection().selection();
</span><span class="cx"> if (!selection.isNonOrphanedCaretOrRange() || !selection.isContentEditable())
</span><del>- return "";
</del><ins>+ return emptyString();
</ins><span class="cx"> Element* formatBlockElement = FormatBlockCommand::elementForFormatBlockCommand(selection.firstRange().get());
</span><span class="cx"> if (!formatBlockElement)
</span><del>- return "";
</del><ins>+ return emptyString();
</ins><span class="cx"> return formatBlockElement->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->value == valueNull && m_command->state != stateNone)
</span><del>- return m_command->state(*m_frame, triggeringEvent) == TrueTriState ? "true" : "false";
</del><ins>+ return m_command->state(*m_frame, triggeringEvent) == TrueTriState ? ASCIILiteral("true") : ASCIILiteral("false");
</ins><span class="cx"> return m_command->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& element = downcast<Element>(*renderer->node());
</span><span class="cx"> if (is<HTMLFormControlElement>(element) || is<HTMLLegendElement>(element) || is<HTMLMeterElement>(element) || is<HTMLProgressElement>(element))
</span><span class="cx"> return true;
</span><del>- if (equalIgnoringCase(element.fastGetAttribute(roleAttr), "img"))
</del><ins>+ if (equalLettersIgnoringASCIICase(element.fastGetAttribute(roleAttr), "img"))
</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 < length; ++i) {
</span><span class="cx"> if (characters[i] < 0x20 || characters[i] > 0x7e)
</span><span class="cx"> return false;
</span><del>- if (characters[i] >= 'A' && characters[i] <= '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 < length; ++i) {
</span><span class="cx"> if (characters[i] < 0x20 || characters[i] > 0x7e)
</span><span class="cx"> return false;
</span><del>- if (characters[i] >= 'A' && characters[i] <= '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 < length; ++i) {
</span><span class="cx"> if (characters[i] < 0x20 || characters[i] > 0x7e)
</span><span class="cx"> return false;
</span><del>- if (characters[i] >= 'A' && characters[i] <= '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(), "POST")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(request.httpMethod(), "post")) {
</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 "data interspersed with files" 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& valueOn()
-{
- static NeverDestroyed<const AtomicString> valueOn("on", AtomicString::ConstructFromLiteral);
- return valueOn;
-}
-
-static const AtomicString& valueOff()
-{
- static NeverDestroyed<const AtomicString> valueOff("off", AtomicString::ConstructFromLiteral);
- return valueOff;
-}
-
-static const AtomicString& valueNone()
-{
- static NeverDestroyed<const AtomicString> valueNone("none", AtomicString::ConstructFromLiteral);
- return valueNone;
-}
-
-static const AtomicString& valueWords()
-{
- static NeverDestroyed<const AtomicString> valueWords("words", AtomicString::ConstructFromLiteral);
- return valueWords;
-}
-
-static const AtomicString& valueSentences()
-{
- static NeverDestroyed<const AtomicString> valueSentences("sentences", AtomicString::ConstructFromLiteral);
- return valueSentences;
-}
-
-static const AtomicString& valueAllCharacters()
-{
- static NeverDestroyed<const AtomicString> valueAllCharacters("characters", AtomicString::ConstructFromLiteral);
- return valueAllCharacters;
-}
-
</del><span class="cx"> WebAutocapitalizeType autocapitalizeTypeForAttributeValue(const AtomicString& 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, "on") || equalLettersIgnoringASCIICase(attributeValue, "sentences"))
</ins><span class="cx"> return WebAutocapitalizeTypeSentences;
</span><del>- if (equalIgnoringCase(attributeValue, valueOff()) || equalIgnoringCase(attributeValue, valueNone()))
</del><ins>+ if (equalLettersIgnoringASCIICase(attributeValue, "off") || equalLettersIgnoringASCIICase(attributeValue, "none"))
</ins><span class="cx"> return WebAutocapitalizeTypeNone;
</span><del>- if (equalIgnoringCase(attributeValue, valueWords()))
</del><ins>+ if (equalLettersIgnoringASCIICase(attributeValue, "words"))
</ins><span class="cx"> return WebAutocapitalizeTypeWords;
</span><del>- if (equalIgnoringCase(attributeValue, valueAllCharacters()))
</del><ins>+ if (equalLettersIgnoringASCIICase(attributeValue, "characters"))
</ins><span class="cx"> return WebAutocapitalizeTypeAllCharacters;
</span><span class="cx">
</span><span class="cx"> // Unrecognized values fall back to "on".
</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<const AtomicString> valueNone("none", AtomicString::ConstructFromLiteral);
+ return valueNone;
</ins><span class="cx"> }
</span><ins>+ case WebAutocapitalizeTypeSentences: {
+ static NeverDestroyed<const AtomicString> valueSentences("sentences", AtomicString::ConstructFromLiteral);
+ return valueSentences;
+ }
+ case WebAutocapitalizeTypeWords: {
+ static NeverDestroyed<const AtomicString> valueWords("words", AtomicString::ConstructFromLiteral);
+ return valueWords;
+ }
+ case WebAutocapitalizeTypeAllCharacters: {
+ static NeverDestroyed<const AtomicString> valueAllCharacters("characters", 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& value = fastGetAttribute(draggableAttr);
</span><del>- if (equalIgnoringCase(value, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "true"))
</ins><span class="cx"> return true;
</span><del>- if (equalIgnoringCase(value, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "false"))
</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& name, const AtomicString& value)
</span><span class="cx"> {
</span><span class="cx"> if (name == shapeAttr) {
</span><del>- if (equalIgnoringCase(value, "default"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "default"))
</ins><span class="cx"> m_shape = Default;
</span><del>- else if (equalIgnoringCase(value, "circle"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "circle"))
</ins><span class="cx"> m_shape = Circle;
</span><del>- else if (equalIgnoringCase(value, "poly"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "poly"))
</ins><span class="cx"> m_shape = Poly;
</span><del>- else if (equalIgnoringCase(value, "rect"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "rect"))
</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"> // <br clear> and <br clear=""> are just treated like <br> by Gecko, Mac IE, etc. -dwh
</span><span class="cx"> if (!value.isEmpty()) {
</span><del>- if (equalIgnoringCase(value, "all"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "all"))
</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, "fixed"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "fixed"))
</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& name, const AtomicString& value)
</span><span class="cx"> {
</span><span class="cx"> if (name == typeAttr) {
</span><del>- if (equalIgnoringCase(value, "reset"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "reset"))
</ins><span class="cx"> m_type = RESET;
</span><del>- else if (equalIgnoringCase(value, "button"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "button"))
</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("data:,");
</del><ins>+ return ASCIILiteral("data:,");
</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& name, const AtomicString& value, MutableStyleProperties& style)
</span><span class="cx"> {
</span><span class="cx"> if (name == alignAttr) {
</span><del>- if (equalIgnoringCase(value, "middle") || equalIgnoringCase(value, "center"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "middle") || equalLettersIgnoringASCIICase(value, "center"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitCenter);
</span><del>- else if (equalIgnoringCase(value, "left"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "left"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitLeft);
</span><del>- else if (equalIgnoringCase(value, "right"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "right"))
</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() ? "on" : "off";
</del><ins>+ return inDesignMode() ? ASCIILiteral("on") : ASCIILiteral("off");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocument::setDesignMode(const String& value)
</span><span class="cx"> {
</span><span class="cx"> InheritedBool mode;
</span><del>- if (equalIgnoringCase(value, "on"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "on"))
</ins><span class="cx"> mode = on;
</span><del>- else if (equalIgnoringCase(value, "off"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "off"))
</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& dirAttributeValue)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(dirAttributeValue, "rtl") || equalIgnoringCase(dirAttributeValue, "ltr");
</del><ins>+ return equalLettersIgnoringASCIICase(dirAttributeValue, "rtl") || equalLettersIgnoringASCIICase(dirAttributeValue, "ltr");
</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, "true"))
</del><ins>+ if (value.isEmpty() || equalLettersIgnoringASCIICase(value, "true"))
</ins><span class="cx"> return ContentEditableType::True;
</span><del>- if (equalIgnoringCase(value, "false"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "false"))
</ins><span class="cx"> return ContentEditableType::False;
</span><del>- if (equalIgnoringCase(value, "plaintext-only"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "plaintext-only"))
</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& name, const AtomicString& value, MutableStyleProperties& style)
</span><span class="cx"> {
</span><span class="cx"> if (name == alignAttr) {
</span><del>- if (equalIgnoringCase(value, "middle"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "middle"))
</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, "true")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "true")) {
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitUserDrag, CSSValueElement);
</span><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitUserSelect, CSSValueNone);
</span><del>- } else if (equalIgnoringCase(value, "false"))
</del><ins>+ } else if (equalLettersIgnoringASCIICase(value, "false"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyWebkitUserDrag, CSSValueNone);
</span><span class="cx"> } else if (name == dirAttr) {
</span><del>- if (equalIgnoringCase(value, "auto"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "auto"))
</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<AtomicString> ltrValue("ltr", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<AtomicString> rtlValue("rtl", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<AtomicString> autoValue("auto", AtomicString::ConstructFromLiteral);
</span><del>-
- if (equalIgnoringCase(value, ltrValue))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "ltr"))
</ins><span class="cx"> return ltrValue;
</span><del>- if (equalIgnoringCase(value, rtlValue))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "rtl"))
</ins><span class="cx"> return rtlValue;
</span><del>- if (equalIgnoringCase(value, autoValue))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "auto"))
</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, "beforeBegin")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(where, "beforebegin")) {
</ins><span class="cx"> ContainerNode* parent = this->parentNode();
</span><span class="cx"> return (parent && parent->insertBefore(newChild.copyRef(), this, ec)) ? newChild.ptr() : nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (equalIgnoringCase(where, "afterBegin"))
</del><ins>+ if (equalLettersIgnoringASCIICase(where, "afterbegin"))
</ins><span class="cx"> return insertBefore(newChild.copyRef(), firstChild(), ec) ? newChild.ptr() : nullptr;
</span><span class="cx">
</span><del>- if (equalIgnoringCase(where, "beforeEnd"))
</del><ins>+ if (equalLettersIgnoringASCIICase(where, "beforeend"))
</ins><span class="cx"> return appendChild(newChild.copyRef(), ec) ? newChild.ptr() : nullptr;
</span><span class="cx">
</span><del>- if (equalIgnoringCase(where, "afterEnd")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(where, "afterend")) {
</ins><span class="cx"> ContainerNode* parent = this->parentNode();
</span><span class="cx"> return (parent && parent->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& where, Element* element, ExceptionCode& ec)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(where, "beforeBegin") || equalIgnoringCase(where, "afterEnd")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(where, "beforebegin") || equalLettersIgnoringASCIICase(where, "afterend")) {
</ins><span class="cx"> ContainerNode* parent = element->parentNode();
</span><span class="cx"> if (parent && !is<Element>(*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<Element>(*parent));
</span><span class="cx"> return downcast<Element>(parent);
</span><span class="cx"> }
</span><del>- if (equalIgnoringCase(where, "afterBegin") || equalIgnoringCase(where, "beforeEnd"))
</del><ins>+ if (equalLettersIgnoringASCIICase(where, "afterbegin") || equalLettersIgnoringASCIICase(where, "beforeend"))
</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, "absmiddle"))
</del><ins>+ if (equalLettersIgnoringASCIICase(alignment, "absmiddle"))
</ins><span class="cx"> verticalAlignValue = CSSValueMiddle;
</span><del>- else if (equalIgnoringCase(alignment, "absbottom"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(alignment, "absbottom"))
</ins><span class="cx"> verticalAlignValue = CSSValueBottom;
</span><del>- else if (equalIgnoringCase(alignment, "left")) {
</del><ins>+ else if (equalLettersIgnoringASCIICase(alignment, "left")) {
</ins><span class="cx"> floatValue = CSSValueLeft;
</span><span class="cx"> verticalAlignValue = CSSValueTop;
</span><del>- } else if (equalIgnoringCase(alignment, "right")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(alignment, "right")) {
</ins><span class="cx"> floatValue = CSSValueRight;
</span><span class="cx"> verticalAlignValue = CSSValueTop;
</span><del>- } else if (equalIgnoringCase(alignment, "top"))
</del><ins>+ } else if (equalLettersIgnoringASCIICase(alignment, "top"))
</ins><span class="cx"> verticalAlignValue = CSSValueTop;
</span><del>- else if (equalIgnoringCase(alignment, "middle"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(alignment, "middle"))
</ins><span class="cx"> verticalAlignValue = CSSValueWebkitBaselineMiddle;
</span><del>- else if (equalIgnoringCase(alignment, "center"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(alignment, "center"))
</ins><span class="cx"> verticalAlignValue = CSSValueMiddle;
</span><del>- else if (equalIgnoringCase(alignment, "bottom"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(alignment, "bottom"))
</ins><span class="cx"> verticalAlignValue = CSSValueBaseline;
</span><del>- else if (equalIgnoringCase(alignment, "texttop"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(alignment, "texttop"))
</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& enabled, ExceptionCode& ec)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(enabled, "true"))
</del><ins>+ if (equalLettersIgnoringASCIICase(enabled, "true"))
</ins><span class="cx"> setAttribute(contenteditableAttr, AtomicString("true", AtomicString::ConstructFromLiteral));
</span><del>- else if (equalIgnoringCase(enabled, "false"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(enabled, "false"))
</ins><span class="cx"> setAttribute(contenteditableAttr, AtomicString("false", AtomicString::ConstructFromLiteral));
</span><del>- else if (equalIgnoringCase(enabled, "plaintext-only"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(enabled, "plaintext-only"))
</ins><span class="cx"> setAttribute(contenteditableAttr, AtomicString("plaintext-only", AtomicString::ConstructFromLiteral));
</span><del>- else if (equalIgnoringCase(enabled, "inherit"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(enabled, "inherit"))
</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), "true");
</del><ins>+ return equalLettersIgnoringASCIICase(fastGetAttribute(draggableAttr), "true");
</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, "yes") || value.isEmpty())
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "yes") || value.isEmpty())
</ins><span class="cx"> return TranslateAttributeYes;
</span><del>- if (equalIgnoringCase(value, "no"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "no"))
</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& direction = fastGetAttribute(dirAttr);
</span><del>- return (hasTagName(bdiTag) && direction.isNull()) || equalIgnoringCase(direction, "auto");
</del><ins>+ return (hasTagName(bdiTag) && direction.isNull()) || equalLettersIgnoringASCIICase(direction, "auto");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> TextDirection HTMLElement::directionalityIfhasDirAutoAttribute(bool& 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->nodeName(), "bdi") || node->hasTagName(scriptTag) || node->hasTagName(styleTag)
</del><ins>+ if (equalLettersIgnoringASCIICase(node->nodeName(), "bdi") || node->hasTagName(scriptTag) || node->hasTagName(styleTag)
</ins><span class="cx"> || (is<Element>(*node) && downcast<Element>(*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<Element>(*node)) {
</span><span class="cx"> AtomicString dirAttributeValue = downcast<Element>(*node).fastGetAttribute(dirAttr);
</span><del>- if (isLTROrRTLIgnoringCase(dirAttributeValue) || equalIgnoringCase(dirAttributeValue, "auto")) {
</del><ins>+ if (isLTROrRTLIgnoringCase(dirAttributeValue) || equalLettersIgnoringASCIICase(dirAttributeValue, "auto")) {
</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<HTMLElement>(parent) && parent->selfOrAncestorHasDirAutoAttribute())
</span><span class="cx"> downcast<HTMLElement>(*parent).adjustDirectionalityIfNeededAfterChildAttributeChanged(this);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(value, "auto"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "auto"))
</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"> // "transparent" doesn't apply a color either.
</span><del>- if (equalIgnoringCase(colorString, "transparent"))
</del><ins>+ if (equalLettersIgnoringASCIICase(colorString, "transparent"))
</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& name, const AtomicString& value, MutableStyleProperties& style)
</span><span class="cx"> {
</span><span class="cx"> if (name == hiddenAttr) {
</span><del>- if (equalIgnoringCase(value, "yes") || equalIgnoringCase(value, "true")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "yes") || equalLettersIgnoringASCIICase(value, "true")) {
</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& autocorrectValue = fastGetAttribute(autocorrectAttr);
</span><span class="cx"> if (!autocorrectValue.isEmpty())
</span><del>- return !equalIgnoringCase(autocorrectValue, "off");
</del><ins>+ return !equalLettersIgnoringASCIICase(autocorrectValue, "off");
</ins><span class="cx"> if (HTMLFormElement* form = this->form())
</span><span class="cx"> return form->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& autocorrectValue = fastGetAttribute(autocorrectAttr);
</span><span class="cx"> if (!autocorrectValue.isEmpty())
</span><del>- return !equalIgnoringCase(autocorrectValue, "off");
</del><ins>+ return !equalLettersIgnoringASCIICase(autocorrectValue, "off");
</ins><span class="cx"> if (HTMLFormElement* form = this->form())
</span><span class="cx"> return form->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), "off");
</del><ins>+ return !equalLettersIgnoringASCIICase(fastGetAttribute(autocompleteAttr), "off");
</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 "allow scrolling." No means "don't allow scrolling."
</span><del>- if (equalIgnoringCase(value, "auto") || equalIgnoringCase(value, "yes"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "auto") || equalLettersIgnoringASCIICase(value, "yes"))
</ins><span class="cx"> m_scrolling = document().frameElementsShouldIgnoreScrolling() ? ScrollbarAlwaysOff : ScrollbarAuto;
</span><del>- else if (equalIgnoringCase(value, "no"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "no"))
</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, "no") || equalIgnoringCase(value, "0")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "no") || value == "0") {
</ins><span class="cx"> m_frameborder = false;
</span><span class="cx"> m_frameborderSet = true;
</span><del>- } else if (equalIgnoringCase(value, "yes") || equalIgnoringCase(value, "1")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(value, "yes") || value == "1") {
</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& name, const AtomicString& value, MutableStyleProperties& style)
</span><span class="cx"> {
</span><span class="cx"> if (name == alignAttr) {
</span><del>- if (equalIgnoringCase(value, "left")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "left")) {
</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, "right")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(value, "right")) {
</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), "false");
</del><ins>+ return !equalLettersIgnoringASCIICase(fastGetAttribute(draggableAttr), "false");
</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, "off")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "off")) {
</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& keyType = fastGetAttribute(keytypeAttr);
</span><del>- if (!keyType.isNull() && !equalIgnoringCase(keyType, "rsa"))
</del><ins>+ if (!keyType.isNull() && !equalLettersIgnoringASCIICase(keyType, "rsa"))
</ins><span class="cx"> return false;
</span><span class="cx"> String value = signedPublicKeyAndChallengeString(shadowSelect()->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 == "-1" || equalIgnoringCase(value, "infinite"))
</del><ins>+ if (value == "-1" || equalLettersIgnoringASCIICase(value, "infinite"))
</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, "none"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "none"))
</ins><span class="cx"> m_preload = MediaPlayer::None;
</span><del>- else if (equalIgnoringCase(value, "metadata"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "metadata"))
</ins><span class="cx"> m_preload = MediaPlayer::MetaData;
</span><span class="cx"> else {
</span><span class="cx"> // The spec does not define an "invalid value default" but "auto" 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(), "viewport"))
</del><ins>+ if (equalLettersIgnoringASCIICase(name(), "viewport"))
</ins><span class="cx"> document().processViewport(contentValue, ViewportArguments::ViewportMeta);
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>- else if (equalIgnoringCase(name(), "format-detection"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name(), "format-detection"))
</ins><span class="cx"> document().processFormatDetection(contentValue);
</span><del>- else if (equalIgnoringCase(name(), "apple-mobile-web-app-orientations"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name(), "apple-mobile-web-app-orientations"))
</ins><span class="cx"> document().processWebAppOrientations();
</span><span class="cx"> #endif
</span><del>- else if (equalIgnoringCase(name(), "referrer"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(name(), "referrer"))
</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<String>* paramNames, Vector<String>* paramValues)
</del><ins>+static void mapDataParamToSrc(Vector<String>& paramNames, Vector<String>& paramValues)
</ins><span class="cx"> {
</span><del>- // Some plugins don't understand the "data" attribute of the OBJECT tag (i.e. Real and WMP
- // require "src" attribute).
- int srcIndex = -1, dataIndex = -1;
- for (unsigned int i = 0; i < paramNames->size(); ++i) {
- if (equalIgnoringCase((*paramNames)[i], "src"))
- srcIndex = i;
- else if (equalIgnoringCase((*paramNames)[i], "data"))
- dataIndex = i;
</del><ins>+ // Some plugins don't understand the "data" attribute of the OBJECT tag (i.e. Real and WMP require "src" attribute).
+ bool foundSrcParam = false;
+ String dataParamValue;
+ for (unsigned i = 0; i < paramNames.size(); ++i) {
+ if (equalLettersIgnoringASCIICase(paramNames[i], "src"))
+ foundSrcParam = true;
+ else if (equalLettersIgnoringASCIICase(paramNames[i], "data"))
+ dataParamValue = paramValues[i];
</ins><span class="cx"> }
</span><del>-
- if (srcIndex == -1 && dataIndex != -1) {
- paramNames->append("src");
- paramValues->append((*paramValues)[dataIndex]);
</del><ins>+ if (!foundSrcParam && !dataParamValue.isNull()) {
+ paramNames.append(ASCIILiteral("src"));
+ 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() && urlParameter.isEmpty() && (equalIgnoringCase(name, "src") || equalIgnoringCase(name, "movie") || equalIgnoringCase(name, "code") || equalIgnoringCase(name, "url")))
</del><ins>+ if (url.isEmpty() && urlParameter.isEmpty() && (equalLettersIgnoringASCIICase(name, "src") || equalLettersIgnoringASCIICase(name, "movie") || equalLettersIgnoringASCIICase(name, "code") || equalLettersIgnoringASCIICase(name, "url")))
</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() && equalIgnoringCase(name, "type")) {
</del><ins>+ if (serviceType.isEmpty() && equalLettersIgnoringASCIICase(name, "type")) {
</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(&paramNames, &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()->settings().needsSiteSpecificQuirks()
</span><span class="cx"> || hasFallbackContent()
</span><del>- || !equalIgnoringCase(fastGetAttribute(classidAttr), "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"))
</del><ins>+ || !equalLettersIgnoringASCIICase(fastGetAttribute(classidAttr), "clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> for (auto& metaElement : descendantsOfType<HTMLMetaElement>(document())) {
</span><del>- if (equalIgnoringCase(metaElement.name(), "generator") && metaElement.content().startsWith("Mac OS X Server Web Services Server", false))
</del><ins>+ if (equalLettersIgnoringASCIICase(metaElement.name(), "generator") && metaElement.content().startsWith("Mac OS X Server Web Services Server", 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& child : childrenOfType<Element>(*this)) {
</span><del>- if (child.hasTagName(paramTag) && equalIgnoringCase(child.getNameAttribute(), "type")
</del><ins>+ if (child.hasTagName(paramTag) && equalLettersIgnoringASCIICase(child.getNameAttribute(), "type")
</ins><span class="cx"> && MIMETypeRegistry::isJavaAppletMIMEType(child.getAttribute(valueAttr).string()))
</span><span class="cx"> return true;
</span><span class="cx"> if (child.hasTagName(objectTag) && downcast<HTMLObjectElement>(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& name, const AtomicString& value, MutableStyleProperties& style)
</span><span class="cx"> {
</span><span class="cx"> if (name == alignAttr) {
</span><del>- if (equalIgnoringCase(value, "middle") || equalIgnoringCase(value, "center"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "middle") || equalLettersIgnoringASCIICase(value, "center"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitCenter);
</span><del>- else if (equalIgnoringCase(value, "left"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "left"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitLeft);
</span><del>- else if (equalIgnoringCase(value, "right"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "right"))
</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& name)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(name, "data") || equalIgnoringCase(name, "movie") || equalIgnoringCase(name, "src");
</del><ins>+ return equalLettersIgnoringASCIICase(name, "data") || equalLettersIgnoringASCIICase(name, "movie") || equalLettersIgnoringASCIICase(name, "src");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLParamElement::isURLAttribute(const Attribute& 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, "above"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "above"))
</ins><span class="cx"> borderTop = true;
</span><del>- else if (equalIgnoringCase(value, "below"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "below"))
</ins><span class="cx"> borderBottom = true;
</span><del>- else if (equalIgnoringCase(value, "hsides"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "hsides"))
</ins><span class="cx"> borderTop = borderBottom = true;
</span><del>- else if (equalIgnoringCase(value, "vsides"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "vsides"))
</ins><span class="cx"> borderLeft = borderRight = true;
</span><del>- else if (equalIgnoringCase(value, "lhs"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "lhs"))
</ins><span class="cx"> borderLeft = true;
</span><del>- else if (equalIgnoringCase(value, "rhs"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "rhs"))
</ins><span class="cx"> borderRight = true;
</span><del>- else if (equalIgnoringCase(value, "box") || equalIgnoringCase(value, "border"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "box") || equalLettersIgnoringASCIICase(value, "border"))
</ins><span class="cx"> borderTop = borderBottom = borderLeft = borderRight = true;
</span><del>- else if (!equalIgnoringCase(value, "void"))
</del><ins>+ else if (!equalLettersIgnoringASCIICase(value, "void"))
</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, "center")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "center")) {
</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, "none"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "none"))
</ins><span class="cx"> m_rulesAttr = NoneRules;
</span><del>- else if (equalIgnoringCase(value, "groups"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "groups"))
</ins><span class="cx"> m_rulesAttr = GroupsRules;
</span><del>- else if (equalIgnoringCase(value, "rows"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "rows"))
</ins><span class="cx"> m_rulesAttr = RowsRules;
</span><del>- else if (equalIgnoringCase(value, "cols"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "cols"))
</ins><span class="cx"> m_rulesAttr = ColsRules;
</span><del>- else if (equalIgnoringCase(value, "all"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "all"))
</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, "top"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "top"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, CSSValueTop);
</span><del>- else if (equalIgnoringCase(value, "middle"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "middle"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, CSSValueMiddle);
</span><del>- else if (equalIgnoringCase(value, "bottom"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "bottom"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyVerticalAlign, CSSValueBottom);
</span><del>- else if (equalIgnoringCase(value, "baseline"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "baseline"))
</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, "middle") || equalIgnoringCase(value, "center"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "middle") || equalLettersIgnoringASCIICase(value, "center"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitCenter);
</span><del>- else if (equalIgnoringCase(value, "absmiddle"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "absmiddle"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueCenter);
</span><del>- else if (equalIgnoringCase(value, "left"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "left"))
</ins><span class="cx"> addPropertyToPresentationAttributeStyle(style, CSSPropertyTextAlign, CSSValueWebkitLeft);
</span><del>- else if (equalIgnoringCase(value, "right"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "right"))
</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, "physical") || equalIgnoringCase(value, "hard") || equalIgnoringCase(value, "on"))
</del><ins>+ if (equalLettersIgnoringASCIICase(value, "physical") || equalLettersIgnoringASCIICase(value, "hard") || equalLettersIgnoringASCIICase(value, "on"))
</ins><span class="cx"> wrap = HardWrap;
</span><del>- else if (equalIgnoringCase(value, "off"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(value, "off"))
</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, "select")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(selectionMode, "select")) {
</ins><span class="cx"> newSelectionStart = start;
</span><span class="cx"> newSelectionEnd = start + replacementLength;
</span><del>- } else if (equalIgnoringCase(selectionMode, "start"))
</del><ins>+ } else if (equalLettersIgnoringASCIICase(selectionMode, "start"))
</ins><span class="cx"> newSelectionStart = newSelectionEnd = start;
</span><del>- else if (equalIgnoringCase(selectionMode, "end"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(selectionMode, "end"))
</ins><span class="cx"> newSelectionStart = newSelectionEnd = start + replacementLength;
</span><span class="cx"> else {
</span><span class="cx"> // Default is "preserve".
</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, "rtl") || equalIgnoringCase(dirAttributeValue, "ltr"))
</del><ins>+ if (equalLettersIgnoringASCIICase(dirAttributeValue, "rtl") || equalLettersIgnoringASCIICase(dirAttributeValue, "ltr"))
</ins><span class="cx"> return dirAttributeValue;
</span><span class="cx">
</span><del>- if (equalIgnoringCase(dirAttributeValue, "auto")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(dirAttributeValue, "auto")) {
</ins><span class="cx"> bool isAuto;
</span><span class="cx"> TextDirection textDirection = static_cast<const HTMLElement*>(element)->directionalityIfhasDirAutoAttribute(isAuto);
</span><span class="cx"> return textDirection == RTL ? "rtl" : "ltr";
</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) && 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), "deny"))
</del><ins>+ if (equalLettersIgnoringASCIICase(fastGetAttribute(HTMLNames::webkitairplayAttr), "deny"))
</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 < stepRange.minimum())
</span><span class="cx"> newValue = stepRange.minimum();
</span><span class="cx">
</span><del>- const AtomicString& stepString = element().fastGetAttribute(stepAttr);
- if (!equalIgnoringCase(stepString, "any"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(element().fastGetAttribute(stepAttr), "any"))
</ins><span class="cx"> newValue = stepRange.alignValueForStep(current, newValue);
</span><span class="cx">
</span><span class="cx"> if (newValue - stepRange.maximum() > acceptableErrorValue) {
</span></span></pre></div>
<a id="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& rel)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(rel, "stylesheet"))
</del><ins>+ if (equalLettersIgnoringASCIICase(rel, "stylesheet"))
</ins><span class="cx"> isStyleSheet = true;
</span><del>- else if (equalIgnoringCase(rel, "icon") || equalIgnoringCase(rel, "shortcut icon"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(rel, "icon") || equalLettersIgnoringASCIICase(rel, "shortcut icon"))
</ins><span class="cx"> iconType = Favicon;
</span><span class="cx"> #if ENABLE(TOUCH_ICON_LOADING)
</span><del>- else if (equalIgnoringCase(rel, "apple-touch-icon"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(rel, "apple-touch-icon"))
</ins><span class="cx"> iconType = TouchIcon;
</span><del>- else if (equalIgnoringCase(rel, "apple-touch-icon-precomposed"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(rel, "apple-touch-icon-precomposed"))
</ins><span class="cx"> iconType = TouchPrecomposedIcon;
</span><span class="cx"> #endif
</span><del>- else if (equalIgnoringCase(rel, "dns-prefetch"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(rel, "dns-prefetch"))
</ins><span class="cx"> isDNSPrefetch = true;
</span><del>- else if (equalIgnoringCase(rel, "alternate stylesheet") || equalIgnoringCase(rel, "stylesheet alternate")) {
</del><ins>+ else if (equalLettersIgnoringASCIICase(rel, "alternate stylesheet") || equalLettersIgnoringASCIICase(rel, "stylesheet alternate")) {
</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<String> list;
</span><span class="cx"> relCopy.split(' ', list);
</span><span class="cx"> for (auto& word : list) {
</span><del>- if (equalIgnoringCase(word, "stylesheet"))
</del><ins>+ if (equalLettersIgnoringASCIICase(word, "stylesheet"))
</ins><span class="cx"> isStyleSheet = true;
</span><del>- else if (equalIgnoringCase(word, "alternate"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(word, "alternate"))
</ins><span class="cx"> isAlternate = true;
</span><del>- else if (equalIgnoringCase(word, "icon"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(word, "icon"))
</ins><span class="cx"> iconType = Favicon;
</span><span class="cx"> #if ENABLE(TOUCH_ICON_LOADING)
</span><del>- else if (equalIgnoringCase(word, "apple-touch-icon"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(word, "apple-touch-icon"))
</ins><span class="cx"> iconType = TouchIcon;
</span><del>- else if (equalIgnoringCase(word, "apple-touch-icon-precomposed"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(word, "apple-touch-icon-precomposed"))
</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, "prefetch"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(word, "prefetch"))
</ins><span class="cx"> isLinkPrefetch = true;
</span><del>- else if (equalIgnoringCase(word, "subresource"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(word, "subresource"))
</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, "deny")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(legacyAirplayAttributeValue, "deny")) {
</ins><span class="cx"> LOG(Media, "MediaElementSession::wirelessVideoPlaybackDisabled - returning TRUE because of legacy attribute");
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><del>- if (equalIgnoringCase(legacyAirplayAttributeValue, "allow")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(legacyAirplayAttributeValue, "allow")) {
</ins><span class="cx"> LOG(Media, "MediaElementSession::wirelessVideoPlaybackDisabled - returning FALSE because of legacy attribute");
</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, "any"))
</del><ins>+ auto& stepString = element().fastGetAttribute(stepAttr);
+ if (equalLettersIgnoringASCIICase(stepString, "any"))
</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& precisionValue = element().fastGetAttribute(precisionAttr);
</span><span class="cx"> if (!precisionValue.isNull()) {
</span><del>- const Decimal step = equalIgnoringCase(precisionValue, "float") ? Decimal::nan() : 1;
</del><ins>+ const Decimal step = equalLettersIgnoringASCIICase(precisionValue, "float") ? 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 "any". So, we increase
</span><span class="cx"> // or decrease the value by 1/100 of the value range. Is it reasonable?
</span><del>- const Decimal step = equalIgnoringCase(element().fastGetAttribute(stepAttr), "any") ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step();
</del><ins>+ const Decimal step = equalLettersIgnoringASCIICase(element().fastGetAttribute(stepAttr), "any") ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step();
</ins><span class="cx"> const Decimal bigStep = std::max((stepRange.maximum() - stepRange.minimum()) / 10, step);
</span><span class="cx">
</span><span class="cx"> bool isVertical = false;
</span></span></pre></div>
<a id="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, "any")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(stepString, "any")) {
</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& parsedColor, const String& colorString, Document* document = 0)
</del><ins>+static ColorParseResult parseColor(RGBA32& parsedColor, const String& colorString, Document* document = nullptr)
</ins><span class="cx"> {
</span><del>- if (equalIgnoringCase(colorString, "currentcolor"))
</del><ins>+ if (equalLettersIgnoringASCIICase(colorString, "currentcolor"))
</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("-//W3C//DTD HTML Experimental 970421//", false)
</span><span class="cx"> || publicId.startsWith("-//W3C//DTD W3 HTML//", false)
</span><span class="cx"> || publicId.startsWith("-//W3O//DTD W3 HTML 3.0//", false)
</span><del>- || equalIgnoringCase(publicId, "-//W3O//DTD W3 HTML Strict 3.0//EN//")
</del><ins>+ || equalLettersIgnoringASCIICase(publicId, "-//w3o//dtd w3 html strict 3.0//en//")
</ins><span class="cx"> || publicId.startsWith("-//WebTechs//DTD Mozilla HTML 2.0//", false)
</span><span class="cx"> || publicId.startsWith("-//WebTechs//DTD Mozilla HTML//", false)
</span><del>- || equalIgnoringCase(publicId, "-/W3C/DTD HTML 4.0 Transitional/EN")
- || equalIgnoringCase(publicId, "HTML")
- || equalIgnoringCase(systemId, "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd")
</del><ins>+ || equalLettersIgnoringASCIICase(publicId, "-/w3c/dtd html 4.0 transitional/en")
+ || equalLettersIgnoringASCIICase(publicId, "html")
+ || equalLettersIgnoringASCIICase(systemId, "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd")
</ins><span class="cx"> || (systemId.isEmpty() && publicId.startsWith("-//W3C//DTD HTML 4.01 Frameset//", false))
</span><span class="cx"> || (systemId.isEmpty() && publicId.startsWith("-//W3C//DTD HTML 4.01 Transitional//", 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& encoding = encodingAttr->value();
</span><del>- return equalIgnoringCase(encoding, "text/html")
- || equalIgnoringCase(encoding, "application/xhtml+xml");
</del><ins>+ return equalLettersIgnoringASCIICase(encoding, "text/html")
+ || equalLettersIgnoringASCIICase(encoding, "application/xhtml+xml");
</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& attributeValue = attribute.second;
</span><span class="cx">
</span><span class="cx"> if (attributeName == http_equivAttr) {
</span><del>- if (equalIgnoringCase(attributeValue, "content-type"))
</del><ins>+ if (equalLettersIgnoringASCIICase(attributeValue, "content-type"))
</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, "image");
</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, "viewport");
</del><ins>+ m_metaIsViewport = equalLettersIgnoringASCIICase(attributeValue, "viewport");
</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, "use-credentials");
</del><ins>+ return m_crossOriginMode.isNull() || equalLettersIgnoringASCIICase(m_crossOriginMode, "use-credentials");
</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(&token);
</span><span class="cx"> Attribute* typeAttribute = findAttribute(token.attributes(), typeAttr);
</span><del>- if (!typeAttribute || !equalIgnoringCase(typeAttribute->value(), "hidden"))
</del><ins>+ if (!typeAttribute || !equalLettersIgnoringASCIICase(typeAttribute->value(), "hidden"))
</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 && equalIgnoringCase(typeAttribute->value(), "hidden")) {
</del><ins>+ if (typeAttribute && equalLettersIgnoringASCIICase(typeAttribute->value(), "hidden")) {
</ins><span class="cx"> parseError(token);
</span><span class="cx"> m_tree.insertSelfClosingHTMLElement(&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& value)
</span><span class="cx"> {
</span><span class="cx"> String equiv = value.stripWhiteSpace();
</span><del>- return equalIgnoringCase(equiv, "refresh") || equalIgnoringCase(equiv, "set-cookie");
</del><ins>+ return equalLettersIgnoringASCIICase(equiv, "refresh") || equalLettersIgnoringASCIICase(equiv, "set-cookie");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static inline String decode16BitUnicodeEscapeSequences(const String& 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 "WEBVTT" 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() > fileIdentifierLength && !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("application/xml");
</span><span class="cx"> decoder->useLenientXMLDecoding();
</span><del>- } else if (equalIgnoringCase(mimeType, "text/html"))
</del><ins>+ } else if (equalLettersIgnoringASCIICase(mimeType, "text/html"))
</ins><span class="cx"> decoder = TextResourceDecoder::create("text/html", "UTF-8");
</span><span class="cx"> else
</span><span class="cx"> decoder = TextResourceDecoder::create("text/plain", "UTF-8");
</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("application/xml");
</span><span class="cx"> decoder->useLenientXMLDecoding();
</span><del>- } else if (equalIgnoringCase(mimeType, "text/html"))
</del><ins>+ } else if (equalLettersIgnoringASCIICase(mimeType, "text/html"))
</ins><span class="cx"> decoder = TextResourceDecoder::create("text/html", "UTF-8");
</span><span class="cx"> else if (mimeType == "text/plain")
</span><span class="cx"> decoder = TextResourceDecoder::create("text/plain", "ISO-8859-1");
</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, "application/x-www-form-urlencoded")
- || equalIgnoringCase(mimeType, "multipart/form-data")
- || equalIgnoringCase(mimeType, "text/plain");
</del><ins>+ return equalIgnoringASCIICase(mimeType, "application/x-www-form-urlencoded")
+ || equalIgnoringASCIICase(mimeType, "multipart/form-data")
+ || equalIgnoringASCIICase(mimeType, "text/plain");
</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("application/x-webarchive", mimeType)
- || equalIgnoringCase("application/x-mimearchive", mimeType)
</del><ins>+ bool isRemoteWebArchive = (equalLettersIgnoringASCIICase(mimeType, "application/x-webarchive")
+ || equalLettersIgnoringASCIICase(mimeType, "application/x-mimearchive")
</ins><span class="cx"> #if PLATFORM(GTK)
</span><del>- || equalIgnoringCase("message/rfc822", mimeType)
</del><ins>+ || equalLettersIgnoringASCIICase(mimeType, "message/rfc822")
</ins><span class="cx"> #endif
</span><del>- || equalIgnoringCase("multipart/related", mimeType))
</del><ins>+ || equalLettersIgnoringASCIICase(mimeType, "multipart/related"))
</ins><span class="cx"> && !m_substituteData.isValid() && !SchemeRegistry::shouldTreatURLSchemeAsLocal(url.protocol());
</span><span class="cx"> if (!frameLoader()->client().canShowMIMEType(mimeType) || isRemoteWebArchive) {
</span><span class="cx"> frameLoader()->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, "text/plain")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(encodingType, "text/plain")) {
</ins><span class="cx"> // Convention seems to be to decode, and s/&/\r\n/. Also, spaces are encoded as %20.
</span><span class="cx"> body = decodeURLEscapeSequences(body.replaceWithLiteral('&', "\r\n").replace('+', ' ') + "\r\n");
</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& type)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(type, "multipart/form-data"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "multipart/form-data"))
</ins><span class="cx"> return "multipart/form-data";
</span><del>- if (equalIgnoringCase(type, "text/plain"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "text/plain"))
</ins><span class="cx"> return "text/plain";
</span><span class="cx"> return "application/x-www-form-urlencoded";
</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& type)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(type, "post") ? FormSubmission::PostMethod : FormSubmission::GetMethod;
</del><ins>+ return equalLettersIgnoringASCIICase(type, "post") ? FormSubmission::PostMethod : FormSubmission::GetMethod;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FormSubmission::Attributes::updateMethodType(const String& 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, "GET"))
</del><ins>+ return (!isFormSubmission || equalLettersIgnoringASCIICase(httpMethod, "get"))
</ins><span class="cx"> && loadType != FrameLoadType::Reload
</span><span class="cx"> && loadType != FrameLoadType::ReloadFromOrigin
</span><span class="cx"> && loadType != FrameLoadType::Same
</span><span class="lines">@@ -3216,7 +3216,7 @@
</span><span class="cx">
</span><span class="cx"> bool FrameLoader::shouldTreatURLAsSrcdocDocument(const URL& url) const
</span><span class="cx"> {
</span><del>- if (!equalIgnoringCase(url.string(), "about:srcdoc"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(url.string(), "about:srcdoc"))
</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, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+ StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, "use-credentials") ? 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 & 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, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+ StoredCredentials allowCredentials = m_crossOriginMode.isNull() || equalLettersIgnoringASCIICase(m_crossOriginMode, "use-credentials") ? 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 < paramNames.size(); ++i) {
</span><del>- if (equalIgnoringCase(paramNames[i], "baseurl"))
</del><ins>+ if (equalLettersIgnoringASCIICase(paramNames[i], "baseurl"))
</ins><span class="cx"> baseURLString = paramValues[i];
</span><del>- else if (equalIgnoringCase(paramNames[i], "codebase"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(paramNames[i], "codebase"))
</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& mimeType)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(mimeType, "text/css"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mimeType, "text/css"))
</ins><span class="cx"> return CSS;
</span><del>- if (equalIgnoringCase(mimeType, "text/html"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mimeType, "text/html"))
</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, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</del><ins>+ StoredCredentials allowCredentials = equalLettersIgnoringASCIICase(crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials;
</ins><span class="cx"> updateRequestForAccessControl(cueRequest.mutableResourceRequest(), document->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& request)
</span><span class="cx"> {
</span><del>- if (!request.url().protocolIsInHTTPFamily())
- return false;
-
- if (!equalIgnoringCase(request.httpMethod(), "GET"))
- return false;
</del><ins>+ return request.url().protocolIsInHTTPFamily() && equalLettersIgnoringASCIICase(request.httpMethod(), "get");
+}
</ins><span class="cx">
</span><del>- return true;
-}
-
</del><span class="cx"> ApplicationCacheResource* ApplicationCache::resourceForRequest(const ResourceRequest& 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, "text/css") || equalIgnoringCase(mimeType, "application/x-unknown-content-type");
</del><ins>+ bool typeOK = mimeType.isEmpty() || equalLettersIgnoringASCIICase(mimeType, "text/css") || equalLettersIgnoringASCIICase(mimeType, "application/x-unknown-content-type");
</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& scheme)
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>- if (equalIgnoringCase(scheme, "applewebdata"))
</del><ins>+ if (equalLettersIgnoringASCIICase(scheme, "applewebdata"))
</ins><span class="cx"> return true;
</span><span class="cx"> #endif
</span><span class="cx"> #if USE(SOUP)
</span><del>- if (equalIgnoringCase(scheme, "resource"))
</del><ins>+ if (equalLettersIgnoringASCIICase(scheme, "resource"))
</ins><span class="cx"> return true;
</span><span class="cx"> #endif
</span><del>- return equalIgnoringCase(scheme, "data");
</del><ins>+ return equalLettersIgnoringASCIICase(scheme, "data");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> std::chrono::microseconds CachedResource::freshnessLifetime(const ResourceResponse& 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, "extend"))
</del><ins>+ if (equalLettersIgnoringASCIICase(alterString, "extend"))
</ins><span class="cx"> alter = FrameSelection::AlterationExtend;
</span><del>- else if (equalIgnoringCase(alterString, "move"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(alterString, "move"))
</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, "forward"))
</del><ins>+ if (equalLettersIgnoringASCIICase(directionString, "forward"))
</ins><span class="cx"> direction = DirectionForward;
</span><del>- else if (equalIgnoringCase(directionString, "backward"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(directionString, "backward"))
</ins><span class="cx"> direction = DirectionBackward;
</span><del>- else if (equalIgnoringCase(directionString, "left"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(directionString, "left"))
</ins><span class="cx"> direction = DirectionLeft;
</span><del>- else if (equalIgnoringCase(directionString, "right"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(directionString, "right"))
</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, "character"))
</del><ins>+ if (equalLettersIgnoringASCIICase(granularityString, "character"))
</ins><span class="cx"> granularity = CharacterGranularity;
</span><del>- else if (equalIgnoringCase(granularityString, "word"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "word"))
</ins><span class="cx"> granularity = WordGranularity;
</span><del>- else if (equalIgnoringCase(granularityString, "sentence"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "sentence"))
</ins><span class="cx"> granularity = SentenceGranularity;
</span><del>- else if (equalIgnoringCase(granularityString, "line"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "line"))
</ins><span class="cx"> granularity = LineGranularity;
</span><del>- else if (equalIgnoringCase(granularityString, "paragraph"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "paragraph"))
</ins><span class="cx"> granularity = ParagraphGranularity;
</span><del>- else if (equalIgnoringCase(granularityString, "lineboundary"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "lineboundary"))
</ins><span class="cx"> granularity = LineBoundary;
</span><del>- else if (equalIgnoringCase(granularityString, "sentenceboundary"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "sentenceboundary"))
</ins><span class="cx"> granularity = SentenceBoundary;
</span><del>- else if (equalIgnoringCase(granularityString, "paragraphboundary"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "paragraphboundary"))
</ins><span class="cx"> granularity = ParagraphBoundary;
</span><del>- else if (equalIgnoringCase(granularityString, "documentboundary"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(granularityString, "documentboundary"))
</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& 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, "UTF-8");
</del><ins>+ responseIsValid = charset.isEmpty() || equalLettersIgnoringASCIICase(charset, "utf-8");
</ins><span class="cx"> if (!responseIsValid) {
</span><span class="cx"> String message = makeString("EventSource's response has a charset (\"", charset, "\") that is not UTF-8. Aborting the connection.");
</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 "" and "top" both mean top of page as in other browsers.
</span><del>- if (!anchorElement && !(name.isEmpty() || equalIgnoringCase(name, "top")))
</del><ins>+ if (!anchorElement && !(name.isEmpty() || equalLettersIgnoringASCIICase(name, "top")))
</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<PerformanceEntryList> entries = PerformanceEntryList::create();
</span><span class="cx">
</span><span class="cx"> #if ENABLE(RESOURCE_TIMING)
</span><del>- if (equalIgnoringCase(entryType, "resource"))
</del><ins>+ if (equalLettersIgnoringASCIICase(entryType, "resource")) {
</ins><span class="cx"> for (auto& resource : m_resourceTimingBuffer)
</span><span class="cx"> entries->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, "mark"))
</del><ins>+ if (equalLettersIgnoringASCIICase(entryType, "mark"))
</ins><span class="cx"> entries->appendAll(m_userTiming->getMarks());
</span><del>- else if (equalIgnoringCase(entryType, "measure"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(entryType, "measure"))
</ins><span class="cx"> entries->appendAll(m_userTiming->getMeasures());
</span><span class="cx"> }
</span><del>-#endif // ENABLE(USER_TIMING)
</del><ins>+#endif
</ins><span class="cx">
</span><span class="cx"> entries->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& timingAllowOriginString = response.httpHeaderField(HTTPHeaderName::TimingAllowOrigin);
</span><del>- if (timingAllowOriginString.isEmpty() || equalIgnoringCase(timingAllowOriginString, "null"))
</del><ins>+ if (timingAllowOriginString.isEmpty() || equalLettersIgnoringASCIICase(timingAllowOriginString, "null"))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> if (timingAllowOriginString == "*")
</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& url)
</span><del>- : m_protocol(url.protocol().isNull() ? "" : url.protocol().lower())
- , m_host(url.host().isNull() ? "" : 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("")
- , m_host("")
- , m_domain("")
</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 "null";
</del><ins>+ return ASCIILiteral("null");
</ins><span class="cx"> if (m_protocol == "file" && m_enforceFilePathSeparation)
</span><del>- return "null";
</del><ins>+ return ASCIILiteral("null");
</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 "file__0";
</del><ins>+ return ASCIILiteral("file__0");
</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, "file"))
</del><ins>+ if (equalLettersIgnoringASCIICase(m_scheme, "file"))
</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, "file") && !matchesHost(test))
</del><ins>+ if (!equalLettersIgnoringASCIICase(m_scheme, "file") && !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 "valid" 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("javascript")));
</del><ins>+ ASSERT(!equalLettersIgnoringASCIICase(StringView(protocol), "javascript"));
</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, "keyrelease"))
- 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, "keyrelease"))
+ 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& 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 == "keyrelease")
</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, "keyrelease")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(mimeType, "keyrelease")) {
</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, "keyrelease")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(mimeType, "keyrelease")) {
</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("public.png");
</span><span class="cx"> static const CFStringRef kUTTypeGIF = CFSTR("com.compuserve.gif");
</span><span class="cx">
</span><del>- if (equalIgnoringCase(mimeType, "image/png"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mimeType, "image/png"))
</ins><span class="cx"> return kUTTypePNG;
</span><del>- if (equalIgnoringCase(mimeType, "image/jpeg"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mimeType, "image/jpeg"))
</ins><span class="cx"> return jpegUTI();
</span><del>- if (equalIgnoringCase(mimeType, "image/gif"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mimeType, "image/gif"))
</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<AtomicString> monaco("monaco", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> menlo("menlo", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> courier("courier", AtomicString::ConstructFromLiteral);
- if (equalIgnoringCase(family, monaco) || equalIgnoringCase(family, menlo))
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "monaco") || equalLettersIgnoringASCIICase(family, "menlo")) {
+ static NeverDestroyed<AtomicString> courier("courier", 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<AtomicString> lucidaGrande("lucida grande", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> verdana("verdana", AtomicString::ConstructFromLiteral);
- if (equalIgnoringCase(family, lucidaGrande))
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "lucida grande")) {
+ static NeverDestroyed<AtomicString> verdana("verdana", 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<String> arabic(ASCIILiteral("Arabic"));
</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<AtomicString> systemUIFontWithWebKitPrefix("-webkit-system-font", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> systemUIFontWithApplePrefix("-apple-system", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> systemUIFontWithAppleAlternatePrefix("-apple-system-font", AtomicString::ConstructFromLiteral);
- if (equalIgnoringCase(family, systemUIFontWithWebKitPrefix) || equalIgnoringCase(family, systemUIFontWithApplePrefix) || equalIgnoringCase(family, systemUIFontWithAppleAlternatePrefix)) {
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "-webkit-system-font") || equalLettersIgnoringASCIICase(family, "-apple-system") || equalLettersIgnoringASCIICase(family, "-apple-system-font")) {
</ins><span class="cx"> CTFontUIFontType fontType = kCTFontUIFontSystem;
</span><span class="cx"> if (weight > 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 <rdar://problem/14449340>:
</span><span class="cx"> if (traits & 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<AtomicString> systemUIMonospacedNumbersFontWithApplePrefix("-apple-system-monospaced-numbers", AtomicString::ConstructFromLiteral);
- if (equalIgnoringCase(family, systemUIMonospacedNumbersFontWithApplePrefix)) {
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "-apple-system-monospaced-numbers")) {
</ins><span class="cx"> RetainPtr<CTFontDescriptorRef> systemFontDescriptor = adoptCF(CTFontDescriptorCreateForUIType(kCTFontUIFontSystem, size, nullptr));
</span><span class="cx"> RetainPtr<CTFontDescriptorRef> 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<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, FontWeight weight, CTFontSymbolicTraits desiredTraits, float size)
</span><span class="cx"> {
</span><del>- if (equalIgnoringASCIICase(family, "-webkit-system-font")
- || equalIgnoringASCIICase(family, "-apple-system")
- || equalIgnoringASCIICase(family, "-apple-system-font")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "-webkit-system-font") || equalLettersIgnoringASCIICase(family, "-apple-system") || equalLettersIgnoringASCIICase(family, "-apple-system-font")) {
</ins><span class="cx"> RetainPtr<CTFontRef> result = toCTFont([NSFont systemFontOfSize:size weight:toNSFontWeight(weight)]);
</span><span class="cx"> if (desiredTraits & 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, "-apple-system-monospaced-numbers")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "-apple-system-monospaced-numbers")) {
</ins><span class="cx"> int numberSpacingType = kNumberSpacingType;
</span><span class="cx"> int monospacedNumbersSelector = kMonospacedNumbersSelector;
</span><span class="cx"> RetainPtr<CFNumberRef> numberSpacingNumber = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &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, "-apple-menu"))
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "-apple-menu"))
</ins><span class="cx"> return toCTFont([NSFont menuFontOfSize:size]);
</span><span class="cx">
</span><del>- if (equalIgnoringASCIICase(family, "-apple-status-bar"))
</del><ins>+ if (equalLettersIgnoringASCIICase(family, "-apple-status-bar"))
</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& format)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(format, "truetype") || equalIgnoringCase(format, "opentype")
</del><ins>+ return equalLettersIgnoringASCIICase(format, "truetype")
+ || equalLettersIgnoringASCIICase(format, "opentype")
</ins><span class="cx"> #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 100000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200)
</span><del>- || equalIgnoringCase(format, "woff2")
</del><ins>+ || equalLettersIgnoringASCIICase(format, "woff2")
</ins><span class="cx"> #endif
</span><del>- || equalIgnoringCase(format, "woff");
</del><ins>+ || equalLettersIgnoringASCIICase(format, "woff");
</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"> // "url" and "text/url-list" both map to NSURLPboardType in cocoaTypeFromHTMLClipboardType(), "url" only wants the first URL
</span><del>- bool onlyFirstURL = (equalIgnoringCase(type, "url"));
</del><ins>+ bool onlyFirstURL = equalLettersIgnoringASCIICase(type, "url");
</ins><span class="cx"> Vector<String> absoluteURLs = absoluteURLsFromPasteboard(m_pasteboardName, onlyFirstURL);
</span><span class="cx"> for (size_t i = 0; i < absoluteURLs.size(); i++)
</span><span class="cx"> cocoaValue = i ? "\n" + 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<BlobResourceHandle> BlobResourceHandle::createAsync(BlobData* blobData, const ResourceRequest& 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(), "GET"))
- return 0;
</del><ins>+ if (!equalLettersIgnoringASCIICase(request.httpMethod(), "get"))
+ 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& request, ResourceError& error, ResourceResponse& response, Vector<char>& data)
</span><span class="cx"> {
</span><del>- if (!equalIgnoringCase(request.httpMethod(), "GET")) {
</del><ins>+ if (!equalLettersIgnoringASCIICase(request.httpMethod(), "get")) {
</ins><span class="cx"> error = ResourceError(webKitBlobResourceDomain, methodNotAllowed, response.url(), "Request method must be GET");
</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, "no-cache") && directives[i].second.isEmpty())
</del><ins>+ if (equalLettersIgnoringASCIICase(directives[i].first, "no-cache") && directives[i].second.isEmpty())
</ins><span class="cx"> result.noCache = true;
</span><del>- else if (equalIgnoringCase(directives[i].first, "no-store"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(directives[i].first, "no-store"))
</ins><span class="cx"> result.noStore = true;
</span><del>- else if (equalIgnoringCase(directives[i].first, "must-revalidate"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(directives[i].first, "must-revalidate"))
</ins><span class="cx"> result.mustRevalidate = true;
</span><del>- else if (equalIgnoringCase(directives[i].first, "max-age")) {
</del><ins>+ else if (equalLettersIgnoringASCIICase(directives[i].first, "max-age")) {
</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(&ok);
</span><span class="cx"> if (ok)
</span><span class="cx"> result.maxAge = duration_cast<microseconds>(duration<double>(maxAge));
</span><del>- } else if (equalIgnoringCase(directives[i].first, "max-stale")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(directives[i].first, "max-stale")) {
</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& type)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(type, "text/plain"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "text/plain"))
</ins><span class="cx"> return TextPlain;
</span><del>- if (equalIgnoringCase(type, "multipart/form-data"))
</del><ins>+ if (equalLettersIgnoringASCIICase(type, "multipart/form-data"))
</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, "inline"))
</del><ins>+ if (equalLettersIgnoringASCIICase(dispositionType, "inline"))
</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 < headers.size(); i++) {
</span><span class="cx"> String currentHeader = headers[i].stripWhiteSpace();
</span><span class="cx"> XFrameOptionsDisposition currentValue = XFrameOptionsNone;
</span><del>- if (equalIgnoringCase(currentHeader, "deny"))
</del><ins>+ if (equalLettersIgnoringASCIICase(currentHeader, "deny"))
</ins><span class="cx"> currentValue = XFrameOptionsDeny;
</span><del>- else if (equalIgnoringCase(currentHeader, "sameorigin"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(currentHeader, "sameorigin"))
</ins><span class="cx"> currentValue = XFrameOptionsSameOrigin;
</span><del>- else if (equalIgnoringCase(currentHeader, "allowall"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(currentHeader, "allowall"))
</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, "http") || equalIgnoringCase(protocol, "https");
</del><ins>+ return m_url.protocolIsInHTTPFamily();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const URL& 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, "attachment");
</del><ins>+ auto value = m_httpHeaderFields.get(HTTPHeaderName::ContentDisposition);
+ return equalLettersIgnoringASCIICase(value.left(value.find(';')).stripWhiteSpace(), "attachment");
</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->firstRequest().httpBody();
</span><del>- if (!equalIgnoringCase(m_handle->firstRequest().httpMethod(), "GET") && body && !body->isEmpty())
</del><ins>+ if (!equalLettersIgnoringASCIICase(m_handle->firstRequest().httpMethod(), "get") && body && !body->isEmpty())
</ins><span class="cx"> WebCore::setHTTPBody(mutableRequest.get(), body);
</span><span class="cx">
</span><span class="cx"> String originalContentType = m_handle->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->m_firstRequest.httpBody();
</span><del>- if (!equalIgnoringCase(lastHTTPMethod, "GET") && body && !body->isEmpty())
</del><ins>+ if (!equalLettersIgnoringASCIICase(lastHTTPMethod, "get") && body && !body->isEmpty())
</ins><span class="cx"> request.setHTTPBody(body);
</span><span class="cx">
</span><span class="cx"> String originalContentType = d->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("PRAGMA journal_mode=WAL;"));
</span><span class="cx"> int result = walStatement.step();
</span><span class="cx"> if (result != SQLITE_OK && result != SQLITE_ROW)
</span><del>- LOG_ERROR("SQLite database failed to set journal_mode to WAL, error: %s", lastErrorMsg());
</del><ins>+ LOG_ERROR("SQLite database failed to set journal_mode to WAL, error: %s", 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, "wal"))
</del><ins>+ if (!equalLettersIgnoringASCIICase(mode, "wal"))
</ins><span class="cx"> LOG_ERROR("journal_mode of database should be 'wal', but is '%s'", 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("BLOB"), String(reinterpret_cast<const UChar*>(sqlite3_column_decltype16(m_statement, col))));
</del><ins>+ return equalLettersIgnoringASCIICase(StringView(reinterpret_cast<const UChar*>(sqlite3_column_decltype16(m_statement, col))), "blob");
</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 <rdar://problem/5579292>.
</span><span class="cx"> // On some OS versions, the result is CP949 (uppercase).
</span><del>- if (equalIgnoringCase(systemEncodingName, "cp949"))
- systemEncodingName = "ks_c_5601-1987";
</del><ins>+ if (equalLettersIgnoringASCIICase(systemEncodingName, "cp949"))
+ systemEncodingName = ASCIILiteral("ks_c_5601-1987");
</ins><span class="cx"> return systemEncodingName;
</span><span class="cx"> #else
</span><del>- return String("ISO-8859-1");
</del><ins>+ return ASCIILiteral("ISO-8859-1");
</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, "thin"))
</del><ins>+ if (equalLettersIgnoringASCIICase(thickness, "thin"))
</ins><span class="cx"> m_lineThickness = gLineThin;
</span><del>- else if (equalIgnoringCase(thickness, "medium"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(thickness, "medium"))
</ins><span class="cx"> m_lineThickness = gLineMedium;
</span><del>- else if (equalIgnoringCase(thickness, "thick"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(thickness, "thick"))
</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() && iterator2 == codePoints2.end()) {
</span><del>- bool firstIsIsolated = data1.glyphElement && equalIgnoringCase(data1.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
- bool secondIsIsolated = data2.glyphElement && equalIgnoringCase(data2.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
</del><ins>+ bool firstIsIsolated = data1.glyphElement && equalLettersIgnoringASCIICase(data1.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
+ bool secondIsIsolated = data2.glyphElement && equalLettersIgnoringASCIICase(data2.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
</ins><span class="cx"> return firstIsIsolated && !secondIsIsolated;
</span><span class="cx"> }
</span><span class="cx"> return iterator1 == codePoints1.end();
</span><span class="lines">@@ -1457,7 +1457,7 @@
</span><span class="cx"> if (m_codepointsToIndicesMap.isValidKey(glyph.codepoints)) {
</span><span class="cx"> auto& glyphVector = m_codepointsToIndicesMap.add(glyph.codepoints, Vector<Glyph>()).iterator->value;
</span><span class="cx"> // Prefer isolated arabic forms
</span><del>- if (glyph.glyphElement && equalIgnoringCase(glyph.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated"))
</del><ins>+ if (glyph.glyphElement && equalLettersIgnoringASCIICase(glyph.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated"))
</ins><span class="cx"> glyphVector.insert(0, i);
</span><span class="cx"> else
</span><span class="cx"> glyphVector.append(i);
</span><span class="lines">@@ -1469,7 +1469,7 @@
</span><span class="cx"> Vector<String> segments;
</span><span class="cx"> m_fontFaceElement->fastGetAttribute(SVGNames::font_weightAttr).string().split(' ', segments);
</span><span class="cx"> for (auto& segment : segments) {
</span><del>- if (equalIgnoringCase(segment, "bold")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(segment, "bold")) {
</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->fastGetAttribute(SVGNames::font_styleAttr).string().split(' ', segments);
</span><span class="cx"> for (auto& segment : segments) {
</span><del>- if (equalIgnoringCase(segment, "italic") || equalIgnoringCase(segment, "oblique")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(segment, "italic") || equalLettersIgnoringASCIICase(segment, "oblique")) {
</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& editingBehavior, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> InternalSettingsGuardForSettings();
</span><del>- if (equalIgnoringCase(editingBehavior, "win"))
</del><ins>+ if (equalLettersIgnoringASCIICase(editingBehavior, "win"))
</ins><span class="cx"> settings()->setEditingBehaviorType(EditingWindowsBehavior);
</span><del>- else if (equalIgnoringCase(editingBehavior, "mac"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(editingBehavior, "mac"))
</ins><span class="cx"> settings()->setEditingBehaviorType(EditingMacBehavior);
</span><del>- else if (equalIgnoringCase(editingBehavior, "unix"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(editingBehavior, "unix"))
</ins><span class="cx"> settings()->setEditingBehaviorType(EditingUnixBehavior);
</span><del>- else if (equalIgnoringCase(editingBehavior, "ios"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(editingBehavior, "ios"))
</ins><span class="cx"> settings()->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()->group().captionPreferences();
</span><span class="cx">
</span><del>- if (equalIgnoringCase(kind, "Subtitles"))
</del><ins>+ if (equalLettersIgnoringASCIICase(kind, "subtitles"))
</ins><span class="cx"> captionPreferences->setUserPrefersSubtitles(enabled);
</span><del>- else if (equalIgnoringCase(kind, "Captions"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(kind, "captions"))
</ins><span class="cx"> captionPreferences->setUserPrefersCaptions(enabled);
</span><del>- else if (equalIgnoringCase(kind, "TextDescriptions"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(kind, "textdescriptions"))
</ins><span class="cx"> captionPreferences->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()->group().captionPreferences();
</span><span class="cx">
</span><del>- if (equalIgnoringCase(kind, "Subtitles"))
</del><ins>+ if (equalLettersIgnoringASCIICase(kind, "subtitles"))
</ins><span class="cx"> return captionPreferences->userPrefersSubtitles();
</span><del>- if (equalIgnoringCase(kind, "Captions"))
</del><ins>+ if (equalLettersIgnoringASCIICase(kind, "captions"))
</ins><span class="cx"> return captionPreferences->userPrefersCaptions();
</span><del>- if (equalIgnoringCase(kind, "TextDescriptions"))
</del><ins>+ if (equalLettersIgnoringASCIICase(kind, "textdescriptions"))
</ins><span class="cx"> return captionPreferences->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& markerType, DocumentMarker::MarkerType& result)
</span><span class="cx"> {
</span><del>- if (equalIgnoringCase(markerType, "Spelling"))
</del><ins>+ if (equalLettersIgnoringASCIICase(markerType, "spelling"))
</ins><span class="cx"> result = DocumentMarker::Spelling;
</span><del>- else if (equalIgnoringCase(markerType, "Grammar"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "grammar"))
</ins><span class="cx"> result = DocumentMarker::Grammar;
</span><del>- else if (equalIgnoringCase(markerType, "TextMatch"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "textmatch"))
</ins><span class="cx"> result = DocumentMarker::TextMatch;
</span><del>- else if (equalIgnoringCase(markerType, "Replacement"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "replacement"))
</ins><span class="cx"> result = DocumentMarker::Replacement;
</span><del>- else if (equalIgnoringCase(markerType, "CorrectionIndicator"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "correctionindicator"))
</ins><span class="cx"> result = DocumentMarker::CorrectionIndicator;
</span><del>- else if (equalIgnoringCase(markerType, "RejectedCorrection"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "rejectedcorrection"))
</ins><span class="cx"> result = DocumentMarker::RejectedCorrection;
</span><del>- else if (equalIgnoringCase(markerType, "Autocorrected"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "autocorrected"))
</ins><span class="cx"> result = DocumentMarker::Autocorrected;
</span><del>- else if (equalIgnoringCase(markerType, "SpellCheckingExemption"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "spellcheckingexemption"))
</ins><span class="cx"> result = DocumentMarker::SpellCheckingExemption;
</span><del>- else if (equalIgnoringCase(markerType, "DeletedAutocorrection"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "deletedautocorrection"))
</ins><span class="cx"> result = DocumentMarker::DeletedAutocorrection;
</span><del>- else if (equalIgnoringCase(markerType, "DictationAlternatives"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "dictationalternatives"))
</ins><span class="cx"> result = DocumentMarker::DictationAlternatives;
</span><span class="cx"> #if ENABLE(TELEPHONE_NUMBER_DETECTION)
</span><del>- else if (equalIgnoringCase(markerType, "TelephoneNumber"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(markerType, "telephonenumber"))
</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, "all"))
</del><ins>+ if (markerType.isEmpty() || equalLettersIgnoringASCIICase(markerType, "all"))
</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<HTMLMediaElement>(node);
</span><span class="cx">
</span><del>- if (equalIgnoringCase(characteristic, "Audible"))
</del><ins>+ if (equalLettersIgnoringASCIICase(characteristic, "audible"))
</ins><span class="cx"> return element->hasAudio();
</span><del>- if (equalIgnoringCase(characteristic, "Visual"))
</del><ins>+ if (equalLettersIgnoringASCIICase(characteristic, "visual"))
</ins><span class="cx"> return element->hasVideo();
</span><del>- if (equalIgnoringCase(characteristic, "Legible"))
</del><ins>+ if (equalLettersIgnoringASCIICase(characteristic, "legible"))
</ins><span class="cx"> return element->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->page()->group().captionPreferences();
</span><span class="cx">
</span><del>- if (equalIgnoringCase(mode, "Automatic"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mode, "automatic"))
</ins><span class="cx"> captionPreferences->setCaptionDisplayMode(CaptionUserPreferences::Automatic);
</span><del>- else if (equalIgnoringCase(mode, "ForcedOnly"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(mode, "forcedonly"))
</ins><span class="cx"> captionPreferences->setCaptionDisplayMode(CaptionUserPreferences::ForcedOnly);
</span><del>- else if (equalIgnoringCase(mode, "AlwaysOn"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(mode, "alwayson"))
</ins><span class="cx"> captionPreferences->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, "System"))
</del><ins>+ if (equalLettersIgnoringASCIICase(interruptionString, "system"))
</ins><span class="cx"> interruption = PlatformMediaSession::SystemInterruption;
</span><del>- else if (equalIgnoringCase(interruptionString, "SystemSleep"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(interruptionString, "systemsleep"))
</ins><span class="cx"> interruption = PlatformMediaSession::SystemSleep;
</span><del>- else if (equalIgnoringCase(interruptionString, "EnteringBackground"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(interruptionString, "enteringbackground"))
</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, "MayResumePlaying"))
</del><ins>+ if (equalLettersIgnoringASCIICase(flagsString, "mayresumeplaying"))
</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& mediaTypeString, const String& restrictionsString, ExceptionCode& ec)
</span><span class="cx"> {
</span><span class="cx"> PlatformMediaSession::MediaType mediaType = PlatformMediaSession::None;
</span><del>- if (equalIgnoringCase(mediaTypeString, "Video"))
</del><ins>+ if (equalLettersIgnoringASCIICase(mediaTypeString, "video"))
</ins><span class="cx"> mediaType = PlatformMediaSession::Video;
</span><del>- else if (equalIgnoringCase(mediaTypeString, "Audio"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(mediaTypeString, "audio"))
</ins><span class="cx"> mediaType = PlatformMediaSession::Audio;
</span><del>- else if (equalIgnoringCase(mediaTypeString, "WebAudio"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(mediaTypeString, "webaudio"))
</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<String> restrictionsArray;
</span><span class="cx"> restrictionsString.split(',', false, restrictionsArray);
</span><span class="cx"> for (auto& restrictionString : restrictionsArray) {
</span><del>- if (equalIgnoringCase(restrictionString, "ConcurrentPlaybackNotPermitted"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "concurrentplaybacknotpermitted"))
</ins><span class="cx"> restrictions |= PlatformMediaSessionManager::ConcurrentPlaybackNotPermitted;
</span><del>- if (equalIgnoringCase(restrictionString, "BackgroundProcessPlaybackRestricted"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "backgroundprocessplaybackrestricted"))
</ins><span class="cx"> restrictions |= PlatformMediaSessionManager::BackgroundProcessPlaybackRestricted;
</span><del>- if (equalIgnoringCase(restrictionString, "BackgroundTabPlaybackRestricted"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "backgroundtabplaybackrestricted"))
</ins><span class="cx"> restrictions |= PlatformMediaSessionManager::BackgroundTabPlaybackRestricted;
</span><del>- if (equalIgnoringCase(restrictionString, "InterruptedPlaybackNotPermitted"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "interruptedplaybacknotpermitted"))
</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<String> restrictionsArray;
</span><span class="cx"> restrictionsString.split(',', false, restrictionsArray);
</span><span class="cx"> for (auto& restrictionString : restrictionsArray) {
</span><del>- if (equalIgnoringCase(restrictionString, "NoRestrictions"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "norestrictions"))
</ins><span class="cx"> restrictions |= MediaElementSession::NoRestrictions;
</span><del>- if (equalIgnoringCase(restrictionString, "RequireUserGestureForLoad"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requireusergestureforload"))
</ins><span class="cx"> restrictions |= MediaElementSession::RequireUserGestureForLoad;
</span><del>- if (equalIgnoringCase(restrictionString, "RequireUserGestureForRateChange"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requireusergestureforratechange"))
</ins><span class="cx"> restrictions |= MediaElementSession::RequireUserGestureForRateChange;
</span><del>- if (equalIgnoringCase(restrictionString, "RequireUserGestureForFullscreen"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requireusergestureforfullscreen"))
</ins><span class="cx"> restrictions |= MediaElementSession::RequireUserGestureForFullscreen;
</span><del>- if (equalIgnoringCase(restrictionString, "RequirePageConsentToLoadMedia"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requirepageconsenttoloadmedia"))
</ins><span class="cx"> restrictions |= MediaElementSession::RequirePageConsentToLoadMedia;
</span><del>- if (equalIgnoringCase(restrictionString, "RequirePageConsentToResumeMedia"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requirepageconsenttoresumemedia"))
</ins><span class="cx"> restrictions |= MediaElementSession::RequirePageConsentToResumeMedia;
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><del>- if (equalIgnoringCase(restrictionString, "RequireUserGestureToShowPlaybackTargetPicker"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requireusergesturetoshowplaybacktargetpicker"))
</ins><span class="cx"> restrictions |= MediaElementSession::RequireUserGestureToShowPlaybackTargetPicker;
</span><del>- if (equalIgnoringCase(restrictionString, "WirelessVideoPlaybackDisabled"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "wirelessvideoplaybackdisabled"))
</ins><span class="cx"> restrictions |= MediaElementSession::WirelessVideoPlaybackDisabled;
</span><span class="cx"> #endif
</span><del>- if (equalIgnoringCase(restrictionString, "RequireUserGestureForAudioRateChange"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requireusergestureforaudioratechange"))
</ins><span class="cx"> restrictions |= MediaElementSession::RequireUserGestureForAudioRateChange;
</span><del>- if (equalIgnoringCase(restrictionString, "MetadataPreloadingNotPermitted"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "metadatapreloadingnotpermitted"))
</ins><span class="cx"> restrictions |= MediaElementSession::MetadataPreloadingNotPermitted;
</span><del>- if (equalIgnoringCase(restrictionString, "AutoPreloadingNotPermitted"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "autopreloadingnotpermitted"))
</ins><span class="cx"> restrictions |= MediaElementSession::AutoPreloadingNotPermitted;
</span><del>- if (equalIgnoringCase(restrictionString, "InvisibleAutoplayNotPermitted"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "invisibleautoplaynotpermitted"))
</ins><span class="cx"> restrictions |= MediaElementSession::InvisibleAutoplayNotPermitted;
</span><span class="cx"> }
</span><span class="cx"> element->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, "Play"))
</del><ins>+ if (equalLettersIgnoringASCIICase(commandString, "play"))
</ins><span class="cx"> command = PlatformMediaSession::PlayCommand;
</span><del>- else if (equalIgnoringCase(commandString, "Pause"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(commandString, "pause"))
</ins><span class="cx"> command = PlatformMediaSession::PauseCommand;
</span><del>- else if (equalIgnoringCase(commandString, "Stop"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(commandString, "stop"))
</ins><span class="cx"> command = PlatformMediaSession::StopCommand;
</span><del>- else if (equalIgnoringCase(commandString, "TogglePlayPause"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(commandString, "toggleplaypause"))
</ins><span class="cx"> command = PlatformMediaSession::TogglePlayPauseCommand;
</span><del>- else if (equalIgnoringCase(commandString, "BeginSeekingBackward"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(commandString, "beginseekingbackward"))
</ins><span class="cx"> command = PlatformMediaSession::BeginSeekingBackwardCommand;
</span><del>- else if (equalIgnoringCase(commandString, "EndSeekingBackward"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(commandString, "endseekingbackward"))
</ins><span class="cx"> command = PlatformMediaSession::EndSeekingBackwardCommand;
</span><del>- else if (equalIgnoringCase(commandString, "BeginSeekingForward"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(commandString, "beginseekingforward"))
</ins><span class="cx"> command = PlatformMediaSession::BeginSeekingForwardCommand;
</span><del>- else if (equalIgnoringCase(commandString, "EndSeekingForward"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(commandString, "endseekingforward"))
</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<String> restrictionsArray;
</span><span class="cx"> restrictionsString.split(',', false, restrictionsArray);
</span><span class="cx"> for (auto& restrictionString : restrictionsArray) {
</span><del>- if (equalIgnoringCase(restrictionString, "NoRestrictions"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "norestrictions"))
</ins><span class="cx"> restrictions |= AudioContext::NoRestrictions;
</span><del>- if (equalIgnoringCase(restrictionString, "RequireUserGestureForAudioStart"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requireusergestureforaudiostart"))
</ins><span class="cx"> restrictions |= AudioContext::RequireUserGestureForAudioStartRestriction;
</span><del>- if (equalIgnoringCase(restrictionString, "RequirePageConsentForAudioStart"))
</del><ins>+ if (equalLettersIgnoringASCIICase(restrictionString, "requirepageconsentforaudiostart"))
</ins><span class="cx"> restrictions |= AudioContext::RequirePageConsentForAudioStartRestriction;
</span><span class="cx"> }
</span><span class="cx"> context->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, "DeviceAvailable"))
</del><ins>+ if (equalLettersIgnoringASCIICase(deviceState, "deviceavailable"))
</ins><span class="cx"> state = MediaPlaybackTargetContext::OutputDeviceAvailable;
</span><del>- else if (equalIgnoringCase(deviceState, "DeviceUnavailable"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(deviceState, "deviceunavailable"))
</ins><span class="cx"> state = MediaPlaybackTargetContext::OutputDeviceUnavailable;
</span><del>- else if (equalIgnoringCase(deviceState, "Unknown"))
</del><ins>+ else if (equalLettersIgnoringASCIICase(deviceState, "unknown"))
</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& keySystem)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(keySystem, "com.webcore.mock");
</del><ins>+ return equalLettersIgnoringASCIICase(keySystem, "com.webcore.mock");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool MockCDM::supportsKeySystemAndMimeType(const String& keySystem, const String& 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, "video/mock");
</del><ins>+ return equalLettersIgnoringASCIICase(mimeType, "video/mock");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool MockCDM::supportsMIMEType(const String& mimeType)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(mimeType, "video/mock");
</del><ins>+ return equalLettersIgnoringASCIICase(mimeType, "video/mock");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> std::unique_ptr<CDMSession> 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& name)
</span><span class="cx"> {
</span><del>- return equalIgnoringCase(name, "set-cookie") || equalIgnoringCase(name, "set-cookie2");
</del><ins>+ return equalLettersIgnoringASCIICase(name, "set-cookie") || equalLettersIgnoringASCIICase(name, "set-cookie2");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static void replaceCharsetInMediaType(String& mediaType, const String& 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, "text/html");
</del><ins>+ bool isHTML = equalLettersIgnoringASCIICase(mimeType, "text/html");
</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 "document" 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& method)
</span><span class="cx"> {
</span><del>- return !equalIgnoringCase(method, "TRACE")
- && !equalIgnoringCase(method, "TRACK")
- && !equalIgnoringCase(method, "CONNECT");
</del><ins>+ return !equalLettersIgnoringASCIICase(method, "trace")
+ && !equalLettersIgnoringASCIICase(method, "track")
+ && !equalLettersIgnoringASCIICase(method, "connect");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String XMLHttpRequest::uppercaseKnownHTTPMethod(const String& method)
</span><span class="lines">@@ -1170,7 +1170,7 @@
</span><span class="cx"> m_decoder = TextResourceDecoder::create("application/xml");
</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->useLenientXMLDecoding();
</span><del>- } else if (equalIgnoringCase(responseMIMEType(), "text/html"))
</del><ins>+ } else if (equalLettersIgnoringASCIICase(responseMIMEType(), "text/html"))
</ins><span class="cx"> m_decoder = TextResourceDecoder::create("text/html", "UTF-8");
</span><span class="cx"> else
</span><span class="cx"> m_decoder = TextResourceDecoder::create("text/plain", "UTF-8");
</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 <darin@apple.com>
+
+ 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 ", true" in call to String::endsWith.
+ Preparation for later removing the boolean argument.
+
</ins><span class="cx"> 2016-01-14 Brady Eidson <beidson@apple.com>
</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<String>::const_iterator it = paths.begin(), end = paths.end(); it != end; ++it) {
</span><span class="cx"> const String& path = *it;
</span><span class="cx">
</span><del>- if (path.length() > fileExtension.length() && path.endsWith(fileExtension, true)) {
</del><ins>+ if (path.length() > fileExtension.length() && 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 <darin@apple.com>
+
+ 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 <bfulgham@apple.com>
</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 && frame->settings().needsSiteSpecificQuirks() && equalIgnoringCase(mimeType, "application/x-snkp")) {
</del><ins>+ if (frame && frame->settings().needsSiteSpecificQuirks() && equalLettersIgnoringASCIICase(mimeType, "application/x-snkp")) {
</ins><span class="cx"> for (NSUInteger i = 0; i < [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 <darin@apple.com>
+
+ 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 <bfulgham@apple.com>
</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("https:", false);
</del><ins>+ return WebCore::protocolIs(data.url, "https");
</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, "application/x-shockwave-flash")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(parameters.mimeType, "application/x-shockwave-flash")) {
</ins><span class="cx"> size_t wmodeIndex = parameters.names.find("wmode");
</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], "transparent")
- || (m_pluginModule->pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode) && equalIgnoringCase(parameters.values[wmodeIndex], "window")))
</del><ins>+ if (equalLettersIgnoringASCIICase(parameters.values[wmodeIndex], "transparent")
+ || (m_pluginModule->pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode) && equalLettersIgnoringASCIICase(parameters.values[wmodeIndex], "window")))
</ins><span class="cx"> paramValues[wmodeIndex] = "opaque";
</span><span class="cx"> } else if (m_pluginModule->pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode)) {
</span><span class="cx"> paramNames.append("wmode");
</span><span class="cx"> paramValues.append("opaque");
</span><span class="cx"> }
</span><del>- } else if (equalIgnoringCase(parameters.mimeType, "application/x-webkit-test-netscape")) {
</del><ins>+ } else if (equalLettersIgnoringASCIICase(parameters.mimeType, "application/x-webkit-test-netscape")) {
</ins><span class="cx"> paramNames.append("windowedPlugin");
</span><span class="cx"> paramValues.append("false");
</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->pluginQuirks().contains(PluginQuirks::MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists)) {
</span><span class="cx"> for (size_t i = 0; i < parameters.names.size(); ++i) {
</span><del>- if (equalIgnoringCase(parameters.names[i], "background")) {
</del><ins>+ if (equalLettersIgnoringASCIICase(parameters.names[i], "background")) {
</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>