<!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>[198074] trunk</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/198074">198074</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2016-03-12 16:36:59 -0800 (Sat, 12 Mar 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Delete dead SVG Font code
https://bugs.webkit.org/show_bug.cgi?id=154718
Reviewed by Antti Koivisto.
.:
* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmake/tools/vsprops/FeatureDefines.props:
* Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
Source/JavaScriptCore:
* Configurations/FeatureDefines.xcconfig:
Source/WebCore:
All the ports have adopted the SVG -> OTF Font Converter, so there will never
be an instantiation of a font backed by a DOM subtree. We can remove all the
infrastructure used to support that.
No new tests because there is no behavior change.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* WebCore.order:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::CSSFontFaceSource): Deleted.
(WebCore::CSSFontFaceSource::font): Deleted.
* css/CSSFontFaceSource.h:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedSVGFont.cpp:
(WebCore::CachedSVGFont::createFont): Deleted.
(WebCore::CachedSVGFont::ensureCustomFontData): Deleted.
* loader/cache/CachedSVGFont.h:
* platform/graphics/Font.cpp:
(WebCore::Font::Font):
(WebCore::fillGlyphPage):
(WebCore::Font::description): Deleted.
(WebCore::Font::createScaledFont): Deleted.
(WebCore::Font::applyTransforms): Deleted.
* platform/graphics/Font.h:
(WebCore::Font::widthForGlyph):
(WebCore::Font::SVGData::~SVGData): Deleted.
(WebCore::Font::create): Deleted.
(WebCore::Font::svgData): Deleted.
(WebCore::Font::isSVGFont): Deleted.
* platform/graphics/win/FontWin.cpp:
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::drawText):
(WebCore::FontCascade::drawEmphasisMarks):
(WebCore::FontCascade::glyphDataForCharacter):
(WebCore::FontCascade::adjustSelectionRectForText):
(WebCore::FontCascade::offsetForPosition):
(WebCore::FontCascade::drawEmphasisMarksForSimpleText):
(WebCore::FontCascade::drawGlyphBuffer):
(WebCore::isDrawnWithSVGFont): Deleted.
(WebCore::FontCascade::width): Deleted.
(WebCore::FontCascade::codePath): Deleted.
* platform/graphics/FontCascade.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/SVGGlyph.cpp: Removed.
(WebCore::processArabicFormDetection): Deleted.
(WebCore::charactersWithArabicForm): Deleted.
(WebCore::isCompatibleArabicForm): Deleted.
(WebCore::isCompatibleGlyph): Deleted.
* platform/graphics/SVGGlyph.h: Removed.
(WebCore::SVGGlyph::SVGGlyph): Deleted.
(WebCore::SVGGlyph::inheritedValue): Deleted.
(WebCore::SVGGlyph::operator==): Deleted.
* platform/graphics/TextRun.cpp:
* platform/graphics/TextRun.h:
(WebCore::TextRun::RenderingContext::~RenderingContext): Deleted.
(WebCore::TextRun::renderingContext): Deleted.
(WebCore::TextRun::setRenderingContext): Deleted.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::glyphDataForCharacter): Deleted.
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::lastGlyphName): Deleted.
(WebCore::WidthIterator::setLastGlyphName): Deleted.
(WebCore::WidthIterator::arabicForms): Deleted.
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::CairoGlyphToPathTranslator::advance):
(WebCore::FontCascade::dashesForIntersectionsWithRect):
(WebCore::CairoGlyphToPathTranslator::moveToNextValidGlyph): Deleted.
* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::MacGlyphToPathTranslator::advance):
(WebCore::FontCascade::dashesForIntersectionsWithRect):
(WebCore::FontCascade::primaryFontIsSystemFont):
(WebCore::FontCascade::drawEmphasisMarksForComplexText):
(WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph): Deleted.
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Deleted.
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::TextLayout::isNeeded):
(WebCore::TextLayout::TextLayout):
(WebCore::TextLayout::constructTextRun):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
(WebCore::EllipsisBox::selectionRect):
(WebCore::EllipsisBox::paintSelection):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):
(WebCore::InlineTextBox::constructTextRun):
* rendering/InlineTextBox.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::stripTrailingSpace):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::checkLinesForTextOverflow):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
(WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::setImageSizeForAltText):
(WebCore::RenderImage::paintReplaced):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::getRelativeMarkerRect):
* rendering/RenderMenuList.cpp:
(RenderMenuList::updateOptionsWidth):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::hyphenWidth):
(WebCore::maxWordFragmentWidth):
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::width):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::getAverageCharWidth):
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeMeasureTextClient::RenderThemeMeasureTextClient):
(WebCore::adjustInputElementButtonStyle):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForFontAndText): Deleted.
* rendering/line/BreakingContext.h:
(WebCore::WordTrailingSpace::WordTrailingSpace):
(WebCore::WordTrailingSpace::width):
(WebCore::measureHyphenWidth):
(WebCore::textWidth):
(WebCore::tryHyphenating):
(WebCore::BreakingContext::handleText):
* rendering/svg/RenderSVGAllInOne.cpp:
* rendering/svg/RenderSVGText.cpp:
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):
(WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting):
(WebCore::SVGInlineTextBox::paintTextWithShadows):
(WebCore::SVGInlineTextBox::constructTextRun): Deleted.
* rendering/svg/SVGInlineTextBox.h:
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
* rendering/svg/SVGTextLayoutEngineSpacing.cpp:
(WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning): Deleted.
* rendering/svg/SVGTextLayoutEngineSpacing.h:
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::SVGTextMetrics):
(WebCore::SVGTextMetrics::constructTextRun): Deleted.
* rendering/svg/SVGTextMetrics.h:
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::advanceSimpleText):
* rendering/svg/SVGTextRunRenderingContext.cpp: Removed.
(WebCore::svgFontAndFontFaceElementForFontData): Deleted.
(WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Deleted.
(WebCore::SVGTextRunRenderingContext::applySVGKerning): Deleted.
(WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator): Deleted.
(WebCore::SVGGlyphToPathTranslator::transform): Deleted.
(WebCore::SVGGlyphToPathTranslator::path): Deleted.
(WebCore::SVGGlyphToPathTranslator::extents): Deleted.
(WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph): Deleted.
(WebCore::SVGGlyphToPathTranslator::advance): Deleted.
(WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator): Deleted.
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Deleted.
(WebCore::missingGlyphForFont): Deleted.
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Deleted.
* rendering/svg/SVGTextRunRenderingContext.h: Removed.
* svg/SVGAllInOne.cpp:
* svg/SVGFontData.cpp: Removed.
(WebCore::SVGFontData::SVGFontData): Deleted.
(WebCore::SVGFontData::initializeFont): Deleted.
(WebCore::SVGFontData::widthForSVGGlyph): Deleted.
(WebCore::SVGFontData::applySVGGlyphSelection): Deleted.
(WebCore::SVGFontData::fillSVGGlyphPage): Deleted.
(WebCore::SVGFontData::fillBMPGlyphs): Deleted.
(WebCore::SVGFontData::fillNonBMPGlyphs): Deleted.
(WebCore::computeNormalizedSpaces): Deleted.
(WebCore::createStringWithMirroredCharacters): Deleted.
* svg/SVGFontData.h: Removed.
(WebCore::SVGFontData::~SVGFontData): Deleted.
(WebCore::SVGFontData::svgFontFaceElement): Deleted.
(WebCore::SVGFontData::horizontalOriginX): Deleted.
(WebCore::SVGFontData::horizontalOriginY): Deleted.
(WebCore::SVGFontData::horizontalAdvanceX): Deleted.
(WebCore::SVGFontData::verticalOriginX): Deleted.
(WebCore::SVGFontData::verticalOriginY): Deleted.
(WebCore::SVGFontData::verticalAdvanceY): Deleted.
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::SVGFontElement): Deleted.
(WebCore::SVGFontElement::invalidateGlyphCache): Deleted.
(WebCore::SVGFontElement::firstMissingGlyphElement): Deleted.
(WebCore::SVGFontElement::registerLigaturesInGlyphCache): Deleted.
(WebCore::SVGFontElement::ensureGlyphCache): Deleted.
(WebCore::SVGKerningMap::clear): Deleted.
(WebCore::SVGKerningMap::insert): Deleted.
(WebCore::stringMatchesUnicodeRange): Deleted.
(WebCore::stringMatchesGlyphName): Deleted.
(WebCore::stringMatchesUnicodeName): Deleted.
(WebCore::matches): Deleted.
(WebCore::kerningForPairOfStringsAndGlyphs): Deleted.
(WebCore::SVGFontElement::horizontalKerningForPairOfStringsAndGlyphs): Deleted.
(WebCore::SVGFontElement::verticalKerningForPairOfStringsAndGlyphs): Deleted.
(WebCore::SVGFontElement::collectGlyphsForString): Deleted.
(WebCore::SVGFontElement::collectGlyphsForGlyphName): Deleted.
(WebCore::SVGFontElement::svgGlyphForGlyph): Deleted.
(WebCore::SVGFontElement::missingGlyph): Deleted.
* svg/SVGFontElement.h:
(WebCore::SVGKerning::SVGKerning): Deleted.
(WebCore::SVGKerningMap::isEmpty): Deleted.
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::invalidateGlyphCache): Deleted.
(WebCore::SVGGlyphElement::parseAttribute): Deleted.
(WebCore::SVGGlyphElement::insertedInto): Deleted.
(WebCore::SVGGlyphElement::removedFrom): Deleted.
(WebCore::parseArabicForm): Deleted.
(WebCore::parseOrientation): Deleted.
(WebCore::SVGGlyphElement::inheritUnspecifiedAttributes): Deleted.
(WebCore::parseSVGGlyphAttribute): Deleted.
(WebCore::SVGGlyphElement::buildGenericGlyphIdentifier): Deleted.
(WebCore::SVGGlyphElement::buildGlyphIdentifier): Deleted.
* svg/SVGGlyphElement.h:
* svg/SVGGlyphMap.h: Removed.
(WebCore::GlyphMapNode::GlyphMapNode): Deleted.
(WebCore::GlyphMapNode::create): Deleted.
(WebCore::SVGGlyphMap::SVGGlyphMap): Deleted.
(WebCore::SVGGlyphMap::addGlyph): Deleted.
(WebCore::SVGGlyphMap::appendToGlyphTable): Deleted.
(WebCore::SVGGlyphMap::compareGlyphPriority): Deleted.
(WebCore::SVGGlyphMap::collectGlyphsForString): Deleted.
(WebCore::SVGGlyphMap::clear): Deleted.
(WebCore::SVGGlyphMap::svgGlyphForGlyph): Deleted.
(WebCore::SVGGlyphMap::glyphIdentifierForGlyphName): Deleted.
* svg/SVGHKernElement.cpp:
(WebCore::SVGHKernElement::insertedInto): Deleted.
(WebCore::SVGHKernElement::removedFrom): Deleted.
* svg/SVGHKernElement.h:
* svg/SVGToOTFFontConversion.cpp:
* svg/SVGToOTFFontConversion.h:
* svg/SVGVKernElement.cpp:
(WebCore::SVGVKernElement::insertedInto): Deleted.
(WebCore::SVGVKernElement::removedFrom): Deleted.
* svg/SVGVKernElement.h:
Source/WebKit/mac:
* Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
* Configurations/FeatureDefines.xcconfig:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkChangeLog">trunk/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreConfigurationsFeatureDefinesxcconfig">trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreConfigurationsFeatureDefinesxcconfig">trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkSourceWebCoreWebCoreorder">trunk/Source/WebCore/WebCore.order</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceSourcecpp">trunk/Source/WebCore/css/CSSFontFaceSource.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceSourceh">trunk/Source/WebCore/css/CSSFontFaceSource.h</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedFontcpp">trunk/Source/WebCore/loader/cache/CachedFont.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedSVGFontcpp">trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedSVGFonth">trunk/Source/WebCore/loader/cache/CachedSVGFont.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontcpp">trunk/Source/WebCore/platform/graphics/Font.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFonth">trunk/Source/WebCore/platform/graphics/Font.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCascadecpp">trunk/Source/WebCore/platform/graphics/FontCascade.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCascadeh">trunk/Source/WebCore/platform/graphics/FontCascade.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContexth">trunk/Source/WebCore/platform/graphics/GraphicsContext.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsTextRuncpp">trunk/Source/WebCore/platform/graphics/TextRun.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsTextRunh">trunk/Source/WebCore/platform/graphics/TextRun.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsWidthIteratorcpp">trunk/Source/WebCore/platform/graphics/WidthIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsWidthIteratorh">trunk/Source/WebCore/platform/graphics/WidthIterator.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscairoFontCairocpp">trunk/Source/WebCore/platform/graphics/cairo/FontCairo.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaFontCascadeCocoamm">trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsharfbuzzHarfBuzzShapercpp">trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp">trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinFontWincpp">trunk/Source/WebCore/platform/graphics/win/FontWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingEllipsisBoxcpp">trunk/Source/WebCore/rendering/EllipsisBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineTextBoxcpp">trunk/Source/WebCore/rendering/InlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineTextBoxh">trunk/Source/WebCore/rendering/InlineTextBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockh">trunk/Source/WebCore/rendering/RenderBlock.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowcpp">trunk/Source/WebCore/rendering/RenderBlockFlow.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockLineLayoutcpp">trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderDeprecatedFlexibleBoxcpp">trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFileUploadControlcpp">trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderImagecpp">trunk/Source/WebCore/rendering/RenderImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxcpp">trunk/Source/WebCore/rendering/RenderListBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListMarkercpp">trunk/Source/WebCore/rendering/RenderListMarker.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextcpp">trunk/Source/WebCore/rendering/RenderText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlcpp">trunk/Source/WebCore/rendering/RenderTextControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingSimpleLineLayoutcpp">trunk/Source/WebCore/rendering/SimpleLineLayout.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderinglineBreakingContexth">trunk/Source/WebCore/rendering/line/BreakingContext.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGAllInOnecpp">trunk/Source/WebCore/rendering/svg/RenderSVGAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGTextcpp">trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp">trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGInlineTextBoxh">trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextLayoutEnginecpp">trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextLayoutEngineSpacingcpp">trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextLayoutEngineSpacingh">trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextMetricscpp">trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextMetricsh">trunk/Source/WebCore/rendering/svg/SVGTextMetrics.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextMetricsBuildercpp">trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAllInOnecpp">trunk/Source/WebCore/svg/SVGAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontElementcpp">trunk/Source/WebCore/svg/SVGFontElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontElementh">trunk/Source/WebCore/svg/SVGFontElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGGlyphElementcpp">trunk/Source/WebCore/svg/SVGGlyphElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGGlyphElementh">trunk/Source/WebCore/svg/SVGGlyphElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGHKernElementcpp">trunk/Source/WebCore/svg/SVGHKernElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGHKernElementh">trunk/Source/WebCore/svg/SVGHKernElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGToOTFFontConversioncpp">trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGToOTFFontConversionh">trunk/Source/WebCore/svg/SVGToOTFFontConversion.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGVKernElementcpp">trunk/Source/WebCore/svg/SVGVKernElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGVKernElementh">trunk/Source/WebCore/svg/SVGVKernElement.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacConfigurationsFeatureDefinesxcconfig">trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2ConfigurationsFeatureDefinesxcconfig">trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkSourcecmakeOptionsEflcmake">trunk/Source/cmake/OptionsEfl.cmake</a></li>
<li><a href="#trunkSourcecmakeOptionsWincmake">trunk/Source/cmake/OptionsWin.cmake</a></li>
<li><a href="#trunkSourcecmakeWebKitFeaturescmake">trunk/Source/cmake/WebKitFeatures.cmake</a></li>
<li><a href="#trunkSourcecmaketoolsvspropsFeatureDefinesprops">trunk/Source/cmake/tools/vsprops/FeatureDefines.props</a></li>
<li><a href="#trunkSourcecmaketoolsvspropsFeatureDefinesCairoprops">trunk/Source/cmake/tools/vsprops/FeatureDefinesCairo.props</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformgraphicsSVGGlyphcpp">trunk/Source/WebCore/platform/graphics/SVGGlyph.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsSVGGlyphh">trunk/Source/WebCore/platform/graphics/SVGGlyph.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextRunRenderingContextcpp">trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextRunRenderingContexth">trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontDatacpp">trunk/Source/WebCore/svg/SVGFontData.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontDatah">trunk/Source/WebCore/svg/SVGFontData.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGGlyphMaph">trunk/Source/WebCore/svg/SVGGlyphMap.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/ChangeLog (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/ChangeLog        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/ChangeLog        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-03-12 Myles C. Maxfield <mmaxfield@apple.com>
+
+ Delete dead SVG Font code
+ https://bugs.webkit.org/show_bug.cgi?id=154718
+
+ Reviewed by Antti Koivisto.
+
+ * Source/cmake/OptionsEfl.cmake:
+ * Source/cmake/OptionsWin.cmake:
+ * Source/cmake/WebKitFeatures.cmake:
+ * Source/cmake/tools/vsprops/FeatureDefines.props:
+ * Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
+
</ins><span class="cx"> 2016-03-12 Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span class="cx">
</span><span class="cx"> [GTK][Mac] Don't force ENABLE_INTROSPECTION=OFF on Mac
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2016-03-12 Myles C. Maxfield <mmaxfield@apple.com>
+
+ Delete dead SVG Font code
+ https://bugs.webkit.org/show_bug.cgi?id=154718
+
+ Reviewed by Antti Koivisto.
+
+ * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2016-03-11 Benjamin Poulain <bpoulain@apple.com>
</span><span class="cx">
</span><span class="cx"> [JSC] Remove a few jumps from DFG
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -151,7 +151,6 @@
</span><span class="cx"> ENABLE_STREAMS_API = ENABLE_STREAMS_API;
</span><span class="cx"> ENABLE_SUBTLE_CRYPTO = ENABLE_SUBTLE_CRYPTO;
</span><span class="cx"> ENABLE_SVG_FONTS = ENABLE_SVG_FONTS;
</span><del>-ENABLE_SVG_OTF_CONVERTER = ENABLE_SVG_OTF_CONVERTER;
</del><span class="cx">
</span><span class="cx"> ENABLE_TELEPHONE_NUMBER_DETECTION = ENABLE_TELEPHONE_NUMBER_DETECTION;
</span><span class="cx">
</span><span class="lines">@@ -197,4 +196,4 @@
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP;
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ;
</span><span class="cx">
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(E
NABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE
_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK)
$(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(EN
ABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_
EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(EN
ABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -2234,7 +2234,6 @@
</span><span class="cx"> platform/graphics/PlatformTimeRanges.cpp
</span><span class="cx"> platform/graphics/Region.cpp
</span><span class="cx"> platform/graphics/RoundedRect.cpp
</span><del>- platform/graphics/SVGGlyph.cpp
</del><span class="cx"> platform/graphics/ShadowBlur.cpp
</span><span class="cx"> platform/graphics/StringTruncator.cpp
</span><span class="cx"> platform/graphics/SurrogatePairAwareTextIterator.cpp
</span><span class="lines">@@ -2619,7 +2618,6 @@
</span><span class="cx"> rendering/svg/SVGTextMetrics.cpp
</span><span class="cx"> rendering/svg/SVGTextMetricsBuilder.cpp
</span><span class="cx"> rendering/svg/SVGTextQuery.cpp
</span><del>- rendering/svg/SVGTextRunRenderingContext.cpp
</del><span class="cx">
</span><span class="cx"> replay/UserInputBridge.cpp
</span><span class="cx">
</span><span class="lines">@@ -2713,7 +2711,6 @@
</span><span class="cx"> svg/SVGFilterElement.cpp
</span><span class="cx"> svg/SVGFilterPrimitiveStandardAttributes.cpp
</span><span class="cx"> svg/SVGFitToViewBox.cpp
</span><del>- svg/SVGFontData.cpp
</del><span class="cx"> svg/SVGFontElement.cpp
</span><span class="cx"> svg/SVGFontFaceElement.cpp
</span><span class="cx"> svg/SVGFontFaceFormatElement.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/ChangeLog        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,5 +1,264 @@
</span><span class="cx"> 2016-03-12 Myles C. Maxfield <mmaxfield@apple.com>
</span><span class="cx">
</span><ins>+ Delete dead SVG Font code
+ https://bugs.webkit.org/show_bug.cgi?id=154718
+
+ Reviewed by Antti Koivisto.
+
+ All the ports have adopted the SVG -> OTF Font Converter, so there will never
+ be an instantiation of a font backed by a DOM subtree. We can remove all the
+ infrastructure used to support that.
+
+ No new tests because there is no behavior change.
+
+ * CMakeLists.txt:
+ * Configurations/FeatureDefines.xcconfig:
+ * WebCore.order:
+ * WebCore.xcodeproj/project.pbxproj:
+ * css/CSSFontFaceSource.cpp:
+ (WebCore::CSSFontFaceSource::CSSFontFaceSource): Deleted.
+ (WebCore::CSSFontFaceSource::font): Deleted.
+ * css/CSSFontFaceSource.h:
+ * loader/cache/CachedFont.cpp:
+ * loader/cache/CachedSVGFont.cpp:
+ (WebCore::CachedSVGFont::createFont): Deleted.
+ (WebCore::CachedSVGFont::ensureCustomFontData): Deleted.
+ * loader/cache/CachedSVGFont.h:
+ * platform/graphics/Font.cpp:
+ (WebCore::Font::Font):
+ (WebCore::fillGlyphPage):
+ (WebCore::Font::description): Deleted.
+ (WebCore::Font::createScaledFont): Deleted.
+ (WebCore::Font::applyTransforms): Deleted.
+ * platform/graphics/Font.h:
+ (WebCore::Font::widthForGlyph):
+ (WebCore::Font::SVGData::~SVGData): Deleted.
+ (WebCore::Font::create): Deleted.
+ (WebCore::Font::svgData): Deleted.
+ (WebCore::Font::isSVGFont): Deleted.
+ * platform/graphics/win/FontWin.cpp:
+ * platform/graphics/FontCascade.cpp:
+ (WebCore::FontCascade::drawText):
+ (WebCore::FontCascade::drawEmphasisMarks):
+ (WebCore::FontCascade::glyphDataForCharacter):
+ (WebCore::FontCascade::adjustSelectionRectForText):
+ (WebCore::FontCascade::offsetForPosition):
+ (WebCore::FontCascade::drawEmphasisMarksForSimpleText):
+ (WebCore::FontCascade::drawGlyphBuffer):
+ (WebCore::isDrawnWithSVGFont): Deleted.
+ (WebCore::FontCascade::width): Deleted.
+ (WebCore::FontCascade::codePath): Deleted.
+ * platform/graphics/FontCascade.h:
+ * platform/graphics/GraphicsContext.h:
+ * platform/graphics/SVGGlyph.cpp: Removed.
+ (WebCore::processArabicFormDetection): Deleted.
+ (WebCore::charactersWithArabicForm): Deleted.
+ (WebCore::isCompatibleArabicForm): Deleted.
+ (WebCore::isCompatibleGlyph): Deleted.
+ * platform/graphics/SVGGlyph.h: Removed.
+ (WebCore::SVGGlyph::SVGGlyph): Deleted.
+ (WebCore::SVGGlyph::inheritedValue): Deleted.
+ (WebCore::SVGGlyph::operator==): Deleted.
+ * platform/graphics/TextRun.cpp:
+ * platform/graphics/TextRun.h:
+ (WebCore::TextRun::RenderingContext::~RenderingContext): Deleted.
+ (WebCore::TextRun::renderingContext): Deleted.
+ (WebCore::TextRun::setRenderingContext): Deleted.
+ * platform/graphics/WidthIterator.cpp:
+ (WebCore::WidthIterator::applyFontTransforms):
+ (WebCore::WidthIterator::advanceInternal):
+ (WebCore::WidthIterator::glyphDataForCharacter): Deleted.
+ * platform/graphics/WidthIterator.h:
+ (WebCore::WidthIterator::lastGlyphName): Deleted.
+ (WebCore::WidthIterator::setLastGlyphName): Deleted.
+ (WebCore::WidthIterator::arabicForms): Deleted.
+ * platform/graphics/cairo/FontCairo.cpp:
+ (WebCore::CairoGlyphToPathTranslator::advance):
+ (WebCore::FontCascade::dashesForIntersectionsWithRect):
+ (WebCore::CairoGlyphToPathTranslator::moveToNextValidGlyph): Deleted.
+ * platform/graphics/cocoa/FontCascadeCocoa.mm:
+ (WebCore::MacGlyphToPathTranslator::advance):
+ (WebCore::FontCascade::dashesForIntersectionsWithRect):
+ (WebCore::FontCascade::primaryFontIsSystemFont):
+ (WebCore::FontCascade::drawEmphasisMarksForComplexText):
+ (WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph): Deleted.
+ * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
+ (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Deleted.
+ * platform/graphics/mac/ComplexTextController.cpp:
+ (WebCore::TextLayout::isNeeded):
+ (WebCore::TextLayout::TextLayout):
+ (WebCore::TextLayout::constructTextRun):
+ * rendering/EllipsisBox.cpp:
+ (WebCore::EllipsisBox::paint):
+ (WebCore::EllipsisBox::selectionRect):
+ (WebCore::EllipsisBox::paintSelection):
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::localSelectionRect):
+ (WebCore::InlineTextBox::paint):
+ (WebCore::InlineTextBox::paintSelection):
+ (WebCore::InlineTextBox::paintCompositionBackground):
+ (WebCore::InlineTextBox::paintDocumentMarker):
+ (WebCore::InlineTextBox::paintTextMatchMarker):
+ (WebCore::InlineTextBox::offsetForPosition):
+ (WebCore::InlineTextBox::positionForOffset):
+ (WebCore::InlineTextBox::constructTextRun):
+ * rendering/InlineTextBox.h:
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::constructTextRun):
+ * rendering/RenderBlock.h:
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::stripTrailingSpace):
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlockFlow::checkLinesForTextOverflow):
+ * rendering/RenderDeprecatedFlexibleBox.cpp:
+ (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
+ * rendering/RenderFileUploadControl.cpp:
+ (WebCore::RenderFileUploadControl::paintObject):
+ (WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
+ * rendering/RenderImage.cpp:
+ (WebCore::RenderImage::setImageSizeForAltText):
+ (WebCore::RenderImage::paintReplaced):
+ * rendering/RenderListBox.cpp:
+ (WebCore::RenderListBox::updateFromElement):
+ * rendering/RenderListMarker.cpp:
+ (WebCore::RenderListMarker::paint):
+ (WebCore::RenderListMarker::computePreferredLogicalWidths):
+ (WebCore::RenderListMarker::getRelativeMarkerRect):
+ * rendering/RenderMenuList.cpp:
+ (RenderMenuList::updateOptionsWidth):
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::widthFromCache):
+ (WebCore::RenderText::trimmedPrefWidths):
+ (WebCore::hyphenWidth):
+ (WebCore::maxWordFragmentWidth):
+ (WebCore::RenderText::computePreferredLogicalWidths):
+ (WebCore::RenderText::width):
+ * rendering/RenderTextControl.cpp:
+ (WebCore::RenderTextControl::getAverageCharWidth):
+ * rendering/RenderThemeIOS.mm:
+ (WebCore::RenderThemeMeasureTextClient::RenderThemeMeasureTextClient):
+ (WebCore::adjustInputElementButtonStyle):
+ * rendering/SimpleLineLayout.cpp:
+ (WebCore::SimpleLineLayout::canUseForFontAndText): Deleted.
+ * rendering/line/BreakingContext.h:
+ (WebCore::WordTrailingSpace::WordTrailingSpace):
+ (WebCore::WordTrailingSpace::width):
+ (WebCore::measureHyphenWidth):
+ (WebCore::textWidth):
+ (WebCore::tryHyphenating):
+ (WebCore::BreakingContext::handleText):
+ * rendering/svg/RenderSVGAllInOne.cpp:
+ * rendering/svg/RenderSVGText.cpp:
+ * rendering/svg/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):
+ (WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting):
+ (WebCore::SVGInlineTextBox::paintTextWithShadows):
+ (WebCore::SVGInlineTextBox::constructTextRun): Deleted.
+ * rendering/svg/SVGInlineTextBox.h:
+ * rendering/svg/SVGTextLayoutEngine.cpp:
+ (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
+ * rendering/svg/SVGTextLayoutEngineSpacing.cpp:
+ (WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning): Deleted.
+ * rendering/svg/SVGTextLayoutEngineSpacing.h:
+ * rendering/svg/SVGTextMetrics.cpp:
+ (WebCore::SVGTextMetrics::SVGTextMetrics):
+ (WebCore::SVGTextMetrics::constructTextRun): Deleted.
+ * rendering/svg/SVGTextMetrics.h:
+ * rendering/svg/SVGTextMetricsBuilder.cpp:
+ (WebCore::SVGTextMetricsBuilder::advanceSimpleText):
+ * rendering/svg/SVGTextRunRenderingContext.cpp: Removed.
+ (WebCore::svgFontAndFontFaceElementForFontData): Deleted.
+ (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Deleted.
+ (WebCore::SVGTextRunRenderingContext::applySVGKerning): Deleted.
+ (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator): Deleted.
+ (WebCore::SVGGlyphToPathTranslator::transform): Deleted.
+ (WebCore::SVGGlyphToPathTranslator::path): Deleted.
+ (WebCore::SVGGlyphToPathTranslator::extents): Deleted.
+ (WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph): Deleted.
+ (WebCore::SVGGlyphToPathTranslator::advance): Deleted.
+ (WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator): Deleted.
+ (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Deleted.
+ (WebCore::missingGlyphForFont): Deleted.
+ (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Deleted.
+ * rendering/svg/SVGTextRunRenderingContext.h: Removed.
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGFontData.cpp: Removed.
+ (WebCore::SVGFontData::SVGFontData): Deleted.
+ (WebCore::SVGFontData::initializeFont): Deleted.
+ (WebCore::SVGFontData::widthForSVGGlyph): Deleted.
+ (WebCore::SVGFontData::applySVGGlyphSelection): Deleted.
+ (WebCore::SVGFontData::fillSVGGlyphPage): Deleted.
+ (WebCore::SVGFontData::fillBMPGlyphs): Deleted.
+ (WebCore::SVGFontData::fillNonBMPGlyphs): Deleted.
+ (WebCore::computeNormalizedSpaces): Deleted.
+ (WebCore::createStringWithMirroredCharacters): Deleted.
+ * svg/SVGFontData.h: Removed.
+ (WebCore::SVGFontData::~SVGFontData): Deleted.
+ (WebCore::SVGFontData::svgFontFaceElement): Deleted.
+ (WebCore::SVGFontData::horizontalOriginX): Deleted.
+ (WebCore::SVGFontData::horizontalOriginY): Deleted.
+ (WebCore::SVGFontData::horizontalAdvanceX): Deleted.
+ (WebCore::SVGFontData::verticalOriginX): Deleted.
+ (WebCore::SVGFontData::verticalOriginY): Deleted.
+ (WebCore::SVGFontData::verticalAdvanceY): Deleted.
+ * svg/SVGFontElement.cpp:
+ (WebCore::SVGFontElement::SVGFontElement): Deleted.
+ (WebCore::SVGFontElement::invalidateGlyphCache): Deleted.
+ (WebCore::SVGFontElement::firstMissingGlyphElement): Deleted.
+ (WebCore::SVGFontElement::registerLigaturesInGlyphCache): Deleted.
+ (WebCore::SVGFontElement::ensureGlyphCache): Deleted.
+ (WebCore::SVGKerningMap::clear): Deleted.
+ (WebCore::SVGKerningMap::insert): Deleted.
+ (WebCore::stringMatchesUnicodeRange): Deleted.
+ (WebCore::stringMatchesGlyphName): Deleted.
+ (WebCore::stringMatchesUnicodeName): Deleted.
+ (WebCore::matches): Deleted.
+ (WebCore::kerningForPairOfStringsAndGlyphs): Deleted.
+ (WebCore::SVGFontElement::horizontalKerningForPairOfStringsAndGlyphs): Deleted.
+ (WebCore::SVGFontElement::verticalKerningForPairOfStringsAndGlyphs): Deleted.
+ (WebCore::SVGFontElement::collectGlyphsForString): Deleted.
+ (WebCore::SVGFontElement::collectGlyphsForGlyphName): Deleted.
+ (WebCore::SVGFontElement::svgGlyphForGlyph): Deleted.
+ (WebCore::SVGFontElement::missingGlyph): Deleted.
+ * svg/SVGFontElement.h:
+ (WebCore::SVGKerning::SVGKerning): Deleted.
+ (WebCore::SVGKerningMap::isEmpty): Deleted.
+ * svg/SVGGlyphElement.cpp:
+ (WebCore::SVGGlyphElement::invalidateGlyphCache): Deleted.
+ (WebCore::SVGGlyphElement::parseAttribute): Deleted.
+ (WebCore::SVGGlyphElement::insertedInto): Deleted.
+ (WebCore::SVGGlyphElement::removedFrom): Deleted.
+ (WebCore::parseArabicForm): Deleted.
+ (WebCore::parseOrientation): Deleted.
+ (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes): Deleted.
+ (WebCore::parseSVGGlyphAttribute): Deleted.
+ (WebCore::SVGGlyphElement::buildGenericGlyphIdentifier): Deleted.
+ (WebCore::SVGGlyphElement::buildGlyphIdentifier): Deleted.
+ * svg/SVGGlyphElement.h:
+ * svg/SVGGlyphMap.h: Removed.
+ (WebCore::GlyphMapNode::GlyphMapNode): Deleted.
+ (WebCore::GlyphMapNode::create): Deleted.
+ (WebCore::SVGGlyphMap::SVGGlyphMap): Deleted.
+ (WebCore::SVGGlyphMap::addGlyph): Deleted.
+ (WebCore::SVGGlyphMap::appendToGlyphTable): Deleted.
+ (WebCore::SVGGlyphMap::compareGlyphPriority): Deleted.
+ (WebCore::SVGGlyphMap::collectGlyphsForString): Deleted.
+ (WebCore::SVGGlyphMap::clear): Deleted.
+ (WebCore::SVGGlyphMap::svgGlyphForGlyph): Deleted.
+ (WebCore::SVGGlyphMap::glyphIdentifierForGlyphName): Deleted.
+ * svg/SVGHKernElement.cpp:
+ (WebCore::SVGHKernElement::insertedInto): Deleted.
+ (WebCore::SVGHKernElement::removedFrom): Deleted.
+ * svg/SVGHKernElement.h:
+ * svg/SVGToOTFFontConversion.cpp:
+ * svg/SVGToOTFFontConversion.h:
+ * svg/SVGVKernElement.cpp:
+ (WebCore::SVGVKernElement::insertedInto): Deleted.
+ (WebCore::SVGVKernElement::removedFrom): Deleted.
+ * svg/SVGVKernElement.h:
+
+2016-03-12 Myles C. Maxfield <mmaxfield@apple.com>
+
</ins><span class="cx"> [OS X] Scrollbars of overflow:scroll divs should appear on the left on RTL systems
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=155385
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -151,7 +151,6 @@
</span><span class="cx"> ENABLE_STREAMS_API = ENABLE_STREAMS_API;
</span><span class="cx"> ENABLE_SUBTLE_CRYPTO = ENABLE_SUBTLE_CRYPTO;
</span><span class="cx"> ENABLE_SVG_FONTS = ENABLE_SVG_FONTS;
</span><del>-ENABLE_SVG_OTF_CONVERTER = ENABLE_SVG_OTF_CONVERTER;
</del><span class="cx">
</span><span class="cx"> ENABLE_TELEPHONE_NUMBER_DETECTION = ENABLE_TELEPHONE_NUMBER_DETECTION;
</span><span class="cx">
</span><span class="lines">@@ -197,4 +196,4 @@
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP;
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ;
</span><span class="cx">
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(E
NABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE
_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK)
$(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(EN
ABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_
EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(EN
ABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</ins></span></pre></div>
<a id="trunkSourceWebCoreWebCoreorder"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.order (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.order        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/WebCore.order        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -18220,7 +18220,6 @@
</span><span class="cx"> __ZN7WebCore9DOMWindow18canShowModalDialogEPKNS_5FrameE
</span><span class="cx"> __ZNK7WebCore6Chrome11canRunModalEv
</span><span class="cx"> __ZN7WebCore31jsXMLHttpRequestWithCredentialsEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
</span><del>-__ZN7WebCore10CachedFont17ensureSVGFontDataEv
</del><span class="cx"> __ZN7WebCore8Document16setXMLStandaloneEbRi
</span><span class="cx"> __ZN7WebCoreL19metadataConstructorERKNS_13QualifiedNameEPNS_8DocumentEb
</span><span class="cx"> __ZN7WebCore18SVGMetadataElement6createERKNS_13QualifiedNameEPNS_8DocumentE
</span><span class="lines">@@ -18262,7 +18261,6 @@
</span><span class="cx"> __ZN7WebCore10JSLocation19getOwnPropertyNamesEPN3JSC8JSObjectEPNS1_9ExecStateERNS1_17PropertyNameArrayENS1_15EnumerationModeE
</span><span class="cx"> __ZN3JSC18getStaticValueSlotIN7WebCore15JSDOMStringListENS1_12JSDOMWrapperEEEbPNS_9ExecStateEPKNS_9HashTableEPT_NS_12PropertyNameERNS_12PropertySlotE
</span><span class="cx"> __ZN7WebCore24JSDOMStringListPrototype18getOwnPropertySlotEPN3JSC6JSCellEPNS1_9ExecStateENS1_12PropertyNameERNS1_12PropertySlotE
</span><del>-__ZN7WebCore11SVGFontDataC1EPNS_18SVGFontFaceElementE
</del><span class="cx"> __ZNK7WebCore18SVGFontFaceElement17horizontalOriginXEv
</span><span class="cx"> __ZNK7WebCore18SVGFontFaceElement17horizontalOriginYEv
</span><span class="cx"> __ZNK7WebCore18SVGFontFaceElement18horizontalAdvanceXEv
</span><span class="lines">@@ -18271,19 +18269,16 @@
</span><span class="cx"> __ZNK7WebCore18SVGFontFaceElement6ascentEv
</span><span class="cx"> __ZNK7WebCore18SVGFontFaceElement16verticalAdvanceYEv
</span><span class="cx"> __ZN7WebCore14SimpleFontDataC1EN3WTF10PassOwnPtrINS0_18AdditionalFontDataEEEfbb
</span><del>-__ZN7WebCore11SVGFontData18initializeFontDataEPNS_14SimpleFontDataEf
</del><span class="cx"> __ZNK7WebCore18SVGFontFaceElement21associatedFontElementEv
</span><span class="cx"> __ZN7WebCore14SVGFontElement12missingGlyphEv
</span><span class="cx"> __ZN7WebCore14SVGFontElement16ensureGlyphCacheEv
</span><span class="cx"> __ZNK7WebCore15SVGGlyphElement20buildGlyphIdentifierEv
</span><span class="cx"> __ZN7WebCore15SVGGlyphElement27buildGenericGlyphIdentifierEPKNS_10SVGElementE
</span><span class="cx"> __ZN7WebCore19buildPathFromStringERKN3WTF6StringERNS_4PathE
</span><del>-__ZN7WebCore11SVGGlyphMap8addGlyphERKN3WTF6StringES4_NS_8SVGGlyphE
</del><span class="cx"> __ZN3WTF6VectorIN7WebCore8SVGGlyphELm0ENS_15CrashOnOverflowEE14appendSlowCaseIS2_EEvRKT_
</span><span class="cx"> __ZN3WTF6VectorIN7WebCore8SVGGlyphELm0ENS_15CrashOnOverflowEE14expandCapacityEmPKS2_
</span><span class="cx"> __ZN3WTF6VectorIN7WebCore8SVGGlyphELm0ENS_15CrashOnOverflowEE15reserveCapacityEm
</span><span class="cx"> __ZN3WTF20VectorTypeOperationsIN7WebCore8SVGGlyphEE4moveEPKS2_S5_PS2_
</span><del>-__ZN7WebCore11SVGGlyphMap18appendToGlyphTableERNS_8SVGGlyphE
</del><span class="cx"> __ZN7WebCore13SVGPathParser28parseCurveToQuadraticSegmentEv
</span><span class="cx"> __ZN7WebCore19SVGPathStringSource28parseCurveToQuadraticSegmentERNS_10FloatPointES2_
</span><span class="cx"> __ZN3WTF6VectorIN7WebCore8SVGGlyphELm256ENS_15CrashOnOverflowEE14appendSlowCaseIS2_EEvRKT_
</span><span class="lines">@@ -18292,25 +18287,15 @@
</span><span class="cx"> __ZNK7WebCore18SVGFontFaceElement10unitsPerEmEv
</span><span class="cx"> __ZNK7WebCore18SVGFontFaceElement7xHeightEv
</span><span class="cx"> __ZNK7WebCore18SVGFontFaceElement7descentEv
</span><del>-__ZNK7WebCore11SVGFontData16fillSVGGlyphPageEPNS_9GlyphPageEjjPtjPKNS_14SimpleFontDataE
-__ZNK7WebCore11SVGFontData13fillBMPGlyphsEPNS_14SVGFontElementEPNS_9GlyphPageEjjPtPKNS_14SimpleFontDataE
</del><span class="cx"> __ZN7WebCore14SVGFontElement22collectGlyphsForStringERKN3WTF6StringERNS1_6VectorINS_8SVGGlyphELm0ENS1_15CrashOnOverflowEEE
</span><del>-__ZN7WebCore11SVGGlyphMap22collectGlyphsForStringERKN3WTF6StringERNS1_6VectorINS_8SVGGlyphELm0ENS1_15CrashOnOverflowEEE
</del><span class="cx"> __ZNSt3__16__sortIRPFbRKN7WebCore8SVGGlyphES4_EPS2_EEvT0_S9_T_
</span><span class="cx"> __ZN3WTF6VectorIN7WebCore8SVGGlyphELm0ENS_15CrashOnOverflowEE6appendIS2_EEvPKT_m
</span><span class="cx"> __ZN3WTF6VectorIN7WebCore8SVGGlyphELm0ENS_15CrashOnOverflowEE14shrinkCapacityEm
</span><span class="cx"> __ZN3WTF6VectorIN7WebCore8SVGGlyphELm0ENS_15CrashOnOverflowEED1Ev
</span><del>-__ZNK7WebCore11SVGFontData16widthForSVGGlyphEtf
</del><span class="cx"> __ZN7WebCore14SVGFontElement16svgGlyphForGlyphEt
</span><del>-__ZNK7WebCore11SVGGlyphMap16svgGlyphForGlyphEt
-__ZN7WebCore15SVGGlyphElement28inheritUnspecifiedAttributesERNS_8SVGGlyphEPKNS_11SVGFontDataE
-__ZN7WebCore26SVGTextRunRenderingContext21glyphDataForCharacterERKNS_4FontERKNS_7TextRunERNS_13WidthIteratorEibiRj
-__ZNK7WebCore11SVGFontData22applySVGGlyphSelectionERNS_13WidthIteratorERNS_9GlyphDataEbiRj
</del><span class="cx"> __ZN7WebCore4Font15normalizeSpacesEPKtj
</span><span class="cx"> __ZN7WebCore24charactersWithArabicFormERKN3WTF6StringEb
</span><span class="cx"> __ZN7WebCore17isCompatibleGlyphERKNS_8SVGGlyphEbRKN3WTF6StringERKNS3_6VectorINS0_10ArabicFormELm0ENS3_15CrashOnOverflowEEEjj
</span><del>-__ZN7WebCore26SVGTextRunRenderingContextD0Ev
-__ZNK7WebCore26SVGTextRunRenderingContext13drawSVGGlyphsEPNS_15GraphicsContextERKNS_7TextRunEPKNS_14SimpleFontDataERKNS_11GlyphBufferEiiRKNS_10FloatPointE
</del><span class="cx"> __ZNK7WebCore11RenderLayer36convertFromContainingViewToScrollbarEPKNS_9ScrollbarERKNS_8IntPointE
</span><span class="cx"> __ZN7WebCore34jsDOMWindowFloat32ArrayConstructorEPN3JSC9ExecStateENS0_7JSValueENS0_12PropertyNameE
</span><span class="cx"> __ZN7WebCore14JSFloat32Array14getConstructorEPN3JSC9ExecStateEPNS1_14JSGlobalObjectE
</span><span class="lines">@@ -23452,7 +23437,6 @@
</span><span class="cx"> __ZTVN7WebCore16SVGInlineFlowBoxE
</span><span class="cx"> __ZTVN7WebCore16SVGRootInlineBoxE
</span><span class="cx"> __ZTVN7WebCore32RenderSVGResourceFilterPrimitiveE
</span><del>-__ZTVN7WebCore26SVGTextRunRenderingContextE
</del><span class="cx"> __ZTVN7WebCore11RenderTableE
</span><span class="cx"> __ZTVN7WebCore18RenderTableCaptionE
</span><span class="cx"> __ZTVN7WebCore15RenderTableCellE
</span><span class="lines">@@ -23635,7 +23619,6 @@
</span><span class="cx"> __ZTVN7WebCore9SVGFilterE
</span><span class="cx"> __ZTVN7WebCore16SVGFilterElementE
</span><span class="cx"> __ZTVN7WebCore36SVGFilterPrimitiveStandardAttributesE
</span><del>-__ZTVN7WebCore11SVGFontDataE
</del><span class="cx"> __ZTVN7WebCore18SVGFontFaceElementE
</span><span class="cx"> __ZTVN7WebCore24SVGFontFaceFormatElementE
</span><span class="cx"> __ZTVN7WebCore21SVGFontFaceSrcElementE
</span><span class="lines">@@ -26294,8 +26277,6 @@
</span><span class="cx"> __ZTVN7WebCore17SVGFEFuncBElementE
</span><span class="cx"> __ZTVN7WebCore17SVGFEFuncGElementE
</span><span class="cx"> __ZTVN7WebCore17SVGFEFuncRElementE
</span><del>-__ZZNK7WebCore11SVGGlyphMap16svgGlyphForGlyphEtE12defaultGlyph
-__ZGVZNK7WebCore11SVGGlyphMap16svgGlyphForGlyphEtE12defaultGlyph
</del><span class="cx"> __ZTVN7WebCore14SVGFontElementE
</span><span class="cx"> __ZTVN7WebCore22SVGFontFaceNameElementE
</span><span class="cx"> __ZTVN7WebCore28SVGExternalResourcesRequiredE
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -374,7 +374,6 @@
</span><span class="cx">                 085A15931289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */; };
</span><span class="cx">                 085B92BA0EFDE73D00E6123C /* FormDataBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 085B92B80EFDE73D00E6123C /* FormDataBuilder.cpp */; };
</span><span class="cx">                 085B92BB0EFDE73D00E6123C /* FormDataBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 085B92B90EFDE73D00E6123C /* FormDataBuilder.h */; settings = {ATTRIBUTES = (); }; };
</span><del>-                085CD275138BB8E000907F2D /* SVGTextRunRenderingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 085CD274138BB8E000907F2D /* SVGTextRunRenderingContext.h */; };
</del><span class="cx">                 0863951613B5FE5700BB344D /* SVGAnimatedPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 0863951413B5FE5700BB344D /* SVGAnimatedPath.h */; };
</span><span class="cx">                 08641D4712142F7D008DE9F6 /* RenderImageResourceStyleImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08641D4512142F7D008DE9F6 /* RenderImageResourceStyleImage.cpp */; };
</span><span class="cx">                 08641D4812142F7D008DE9F6 /* RenderImageResourceStyleImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 08641D4612142F7D008DE9F6 /* RenderImageResourceStyleImage.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -383,8 +382,6 @@
</span><span class="cx">                 087558C513B4A57D00F49307 /* SurrogatePairAwareTextIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 087558C313B4A57D00F49307 /* SurrogatePairAwareTextIterator.cpp */; };
</span><span class="cx">                 087558C613B4A57D00F49307 /* SurrogatePairAwareTextIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 087558C413B4A57D00F49307 /* SurrogatePairAwareTextIterator.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 087B84961272CEC800A14417 /* SVGAnimatedAngle.h in Headers */ = {isa = PBXBuildFile; fileRef = 087B84951272CEC700A14417 /* SVGAnimatedAngle.h */; };
</span><del>-                087E0AF613606D0B00FA4BA8 /* SVGGlyph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 087E0AF413606D0B00FA4BA8 /* SVGGlyph.cpp */; };
-                087E0AF713606D0B00FA4BA8 /* SVGGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = 087E0AF513606D0B00FA4BA8 /* SVGGlyph.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 0880F70E1282B46D00948505 /* SVGStaticListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 0880F70D1282B46D00948505 /* SVGStaticListPropertyTearOff.h */; };
</span><span class="cx">                 0885067F11DA045B00182B98 /* PaintInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0885067D11DA045B00182B98 /* PaintInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0885068011DA045B00182B98 /* PaintPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0885067E11DA045B00182B98 /* PaintPhase.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1434,7 +1431,6 @@
</span><span class="cx">                 372ADA3B197F687600FC501E /* ProtectionSpaceCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 372ADA39197F687600FC501E /* ProtectionSpaceCocoa.mm */; };
</span><span class="cx">                 372C00C4129611F1005C9575 /* TextBoundaries.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 372C00C3129611F1005C9575 /* TextBoundaries.cpp */; };
</span><span class="cx">                 372C00D9129619F8005C9575 /* FindOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 372C00D8129619F8005C9575 /* FindOptions.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                3744570F0DB05FA500AE0992 /* SVGGlyphMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3744570E0DB05FA500AE0992 /* SVGGlyphMap.h */; };
</del><span class="cx">                 375CD232119D43C800A2A859 /* Hyphenation.h in Headers */ = {isa = PBXBuildFile; fileRef = 375CD231119D43C800A2A859 /* Hyphenation.h */; };
</span><span class="cx">                 376DCCE113B4F966002EBEFC /* TextRun.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 376DCCE013B4F966002EBEFC /* TextRun.cpp */; };
</span><span class="cx">                 3774ABA50FA21EB400AD7DE9 /* OverlapTestRequestClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 3774ABA30FA21EB400AD7DE9 /* OverlapTestRequestClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -4988,8 +4984,6 @@
</span><span class="cx">                 B22362290C3AF04A0008CA9B /* JSSVGTextPathElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22362270C3AF04A0008CA9B /* JSSVGTextPathElement.h */; };
</span><span class="cx">                 B23540F20D00782E002382FA /* StringTruncator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B23540F00D00782E002382FA /* StringTruncator.cpp */; };
</span><span class="cx">                 B23540F30D00782E002382FA /* StringTruncator.h in Headers */ = {isa = PBXBuildFile; fileRef = B23540F10D00782E002382FA /* StringTruncator.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                B237C8A70D344D110013F707 /* SVGFontData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B237C8A50D344D110013F707 /* SVGFontData.cpp */; };
-                B237C8A80D344D110013F707 /* SVGFontData.h in Headers */ = {isa = PBXBuildFile; fileRef = B237C8A60D344D110013F707 /* SVGFontData.h */; };
</del><span class="cx">                 B25599840D00D8BA00BB825C /* SVGFEImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B25598EA0D00D8B900BB825C /* SVGFEImage.cpp */; };
</span><span class="cx">                 B25599850D00D8BA00BB825C /* SVGFEImage.h in Headers */ = {isa = PBXBuildFile; fileRef = B25598EB0D00D8B900BB825C /* SVGFEImage.h */; };
</span><span class="cx">                 B25599A30D00D8BA00BB825C /* SVGImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B255990B0D00D8B900BB825C /* SVGImage.cpp */; };
</span><span class="lines">@@ -7781,7 +7775,6 @@
</span><span class="cx">                 085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedTransformListPropertyTearOff.h; sourceTree = "<group>"; };
</span><span class="cx">                 085B92B80EFDE73D00E6123C /* FormDataBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormDataBuilder.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 085B92B90EFDE73D00E6123C /* FormDataBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormDataBuilder.h; sourceTree = "<group>"; };
</span><del>-                085CD274138BB8E000907F2D /* SVGTextRunRenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextRunRenderingContext.h; sourceTree = "<group>"; };
</del><span class="cx">                 0863951313B5FE5700BB344D /* SVGAnimatedPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedPath.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 0863951413B5FE5700BB344D /* SVGAnimatedPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPath.h; sourceTree = "<group>"; };
</span><span class="cx">                 08641D4512142F7D008DE9F6 /* RenderImageResourceStyleImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderImageResourceStyleImage.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -7791,8 +7784,6 @@
</span><span class="cx">                 087558C313B4A57D00F49307 /* SurrogatePairAwareTextIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SurrogatePairAwareTextIterator.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 087558C413B4A57D00F49307 /* SurrogatePairAwareTextIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurrogatePairAwareTextIterator.h; sourceTree = "<group>"; };
</span><span class="cx">                 087B84951272CEC700A14417 /* SVGAnimatedAngle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedAngle.h; sourceTree = "<group>"; };
</span><del>-                087E0AF413606D0B00FA4BA8 /* SVGGlyph.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGGlyph.cpp; sourceTree = "<group>"; };
-                087E0AF513606D0B00FA4BA8 /* SVGGlyph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGGlyph.h; sourceTree = "<group>"; };
</del><span class="cx">                 0880F70D1282B46D00948505 /* SVGStaticListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGStaticListPropertyTearOff.h; sourceTree = "<group>"; };
</span><span class="cx">                 0885067D11DA045B00182B98 /* PaintInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaintInfo.h; sourceTree = "<group>"; };
</span><span class="cx">                 0885067E11DA045B00182B98 /* PaintPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaintPhase.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -7821,7 +7812,6 @@
</span><span class="cx">                 08C925170FCC7C4A00480DEC /* FilterEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FilterEffect.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 08C925180FCC7C4A00480DEC /* FilterEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterEffect.h; sourceTree = "<group>"; };
</span><span class="cx">                 08CA3D4312894A3800FFF260 /* SVGMatrixTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMatrixTearOff.h; sourceTree = "<group>"; };
</span><del>-                08D29440138669E40097C89B /* SVGTextRunRenderingContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextRunRenderingContext.cpp; sourceTree = "<group>"; };
</del><span class="cx">                 08D46CE2127AD5FC0089694B /* SVGAnimatedEnumeration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedEnumeration.h; sourceTree = "<group>"; };
</span><span class="cx">                 08E4FE450E2BD41400F4CAE0 /* JSSVGLengthCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGLengthCustom.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 08EDE19E12A50B8E00B95797 /* SVGRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRect.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -8932,7 +8922,6 @@
</span><span class="cx">                 372ADA39197F687600FC501E /* ProtectionSpaceCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ProtectionSpaceCocoa.mm; sourceTree = "<group>"; };
</span><span class="cx">                 372C00C3129611F1005C9575 /* TextBoundaries.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextBoundaries.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 372C00D8129619F8005C9575 /* FindOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FindOptions.h; sourceTree = "<group>"; };
</span><del>-                3744570E0DB05FA500AE0992 /* SVGGlyphMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGGlyphMap.h; sourceTree = "<group>"; };
</del><span class="cx">                 37569E0013AF172C00CDBA8E /* SharedBufferChunkReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedBufferChunkReader.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 37569E0213AF172C00CDBA8E /* SharedBufferChunkReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedBufferChunkReader.h; sourceTree = "<group>"; };
</span><span class="cx">                 375CD231119D43C800A2A859 /* Hyphenation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hyphenation.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -12891,8 +12880,6 @@
</span><span class="cx">                 B22362270C3AF04A0008CA9B /* JSSVGTextPathElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGTextPathElement.h; sourceTree = "<group>"; };
</span><span class="cx">                 B23540F00D00782E002382FA /* StringTruncator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StringTruncator.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 B23540F10D00782E002382FA /* StringTruncator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StringTruncator.h; sourceTree = "<group>"; };
</span><del>-                B237C8A50D344D110013F707 /* SVGFontData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFontData.cpp; sourceTree = "<group>"; };
-                B237C8A60D344D110013F707 /* SVGFontData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFontData.h; sourceTree = "<group>"; };
</del><span class="cx">                 B25598EA0D00D8B900BB825C /* SVGFEImage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEImage.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 B25598EB0D00D8B900BB825C /* SVGFEImage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEImage.h; sourceTree = "<group>"; };
</span><span class="cx">                 B255990B0D00D8B900BB825C /* SVGImage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGImage.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -15883,8 +15870,6 @@
</span><span class="cx">                                 7117445714BC34E200EE5FC8 /* SVGTextMetricsBuilder.h */,
</span><span class="cx">                                 0854B0121255E4E600B9CDD0 /* SVGTextQuery.cpp */,
</span><span class="cx">                                 0854B0131255E4E600B9CDD0 /* SVGTextQuery.h */,
</span><del>-                                08D29440138669E40097C89B /* SVGTextRunRenderingContext.cpp */,
-                                085CD274138BB8E000907F2D /* SVGTextRunRenderingContext.h */,
</del><span class="cx">                         );
</span><span class="cx">                         path = svg;
</span><span class="cx">                         sourceTree = "<group>";
</span><span class="lines">@@ -21502,8 +21487,6 @@
</span><span class="cx">                                 B222787B0D00BF200071B782 /* SVGFitToViewBox.cpp */,
</span><span class="cx">                                 B222787C0D00BF200071B782 /* SVGFitToViewBox.h */,
</span><span class="cx">                                 B222787D0D00BF200071B782 /* SVGFitToViewBox.idl */,
</span><del>-                                B237C8A50D344D110013F707 /* SVGFontData.cpp */,
-                                B237C8A60D344D110013F707 /* SVGFontData.h */,
</del><span class="cx">                                 B2A1F2A10CEF0ABF00442F6A /* SVGFontElement.cpp */,
</span><span class="cx">                                 B2A1F2A20CEF0ABF00442F6A /* SVGFontElement.h */,
</span><span class="cx">                                 B2A1F2A30CEF0ABF00442F6A /* SVGFontElement.idl */,
</span><span class="lines">@@ -21531,7 +21514,6 @@
</span><span class="cx">                                 B2A1F2A40CEF0ABF00442F6A /* SVGGlyphElement.cpp */,
</span><span class="cx">                                 B2A1F2A50CEF0ABF00442F6A /* SVGGlyphElement.h */,
</span><span class="cx">                                 B2A1F2A60CEF0ABF00442F6A /* SVGGlyphElement.idl */,
</span><del>-                                3744570E0DB05FA500AE0992 /* SVGGlyphMap.h */,
</del><span class="cx">                                 24D912BA13CA9A9700D21915 /* SVGGlyphRefElement.cpp */,
</span><span class="cx">                                 24D912BB13CA9A9700D21915 /* SVGGlyphRefElement.h */,
</span><span class="cx">                                 24D912BC13CA9A9700D21915 /* SVGGlyphRefElement.idl */,
</span><span class="lines">@@ -22062,8 +22044,6 @@
</span><span class="cx">                                 849F77750EFEC6200090849D /* StrokeStyleApplier.h */,
</span><span class="cx">                                 087558C313B4A57D00F49307 /* SurrogatePairAwareTextIterator.cpp */,
</span><span class="cx">                                 087558C413B4A57D00F49307 /* SurrogatePairAwareTextIterator.h */,
</span><del>-                                087E0AF413606D0B00FA4BA8 /* SVGGlyph.cpp */,
-                                087E0AF513606D0B00FA4BA8 /* SVGGlyph.h */,
</del><span class="cx">                                 376DCCE013B4F966002EBEFC /* TextRun.cpp */,
</span><span class="cx">                                 A824B4640E2EF2EA0081A7B7 /* TextRun.h */,
</span><span class="cx">                                 CD1E7346167BC78E009A885D /* TextTrackRepresentation.cpp */,
</span><span class="lines">@@ -28129,7 +28109,6 @@
</span><span class="cx">                                 B2227A0C0D00BF220071B782 /* SVGFilterElement.h in Headers */,
</span><span class="cx">                                 B2227A0F0D00BF220071B782 /* SVGFilterPrimitiveStandardAttributes.h in Headers */,
</span><span class="cx">                                 B2227A120D00BF220071B782 /* SVGFitToViewBox.h in Headers */,
</span><del>-                                B237C8A80D344D110013F707 /* SVGFontData.h in Headers */,
</del><span class="cx">                                 B2A1F2AB0CEF0ABF00442F6A /* SVGFontElement.h in Headers */,
</span><span class="cx">                                 B2227A150D00BF220071B782 /* SVGFontFaceElement.h in Headers */,
</span><span class="cx">                                 B2227A180D00BF220071B782 /* SVGFontFaceFormatElement.h in Headers */,
</span><span class="lines">@@ -28138,9 +28117,7 @@
</span><span class="cx">                                 B2227A210D00BF220071B782 /* SVGFontFaceUriElement.h in Headers */,
</span><span class="cx">                                 B2227A240D00BF220071B782 /* SVGForeignObjectElement.h in Headers */,
</span><span class="cx">                                 B2227A270D00BF220071B782 /* SVGGElement.h in Headers */,
</span><del>-                                087E0AF713606D0B00FA4BA8 /* SVGGlyph.h in Headers */,
</del><span class="cx">                                 B2A1F2AE0CEF0ABF00442F6A /* SVGGlyphElement.h in Headers */,
</span><del>-                                3744570F0DB05FA500AE0992 /* SVGGlyphMap.h in Headers */,
</del><span class="cx">                                 24D912BE13CA9A9700D21915 /* SVGGlyphRefElement.h in Headers */,
</span><span class="cx">                                 B2227A2A0D00BF220071B782 /* SVGGradientElement.h in Headers */,
</span><span class="cx">                                 B2227AB60D00BF220071B782 /* SVGGraphicsElement.h in Headers */,
</span><span class="lines">@@ -28268,7 +28245,6 @@
</span><span class="cx">                                 B2227ACE0D00BF220071B782 /* SVGTextPathElement.h in Headers */,
</span><span class="cx">                                 B2227AD10D00BF220071B782 /* SVGTextPositioningElement.h in Headers */,
</span><span class="cx">                                 0854B0251255E4E600B9CDD0 /* SVGTextQuery.h in Headers */,
</span><del>-                                085CD275138BB8E000907F2D /* SVGTextRunRenderingContext.h in Headers */,
</del><span class="cx">                                 B2227AD40D00BF220071B782 /* SVGTitleElement.h in Headers */,
</span><span class="cx">                                 1CCDF5BE1990332400BCEBAD /* SVGToOTFFontConversion.h in Headers */,
</span><span class="cx">                                 B2227AD70D00BF220071B782 /* SVGTransform.h in Headers */,
</span><span class="lines">@@ -31712,7 +31688,6 @@
</span><span class="cx">                                 B2227A0B0D00BF220071B782 /* SVGFilterElement.cpp in Sources */,
</span><span class="cx">                                 B2227A0E0D00BF220071B782 /* SVGFilterPrimitiveStandardAttributes.cpp in Sources */,
</span><span class="cx">                                 B2227A110D00BF220071B782 /* SVGFitToViewBox.cpp in Sources */,
</span><del>-                                B237C8A70D344D110013F707 /* SVGFontData.cpp in Sources */,
</del><span class="cx">                                 B2A1F2AA0CEF0ABF00442F6A /* SVGFontElement.cpp in Sources */,
</span><span class="cx">                                 B2227A140D00BF220071B782 /* SVGFontFaceElement.cpp in Sources */,
</span><span class="cx">                                 B2227A170D00BF220071B782 /* SVGFontFaceFormatElement.cpp in Sources */,
</span><span class="lines">@@ -31721,7 +31696,6 @@
</span><span class="cx">                                 B2227A200D00BF220071B782 /* SVGFontFaceUriElement.cpp in Sources */,
</span><span class="cx">                                 B2227A230D00BF220071B782 /* SVGForeignObjectElement.cpp in Sources */,
</span><span class="cx">                                 B2227A260D00BF220071B782 /* SVGGElement.cpp in Sources */,
</span><del>-                                087E0AF613606D0B00FA4BA8 /* SVGGlyph.cpp in Sources */,
</del><span class="cx">                                 B2A1F2AD0CEF0ABF00442F6A /* SVGGlyphElement.cpp in Sources */,
</span><span class="cx">                                 24D912BD13CA9A9700D21915 /* SVGGlyphRefElement.cpp in Sources */,
</span><span class="cx">                                 B2227A290D00BF220071B782 /* SVGGradientElement.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFaceSource.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFaceSource.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/css/CSSFontFaceSource.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -36,15 +36,12 @@
</span><span class="cx"> #include "FontCache.h"
</span><span class="cx"> #include "FontDescription.h"
</span><span class="cx">
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> #include "FontCustomPlatformData.h"
</span><span class="cx"> #include "SVGToOTFFontConversion.h"
</span><del>-#endif
</del><span class="cx">
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><span class="cx"> #include "CachedSVGFont.h"
</span><span class="cx"> #include "FontCustomPlatformData.h"
</span><del>-#include "SVGFontData.h"
</del><span class="cx"> #include "SVGFontElement.h"
</span><span class="cx"> #include "SVGFontFaceElement.h"
</span><span class="cx"> #include "SVGNames.h"
</span><span class="lines">@@ -76,14 +73,8 @@
</span><span class="cx"> : m_familyNameOrURI(familyNameOrURI)
</span><span class="cx"> , m_font(font)
</span><span class="cx"> , m_face(owner)
</span><del>-#if ENABLE(SVG_FONTS) || ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> , m_svgFontFaceElement(fontFace)
</span><del>-#endif
</del><span class="cx"> {
</span><del>-#if !(ENABLE(SVG_FONTS) || ENABLE(SVG_OTF_CONVERTER))
- UNUSED_PARAM(fontFace);
-#endif
-
</del><span class="cx"> // This may synchronously call fontLoaded().
</span><span class="cx"> if (m_font)
</span><span class="cx"> m_font->addClient(this);
</span><span class="lines">@@ -157,7 +148,6 @@
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> if (!is<SVGFontElement>(m_svgFontFaceElement->parentNode()))
</span><span class="cx"> return nullptr;
</span><span class="cx"> if (!m_inDocumentCustomPlatformData) {
</span><span class="lines">@@ -175,10 +165,7 @@
</span><span class="cx"> #else
</span><span class="cx"> return Font::create(m_inDocumentCustomPlatformData->fontPlatformData(fontDescription, syntheticBold, syntheticItalic), true, false);
</span><span class="cx"> #endif
</span><del>-#else
- return Font::create(std::make_unique<SVGFontData>(m_svgFontFaceElement.get()), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic);
</del><span class="cx"> #endif
</span><del>-#endif
</del><span class="cx">
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFaceSource.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFaceSource.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/css/CSSFontFaceSource.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -79,14 +79,10 @@
</span><span class="cx"> CachedResourceHandle<CachedFont> m_font; // For remote fonts, a pointer to our cached resource.
</span><span class="cx"> CSSFontFace& m_face; // Our owning font face.
</span><span class="cx">
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> RefPtr<SharedBuffer> m_generatedOTFBuffer;
</span><del>-#endif
</del><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS) || ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> RefPtr<SVGFontFaceElement> m_svgFontFaceElement;
</span><span class="cx"> std::unique_ptr<FontCustomPlatformData> m_inDocumentCustomPlatformData;
</span><del>-#endif
</del><span class="cx">
</span><span class="cx"> Status m_status { Status::Pending };
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedFontcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedFont.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedFont.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/loader/cache/CachedFont.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -40,15 +40,6 @@
</span><span class="cx"> #include "WOFFFileFormat.h"
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS)
-#include "NodeList.h"
-#include "SVGDocument.h"
-#include "SVGElement.h"
-#include "SVGFontElement.h"
-#include "SVGGElement.h"
-#include "SVGNames.h"
-#endif
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> CachedFont::CachedFont(const ResourceRequest& resourceRequest, SessionID sessionID, Type type)
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedSVGFontcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -32,16 +32,12 @@
</span><span class="cx"> #include "FontDescription.h"
</span><span class="cx"> #include "FontPlatformData.h"
</span><span class="cx"> #include "SVGDocument.h"
</span><del>-#include "SVGFontData.h"
</del><span class="cx"> #include "SVGFontElement.h"
</span><span class="cx"> #include "SVGFontFaceElement.h"
</span><span class="cx"> #include "SharedBuffer.h"
</span><span class="cx"> #include "TextResourceDecoder.h"
</span><span class="cx"> #include "TypedElementDescendantIterator.h"
</span><del>-
-#if ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> #include "SVGToOTFFontConversion.h"
</span><del>-#endif
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -53,15 +49,8 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<Font> CachedSVGFont::createFont(const FontDescription& fontDescription, const AtomicString& remoteURI, bool syntheticBold, bool syntheticItalic, const FontFeatureSettings& fontFaceFeatures, const FontVariantSettings& fontFaceVariantSettings)
</span><span class="cx"> {
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> if (firstFontFace(remoteURI))
</span><span class="cx"> return CachedFont::createFont(fontDescription, remoteURI, syntheticBold, syntheticItalic, fontFaceFeatures, fontFaceVariantSettings);
</span><del>-#else
- UNUSED_PARAM(fontFaceFeatures);
- UNUSED_PARAM(fontFaceVariantSettings);
- if (SVGFontFaceElement* firstFontFace = this->firstFontFace(remoteURI))
- return Font::create(std::make_unique<SVGFontData>(firstFontFace), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic);
-#endif
</del><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -80,7 +69,6 @@
</span><span class="cx"> m_externalSVGDocument->setContent(decoder->decodeAndFlush(m_data->data(), m_data->size()));
</span><span class="cx"> if (decoder->sawError())
</span><span class="cx"> m_externalSVGDocument = nullptr;
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> if (m_externalSVGDocument)
</span><span class="cx"> maybeInitializeExternalSVGFontElement(remoteURI);
</span><span class="cx"> if (!m_externalSVGFontElement)
</span><span class="lines">@@ -91,16 +79,9 @@
</span><span class="cx"> m_externalSVGDocument = nullptr;
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><del>-#else
- UNUSED_PARAM(remoteURI);
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><del>-#if !ENABLE(SVG_OTF_CONVERTER)
- return m_externalSVGDocument;
-#else
</del><span class="cx"> return m_externalSVGDocument && CachedFont::ensureCustomFontData(m_convertedFont.get());
</span><del>-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SVGFontElement* CachedSVGFont::getSVGFontById(const String& fontName) const
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedSVGFonth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedSVGFont.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedSVGFont.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/loader/cache/CachedSVGFont.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -50,9 +50,7 @@
</span><span class="cx"> SVGFontElement* maybeInitializeExternalSVGFontElement(const AtomicString& remoteURI);
</span><span class="cx"> SVGFontFaceElement* firstFontFace(const AtomicString& remoteURI);
</span><span class="cx">
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> RefPtr<SharedBuffer> m_convertedFont;
</span><del>-#endif
</del><span class="cx"> RefPtr<SVGDocument> m_externalSVGDocument;
</span><span class="cx"> SVGFontElement* m_externalSVGFontElement;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/Font.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -51,11 +51,10 @@
</span><span class="cx"> const float smallCapsFontSizeMultiplier = 0.7f;
</span><span class="cx"> const float emphasisMarkFontSizeMultiplier = 0.5f;
</span><span class="cx">
</span><del>-Font::Font(const FontPlatformData& platformData, std::unique_ptr<SVGData>&& svgData, bool isCustomFont, bool isLoading, bool isTextOrientationFallback)
</del><ins>+Font::Font(const FontPlatformData& platformData, bool isCustomFont, bool isLoading, bool isTextOrientationFallback)
</ins><span class="cx"> : m_maxCharWidth(-1)
</span><span class="cx"> , m_avgCharWidth(-1)
</span><span class="cx"> , m_platformData(platformData)
</span><del>- , m_svgData(WTFMove(svgData))
</del><span class="cx"> , m_mathData(nullptr)
</span><span class="cx"> , m_treatAsFixedPitch(false)
</span><span class="cx"> , m_isCustomFont(isCustomFont)
</span><span class="lines">@@ -68,11 +67,6 @@
</span><span class="cx"> , m_shouldNotBeUsedForArabic(false)
</span><span class="cx"> #endif
</span><span class="cx"> {
</span><del>-}
-
-Font::Font(const FontPlatformData& platformData, bool isCustomFont, bool isLoading, bool isTextOrientationFallback)
- : Font(platformData, std::unique_ptr<SVGData>(), isCustomFont, isLoading, isTextOrientationFallback)
-{
</del><span class="cx"> platformInit();
</span><span class="cx"> platformGlyphInit();
</span><span class="cx"> platformCharWidthInit();
</span><span class="lines">@@ -84,12 +78,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Font::Font(std::unique_ptr<SVGData> svgData, float fontSize, bool syntheticBold, bool syntheticItalic)
- : Font(FontPlatformData(fontSize, syntheticBold, syntheticItalic), WTFMove(svgData), true, false, false)
-{
- m_svgData->initializeFont(this, fontSize);
-}
-
</del><span class="cx"> // Estimates of avgCharWidth and maxCharWidth for platforms that don't support accessing these values from the font.
</span><span class="cx"> void Font::initCharWidths()
</span><span class="cx"> {
</span><span class="lines">@@ -148,14 +136,12 @@
</span><span class="cx">
</span><span class="cx"> static bool fillGlyphPage(GlyphPage& pageToFill, UChar* buffer, unsigned bufferLength, const Font& font)
</span><span class="cx"> {
</span><del>-#if ENABLE(SVG_FONTS)
- if (auto* svgData = font.svgData())
- return svgData->fillSVGGlyphPage(&pageToFill, buffer, bufferLength);
-#endif
</del><span class="cx"> bool hasGlyphs = pageToFill.fill(buffer, bufferLength);
</span><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="cx"> if (hasGlyphs && font.verticalData())
</span><span class="cx"> font.verticalData()->substituteWithVerticalGlyphs(&font, &pageToFill);
</span><ins>+#else
+ UNUSED_PARAM(font);
</ins><span class="cx"> #endif
</span><span class="cx"> return hasGlyphs;
</span><span class="cx"> }
</span><span class="lines">@@ -347,8 +333,6 @@
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> String Font::description() const
</span><span class="cx"> {
</span><del>- if (isSVGFont())
- return "[SVG font]";
</del><span class="cx"> if (isCustomFont())
</span><span class="cx"> return "[custom font]";
</span><span class="cx">
</span><span class="lines">@@ -374,16 +358,12 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<Font> Font::createScaledFont(const FontDescription& fontDescription, float scaleFactor) const
</span><span class="cx"> {
</span><del>- if (isSVGFont())
- return nullptr;
-
</del><span class="cx"> return platformCreateScaledFont(fontDescription, scaleFactor);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool Font::applyTransforms(GlyphBufferGlyph* glyphs, GlyphBufferAdvance* advances, size_t glyphCount, bool enableKerning, bool requiresShaping) const
</span><span class="cx"> {
</span><span class="cx"> // We need to handle transforms on SVG fonts internally, since they are rendered internally.
</span><del>- ASSERT(!isSVGFont());
</del><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx"> CTFontTransformOptions options = (enableKerning ? kCTFontTransformApplyPositioning : 0) | (requiresShaping ? kCTFontTransformApplyShaping : 0);
</span><span class="cx"> return CTFontTransformGlyphs(m_platformData.ctFont(), glyphs, reinterpret_cast<CGSize*>(advances), glyphCount, options);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFonth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/Font.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -70,28 +70,12 @@
</span><span class="cx">
</span><span class="cx"> class Font : public RefCounted<Font> {
</span><span class="cx"> public:
</span><del>- class SVGData {
- WTF_MAKE_FAST_ALLOCATED;
- public:
- virtual ~SVGData() { }
-
- virtual void initializeFont(Font*, float fontSize) = 0;
- virtual float widthForSVGGlyph(Glyph, float fontSize) const = 0;
- virtual bool fillSVGGlyphPage(GlyphPage*, UChar* buffer, unsigned bufferLength) const = 0;
- };
-
</del><span class="cx"> // Used to create platform fonts.
</span><span class="cx"> static Ref<Font> create(const FontPlatformData& platformData, bool isCustomFont = false, bool isLoading = false, bool isTextOrientationFallback = false)
</span><span class="cx"> {
</span><span class="cx"> return adoptRef(*new Font(platformData, isCustomFont, isLoading, isTextOrientationFallback));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- // Used to create SVG Fonts.
- static Ref<Font> create(std::unique_ptr<SVGData> svgData, float fontSize, bool syntheticBold, bool syntheticItalic)
- {
- return adoptRef(*new Font(WTFMove(svgData), fontSize, syntheticBold, syntheticItalic));
- }
-
</del><span class="cx"> WEBCORE_EXPORT ~Font();
</span><span class="cx">
</span><span class="cx"> static const Font* systemFallback() { return reinterpret_cast<const Font*>(-1); }
</span><span class="lines">@@ -181,9 +165,6 @@
</span><span class="cx"> void determinePitch();
</span><span class="cx"> Pitch pitch() const { return m_treatAsFixedPitch ? FixedPitch : VariablePitch; }
</span><span class="cx">
</span><del>- const SVGData* svgData() const { return m_svgData.get(); }
- bool isSVGFont() const { return !!m_svgData; }
-
</del><span class="cx"> bool isCustomFont() const { return m_isCustomFont; }
</span><span class="cx"> bool isLoading() const { return m_isLoading; }
</span><span class="cx">
</span><span class="lines">@@ -224,10 +205,6 @@
</span><span class="cx"> private:
</span><span class="cx"> Font(const FontPlatformData&, bool isCustomFont = false, bool isLoading = false, bool isTextOrientationFallback = false);
</span><span class="cx">
</span><del>- Font(std::unique_ptr<SVGData>, float fontSize, bool syntheticBold, bool syntheticItalic);
-
- Font(const FontPlatformData&, std::unique_ptr<SVGData>&&, bool isCustomFont = false, bool isLoading = false, bool isTextOrientationFallback = false);
-
</del><span class="cx"> void platformInit();
</span><span class="cx"> void platformGlyphInit();
</span><span class="cx"> void platformCharWidthInit();
</span><span class="lines">@@ -253,7 +230,6 @@
</span><span class="cx"> float m_avgCharWidth;
</span><span class="cx">
</span><span class="cx"> FontPlatformData m_platformData;
</span><del>- std::unique_ptr<SVGData> m_svgData;
</del><span class="cx">
</span><span class="cx"> mutable RefPtr<GlyphPage> m_glyphPageZero;
</span><span class="cx"> mutable HashMap<unsigned, RefPtr<GlyphPage>> m_glyphPages;
</span><span class="lines">@@ -363,17 +339,15 @@
</span><span class="cx"> if (width != cGlyphSizeUnknown)
</span><span class="cx"> return width;
</span><span class="cx">
</span><del>- if (isSVGFont())
- width = m_svgData->widthForSVGGlyph(glyph, m_platformData.size());
</del><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><del>- else if (m_verticalData)
</del><ins>+ if (m_verticalData)
</ins><span class="cx"> #if USE(CG) || USE(CAIRO)
</span><span class="cx"> width = m_verticalData->advanceHeight(this, glyph) + m_syntheticBoldOffset;
</span><span class="cx"> #else
</span><span class="cx"> width = m_verticalData->advanceHeight(this, glyph);
</span><span class="cx"> #endif
</span><del>-#endif
</del><span class="cx"> else
</span><ins>+#endif
</ins><span class="cx"> width = platformWidthForGlyph(glyph);
</span><span class="cx">
</span><span class="cx"> m_glyphToWidthMap.setMetricsForGlyph(glyph, width);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCascadecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCascade.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCascade.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/FontCascade.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -46,11 +46,6 @@
</span><span class="cx">
</span><span class="cx"> static Ref<FontCascadeFonts> retrieveOrAddCachedFonts(const FontCascadeDescription&, RefPtr<FontSelector>&&);
</span><span class="cx">
</span><del>-static bool isDrawnWithSVGFont(const TextRun& run)
-{
- return run.renderingContext();
-}
-
</del><span class="cx"> static bool useBackslashAsYenSignForFamily(const AtomicString& family)
</span><span class="cx"> {
</span><span class="cx"> if (family.isEmpty())
</span><span class="lines">@@ -318,7 +313,7 @@
</span><span class="cx">
</span><span class="cx"> CodePath codePathToUse = codePath(run);
</span><span class="cx"> // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050
</span><del>- if (codePathToUse != Complex && (enableKerning() || requiresShaping()) && (from || static_cast<unsigned>(to) != run.length()) && !isDrawnWithSVGFont(run))
</del><ins>+ if (codePathToUse != Complex && (enableKerning() || requiresShaping()) && (from || static_cast<unsigned>(to) != run.length()))
</ins><span class="cx"> codePathToUse = Complex;
</span><span class="cx">
</span><span class="cx"> GlyphBuffer glyphBuffer;
</span><span class="lines">@@ -328,7 +323,7 @@
</span><span class="cx"> return 0;
</span><span class="cx"> // Draw the glyph buffer now at the starting point returned in startX.
</span><span class="cx"> FloatPoint startPoint(startX, point.y());
</span><del>- drawGlyphBuffer(context, run, glyphBuffer, startPoint);
</del><ins>+ drawGlyphBuffer(context, glyphBuffer, startPoint);
</ins><span class="cx"> return startPoint.x() - startX;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -342,7 +337,7 @@
</span><span class="cx">
</span><span class="cx"> CodePath codePathToUse = codePath(run);
</span><span class="cx"> // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050
</span><del>- if (codePathToUse != Complex && (enableKerning() || requiresShaping()) && (from || static_cast<unsigned>(to) != run.length()) && !isDrawnWithSVGFont(run))
</del><ins>+ if (codePathToUse != Complex && (enableKerning() || requiresShaping()) && (from || static_cast<unsigned>(to) != run.length()))
</ins><span class="cx"> codePathToUse = Complex;
</span><span class="cx">
</span><span class="cx"> if (codePathToUse != Complex)
</span><span class="lines">@@ -383,22 +378,10 @@
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-float FontCascade::width(const TextRun& run, int& charsConsumed, String& glyphName) const
-{
-#if ENABLE(SVG_FONTS)
- if (isDrawnWithSVGFont(run))
- return run.renderingContext()->floatWidthUsingSVGFont(*this, run, charsConsumed, glyphName);
-#endif
-
- charsConsumed = run.length();
- glyphName = "";
- return width(run);
-}
-
</del><span class="cx"> GlyphData FontCascade::glyphDataForCharacter(UChar32 c, bool mirror, FontVariant variant) const
</span><span class="cx"> {
</span><span class="cx"> if (variant == AutoVariant) {
</span><del>- if (m_fontDescription.variantCaps() == FontVariantCaps::Small && !primaryFont().isSVGFont()) {
</del><ins>+ if (m_fontDescription.variantCaps() == FontVariantCaps::Small) {
</ins><span class="cx"> UChar32 upperC = u_toupper(c);
</span><span class="cx"> if (upperC != c) {
</span><span class="cx"> c = upperC;
</span><span class="lines">@@ -514,7 +497,7 @@
</span><span class="cx">
</span><span class="cx"> CodePath codePathToUse = codePath(run);
</span><span class="cx"> // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050
</span><del>- if (codePathToUse != Complex && (enableKerning() || requiresShaping()) && (from || static_cast<unsigned>(to) != run.length()) && !isDrawnWithSVGFont(run))
</del><ins>+ if (codePathToUse != Complex && (enableKerning() || requiresShaping()) && (from || static_cast<unsigned>(to) != run.length()))
</ins><span class="cx"> codePathToUse = Complex;
</span><span class="cx">
</span><span class="cx"> if (codePathToUse != Complex)
</span><span class="lines">@@ -526,7 +509,7 @@
</span><span class="cx"> int FontCascade::offsetForPosition(const TextRun& run, float x, bool includePartialGlyphs) const
</span><span class="cx"> {
</span><span class="cx"> // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050
</span><del>- if (codePath(run) != Complex && (!(enableKerning() || requiresShaping()) || isDrawnWithSVGFont(run)))
</del><ins>+ if (codePath(run) != Complex && (!(enableKerning() || requiresShaping())))
</ins><span class="cx"> return offsetForPositionForSimpleText(run, x, includePartialGlyphs);
</span><span class="cx">
</span><span class="cx"> return offsetForPositionForComplexText(run, x, includePartialGlyphs);
</span><span class="lines">@@ -582,11 +565,6 @@
</span><span class="cx"> if (s_codePath != Auto)
</span><span class="cx"> return s_codePath;
</span><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS)
- if (isDrawnWithSVGFont(run))
- return Simple;
-#endif
-
</del><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx"> // Because Font::applyTransforms() doesn't know which features to enable/disable in the simple code path, it can't properly handle feature or variant settings.
</span><span class="cx"> // FIXME: https://bugs.webkit.org/show_bug.cgi?id=150791: @font-face features should also cause this to be complex.
</span><span class="lines">@@ -1293,10 +1271,10 @@
</span><span class="cx"> if (glyphBuffer.isEmpty())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- drawEmphasisMarks(context, run, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
</del><ins>+ drawEmphasisMarks(context, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void FontCascade::drawGlyphBuffer(GraphicsContext& context, const TextRun& run, const GlyphBuffer& glyphBuffer, FloatPoint& point) const
</del><ins>+void FontCascade::drawGlyphBuffer(GraphicsContext& context, const GlyphBuffer& glyphBuffer, FloatPoint& point) const
</ins><span class="cx"> {
</span><span class="cx"> #if !ENABLE(SVG_FONTS)
</span><span class="cx"> UNUSED_PARAM(run);
</span><span class="lines">@@ -1310,20 +1288,12 @@
</span><span class="cx"> float nextY = startPoint.y() + glyphBuffer.advanceAt(0).height();
</span><span class="cx"> int lastFrom = 0;
</span><span class="cx"> int nextGlyph = 1;
</span><del>-#if ENABLE(SVG_FONTS)
- TextRun::RenderingContext* renderingContext = run.renderingContext();
-#endif
</del><span class="cx"> while (nextGlyph < glyphBuffer.size()) {
</span><span class="cx"> const Font* nextFontData = glyphBuffer.fontAt(nextGlyph);
</span><span class="cx"> FloatSize nextOffset = glyphBuffer.offsetAt(nextGlyph);
</span><span class="cx">
</span><span class="cx"> if (nextFontData != fontData || nextOffset != offset) {
</span><del>-#if ENABLE(SVG_FONTS)
- if (renderingContext && fontData->isSVGFont())
- renderingContext->drawSVGGlyphs(context, *fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
- else
-#endif
- context.drawGlyphs(*this, *fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
</del><ins>+ context.drawGlyphs(*this, *fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
</ins><span class="cx">
</span><span class="cx"> lastFrom = nextGlyph;
</span><span class="cx"> fontData = nextFontData;
</span><span class="lines">@@ -1336,15 +1306,8 @@
</span><span class="cx"> nextGlyph++;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS)
- if (renderingContext && fontData->isSVGFont())
- renderingContext->drawSVGGlyphs(context, *fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
- else
-#endif
- {
- context.drawGlyphs(*this, *fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
- point.setX(nextX);
- }
</del><ins>+ context.drawGlyphs(*this, *fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
+ point.setX(nextX);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline static float offsetToMiddleOfGlyph(const Font* fontData, Glyph glyph)
</span><span class="lines">@@ -1362,7 +1325,7 @@
</span><span class="cx"> return offsetToMiddleOfGlyph(glyphBuffer.fontAt(i), glyphBuffer.glyphAt(i));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void FontCascade::drawEmphasisMarks(GraphicsContext& context, const TextRun& run, const GlyphBuffer& glyphBuffer, const AtomicString& mark, const FloatPoint& point) const
</del><ins>+void FontCascade::drawEmphasisMarks(GraphicsContext& context, const GlyphBuffer& glyphBuffer, const AtomicString& mark, const FloatPoint& point) const
</ins><span class="cx"> {
</span><span class="cx"> Optional<GlyphData> markGlyphData = getEmphasisMarkGlyphData(mark);
</span><span class="cx"> if (!markGlyphData)
</span><span class="lines">@@ -1388,7 +1351,7 @@
</span><span class="cx"> }
</span><span class="cx"> markBuffer.add(glyphBuffer.glyphAt(glyphBuffer.size() - 1) ? markGlyph : spaceGlyph, markFontData, 0);
</span><span class="cx">
</span><del>- drawGlyphBuffer(context, run, markBuffer, startPoint);
</del><ins>+ drawGlyphBuffer(context, markBuffer, startPoint);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> float FontCascade::floatWidthForSimpleText(const TextRun& run, HashSet<const Font*>* fallbackFonts, GlyphOverflow* glyphOverflow) const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCascadeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCascade.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCascade.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/FontCascade.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -140,7 +140,6 @@
</span><span class="cx"> DashArray dashesForIntersectionsWithRect(const TextRun&, const FloatPoint& textOrigin, const FloatRect& lineExtents) const;
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT float width(const TextRun&, HashSet<const Font*>* fallbackFonts = 0, GlyphOverflow* = 0) const;
</span><del>- float width(const TextRun&, int& charsConsumed, String& glyphName) const;
</del><span class="cx">
</span><span class="cx"> std::unique_ptr<TextLayout, TextLayoutDeleter> createLayout(RenderText&, float xPos, bool collapseWhiteSpace) const;
</span><span class="cx"> static float width(TextLayout&, unsigned from, unsigned len, HashSet<const Font*>* fallbackFonts = 0);
</span><span class="lines">@@ -223,8 +222,8 @@
</span><span class="cx"> // Returns the initial in-stream advance.
</span><span class="cx"> float getGlyphsAndAdvancesForSimpleText(const TextRun&, int from, int to, GlyphBuffer&, ForTextEmphasisOrNot = NotForTextEmphasis) const;
</span><span class="cx"> void drawEmphasisMarksForSimpleText(GraphicsContext&, const TextRun&, const AtomicString& mark, const FloatPoint&, int from, int to) const;
</span><del>- void drawGlyphBuffer(GraphicsContext&, const TextRun&, const GlyphBuffer&, FloatPoint&) const;
- void drawEmphasisMarks(GraphicsContext&, const TextRun&, const GlyphBuffer&, const AtomicString&, const FloatPoint&) const;
</del><ins>+ void drawGlyphBuffer(GraphicsContext&, const GlyphBuffer&, FloatPoint&) const;
+ void drawEmphasisMarks(GraphicsContext&, const GlyphBuffer&, const AtomicString&, const FloatPoint&) const;
</ins><span class="cx"> float floatWidthForSimpleText(const TextRun&, HashSet<const Font*>* fallbackFonts = 0, GlyphOverflow* = 0) const;
</span><span class="cx"> int offsetForPositionForSimpleText(const TextRun&, float position, bool includePartialGlyphs) const;
</span><span class="cx"> void adjustSelectionRectForSimpleText(const TextRun&, LayoutRect& selectionRect, int from, int to) const;
</span><span class="lines">@@ -245,7 +244,6 @@
</span><span class="cx"> static std::pair<unsigned, bool> expansionOpportunityCountInternal(const UChar*, size_t length, TextDirection, ExpansionBehavior);
</span><span class="cx">
</span><span class="cx"> friend struct WidthIterator;
</span><del>- friend class SVGTextRunRenderingContext;
</del><span class="cx">
</span><span class="cx"> public:
</span><span class="cx"> #if ENABLE(IOS_TEXT_AUTOSIZING)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContext.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -384,7 +384,7 @@
</span><span class="cx">
</span><span class="cx"> float drawText(const FontCascade&, const TextRun&, const FloatPoint&, int from = 0, int to = -1);
</span><span class="cx"> void drawGlyphs(const FontCascade&, const Font&, const GlyphBuffer&, int from, int numGlyphs, const FloatPoint&);
</span><del>- void drawEmphasisMarks(const FontCascade&, const TextRun& , const AtomicString& mark, const FloatPoint&, int from = 0, int to = -1);
</del><ins>+ void drawEmphasisMarks(const FontCascade&, const TextRun&, const AtomicString& mark, const FloatPoint&, int from = 0, int to = -1);
</ins><span class="cx"> void drawBidiText(const FontCascade&, const TextRun&, const FloatPoint&, FontCascade::CustomFontNotReadyAction = FontCascade::DoNotPaintIfFontNotReady);
</span><span class="cx">
</span><span class="cx"> void applyState(const GraphicsContextState&);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsSVGGlyphcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/graphics/SVGGlyph.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/SVGGlyph.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/SVGGlyph.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,187 +0,0 @@
</span><del>-/*
- * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG_FONTS)
-#include "SVGGlyph.h"
-
-namespace WebCore {
-
-// Helper functions to determine the arabic character forms (initial, medial, terminal, isolated)
-enum ArabicCharShapingMode : uint8_t {
- SNone = 0,
- SRight = 1,
- SDual = 2
-};
-
-static const ArabicCharShapingMode s_arabicCharShapingMode[222] = {
- SRight, SRight, SRight, SRight, SDual , SRight, SDual , SRight, SDual , SDual , SDual , SDual , SDual , SRight, /* 0x0622 - 0x062F */
- SRight, SRight, SRight, SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SNone , SNone , SNone , SNone , SNone , /* 0x0630 - 0x063F */
- SNone , SDual , SDual , SDual , SDual , SDual , SDual , SRight, SDual , SDual , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x0640 - 0x064F */
- SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x0650 - 0x065F */
- SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x0660 - 0x066F */
- SNone , SRight, SRight, SRight, SNone , SRight, SRight, SRight, SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , /* 0x0670 - 0x067F */
- SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, /* 0x0680 - 0x068F */
- SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SDual , SDual , SDual , SDual , SDual , SDual , /* 0x0690 - 0x069F */
- SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , /* 0x06A0 - 0x06AF */
- SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , SDual , /* 0x06B0 - 0x06BF */
- SRight, SDual , SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SRight, SDual , SRight, SDual , SRight, /* 0x06C0 - 0x06CF */
- SDual , SDual , SRight, SRight, SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x06D0 - 0x06DF */
- SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , /* 0x06E0 - 0x06EF */
- SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SNone , SDual , SDual , SDual , SNone , SNone , SNone /* 0x06F0 - 0x06FF */
-};
-
-static inline SVGGlyph::ArabicForm processArabicFormDetection(const UChar& curChar, bool& lastCharShapesRight, SVGGlyph::ArabicForm* prevForm)
-{
- SVGGlyph::ArabicForm curForm;
-
- ArabicCharShapingMode shapingMode = SNone;
- if (curChar >= 0x0622 && curChar <= 0x06FF)
- shapingMode = s_arabicCharShapingMode[curChar - 0x0622];
-
- // Use a simple state machine to identify the actual arabic form
- // It depends on the order of the arabic form enum:
- // enum ArabicForm { None = 0, Isolated, Terminal, Initial, Medial };
-
- if (lastCharShapesRight && shapingMode == SDual) {
- if (prevForm) {
- int correctedForm = (int) *prevForm + 1;
- ASSERT(correctedForm >= SVGGlyph::None && correctedForm <= SVGGlyph::Medial);
- *prevForm = static_cast<SVGGlyph::ArabicForm>(correctedForm);
- }
-
- curForm = SVGGlyph::Initial;
- } else
- curForm = shapingMode == SNone ? SVGGlyph::None : SVGGlyph::Isolated;
-
- lastCharShapesRight = shapingMode != SNone;
- return curForm;
-}
-
-Vector<SVGGlyph::ArabicForm> charactersWithArabicForm(const String& input, bool rtl)
-{
- Vector<SVGGlyph::ArabicForm> forms;
- unsigned length = input.length();
-
- bool containsArabic = false;
- for (unsigned i = 0; i < length; ++i) {
- if (ublock_getCode(input[i]) == UBLOCK_ARABIC) {
- containsArabic = true;
- break;
- }
- }
-
- if (!containsArabic)
- return forms;
-
- bool lastCharShapesRight = false;
-
- // Start identifying arabic forms
- if (rtl) {
- for (int i = length - 1; i >= 0; --i)
- forms.insert(0, processArabicFormDetection(input[i], lastCharShapesRight, forms.isEmpty() ? 0 : &forms.first()));
- } else {
- for (unsigned i = 0; i < length; ++i)
- forms.append(processArabicFormDetection(input[i], lastCharShapesRight, forms.isEmpty() ? 0 : &forms.last()));
- }
-
- return forms;
-}
-
-static inline bool isCompatibleArabicForm(const SVGGlyph& identifier, const Vector<SVGGlyph::ArabicForm>& chars, unsigned startPosition, unsigned endPosition)
-{
- if (chars.isEmpty())
- return true;
-
- Vector<SVGGlyph::ArabicForm>::const_iterator realEnd = chars.end();
- Vector<SVGGlyph::ArabicForm>::const_iterator it = chars.begin() + static_cast<int>(startPosition);
- if (it >= realEnd)
- return true;
-
- Vector<SVGGlyph::ArabicForm>::const_iterator end = chars.begin() + static_cast<int>(endPosition);
- if (end >= realEnd)
- end = realEnd;
-
- for (; it != end; ++it) {
- if (*it != static_cast<SVGGlyph::ArabicForm>(identifier.arabicForm) && *it != SVGGlyph::None)
- return false;
- }
-
- return true;
-}
-
-bool isCompatibleGlyph(const SVGGlyph& identifier, bool isVerticalText, const String& language,
- const Vector<SVGGlyph::ArabicForm>& chars, unsigned startPosition, unsigned endPosition)
-{
- bool valid = true;
-
- // Check wheter orientation if glyph fits within the request
- switch (identifier.orientation) {
- case SVGGlyph::Vertical:
- valid = isVerticalText;
- break;
- case SVGGlyph::Horizontal:
- valid = !isVerticalText;
- break;
- case SVGGlyph::Both:
- break;
- }
-
- if (!valid)
- return false;
-
- // Check wheter languages are compatible
- if (!identifier.languages.isEmpty()) {
- // This glyph exists only in certain languages, if we're not specifying a
- // language on the referencing element we're unable to use this glyph.
- if (language.isEmpty())
- return false;
-
- // Split subcode from language, if existant.
- String languagePrefix;
-
- size_t subCodeSeparator = language.find('-');
- if (subCodeSeparator != notFound)
- languagePrefix = language.left(subCodeSeparator);
-
- Vector<String>::const_iterator it = identifier.languages.begin();
- Vector<String>::const_iterator end = identifier.languages.end();
-
- bool found = false;
- for (; it != end; ++it) {
- const String& cur = *it;
- if (cur == language || cur == languagePrefix) {
- found = true;
- break;
- }
- }
-
- if (!found)
- return false;
- }
-
- // Check wheter arabic form is compatible
- return isCompatibleArabicForm(identifier, chars, startPosition, endPosition);
-}
-
-}
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsSVGGlyphh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/graphics/SVGGlyph.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/SVGGlyph.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/SVGGlyph.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,116 +0,0 @@
</span><del>-/*
- * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2008 Rob Buis <buis@kde.org>
- * Copyright (C) Research In Motion Limited 2011. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef SVGGlyph_h
-#define SVGGlyph_h
-
-#if ENABLE(SVG_FONTS)
-#include "Glyph.h"
-#include "Path.h"
-
-#include <limits>
-#include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebCore {
-
-// Describe a glyph from a SVG Font.
-struct SVGGlyph {
- enum Orientation {
- Vertical,
- Horizontal,
- Both
- };
-
- // SVG Font depends on exactly this order.
- enum ArabicForm {
- None = 0,
- Isolated,
- Terminal,
- Initial,
- Medial
- };
-
- SVGGlyph()
- : unicodeStringLength(0)
- , priority(0)
- , horizontalAdvanceX(0)
- , verticalOriginX(0)
- , verticalOriginY(0)
- , verticalAdvanceY(0)
- , tableEntry(0)
- , isPartOfLigature(false)
- , orientation(Both)
- , arabicForm(None)
- {
- }
-
- // Used to mark our float properties as "to be inherited from SVGFontData"
- static float inheritedValue()
- {
- static float s_inheritedValue = std::numeric_limits<float>::infinity();
- return s_inheritedValue;
- }
-
- bool operator==(const SVGGlyph& other) const
- {
- return isPartOfLigature == other.isPartOfLigature
- && orientation == other.orientation
- && arabicForm == other.arabicForm
- && tableEntry == other.tableEntry
- && unicodeStringLength == other.unicodeStringLength
- && glyphName == other.glyphName
- && horizontalAdvanceX == other.horizontalAdvanceX
- && verticalOriginX == other.verticalOriginX
- && verticalOriginY == other.verticalOriginY
- && verticalAdvanceY == other.verticalAdvanceY
- && languages == other.languages;
- }
-
- Vector<String> languages;
-
- size_t unicodeStringLength;
- String glyphName;
-
- Path pathData;
- int priority;
-
- float horizontalAdvanceX;
- float verticalOriginX;
- float verticalOriginY;
- float verticalAdvanceY;
-
- Glyph tableEntry;
-
- unsigned isPartOfLigature : 1;
-
- unsigned orientation : 2; // Orientation
- unsigned arabicForm : 3; // ArabicForm
-};
-
-Vector<SVGGlyph::ArabicForm> charactersWithArabicForm(const String& input, bool rtl);
-bool isCompatibleGlyph(const SVGGlyph&, bool isVerticalText, const String& language, const Vector<SVGGlyph::ArabicForm>&, unsigned startPosition, unsigned endPosition);
-
-} // namespace WebCore
-
-#endif // ENABLE(SVG_FONTS)
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsTextRuncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/TextRun.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/TextRun.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/TextRun.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> struct ExpectedTextRunSize {
</span><del>- void* renderingContext;
</del><span class="cx"> StringView text;
</span><span class="cx"> unsigned integer1;
</span><span class="cx"> unsigned integer2;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsTextRunh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/TextRun.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/TextRun.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/TextRun.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -116,25 +116,7 @@
</span><span class="cx"> void setCharacterScanForCodePath(bool scan) { m_characterScanForCodePath = scan; }
</span><span class="cx"> StringView text() const { return m_text; }
</span><span class="cx">
</span><del>- class RenderingContext : public RefCounted<RenderingContext> {
- public:
- virtual ~RenderingContext() { }
-
-#if ENABLE(SVG_FONTS)
- virtual GlyphData glyphDataForCharacter(const FontCascade&, WidthIterator&, UChar32 character, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache) = 0;
- virtual void drawSVGGlyphs(GraphicsContext&, const Font&, const GlyphBuffer&, int from, int to, const FloatPoint&) const = 0;
- virtual float floatWidthUsingSVGFont(const FontCascade&, const TextRun&, int& charsConsumed, String& glyphName) const = 0;
- virtual bool applySVGKerning(const Font*, WidthIterator&, GlyphBuffer*, int from) const = 0;
- virtual std::unique_ptr<GlyphToPathTranslator> createGlyphToPathTranslator(const Font&, const TextRun*, const GlyphBuffer&, int from, int numGlyphs, const FloatPoint&) const = 0;
-#endif
- };
-
- RenderingContext* renderingContext() const { return m_renderingContext.get(); }
- void setRenderingContext(PassRefPtr<RenderingContext> context) { m_renderingContext = context; }
-
</del><span class="cx"> private:
</span><del>- RefPtr<RenderingContext> m_renderingContext;
-
</del><span class="cx"> StringView m_text;
</span><span class="cx"> unsigned m_charactersLength; // Marks the end of the characters buffer. Default equals to length of m_text.
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsWidthIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/WidthIterator.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/WidthIterator.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/WidthIterator.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -62,22 +62,6 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-GlyphData WidthIterator::glyphDataForCharacter(UChar32 character, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache)
-{
- ASSERT(m_font);
-
-#if ENABLE(SVG_FONTS)
- if (TextRun::RenderingContext* renderingContext = m_run.renderingContext())
- return renderingContext->glyphDataForCharacter(*m_font, *this, character, mirror, currentCharacter, advanceLength, normalizedSpacesStringCache);
-#else
- UNUSED_PARAM(currentCharacter);
- UNUSED_PARAM(advanceLength);
- UNUSED_PARAM(normalizedSpacesStringCache);
-#endif
-
- return m_font->glyphDataForCharacter(character, mirror);
-}
-
</del><span class="cx"> struct OriginalAdvancesForCharacterTreatedAsSpace {
</span><span class="cx"> public:
</span><span class="cx"> OriginalAdvancesForCharacterTreatedAsSpace(bool isSpace, float advanceBefore, float advanceAt)
</span><span class="lines">@@ -127,18 +111,7 @@
</span><span class="cx"> if (!ltr)
</span><span class="cx"> glyphBuffer->reverse(lastGlyphCount, glyphBufferSize - lastGlyphCount);
</span><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS)
- // We need to handle transforms on SVG fonts internally, since they are rendered internally.
- if (font->isSVGFont()) {
- // SVG font ligatures are handled during glyph selection, only kerning remaining.
- if (run().renderingContext() && m_enableKerning) {
- // FIXME: We could pass the necessary context down to this level so we can lazily create rendering contexts at this point.
- // However, a larger refactoring of SVG fonts might necessary to sidestep this problem completely.
- run().renderingContext()->applySVGKerning(font, *this, glyphBuffer, lastGlyphCount);
- }
- } else
-#endif
- font->applyTransforms(glyphBuffer->glyphs(lastGlyphCount), advances + lastGlyphCount, glyphBufferSize - lastGlyphCount, m_enableKerning, m_requiresShaping);
</del><ins>+ font->applyTransforms(glyphBuffer->glyphs(lastGlyphCount), advances + lastGlyphCount, glyphBufferSize - lastGlyphCount, m_enableKerning, m_requiresShaping);
</ins><span class="cx">
</span><span class="cx"> if (!ltr)
</span><span class="cx"> glyphBuffer->reverse(lastGlyphCount, glyphBufferSize - lastGlyphCount);
</span><span class="lines">@@ -219,7 +192,7 @@
</span><span class="cx"> while (textIterator.consume(character, clusterLength)) {
</span><span class="cx"> unsigned advanceLength = clusterLength;
</span><span class="cx"> int currentCharacter = textIterator.currentCharacter();
</span><del>- const GlyphData& glyphData = glyphDataForCharacter(character, rtl, currentCharacter, advanceLength, normalizedSpacesStringCache);
</del><ins>+ const GlyphData& glyphData = m_font->glyphDataForCharacter(character, rtl);
</ins><span class="cx"> Glyph glyph = glyphData.glyph;
</span><span class="cx"> if (!glyph) {
</span><span class="cx"> textIterator.advance(advanceLength);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsWidthIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/WidthIterator.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/WidthIterator.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/WidthIterator.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -22,9 +22,7 @@
</span><span class="cx"> #ifndef WidthIterator_h
</span><span class="cx"> #define WidthIterator_h
</span><span class="cx">
</span><del>-#include "FontCascade.h"
-#include "SVGGlyph.h"
-#include "TextRun.h"
</del><ins>+#include <unicode/umachine.h>
</ins><span class="cx"> #include <wtf/HashSet.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx">
</span><span class="lines">@@ -55,12 +53,6 @@
</span><span class="cx"> const TextRun& run() const { return m_run; }
</span><span class="cx"> float runWidthSoFar() const { return m_runWidthSoFar; }
</span><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS)
- String lastGlyphName() const { return m_lastGlyphName; }
- void setLastGlyphName(const String& name) { m_lastGlyphName = name; }
- Vector<SVGGlyph::ArabicForm>& arabicForms() { return m_arabicForms; }
-#endif
-
</del><span class="cx"> const FontCascade* m_font;
</span><span class="cx">
</span><span class="cx"> const TextRun& m_run;
</span><span class="lines">@@ -72,13 +64,8 @@
</span><span class="cx"> bool m_isAfterExpansion;
</span><span class="cx"> float m_finalRoundingWidth;
</span><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS)
- String m_lastGlyphName;
- Vector<SVGGlyph::ArabicForm> m_arabicForms;
-#endif
-
</del><span class="cx"> private:
</span><del>- GlyphData glyphDataForCharacter(UChar32, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache);
</del><ins>+ GlyphData glyphDataForCharacter(UChar32, bool mirror);
</ins><span class="cx"> template <typename TextIterator>
</span><span class="cx"> inline unsigned advanceInternal(TextIterator&, GlyphBuffer*);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscairoFontCairocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cairo/FontCairo.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cairo/FontCairo.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/cairo/FontCairo.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -220,7 +220,6 @@
</span><span class="cx"> , m_fontData(glyphBuffer.fontAt(m_index))
</span><span class="cx"> , m_translation(AffineTransform().translate(textOrigin.x(), textOrigin.y()))
</span><span class="cx"> {
</span><del>- moveToNextValidGlyph();
</del><span class="cx"> }
</span><span class="cx"> private:
</span><span class="cx"> bool containsMorePaths() override
</span><span class="lines">@@ -231,7 +230,6 @@
</span><span class="cx"> std::pair<float, float> extents() override;
</span><span class="cx"> GlyphUnderlineType underlineType() override;
</span><span class="cx"> void advance() override;
</span><del>- void moveToNextValidGlyph();
</del><span class="cx">
</span><span class="cx"> int m_index;
</span><span class="cx"> const TextRun& m_textRun;
</span><span class="lines">@@ -272,23 +270,13 @@
</span><span class="cx"> return computeUnderlineType(m_textRun, m_glyphBuffer, m_index);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void CairoGlyphToPathTranslator::moveToNextValidGlyph()
-{
- if (!m_fontData->isSVGFont())
- return;
- advance();
-}
-
</del><span class="cx"> void CairoGlyphToPathTranslator::advance()
</span><span class="cx"> {
</span><del>- do {
- GlyphBufferAdvance advance = m_glyphBuffer.advanceAt(m_index);
- m_translation = m_translation.translate(advance.width(), advance.height());
- ++m_index;
- if (m_index >= m_glyphBuffer.size())
- break;
</del><ins>+ GlyphBufferAdvance advance = m_glyphBuffer.advanceAt(m_index);
+ m_translation = m_translation.translate(advance.width(), advance.height());
+ ++m_index;
+ if (m_index < m_glyphBuffer.size())
</ins><span class="cx"> m_fontData = m_glyphBuffer.fontAt(m_index);
</span><del>- } while (m_fontData->isSVGFont() && m_index < m_glyphBuffer.size());
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DashArray FontCascade::dashesForIntersectionsWithRect(const TextRun& run, const FloatPoint& textOrigin, const FloatRect& lineExtents) const
</span><span class="lines">@@ -308,27 +296,14 @@
</span><span class="cx"> return DashArray();
</span><span class="cx">
</span><span class="cx"> // FIXME: Handle SVG + non-SVG interleaved runs. https://bugs.webkit.org/show_bug.cgi?id=133778
</span><del>- const Font* fontData = glyphBuffer.fontAt(0);
- std::unique_ptr<GlyphToPathTranslator> translator;
- bool isSVG = false;
</del><span class="cx"> FloatPoint origin = FloatPoint(textOrigin.x() + deltaX, textOrigin.y());
</span><del>- if (!fontData->isSVGFont())
- translator = std::make_unique<CairoGlyphToPathTranslator>(run, glyphBuffer, origin);
-#if ENABLE(SVG_FONTS)
- else {
- TextRun::RenderingContext* renderingContext = run.renderingContext();
- if (!renderingContext)
- return DashArray();
- translator = renderingContext->createGlyphToPathTranslator(*fontData, &run, glyphBuffer, 0, glyphBuffer.size(), origin);
- isSVG = true;
- }
-#endif
</del><ins>+ std::unique_ptr<GlyphToPathTranslator> translator = std::make_unique<CairoGlyphToPathTranslator>(run, glyphBuffer, origin);
</ins><span class="cx"> DashArray result;
</span><span class="cx"> for (int index = 0; translator->containsMorePaths(); ++index, translator->advance()) {
</span><span class="cx"> float centerOfLine = lineExtents.y() + (lineExtents.height() / 2);
</span><span class="cx"> GlyphIterationState info = GlyphIterationState(FloatPoint(), FloatPoint(), centerOfLine, lineExtents.x() + lineExtents.width(), lineExtents.x());
</span><span class="cx"> const Font* localFontData = glyphBuffer.fontAt(index);
</span><del>- if (!localFontData || (!isSVG && localFontData->isSVGFont()) || (isSVG && localFontData != fontData)) {
</del><ins>+ if (!localFontData) {
</ins><span class="cx"> // The advances will get all messed up if we do anything other than bail here.
</span><span class="cx"> result.clear();
</span><span class="cx"> break;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaFontCascadeCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -426,7 +426,6 @@
</span><span class="cx"> , m_fontData(glyphBuffer.fontAt(m_index))
</span><span class="cx"> , m_translation(CGAffineTransformScale(CGAffineTransformMakeTranslation(textOrigin.x(), textOrigin.y()), 1, -1))
</span><span class="cx"> {
</span><del>- moveToNextValidGlyph();
</del><span class="cx"> }
</span><span class="cx"> private:
</span><span class="cx"> bool containsMorePaths() override
</span><span class="lines">@@ -437,7 +436,6 @@
</span><span class="cx"> std::pair<float, float> extents() override;
</span><span class="cx"> GlyphUnderlineType underlineType() override;
</span><span class="cx"> void advance() override;
</span><del>- void moveToNextValidGlyph();
</del><span class="cx">
</span><span class="cx"> int m_index;
</span><span class="cx"> const TextRun& m_textRun;
</span><span class="lines">@@ -464,23 +462,13 @@
</span><span class="cx"> return computeUnderlineType(m_textRun, m_glyphBuffer, m_index);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MacGlyphToPathTranslator::moveToNextValidGlyph()
-{
- if (!m_fontData->isSVGFont())
- return;
- advance();
-}
-
</del><span class="cx"> void MacGlyphToPathTranslator::advance()
</span><span class="cx"> {
</span><del>- do {
- GlyphBufferAdvance advance = m_glyphBuffer.advanceAt(m_index);
- m_translation = CGAffineTransformTranslate(m_translation, advance.width(), advance.height());
- ++m_index;
- if (m_index >= m_glyphBuffer.size())
- break;
</del><ins>+ GlyphBufferAdvance advance = m_glyphBuffer.advanceAt(m_index);
+ m_translation = CGAffineTransformTranslate(m_translation, advance.width(), advance.height());
+ ++m_index;
+ if (m_index < m_glyphBuffer.size())
</ins><span class="cx"> m_fontData = m_glyphBuffer.fontAt(m_index);
</span><del>- } while (m_fontData->isSVGFont() && m_index < m_glyphBuffer.size());
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DashArray FontCascade::dashesForIntersectionsWithRect(const TextRun& run, const FloatPoint& textOrigin, const FloatRect& lineExtents) const
</span><span class="lines">@@ -500,24 +488,13 @@
</span><span class="cx"> return DashArray();
</span><span class="cx">
</span><span class="cx"> // FIXME: Handle SVG + non-SVG interleaved runs. https://bugs.webkit.org/show_bug.cgi?id=133778
</span><del>- const Font* fontData = glyphBuffer.fontAt(0);
- std::unique_ptr<GlyphToPathTranslator> translator;
- bool isSVG = false;
</del><span class="cx"> FloatPoint origin = FloatPoint(textOrigin.x() + deltaX, textOrigin.y());
</span><del>- if (!fontData->isSVGFont())
- translator = std::make_unique<MacGlyphToPathTranslator>(run, glyphBuffer, origin);
- else {
- TextRun::RenderingContext* renderingContext = run.renderingContext();
- if (!renderingContext)
- return DashArray();
- translator = renderingContext->createGlyphToPathTranslator(*fontData, &run, glyphBuffer, 0, glyphBuffer.size(), origin);
- isSVG = true;
- }
</del><ins>+ std::unique_ptr<GlyphToPathTranslator> translator = std::make_unique<MacGlyphToPathTranslator>(run, glyphBuffer, origin);
</ins><span class="cx"> DashArray result;
</span><span class="cx"> for (int index = 0; translator->containsMorePaths(); ++index, translator->advance()) {
</span><span class="cx"> GlyphIterationState info = GlyphIterationState(CGPointMake(0, 0), CGPointMake(0, 0), lineExtents.y(), lineExtents.y() + lineExtents.height(), lineExtents.x() + lineExtents.width(), lineExtents.x());
</span><span class="cx"> const Font* localFont = glyphBuffer.fontAt(index);
</span><del>- if (!localFont || (!isSVG && localFont->isSVGFont()) || (isSVG && localFont != fontData)) {
</del><ins>+ if (!localFont) {
</ins><span class="cx"> // The advances will get all messed up if we do anything other than bail here.
</span><span class="cx"> result.clear();
</span><span class="cx"> break;
</span><span class="lines">@@ -550,7 +527,7 @@
</span><span class="cx"> bool FontCascade::primaryFontIsSystemFont() const
</span><span class="cx"> {
</span><span class="cx"> const auto& fontData = primaryFont();
</span><del>- return !fontData.isSVGFont() && CTFontDescriptorIsSystemUIFont(adoptCF(CTFontCopyFontDescriptor(fontData.platformData().ctFont())).get());
</del><ins>+ return CTFontDescriptorIsSystemUIFont(adoptCF(CTFontCopyFontDescriptor(fontData.platformData().ctFont())).get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FontCascade::adjustSelectionRectForComplexText(const TextRun& run, LayoutRect& selectionRect, int from, int to) const
</span><span class="lines">@@ -599,7 +576,7 @@
</span><span class="cx"> if (glyphBuffer.isEmpty())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- drawEmphasisMarks(context, run, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
</del><ins>+ drawEmphasisMarks(context, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> float FontCascade::floatWidthForComplexText(const TextRun& run, HashSet<const Font*>* fallbackFonts, GlyphOverflow* glyphOverflow) const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsharfbuzzHarfBuzzShapercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -466,8 +466,6 @@
</span><span class="cx"> unsigned runIndex = m_run.rtl() ? m_harfBuzzRuns.size() - i - 1 : i;
</span><span class="cx"> HarfBuzzRun* currentRun = m_harfBuzzRuns[runIndex].get();
</span><span class="cx"> const Font* currentFontData = currentRun->fontData();
</span><del>- if (currentFontData->isSVGFont())
- return false;
</del><span class="cx">
</span><span class="cx"> hb_buffer_set_script(harfBuzzBuffer.get(), currentRun->script());
</span><span class="cx"> if (shouldSetDirection)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -51,13 +51,13 @@
</span><span class="cx"> public:
</span><span class="cx"> static bool isNeeded(RenderText& text, const FontCascade& font)
</span><span class="cx"> {
</span><del>- TextRun run = RenderBlock::constructTextRun(&text, font, &text, text.style());
</del><ins>+ TextRun run = RenderBlock::constructTextRun(&text, text.style());
</ins><span class="cx"> return font.codePath(run) == FontCascade::Complex;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> TextLayout(RenderText& text, const FontCascade& font, float xPos)
</span><span class="cx"> : m_font(font)
</span><del>- , m_run(constructTextRun(text, font, xPos))
</del><ins>+ , m_run(constructTextRun(text, xPos))
</ins><span class="cx"> , m_controller(std::make_unique<ComplexTextController>(m_font, m_run, true))
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -74,9 +74,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- static TextRun constructTextRun(RenderText& text, const FontCascade& font, float xPos)
</del><ins>+ static TextRun constructTextRun(RenderText& text, float xPos)
</ins><span class="cx"> {
</span><del>- TextRun run = RenderBlock::constructTextRun(&text, font, &text, text.style());
</del><ins>+ TextRun run = RenderBlock::constructTextRun(&text, text.style());
</ins><span class="cx"> run.setCharactersLength(text.textLength());
</span><span class="cx"> ASSERT(run.charactersLength() >= run.length());
</span><span class="cx"> run.setXPos(xPos);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinFontWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/FontWin.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/FontWin.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/platform/graphics/win/FontWin.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx"> if (glyphBuffer.isEmpty())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- drawEmphasisMarks(context, run, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
</del><ins>+ drawEmphasisMarks(context, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> float FontCascade::floatWidthForComplexText(const TextRun& run, HashSet<const Font*>* fallbackFonts, GlyphOverflow* glyphOverflow) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingEllipsisBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/EllipsisBox.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/EllipsisBox.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/EllipsisBox.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: Why is this always LTR? Fix by passing correct text run flags below.
</span><del>- context.drawText(font, RenderBlock::constructTextRun(&blockFlow(), font, m_str, lineStyle, AllowTrailingExpansion), LayoutPoint(x() + paintOffset.x(), y() + paintOffset.y() + lineStyle.fontMetrics().ascent()));
</del><ins>+ context.drawText(font, RenderBlock::constructTextRun(m_str, lineStyle, AllowTrailingExpansion), LayoutPoint(x() + paintOffset.x(), y() + paintOffset.y() + lineStyle.fontMetrics().ascent()));
</ins><span class="cx">
</span><span class="cx"> // Restore the regular fill color.
</span><span class="cx"> if (textColor != context.fillColor())
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> const RootInlineBox& rootBox = root();
</span><span class="cx"> // FIXME: Why is this always LTR? Fix by passing correct text run flags below.
</span><span class="cx"> LayoutRect selectionRect = LayoutRect(x(), y() + rootBox.selectionTopAdjustedForPrecedingBlock(), 0, rootBox.selectionHeightAdjustedForPrecedingBlock());
</span><del>- font.adjustSelectionRectForText(RenderBlock::constructTextRun(&blockFlow(), font, m_str, lineStyle, AllowTrailingExpansion), selectionRect);
</del><ins>+ font.adjustSelectionRectForText(RenderBlock::constructTextRun(m_str, lineStyle, AllowTrailingExpansion), selectionRect);
</ins><span class="cx"> // FIXME: use directional pixel snapping instead.
</span><span class="cx"> return enclosingIntRect(selectionRect);
</span><span class="cx"> }
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx"> GraphicsContextStateSaver stateSaver(context);
</span><span class="cx"> // FIXME: Why is this always LTR? Fix by passing correct text run flags below.
</span><span class="cx"> LayoutRect selectionRect = LayoutRect(x() + paintOffset.x(), y() + paintOffset.y() + rootBox.selectionTop(), 0, rootBox.selectionHeight());
</span><del>- TextRun run = RenderBlock::constructTextRun(&blockFlow(), font, m_str, style, AllowTrailingExpansion);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(m_str, style, AllowTrailingExpansion);
</ins><span class="cx"> font.adjustSelectionRectForText(run, selectionRect, 0, -1);
</span><span class="cx"> context.fillRect(snapRectToDevicePixelsWithWritingDirection(selectionRect, renderer().document().deviceScaleFactor(), run.ltr()), c);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineTextBox.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineTextBox.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/InlineTextBox.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> #include "RenderTheme.h"
</span><span class="cx"> #include "RenderView.h"
</span><span class="cx"> #include "Settings.h"
</span><del>-#include "SVGTextRunRenderingContext.h"
</del><span class="cx"> #include "Text.h"
</span><span class="cx"> #include "TextDecorationPainter.h"
</span><span class="cx"> #include "TextPaintStyle.h"
</span><span class="lines">@@ -206,7 +205,7 @@
</span><span class="cx">
</span><span class="cx"> String hyphenatedStringBuffer;
</span><span class="cx"> bool respectHyphen = ePos == m_len && hasHyphen();
</span><del>- TextRun textRun = constructTextRun(lineStyle, font, respectHyphen ? &hyphenatedStringBuffer : 0);
</del><ins>+ TextRun textRun = constructTextRun(lineStyle, respectHyphen ? &hyphenatedStringBuffer : 0);
</ins><span class="cx">
</span><span class="cx"> LayoutRect selectionRect = LayoutRect(LayoutPoint(logicalLeft(), selectionTop), LayoutSize(m_logicalWidth, selectionHeight));
</span><span class="cx"> // Avoid computing the font width when the entire line box is selected as an optimization.
</span><span class="lines">@@ -513,7 +512,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String hyphenatedStringBuffer;
</span><del>- TextRun textRun = constructTextRun(lineStyle, font, string, maximumLength, hasHyphen() ? &hyphenatedStringBuffer : nullptr);
</del><ins>+ TextRun textRun = constructTextRun(lineStyle, string, maximumLength, hasHyphen() ? &hyphenatedStringBuffer : nullptr);
</ins><span class="cx"> if (hasHyphen())
</span><span class="cx"> length = textRun.length();
</span><span class="cx">
</span><span class="lines">@@ -650,7 +649,7 @@
</span><span class="cx">
</span><span class="cx"> String hyphenatedStringBuffer;
</span><span class="cx"> bool respectHyphen = ePos == length && hasHyphen();
</span><del>- TextRun textRun = constructTextRun(style, font, string, renderer().textLength() - m_start, respectHyphen ? &hyphenatedStringBuffer : nullptr);
</del><ins>+ TextRun textRun = constructTextRun(style, string, renderer().textLength() - m_start, respectHyphen ? &hyphenatedStringBuffer : nullptr);
</ins><span class="cx"> if (respectHyphen)
</span><span class="cx"> ePos = textRun.length();
</span><span class="cx">
</span><span class="lines">@@ -688,7 +687,7 @@
</span><span class="cx">
</span><span class="cx"> LayoutUnit deltaY = renderer().style().isFlippedLinesWritingMode() ? selectionBottom() - logicalBottom() : logicalTop() - selectionTop();
</span><span class="cx"> LayoutRect selectionRect = LayoutRect(boxOrigin.x(), boxOrigin.y() - deltaY, 0, selectionHeight());
</span><del>- TextRun textRun = constructTextRun(style, font);
</del><ins>+ TextRun textRun = constructTextRun(style);
</ins><span class="cx"> font.adjustSelectionRectForText(textRun, selectionRect, sPos, ePos);
</span><span class="cx"> context.fillRect(snapRectToDevicePixelsWithWritingDirection(selectionRect, renderer().document().deviceScaleFactor(), textRun.ltr()), compositionColor);
</span><span class="cx"> }
</span><span class="lines">@@ -781,7 +780,7 @@
</span><span class="cx"> int deltaY = renderer().style().isFlippedLinesWritingMode() ? selectionBottom() - logicalBottom() : logicalTop() - selectionTop();
</span><span class="cx"> int selHeight = selectionHeight();
</span><span class="cx"> FloatPoint startPoint(boxOrigin.x(), boxOrigin.y() - deltaY);
</span><del>- TextRun run = constructTextRun(style, font);
</del><ins>+ TextRun run = constructTextRun(style);
</ins><span class="cx">
</span><span class="cx"> LayoutRect selectionRect = LayoutRect(startPoint, FloatSize(0, selHeight));
</span><span class="cx"> font.adjustSelectionRectForText(run, selectionRect, startPosition, endPosition);
</span><span class="lines">@@ -826,7 +825,7 @@
</span><span class="cx">
</span><span class="cx"> int sPos = std::max<int>(marker.startOffset() - m_start, 0);
</span><span class="cx"> int ePos = std::min<int>(marker.endOffset() - m_start, m_len);
</span><del>- TextRun run = constructTextRun(style, font);
</del><ins>+ TextRun run = constructTextRun(style);
</ins><span class="cx"> font.adjustSelectionRectForText(run, selectionRect, sPos, ePos);
</span><span class="cx">
</span><span class="cx"> if (selectionRect.isEmpty())
</span><span class="lines">@@ -987,7 +986,7 @@
</span><span class="cx">
</span><span class="cx"> const RenderStyle& lineStyle = this->lineStyle();
</span><span class="cx"> const FontCascade& font = fontToUse(lineStyle, renderer());
</span><del>- return font.offsetForPosition(constructTextRun(lineStyle, font), lineOffset - logicalLeft(), includePartialGlyphs);
</del><ins>+ return font.offsetForPosition(constructTextRun(lineStyle), lineOffset - logicalLeft(), includePartialGlyphs);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> float InlineTextBox::positionForOffset(int offset) const
</span><span class="lines">@@ -1004,12 +1003,12 @@
</span><span class="cx"> int to = !isLeftToRightDirection() ? m_len : offset - m_start;
</span><span class="cx"> // FIXME: Do we need to add rightBearing here?
</span><span class="cx"> LayoutRect selectionRect = LayoutRect(logicalLeft(), 0, 0, 0);
</span><del>- TextRun run = constructTextRun(lineStyle, font);
</del><ins>+ TextRun run = constructTextRun(lineStyle);
</ins><span class="cx"> font.adjustSelectionRectForText(run, selectionRect, from, to);
</span><span class="cx"> return snapRectToDevicePixelsWithWritingDirection(selectionRect, renderer().document().deviceScaleFactor(), run.ltr()).maxX();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun InlineTextBox::constructTextRun(const RenderStyle& style, const FontCascade& font, String* hyphenatedStringBuffer) const
</del><ins>+TextRun InlineTextBox::constructTextRun(const RenderStyle& style, String* hyphenatedStringBuffer) const
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(renderer().text());
</span><span class="cx">
</span><span class="lines">@@ -1020,10 +1019,10 @@
</span><span class="cx"> if (string.length() != length || startPos)
</span><span class="cx"> string = string.substringSharingImpl(startPos, length);
</span><span class="cx">
</span><del>- return constructTextRun(style, font, string, renderer().textLength() - startPos, hyphenatedStringBuffer);
</del><ins>+ return constructTextRun(style, string, renderer().textLength() - startPos, hyphenatedStringBuffer);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun InlineTextBox::constructTextRun(const RenderStyle& style, const FontCascade& font, String string, unsigned maximumLength, String* hyphenatedStringBuffer) const
</del><ins>+TextRun InlineTextBox::constructTextRun(const RenderStyle& style, String string, unsigned maximumLength, String* hyphenatedStringBuffer) const
</ins><span class="cx"> {
</span><span class="cx"> unsigned length = string.length();
</span><span class="cx">
</span><span class="lines">@@ -1038,8 +1037,6 @@
</span><span class="cx">
</span><span class="cx"> TextRun run(string, textPos(), expansion(), expansionBehavior(), direction(), dirOverride() || style.rtlOrdering() == VisualOrder, !renderer().canUseSimpleFontCodePath());
</span><span class="cx"> run.setTabSize(!style.collapseWhiteSpace(), style.tabSize());
</span><del>- if (font.primaryFont().isSVGFont())
- run.setRenderingContext(SVGTextRunRenderingContext::create(renderer()));
</del><span class="cx">
</span><span class="cx"> // Propagate the maximum length of the characters buffer to the TextRun, even when we're only processing a substring.
</span><span class="cx"> run.setCharactersLength(maximumLength);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineTextBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineTextBox.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineTextBox.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/InlineTextBox.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -112,8 +112,8 @@
</span><span class="cx"> LayoutUnit selectionBottom() const;
</span><span class="cx"> LayoutUnit selectionHeight() const;
</span><span class="cx">
</span><del>- TextRun constructTextRun(const RenderStyle&, const FontCascade&, String* hyphenatedStringBuffer = nullptr) const;
- TextRun constructTextRun(const RenderStyle&, const FontCascade&, String, unsigned maximumLength, String* hyphenatedStringBuffer = nullptr) const;
</del><ins>+ TextRun constructTextRun(const RenderStyle&, String* hyphenatedStringBuffer = nullptr) const;
+ TextRun constructTextRun(const RenderStyle&, String, unsigned maximumLength, String* hyphenatedStringBuffer = nullptr) const;
</ins><span class="cx">
</span><span class="cx"> public:
</span><span class="cx"> FloatRect calculateBoundaries() const override { return FloatRect(x(), y(), width(), height()); }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -65,7 +65,6 @@
</span><span class="cx"> #include "RenderTheme.h"
</span><span class="cx"> #include "RenderTreePosition.h"
</span><span class="cx"> #include "RenderView.h"
</span><del>-#include "SVGTextRunRenderingContext.h"
</del><span class="cx"> #include "Settings.h"
</span><span class="cx"> #include "ShadowRoot.h"
</span><span class="cx"> #include "TextBreakIterator.h"
</span><span class="lines">@@ -3703,7 +3702,7 @@
</span><span class="cx"> return "RenderBlock";
</span><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun RenderBlock::constructTextRun(RenderObject* context, const FontCascade& font, StringView stringView, const RenderStyle& style, ExpansionBehavior expansion, TextRunFlags flags)
</del><ins>+TextRun RenderBlock::constructTextRun(StringView stringView, const RenderStyle& style, ExpansionBehavior expansion, TextRunFlags flags)
</ins><span class="cx"> {
</span><span class="cx"> TextDirection textDirection = LTR;
</span><span class="cx"> bool directionalOverride = style.rtlOrdering() == VisualOrder;
</span><span class="lines">@@ -3713,40 +3712,34 @@
</span><span class="cx"> if (flags & RespectDirectionOverride)
</span><span class="cx"> directionalOverride |= isOverride(style.unicodeBidi());
</span><span class="cx"> }
</span><del>- TextRun run(stringView, 0, 0, expansion, textDirection, directionalOverride);
- if (font.primaryFont().isSVGFont()) {
- ASSERT(context); // FIXME: Thread a RenderObject& to this point so we don't have to dereference anything.
- run.setRenderingContext(SVGTextRunRenderingContext::create(*context));
- }
-
- return run;
</del><ins>+ return TextRun(stringView, 0, 0, expansion, textDirection, directionalOverride);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun RenderBlock::constructTextRun(RenderObject* context, const FontCascade& font, const String& string, const RenderStyle& style, ExpansionBehavior expansion, TextRunFlags flags)
</del><ins>+TextRun RenderBlock::constructTextRun(const String& string, const RenderStyle& style, ExpansionBehavior expansion, TextRunFlags flags)
</ins><span class="cx"> {
</span><del>- return constructTextRun(context, font, StringView(string), style, expansion, flags);
</del><ins>+ return constructTextRun(StringView(string), style, expansion, flags);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun RenderBlock::constructTextRun(RenderObject* context, const FontCascade& font, const RenderText* text, const RenderStyle& style, ExpansionBehavior expansion)
</del><ins>+TextRun RenderBlock::constructTextRun(const RenderText* text, const RenderStyle& style, ExpansionBehavior expansion)
</ins><span class="cx"> {
</span><del>- return constructTextRun(context, font, text->stringView(), style, expansion);
</del><ins>+ return constructTextRun(text->stringView(), style, expansion);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun RenderBlock::constructTextRun(RenderObject* context, const FontCascade& font, const RenderText* text, unsigned offset, unsigned length, const RenderStyle& style, ExpansionBehavior expansion)
</del><ins>+TextRun RenderBlock::constructTextRun(const RenderText* text, unsigned offset, unsigned length, const RenderStyle& style, ExpansionBehavior expansion)
</ins><span class="cx"> {
</span><span class="cx"> unsigned stop = offset + length;
</span><span class="cx"> ASSERT(stop <= text->textLength());
</span><del>- return constructTextRun(context, font, text->stringView(offset, stop), style, expansion);
</del><ins>+ return constructTextRun(text->stringView(offset, stop), style, expansion);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun RenderBlock::constructTextRun(RenderObject* context, const FontCascade& font, const LChar* characters, int length, const RenderStyle& style, ExpansionBehavior expansion)
</del><ins>+TextRun RenderBlock::constructTextRun(const LChar* characters, int length, const RenderStyle& style, ExpansionBehavior expansion)
</ins><span class="cx"> {
</span><del>- return constructTextRun(context, font, StringView(characters, length), style, expansion);
</del><ins>+ return constructTextRun(StringView(characters, length), style, expansion);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-TextRun RenderBlock::constructTextRun(RenderObject* context, const FontCascade& font, const UChar* characters, int length, const RenderStyle& style, ExpansionBehavior expansion)
</del><ins>+TextRun RenderBlock::constructTextRun(const UChar* characters, int length, const RenderStyle& style, ExpansionBehavior expansion)
</ins><span class="cx"> {
</span><del>- return constructTextRun(context, font, StringView(characters, length), style, expansion);
</del><ins>+ return constructTextRun(StringView(characters, length), style, expansion);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RenderBlock* RenderBlock::createAnonymousWithParentRendererAndDisplay(const RenderObject* parent, EDisplay display)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderBlock.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -205,17 +205,17 @@
</span><span class="cx"> return obj.isFloating() || (obj.isOutOfFlowPositioned() && !obj.style().isOriginalDisplayInlineType() && !obj.container()->isRenderInline());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static TextRun constructTextRun(RenderObject* context, const FontCascade&, StringView, const RenderStyle&,
</del><ins>+ static TextRun constructTextRun(StringView, const RenderStyle&,
</ins><span class="cx"> ExpansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion, TextRunFlags = DefaultTextRunFlags);
</span><del>- static TextRun constructTextRun(RenderObject* context, const FontCascade&, const String&, const RenderStyle&,
</del><ins>+ static TextRun constructTextRun(const String&, const RenderStyle&,
</ins><span class="cx"> ExpansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion, TextRunFlags = DefaultTextRunFlags);
</span><del>- static TextRun constructTextRun(RenderObject* context, const FontCascade&, const RenderText*, const RenderStyle&,
</del><ins>+ static TextRun constructTextRun(const RenderText*, const RenderStyle&,
</ins><span class="cx"> ExpansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion);
</span><del>- static TextRun constructTextRun(RenderObject* context, const FontCascade&, const RenderText*, unsigned offset, unsigned length, const RenderStyle&,
</del><ins>+ static TextRun constructTextRun(const RenderText*, unsigned offset, unsigned length, const RenderStyle&,
</ins><span class="cx"> ExpansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion);
</span><del>- static TextRun constructTextRun(RenderObject* context, const FontCascade&, const LChar* characters, int length, const RenderStyle&,
</del><ins>+ static TextRun constructTextRun(const LChar* characters, int length, const RenderStyle&,
</ins><span class="cx"> ExpansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion);
</span><del>- static TextRun constructTextRun(RenderObject* context, const FontCascade&, const UChar* characters, int length, const RenderStyle&,
</del><ins>+ static TextRun constructTextRun(const UChar* characters, int length, const RenderStyle&,
</ins><span class="cx"> ExpansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion);
</span><span class="cx">
</span><span class="cx"> LayoutUnit paginationStrut() const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -4020,7 +4020,7 @@
</span><span class="cx"> RenderText& renderText = downcast<RenderText>(*trailingSpaceChild);
</span><span class="cx"> const UChar space = ' ';
</span><span class="cx"> const FontCascade& font = renderText.style().fontCascade(); // FIXME: This ignores first-line.
</span><del>- float spaceWidth = font.width(RenderBlock::constructTextRun(&renderText, font, &space, 1, renderText.style()));
</del><ins>+ float spaceWidth = font.width(RenderBlock::constructTextRun(&space, 1, renderText.style()));
</ins><span class="cx"> inlineMax -= spaceWidth + font.wordSpacing();
</span><span class="cx"> if (inlineMin > inlineMax)
</span><span class="cx"> inlineMin = inlineMax;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -2079,8 +2079,8 @@
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><span class="cx"> static NeverDestroyed<AtomicString> ellipsisStr(&horizontalEllipsis, 1);
</span><span class="cx"> const FontCascade& firstLineFont = firstLineStyle().fontCascade();
</span><del>- float firstLineEllipsisWidth = firstLineFont.width(constructTextRun(this, firstLineFont, &horizontalEllipsis, 1, firstLineStyle()));
- float ellipsisWidth = (font == firstLineFont) ? firstLineEllipsisWidth : font.width(constructTextRun(this, font, &horizontalEllipsis, 1, style()));
</del><ins>+ float firstLineEllipsisWidth = firstLineFont.width(constructTextRun(&horizontalEllipsis, 1, firstLineStyle()));
+ float ellipsisWidth = (font == firstLineFont) ? firstLineEllipsisWidth : font.width(constructTextRun(&horizontalEllipsis, 1, style()));
</ins><span class="cx">
</span><span class="cx"> // For LTR text truncation, we want to get the right edge of our padding box, and then we want to see
</span><span class="cx"> // if the right edge of a line box exceeds that. For RTL, we use the left edge of the padding box and
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderDeprecatedFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -996,10 +996,10 @@
</span><span class="cx"> LayoutUnit totalWidth;
</span><span class="cx"> InlineBox* anchorBox = lastLine->lastChild();
</span><span class="cx"> if (anchorBox && anchorBox->renderer().style().isLink())
</span><del>- totalWidth = anchorBox->logicalWidth() + font.width(constructTextRun(this, font, ellipsisAndSpace, 2, style()));
</del><ins>+ totalWidth = anchorBox->logicalWidth() + font.width(constructTextRun(ellipsisAndSpace, 2, style()));
</ins><span class="cx"> else {
</span><span class="cx"> anchorBox = nullptr;
</span><del>- totalWidth = font.width(constructTextRun(this, font, &horizontalEllipsis, 1, style()));
</del><ins>+ totalWidth = font.width(constructTextRun(&horizontalEllipsis, 1, style()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // See if this width can be accommodated on the last visible line
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFileUploadControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> if (paintInfo.phase == PaintPhaseForeground) {
</span><span class="cx"> const String& displayedFilename = fileTextValue();
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- TextRun textRun = constructTextRun(this, font, displayedFilename, style(), AllowTrailingExpansion, RespectDirection | RespectDirectionOverride);
</del><ins>+ TextRun textRun = constructTextRun(displayedFilename, style(), AllowTrailingExpansion, RespectDirection | RespectDirectionOverride);
</ins><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> int iconHeight = nodeHeight(uploadButton());
</span><span class="lines">@@ -202,11 +202,10 @@
</span><span class="cx"> const String characterAsString = String(&character, 1);
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><span class="cx"> // FIXME: Remove the need for this const_cast by making constructTextRun take a const RenderObject*.
</span><del>- RenderFileUploadControl* renderer = const_cast<RenderFileUploadControl*>(this);
- float minDefaultLabelWidth = defaultWidthNumChars * font.width(constructTextRun(renderer, font, characterAsString, style(), AllowTrailingExpansion));
</del><ins>+ float minDefaultLabelWidth = defaultWidthNumChars * font.width(constructTextRun(characterAsString, style(), AllowTrailingExpansion));
</ins><span class="cx">
</span><span class="cx"> const String label = theme().fileListDefaultLabel(inputElement().multiple());
</span><del>- float defaultLabelWidth = font.width(constructTextRun(renderer, font, label, style(), AllowTrailingExpansion));
</del><ins>+ float defaultLabelWidth = font.width(constructTextRun(label, style(), AllowTrailingExpansion));
</ins><span class="cx"> if (HTMLInputElement* button = uploadButton())
</span><span class="cx"> if (RenderObject* buttonRenderer = button->renderer())
</span><span class="cx"> defaultLabelWidth += buttonRenderer->maxPreferredLogicalWidth() + afterButtonSpacing;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderImage.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderImage.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderImage.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx"> // we have an alt and the user meant it (its not a text we invented)
</span><span class="cx"> if (!m_altText.isEmpty()) {
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- IntSize paddedTextSize(paddingWidth + std::min(ceilf(font.width(RenderBlock::constructTextRun(this, font, m_altText, style()))), maxAltTextWidth), paddingHeight + std::min(font.fontMetrics().height(), maxAltTextHeight));
</del><ins>+ IntSize paddedTextSize(paddingWidth + std::min(ceilf(font.width(RenderBlock::constructTextRun(m_altText, style()))), maxAltTextWidth), paddingHeight + std::min(font.fontMetrics().height(), maxAltTextHeight));
</ins><span class="cx"> imageSize = imageSize.expandedTo(paddedTextSize);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -439,7 +439,7 @@
</span><span class="cx">
</span><span class="cx"> // Only draw the alt text if it'll fit within the content box,
</span><span class="cx"> // and only if it fits above the error image.
</span><del>- TextRun textRun = RenderBlock::constructTextRun(this, font, text, style());
</del><ins>+ TextRun textRun = RenderBlock::constructTextRun(text, style());
</ins><span class="cx"> LayoutUnit textWidth = font.width(textRun);
</span><span class="cx"> if (errorPictureDrawn) {
</span><span class="cx"> if (usableWidth >= textWidth && fontMetrics.height() <= imageOffset.height())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx"> if (!text.isEmpty()) {
</span><span class="cx"> applyTextTransform(style(), text, ' ');
</span><span class="cx"> // FIXME: Why is this always LTR? Can't text direction affect the width?
</span><del>- TextRun textRun = constructTextRun(this, itemFont, text, style(), AllowTrailingExpansion);
</del><ins>+ TextRun textRun = constructTextRun(text, style(), AllowTrailingExpansion);
</ins><span class="cx"> float textWidth = itemFont.width(textRun);
</span><span class="cx"> width = std::max(width, textWidth);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListMarkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListMarker.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListMarker.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderListMarker.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1314,7 +1314,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- TextRun textRun = RenderBlock::constructTextRun(this, font, m_text, style());
</del><ins>+ TextRun textRun = RenderBlock::constructTextRun(m_text, style());
</ins><span class="cx">
</span><span class="cx"> GraphicsContextStateSaver stateSaver(context, false);
</span><span class="cx"> if (!style().isHorizontalWritingMode()) {
</span><span class="lines">@@ -1543,7 +1543,7 @@
</span><span class="cx"> break;
</span><span class="cx"> case Asterisks:
</span><span class="cx"> case Footnotes: {
</span><del>- TextRun run = RenderBlock::constructTextRun(this, font, m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</ins><span class="cx"> logicalWidth = font.width(run); // no suffix for these types
</span><span class="cx"> }
</span><span class="cx"> break;
</span><span class="lines">@@ -1630,10 +1630,10 @@
</span><span class="cx"> if (m_text.isEmpty())
</span><span class="cx"> logicalWidth = 0;
</span><span class="cx"> else {
</span><del>- TextRun run = RenderBlock::constructTextRun(this, font, m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</ins><span class="cx"> LayoutUnit itemWidth = font.width(run);
</span><span class="cx"> UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem.value()), ' ' };
</span><del>- LayoutUnit suffixSpaceWidth = font.width(RenderBlock::constructTextRun(this, font, suffixSpace, 2, style()));
</del><ins>+ LayoutUnit suffixSpaceWidth = font.width(RenderBlock::constructTextRun(suffixSpace, 2, style()));
</ins><span class="cx"> logicalWidth = itemWidth + suffixSpaceWidth;
</span><span class="cx"> }
</span><span class="cx"> break;
</span><span class="lines">@@ -1763,7 +1763,7 @@
</span><span class="cx"> case Asterisks:
</span><span class="cx"> case Footnotes: {
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- TextRun run = RenderBlock::constructTextRun(this, font, m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</ins><span class="cx"> relativeRect = FloatRect(0, 0, font.width(run), font.fontMetrics().height());
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="lines">@@ -1857,10 +1857,10 @@
</span><span class="cx"> if (m_text.isEmpty())
</span><span class="cx"> return FloatRect();
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- TextRun run = RenderBlock::constructTextRun(this, font, m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(m_text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</ins><span class="cx"> float itemWidth = font.width(run);
</span><span class="cx"> UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem.value()), ' ' };
</span><del>- float suffixSpaceWidth = font.width(RenderBlock::constructTextRun(this, font, suffixSpace, 2, style()));
</del><ins>+ float suffixSpaceWidth = font.width(RenderBlock::constructTextRun(suffixSpace, 2, style()));
</ins><span class="cx"> relativeRect = FloatRect(0, 0, itemWidth + suffixSpaceWidth, font.fontMetrics().height());
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -222,13 +222,13 @@
</span><span class="cx"> optionWidth += minimumValueForLength(optionStyle->textIndent(), 0);
</span><span class="cx"> if (!text.isEmpty()) {
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- TextRun run = RenderBlock::constructTextRun(this, font, text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</ins><span class="cx"> optionWidth += font.width(run);
</span><span class="cx"> }
</span><span class="cx"> maxOptionWidth = std::max(maxOptionWidth, optionWidth);
</span><span class="cx"> } else if (!text.isEmpty()) {
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- TextRun run = RenderBlock::constructTextRun(this, font, text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(text, style(), AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</ins><span class="cx"> maxOptionWidth = std::max(maxOptionWidth, font.width(run));
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderText.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderText.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderText.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -492,7 +492,7 @@
</span><span class="cx"> return w;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- TextRun run = RenderBlock::constructTextRun(const_cast<RenderText*>(this), f, this, start, len, style);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(this, start, len, style);
</ins><span class="cx"> run.setCharactersLength(textLength() - start);
</span><span class="cx"> ASSERT(run.charactersLength() >= run.length());
</span><span class="cx">
</span><span class="lines">@@ -627,7 +627,7 @@
</span><span class="cx"> const FontCascade& font = style.fontCascade(); // FIXME: This ignores first-line.
</span><span class="cx"> if (stripFrontSpaces) {
</span><span class="cx"> const UChar space = ' ';
</span><del>- float spaceWidth = font.width(RenderBlock::constructTextRun(this, font, &space, 1, style));
</del><ins>+ float spaceWidth = font.width(RenderBlock::constructTextRun(&space, 1, style));
</ins><span class="cx"> maxW -= spaceWidth;
</span><span class="cx"> } else
</span><span class="cx"> maxW += font.wordSpacing();
</span><span class="lines">@@ -720,7 +720,7 @@
</span><span class="cx"> static inline float hyphenWidth(RenderText* renderer, const FontCascade& font)
</span><span class="cx"> {
</span><span class="cx"> const RenderStyle& style = renderer->style();
</span><del>- return font.width(RenderBlock::constructTextRun(renderer, font, style.hyphenString().string(), style));
</del><ins>+ return font.width(RenderBlock::constructTextRun(style.hyphenString().string(), style));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static float maxWordFragmentWidth(RenderText* renderer, const RenderStyle& style, const FontCascade& font, StringView word, int minimumPrefixLength, unsigned minimumSuffixLength, int& suffixStart, HashSet<const Font*>& fallbackFonts, GlyphOverflow& glyphOverflow)
</span><span class="lines">@@ -747,7 +747,7 @@
</span><span class="cx"> fragmentWithHyphen.append(word.substring(suffixStart, fragmentLength));
</span><span class="cx"> fragmentWithHyphen.append(style.hyphenString());
</span><span class="cx">
</span><del>- TextRun run = RenderBlock::constructTextRun(renderer, font, fragmentWithHyphen.toString(), style);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(fragmentWithHyphen.toString(), style);
</ins><span class="cx"> run.setCharactersLength(fragmentWithHyphen.length());
</span><span class="cx"> run.setCharacterScanForCodePath(!renderer->canUseSimpleFontCodePath());
</span><span class="cx"> float fragmentWidth = font.width(run, &fallbackFonts, &glyphOverflow);
</span><span class="lines">@@ -794,7 +794,7 @@
</span><span class="cx">
</span><span class="cx"> // Non-zero only when kerning is enabled, in which case we measure words with their trailing
</span><span class="cx"> // space, then subtract its width.
</span><del>- WordTrailingSpace wordTrailingSpace(*this, style);
</del><ins>+ WordTrailingSpace wordTrailingSpace(style);
</ins><span class="cx"> // If automatic hyphenation is allowed, we keep track of the width of the widest word (or word
</span><span class="cx"> // fragment) encountered so far, and only try hyphenating words that are wider.
</span><span class="cx"> float maxWordWidth = std::numeric_limits<float>::max();
</span><span class="lines">@@ -973,7 +973,7 @@
</span><span class="cx"> m_maxWidth = currMaxWidth;
</span><span class="cx"> currMaxWidth = 0;
</span><span class="cx"> } else {
</span><del>- TextRun run = RenderBlock::constructTextRun(this, font, this, i, 1, style);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(this, i, 1, style);
</ins><span class="cx"> run.setCharactersLength(len - i);
</span><span class="cx"> ASSERT(run.charactersLength() >= run.length());
</span><span class="cx"> run.setTabSize(!style.collapseWhiteSpace(), style.tabSize());
</span><span class="lines">@@ -1320,7 +1320,7 @@
</span><span class="cx"> } else
</span><span class="cx"> w = widthFromCache(f, from, len, xPos, fallbackFonts, glyphOverflow, style);
</span><span class="cx"> } else {
</span><del>- TextRun run = RenderBlock::constructTextRun(const_cast<RenderText*>(this), f, this, from, len, style);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(this, from, len, style);
</ins><span class="cx"> run.setCharactersLength(textLength() - from);
</span><span class="cx"> ASSERT(run.charactersLength() >= run.length());
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx"> const UChar ch = '0';
</span><span class="cx"> const String str = String(&ch, 1);
</span><span class="cx"> const FontCascade& font = style().fontCascade();
</span><del>- TextRun textRun = constructTextRun(this, font, str, style(), AllowTrailingExpansion);
</del><ins>+ TextRun textRun = constructTextRun(str, style(), AllowTrailingExpansion);
</ins><span class="cx"> return font.width(textRun);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -568,20 +568,18 @@
</span><span class="cx">
</span><span class="cx"> class RenderThemeMeasureTextClient : public MeasureTextClient {
</span><span class="cx"> public:
</span><del>- RenderThemeMeasureTextClient(const FontCascade& font, RenderObject& renderObject, const RenderStyle& style)
</del><ins>+ RenderThemeMeasureTextClient(const FontCascade& font, const RenderStyle& style)
</ins><span class="cx"> : m_font(font)
</span><del>- , m_renderObject(renderObject)
</del><span class="cx"> , m_style(style)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> float measureText(const String& string) const override
</span><span class="cx"> {
</span><del>- TextRun run = RenderBlock::constructTextRun(&m_renderObject, m_font, string, m_style, AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(string, m_style, AllowTrailingExpansion | ForbidLeadingExpansion, DefaultTextRunFlags);
</ins><span class="cx"> return m_font.width(run);
</span><span class="cx"> }
</span><span class="cx"> private:
</span><span class="cx"> const FontCascade& m_font;
</span><del>- RenderObject& m_renderObject;
</del><span class="cx"> const RenderStyle& m_style;
</span><span class="cx"> };
</span><span class="cx">
</span><span class="lines">@@ -602,11 +600,7 @@
</span><span class="cx"> // Enforce the width and set the box-sizing to content-box to not conflict with the padding.
</span><span class="cx"> FontCascade font = style.fontCascade();
</span><span class="cx">
</span><del>- RenderObject* renderer = inputElement.renderer();
- if (font.primaryFont().isSVGFont() && !renderer)
- return;
-
- float maximumWidth = localizedDateCache().maximumWidthForDateType(dateType, font, RenderThemeMeasureTextClient(font, *renderer, style));
</del><ins>+ float maximumWidth = localizedDateCache().maximumWidthForDateType(dateType, font, RenderThemeMeasureTextClient(font, style));
</ins><span class="cx">
</span><span class="cx"> ASSERT(maximumWidth >= 0);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingSimpleLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/SimpleLineLayout.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -182,8 +182,6 @@
</span><span class="cx"> auto& primaryFont = style.fontCascade().primaryFont();
</span><span class="cx"> if (primaryFont.isLoading())
</span><span class="cx"> SET_REASON_AND_RETURN_IF_NEEDED(FlowIsMissingPrimaryFont, reasons, includeReasons);
</span><del>- if (primaryFont.isSVGFont())
- SET_REASON_AND_RETURN_IF_NEEDED(FlowHasSVGFont, reasons, includeReasons);
</del><span class="cx">
</span><span class="cx"> for (const auto& textRenderer : childrenOfType<RenderText>(flow)) {
</span><span class="cx"> if (style.textAlign() == JUSTIFY && !textRenderer.originalText().containsOnlyLatin1())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderinglineBreakingContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/line/BreakingContext.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/line/BreakingContext.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/line/BreakingContext.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -65,9 +65,8 @@
</span><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> struct WordTrailingSpace {
</span><del>- WordTrailingSpace(RenderText& renderer, const RenderStyle& style, TextLayout* textLayout = nullptr)
- : m_renderer(renderer)
- , m_style(style)
</del><ins>+ WordTrailingSpace(const RenderStyle& style, TextLayout* textLayout = nullptr)
+ : m_style(style)
</ins><span class="cx"> , m_textLayout(textLayout)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -79,7 +78,7 @@
</span><span class="cx">
</span><span class="cx"> const FontCascade& font = m_style.fontCascade();
</span><span class="cx"> if (font.enableKerning() && !m_textLayout)
</span><del>- m_width = font.width(RenderBlock::constructTextRun(&m_renderer, font, &space, 1, m_style), &fallbackFonts) + font.wordSpacing();
</del><ins>+ m_width = font.width(RenderBlock::constructTextRun(&space, 1, m_style), &fallbackFonts) + font.wordSpacing();
</ins><span class="cx"> m_state = WordTrailingSpaceState::Computed;
</span><span class="cx"> return m_width;
</span><span class="cx"> }
</span><span class="lines">@@ -88,7 +87,6 @@
</span><span class="cx"> enum class WordTrailingSpaceState { Uninitialized, Computed };
</span><span class="cx"> WordTrailingSpaceState m_state { WordTrailingSpaceState::Uninitialized };
</span><span class="cx"> WTF::Optional<float> m_width;
</span><del>- RenderText& m_renderer;
</del><span class="cx"> const RenderStyle& m_style;
</span><span class="cx"> TextLayout* m_textLayout { nullptr };
</span><span class="cx"> };
</span><span class="lines">@@ -608,7 +606,7 @@
</span><span class="cx"> inline float measureHyphenWidth(RenderText& renderer, const FontCascade& font, HashSet<const Font*>* fallbackFonts = 0)
</span><span class="cx"> {
</span><span class="cx"> const RenderStyle& style = renderer.style();
</span><del>- return font.width(RenderBlock::constructTextRun(&renderer, font, style.hyphenString().string(), style), fallbackFonts);
</del><ins>+ return font.width(RenderBlock::constructTextRun(style.hyphenString().string(), style), fallbackFonts);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ALWAYS_INLINE float textWidth(RenderText& text, unsigned from, unsigned len, const FontCascade& font, float xPos, bool isFixedPitch, bool collapseWhiteSpace, HashSet<const Font*>& fallbackFonts, TextLayout* layout = nullptr)
</span><span class="lines">@@ -622,7 +620,7 @@
</span><span class="cx"> if (layout)
</span><span class="cx"> return FontCascade::width(*layout, from, len, &fallbackFonts);
</span><span class="cx">
</span><del>- TextRun run = RenderBlock::constructTextRun(&text, font, &text, from, len, style);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(&text, from, len, style);
</ins><span class="cx"> run.setCharactersLength(text.textLength() - from);
</span><span class="cx"> ASSERT(run.charactersLength() >= run.length());
</span><span class="cx">
</span><span class="lines">@@ -671,7 +669,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> const RenderStyle& style = text.style();
</span><del>- TextRun run = RenderBlock::constructTextRun(&text, font, &text, lastSpace, pos - lastSpace, style);
</del><ins>+ TextRun run = RenderBlock::constructTextRun(&text, lastSpace, pos - lastSpace, style);
</ins><span class="cx"> run.setCharactersLength(text.textLength() - lastSpace);
</span><span class="cx"> ASSERT(run.charactersLength() >= run.length());
</span><span class="cx">
</span><span class="lines">@@ -782,7 +780,7 @@
</span><span class="cx"> UChar lastCharacterFromPreviousRenderText = m_renderTextInfo.lineBreakIterator.lastCharacter();
</span><span class="cx"> UChar lastCharacter = m_renderTextInfo.lineBreakIterator.lastCharacter();
</span><span class="cx"> UChar secondToLastCharacter = m_renderTextInfo.lineBreakIterator.secondToLastCharacter();
</span><del>- WordTrailingSpace wordTrailingSpace(renderText, style, textLayout);
</del><ins>+ WordTrailingSpace wordTrailingSpace(style, textLayout);
</ins><span class="cx"> for (; m_current.offset() < renderText.textLength(); m_current.fastIncrementInTextNode()) {
</span><span class="cx"> bool previousCharacterIsSpace = m_currentCharacterIsSpace;
</span><span class="cx"> bool previousCharacterIsWS = m_currentCharacterIsWS;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGAllInOne.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGAllInOne.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGAllInOne.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -72,7 +72,6 @@
</span><span class="cx"> #include "SVGTextLayoutEngine.cpp"
</span><span class="cx"> #include "SVGTextLayoutEngineBaseline.cpp"
</span><span class="cx"> #include "SVGTextLayoutEngineSpacing.cpp"
</span><del>-#include "SVGTextRunRenderingContext.cpp"
</del><span class="cx"> #include "SVGTextMetrics.cpp"
</span><span class="cx"> #include "SVGTextMetricsBuilder.cpp"
</span><span class="cx"> #include "SVGTextQuery.cpp"
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx"> #include "SVGResourcesCache.h"
</span><span class="cx"> #include "SVGRootInlineBox.h"
</span><span class="cx"> #include "SVGTextElement.h"
</span><del>-#include "SVGTextRunRenderingContext.h"
</del><span class="cx"> #include "SVGTransformList.h"
</span><span class="cx"> #include "SVGURIReference.h"
</span><span class="cx"> #include "TransformState.h"
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> #include "SVGRenderingContext.h"
</span><span class="cx"> #include "SVGResourcesCache.h"
</span><span class="cx"> #include "SVGRootInlineBox.h"
</span><del>-#include "SVGTextRunRenderingContext.h"
</del><span class="cx"> #include "TextPainter.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -377,33 +376,14 @@
</span><span class="cx"> m_paintingResource = nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool SVGInlineTextBox::prepareGraphicsContextForTextPainting(GraphicsContext*& context, float scalingFactor, TextRun& textRun, RenderStyle* style)
</del><ins>+bool SVGInlineTextBox::prepareGraphicsContextForTextPainting(GraphicsContext*& context, float scalingFactor, RenderStyle* style)
</ins><span class="cx"> {
</span><del>- if (!acquirePaintingResource(context, scalingFactor, parent()->renderer(), style))
- return false;
-
-#if ENABLE(SVG_FONTS)
- // SVG Fonts need access to the painting resource used to draw the current text chunk.
- if (auto* renderingContext = textRun.renderingContext())
- static_cast<SVGTextRunRenderingContext*>(renderingContext)->setActivePaintingResource(m_paintingResource);
-#else
- UNUSED_PARAM(textRun);
-#endif
-
- return true;
</del><ins>+ return acquirePaintingResource(context, scalingFactor, parent()->renderer(), style);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void SVGInlineTextBox::restoreGraphicsContextAfterTextPainting(GraphicsContext*& context, TextRun& textRun)
</del><ins>+void SVGInlineTextBox::restoreGraphicsContextAfterTextPainting(GraphicsContext*& context)
</ins><span class="cx"> {
</span><span class="cx"> releasePaintingResource(context, /* path */nullptr);
</span><del>-
-#if ENABLE(SVG_FONTS)
- TextRun::RenderingContext* renderingContext = textRun.renderingContext();
- if (renderingContext)
- static_cast<SVGTextRunRenderingContext*>(renderingContext)->setActivePaintingResource(nullptr);
-#else
- UNUSED_PARAM(textRun);
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> TextRun SVGInlineTextBox::constructTextRun(RenderStyle* style, const SVGTextFragment& fragment) const
</span><span class="lines">@@ -417,9 +397,6 @@
</span><span class="cx"> , direction()
</span><span class="cx"> , dirOverride() || style->rtlOrdering() == VisualOrder /* directionalOverride */);
</span><span class="cx">
</span><del>- if (style->fontCascade().primaryFont().isSVGFont())
- run.setRenderingContext(SVGTextRunRenderingContext::create(renderer()));
-
</del><span class="cx"> // We handle letter & word spacing ourselves.
</span><span class="cx"> run.disableSpacing();
</span><span class="cx">
</span><span class="lines">@@ -582,7 +559,7 @@
</span><span class="cx">
</span><span class="cx"> GraphicsContext* usedContext = &context;
</span><span class="cx"> do {
</span><del>- if (!prepareGraphicsContextForTextPainting(usedContext, scalingFactor, textRun, style))
</del><ins>+ if (!prepareGraphicsContextForTextPainting(usedContext, scalingFactor, style))
</ins><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> {
</span><span class="lines">@@ -598,7 +575,7 @@
</span><span class="cx"> usedContext->restore();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- restoreGraphicsContextAfterTextPainting(usedContext, textRun);
</del><ins>+ restoreGraphicsContextAfterTextPainting(usedContext);
</ins><span class="cx">
</span><span class="cx"> if (!shadow)
</span><span class="cx"> break;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGInlineTextBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -74,8 +74,8 @@
</span><span class="cx"> bool acquirePaintingResource(GraphicsContext*&, float scalingFactor, RenderBoxModelObject&, RenderStyle*);
</span><span class="cx"> void releasePaintingResource(GraphicsContext*&, const Path*);
</span><span class="cx">
</span><del>- bool prepareGraphicsContextForTextPainting(GraphicsContext*&, float scalingFactor, TextRun&, RenderStyle*);
- void restoreGraphicsContextAfterTextPainting(GraphicsContext*&, TextRun&);
</del><ins>+ bool prepareGraphicsContextForTextPainting(GraphicsContext*&, float scalingFactor, RenderStyle*);
+ void restoreGraphicsContextAfterTextPainting(GraphicsContext*&);
</ins><span class="cx">
</span><span class="cx"> void paintDecoration(GraphicsContext&, TextDecoration, const SVGTextFragment&);
</span><span class="cx"> void paintDecorationWithStyle(GraphicsContext&, TextDecoration, const SVGTextFragment&, RenderBoxModelObject& decorationRenderer);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextLayoutEnginecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -483,9 +483,6 @@
</span><span class="cx"> // Apply dx/dy value adjustments to current text position, if needed.
</span><span class="cx"> updateRelativePositionAdjustmentsIfNeeded(data.dx, data.dy);
</span><span class="cx">
</span><del>- // Calculate SVG Fonts kerning, if needed.
- float kerning = spacingLayout.calculateSVGKerning(m_isVerticalText, visualMetrics.glyph());
-
</del><span class="cx"> // Calculate CSS 'kerning', 'letter-spacing' and 'word-spacing' for next character, if needed.
</span><span class="cx"> float spacing = spacingLayout.calculateCSSKerningAndSpacing(&svgStyle, lengthContext, currentCharacter);
</span><span class="cx">
</span><span class="lines">@@ -497,7 +494,7 @@
</span><span class="cx"> if (y != SVGTextLayoutAttributes::emptyValue())
</span><span class="cx"> m_textPathCurrentOffset = y + m_textPathStartOffset;
</span><span class="cx">
</span><del>- m_textPathCurrentOffset += m_dy - kerning;
</del><ins>+ m_textPathCurrentOffset += m_dy;
</ins><span class="cx"> m_dy = 0;
</span><span class="cx">
</span><span class="cx"> // Apply dx/dy correction and setup translations that move to the glyph midpoint.
</span><span class="lines">@@ -508,7 +505,7 @@
</span><span class="cx"> if (x != SVGTextLayoutAttributes::emptyValue())
</span><span class="cx"> m_textPathCurrentOffset = x + m_textPathStartOffset;
</span><span class="cx">
</span><del>- m_textPathCurrentOffset += m_dx - kerning;
</del><ins>+ m_textPathCurrentOffset += m_dx;
</ins><span class="cx"> m_dx = 0;
</span><span class="cx">
</span><span class="cx"> // Apply dx/dy correction and setup translations that move to the glyph midpoint.
</span><span class="lines">@@ -548,13 +545,10 @@
</span><span class="cx"> angle -= 90;
</span><span class="cx"> } else {
</span><span class="cx"> // Apply all previously calculated shift values.
</span><del>- if (m_isVerticalText) {
</del><ins>+ if (m_isVerticalText)
</ins><span class="cx"> x += baselineShift;
</span><del>- y -= kerning;
- } else {
- x -= kerning;
</del><ins>+ else
</ins><span class="cx"> y -= baselineShift;
</span><del>- }
</del><span class="cx">
</span><span class="cx"> x += m_dx;
</span><span class="cx"> y += m_dy;
</span><span class="lines">@@ -562,7 +556,7 @@
</span><span class="cx">
</span><span class="cx"> // Determine whether we have to start a new fragment.
</span><span class="cx"> bool shouldStartNewFragment = m_dx || m_dy || m_isVerticalText || m_inPathLayout || angle || angle != lastAngle
</span><del>- || orientationAngle || kerning || applySpacingToNextCharacter || definesTextLength;
</del><ins>+ || orientationAngle || applySpacingToNextCharacter || definesTextLength;
</ins><span class="cx">
</span><span class="cx"> // If we already started a fragment, close it now.
</span><span class="cx"> if (didStartTextFragment && shouldStartNewFragment) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextLayoutEngineSpacingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -25,7 +25,6 @@
</span><span class="cx"> #include "SVGRenderStyle.h"
</span><span class="cx">
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><del>-#include "SVGFontData.h"
</del><span class="cx"> #include "SVGFontElement.h"
</span><span class="cx"> #include "SVGFontFaceElement.h"
</span><span class="cx"> #endif
</span><span class="lines">@@ -38,47 +37,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-float SVGTextLayoutEngineSpacing::calculateSVGKerning(bool isVerticalText, const SVGTextMetrics::Glyph& currentGlyph)
-{
-#if ENABLE(SVG_FONTS)
- const Font& font = m_font.primaryFont();
- if (!font.isSVGFont()) {
- m_lastGlyph.isValid = false;
- return 0;
- }
-
- ASSERT(font.isCustomFont());
- ASSERT(font.isSVGFont());
-
- auto* svgFontData = static_cast<const SVGFontData*>(font.svgData());
- SVGFontFaceElement* svgFontFace = svgFontData->svgFontFaceElement();
- ASSERT(svgFontFace);
-
- SVGFontElement* svgFont = svgFontFace->associatedFontElement();
- if (!svgFont) {
- m_lastGlyph.isValid = false;
- return 0;
- }
-
- float kerning = 0;
- if (m_lastGlyph.isValid) {
- if (isVerticalText)
- kerning = svgFont->verticalKerningForPairOfStringsAndGlyphs(m_lastGlyph.unicodeString, m_lastGlyph.name, currentGlyph.unicodeString, currentGlyph.name);
- else
- kerning = svgFont->horizontalKerningForPairOfStringsAndGlyphs(m_lastGlyph.unicodeString, m_lastGlyph.name, currentGlyph.unicodeString, currentGlyph.name);
- }
-
- m_lastGlyph = currentGlyph;
- m_lastGlyph.isValid = true;
- kerning *= m_font.size() / m_font.fontMetrics().unitsPerEm();
- return kerning;
-#else
- UNUSED_PARAM(isVerticalText);
- UNUSED_PARAM(currentGlyph);
- return false;
-#endif
-}
-
</del><span class="cx"> float SVGTextLayoutEngineSpacing::calculateCSSKerningAndSpacing(const SVGRenderStyle* style, SVGElement* contextElement, const UChar* currentCharacter)
</span><span class="cx"> {
</span><span class="cx"> float kerning = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextLayoutEngineSpacingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -34,16 +34,11 @@
</span><span class="cx"> public:
</span><span class="cx"> SVGTextLayoutEngineSpacing(const FontCascade&);
</span><span class="cx">
</span><del>- float calculateSVGKerning(bool isVerticalText, const SVGTextMetrics::Glyph& currentGlyph);
</del><span class="cx"> float calculateCSSKerningAndSpacing(const SVGRenderStyle*, SVGElement* lengthContext, const UChar* currentCharacter);
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> const FontCascade& m_font;
</span><span class="cx"> const UChar* m_lastCharacter;
</span><del>-
-#if ENABLE(SVG_FONTS)
- SVGTextMetrics::Glyph m_lastGlyph;
-#endif
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextMetricscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -21,7 +21,6 @@
</span><span class="cx"> #include "SVGTextMetrics.h"
</span><span class="cx">
</span><span class="cx"> #include "RenderSVGInlineText.h"
</span><del>-#include "SVGTextRunRenderingContext.h"
</del><span class="cx"> #include "WidthIterator.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -49,7 +48,9 @@
</span><span class="cx"> int length = 0;
</span><span class="cx">
</span><span class="cx"> // Calculate width/height using the scaled font, divide this result by the scalingFactor afterwards.
</span><del>- m_width = scaledFont.width(run, length, m_glyph.name) / scalingFactor;
</del><ins>+ m_width = scaledFont.width(run) / scalingFactor;
+ length = run.length();
+ m_glyph.name = "";
</ins><span class="cx"> m_height = scaledFont.fontMetrics().floatHeight() / scalingFactor;
</span><span class="cx">
</span><span class="cx"> m_glyph.unicodeString = run.is8Bit() ? String(run.characters8(), length) : String(run.characters16(), length);
</span><span class="lines">@@ -70,9 +71,6 @@
</span><span class="cx"> , style.direction()
</span><span class="cx"> , isOverride(style.unicodeBidi()) /* directionalOverride */);
</span><span class="cx">
</span><del>- if (style.fontCascade().primaryFont().isSVGFont())
- run.setRenderingContext(SVGTextRunRenderingContext::create(text));
-
</del><span class="cx"> // We handle letter & word spacing ourselves.
</span><span class="cx"> run.disableSpacing();
</span><span class="cx">
</span><span class="lines">@@ -87,19 +85,13 @@
</span><span class="cx"> return SVGTextMetrics(text, constructTextRun(text, position, length));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SVGTextMetrics::SVGTextMetrics(RenderSVGInlineText& text, unsigned position, unsigned length, float width, const String& glyphName)
</del><ins>+SVGTextMetrics::SVGTextMetrics(RenderSVGInlineText& text, unsigned length, float width)
</ins><span class="cx"> {
</span><del>- bool needsContext = text.style().fontCascade().primaryFont().isSVGFont();
</del><span class="cx"> float scalingFactor = text.scalingFactor();
</span><span class="cx"> ASSERT(scalingFactor);
</span><span class="cx">
</span><span class="cx"> m_width = width / scalingFactor;
</span><span class="cx"> m_height = text.scaledFont().fontMetrics().floatHeight() / scalingFactor;
</span><del>- if (needsContext) {
- m_glyph.isValid = true;
- m_glyph.unicodeString = text.text()->substring(position, length);
- m_glyph.name = glyphName;
- }
</del><span class="cx">
</span><span class="cx"> m_length = length;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextMetricsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetrics.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextMetrics.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetrics.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx">
</span><span class="cx"> SVGTextMetrics();
</span><span class="cx"> explicit SVGTextMetrics(MetricsType);
</span><del>- SVGTextMetrics(RenderSVGInlineText&, unsigned position, unsigned length, float width, const String& glyphName);
</del><ins>+ SVGTextMetrics(RenderSVGInlineText&, unsigned length, float width);
</ins><span class="cx">
</span><span class="cx"> static SVGTextMetrics measureCharacterRange(RenderSVGInlineText&, unsigned position, unsigned length);
</span><span class="cx"> static TextRun constructTextRun(RenderSVGInlineText&, unsigned position = 0, unsigned length = std::numeric_limits<unsigned>::max());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextMetricsBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> #include "RenderSVGInline.h"
</span><span class="cx"> #include "RenderSVGInlineText.h"
</span><span class="cx"> #include "RenderSVGText.h"
</span><del>-#include "SVGTextRunRenderingContext.h"
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -67,11 +66,7 @@
</span><span class="cx"> float currentWidth = m_simpleWidthIterator->runWidthSoFar() - m_totalWidth;
</span><span class="cx"> m_totalWidth = m_simpleWidthIterator->runWidthSoFar();
</span><span class="cx">
</span><del>-#if ENABLE(SVG_FONTS)
- m_currentMetrics = SVGTextMetrics(*m_text, m_textPosition, metricsLength, currentWidth, m_simpleWidthIterator->lastGlyphName());
-#else
- m_currentMetrics = SVGTextMetrics(*m_text, m_textPosition, metricsLength, currentWidth, emptyString());
-#endif
</del><ins>+ m_currentMetrics = SVGTextMetrics(*m_text, metricsLength, currentWidth);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void SVGTextMetricsBuilder::advanceComplexText()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextRunRenderingContextcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,354 +0,0 @@
</span><del>-/*
- * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG_FONTS)
-#include "SVGTextRunRenderingContext.h"
-
-#include "GlyphBuffer.h"
-#include "GraphicsContext.h"
-#include "RenderObject.h"
-#include "RenderSVGInlineText.h"
-#include "RenderSVGResourceSolidColor.h"
-#include "SVGFontData.h"
-#include "SVGFontElement.h"
-#include "SVGFontFaceElement.h"
-#include "SVGGlyphElement.h"
-#include "SVGNames.h"
-#include "WidthIterator.h"
-
-namespace WebCore {
-
-static inline const SVGFontData* svgFontAndFontFaceElementForFontData(const Font* font, SVGFontFaceElement*& svgFontFaceElement, SVGFontElement*& svgFontElement)
-{
- ASSERT(font);
- ASSERT(font->isCustomFont());
- ASSERT(font->isSVGFont());
-
- auto* svgFontData = static_cast<const SVGFontData*>(font->svgData());
-
- svgFontFaceElement = svgFontData->svgFontFaceElement();
- ASSERT(svgFontFaceElement);
-
- svgFontElement = svgFontFaceElement->associatedFontElement();
- return svgFontData;
-}
-
-float SVGTextRunRenderingContext::floatWidthUsingSVGFont(const FontCascade& font, const TextRun& run, int& charsConsumed, String& glyphName) const
-{
- WidthIterator it(&font, run);
- GlyphBuffer glyphBuffer;
- charsConsumed += it.advance(run.length(), &glyphBuffer);
- glyphName = it.lastGlyphName();
- return it.runWidthSoFar();
-}
-
-bool SVGTextRunRenderingContext::applySVGKerning(const Font* font, WidthIterator& iterator, GlyphBuffer* glyphBuffer, int from) const
-{
- ASSERT(glyphBuffer);
- ASSERT(glyphBuffer->size() > 1);
- SVGFontElement* fontElement = 0;
- SVGFontFaceElement* fontFaceElement = 0;
-
- svgFontAndFontFaceElementForFontData(font, fontFaceElement, fontElement);
- if (!fontElement || !fontFaceElement)
- return false;
-
- if (fontElement->horizontalKerningMapIsEmpty())
- return true;
-
- float scale = scaleEmToUnits(font->platformData().size(), fontFaceElement->unitsPerEm());
-
- String lastGlyphName;
- String lastUnicodeString;
- int characterOffset = iterator.m_currentCharacter;
- String text = iterator.run().string();
- const int glyphCount = glyphBuffer->size() - from;
- GlyphBufferAdvance* advances = glyphBuffer->advances(from);
-
- for (int i = 0; i < glyphCount; ++i) {
- Glyph glyph = glyphBuffer->glyphAt(from + i);
- if (!glyph)
- continue;
- float kerning = 0;
- SVGGlyph svgGlyph = fontElement->svgGlyphForGlyph(glyph);
- String unicodeString = text.substring(characterOffset, svgGlyph.unicodeStringLength);
- if (i >= 1) {
- // FIXME: Support vertical text.
- kerning = fontElement->horizontalKerningForPairOfStringsAndGlyphs(lastUnicodeString, lastGlyphName, unicodeString, svgGlyph.glyphName);
- advances[i - 1].setWidth(advances[i - 1].width() - kerning * scale);
- }
- lastGlyphName = svgGlyph.glyphName;
- lastUnicodeString = unicodeString;
- characterOffset += svgGlyph.unicodeStringLength;
- }
-
- return true;
-}
-
-class SVGGlyphToPathTranslator final : public GlyphToPathTranslator {
-public:
- SVGGlyphToPathTranslator(const TextRun* const, const GlyphBuffer&, const FloatPoint&, const SVGFontData&, SVGFontElement&, const int from, const int numGlyphs, float scale, bool isVerticalText);
-private:
- bool containsMorePaths() override
- {
- return m_index != m_stoppingPoint;
- }
-
- Path path() override;
- std::pair<float, float> extents() override;
- GlyphUnderlineType underlineType() override;
- void advance() override;
- void moveToNextValidGlyph();
- AffineTransform transform();
-
- const TextRun* const m_textRun;
- const GlyphBuffer& m_glyphBuffer;
- const SVGFontData& m_svgFontData;
- FloatPoint m_currentPoint;
- FloatPoint m_glyphOrigin;
- SVGGlyph m_svgGlyph;
- int m_index;
- Glyph m_glyph;
- SVGFontElement& m_fontElement;
- const float m_stoppingPoint;
- const float m_scale;
- const bool m_isVerticalText;
-};
-
-SVGGlyphToPathTranslator::SVGGlyphToPathTranslator(const TextRun* const textRun, const GlyphBuffer& glyphBuffer, const FloatPoint& point, const SVGFontData& svgFontData, SVGFontElement& fontElement, const int from, const int numGlyphs, float scale, bool isVerticalText)
- : m_textRun(textRun)
- , m_glyphBuffer(glyphBuffer)
- , m_svgFontData(svgFontData)
- , m_currentPoint(point)
- , m_glyphOrigin(m_svgFontData.horizontalOriginX() * scale, m_svgFontData.horizontalOriginY() * scale)
- , m_index(from)
- , m_glyph(glyphBuffer.glyphAt(m_index))
- , m_fontElement(fontElement)
- , m_stoppingPoint(numGlyphs + from)
- , m_scale(scale)
- , m_isVerticalText(isVerticalText)
-{
- ASSERT(glyphBuffer.size() > m_index);
- if (m_glyph) {
- m_svgGlyph = m_fontElement.svgGlyphForGlyph(m_glyph);
- ASSERT(!m_svgGlyph.isPartOfLigature);
- ASSERT(m_svgGlyph.tableEntry == m_glyph);
- SVGGlyphElement::inheritUnspecifiedAttributes(m_svgGlyph, &m_svgFontData);
- }
- moveToNextValidGlyph();
-}
-
-AffineTransform SVGGlyphToPathTranslator::transform()
-{
- AffineTransform glyphPathTransform;
- glyphPathTransform.translate(m_currentPoint.x() + m_glyphOrigin.x(), m_currentPoint.y() + m_glyphOrigin.y());
- glyphPathTransform.scale(m_scale, -m_scale);
- return glyphPathTransform;
-}
-
-Path SVGGlyphToPathTranslator::path()
-{
- Path glyphPath = m_svgGlyph.pathData;
- glyphPath.transform(transform());
- return glyphPath;
-}
-
-std::pair<float, float> SVGGlyphToPathTranslator::extents()
-{
- AffineTransform glyphPathTransform = transform();
- FloatPoint beginning = glyphPathTransform.mapPoint(m_currentPoint);
- float width = narrowPrecisionToFloat(m_glyphBuffer.advanceAt(m_index).width() * glyphPathTransform.xScale());
- return std::make_pair(beginning.x(), beginning.x() + width);
-}
-
-auto SVGGlyphToPathTranslator::underlineType() -> GlyphUnderlineType
-{
- ASSERT(m_textRun);
- return computeUnderlineType(*m_textRun, m_glyphBuffer, m_index);
-}
-
-void SVGGlyphToPathTranslator::moveToNextValidGlyph()
-{
- if (m_glyph && !m_svgGlyph.pathData.isEmpty())
- return;
- advance();
-}
-
-void SVGGlyphToPathTranslator::advance()
-{
- do {
- if (m_glyph) {
- float advance = m_glyphBuffer.advanceAt(m_index).width();
- if (m_isVerticalText)
- m_currentPoint.move(0, advance);
- else
- m_currentPoint.move(advance, 0);
- }
-
- ++m_index;
- if (m_index >= m_stoppingPoint || !m_glyphBuffer.fontAt(m_index)->isSVGFont())
- break;
- m_glyph = m_glyphBuffer.glyphAt(m_index);
- if (!m_glyph)
- continue;
- m_svgGlyph = m_fontElement.svgGlyphForGlyph(m_glyph);
- ASSERT(!m_svgGlyph.isPartOfLigature);
- ASSERT(m_svgGlyph.tableEntry == m_glyph);
- SVGGlyphElement::inheritUnspecifiedAttributes(m_svgGlyph, &m_svgFontData);
- } while ((!m_glyph || m_svgGlyph.pathData.isEmpty()) && m_index < m_stoppingPoint);
-
- if (containsMorePaths() && m_isVerticalText) {
- m_glyphOrigin.setX(m_svgGlyph.verticalOriginX * m_scale);
- m_glyphOrigin.setY(m_svgGlyph.verticalOriginY * m_scale);
- }
-}
-
-class DummyGlyphToPathTranslator final : public GlyphToPathTranslator {
- bool containsMorePaths() override
- {
- return false;
- }
- Path path() override
- {
- return Path();
- }
- std::pair<float, float> extents() override
- {
- return std::make_pair(0.f, 0.f);
- }
- GlyphUnderlineType underlineType() override
- {
- return GlyphUnderlineType::DrawOverGlyph;
- }
- void advance() override
- {
- }
-};
-
-std::unique_ptr<GlyphToPathTranslator> SVGTextRunRenderingContext::createGlyphToPathTranslator(const Font& font, const TextRun* textRun, const GlyphBuffer& glyphBuffer, int from, int numGlyphs, const FloatPoint& point) const
-{
- SVGFontElement* fontElement = nullptr;
- SVGFontFaceElement* fontFaceElement = nullptr;
-
- const SVGFontData* svgFontData = svgFontAndFontFaceElementForFontData(&font, fontFaceElement, fontElement);
- if (!fontElement || !fontFaceElement)
- return std::make_unique<DummyGlyphToPathTranslator>();
-
- auto& elementRenderer = is<RenderElement>(renderer()) ? downcast<RenderElement>(renderer()) : *renderer().parent();
- RenderStyle& style = elementRenderer.style();
- bool isVerticalText = style.svgStyle().isVerticalWritingMode();
-
- float scale = scaleEmToUnits(font.platformData().size(), fontFaceElement->unitsPerEm());
-
- return std::make_unique<SVGGlyphToPathTranslator>(textRun, glyphBuffer, point, *svgFontData, *fontElement, from, numGlyphs, scale, isVerticalText);
-}
-
-void SVGTextRunRenderingContext::drawSVGGlyphs(GraphicsContext& context, const Font& font, const GlyphBuffer& glyphBuffer, int from, int numGlyphs, const FloatPoint& point) const
-{
- auto activePaintingResource = this->activePaintingResource();
- if (!activePaintingResource) {
- // TODO: We're only supporting simple filled HTML text so far.
- RenderSVGResourceSolidColor* solidPaintingResource = RenderSVGResource::sharedSolidPaintingResource();
- solidPaintingResource->setColor(context.fillColor());
- activePaintingResource = solidPaintingResource;
- }
-
- auto& elementRenderer = is<RenderElement>(renderer()) ? downcast<RenderElement>(renderer()) : *renderer().parent();
- RenderStyle& style = elementRenderer.style();
-
- ASSERT(activePaintingResource);
-
- GraphicsContext* usedContext = &context;
- RenderSVGResourceMode resourceMode = context.textDrawingMode() == TextModeStroke ? ApplyToStrokeMode : ApplyToFillMode;
- for (auto translator = createGlyphToPathTranslator(font, nullptr, glyphBuffer, from, numGlyphs, point); translator->containsMorePaths(); translator->advance()) {
- Path glyphPath = translator->path();
- if (activePaintingResource->applyResource(elementRenderer, style, usedContext, resourceMode)) {
- float strokeThickness = context.strokeThickness();
- if (is<RenderSVGInlineText>(renderer()))
- usedContext->setStrokeThickness(strokeThickness * downcast<RenderSVGInlineText>(renderer()).scalingFactor());
- activePaintingResource->postApplyResource(elementRenderer, usedContext, resourceMode, &glyphPath, nullptr);
- usedContext->setStrokeThickness(strokeThickness);
- }
- }
-}
-
-static GlyphData missingGlyphForFont(const FontCascade& font)
-{
- const Font& primaryFont = font.primaryFont();
- if (!primaryFont.isSVGFont())
- return GlyphData();
- SVGFontElement* fontElement;
- SVGFontFaceElement* fontFaceElement;
- svgFontAndFontFaceElementForFontData(&primaryFont, fontFaceElement, fontElement);
- return GlyphData(fontElement->missingGlyph(), &primaryFont);
-}
-
-GlyphData SVGTextRunRenderingContext::glyphDataForCharacter(const FontCascade& font, WidthIterator& iterator, UChar32 character, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache)
-{
- GlyphData glyphData = font.glyphDataForCharacter(character, mirror, AutoVariant);
- if (!glyphData.glyph)
- return missingGlyphForFont(font);
-
- ASSERT(glyphData.font);
-
- // Characters enclosed by an <altGlyph> element, may not be registered in the GlyphPage.
- if (!glyphData.font->isSVGFont()) {
- auto& elementRenderer = is<RenderElement>(renderer()) ? downcast<RenderElement>(renderer()) : *renderer().parent();
- if (Element* parentRendererElement = elementRenderer.element()) {
- if (is<SVGAltGlyphElement>(*parentRendererElement))
- glyphData.font = &font.primaryFont();
- }
- }
-
- if (!glyphData.font->isSVGFont())
- return glyphData;
-
- SVGFontElement* fontElement = nullptr;
- SVGFontFaceElement* fontFaceElement = nullptr;
- const SVGFontData* svgFontData = svgFontAndFontFaceElementForFontData(glyphData.font, fontFaceElement, fontElement);
- if (!svgFontData)
- return glyphData;
-
- // If we got here, we're dealing with a glyph defined in a SVG Font.
- // The returned glyph by glyphDataForCharacter() is a glyph stored in the SVG Font glyph table.
- // This doesn't necessarily mean the glyph is suitable for rendering/measuring in this context, its
- // arabic-form/orientation/... may not match, we have to apply SVG Glyph selection to discover that.
- if (svgFontData->applySVGGlyphSelection(iterator, glyphData, mirror, currentCharacter, advanceLength, normalizedSpacesStringCache))
- return glyphData;
-
- GlyphData missingGlyphData = missingGlyphForFont(font);
- if (missingGlyphData.glyph)
- return missingGlyphData;
-
- // SVG font context sensitive selection failed and there is no defined missing glyph. Drop down to a default font.
- // The behavior does not seem to be specified. For simplicity we don't try to resolve font fallbacks context-sensitively.
- auto fallbackDescription = font.fontDescription();
- fallbackDescription.setFamilies(Vector<AtomicString> { sansSerifFamily });
- FontCascade fallbackFont(fallbackDescription, font.letterSpacing(), font.wordSpacing());
- fallbackFont.update(font.fontSelector());
-
- return fallbackFont.glyphDataForCharacter(character, mirror, AutoVariant);
-}
-
-}
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextRunRenderingContexth"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,75 +0,0 @@
</span><del>-/*
- * Copyright (C) Research In Motion Limited 2011. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SVGTextRunRenderingContext_h
-#define SVGTextRunRenderingContext_h
-
-#include "FontCascade.h"
-#include "TextRun.h"
-
-namespace WebCore {
-
-class RenderObject;
-class RenderSVGResource;
-
-class SVGTextRunRenderingContext final : public TextRun::RenderingContext {
-public:
- static Ref<SVGTextRunRenderingContext> create(RenderObject& renderer)
- {
- return adoptRef(*new SVGTextRunRenderingContext(renderer));
- }
-
- RenderObject& renderer() const { return m_renderer; }
-
-#if ENABLE(SVG_FONTS)
- RenderSVGResource* activePaintingResource() const { return m_activePaintingResource; }
- void setActivePaintingResource(RenderSVGResource* object) { m_activePaintingResource = object; }
-
- GlyphData glyphDataForCharacter(const FontCascade&, WidthIterator&, UChar32 character, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache) override;
- void drawSVGGlyphs(GraphicsContext&, const Font&, const GlyphBuffer&, int from, int to, const FloatPoint&) const override;
- float floatWidthUsingSVGFont(const FontCascade&, const TextRun&, int& charsConsumed, String& glyphName) const override;
- bool applySVGKerning(const Font*, WidthIterator&, GlyphBuffer*, int from) const override;
-#endif
-
-private:
- SVGTextRunRenderingContext(RenderObject& renderer)
- : m_renderer(renderer)
-#if ENABLE(SVG_FONTS)
- , m_activePaintingResource(0)
-#endif
- {
- }
-
- virtual ~SVGTextRunRenderingContext() { }
-
-#if ENABLE(SVG_FONTS)
- std::unique_ptr<GlyphToPathTranslator> createGlyphToPathTranslator(const Font&, const TextRun*, const GlyphBuffer&, int from, int numGlyphs, const FloatPoint&) const override;
-#endif
-
- RenderObject& m_renderer;
-
-#if ENABLE(SVG_FONTS)
- RenderSVGResource* m_activePaintingResource;
-#endif
-};
-
-} // namespace WebCore
-
-#endif // SVGTextRunRenderingContext_h
</del></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAllInOne.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAllInOne.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGAllInOne.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -97,7 +97,6 @@
</span><span class="cx"> #include "SVGFilterElement.cpp"
</span><span class="cx"> #include "SVGFilterPrimitiveStandardAttributes.cpp"
</span><span class="cx"> #include "SVGFitToViewBox.cpp"
</span><del>-#include "SVGFontData.cpp"
</del><span class="cx"> #include "SVGFontElement.cpp"
</span><span class="cx"> #include "SVGFontFaceElement.cpp"
</span><span class="cx"> #include "SVGFontFaceFormatElement.cpp"
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontDatacpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/svg/SVGFontData.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontData.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGFontData.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,298 +0,0 @@
</span><del>-/*
- * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG_FONTS)
-#include "SVGFontData.h"
-
-#include "GlyphPage.h"
-#include "RenderElement.h"
-#include "SVGAltGlyphElement.h"
-#include "SVGFontElement.h"
-#include "SVGFontFaceElement.h"
-#include "SVGGlyph.h"
-#include "SVGGlyphElement.h"
-#include "SVGNames.h"
-#include "SVGTextRunRenderingContext.h"
-#include "TextRun.h"
-#include "WidthIterator.h"
-#include "XMLNames.h"
-#include <wtf/text/StringBuilder.h>
-#include <wtf/unicode/CharacterNames.h>
-
-using namespace WTF;
-using namespace Unicode;
-
-namespace WebCore {
-
-static String createStringWithMirroredCharacters(StringView);
-static void computeNormalizedSpaces(const TextRun&, bool mirror, String& normalizedSpacesStringCache);
-
-SVGFontData::SVGFontData(SVGFontFaceElement* fontFaceElement)
- : m_svgFontFaceElement(fontFaceElement)
- , m_horizontalOriginX(fontFaceElement->horizontalOriginX())
- , m_horizontalOriginY(fontFaceElement->horizontalOriginY())
- , m_horizontalAdvanceX(fontFaceElement->horizontalAdvanceX())
- , m_verticalOriginX(fontFaceElement->verticalOriginX())
- , m_verticalOriginY(fontFaceElement->verticalOriginY())
- , m_verticalAdvanceY(fontFaceElement->verticalAdvanceY())
-{
- ASSERT_ARG(fontFaceElement, fontFaceElement);
-}
-
-void SVGFontData::initializeFont(Font* font, float fontSize)
-{
- ASSERT(font);
-
- SVGFontFaceElement* svgFontFaceElement = this->svgFontFaceElement();
- ASSERT(svgFontFaceElement);
-
- font->setZeroWidthSpaceGlyph(0);
- font->determinePitch();
-
- unsigned unitsPerEm = svgFontFaceElement->unitsPerEm();
- float scale = scaleEmToUnits(fontSize, unitsPerEm);
- float xHeight = svgFontFaceElement->xHeight() * scale;
- float ascent = svgFontFaceElement->ascent() * scale;
- float descent = svgFontFaceElement->descent() * scale;
- float lineGap = 0.1f * fontSize;
-
- const GlyphPage* glyphPageZero = font->glyphPage(0);
-
- if (!xHeight && glyphPageZero) {
- // Fallback if x_heightAttr is not specified for the font element.
- Glyph letterXGlyph = glyphPageZero->glyphDataForCharacter('x').glyph;
- xHeight = letterXGlyph ? font->widthForGlyph(letterXGlyph) : 2 * ascent / 3;
- }
-
- FontMetrics& fontMetrics = font->fontMetrics();
- fontMetrics.setUnitsPerEm(unitsPerEm);
- fontMetrics.setAscent(ascent);
- fontMetrics.setDescent(descent);
- fontMetrics.setLineGap(lineGap);
- fontMetrics.setLineSpacing(roundf(ascent) + roundf(descent) + roundf(lineGap));
- fontMetrics.setXHeight(xHeight);
-
- if (!glyphPageZero) {
- font->setSpaceGlyph(0);
- font->setSpaceWidths(0);
- font->setAvgCharWidth(0);
- font->setMaxCharWidth(ascent);
- return;
- }
-
- // Calculate space width.
- Glyph spaceGlyph = glyphPageZero->glyphDataForCharacter(' ').glyph;
- font->setSpaceGlyph(spaceGlyph);
- font->setSpaceWidths(font->widthForGlyph(spaceGlyph));
-
- // Estimate average character width.
- Glyph numeralZeroGlyph = glyphPageZero->glyphDataForCharacter('0').glyph;
- font->setAvgCharWidth(numeralZeroGlyph ? font->widthForGlyph(numeralZeroGlyph) : font->spaceWidth());
-
- // Estimate maximum character width.
- Glyph letterWGlyph = glyphPageZero->glyphDataForCharacter('W').glyph;
- font->setMaxCharWidth(letterWGlyph ? font->widthForGlyph(letterWGlyph) : ascent);
-}
-
-float SVGFontData::widthForSVGGlyph(Glyph glyph, float fontSize) const
-{
- SVGFontFaceElement* svgFontFaceElement = this->svgFontFaceElement();
- ASSERT(svgFontFaceElement);
-
- SVGFontElement* associatedFontElement = svgFontFaceElement->associatedFontElement();
- ASSERT(associatedFontElement);
-
- SVGGlyph svgGlyph = associatedFontElement->svgGlyphForGlyph(glyph);
- SVGGlyphElement::inheritUnspecifiedAttributes(svgGlyph, this);
- return svgGlyph.horizontalAdvanceX * scaleEmToUnits(fontSize, svgFontFaceElement->unitsPerEm());
-}
-
-bool SVGFontData::applySVGGlyphSelection(WidthIterator& iterator, GlyphData& glyphData, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache) const
-{
- const TextRun& run = iterator.run();
- Vector<SVGGlyph::ArabicForm>& arabicForms = iterator.arabicForms();
- ASSERT(run.charactersLength() >= static_cast<unsigned>(currentCharacter));
-
- SVGFontFaceElement* svgFontFaceElement = this->svgFontFaceElement();
- ASSERT(svgFontFaceElement);
-
- SVGFontElement* associatedFontElement = svgFontFaceElement->associatedFontElement();
- ASSERT(associatedFontElement);
-
- RenderObject* renderObject = nullptr;
- if (TextRun::RenderingContext* renderingContext = run.renderingContext())
- renderObject = &static_cast<SVGTextRunRenderingContext*>(renderingContext)->renderer();
-
- String language;
- bool isVerticalText = false;
- Vector<String> altGlyphNames;
-
- if (renderObject) {
- RenderElement& parentRenderer = is<RenderElement>(*renderObject) ? downcast<RenderElement>(*renderObject) : *renderObject->parent();
-
- isVerticalText = parentRenderer.style().svgStyle().isVerticalWritingMode();
- if (Element* parentRendererElement = parentRenderer.element()) {
- language = parentRendererElement->getAttribute(XMLNames::langAttr);
-
- if (is<SVGAltGlyphElement>(*parentRendererElement)) {
- SVGAltGlyphElement& altGlyph = downcast<SVGAltGlyphElement>(*parentRendererElement);
- if (!altGlyph.hasValidGlyphElements(altGlyphNames))
- altGlyphNames.clear();
- }
- }
- }
-
- Vector<SVGGlyph> glyphs;
- if (!altGlyphNames.isEmpty()) {
- for (auto& name : altGlyphNames)
- associatedFontElement->collectGlyphsForGlyphName(name, glyphs);
-
- // Assign the unicodeStringLength now that its known.
- for (auto& glyph : glyphs)
- glyph.unicodeStringLength = run.length();
-
- // Do not check alt glyphs for compatibility. Just return the first one.
- // Later code will fail if we do not do this and the glyph is incompatible.
- if (!glyphs.isEmpty()) {
- SVGGlyph& svgGlyph = glyphs[0];
- iterator.setLastGlyphName(svgGlyph.glyphName);
- glyphData.glyph = svgGlyph.tableEntry;
- advanceLength = svgGlyph.unicodeStringLength;
- return true;
- }
- } else {
- // Associate text with arabic forms, if needed.
- computeNormalizedSpaces(run, mirror, normalizedSpacesStringCache);
- auto remainingTextInRun = normalizedSpacesStringCache.substring(currentCharacter);
-
- if (!currentCharacter && arabicForms.isEmpty())
- arabicForms = charactersWithArabicForm(remainingTextInRun, mirror);
-
- associatedFontElement->collectGlyphsForString(remainingTextInRun, glyphs);
- }
-
- for (auto& glyph : glyphs) {
- if (glyph.isPartOfLigature)
- continue;
- if (!isCompatibleGlyph(glyph, isVerticalText, language, arabicForms, currentCharacter, currentCharacter + glyph.unicodeStringLength))
- continue;
- iterator.setLastGlyphName(glyph.glyphName);
- glyphData.glyph = glyph.tableEntry;
- advanceLength = glyph.unicodeStringLength;
- return true;
- }
-
- iterator.setLastGlyphName(String());
- return false;
-}
-
-bool SVGFontData::fillSVGGlyphPage(GlyphPage* pageToFill, UChar* buffer, unsigned bufferLength) const
-{
- SVGFontFaceElement* fontFaceElement = this->svgFontFaceElement();
- ASSERT(fontFaceElement);
-
- SVGFontElement* fontElement = fontFaceElement->associatedFontElement();
- ASSERT(fontElement);
-
- if (bufferLength == GlyphPage::size)
- return fillBMPGlyphs(fontElement, pageToFill, buffer);
-
- ASSERT(bufferLength == 2 * GlyphPage::size);
- return fillNonBMPGlyphs(fontElement, pageToFill, buffer);
-}
-
-bool SVGFontData::fillBMPGlyphs(SVGFontElement* fontElement, GlyphPage* pageToFill, UChar* buffer) const
-{
- bool haveGlyphs = false;
- Vector<SVGGlyph> glyphs;
- for (unsigned i = 0; i < GlyphPage::size; ++i) {
- String lookupString(buffer + i, 1);
- fontElement->collectGlyphsForString(lookupString, glyphs);
- if (glyphs.isEmpty()) {
- pageToFill->setGlyphForIndex(i, 0);
- continue;
- }
-
- // Associate entry in glyph page with first valid SVGGlyph.
- // If there are multiple valid ones, just take the first one. WidthIterator will take
- // care of matching to the correct glyph, if multiple ones are available, as that's
- // only possible within the context of a string (eg. arabic form matching).
- haveGlyphs = true;
- pageToFill->setGlyphForIndex(i, glyphs.first().tableEntry);
- glyphs.clear();
- }
-
- return haveGlyphs;
-}
-
-bool SVGFontData::fillNonBMPGlyphs(SVGFontElement* fontElement, GlyphPage* pageToFill, UChar* buffer) const
-{
- bool haveGlyphs = false;
- Vector<SVGGlyph> glyphs;
- for (unsigned i = 0; i < GlyphPage::size; ++i) {
- // Each character here consists of a surrogate pair
- String lookupString(buffer + i * 2, 2);
- fontElement->collectGlyphsForString(lookupString, glyphs);
- if (glyphs.isEmpty()) {
- pageToFill->setGlyphForIndex(i, 0);
- continue;
- }
-
- // Associate entry in glyph page with first valid SVGGlyph.
- // If there are multiple valid ones, just take the first one. WidthIterator will take
- // care of matching to the correct glyph, if multiple ones are available, as that's
- // only possible within the context of a string (eg. arabic form matching).
- haveGlyphs = true;
- pageToFill->setGlyphForIndex(i, glyphs.first().tableEntry);
- glyphs.clear();
- }
-
- return haveGlyphs;
-}
-
-void computeNormalizedSpaces(const TextRun& run, bool mirror, String& normalizedSpacesStringCache)
-{
- if (normalizedSpacesStringCache.length() == static_cast<unsigned>(run.charactersLength()))
- return;
- if (run.is8Bit())
- normalizedSpacesStringCache = FontCascade::normalizeSpaces(run.characters8(), run.charactersLength());
- else
- normalizedSpacesStringCache = FontCascade::normalizeSpaces(run.characters16(), run.charactersLength());
- if (mirror)
- normalizedSpacesStringCache = createStringWithMirroredCharacters(normalizedSpacesStringCache);
-}
-
-String createStringWithMirroredCharacters(StringView string)
-{
- unsigned length = string.length();
- StringBuilder mirroredCharacters;
- mirroredCharacters.reserveCapacity(length);
- for (unsigned i = 0; i < length; ) {
- UChar32 character;
- U16_NEXT(string, i, length, character);
- mirroredCharacters.append(u_charMirror(character));
- }
- return mirroredCharacters.toString();
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontDatah"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/svg/SVGFontData.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontData.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGFontData.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,78 +0,0 @@
</span><del>-/*
- * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef SVGFontData_h
-#define SVGFontData_h
-
-#if ENABLE(SVG_FONTS)
-#include "Font.h"
-
-namespace WebCore {
-
-class SVGFontElement;
-class SVGFontFaceElement;
-
-class SVGFontData : public Font::SVGData {
-public:
- explicit SVGFontData(SVGFontFaceElement*);
- virtual ~SVGFontData() { }
-
- void initializeFont(Font*, float fontSize) override;
- float widthForSVGGlyph(Glyph, float fontSize) const override;
- bool fillSVGGlyphPage(GlyphPage*, UChar* buffer, unsigned bufferLength) const override;
-
- bool applySVGGlyphSelection(WidthIterator&, GlyphData&, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache) const;
-
- SVGFontFaceElement* svgFontFaceElement() const { return m_svgFontFaceElement; }
-
- float horizontalOriginX() const { return m_horizontalOriginX; }
- float horizontalOriginY() const { return m_horizontalOriginY; }
- float horizontalAdvanceX() const { return m_horizontalAdvanceX; }
-
- float verticalOriginX() const { return m_verticalOriginX; }
- float verticalOriginY() const { return m_verticalOriginY; }
- float verticalAdvanceY() const { return m_verticalAdvanceY; }
-
-private:
- bool fillBMPGlyphs(SVGFontElement*, GlyphPage*, UChar* buffer) const;
- bool fillNonBMPGlyphs(SVGFontElement*, GlyphPage*, UChar* buffer) const;
-
- bool applyTransforms(GlyphBufferGlyph*, GlyphBufferAdvance*, size_t, bool enableKerning, bool requiresShaping) const = delete;
-
- // Ths SVGFontFaceElement is kept alive --
- // 1) in the external font case: by the CSSFontFaceSource, which holds a reference to the external SVG document
- // containing the element;
- // 2) in the in-document font case: by virtue of being in the document tree and making sure that when it is removed
- // from the document, it removes the @font-face rule it owns from the document's mapped element sheet and forces
- // a style update.
- SVGFontFaceElement* m_svgFontFaceElement;
-
- float m_horizontalOriginX;
- float m_horizontalOriginY;
- float m_horizontalAdvanceX;
-
- float m_verticalOriginX;
- float m_verticalOriginY;
- float m_verticalAdvanceY;
-};
-
-} // namespace WebCore
-
-#endif
-#endif // SVGFontData_h
</del></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontElement.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontElement.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGFontElement.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -46,8 +46,6 @@
</span><span class="cx">
</span><span class="cx"> inline SVGFontElement::SVGFontElement(const QualifiedName& tagName, Document& document)
</span><span class="cx"> : SVGElement(tagName, document)
</span><del>- , m_missingGlyph(0)
- , m_isGlyphCacheValid(false)
</del><span class="cx"> {
</span><span class="cx"> ASSERT(hasTagName(SVGNames::fontTag));
</span><span class="cx"> registerAnimatedPropertiesForSVGFontElement();
</span><span class="lines">@@ -58,264 +56,6 @@
</span><span class="cx"> return adoptRef(*new SVGFontElement(tagName, document));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void SVGFontElement::invalidateGlyphCache()
-{
- if (m_isGlyphCacheValid) {
- m_glyphMap.clear();
- m_horizontalKerningMap.clear();
- m_verticalKerningMap.clear();
- }
- m_isGlyphCacheValid = false;
</del><span class="cx"> }
</span><span class="cx">
</span><del>-const SVGMissingGlyphElement* SVGFontElement::firstMissingGlyphElement() const
-{
- return childrenOfType<SVGMissingGlyphElement>(*this).first();
-}
-
-void SVGFontElement::registerLigaturesInGlyphCache(Vector<String>& ligatures)
-{
- ASSERT(!ligatures.isEmpty());
-
- // Register each character of a ligature in the map, if not present.
- // Eg. If only a "fi" ligature is present, but not "f" and "i", the
- // GlyphPage will not contain any entries for "f" and "i", so the
- // SVGFont is not used to render the text "fi1234". Register an
- // empty SVGGlyph with the character, so the SVG Font will be used
- // to render the text. If someone tries to render "f2" the SVG Font
- // will not be able to find a glyph for "f", but handles the fallback
- // character substitution properly through glyphDataForCharacter().
- Vector<SVGGlyph> glyphs;
- for (auto& unicode : ligatures) {
- unsigned unicodeLength = unicode.length();
- ASSERT(unicodeLength > 1);
-
- for (unsigned i = 0; i < unicodeLength; ++i) {
- UChar character = unicode[i];
- String lookupString(&character, 1);
- m_glyphMap.collectGlyphsForString(lookupString, glyphs);
- if (!glyphs.isEmpty()) {
- glyphs.clear();
- continue;
- }
-
- // This glyph is never meant to be used for rendering, only as identifier as a part of a ligature.
- SVGGlyph newGlyphPart;
- newGlyphPart.isPartOfLigature = true;
- m_glyphMap.addGlyph(String(), lookupString, newGlyphPart);
- }
- }
-}
-
-void SVGFontElement::ensureGlyphCache()
-{
- if (m_isGlyphCacheValid)
- return;
-
- const SVGMissingGlyphElement* firstMissingGlyphElement = nullptr;
- Vector<String> ligatures;
- for (auto& child : childrenOfType<SVGElement>(*this)) {
- if (is<SVGGlyphElement>(child)) {
- SVGGlyphElement& glyph = downcast<SVGGlyphElement>(child);
- AtomicString unicode = glyph.fastGetAttribute(SVGNames::unicodeAttr);
- AtomicString glyphId = glyph.getIdAttribute();
- if (glyphId.isEmpty() && unicode.isEmpty())
- continue;
-
- m_glyphMap.addGlyph(glyphId, unicode, glyph.buildGlyphIdentifier());
-
- // Register ligatures, if needed, don't mix up with surrogate pairs though!
- if (unicode.length() > 1 && !U16_IS_SURROGATE(unicode[0]))
- ligatures.append(unicode.string());
- } else if (is<SVGHKernElement>(child)) {
- SVGHKernElement& hkern = downcast<SVGHKernElement>(child);
- SVGKerningPair kerningPair;
- if (hkern.buildHorizontalKerningPair(kerningPair))
- m_horizontalKerningMap.insert(kerningPair);
- } else if (is<SVGVKernElement>(child)) {
- SVGVKernElement& vkern = downcast<SVGVKernElement>(child);
- SVGKerningPair kerningPair;
- if (vkern.buildVerticalKerningPair(kerningPair))
- m_verticalKerningMap.insert(kerningPair);
- } else if (is<SVGMissingGlyphElement>(child) && !firstMissingGlyphElement)
- firstMissingGlyphElement = &downcast<SVGMissingGlyphElement>(child);
- }
-
- // Register each character of each ligature, if needed.
- if (!ligatures.isEmpty())
- registerLigaturesInGlyphCache(ligatures);
-
- // Register missing-glyph element, if present.
- if (firstMissingGlyphElement) {
- SVGGlyph svgGlyph = SVGGlyphElement::buildGenericGlyphIdentifier(firstMissingGlyphElement);
- m_glyphMap.appendToGlyphTable(svgGlyph);
- m_missingGlyph = svgGlyph.tableEntry;
- ASSERT(m_missingGlyph > 0);
- }
-
- m_isGlyphCacheValid = true;
-}
-
-void SVGKerningMap::clear()
-{
- unicodeMap.clear();
- glyphMap.clear();
- kerningUnicodeRangeMap.clear();
-}
-
-void SVGKerningMap::insert(const SVGKerningPair& kerningPair)
-{
- SVGKerning svgKerning;
- svgKerning.kerning = kerningPair.kerning;
- svgKerning.unicodeRange2 = kerningPair.unicodeRange2;
- svgKerning.unicodeName2 = kerningPair.unicodeName2;
- svgKerning.glyphName2 = kerningPair.glyphName2;
-
- for (auto& name : kerningPair.unicodeName1) {
- if (unicodeMap.contains(name))
- unicodeMap.get(name)->append(svgKerning);
- else {
- auto newVector = std::make_unique<SVGKerningVector>();
- newVector->append(svgKerning);
- unicodeMap.add(name, WTFMove(newVector));
- }
- }
-
- for (auto& name : kerningPair.glyphName1) {
- if (glyphMap.contains(name))
- glyphMap.get(name)->append(svgKerning);
- else {
- auto newVector = std::make_unique<SVGKerningVector>();
- newVector->append(svgKerning);
- glyphMap.add(name, WTFMove(newVector));
- }
- }
-
- if (!kerningPair.unicodeRange1.isEmpty())
- kerningUnicodeRangeMap.append(kerningPair);
-}
-
-static inline bool stringMatchesUnicodeRange(const String& unicodeString, const UnicodeRanges& ranges)
-{
- if (unicodeString.isEmpty())
- return false;
-
- if (!ranges.isEmpty()) {
- UChar firstChar = unicodeString[0];
- for (auto& range : ranges) {
- if (firstChar >= range.first && firstChar <= range.second)
- return true;
- }
- }
-
- return false;
-}
-
-static inline bool stringMatchesGlyphName(const String& glyphName, const HashSet<String>& glyphValues)
-{
- if (glyphName.isEmpty())
- return false;
-
- return glyphValues.contains(glyphName);
-}
-
-static inline bool stringMatchesUnicodeName(const String& unicodeName, const HashSet<String>& unicodeValues)
-{
- if (unicodeName.isEmpty())
- return false;
-
- return unicodeValues.contains(unicodeName);
-}
-
-static inline bool matches(const String& u2, const String& g2, const SVGKerning& svgKerning)
-{
- return stringMatchesGlyphName(g2, svgKerning.glyphName2)
- || stringMatchesUnicodeName(u2, svgKerning.unicodeName2)
- || stringMatchesUnicodeRange(u2, svgKerning.unicodeRange2);
-}
-
-static inline bool matches(const String& u1, const String& u2, const String& g2, const SVGKerningPair& svgKerningPair)
-{
- return stringMatchesUnicodeRange(u1, svgKerningPair.unicodeRange1) && matches(u2, g2, svgKerningPair);
-}
-
-static inline float kerningForPairOfStringsAndGlyphs(const SVGKerningMap& kerningMap, const String& u1, const String& g1, const String& u2, const String& g2)
-{
- if (!g1.isEmpty() && kerningMap.glyphMap.contains(g1)) {
- SVGKerningVector* kerningVector = kerningMap.glyphMap.get(g1);
- SVGKerningVector::const_iterator it = kerningVector->end() - 1;
- const SVGKerningVector::const_iterator begin = kerningVector->begin() - 1;
- for (; it != begin; --it) {
- if (matches(u2, g2, *it))
- return it->kerning;
- }
- }
-
- if (!u1.isEmpty()) {
- if (kerningMap.unicodeMap.contains(u1)) {
- SVGKerningVector* kerningVector = kerningMap.unicodeMap.get(u1);
- SVGKerningVector::const_iterator it = kerningVector->end() - 1;
- const SVGKerningVector::const_iterator begin = kerningVector->begin() - 1;
- for (; it != begin; --it) {
- if (matches(u2, g2, *it))
- return it->kerning;
- }
- }
-
- if (!kerningMap.kerningUnicodeRangeMap.isEmpty()) {
- Vector<SVGKerningPair>::const_iterator it = kerningMap.kerningUnicodeRangeMap.end() - 1;
- const Vector<SVGKerningPair>::const_iterator begin = kerningMap.kerningUnicodeRangeMap.begin() - 1;
- for (; it != begin; --it) {
- if (matches(u1, u2, g2, *it))
- return it->kerning;
- }
- }
- }
-
- return 0;
-}
-
-float SVGFontElement::horizontalKerningForPairOfStringsAndGlyphs(const String& u1, const String& g1, const String& u2, const String& g2) const
-{
- if (m_horizontalKerningMap.isEmpty())
- return 0;
-
- return kerningForPairOfStringsAndGlyphs(m_horizontalKerningMap, u1, g1, u2, g2);
-}
-
-float SVGFontElement::verticalKerningForPairOfStringsAndGlyphs(const String& u1, const String& g1, const String& u2, const String& g2) const
-{
- if (m_verticalKerningMap.isEmpty())
- return 0;
-
- return kerningForPairOfStringsAndGlyphs(m_verticalKerningMap, u1, g1, u2, g2);
-}
-
-void SVGFontElement::collectGlyphsForString(const String& string, Vector<SVGGlyph>& glyphs)
-{
- ensureGlyphCache();
- m_glyphMap.collectGlyphsForString(string, glyphs);
-}
-
-void SVGFontElement::collectGlyphsForGlyphName(const String& glyphName, Vector<SVGGlyph>& glyphs)
-{
- ensureGlyphCache();
- // FIXME: We only support glyphName -> single glyph mapping so far.
- glyphs.append(m_glyphMap.glyphIdentifierForGlyphName(glyphName));
-}
-
-SVGGlyph SVGFontElement::svgGlyphForGlyph(Glyph glyph)
-{
- ensureGlyphCache();
- return m_glyphMap.svgGlyphForGlyph(glyph);
-}
-
-Glyph SVGFontElement::missingGlyph()
-{
- ensureGlyphCache();
- return m_missingGlyph;
-}
-
-}
-
</del><span class="cx"> #endif // ENABLE(SVG_FONTS)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontElement.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontElement.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGFontElement.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -26,80 +26,35 @@
</span><span class="cx"> #include "SVGAnimatedBoolean.h"
</span><span class="cx"> #include "SVGElement.h"
</span><span class="cx"> #include "SVGExternalResourcesRequired.h"
</span><del>-#include "SVGGlyphMap.h"
</del><span class="cx"> #include "SVGParserUtilities.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-// Describe an SVG <hkern>/<vkern> element already matched on the first symbol.
-struct SVGKerning {
- float kerning;
- UnicodeRanges unicodeRange2;
- HashSet<String> unicodeName2;
- HashSet<String> glyphName2;
-
- SVGKerning()
- : kerning(0)
- { }
-};
-
</del><span class="cx"> // Describe an SVG <hkern>/<vkern> element
</span><del>-struct SVGKerningPair : public SVGKerning {
</del><ins>+struct SVGKerningPair {
</ins><span class="cx"> UnicodeRanges unicodeRange1;
</span><span class="cx"> HashSet<String> unicodeName1;
</span><span class="cx"> HashSet<String> glyphName1;
</span><del>-};
</del><span class="cx">
</span><del>-typedef Vector<SVGKerning> SVGKerningVector;
-
-struct SVGKerningMap {
- HashMap<String, std::unique_ptr<SVGKerningVector>> unicodeMap;
- HashMap<String, std::unique_ptr<SVGKerningVector>> glyphMap;
- Vector<SVGKerningPair> kerningUnicodeRangeMap;
-
- bool isEmpty() const { return unicodeMap.isEmpty() && glyphMap.isEmpty() && kerningUnicodeRangeMap.isEmpty(); }
- void clear();
- void insert(const SVGKerningPair&);
</del><ins>+ UnicodeRanges unicodeRange2;
+ HashSet<String> unicodeName2;
+ HashSet<String> glyphName2;
+ float kerning { 0 };
</ins><span class="cx"> };
</span><span class="cx">
</span><del>-class SVGMissingGlyphElement;
-
</del><span class="cx"> class SVGFontElement final : public SVGElement
</span><span class="cx"> , public SVGExternalResourcesRequired {
</span><span class="cx"> public:
</span><span class="cx"> static Ref<SVGFontElement> create(const QualifiedName&, Document&);
</span><span class="cx">
</span><del>- void invalidateGlyphCache();
- void collectGlyphsForString(const String&, Vector<SVGGlyph>&);
- void collectGlyphsForGlyphName(const String&, Vector<SVGGlyph>&);
-
- float horizontalKerningForPairOfStringsAndGlyphs(const String& u1, const String& g1, const String& u2, const String& g2) const;
- float verticalKerningForPairOfStringsAndGlyphs(const String& u1, const String& g1, const String& u2, const String& g2) const;
-
- // Used by Font/WidthIterator.
- SVGGlyph svgGlyphForGlyph(Glyph);
- Glyph missingGlyph();
-
- const SVGMissingGlyphElement* firstMissingGlyphElement() const;
- bool horizontalKerningMapIsEmpty() const { return m_horizontalKerningMap.isEmpty(); }
-
</del><span class="cx"> private:
</span><span class="cx"> SVGFontElement(const QualifiedName&, Document&);
</span><span class="cx">
</span><span class="cx"> bool rendererIsNeeded(const RenderStyle&) override { return false; }
</span><span class="cx">
</span><del>- void ensureGlyphCache();
- void registerLigaturesInGlyphCache(Vector<String>&);
-
</del><span class="cx"> BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGFontElement)
</span><span class="cx"> DECLARE_ANIMATED_BOOLEAN_OVERRIDE(ExternalResourcesRequired, externalResourcesRequired)
</span><span class="cx"> END_DECLARE_ANIMATED_PROPERTIES
</span><del>-
- SVGKerningMap m_horizontalKerningMap;
- SVGKerningMap m_verticalKerningMap;
- SVGGlyphMap m_glyphMap;
- Glyph m_missingGlyph;
- bool m_isGlyphCacheValid;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGGlyphElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGGlyphElement.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGGlyphElement.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGGlyphElement.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><span class="cx"> #include "SVGGlyphElement.h"
</span><span class="cx">
</span><del>-#include "SVGFontData.h"
</del><span class="cx"> #include "SVGFontElement.h"
</span><span class="cx"> #include "SVGFontFaceElement.h"
</span><span class="cx"> #include "SVGNames.h"
</span><span class="lines">@@ -43,125 +42,6 @@
</span><span class="cx"> return adoptRef(*new SVGGlyphElement(tagName, document));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void SVGGlyphElement::invalidateGlyphCache()
-{
- ContainerNode* fontNode = parentNode();
- if (is<SVGFontElement>(fontNode))
- downcast<SVGFontElement>(*fontNode).invalidateGlyphCache();
</del><span class="cx"> }
</span><span class="cx">
</span><del>-void SVGGlyphElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
-{
- if (name == SVGNames::dAttr)
- invalidateGlyphCache();
- else
- SVGElement::parseAttribute(name, value);
-}
-
-Node::InsertionNotificationRequest SVGGlyphElement::insertedInto(ContainerNode& rootParent)
-{
- invalidateGlyphCache();
- return SVGElement::insertedInto(rootParent);
-}
-
-void SVGGlyphElement::removedFrom(ContainerNode& rootParent)
-{
- if (rootParent.inDocument())
- invalidateGlyphCache();
- SVGElement::removedFrom(rootParent);
-}
-
-static inline SVGGlyph::ArabicForm parseArabicForm(const AtomicString& value)
-{
- if (value == "medial")
- return SVGGlyph::Medial;
- if (value == "terminal")
- return SVGGlyph::Terminal;
- if (value == "isolated")
- return SVGGlyph::Isolated;
- if (value == "initial")
- return SVGGlyph::Initial;
-
- return SVGGlyph::None;
-}
-
-static inline SVGGlyph::Orientation parseOrientation(const AtomicString& value)
-{
- if (value == "h")
- return SVGGlyph::Horizontal;
- if (value == "v")
- return SVGGlyph::Vertical;
-
- return SVGGlyph::Both;
-}
-
-void SVGGlyphElement::inheritUnspecifiedAttributes(SVGGlyph& identifier, const SVGFontData* svgFontData)
-{
- if (identifier.horizontalAdvanceX == SVGGlyph::inheritedValue())
- identifier.horizontalAdvanceX = svgFontData->horizontalAdvanceX();
-
- if (identifier.verticalOriginX == SVGGlyph::inheritedValue())
- identifier.verticalOriginX = svgFontData->verticalOriginX();
-
- if (identifier.verticalOriginY == SVGGlyph::inheritedValue())
- identifier.verticalOriginY = svgFontData->verticalOriginY();
-
- if (identifier.verticalAdvanceY == SVGGlyph::inheritedValue())
- identifier.verticalAdvanceY = svgFontData->verticalAdvanceY();
-}
-
-static inline float parseSVGGlyphAttribute(const SVGElement* element, const WebCore::QualifiedName& name)
-{
- AtomicString value(element->fastGetAttribute(name));
- if (value.isEmpty())
- return SVGGlyph::inheritedValue();
-
- return value.toFloat();
-}
-
-SVGGlyph SVGGlyphElement::buildGenericGlyphIdentifier(const SVGElement* element)
-{
- SVGGlyph identifier;
- buildPathFromString(element->fastGetAttribute(SVGNames::dAttr), identifier.pathData);
-
- // Spec: The horizontal advance after rendering the glyph in horizontal orientation.
- // If the attribute is not specified, the effect is as if the attribute were set to the
- // value of the font's horiz-adv-x attribute. Glyph widths are required to be non-negative,
- // even if the glyph is typically rendered right-to-left, as in Hebrew and Arabic scripts.
- identifier.horizontalAdvanceX = parseSVGGlyphAttribute(element, SVGNames::horiz_adv_xAttr);
-
- // Spec: The X-coordinate in the font coordinate system of the origin of the glyph to be
- // used when drawing vertically oriented text. If the attribute is not specified, the effect
- // is as if the attribute were set to the value of the font's vert-origin-x attribute.
- identifier.verticalOriginX = parseSVGGlyphAttribute(element, SVGNames::vert_origin_xAttr);
-
- // Spec: The Y-coordinate in the font coordinate system of the origin of a glyph to be
- // used when drawing vertically oriented text. If the attribute is not specified, the effect
- // is as if the attribute were set to the value of the font's vert-origin-y attribute.
- identifier.verticalOriginY = parseSVGGlyphAttribute(element, SVGNames::vert_origin_yAttr);
-
- // Spec: The vertical advance after rendering a glyph in vertical orientation.
- // If the attribute is not specified, the effect is as if the attribute were set to the
- // value of the font's vert-adv-y attribute.
- identifier.verticalAdvanceY = parseSVGGlyphAttribute(element, SVGNames::vert_adv_yAttr);
-
- return identifier;
-}
-
-SVGGlyph SVGGlyphElement::buildGlyphIdentifier() const
-{
- SVGGlyph identifier(buildGenericGlyphIdentifier(this));
- identifier.glyphName = fastGetAttribute(SVGNames::glyph_nameAttr);
- identifier.orientation = parseOrientation(fastGetAttribute(SVGNames::orientationAttr));
- identifier.arabicForm = parseArabicForm(fastGetAttribute(SVGNames::arabic_formAttr));
-
- String language = fastGetAttribute(SVGNames::langAttr);
- if (!language.isEmpty())
- identifier.languages = parseDelimitedString(language, ',');
-
- return identifier;
-}
-
-}
-
</del><span class="cx"> #endif // ENABLE(SVG_FONTS)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGGlyphElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGGlyphElement.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGGlyphElement.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGGlyphElement.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -24,37 +24,20 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><span class="cx"> #include "SVGElement.h"
</span><del>-#include "SVGGlyph.h"
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-class SVGFontData;
-
</del><span class="cx"> class SVGGlyphElement final : public SVGElement {
</span><span class="cx"> public:
</span><span class="cx"> static Ref<SVGGlyphElement> create(const QualifiedName&, Document&);
</span><span class="cx">
</span><del>- SVGGlyph buildGlyphIdentifier() const;
-
</del><span class="cx"> // Helper function used by SVGFont
</span><del>- static void inheritUnspecifiedAttributes(SVGGlyph&, const SVGFontData*);
</del><span class="cx"> static String querySVGFontLanguage(const SVGElement*);
</span><span class="cx">
</span><del>- // Helper function shared between SVGGlyphElement & SVGMissingGlyphElement
- static SVGGlyph buildGenericGlyphIdentifier(const SVGElement*);
-
</del><span class="cx"> private:
</span><span class="cx"> SVGGlyphElement(const QualifiedName&, Document&);
</span><span class="cx">
</span><del>- // FIXME: svgAttributeChanged missing.
- void parseAttribute(const QualifiedName&, const AtomicString&) override;
-
- InsertionNotificationRequest insertedInto(ContainerNode&) override;
- void removedFrom(ContainerNode&) override;
-
</del><span class="cx"> bool rendererIsNeeded(const RenderStyle&) override { return false; }
</span><del>-
- void invalidateGlyphCache();
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGGlyphMaph"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/svg/SVGGlyphMap.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGGlyphMap.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGGlyphMap.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,167 +0,0 @@
</span><del>-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef SVGGlyphMap_h
-#define SVGGlyphMap_h
-
-#if ENABLE(SVG_FONTS)
-
-#include "SurrogatePairAwareTextIterator.h"
-#include "SVGGlyph.h"
-#include <wtf/HashMap.h>
-#include <wtf/Vector.h>
-#include <wtf/text/StringView.h>
-
-namespace WebCore {
-
-struct GlyphMapNode;
-class SVGFontData;
-
-typedef HashMap<UChar32, RefPtr<GlyphMapNode>> GlyphMapLayer;
-
-struct GlyphMapNode : public RefCounted<GlyphMapNode> {
-private:
- GlyphMapNode() { }
-public:
- static Ref<GlyphMapNode> create() { return adoptRef(*new GlyphMapNode); }
-
- Vector<SVGGlyph> glyphs;
-
- GlyphMapLayer children;
-};
-
-class SVGGlyphMap {
-public:
- SVGGlyphMap() : m_currentPriority(0) { }
-
- void addGlyph(const String& glyphName, const String& unicodeString, SVGGlyph glyph)
- {
- ASSERT(!glyphName.isEmpty() || !unicodeString.isEmpty());
-
- bool hasGlyphName = !glyphName.isEmpty();
- if (unicodeString.isEmpty()) {
- // Register named glyph in the named glyph map and in the glyph table.
- ASSERT(hasGlyphName);
- appendToGlyphTable(glyph);
- m_namedGlyphs.add(glyphName, glyph.tableEntry);
- return;
- }
-
- GlyphMapLayer* currentLayer = &m_rootLayer;
- RefPtr<GlyphMapNode> node;
- size_t length = unicodeString.length();
-
- UChar32 character = 0;
- unsigned clusterLength = 0;
- auto upconvertedCharacters = StringView(unicodeString).upconvertedCharacters();
- SurrogatePairAwareTextIterator textIterator(upconvertedCharacters, 0, length, length);
- while (textIterator.consume(character, clusterLength)) {
- node = currentLayer->get(character);
- if (!node) {
- node = GlyphMapNode::create();
- currentLayer->set(character, node);
- }
- currentLayer = &node->children;
- textIterator.advance(clusterLength);
- }
-
- if (!node)
- return;
-
- // Register glyph associated with an unicode string into the glyph map.
- node->glyphs.append(glyph);
- SVGGlyph& lastGlyph = node->glyphs.last();
- lastGlyph.priority = m_currentPriority++;
- lastGlyph.unicodeStringLength = length;
-
- // If the glyph is named, also add it to the named glyph name, and to the glyph table in both cases.
- appendToGlyphTable(lastGlyph);
- if (hasGlyphName)
- m_namedGlyphs.add(glyphName, lastGlyph.tableEntry);
- }
-
- void appendToGlyphTable(SVGGlyph& glyph)
- {
- size_t tableEntry = m_glyphTable.size();
- ASSERT(tableEntry < std::numeric_limits<unsigned short>::max());
-
- // The first table entry starts with 1. 0 denotes an unknown glyph.
- glyph.tableEntry = tableEntry + 1;
- m_glyphTable.append(glyph);
- }
-
- static inline bool compareGlyphPriority(const SVGGlyph& first, const SVGGlyph& second)
- {
- return first.priority < second.priority;
- }
-
- void collectGlyphsForString(const String& string, Vector<SVGGlyph>& glyphs)
- {
- GlyphMapLayer* currentLayer = &m_rootLayer;
-
- auto upconvertedCharacters = StringView(string).upconvertedCharacters();
- size_t length = string.length();
-
- UChar32 character = 0;
- unsigned clusterLength = 0;
- SurrogatePairAwareTextIterator textIterator(upconvertedCharacters, 0, length, length);
- while (textIterator.consume(character, clusterLength)) {
- RefPtr<GlyphMapNode> node = currentLayer->get(character);
- if (!node)
- break;
- glyphs.appendVector(node->glyphs);
- currentLayer = &node->children;
- textIterator.advance(clusterLength);
- }
-
- std::sort(glyphs.begin(), glyphs.end(), compareGlyphPriority);
- }
-
- void clear()
- {
- m_rootLayer.clear();
- m_glyphTable.clear();
- m_currentPriority = 0;
- }
-
- const SVGGlyph& svgGlyphForGlyph(Glyph glyph) const
- {
- if (!glyph || glyph > m_glyphTable.size()) {
- static NeverDestroyed<SVGGlyph> defaultGlyph;
- return defaultGlyph;
- }
- return m_glyphTable[glyph - 1];
- }
-
- const SVGGlyph& glyphIdentifierForGlyphName(const String& glyphName) const
- {
- return svgGlyphForGlyph(m_namedGlyphs.get(glyphName));
- }
-
-private:
- GlyphMapLayer m_rootLayer;
- Vector<SVGGlyph, 256> m_glyphTable;
- HashMap<String, Glyph> m_namedGlyphs;
- int m_currentPriority;
-};
-
-}
-
-#endif // ENABLE(SVG_FONTS)
-#endif // SVGGlyphMap_h
</del></span></pre></div>
<a id="trunkSourceWebCoresvgSVGHKernElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGHKernElement.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGHKernElement.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGHKernElement.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -41,24 +41,6 @@
</span><span class="cx"> return adoptRef(*new SVGHKernElement(tagName, document));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Node::InsertionNotificationRequest SVGHKernElement::insertedInto(ContainerNode& rootParent)
-{
- ContainerNode* fontNode = parentNode();
- if (is<SVGFontElement>(fontNode))
- downcast<SVGFontElement>(*fontNode).invalidateGlyphCache();
-
- return SVGElement::insertedInto(rootParent);
-}
-
-void SVGHKernElement::removedFrom(ContainerNode& rootParent)
-{
- ContainerNode* fontNode = parentNode();
- if (is<SVGFontElement>(fontNode))
- downcast<SVGFontElement>(*fontNode).invalidateGlyphCache();
-
- SVGElement::removedFrom(rootParent);
-}
-
</del><span class="cx"> bool SVGHKernElement::buildHorizontalKerningPair(SVGKerningPair& kerningPair) const
</span><span class="cx"> {
</span><span class="cx"> String u1 = fastGetAttribute(SVGNames::u1Attr);
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGHKernElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGHKernElement.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGHKernElement.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGHKernElement.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -36,9 +36,6 @@
</span><span class="cx"> private:
</span><span class="cx"> SVGHKernElement(const QualifiedName&, Document&);
</span><span class="cx">
</span><del>- InsertionNotificationRequest insertedInto(ContainerNode&) override;
- void removedFrom(ContainerNode&) override;
-
</del><span class="cx"> bool rendererIsNeeded(const RenderStyle&) override { return false; }
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGToOTFFontConversioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGToOTFFontConversion.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "SVGToOTFFontConversion.h"
</span><span class="cx">
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
-
</del><span class="cx"> #include "CSSStyleDeclaration.h"
</span><span class="cx"> #include "ElementChildIterator.h"
</span><span class="cx"> #include "SVGFontElement.h"
</span><span class="lines">@@ -1594,5 +1592,3 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span><del>-
-#endif // ENABLE(SVG_OTF_CONVERTER)
</del></span></pre></div>
<a id="trunkSourceWebCoresvgSVGToOTFFontConversionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGToOTFFontConversion.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGToOTFFontConversion.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGToOTFFontConversion.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #ifndef SVGToOTFFontConversion_h
</span><span class="cx"> #define SVGToOTFFontConversion_h
</span><span class="cx">
</span><del>-#if ENABLE(SVG_OTF_CONVERTER)
-
</del><span class="cx"> #include <wtf/Optional.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx">
</span><span class="lines">@@ -39,5 +37,4 @@
</span><span class="cx">
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#endif // ENABLE(SVG_OTF_CONVERTER)
</del><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGVKernElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGVKernElement.cpp (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGVKernElement.cpp        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGVKernElement.cpp        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -40,26 +40,6 @@
</span><span class="cx"> return adoptRef(*new SVGVKernElement(tagName, document));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Node::InsertionNotificationRequest SVGVKernElement::insertedInto(ContainerNode& rootParent)
-{
- if (rootParent.inDocument()) {
- ContainerNode* fontNode = parentNode();
- if (is<SVGFontElement>(fontNode))
- downcast<SVGFontElement>(*fontNode).invalidateGlyphCache();
- }
-
- return SVGElement::insertedInto(rootParent);
-}
-
-void SVGVKernElement::removedFrom(ContainerNode& rootParent)
-{
- ContainerNode* fontNode = parentNode();
- if (is<SVGFontElement>(fontNode))
- downcast<SVGFontElement>(*fontNode).invalidateGlyphCache();
-
- SVGElement::removedFrom(rootParent);
-}
-
</del><span class="cx"> bool SVGVKernElement::buildVerticalKerningPair(SVGKerningPair& kerningPair) const
</span><span class="cx"> {
</span><span class="cx"> String u1 = fastGetAttribute(SVGNames::u1Attr);
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGVKernElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGVKernElement.h (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGVKernElement.h        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebCore/svg/SVGVKernElement.h        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -35,9 +35,6 @@
</span><span class="cx"> private:
</span><span class="cx"> SVGVKernElement(const QualifiedName&, Document&);
</span><span class="cx">
</span><del>- InsertionNotificationRequest insertedInto(ContainerNode&) override;
- void removedFrom(ContainerNode&) override;
-
</del><span class="cx"> bool rendererIsNeeded(const RenderStyle&) override { return false; }
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2016-03-12 Myles C. Maxfield <mmaxfield@apple.com>
+
+ Delete dead SVG Font code
+ https://bugs.webkit.org/show_bug.cgi?id=154718
+
+ Reviewed by Antti Koivisto.
+
+ * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2016-03-11 Yusuke Suzuki <utatane.tea@gmail.com>
</span><span class="cx">
</span><span class="cx"> [ES6] Implement Reflect.set without receiver support
</span></span></pre></div>
<a id="trunkSourceWebKitmacConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -151,7 +151,6 @@
</span><span class="cx"> ENABLE_STREAMS_API = ENABLE_STREAMS_API;
</span><span class="cx"> ENABLE_SUBTLE_CRYPTO = ENABLE_SUBTLE_CRYPTO;
</span><span class="cx"> ENABLE_SVG_FONTS = ENABLE_SVG_FONTS;
</span><del>-ENABLE_SVG_OTF_CONVERTER = ENABLE_SVG_OTF_CONVERTER;
</del><span class="cx">
</span><span class="cx"> ENABLE_TELEPHONE_NUMBER_DETECTION = ENABLE_TELEPHONE_NUMBER_DETECTION;
</span><span class="cx">
</span><span class="lines">@@ -197,4 +196,4 @@
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP;
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ;
</span><span class="cx">
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(E
NABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE
_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK)
$(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(EN
ABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_
EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(EN
ABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</ins></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebKit2/ChangeLog        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2016-03-12 Myles C. Maxfield <mmaxfield@apple.com>
+
+ Delete dead SVG Font code
+ https://bugs.webkit.org/show_bug.cgi?id=154718
+
+ Reviewed by Antti Koivisto.
+
+ * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2016-03-12 Beth Dakin <bdakin@apple.com>
</span><span class="cx">
</span><span class="cx"> Make preview inline navigation work API
</span></span></pre></div>
<a id="trunkSourceWebKit2ConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -151,7 +151,6 @@
</span><span class="cx"> ENABLE_STREAMS_API = ENABLE_STREAMS_API;
</span><span class="cx"> ENABLE_SUBTLE_CRYPTO = ENABLE_SUBTLE_CRYPTO;
</span><span class="cx"> ENABLE_SVG_FONTS = ENABLE_SVG_FONTS;
</span><del>-ENABLE_SVG_OTF_CONVERTER = ENABLE_SVG_OTF_CONVERTER;
</del><span class="cx">
</span><span class="cx"> ENABLE_TELEPHONE_NUMBER_DETECTION = ENABLE_TELEPHONE_NUMBER_DETECTION;
</span><span class="cx">
</span><span class="lines">@@ -197,4 +196,4 @@
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP;
</span><span class="cx"> ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ;
</span><span class="cx">
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(E
NABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE
_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK)
$(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(EN
ABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_
EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(EN
ABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP);
</ins></span></pre></div>
<a id="trunkSourcecmakeOptionsEflcmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/OptionsEfl.cmake (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/OptionsEfl.cmake        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/cmake/OptionsEfl.cmake        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -127,7 +127,6 @@
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS PUBLIC ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPELLCHECK PUBLIC ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PUBLIC OFF)
</span><del>-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SVG_OTF_CONVERTER PUBLIC ON)
</del><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEMPLATE_ELEMENT PUBLIC ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PUBLIC ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_SLIDER PUBLIC ON)
</span></span></pre></div>
<a id="trunkSourcecmakeOptionsWincmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/OptionsWin.cmake (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/OptionsWin.cmake        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/cmake/OptionsWin.cmake        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -62,7 +62,6 @@
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHADOW_DOM PUBLIC OFF)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_STREAMS_API PUBLIC ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SVG_FONTS PUBLIC ON)
</span><del>-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SVG_OTF_CONVERTER PUBLIC ON)
</del><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEMPLATE_ELEMENT PUBLIC ON)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEXT_AUTOSIZING PUBLIC OFF)
</span><span class="cx"> WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO PUBLIC ON)
</span></span></pre></div>
<a id="trunkSourcecmakeWebKitFeaturescmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/WebKitFeatures.cmake (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/WebKitFeatures.cmake        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/cmake/WebKitFeatures.cmake        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -181,7 +181,6 @@
</span><span class="cx"> WEBKIT_OPTION_DEFINE(ENABLE_STREAMS_API "Toggle Streams API support" PRIVATE ON)
</span><span class="cx"> WEBKIT_OPTION_DEFINE(ENABLE_SUBTLE_CRYPTO "Toggle subtle crypto support" PRIVATE OFF)
</span><span class="cx"> WEBKIT_OPTION_DEFINE(ENABLE_SVG_FONTS "Toggle SVG fonts support (imples SVG support)" PRIVATE ON)
</span><del>- WEBKIT_OPTION_DEFINE(ENABLE_SVG_OTF_CONVERTER "Toggle whether to use the SVG to OTF font converter" PRIVATE ON)
</del><span class="cx"> WEBKIT_OPTION_DEFINE(ENABLE_TELEPHONE_NUMBER_DETECTION "Toggle telephone number detection support" PRIVATE OFF)
</span><span class="cx"> WEBKIT_OPTION_DEFINE(ENABLE_TEMPLATE_ELEMENT "Toggle Template support" PRIVATE ON)
</span><span class="cx"> WEBKIT_OPTION_DEFINE(ENABLE_TEXT_AUTOSIZING "Toggle Text auto sizing support" PRIVATE OFF)
</span></span></pre></div>
<a id="trunkSourcecmaketoolsvspropsFeatureDefinesprops"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/tools/vsprops/FeatureDefines.props (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/tools/vsprops/FeatureDefines.props        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/cmake/tools/vsprops/FeatureDefines.props        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -77,7 +77,6 @@
</span><span class="cx"> <ENABLE_SUBPIXEL_LAYOUT>ENABLE_SUBPIXEL_LAYOUT</ENABLE_SUBPIXEL_LAYOUT>
</span><span class="cx"> <ENABLE_SVG_DOM_OBJC_BINDINGS />
</span><span class="cx"> <ENABLE_SVG_FONTS>ENABLE_SVG_FONTS</ENABLE_SVG_FONTS>
</span><del>- <ENABLE_SVG_OTF_CONVERTER />
</del><span class="cx"> <ENABLE_TEMPLATE_ELEMENT>ENABLE_TEMPLATE_ELEMENT</ENABLE_TEMPLATE_ELEMENT>
</span><span class="cx"> <ENABLE_TEXT_AUTOSIZING />
</span><span class="cx"> <ENABLE_VIDEO>ENABLE_VIDEO</ENABLE_VIDEO>
</span><span class="lines">@@ -97,7 +96,7 @@
</span><span class="cx"> </PropertyGroup>
</span><span class="cx"> <ItemDefinitionGroup>
</span><span class="cx"> <ClCompile>
</span><del>- <PreprocessorDefinitions>$(ENABLE_CSP_NEXT);$(ENABLE_PROMISES);$(ENABLE_REQUEST_ANIMATION_FRAME);$(ENABLE_3D_TRANSFORMS);$(ENABLE_ACCELERATED_2D_CANVAS);$(ENABLE_ACCELERATED_OVERFLOW_SCROLLING);$(ENABLE_ATTACHMENT_ELEMENT);$(ENABLE_CANVAS_PATH);$(ENABLE_CANVAS_PROXY);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CSS3_CONDITIONAL_RULES);$(ENABLE_CSS_IMAGE_SET);$(ENABLE_CSS3_TEXT);$(ENABLE_CSS_BOX_DECORATION_BREAK);$(ENABLE_CSS_GRID_LAYOUT);$(ENABLE_CSS_SHADERS);$(ENABLE_CSS_COMPOSITING);$(ENABLE_CSS_REGIONS);$(ENABLE_CSS_SELECTORS_LEVEL4);$(ENABLE_CSS_SHAPES);$(ENABLE_CSS_SHAPE_INSIDE);$(ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED);$(ENABLE_CURSOR_VISIBILITY);$(ENABLE_CUSTOM_SCHEME_HANDLER);$(ENABLE_DATAGRID);$(ENABLE_DATALIST_ELEMENT);$(ENABLE_DATA_TRANSFER_ITEMS);$(ENABLE_DETAILS_ELEMENT);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM4_EVENTS_CONSTRUCTOR);$(ENABLE_ENCRYPTED_MEDIA_V2);$(ENABLE_ES6_GENERATORS);$(ENABLE_ES6_MODU
LES);$(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX);$(ENABLE_FETCH_API);$(ENABLE_FILE_SYSTEM);$(ENABLE_FULLSCREEN_API);$(ENABLE_GAMEPAD);$(ENABLE_GEOLOCATION);$(ENABLE_HIGH_DPI_CANVAS);$(ENABLE_ICONDATABASE);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_TYPE_COLOR);$(ENABLE_INPUT_SPEECH);$(ENABLE_INPUT_TYPE_DATE);$(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE);$(ENABLE_INPUT_TYPE_DATETIMELOCAL);$(ENABLE_INPUT_TYPE_MONTH);$(ENABLE_INPUT_TYPE_TIME);$(ENABLE_INPUT_TYPE_WEEK);$(ENABLE_INTL);$(ENABLE_LEGACY_CSS_VENDOR_PREFIXES);$(ENABLE_LEGACY_NOTIFICATIONS);$(ENABLE_LINK_PREFETCH);$(ENABLE_LINK_PRERENDER);$(ENABLE_MATHML);$(ENABLE_METER_ELEMENT);$(ENABLE_MICRODATA);$(ENABLE_MOUSE_CURSOR_SCALE);$(ENABLE_NOTIFICATIONS);$(ENABLE_PROXIMITY_EVENTS);$(ENABLE_QUOTA);$(ENABLE_NAVIGATOR_CONTENT_UTILS);$(ENABLE_SCRIPTED_SPEECH);$(ENABLE_SHADOW_DOM);$(ENABLE_SHARED_WORKERS);$(ENABLE_MEDIA_CONTROLS_SCRIPT);$(ENABLE_MEDIA_SOURCE);$(ENABLE_MEDIA_STATISTICS);$(ENABLE_SQL_DATABASE);$(ENABLE_STREAMS_API);$(ENABLE_S
TYLE_SCOPED);$(ENABLE_SUBPIXEL_LAYOUT);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_OTF_CONVERTER);$(ENABLE_TEMPLATE_ELEMENT);$(ENABLE_TEXT_AUTOSIZING);$(ENABLE_VIDEO);$(ENABLE_VIDEO_TRACK);$(ENABLE_VIEW_MODE_CSS_MEDIA);$(ENABLE_WEB_ANIMATIONS);$(ENABLE_WEB_AUDIO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WEBGL);$(ENABLE_WEBVTT_REGIONS);$(ENABLE_XHR_TIMEOUT);$(ENABLE_XSLT);%(PreprocessorDefinitions)</PreprocessorDefinitions>
</del><ins>+ <PreprocessorDefinitions>$(ENABLE_CSP_NEXT);$(ENABLE_PROMISES);$(ENABLE_REQUEST_ANIMATION_FRAME);$(ENABLE_3D_TRANSFORMS);$(ENABLE_ACCELERATED_2D_CANVAS);$(ENABLE_ACCELERATED_OVERFLOW_SCROLLING);$(ENABLE_ATTACHMENT_ELEMENT);$(ENABLE_CANVAS_PATH);$(ENABLE_CANVAS_PROXY);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CSS3_CONDITIONAL_RULES);$(ENABLE_CSS_IMAGE_SET);$(ENABLE_CSS3_TEXT);$(ENABLE_CSS_BOX_DECORATION_BREAK);$(ENABLE_CSS_GRID_LAYOUT);$(ENABLE_CSS_SHADERS);$(ENABLE_CSS_COMPOSITING);$(ENABLE_CSS_REGIONS);$(ENABLE_CSS_SELECTORS_LEVEL4);$(ENABLE_CSS_SHAPES);$(ENABLE_CSS_SHAPE_INSIDE);$(ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED);$(ENABLE_CURSOR_VISIBILITY);$(ENABLE_CUSTOM_SCHEME_HANDLER);$(ENABLE_DATAGRID);$(ENABLE_DATALIST_ELEMENT);$(ENABLE_DATA_TRANSFER_ITEMS);$(ENABLE_DETAILS_ELEMENT);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM4_EVENTS_CONSTRUCTOR);$(ENABLE_ENCRYPTED_MEDIA_V2);$(ENABLE_ES6_GENERATORS);$(ENABLE_ES6_MODUL
ES);$(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX);$(ENABLE_FETCH_API);$(ENABLE_FILE_SYSTEM);$(ENABLE_FULLSCREEN_API);$(ENABLE_GAMEPAD);$(ENABLE_GEOLOCATION);$(ENABLE_HIGH_DPI_CANVAS);$(ENABLE_ICONDATABASE);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_TYPE_COLOR);$(ENABLE_INPUT_SPEECH);$(ENABLE_INPUT_TYPE_DATE);$(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE);$(ENABLE_INPUT_TYPE_DATETIMELOCAL);$(ENABLE_INPUT_TYPE_MONTH);$(ENABLE_INPUT_TYPE_TIME);$(ENABLE_INPUT_TYPE_WEEK);$(ENABLE_INTL);$(ENABLE_LEGACY_CSS_VENDOR_PREFIXES);$(ENABLE_LEGACY_NOTIFICATIONS);$(ENABLE_LINK_PREFETCH);$(ENABLE_LINK_PRERENDER);$(ENABLE_MATHML);$(ENABLE_METER_ELEMENT);$(ENABLE_MICRODATA);$(ENABLE_MOUSE_CURSOR_SCALE);$(ENABLE_NOTIFICATIONS);$(ENABLE_PROXIMITY_EVENTS);$(ENABLE_QUOTA);$(ENABLE_NAVIGATOR_CONTENT_UTILS);$(ENABLE_SCRIPTED_SPEECH);$(ENABLE_SHADOW_DOM);$(ENABLE_SHARED_WORKERS);$(ENABLE_MEDIA_CONTROLS_SCRIPT);$(ENABLE_MEDIA_SOURCE);$(ENABLE_MEDIA_STATISTICS);$(ENABLE_SQL_DATABASE);$(ENABLE_STREAMS_API);$(ENABLE_ST
YLE_SCOPED);$(ENABLE_SUBPIXEL_LAYOUT);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_TEMPLATE_ELEMENT);$(ENABLE_TEXT_AUTOSIZING);$(ENABLE_VIDEO);$(ENABLE_VIDEO_TRACK);$(ENABLE_VIEW_MODE_CSS_MEDIA);$(ENABLE_WEB_ANIMATIONS);$(ENABLE_WEB_AUDIO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WEBGL);$(ENABLE_WEBVTT_REGIONS);$(ENABLE_XHR_TIMEOUT);$(ENABLE_XSLT);%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ins><span class="cx"> </ClCompile>
</span><span class="cx"> </ItemDefinitionGroup>
</span><span class="cx"> <ItemGroup>
</span><span class="lines">@@ -405,10 +404,6 @@
</span><span class="cx"> <Value>$(ENABLE_SVG_FONTS)</Value>
</span><span class="cx"> <EnvironmentVariable>true</EnvironmentVariable>
</span><span class="cx"> </BuildMacro>
</span><del>- <BuildMacro Include="ENABLE_SVG_OTF_CONVERTER">
- <Value>$(ENABLE_SVG_OTF_CONVERTER)</Value>
- <EnvironmentVariable>true</EnvironmentVariable>
- </BuildMacro>
</del><span class="cx"> <BuildMacro Include="ENABLE_TEMPLATE_ELEMENT">
</span><span class="cx"> <Value>$(ENABLE_TEMPLATE_ELEMENT)</Value>
</span><span class="cx"> <EnvironmentVariable>true</EnvironmentVariable>
</span></span></pre></div>
<a id="trunkSourcecmaketoolsvspropsFeatureDefinesCairoprops"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/tools/vsprops/FeatureDefinesCairo.props (198073 => 198074)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/tools/vsprops/FeatureDefinesCairo.props        2016-03-13 00:22:55 UTC (rev 198073)
+++ trunk/Source/cmake/tools/vsprops/FeatureDefinesCairo.props        2016-03-13 00:36:59 UTC (rev 198074)
</span><span class="lines">@@ -76,7 +76,6 @@
</span><span class="cx"> <ENABLE_SUBPIXEL_LAYOUT>ENABLE_SUBPIXEL_LAYOUT</ENABLE_SUBPIXEL_LAYOUT>
</span><span class="cx"> <ENABLE_SVG_DOM_OBJC_BINDINGS />
</span><span class="cx"> <ENABLE_SVG_FONTS>ENABLE_SVG_FONTS</ENABLE_SVG_FONTS>
</span><del>- <ENABLE_SVG_OTF_CONVERTER />
</del><span class="cx"> <ENABLE_TEMPLATE_ELEMENT>ENABLE_TEMPLATE_ELEMENT</ENABLE_TEMPLATE_ELEMENT>
</span><span class="cx"> <ENABLE_TEXT_AUTOSIZING />
</span><span class="cx"> <ENABLE_VIDEO>ENABLE_VIDEO</ENABLE_VIDEO>
</span><span class="lines">@@ -96,7 +95,7 @@
</span><span class="cx"> </PropertyGroup>
</span><span class="cx"> <ItemDefinitionGroup>
</span><span class="cx"> <ClCompile>
</span><del>- <PreprocessorDefinitions>$(ENABLE_CSP_NEXT);$(ENABLE_PROMISES);$(ENABLE_REQUEST_ANIMATION_FRAME);$(ENABLE_3D_TRANSFORMS);$(ENABLE_ACCELERATED_2D_CANVAS);$(ENABLE_ACCELERATED_OVERFLOW_SCROLLING);$(ENABLE_ATTACHMENT_ELEMENT);$(ENABLE_CANVAS_PATH);$(ENABLE_CANVAS_PROXY);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CSS3_CONDITIONAL_RULES);$(ENABLE_CSS_IMAGE_SET);$(ENABLE_CSS3_TEXT);$(ENABLE_CSS_BOX_DECORATION_BREAK);$(ENABLE_CSS_GRID_LAYOUT);$(ENABLE_CSS_SHADERS);$(ENABLE_CSS_COMPOSITING);$(ENABLE_CSS_REGIONS);$(ENABLE_CSS_SELECTORS_LEVEL4);$(ENABLE_CSS_SHAPES);$(ENABLE_CSS_SHAPE_INSIDE);$(ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED);$(ENABLE_CURSOR_VISIBILITY);$(ENABLE_CUSTOM_SCHEME_HANDLER);$(ENABLE_DATAGRID);$(ENABLE_DATALIST_ELEMENT);$(ENABLE_DATA_TRANSFER_ITEMS);$(ENABLE_DETAILS_ELEMENT);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM4_EVENTS_CONSTRUCTOR);$(ENABLE_ENCRYPTED_MEDIA_V2);$(ENABLE_ES6_GENERATORS);$(ENABLE_ES6_MODU
LES);$(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX);$(ENABLE_FETCH_API);$(ENABLE_FILE_SYSTEM);$(ENABLE_FULLSCREEN_API);$(ENABLE_GAMEPAD);$(ENABLE_GEOLOCATION);$(ENABLE_HIGH_DPI_CANVAS);$(ENABLE_ICONDATABASE);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_TYPE_COLOR);$(ENABLE_INPUT_SPEECH);$(ENABLE_INPUT_TYPE_DATE);$(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE);$(ENABLE_INPUT_TYPE_DATETIMELOCAL);$(ENABLE_INPUT_TYPE_MONTH);$(ENABLE_INPUT_TYPE_TIME);$(ENABLE_INPUT_TYPE_WEEK);$(ENABLE_INTL);$(ENABLE_LEGACY_CSS_VENDOR_PREFIXES);$(ENABLE_LEGACY_NOTIFICATIONS);$(ENABLE_LINK_PREFETCH);$(ENABLE_LINK_PRERENDER);$(ENABLE_MATHML);$(ENABLE_METER_ELEMENT);$(ENABLE_MICRODATA);$(ENABLE_MOUSE_CURSOR_SCALE);$(ENABLE_NOTIFICATIONS);$(ENABLE_PROXIMITY_EVENTS);$(ENABLE_QUOTA);$(ENABLE_NAVIGATOR_CONTENT_UTILS);$(ENABLE_SCRIPTED_SPEECH);$(ENABLE_SHADOW_DOM);$(ENABLE_SHARED_WORKERS);$(ENABLE_MEDIA_CONTROLS_SCRIPT);$(ENABLE_MEDIA_SOURCE);$(ENABLE_MEDIA_STATISTICS);$(ENABLE_SQL_DATABASE);$(ENABLE_STYLE_SCOPED);$(ENABLE_
SUBPIXEL_LAYOUT);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_OTF_CONVERTER);$(ENABLE_TEMPLATE_ELEMENT);$(ENABLE_TEXT_AUTOSIZING);$(ENABLE_VIDEO);$(ENABLE_VIDEO_TRACK);$(ENABLE_VIEW_MODE_CSS_MEDIA);$(ENABLE_WEB_ANIMATIONS);$(ENABLE_WEB_AUDIO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WEBGL);$(ENABLE_WEBVTT_REGIONS);$(ENABLE_XHR_TIMEOUT);$(ENABLE_XSLT);%(PreprocessorDefinitions)</PreprocessorDefinitions>
</del><ins>+ <PreprocessorDefinitions>$(ENABLE_CSP_NEXT);$(ENABLE_PROMISES);$(ENABLE_REQUEST_ANIMATION_FRAME);$(ENABLE_3D_TRANSFORMS);$(ENABLE_ACCELERATED_2D_CANVAS);$(ENABLE_ACCELERATED_OVERFLOW_SCROLLING);$(ENABLE_ATTACHMENT_ELEMENT);$(ENABLE_CANVAS_PATH);$(ENABLE_CANVAS_PROXY);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CSS3_CONDITIONAL_RULES);$(ENABLE_CSS_IMAGE_SET);$(ENABLE_CSS3_TEXT);$(ENABLE_CSS_BOX_DECORATION_BREAK);$(ENABLE_CSS_GRID_LAYOUT);$(ENABLE_CSS_SHADERS);$(ENABLE_CSS_COMPOSITING);$(ENABLE_CSS_REGIONS);$(ENABLE_CSS_SELECTORS_LEVEL4);$(ENABLE_CSS_SHAPES);$(ENABLE_CSS_SHAPE_INSIDE);$(ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED);$(ENABLE_CURSOR_VISIBILITY);$(ENABLE_CUSTOM_SCHEME_HANDLER);$(ENABLE_DATAGRID);$(ENABLE_DATALIST_ELEMENT);$(ENABLE_DATA_TRANSFER_ITEMS);$(ENABLE_DETAILS_ELEMENT);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DIRECTORY_UPLOAD);$(ENABLE_DOM4_EVENTS_CONSTRUCTOR);$(ENABLE_ENCRYPTED_MEDIA_V2);$(ENABLE_ES6_GENERATORS);$(ENABLE_ES6_MODUL
ES);$(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX);$(ENABLE_FETCH_API);$(ENABLE_FILE_SYSTEM);$(ENABLE_FULLSCREEN_API);$(ENABLE_GAMEPAD);$(ENABLE_GEOLOCATION);$(ENABLE_HIGH_DPI_CANVAS);$(ENABLE_ICONDATABASE);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_TYPE_COLOR);$(ENABLE_INPUT_SPEECH);$(ENABLE_INPUT_TYPE_DATE);$(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE);$(ENABLE_INPUT_TYPE_DATETIMELOCAL);$(ENABLE_INPUT_TYPE_MONTH);$(ENABLE_INPUT_TYPE_TIME);$(ENABLE_INPUT_TYPE_WEEK);$(ENABLE_INTL);$(ENABLE_LEGACY_CSS_VENDOR_PREFIXES);$(ENABLE_LEGACY_NOTIFICATIONS);$(ENABLE_LINK_PREFETCH);$(ENABLE_LINK_PRERENDER);$(ENABLE_MATHML);$(ENABLE_METER_ELEMENT);$(ENABLE_MICRODATA);$(ENABLE_MOUSE_CURSOR_SCALE);$(ENABLE_NOTIFICATIONS);$(ENABLE_PROXIMITY_EVENTS);$(ENABLE_QUOTA);$(ENABLE_NAVIGATOR_CONTENT_UTILS);$(ENABLE_SCRIPTED_SPEECH);$(ENABLE_SHADOW_DOM);$(ENABLE_SHARED_WORKERS);$(ENABLE_MEDIA_CONTROLS_SCRIPT);$(ENABLE_MEDIA_SOURCE);$(ENABLE_MEDIA_STATISTICS);$(ENABLE_SQL_DATABASE);$(ENABLE_STYLE_SCOPED);$(ENABLE_S
UBPIXEL_LAYOUT);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_TEMPLATE_ELEMENT);$(ENABLE_TEXT_AUTOSIZING);$(ENABLE_VIDEO);$(ENABLE_VIDEO_TRACK);$(ENABLE_VIEW_MODE_CSS_MEDIA);$(ENABLE_WEB_ANIMATIONS);$(ENABLE_WEB_AUDIO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WEBGL);$(ENABLE_WEBVTT_REGIONS);$(ENABLE_XHR_TIMEOUT);$(ENABLE_XSLT);%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ins><span class="cx"> </ClCompile>
</span><span class="cx"> </ItemDefinitionGroup>
</span><span class="cx"> <ItemGroup>
</span><span class="lines">@@ -400,10 +399,6 @@
</span><span class="cx"> <Value>$(ENABLE_SVG_FONTS)</Value>
</span><span class="cx"> <EnvironmentVariable>true</EnvironmentVariable>
</span><span class="cx"> </BuildMacro>
</span><del>- <BuildMacro Include="ENABLE_SVG_OTF_CONVERTER">
- <Value>$(ENABLE_SVG_OTF_CONVERTER)</Value>
- <EnvironmentVariable>true</EnvironmentVariable>
- </BuildMacro>
</del><span class="cx"> <BuildMacro Include="ENABLE_TEMPLATE_ELEMENT">
</span><span class="cx"> <Value>$(ENABLE_TEMPLATE_ELEMENT)</Value>
</span><span class="cx"> <EnvironmentVariable>true</EnvironmentVariable>
</span></span></pre>
</div>
</div>
</body>
</html>