<!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>[210758] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/210758">210758</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2017-01-13 19:35:54 -0800 (Fri, 13 Jan 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove PassRefPtr from more of &quot;platform&quot;
https://bugs.webkit.org/show_bug.cgi?id=166809

Reviewed by Sam Weinig.

Source/JavaScriptCore:

* inspector/JSInjectedScriptHost.h:
(Inspector::JSInjectedScriptHost::impl): Simplified code since we don't need a
const_cast here any more.
* runtime/PrivateName.h:
(JSC::PrivateName::uid): Ditto.

Source/WebCore:

* CMakeLists.txt: Removed DeviceMotionClientMock.cpp.

* Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h:
Added now-needed include.

* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
Pass a reference instead of a pointer.

* Modules/speech/SpeechSynthesisUtterance.h: Tweaks, msade a few things
more private and final.

* bindings/js/JSDOMConvert.h:
(WebCore::Detail::getPtrOrRef): Removed no-longer-needed const_cast.
* bindings/js/JSDOMWrapper.h:
(WebCore::JSDOMWrapper::wrapped): Ditto.
* bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::~ScriptModuleLoader): Ditto.

* css/BasicShapeFunctions.cpp:
(WebCore::convertToLengthSize): Updated for LengthSize struct.
(WebCore::convertToCenterCoordinate): Ditto.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createPositionListForLayer): Take a reference.
(WebCore::getBorderRadiusCornerValues): Updated for LengthSize struct.
(WebCore::getBorderRadiusCornerValue): Ditto.
(WebCore::getBorderRadiusShorthandValue): Ditto.
(WebCore::fillSizeToCSSValue): Ditto.
(WebCore::ComputedStyleExtractor::propertyValue): Updated many properties
since the layer properties now return references rather than pointers.

* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::CachedGeneratedImage::image): Removed
no-longer-needed const_cast.
* css/CSSKeyframesRule.cpp:
(WebCore::CSSKeyframesRule::item): Ditto.

* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::init): Updated for LengthSize struct.

* css/CSSStyleRule.h: Removed no-longer-needed const_cast.

* css/CSSToStyleMap.cpp:
(WebCore::convertToLengthSize): Updated for LengthSize struct.

* css/FontFace.cpp:
(WebCore::FontFace::family): Removed no-longer-needed const_cast.
(WebCore::FontFace::style): Ditto.
(WebCore::FontFace::weight): Ditto.
(WebCore::FontFace::unicodeRange): Ditto.
(WebCore::FontFace::variant): Ditto.
(WebCore::FontFace::featureSettings): Ditto.

* css/LengthFunctions.cpp:
(WebCore::sizeForLengthSize): Added.
(WebCore::floatSizeForLengthSize): Updated for LengthSize struct.
* css/LengthFunctions.h: Added sizeForLengthSize.

* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::paintOrder): Cut down on creation of unused objects.
We now create only what we actually use.

* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertRadius): Updated for
LengthSize struct.
(WebCore::StyleBuilderConverter::convertShapeValue): Pass references
when creating ShapeValue.

* css/StyleBuilderCustom.h:
(WebCore::forwardInheritedValue): Added. This set of overloaded
functions allows us to use move semantics for some types, but copy
them when inheriting. Doing it with special cases here allows us to
resolve this without adding overloads someone might be tempted to
call outside the style builder, and without adding special cases to
the JSON file for each property.
(WebCore::StyleBuilderCustom::applyValueWebkitDashboardRegion):
Add WTFMove as needed to work with rvalue references.
(WebCore::StyleBuilderCustom::applyValueSize): Ditto.
(WebCore::StyleBuilderCustom::applyInheritTextIndent): Ditto.
(WebCore::StyleBuilderCustom::applyValueTextIndent): Ditto.
(WebCore::StyleBuilderCustom::applyInheritLineHeight): Ditto.
(WebCore::StyleBuilderCustom::applyValueLineHeight): Ditto.
(WebCore::StyleBuilderCustom::applyInheritClip): Ditto.
(WebCore::StyleBuilderCustom::applyValueClip): Ditto.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::cacheBorderAndBackground): Use
references instead of pointers.
(WebCore::StyleResolver::applyMatchedProperties): Ditto.
(WebCore::StyleResolver::applyProperty): Update for changes to the
custom property data in RenderStyle.

* css/makeprop.pl: Use auto quite a bit more in the generated code.
Updated special cases for layers to expect references. Added a WTFMove
so we can get move semantics for converted values that come out in
an optional. Added call to forwardInheritedValue (see above).

* dom/Document.cpp:
(WebCore::Document::pageSizeAndMarginsInPixels): Use auto and update
since LengthSize is a struct.

* dom/EventPath.cpp:
(WebCore::EventPath::computePathUnclosedToTarget): Use auto.

* dom/LiveNodeList.h:
(WebCore::LiveNodeList::ownerNode): Removed no-longer-needed const_cast.

* dom/MessageEvent.cpp:
(WebCore::MessageEvent::source): Removed unneeded static_cast.

* dom/Node.cpp:
(WebCore::nodeSetPreTransformedFromNodeOrStringVector): Tweaked formatting.

* dom/Range.h:
(WebCore::Range::ownerDocument): Removed no-longer-needed const_cast.
* dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::callback): Ditto.
* dom/ScriptRunner.cpp:
(WebCore::ScriptRunner::~ScriptRunner): Ditto.
* html/HTMLCollection.h:
(WebCore::HTMLCollection::ownerNode): Ditto.
* html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::node): Ditto.

* inspector/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::setJavaScriptPaused): Cut down on the number
of different functions here. Also use reference rather than pointer.
* inspector/PageScriptDebugServer.h: Updated for above change.

* loader/HistoryController.cpp:
(WebCore::HistoryController::recursiveSetProvisionalItem): Removed
no-longer-needed const_cast.
(WebCore::HistoryController::recursiveGoToItem): Ditto.

* page/Frame.cpp:
(WebCore::Frame::ownerRenderer): Use auto. Let the is&lt;&gt; function do null
checking for us.
(WebCore::Frame::frameForWidget): Take a reference rather than a pointer.
* page/Frame.h: Updated for the above.

* page/FrameView.cpp:
(WebCore::FrameView::invalidateRect): Use Chrome directly instead of using
HostWindow. HostWindow is an abstraction for the platform layer, and there
is no good reason to use it here.
(WebCore::FrameView::scheduleAnimation): Ditto.
(WebCore::FrameView::graphicsLayerForPlatformWidget): Updated to use reference
when calling RenderWidget::find.
(WebCore::FrameView::scrollContentsFastPath): Use Chrome instead of HostWindow.
(WebCore::FrameView::hostWindow): Use early return.
(WebCore::FrameView::updateScrollCorner): Removed unneeded call through to base
class function, which was empty.
(WebCore::FrameView::hasCustomScrollbars): Updated since the children set now
contains Ref rather than RefPtr.
(WebCore::FrameView::parentFrameView): Use early return.
(WebCore::FrameView::updateWidgetPositions): Use reference instead of pointer.
* page/FrameView.h: Use final instead of override. Remove now-unneeded const_cast.

* page/Page.cpp:
(WebCore::Page::pluginViews): Updated since the children set now contains
Ref rather than RefPtr.

* page/PrintContext.cpp:
(WebCore::PrintContext::pageProperty): Updated for LengthSize struct.

* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::fireAnimationEventsIfNeeded): Updated for changes to
the types in animation function members.
(WebCore::AnimationBase::timeToNextService): Ditto.
(WebCore::AnimationBase::progress): Ditto.
(WebCore::AnimationBase::getElapsedTime): Ditto.

* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Updated for LengthSize struct.
(WebCore::LengthPropertyWrapper::LengthPropertyWrapper): Updated since we now
use rvalue references and move semantics when setting length properties.

* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame): Tweaked to
use auto, pass references.

* platform/KeyedCoding.h: Return RefPtr instead of PassRefPtr.

* platform/LengthBox.h: Added a constructor that moves the lengths in, rather
than always copying them.

* platform/LengthSize.cpp:
(WebCore::operator&lt;&lt;): Updated since LengthSize is a struct.
* platform/LengthSize.h: Turned LengthSize into a struct and removed all the
getter and setter code.

* platform/PlatformSpeechSynthesis.h: Removed. Unused.

* platform/PlatformSpeechSynthesisUtterance.cpp:
(WebCore::PlatformSpeechSynthesisUtterance::create): Return Ref rather than PassRefPtr.
(WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance): Take
a reference. Initialize data members in class definition.
* platform/PlatformSpeechSynthesisUtterance.h: Updated for the above.

* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore::PlatformSpeechSynthesisVoice::create): Return Ref rather than PassRefPtr.
* platform/PlatformSpeechSynthesisVoice.h: Updated for the above.

* platform/ScrollView.cpp:
(WebCore::ScrollView::addChild): Take a reference rather than a PassRefPtr.
(WebCore::ScrollView::setHasScrollbarInternal): Updated for change to addChild
(WebCore::ScrollView::scrollContentsFastPath): Deleted. This was never called,
so made it pure virtual.
(WebCore::ScrollView::frameRectsChanged): Use a modern for loop.
(WebCore::ScrollView::clipRectChanged): Ditto.
(WebCore::ScrollView::updateScrollCorner): Deleted. This was empty so made it pure
virtual and changed FrameView to not call it.
(WebCore::ScrollView::setParentVisible): Use a modern for loop.
(WebCore::ScrollView::show): Ditto.
(WebCore::ScrollView::hide): Ditto.
* platform/ScrollView.h: Changed the children set to contain Ref instead of RefPtr.
Changed functions that were never overridden to either be final or non-virtual,
Changed functions that were never called to be pure virtual.

* platform/Theme.h:
(WebCore::Theme::minimumControlSize): Updated for LengthSize struct.

* platform/animation/Animation.h: Changed timingFunction and trigger to return
raw pointers instead of PassRefPtr. Changed setTimingFunction and setTrigger to
take RefPtr&amp;&amp; and Ref&amp;&amp; instead of PassRefPtr. CHanged initialTimingfunction and
initialTrigger to return Ref.

* platform/animation/AnimationList.cpp: Removed redundant check in FILL_UNSET_PROPERTY.
(WebCore::AnimationList::AnimationList): Use modern for loop, reserveInitialCapacity,
and uncheckedAppend.
* platform/animation/AnimationList.h: Changed append to take Ref&amp;&amp; instead of PassRefPtr.
changed vecto to contain Ref instead of RefPtr. Added move constructor and assignment
operator.

* platform/animation/AnimationTrigger.h:
(WebCore::AutoAnimationTrigger::clone): Return Ref instead of PassRefPtr.
(WebCore::AutoAnimationTrigger::create): Ditto.
(WebCore::AutoAnimationTrigger::clone): Ditto.
(WebCore::ScrollAnimationTrigger::create): Ditto.
(WebCore::ScrollAnimationTrigger::clone): Ditto.

* platform/animation/TimingFunction.h:
(WebCore::LinearTimingFunction::create): Return Ref instead of PassRefPtr.
(WebCore::CubicBezierTimingFunction::create): Ditto.
(WebCore::CubicBezierTimingFunction::defaultTimingFunction): Return a reference
instead of a pointer.
(WebCore::CubicBezierTimingFunction::createReversed): Return Ref instead of PassRefPtr.
(WebCore::CubicBezierTimingFunction::clone): Ditto.
(WebCore::StepsTimingFunction::create): Ditto.
(WebCore::StepsTimingFunction::clone): Ditto.
(WebCore::SpringTimingFunction::create): Ditto.
(WebCore::SpringTimingFunction::clone): Ditto.

* platform/audio/AudioBus.h:
(WebCore::AudioBus::channel): Removed no-longer-needed const_cast.

* platform/cf/KeyedEncoderCF.cpp:
(WebCore::KeyedEncoderCF::finishEncoding): Return RefPtr instead of PassRefPtr.
* platform/cf/KeyedEncoderCF.h: Use final instead of override. Made even more
private. Changed return value of finishEncoding to Ref instead of PassRefPtr.

* platform/efl/PlatformSpeechSynthesisProviderEfl.h: Removed include of PassRefPtr.h.

* platform/glib/KeyedEncoderGlib.cpp:
(WebCore::KeyedEncoderGlib::finishEncoding): Return RefPtr instead of PassRefPtr.
* platform/glib/KeyedEncoderGlib.h: Use final instead of override. Made even more
private. Changed return value of finishEncoding to Ref instead of PassRefPtr.

* platform/graphics/filters/FilterOperations.cpp:
(WebCore::outsetSizeForBlur): Simplified, removing unnecessary floating point math.
(WebCore::FilterOperations::FilterOperations): Deleted. Let the compiler generate this.
(WebCore::FilterOperations::operator=): Deleted. Let the compiler generate this.
(WebCore::FilterOperations::operator==): Streamlined.
(WebCore::FilterOperations::operationsMatch): Ditto.
(WebCore::FilterOperations::hasReferenceFilter): Ditto.
(WebCore::FilterOperations::hasOutsets): Ditto.
(WebCore::FilterOperations::outsets): Ditto.
(WebCore::FilterOperations::hasFilterThatAffectsOpacity): Ditto.
(WebCore::FilterOperations::hasFilterThatMovesPixels): Ditto.
* platform/graphics/filters/FilterOperations.h: Updated for above changes.

* platform/graphics/FontCache.h: Removed included of PassRefPtr.h.

* platform/graphics/FontPlatformData.h: Tweaked formatting. Removed nesting
from #if since our formatting makes it hard to see nesting. Let the compiler
generate the default move and copy constructors and assignemnt operators except
in the USE(FREETYPE) case.

* platform/graphics/GraphicsLayer.h:
(WebCore::AnimationValue::AnimationValue): Updated since clone now returns a Ref
rather than a RefPtr.
(WebCore::FloatAnimationValue::FloatAnimationValue): Deleted. Let the compiler
generate the copy constructor without defining it explicitly.
(WebCore::TransformAnimationValue::TransformAnimationValue): Use a modern for
loop, reserveInitialCapacity, and unchecked append. Also tell the compiler to
generate the move constructor, since the special work is only needed for the
copy constructor.
(WebCore::FilterAnimationValue::FilterAnimationValue): Ditto.
(WebCore::KeyframeValueList::KeyframeValueList): Ditto.

* platform/graphics/LegacyCDMSession.h: Removed include of PassRefPtr.h.

* platform/graphics/PathUtilities.cpp:
(WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline): Updated
for LengthSize struct.

* platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
(WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF): Take a reference.
Don't bother setting m_client since we never use it.
(WebCore::CDMSessionAVFoundationCF::generateKeyRequest): Clean up code a bit
by using auto a lot more.
* platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h: Added include
that is now needed since it was removed from the base class. Tidied the class
up a bit, marking it final, making everything private, taking a reference, and
removing an unused data member, m_client.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createSession): Pass a reference.

* platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
added include of WTFString.h, now needed because of removing an unneeded
include from another header file.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::animationCanBeAccelerated): Updated since trigger
is a raw pointer now.
(WebCore::GraphicsLayerCA::timingFunctionForAnimationValue): Updated to
return a reference rather than a pointer.
(WebCore::GraphicsLayerCA::setAnimationEndpoints): Updated for the above change.
(WebCore::GraphicsLayerCA::setAnimationKeyframes): Ditto.
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints): Ditto.
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes): Ditto.
(WebCore::GraphicsLayerCA::setFilterAnimationEndpoints): Ditto.
(WebCore::GraphicsLayerCA::setFilterAnimationKeyframes): Ditto.
* platform/graphics/ca/GraphicsLayerCA.h: Ditto.

* platform/ios/PlatformSpeechSynthesizerIOS.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:]): CHanged argument to be a
RefPtr&amp;&amp; instead of a PassRefPtr.

* platform/mac/ThemeMac.mm:
(WebCore::sizeFromNSControlSize): Updated for LenghtSize struct.
(WebCore::checkboxSize): Ditto.
(WebCore::radioSize): Ditto.
(WebCore::ThemeMac::controlSize): Ditto.
(WebCore::ThemeMac::minimumControlSize): Ditto.

* platform/mac/WidgetMac.mm:
(WebCore::Widget::setFocus): Updated to pass a reference.

* platform/mock/DeviceMotionClientMock.cpp: Removed. Unused.
* platform/mock/DeviceMotionClientMock.h: Removed. Unused.

* platform/win/CursorWin.cpp:
(WebCore::createSharedCursor): Return a Ref instead of a PassRefPtr.
(WebCore::loadSharedCursor): Ditto.
(WebCore::loadCursorByName): Ditto.

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::output): Removed a no-longer-needed const_cast.
(WebCore::FilterEffectRenderer::outputRect): Ditto.

* rendering/ImageQualityController.cpp:
(WebCore::ImageQualityController::chooseInterpolationQuality): Tweaked formatting.

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintFillLayers): Updated to take a reference. Also
used a vector to iterate the linked list in reverse order instead of recursion.
(WebCore::InlineFlowBox::paintFillLayer): Take a reference.
(WebCore::InlineFlowBox::paintMask):
* rendering/InlineFlowBox.h: Updated for the above.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintRootBoxFillLayers): Use auto a bit.
(WebCore::RenderBox::getBackgroundPaintedExtent): Use reference for the layers.
(WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect): Ditto.
(WebCore::RenderBox::backgroundHasOpaqueTopLayer): Ditto.
(WebCore::RenderBox::paintMaskImages): Ditto.
(WebCore::RenderBox::maskClipRect): Ditto.
(WebCore::RenderBox::paintFillLayers): Ditto.
(WebCore::RenderBox::paintFillLayer): Ditto.
(WebCore::layersUseImage): Ditto.
(WebCore::RenderBox::repaintLayerRectsForImage): Ditto.
* rendering/RenderBox.h: Updated for the above.

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Use reference for
the layers.
(WebCore::RenderBoxModelObject::calculateFillTileSize): Ditto.
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Ditto.
(WebCore::RenderBoxModelObject::getGeometryForBackgroundImage): Ditto.
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground): Ditto.
* rendering/RenderBoxModelObject.h: Updated for the above.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::~RenderElement): Use references for the layers.
(WebCore::RenderElement::adjustStyleDifference): Ditto.
(WebCore::RenderElement::updateFillImages): Ditto.
(WebCore::RenderElement::setStyle): Use RenderStyle::replace to replace the
old style with the new style, and get the old one out at the same time.
(WebCore::RenderElement::styleDidChange): Use references for the layers.
(WebCore::mustRepaintFillLayers): Ditto.
(WebCore::RenderElement::repaintAfterLayoutIfNeeded): Ditto.
* rendering/RenderElement.h: Updated for the above.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
Refactor so we don't need so many functions in RenderStyle.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle): Ditto.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::createScrollbar): Pass widget as reference to addChild.
Also did a few other tweaks and used more specific types.

* rendering/RenderLayerBacking.cpp:
(WebCore::canCreateTiledImage): Updated since layers are references.
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage): Ditto.

* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::createScrollbar): Pass widget as reference to addChild.

* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell): Updated to use
references for layers.

* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle): Use WTFMove to pass a LengthBox.
(WebCore::RenderTheme::isControlStyled): Updated since LengthSize is a struct,
more WTFMove, change since layers are ferences.

* rendering/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::adjustSizeConstraints): Update for Length and
LengthSize changes.
(WebCore::RenderThemeEfl::paintThemePart): Use reference instead of pointer.
(WebCore::RenderThemeEfl::applyPartDescriptionFallback): Update for Length and
LengthSize changes.
(WebCore::RenderThemeEfl::applyPartDescription): Ditto.
(WebCore::RenderThemeEfl::adjustCheckboxStyle): Ditto.
(WebCore::RenderThemeEfl::adjustRadioStyle): Ditto.

* rendering/RenderThemeGtk.cpp:
(WebCore::borderRadiiFromStyle): Update for Length and LengthSize changes.

* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::adjustCheckboxStyle): Update for Length and
LengthSize changes.
(WebCore::RenderThemeIOS::isControlStyled): Ditto.
(WebCore::RenderThemeIOS::adjustRadioStyle): Ditto.
(WebCore::RenderThemeIOS::adjustRoundBorderRadius): Ditto.
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations): Ditto.
(WebCore::RenderThemeIOS::adjustSliderTrackStyle): Ditto.
(WebCore::RenderThemeIOS::adjustSliderThumbSize): Ditto.

* rendering/RenderWidget.cpp:
(WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets): Use move
insteead of swap and modern for loop instead of iterators.
(WebCore::moveWidgetToParentSoon): Take a reference instead of a pointer.
(WebCore::RenderWidget::setWidget): Update for above change.
(WebCore::RenderWidget::find): Take a reference instead of a pointer.
* rendering/RenderWidget.h: Updated for above changes.

* rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingValue::reset): Updated since Length is passed as
rvalue reference now.

* rendering/mathml/MathMLStyle.cpp:
(WebCore::MathMLStyle::getMathMLStyle): Updated since mathMLStyle returns
a reference.
(WebCore::MathMLStyle::resolveMathMLStyleTree): Ditto.

* rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::mathMLStyle): Removed no-longer needed const_cast,
changed to return a reference rather than a pointer.
(WebCore::RenderMathMLTable::mathMLStyle): Ditto.

* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::fractionParameters): Updated since mathMLStyle
returns a reference.
(WebCore::RenderMathMLFraction::stackParameters): Ditto.
* rendering/mathml/RenderMathMLOperator.h:
(WebCore::RenderMathMLOperator::isLargeOperatorInDisplayStyle): Ditto.
(WebCore::RenderMathMLOperator::shouldMoveLimits): Ditto.
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::verticalParameters): Ditto.
* rendering/mathml/RenderMathMLToken.cpp:
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Ditto.

* rendering/style/BasicShapes.cpp:
(WebCore::floatSizeForLengthSize): Updated for LengthSize struct.
* rendering/style/BorderData.h:
(WebCore::BorderData::BorderData): Ditto.
(WebCore::BorderData::hasBorderRadius): Ditto.

* rendering/style/ContentData.cpp:
(WebCore::ContentData::clone): Updated member names.
* rendering/style/ContentData.h: Ditto.

* rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImage::computeSlices): Use initializer lists so we get
move optimization without requiring explicit WTFMove.

* rendering/style/DataRef.h:
(WebCore::DataRef::DataRef): Removed no-longer needed const_cast.
(WebCore::DataRef::replace): Added. This function is like Ref::replace, and
can be used to put a new value in and get an old value out without running into
the rule Ref has about not being reused once it becomes null because of being
moved out of. This function is a lot like std::exchange.
(WebCore::DataRef::operator const T&amp;): Added operator so we can use these
as references without any function call in read-only contexts.
(WebCore::DataRef::get): Changed to return a reference rather than pointer.
(WebCore::DataRef::access): Ditto.

* rendering/style/KeyframeList.cpp:
(WebCore::KeyframeValue::timingFunction): Updated since timingFunction
returns a raw pointer.
(WebCore::KeyframeList::~KeyframeList): Removed unneeded call to clear,
which does things that are redundant since we are about to destroy all the
data members.
(WebCore::KeyframeList::operator==): Tweaked codign style a bit.

* rendering/style/NinePieceImage.h: Updated most functions in this class
for the changes to DataRef.

* rendering/style/RenderStyle.cpp: Updated nearly every function in this
class for the changes to DataRef, to eliminate the peculiar naming and use
our standard data member naming, m_memberName in a class, and memberName in a
struct or struct-like class for publicly accessible members, to pass, take,
and return more references and rvalue references, and to use modern for loops.
Other changes listed below function by function.
(WebCore::RenderStyle::defaultStyle): Use NeverDestroyed instead of allocating
on the heap.
(WebCore::RenderStyle::RenderStyle): Added a new constructor that performs
the replace operation, using a combination of DataRef::replace and std::exchange.
(WebCore::RenderStyle::replace): Added. Calls the above constructor.
(WebCore::RenderStyle::setScrollSnapType): Use SET_NESTED_VAR so we get equality
checks on this property, for the normal efficiency benefit.
(WebCore::RenderStyle::setDashboardRegion): Moved this here from the header.
(WebCore::RenderStyle::appendContent): Deleted.
(WebCore::RenderStyle::setContent): Refactored this set of functions to simplify.

* rendering/style/RenderStyle.h: Updated most functions as mentioned above.
Also updated macros to use the do/while(0) technique. Removed the long list of
friend classes with the elaborate comments; turned out none needed friendship
despite the comments. Made more things private. Moved large functions out of the
class definition.
(WebCore::RenderStyle::getTextShadowExtent): Deleted.
(WebCore::RenderStyle::getTextShadowHorizontalExtent): Deleted.
(WebCore::RenderStyle::getTextShadowVerticalExtent): Deleted.
(WebCore::RenderStyle::aspectRatio): Deleted.
(WebCore::RenderStyle::alignContentPosition): Deleted.
(WebCore::RenderStyle::alignContentDistribution): Deleted.
(WebCore::RenderStyle::alignContentOverflowAlignment): Deleted.
(WebCore::RenderStyle::alignItemsPosition): Deleted.
(WebCore::RenderStyle::alignItemsOverflowAlignment): Deleted.
(WebCore::RenderStyle::alignSelfPosition): Deleted.
(WebCore::RenderStyle::alignSelfOverflowAlignment): Deleted.
(WebCore::RenderStyle::justifyContentPosition): Deleted.
(WebCore::RenderStyle::justifyContentDistribution): Deleted.
(WebCore::RenderStyle::justifyContentOverflowAlignment): Deleted.
(WebCore::RenderStyle::justifyItemsPosition): Deleted.
(WebCore::RenderStyle::justifyItemsOverflowAlignment): Deleted.
(WebCore::RenderStyle::justifyItemsPositionType): Deleted.
(WebCore::RenderStyle::justifySelfPosition): Deleted.
(WebCore::RenderStyle::justifySelfOverflowAlignment): Deleted.
(WebCore::RenderStyle::setAlignContentPosition): Deleted.
(WebCore::RenderStyle::setAlignContentOverflow): Deleted.
(WebCore::RenderStyle::setAlignContentDistribution): Deleted.
(WebCore::RenderStyle::setAlignItemsOverflow): Deleted.
(WebCore::RenderStyle::setAlignSelfOverflow): Deleted.
(WebCore::RenderStyle::setJustifyContentOverflow): Deleted.
(WebCore::RenderStyle::setJustifyContentDistribution): Deleted.
(WebCore::RenderStyle::setJustifyItemsPosition): Deleted.
(WebCore::RenderStyle::setJustifyItemsOverflow): Deleted.
(WebCore::RenderStyle::setJustifyItemsPositionType): Deleted.
(WebCore::RenderStyle::setJustifySelfPosition): Deleted.
(WebCore::RenderStyle::setJustifySelfOverflow): Deleted.
(WebCore::RenderStyle::noninheritedFlagsMemoryOffset): Deleted.

* rendering/style/SVGRenderStyle.cpp: Similar changes to RenderStyle.cpp above.
* rendering/style/SVGRenderStyle.h: Ditto.

* rendering/style/ShapeValue.h:
(WebCore::ShapeValue::create): Take a Ref&amp;&amp; instead of a RefPtr.
(WebCore::ShapeValue::ShapeValue): Ditto.

* rendering/style/StyleBackgroundData.cpp: Update data member names.
* rendering/style/StyleBackgroundData.h: Ditto; make them public and remove the
getter functions.

* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::cssValue): Removed no-longer-needed const_cast.

* rendering/style/StyleCustomPropertyData.h: Update data member names.
(WebCore::StyleCustomPropertyData::operator==): Removed unnecessary reference
count churn.
(WebCore::StyleCustomPropertyData::setCustomPropertyValue): Take an rvalue
reference.
(WebCore::StyleCustomPropertyData::getCustomPropertyValue): Deleted.
(WebCore::StyleCustomPropertyData::values): Deleted.
(WebCore::StyleCustomPropertyData::hasCustomProperty): Deleted.
(WebCore::StyleCustomPropertyData::containsVariables): Deleted.
(WebCore::StyleCustomPropertyData::setContainsVariables): Deleted.

* rendering/style/StyleFilterData.cpp: Update data member names.
* rendering/style/StyleFilterData.h: Ditto.
* rendering/style/StyleFlexibleBoxData.cpp: Ditto.
* rendering/style/StyleFlexibleBoxData.h: Ditto.
* rendering/style/StyleGridData.cpp: Ditto.
* rendering/style/StyleGridData.h: Ditto.
* rendering/style/StyleGridItemData.cpp: Ditto.
* rendering/style/StyleGridItemData.h: Ditto.

* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::cssValue): Removed no-longer-needed const_cast.
(WebCore::StyleGeneratedImage::imageSize): Ditto.
(WebCore::StyleGeneratedImage::image): Ditto.

* rendering/style/StyleInheritedData.cpp: Update data member names.
* rendering/style/StyleInheritedData.h: Ditto.
* rendering/style/StyleRareInheritedData.cpp: Ditto.
* rendering/style/StyleRareInheritedData.h: Ditto.
* rendering/style/StyleMultiColData.cpp: Ditto.
* rendering/style/StyleMultiColData.h: Ditto.
* rendering/style/StyleRareNonInheritedData.cpp: Ditto.
* rendering/style/StyleRareNonInheritedData.h: Ditto.
* rendering/style/StyleTransformData.cpp: Ditto.
* rendering/style/StyleTransformData.h: Ditto.
* rendering/style/StyleVisualData.cpp: Ditto.
* rendering/style/StyleVisualData.h: Ditto.

* style/StylePendingResources.cpp:
(WebCore::Style::loadPendingResources): Update since layers are references.

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.mm:
(NetscapePluginWidget::handleEvent): Pass a reference.
* WebView/WebView.mm:
(-[WebView _addScrollerDashboardRegionsForFrameView:dashboardRegions:]):
Updated since the children set now contains Ref instead of RefPtr.

Source/WebKit2:

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder&lt;TextureMapperAnimation&gt;::encode): Updated since timing function
returns a raw pointer.
(IPC::ArgumentCoder&lt;TextureMapperAnimation&gt;::decode): Updated since timing function
setters now takes an rvalue reference.

* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::createScrollbar): Updated since addChild now takes a reference.

Source/WTF:

* wtf/Ref.h: Changed the template so that a const Ref&lt;T&gt; does not prohibit non-const
use of T. We can still use const Ref&lt;const T&gt; to express that. The earlier design
was intentional, but was not consistent with either actual references or with
other smart pointer classes like RefPtr. One way to see how much better this is,
is to see all the many, many cases where we have const_cast just to work around
this. I searched for those and included fixes for many in this patch.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSInjectedScriptHosth">trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePrivateNameh">trunk/Source/JavaScriptCore/runtime/PrivateName.h</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfRefh">trunk/Source/WTF/wtf/Ref.h</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="#trunkSourceWebCoreModulesencryptedmedialegacyLegacyCDMSessionClearKeyh">trunk/Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h</a></li>
<li><a href="#trunkSourceWebCoreModulesspeechSpeechSynthesisUtterancecpp">trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesspeechSpeechSynthesisUtteranceh">trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMConverth">trunk/Source/WebCore/bindings/js/JSDOMConvert.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWrapperh">trunk/Source/WebCore/bindings/js/JSDOMWrapper.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScriptModuleLoadercpp">trunk/Source/WebCore/bindings/js/ScriptModuleLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorecssBasicShapeFunctionscpp">trunk/Source/WebCore/css/BasicShapeFunctions.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSImageGeneratorValuecpp">trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSKeyframesRulecpp">trunk/Source/WebCore/css/CSSKeyframesRule.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPrimitiveValuecpp">trunk/Source/WebCore/css/CSSPrimitiveValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSStyleRuleh">trunk/Source/WebCore/css/CSSStyleRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSToStyleMapcpp">trunk/Source/WebCore/css/CSSToStyleMap.cpp</a></li>
<li><a href="#trunkSourceWebCorecssFontFacecpp">trunk/Source/WebCore/css/FontFace.cpp</a></li>
<li><a href="#trunkSourceWebCorecssLengthFunctionscpp">trunk/Source/WebCore/css/LengthFunctions.cpp</a></li>
<li><a href="#trunkSourceWebCorecssLengthFunctionsh">trunk/Source/WebCore/css/LengthFunctions.h</a></li>
<li><a href="#trunkSourceWebCorecssSVGCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderCustomh">trunk/Source/WebCore/css/StyleBuilderCustom.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorecssmakeproppl">trunk/Source/WebCore/css/makeprop.pl</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventPathcpp">trunk/Source/WebCore/dom/EventPath.cpp</a></li>
<li><a href="#trunkSourceWebCoredomLiveNodeListh">trunk/Source/WebCore/dom/LiveNodeList.h</a></li>
<li><a href="#trunkSourceWebCoredomMessageEventcpp">trunk/Source/WebCore/dom/MessageEvent.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRangeh">trunk/Source/WebCore/dom/Range.h</a></li>
<li><a href="#trunkSourceWebCoredomRegisteredEventListenerh">trunk/Source/WebCore/dom/RegisteredEventListener.h</a></li>
<li><a href="#trunkSourceWebCoredomScriptRunnercpp">trunk/Source/WebCore/dom/ScriptRunner.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCollectionh">trunk/Source/WebCore/html/HTMLCollection.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLStackItemh">trunk/Source/WebCore/html/parser/HTMLStackItem.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorPageScriptDebugServercpp">trunk/Source/WebCore/inspector/PageScriptDebugServer.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorPageScriptDebugServerh">trunk/Source/WebCore/inspector/PageScriptDebugServer.h</a></li>
<li><a href="#trunkSourceWebCoreloaderHistoryControllercpp">trunk/Source/WebCore/loader/HistoryController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFramecpp">trunk/Source/WebCore/page/Frame.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameh">trunk/Source/WebCore/page/Frame.h</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewh">trunk/Source/WebCore/page/FrameView.h</a></li>
<li><a href="#trunkSourceWebCorepagePagecpp">trunk/Source/WebCore/page/Page.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePrintContextcpp">trunk/Source/WebCore/page/PrintContext.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationAnimationBasecpp">trunk/Source/WebCore/page/animation/AnimationBase.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationCSSPropertyAnimationcpp">trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingCoordinatorcpp">trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformKeyedCodingh">trunk/Source/WebCore/platform/KeyedCoding.h</a></li>
<li><a href="#trunkSourceWebCoreplatformLengthBoxh">trunk/Source/WebCore/platform/LengthBox.h</a></li>
<li><a href="#trunkSourceWebCoreplatformLengthSizecpp">trunk/Source/WebCore/platform/LengthSize.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformLengthSizeh">trunk/Source/WebCore/platform/LengthSize.h</a></li>
<li><a href="#trunkSourceWebCoreplatformPlatformSpeechSynthesisUtterancecpp">trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformPlatformSpeechSynthesisUtteranceh">trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.h</a></li>
<li><a href="#trunkSourceWebCoreplatformPlatformSpeechSynthesisVoicecpp">trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformPlatformSpeechSynthesisVoiceh">trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.h</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewcpp">trunk/Source/WebCore/platform/ScrollView.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewh">trunk/Source/WebCore/platform/ScrollView.h</a></li>
<li><a href="#trunkSourceWebCoreplatformThemeh">trunk/Source/WebCore/platform/Theme.h</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationAnimationh">trunk/Source/WebCore/platform/animation/Animation.h</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationAnimationListcpp">trunk/Source/WebCore/platform/animation/AnimationList.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationAnimationListh">trunk/Source/WebCore/platform/animation/AnimationList.h</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationAnimationTriggerh">trunk/Source/WebCore/platform/animation/AnimationTrigger.h</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationTimingFunctionh">trunk/Source/WebCore/platform/animation/TimingFunction.h</a></li>
<li><a href="#trunkSourceWebCoreplatformaudioAudioBush">trunk/Source/WebCore/platform/audio/AudioBus.h</a></li>
<li><a href="#trunkSourceWebCoreplatformcfKeyedEncoderCFcpp">trunk/Source/WebCore/platform/cf/KeyedEncoderCF.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformcfKeyedEncoderCFh">trunk/Source/WebCore/platform/cf/KeyedEncoderCF.h</a></li>
<li><a href="#trunkSourceWebCoreplatformeflPlatformSpeechSynthesisProviderEflh">trunk/Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.h</a></li>
<li><a href="#trunkSourceWebCoreplatformglibKeyedEncoderGlibcpp">trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformglibKeyedEncoderGlibh">trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCacheh">trunk/Source/WebCore/platform/graphics/FontCache.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontPlatformDatah">trunk/Source/WebCore/platform/graphics/FontPlatformData.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsLayerh">trunk/Source/WebCore/platform/graphics/GraphicsLayer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsLegacyCDMSessionh">trunk/Source/WebCore/platform/graphics/LegacyCDMSession.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsPathUtilitiescpp">trunk/Source/WebCore/platform/graphics/PathUtilities.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfCDMSessionAVFoundationCFcpp">trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfCDMSessionAVFoundationCFh">trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFcpp">trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVFoundationObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh">trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFilterOperationscpp">trunk/Source/WebCore/platform/graphics/filters/FilterOperations.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFilterOperationsh">trunk/Source/WebCore/platform/graphics/filters/FilterOperations.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapTextureMapperAnimationcpp">trunk/Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformiosPlatformSpeechSynthesizerIOSmm">trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacThemeMacmm">trunk/Source/WebCore/platform/mac/ThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacWidgetMacmm">trunk/Source/WebCore/platform/mac/WidgetMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformwinCursorWincpp">trunk/Source/WebCore/platform/win/CursorWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingFilterEffectRenderercpp">trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingImageQualityControllercpp">trunk/Source/WebCore/rendering/ImageQualityController.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineFlowBoxcpp">trunk/Source/WebCore/rendering/InlineFlowBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineFlowBoxh">trunk/Source/WebCore/rendering/InlineFlowBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxh">trunk/Source/WebCore/rendering/RenderBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjecth">trunk/Source/WebCore/rendering/RenderBoxModelObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementcpp">trunk/Source/WebCore/rendering/RenderElement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementh">trunk/Source/WebCore/rendering/RenderElement.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderGridcpp">trunk/Source/WebCore/rendering/RenderGrid.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxcpp">trunk/Source/WebCore/rendering/RenderListBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableCellcpp">trunk/Source/WebCore/rendering/RenderTableCell.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemecpp">trunk/Source/WebCore/rendering/RenderTheme.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeEflcpp">trunk/Source/WebCore/rendering/RenderThemeEfl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeGtkcpp">trunk/Source/WebCore/rendering/RenderThemeGtk.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderWidgetcpp">trunk/Source/WebCore/rendering/RenderWidget.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderWidgeth">trunk/Source/WebCore/rendering/RenderWidget.h</a></li>
<li><a href="#trunkSourceWebCorerenderingTextAutoSizingcpp">trunk/Source/WebCore/rendering/TextAutoSizing.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlMathMLStylecpp">trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLBlockh">trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorh">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLRootcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLTokencpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleBasicShapescpp">trunk/Source/WebCore/rendering/style/BasicShapes.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleBorderDatah">trunk/Source/WebCore/rendering/style/BorderData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleContentDatacpp">trunk/Source/WebCore/rendering/style/ContentData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleContentDatah">trunk/Source/WebCore/rendering/style/ContentData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleDataRefh">trunk/Source/WebCore/rendering/style/DataRef.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleKeyframeListcpp">trunk/Source/WebCore/rendering/style/KeyframeList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleNinePieceImagecpp">trunk/Source/WebCore/rendering/style/NinePieceImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleNinePieceImageh">trunk/Source/WebCore/rendering/style/NinePieceImage.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStylecpp">trunk/Source/WebCore/rendering/style/RenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStylecpp">trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStyleh">trunk/Source/WebCore/rendering/style/SVGRenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleShapeValueh">trunk/Source/WebCore/rendering/style/ShapeValue.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleBackgroundDatacpp">trunk/Source/WebCore/rendering/style/StyleBackgroundData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleBackgroundDatah">trunk/Source/WebCore/rendering/style/StyleBackgroundData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleCachedImagecpp">trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleCustomPropertyDatah">trunk/Source/WebCore/rendering/style/StyleCustomPropertyData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleDeprecatedFlexibleBoxDatacpp">trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleDeprecatedFlexibleBoxDatah">trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleFilterDatacpp">trunk/Source/WebCore/rendering/style/StyleFilterData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleFilterDatah">trunk/Source/WebCore/rendering/style/StyleFilterData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleFlexibleBoxDatacpp">trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleFlexibleBoxDatah">trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleGeneratedImagecpp">trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleGridDatacpp">trunk/Source/WebCore/rendering/style/StyleGridData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleGridDatah">trunk/Source/WebCore/rendering/style/StyleGridData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleGridItemDatacpp">trunk/Source/WebCore/rendering/style/StyleGridItemData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleGridItemDatah">trunk/Source/WebCore/rendering/style/StyleGridItemData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleInheritedDatacpp">trunk/Source/WebCore/rendering/style/StyleInheritedData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleInheritedDatah">trunk/Source/WebCore/rendering/style/StyleInheritedData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleMultiColDatacpp">trunk/Source/WebCore/rendering/style/StyleMultiColData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleMultiColDatah">trunk/Source/WebCore/rendering/style/StyleMultiColData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareInheritedDatacpp">trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareInheritedDatah">trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatacpp">trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatah">trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleTransformDatacpp">trunk/Source/WebCore/rendering/style/StyleTransformData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleTransformDatah">trunk/Source/WebCore/rendering/style/StyleTransformData.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleVisualDatacpp">trunk/Source/WebCore/rendering/style/StyleVisualData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleVisualDatah">trunk/Source/WebCore/rendering/style/StyleVisualData.h</a></li>
<li><a href="#trunkSourceWebCorestyleStylePendingResourcescpp">trunk/Source/WebCore/style/StylePendingResources.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedCoordinatedGraphicsCoordinatedGraphicsArgumentCoderscpp">trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformPlatformSpeechSynthesish">trunk/Source/WebCore/platform/PlatformSpeechSynthesis.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockDeviceMotionClientMockcpp">trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockDeviceMotionClientMockh">trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/JavaScriptCore/ChangeLog        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2017-01-11  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from more of &quot;platform&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=166809
+
+        Reviewed by Sam Weinig.
+
+        * inspector/JSInjectedScriptHost.h:
+        (Inspector::JSInjectedScriptHost::impl): Simplified code since we don't need a
+        const_cast here any more.
+        * runtime/PrivateName.h:
+        (JSC::PrivateName::uid): Ditto.
+
</ins><span class="cx"> 2017-01-13  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r210735.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSInjectedScriptHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx">     static JSC::JSObject* createPrototype(JSC::VM&amp;, JSC::JSGlobalObject*);
</span><span class="cx">     static void destroy(JSC::JSCell*);
</span><span class="cx"> 
</span><del>-    InjectedScriptHost&amp; impl() const { return const_cast&lt;InjectedScriptHost&amp;&gt;(m_wrapped.get()); }
</del><ins>+    InjectedScriptHost&amp; impl() const { return m_wrapped; }
</ins><span class="cx"> 
</span><span class="cx">     // Attributes.
</span><span class="cx">     JSC::JSValue evaluate(JSC::ExecState*) const;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePrivateNameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PrivateName.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PrivateName.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/JavaScriptCore/runtime/PrivateName.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> 
</span><span class="cx">     PrivateName(PrivateName&amp;&amp;) = default;
</span><span class="cx"> 
</span><del>-    SymbolImpl&amp; uid() const { return const_cast&lt;SymbolImpl&amp;&gt;(m_uid.get()); }
</del><ins>+    SymbolImpl&amp; uid() const { return m_uid; }
</ins><span class="cx"> 
</span><span class="cx">     bool operator==(const PrivateName&amp; other) const { return &amp;uid() == &amp;other.uid(); }
</span><span class="cx">     bool operator!=(const PrivateName&amp; other) const { return &amp;uid() != &amp;other.uid(); }
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WTF/ChangeLog        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2017-01-11  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from more of &quot;platform&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=166809
+
+        Reviewed by Sam Weinig.
+
+        * wtf/Ref.h: Changed the template so that a const Ref&lt;T&gt; does not prohibit non-const
+        use of T. We can still use const Ref&lt;const T&gt; to express that. The earlier design
+        was intentional, but was not consistent with either actual references or with
+        other smart pointer classes like RefPtr. One way to see how much better this is,
+        is to see all the many, many cases where we have const_cast just to work around
+        this. I searched for those and included fixes for many in this patch.
+
</ins><span class="cx"> 2017-01-12  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS] Implement support for KeyboardEvent.code
</span></span></pre></div>
<a id="trunkSourceWTFwtfRefh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Ref.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Ref.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WTF/wtf/Ref.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -133,18 +133,11 @@
</span><span class="cx">         ASSERT(m_ptr);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const T* operator-&gt;() const { ASSERT(m_ptr); return m_ptr; }
-    T* operator-&gt;() { ASSERT(m_ptr); return m_ptr; }
</del><ins>+    T* operator-&gt;() const { ASSERT(m_ptr); return m_ptr; }
+    T* ptr() const { ASSERT(m_ptr); return m_ptr; }
+    T&amp; get() const { ASSERT(m_ptr); return *m_ptr; }
+    operator T&amp;() const { ASSERT(m_ptr); return *m_ptr; }
</ins><span class="cx"> 
</span><del>-    const T* ptr() const { ASSERT(m_ptr); return m_ptr; }
-    T* ptr() { ASSERT(m_ptr); return m_ptr; }
-
-    const T&amp; get() const { ASSERT(m_ptr); return *m_ptr; }
-    T&amp; get() { ASSERT(m_ptr); return *m_ptr; }
-
-    operator T&amp;() { ASSERT(m_ptr); return *m_ptr; }
-    operator const T&amp;() const { ASSERT(m_ptr); return *m_ptr; }
-
</del><span class="cx">     template&lt;typename U&gt; Ref&lt;T&gt; replace(Ref&lt;U&gt;&amp;&amp;) WARN_UNUSED_RETURN;
</span><span class="cx"> 
</span><span class="cx"> #if COMPILER_SUPPORTS(CXX_REFERENCE_QUALIFIED_FUNCTIONS)
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/CMakeLists.txt        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2271,7 +2271,6 @@
</span><span class="cx">     platform/mediastream/RealtimeMediaSourceSettings.cpp
</span><span class="cx">     platform/mediastream/SDPProcessorScriptResource.cpp
</span><span class="cx"> 
</span><del>-    platform/mock/DeviceMotionClientMock.cpp
</del><span class="cx">     platform/mock/DeviceOrientationClientMock.cpp
</span><span class="cx">     platform/mock/GeolocationClientMock.cpp
</span><span class="cx">     platform/mock/MockMediaEndpoint.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/ChangeLog        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,3 +1,645 @@
</span><ins>+2017-01-11  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from more of &quot;platform&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=166809
+
+        Reviewed by Sam Weinig.
+
+        * CMakeLists.txt: Removed DeviceMotionClientMock.cpp.
+
+        * Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h:
+        Added now-needed include.
+
+        * Modules/speech/SpeechSynthesisUtterance.cpp:
+        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
+        Pass a reference instead of a pointer.
+
+        * Modules/speech/SpeechSynthesisUtterance.h: Tweaks, msade a few things
+        more private and final.
+
+        * bindings/js/JSDOMConvert.h:
+        (WebCore::Detail::getPtrOrRef): Removed no-longer-needed const_cast.
+        * bindings/js/JSDOMWrapper.h:
+        (WebCore::JSDOMWrapper::wrapped): Ditto.
+        * bindings/js/ScriptModuleLoader.cpp:
+        (WebCore::ScriptModuleLoader::~ScriptModuleLoader): Ditto.
+
+        * css/BasicShapeFunctions.cpp:
+        (WebCore::convertToLengthSize): Updated for LengthSize struct.
+        (WebCore::convertToCenterCoordinate): Ditto.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::createPositionListForLayer): Take a reference.
+        (WebCore::getBorderRadiusCornerValues): Updated for LengthSize struct.
+        (WebCore::getBorderRadiusCornerValue): Ditto.
+        (WebCore::getBorderRadiusShorthandValue): Ditto.
+        (WebCore::fillSizeToCSSValue): Ditto.
+        (WebCore::ComputedStyleExtractor::propertyValue): Updated many properties
+        since the layer properties now return references rather than pointers.
+
+        * css/CSSImageGeneratorValue.cpp:
+        (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::image): Removed
+        no-longer-needed const_cast.
+        * css/CSSKeyframesRule.cpp:
+        (WebCore::CSSKeyframesRule::item): Ditto.
+
+        * css/CSSPrimitiveValue.cpp:
+        (WebCore::CSSPrimitiveValue::init): Updated for LengthSize struct.
+
+        * css/CSSStyleRule.h: Removed no-longer-needed const_cast.
+
+        * css/CSSToStyleMap.cpp:
+        (WebCore::convertToLengthSize): Updated for LengthSize struct.
+
+        * css/FontFace.cpp:
+        (WebCore::FontFace::family): Removed no-longer-needed const_cast.
+        (WebCore::FontFace::style): Ditto.
+        (WebCore::FontFace::weight): Ditto.
+        (WebCore::FontFace::unicodeRange): Ditto.
+        (WebCore::FontFace::variant): Ditto.
+        (WebCore::FontFace::featureSettings): Ditto.
+
+        * css/LengthFunctions.cpp:
+        (WebCore::sizeForLengthSize): Added.
+        (WebCore::floatSizeForLengthSize): Updated for LengthSize struct.
+        * css/LengthFunctions.h: Added sizeForLengthSize.
+
+        * css/SVGCSSComputedStyleDeclaration.cpp:
+        (WebCore::paintOrder): Cut down on creation of unused objects.
+        We now create only what we actually use.
+
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertRadius): Updated for
+        LengthSize struct.
+        (WebCore::StyleBuilderConverter::convertShapeValue): Pass references
+        when creating ShapeValue.
+
+        * css/StyleBuilderCustom.h:
+        (WebCore::forwardInheritedValue): Added. This set of overloaded
+        functions allows us to use move semantics for some types, but copy
+        them when inheriting. Doing it with special cases here allows us to
+        resolve this without adding overloads someone might be tempted to
+        call outside the style builder, and without adding special cases to
+        the JSON file for each property.
+        (WebCore::StyleBuilderCustom::applyValueWebkitDashboardRegion):
+        Add WTFMove as needed to work with rvalue references.
+        (WebCore::StyleBuilderCustom::applyValueSize): Ditto.
+        (WebCore::StyleBuilderCustom::applyInheritTextIndent): Ditto.
+        (WebCore::StyleBuilderCustom::applyValueTextIndent): Ditto.
+        (WebCore::StyleBuilderCustom::applyInheritLineHeight): Ditto.
+        (WebCore::StyleBuilderCustom::applyValueLineHeight): Ditto.
+        (WebCore::StyleBuilderCustom::applyInheritClip): Ditto.
+        (WebCore::StyleBuilderCustom::applyValueClip): Ditto.
+
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::State::cacheBorderAndBackground): Use
+        references instead of pointers.
+        (WebCore::StyleResolver::applyMatchedProperties): Ditto.
+        (WebCore::StyleResolver::applyProperty): Update for changes to the
+        custom property data in RenderStyle.
+
+        * css/makeprop.pl: Use auto quite a bit more in the generated code.
+        Updated special cases for layers to expect references. Added a WTFMove
+        so we can get move semantics for converted values that come out in
+        an optional. Added call to forwardInheritedValue (see above).
+
+        * dom/Document.cpp:
+        (WebCore::Document::pageSizeAndMarginsInPixels): Use auto and update
+        since LengthSize is a struct.
+
+        * dom/EventPath.cpp:
+        (WebCore::EventPath::computePathUnclosedToTarget): Use auto.
+
+        * dom/LiveNodeList.h:
+        (WebCore::LiveNodeList::ownerNode): Removed no-longer-needed const_cast.
+
+        * dom/MessageEvent.cpp:
+        (WebCore::MessageEvent::source): Removed unneeded static_cast.
+
+        * dom/Node.cpp:
+        (WebCore::nodeSetPreTransformedFromNodeOrStringVector): Tweaked formatting.
+
+        * dom/Range.h:
+        (WebCore::Range::ownerDocument): Removed no-longer-needed const_cast.
+        * dom/RegisteredEventListener.h:
+        (WebCore::RegisteredEventListener::callback): Ditto.
+        * dom/ScriptRunner.cpp:
+        (WebCore::ScriptRunner::~ScriptRunner): Ditto.
+        * html/HTMLCollection.h:
+        (WebCore::HTMLCollection::ownerNode): Ditto.
+        * html/parser/HTMLStackItem.h:
+        (WebCore::HTMLStackItem::node): Ditto.
+
+        * inspector/PageScriptDebugServer.cpp:
+        (WebCore::PageScriptDebugServer::setJavaScriptPaused): Cut down on the number
+        of different functions here. Also use reference rather than pointer.
+        * inspector/PageScriptDebugServer.h: Updated for above change.
+
+        * loader/HistoryController.cpp:
+        (WebCore::HistoryController::recursiveSetProvisionalItem): Removed
+        no-longer-needed const_cast.
+        (WebCore::HistoryController::recursiveGoToItem): Ditto.
+
+        * page/Frame.cpp:
+        (WebCore::Frame::ownerRenderer): Use auto. Let the is&lt;&gt; function do null
+        checking for us.
+        (WebCore::Frame::frameForWidget): Take a reference rather than a pointer.
+        * page/Frame.h: Updated for the above.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::invalidateRect): Use Chrome directly instead of using
+        HostWindow. HostWindow is an abstraction for the platform layer, and there
+        is no good reason to use it here.
+        (WebCore::FrameView::scheduleAnimation): Ditto.
+        (WebCore::FrameView::graphicsLayerForPlatformWidget): Updated to use reference
+        when calling RenderWidget::find.
+        (WebCore::FrameView::scrollContentsFastPath): Use Chrome instead of HostWindow.
+        (WebCore::FrameView::hostWindow): Use early return.
+        (WebCore::FrameView::updateScrollCorner): Removed unneeded call through to base
+        class function, which was empty.
+        (WebCore::FrameView::hasCustomScrollbars): Updated since the children set now
+        contains Ref rather than RefPtr.
+        (WebCore::FrameView::parentFrameView): Use early return.
+        (WebCore::FrameView::updateWidgetPositions): Use reference instead of pointer.
+        * page/FrameView.h: Use final instead of override. Remove now-unneeded const_cast.
+
+        * page/Page.cpp:
+        (WebCore::Page::pluginViews): Updated since the children set now contains
+        Ref rather than RefPtr.
+
+        * page/PrintContext.cpp:
+        (WebCore::PrintContext::pageProperty): Updated for LengthSize struct.
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::AnimationBase::fireAnimationEventsIfNeeded): Updated for changes to
+        the types in animation function members.
+        (WebCore::AnimationBase::timeToNextService): Ditto.
+        (WebCore::AnimationBase::progress): Ditto.
+        (WebCore::AnimationBase::getElapsedTime): Ditto.
+
+        * page/animation/CSSPropertyAnimation.cpp:
+        (WebCore::blendFunc): Updated for LengthSize struct.
+        (WebCore::LengthPropertyWrapper::LengthPropertyWrapper): Updated since we now
+        use rvalue references and move semantics when setting length properties.
+
+        * page/scrolling/ScrollingCoordinator.cpp:
+        (WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame): Tweaked to
+        use auto, pass references.
+
+        * platform/KeyedCoding.h: Return RefPtr instead of PassRefPtr.
+
+        * platform/LengthBox.h: Added a constructor that moves the lengths in, rather
+        than always copying them.
+
+        * platform/LengthSize.cpp:
+        (WebCore::operator&lt;&lt;): Updated since LengthSize is a struct.
+        * platform/LengthSize.h: Turned LengthSize into a struct and removed all the
+        getter and setter code.
+
+        * platform/PlatformSpeechSynthesis.h: Removed. Unused.
+
+        * platform/PlatformSpeechSynthesisUtterance.cpp:
+        (WebCore::PlatformSpeechSynthesisUtterance::create): Return Ref rather than PassRefPtr.
+        (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance): Take
+        a reference. Initialize data members in class definition.
+        * platform/PlatformSpeechSynthesisUtterance.h: Updated for the above.
+
+        * platform/PlatformSpeechSynthesisVoice.cpp:
+        (WebCore::PlatformSpeechSynthesisVoice::create): Return Ref rather than PassRefPtr.
+        * platform/PlatformSpeechSynthesisVoice.h: Updated for the above.
+
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::addChild): Take a reference rather than a PassRefPtr.
+        (WebCore::ScrollView::setHasScrollbarInternal): Updated for change to addChild
+        (WebCore::ScrollView::scrollContentsFastPath): Deleted. This was never called,
+        so made it pure virtual.
+        (WebCore::ScrollView::frameRectsChanged): Use a modern for loop.
+        (WebCore::ScrollView::clipRectChanged): Ditto.
+        (WebCore::ScrollView::updateScrollCorner): Deleted. This was empty so made it pure
+        virtual and changed FrameView to not call it.
+        (WebCore::ScrollView::setParentVisible): Use a modern for loop.
+        (WebCore::ScrollView::show): Ditto.
+        (WebCore::ScrollView::hide): Ditto.
+        * platform/ScrollView.h: Changed the children set to contain Ref instead of RefPtr.
+        Changed functions that were never overridden to either be final or non-virtual,
+        Changed functions that were never called to be pure virtual.
+
+        * platform/Theme.h:
+        (WebCore::Theme::minimumControlSize): Updated for LengthSize struct.
+
+        * platform/animation/Animation.h: Changed timingFunction and trigger to return
+        raw pointers instead of PassRefPtr. Changed setTimingFunction and setTrigger to
+        take RefPtr&amp;&amp; and Ref&amp;&amp; instead of PassRefPtr. CHanged initialTimingfunction and
+        initialTrigger to return Ref.
+
+        * platform/animation/AnimationList.cpp: Removed redundant check in FILL_UNSET_PROPERTY.
+        (WebCore::AnimationList::AnimationList): Use modern for loop, reserveInitialCapacity,
+        and uncheckedAppend.
+        * platform/animation/AnimationList.h: Changed append to take Ref&amp;&amp; instead of PassRefPtr.
+        changed vecto to contain Ref instead of RefPtr. Added move constructor and assignment
+        operator.
+
+        * platform/animation/AnimationTrigger.h:
+        (WebCore::AutoAnimationTrigger::clone): Return Ref instead of PassRefPtr.
+        (WebCore::AutoAnimationTrigger::create): Ditto.
+        (WebCore::AutoAnimationTrigger::clone): Ditto.
+        (WebCore::ScrollAnimationTrigger::create): Ditto.
+        (WebCore::ScrollAnimationTrigger::clone): Ditto.
+
+        * platform/animation/TimingFunction.h:
+        (WebCore::LinearTimingFunction::create): Return Ref instead of PassRefPtr.
+        (WebCore::CubicBezierTimingFunction::create): Ditto.
+        (WebCore::CubicBezierTimingFunction::defaultTimingFunction): Return a reference
+        instead of a pointer.
+        (WebCore::CubicBezierTimingFunction::createReversed): Return Ref instead of PassRefPtr.
+        (WebCore::CubicBezierTimingFunction::clone): Ditto.
+        (WebCore::StepsTimingFunction::create): Ditto.
+        (WebCore::StepsTimingFunction::clone): Ditto.
+        (WebCore::SpringTimingFunction::create): Ditto.
+        (WebCore::SpringTimingFunction::clone): Ditto.
+
+        * platform/audio/AudioBus.h:
+        (WebCore::AudioBus::channel): Removed no-longer-needed const_cast.
+
+        * platform/cf/KeyedEncoderCF.cpp:
+        (WebCore::KeyedEncoderCF::finishEncoding): Return RefPtr instead of PassRefPtr.
+        * platform/cf/KeyedEncoderCF.h: Use final instead of override. Made even more
+        private. Changed return value of finishEncoding to Ref instead of PassRefPtr.
+
+        * platform/efl/PlatformSpeechSynthesisProviderEfl.h: Removed include of PassRefPtr.h.
+
+        * platform/glib/KeyedEncoderGlib.cpp:
+        (WebCore::KeyedEncoderGlib::finishEncoding): Return RefPtr instead of PassRefPtr.
+        * platform/glib/KeyedEncoderGlib.h: Use final instead of override. Made even more
+        private. Changed return value of finishEncoding to Ref instead of PassRefPtr.
+
+        * platform/graphics/filters/FilterOperations.cpp:
+        (WebCore::outsetSizeForBlur): Simplified, removing unnecessary floating point math.
+        (WebCore::FilterOperations::FilterOperations): Deleted. Let the compiler generate this.
+        (WebCore::FilterOperations::operator=): Deleted. Let the compiler generate this.
+        (WebCore::FilterOperations::operator==): Streamlined.
+        (WebCore::FilterOperations::operationsMatch): Ditto.
+        (WebCore::FilterOperations::hasReferenceFilter): Ditto.
+        (WebCore::FilterOperations::hasOutsets): Ditto.
+        (WebCore::FilterOperations::outsets): Ditto.
+        (WebCore::FilterOperations::hasFilterThatAffectsOpacity): Ditto.
+        (WebCore::FilterOperations::hasFilterThatMovesPixels): Ditto.
+        * platform/graphics/filters/FilterOperations.h: Updated for above changes.
+
+        * platform/graphics/FontCache.h: Removed included of PassRefPtr.h.
+
+        * platform/graphics/FontPlatformData.h: Tweaked formatting. Removed nesting
+        from #if since our formatting makes it hard to see nesting. Let the compiler
+        generate the default move and copy constructors and assignemnt operators except
+        in the USE(FREETYPE) case.
+
+        * platform/graphics/GraphicsLayer.h:
+        (WebCore::AnimationValue::AnimationValue): Updated since clone now returns a Ref
+        rather than a RefPtr.
+        (WebCore::FloatAnimationValue::FloatAnimationValue): Deleted. Let the compiler
+        generate the copy constructor without defining it explicitly.
+        (WebCore::TransformAnimationValue::TransformAnimationValue): Use a modern for
+        loop, reserveInitialCapacity, and unchecked append. Also tell the compiler to
+        generate the move constructor, since the special work is only needed for the
+        copy constructor.
+        (WebCore::FilterAnimationValue::FilterAnimationValue): Ditto.
+        (WebCore::KeyframeValueList::KeyframeValueList): Ditto.
+
+        * platform/graphics/LegacyCDMSession.h: Removed include of PassRefPtr.h.
+
+        * platform/graphics/PathUtilities.cpp:
+        (WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline): Updated
+        for LengthSize struct.
+
+        * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
+        (WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF): Take a reference.
+        Don't bother setting m_client since we never use it.
+        (WebCore::CDMSessionAVFoundationCF::generateKeyRequest): Clean up code a bit
+        by using auto a lot more.
+        * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h: Added include
+        that is now needed since it was removed from the base class. Tidied the class
+        up a bit, marking it final, making everything private, taking a reference, and
+        removing an unused data member, m_client.
+
+        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
+        (WebCore::MediaPlayerPrivateAVFoundationCF::createSession): Pass a reference.
+
+        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
+        added include of WTFString.h, now needed because of removing an unneeded
+        include from another header file.
+
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::animationCanBeAccelerated): Updated since trigger
+        is a raw pointer now.
+        (WebCore::GraphicsLayerCA::timingFunctionForAnimationValue): Updated to
+        return a reference rather than a pointer.
+        (WebCore::GraphicsLayerCA::setAnimationEndpoints): Updated for the above change.
+        (WebCore::GraphicsLayerCA::setAnimationKeyframes): Ditto.
+        (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints): Ditto.
+        (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes): Ditto.
+        (WebCore::GraphicsLayerCA::setFilterAnimationEndpoints): Ditto.
+        (WebCore::GraphicsLayerCA::setFilterAnimationKeyframes): Ditto.
+        * platform/graphics/ca/GraphicsLayerCA.h: Ditto.
+
+        * platform/ios/PlatformSpeechSynthesizerIOS.mm:
+        (-[WebSpeechSynthesisWrapper speakUtterance:]): CHanged argument to be a
+        RefPtr&amp;&amp; instead of a PassRefPtr.
+
+        * platform/mac/ThemeMac.mm:
+        (WebCore::sizeFromNSControlSize): Updated for LenghtSize struct.
+        (WebCore::checkboxSize): Ditto.
+        (WebCore::radioSize): Ditto.
+        (WebCore::ThemeMac::controlSize): Ditto.
+        (WebCore::ThemeMac::minimumControlSize): Ditto.
+
+        * platform/mac/WidgetMac.mm:
+        (WebCore::Widget::setFocus): Updated to pass a reference.
+
+        * platform/mock/DeviceMotionClientMock.cpp: Removed. Unused.
+        * platform/mock/DeviceMotionClientMock.h: Removed. Unused.
+
+        * platform/win/CursorWin.cpp:
+        (WebCore::createSharedCursor): Return a Ref instead of a PassRefPtr.
+        (WebCore::loadSharedCursor): Ditto.
+        (WebCore::loadCursorByName): Ditto.
+
+        * rendering/FilterEffectRenderer.cpp:
+        (WebCore::FilterEffectRenderer::output): Removed a no-longer-needed const_cast.
+        (WebCore::FilterEffectRenderer::outputRect): Ditto.
+
+        * rendering/ImageQualityController.cpp:
+        (WebCore::ImageQualityController::chooseInterpolationQuality): Tweaked formatting.
+
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::paintFillLayers): Updated to take a reference. Also
+        used a vector to iterate the linked list in reverse order instead of recursion.
+        (WebCore::InlineFlowBox::paintFillLayer): Take a reference.
+        (WebCore::InlineFlowBox::paintMask):
+        * rendering/InlineFlowBox.h: Updated for the above.
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::paintRootBoxFillLayers): Use auto a bit.
+        (WebCore::RenderBox::getBackgroundPaintedExtent): Use reference for the layers.
+        (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect): Ditto.
+        (WebCore::RenderBox::backgroundHasOpaqueTopLayer): Ditto.
+        (WebCore::RenderBox::paintMaskImages): Ditto.
+        (WebCore::RenderBox::maskClipRect): Ditto.
+        (WebCore::RenderBox::paintFillLayers): Ditto.
+        (WebCore::RenderBox::paintFillLayer): Ditto.
+        (WebCore::layersUseImage): Ditto.
+        (WebCore::RenderBox::repaintLayerRectsForImage): Ditto.
+        * rendering/RenderBox.h: Updated for the above.
+
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use reference for
+        the layers.
+        (WebCore::RenderBoxModelObject::calculateFillTileSize): Ditto.
+        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Ditto.
+        (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage): Ditto.
+        (WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground): Ditto.
+        * rendering/RenderBoxModelObject.h: Updated for the above.
+
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::~RenderElement): Use references for the layers.
+        (WebCore::RenderElement::adjustStyleDifference): Ditto.
+        (WebCore::RenderElement::updateFillImages): Ditto.
+        (WebCore::RenderElement::setStyle): Use RenderStyle::replace to replace the
+        old style with the new style, and get the old one out at the same time.
+        (WebCore::RenderElement::styleDidChange): Use references for the layers.
+        (WebCore::mustRepaintFillLayers): Ditto.
+        (WebCore::RenderElement::repaintAfterLayoutIfNeeded): Ditto.
+        * rendering/RenderElement.h: Updated for the above.
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
+        Refactor so we don't need so many functions in RenderStyle.
+        * rendering/RenderMenuList.cpp:
+        (WebCore::RenderMenuList::adjustInnerStyle): Ditto.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::createScrollbar): Pass widget as reference to addChild.
+        Also did a few other tweaks and used more specific types.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::canCreateTiledImage): Updated since layers are references.
+        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage): Ditto.
+
+        * rendering/RenderListBox.cpp:
+        (WebCore::RenderListBox::createScrollbar): Pass widget as reference to addChild.
+
+        * rendering/RenderTableCell.cpp:
+        (WebCore::RenderTableCell::paintBackgroundsBehindCell): Updated to use
+        references for layers.
+
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::adjustStyle): Use WTFMove to pass a LengthBox.
+        (WebCore::RenderTheme::isControlStyled): Updated since LengthSize is a struct,
+        more WTFMove, change since layers are ferences.
+
+        * rendering/RenderThemeEfl.cpp:
+        (WebCore::RenderThemeEfl::adjustSizeConstraints): Update for Length and
+        LengthSize changes.
+        (WebCore::RenderThemeEfl::paintThemePart): Use reference instead of pointer.
+        (WebCore::RenderThemeEfl::applyPartDescriptionFallback): Update for Length and
+        LengthSize changes.
+        (WebCore::RenderThemeEfl::applyPartDescription): Ditto.
+        (WebCore::RenderThemeEfl::adjustCheckboxStyle): Ditto.
+        (WebCore::RenderThemeEfl::adjustRadioStyle): Ditto.
+
+        * rendering/RenderThemeGtk.cpp:
+        (WebCore::borderRadiiFromStyle): Update for Length and LengthSize changes.
+
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::RenderThemeIOS::adjustCheckboxStyle): Update for Length and
+        LengthSize changes.
+        (WebCore::RenderThemeIOS::isControlStyled): Ditto.
+        (WebCore::RenderThemeIOS::adjustRadioStyle): Ditto.
+        (WebCore::RenderThemeIOS::adjustRoundBorderRadius): Ditto.
+        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations): Ditto.
+        (WebCore::RenderThemeIOS::adjustSliderTrackStyle): Ditto.
+        (WebCore::RenderThemeIOS::adjustSliderThumbSize): Ditto.
+
+        * rendering/RenderWidget.cpp:
+        (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets): Use move
+        insteead of swap and modern for loop instead of iterators.
+        (WebCore::moveWidgetToParentSoon): Take a reference instead of a pointer.
+        (WebCore::RenderWidget::setWidget): Update for above change.
+        (WebCore::RenderWidget::find): Take a reference instead of a pointer.
+        * rendering/RenderWidget.h: Updated for above changes.
+
+        * rendering/TextAutoSizing.cpp:
+        (WebCore::TextAutoSizingValue::reset): Updated since Length is passed as
+        rvalue reference now.
+
+        * rendering/mathml/MathMLStyle.cpp:
+        (WebCore::MathMLStyle::getMathMLStyle): Updated since mathMLStyle returns
+        a reference.
+        (WebCore::MathMLStyle::resolveMathMLStyleTree): Ditto.
+
+        * rendering/mathml/RenderMathMLBlock.h:
+        (WebCore::RenderMathMLBlock::mathMLStyle): Removed no-longer needed const_cast,
+        changed to return a reference rather than a pointer.
+        (WebCore::RenderMathMLTable::mathMLStyle): Ditto.
+
+        * rendering/mathml/RenderMathMLFraction.cpp:
+        (WebCore::RenderMathMLFraction::fractionParameters): Updated since mathMLStyle
+        returns a reference.
+        (WebCore::RenderMathMLFraction::stackParameters): Ditto.
+        * rendering/mathml/RenderMathMLOperator.h:
+        (WebCore::RenderMathMLOperator::isLargeOperatorInDisplayStyle): Ditto.
+        (WebCore::RenderMathMLOperator::shouldMoveLimits): Ditto.
+        * rendering/mathml/RenderMathMLRoot.cpp:
+        (WebCore::RenderMathMLRoot::verticalParameters): Ditto.
+        * rendering/mathml/RenderMathMLToken.cpp:
+        (WebCore::RenderMathMLToken::updateMathVariantGlyph): Ditto.
+
+        * rendering/style/BasicShapes.cpp:
+        (WebCore::floatSizeForLengthSize): Updated for LengthSize struct.
+        * rendering/style/BorderData.h:
+        (WebCore::BorderData::BorderData): Ditto.
+        (WebCore::BorderData::hasBorderRadius): Ditto.
+
+        * rendering/style/ContentData.cpp:
+        (WebCore::ContentData::clone): Updated member names.
+        * rendering/style/ContentData.h: Ditto.
+
+        * rendering/style/NinePieceImage.cpp:
+        (WebCore::NinePieceImage::computeSlices): Use initializer lists so we get
+        move optimization without requiring explicit WTFMove.
+
+        * rendering/style/DataRef.h:
+        (WebCore::DataRef::DataRef): Removed no-longer needed const_cast.
+        (WebCore::DataRef::replace): Added. This function is like Ref::replace, and
+        can be used to put a new value in and get an old value out without running into
+        the rule Ref has about not being reused once it becomes null because of being
+        moved out of. This function is a lot like std::exchange.
+        (WebCore::DataRef::operator const T&amp;): Added operator so we can use these
+        as references without any function call in read-only contexts.
+        (WebCore::DataRef::get): Changed to return a reference rather than pointer.
+        (WebCore::DataRef::access): Ditto.
+
+        * rendering/style/KeyframeList.cpp:
+        (WebCore::KeyframeValue::timingFunction): Updated since timingFunction
+        returns a raw pointer.
+        (WebCore::KeyframeList::~KeyframeList): Removed unneeded call to clear,
+        which does things that are redundant since we are about to destroy all the
+        data members.
+        (WebCore::KeyframeList::operator==): Tweaked codign style a bit.
+
+        * rendering/style/NinePieceImage.h: Updated most functions in this class
+        for the changes to DataRef.
+
+        * rendering/style/RenderStyle.cpp: Updated nearly every function in this
+        class for the changes to DataRef, to eliminate the peculiar naming and use
+        our standard data member naming, m_memberName in a class, and memberName in a
+        struct or struct-like class for publicly accessible members, to pass, take,
+        and return more references and rvalue references, and to use modern for loops.
+        Other changes listed below function by function.
+        (WebCore::RenderStyle::defaultStyle): Use NeverDestroyed instead of allocating
+        on the heap.
+        (WebCore::RenderStyle::RenderStyle): Added a new constructor that performs
+        the replace operation, using a combination of DataRef::replace and std::exchange.
+        (WebCore::RenderStyle::replace): Added. Calls the above constructor.
+        (WebCore::RenderStyle::setScrollSnapType): Use SET_NESTED_VAR so we get equality
+        checks on this property, for the normal efficiency benefit.
+        (WebCore::RenderStyle::setDashboardRegion): Moved this here from the header.
+        (WebCore::RenderStyle::appendContent): Deleted.
+        (WebCore::RenderStyle::setContent): Refactored this set of functions to simplify.
+
+        * rendering/style/RenderStyle.h: Updated most functions as mentioned above.
+        Also updated macros to use the do/while(0) technique. Removed the long list of
+        friend classes with the elaborate comments; turned out none needed friendship
+        despite the comments. Made more things private. Moved large functions out of the
+        class definition.
+        (WebCore::RenderStyle::getTextShadowExtent): Deleted.
+        (WebCore::RenderStyle::getTextShadowHorizontalExtent): Deleted.
+        (WebCore::RenderStyle::getTextShadowVerticalExtent): Deleted.
+        (WebCore::RenderStyle::aspectRatio): Deleted.
+        (WebCore::RenderStyle::alignContentPosition): Deleted.
+        (WebCore::RenderStyle::alignContentDistribution): Deleted.
+        (WebCore::RenderStyle::alignContentOverflowAlignment): Deleted.
+        (WebCore::RenderStyle::alignItemsPosition): Deleted.
+        (WebCore::RenderStyle::alignItemsOverflowAlignment): Deleted.
+        (WebCore::RenderStyle::alignSelfPosition): Deleted.
+        (WebCore::RenderStyle::alignSelfOverflowAlignment): Deleted.
+        (WebCore::RenderStyle::justifyContentPosition): Deleted.
+        (WebCore::RenderStyle::justifyContentDistribution): Deleted.
+        (WebCore::RenderStyle::justifyContentOverflowAlignment): Deleted.
+        (WebCore::RenderStyle::justifyItemsPosition): Deleted.
+        (WebCore::RenderStyle::justifyItemsOverflowAlignment): Deleted.
+        (WebCore::RenderStyle::justifyItemsPositionType): Deleted.
+        (WebCore::RenderStyle::justifySelfPosition): Deleted.
+        (WebCore::RenderStyle::justifySelfOverflowAlignment): Deleted.
+        (WebCore::RenderStyle::setAlignContentPosition): Deleted.
+        (WebCore::RenderStyle::setAlignContentOverflow): Deleted.
+        (WebCore::RenderStyle::setAlignContentDistribution): Deleted.
+        (WebCore::RenderStyle::setAlignItemsOverflow): Deleted.
+        (WebCore::RenderStyle::setAlignSelfOverflow): Deleted.
+        (WebCore::RenderStyle::setJustifyContentOverflow): Deleted.
+        (WebCore::RenderStyle::setJustifyContentDistribution): Deleted.
+        (WebCore::RenderStyle::setJustifyItemsPosition): Deleted.
+        (WebCore::RenderStyle::setJustifyItemsOverflow): Deleted.
+        (WebCore::RenderStyle::setJustifyItemsPositionType): Deleted.
+        (WebCore::RenderStyle::setJustifySelfPosition): Deleted.
+        (WebCore::RenderStyle::setJustifySelfOverflow): Deleted.
+        (WebCore::RenderStyle::noninheritedFlagsMemoryOffset): Deleted.
+
+        * rendering/style/SVGRenderStyle.cpp: Similar changes to RenderStyle.cpp above.
+        * rendering/style/SVGRenderStyle.h: Ditto.
+
+        * rendering/style/ShapeValue.h:
+        (WebCore::ShapeValue::create): Take a Ref&amp;&amp; instead of a RefPtr.
+        (WebCore::ShapeValue::ShapeValue): Ditto.
+
+        * rendering/style/StyleBackgroundData.cpp: Update data member names.
+        * rendering/style/StyleBackgroundData.h: Ditto; make them public and remove the
+        getter functions.
+
+        * rendering/style/StyleCachedImage.cpp:
+        (WebCore::StyleCachedImage::cssValue): Removed no-longer-needed const_cast.
+
+        * rendering/style/StyleCustomPropertyData.h: Update data member names.
+        (WebCore::StyleCustomPropertyData::operator==): Removed unnecessary reference
+        count churn.
+        (WebCore::StyleCustomPropertyData::setCustomPropertyValue): Take an rvalue
+        reference.
+        (WebCore::StyleCustomPropertyData::getCustomPropertyValue): Deleted.
+        (WebCore::StyleCustomPropertyData::values): Deleted.
+        (WebCore::StyleCustomPropertyData::hasCustomProperty): Deleted.
+        (WebCore::StyleCustomPropertyData::containsVariables): Deleted.
+        (WebCore::StyleCustomPropertyData::setContainsVariables): Deleted.
+
+        * rendering/style/StyleFilterData.cpp: Update data member names.
+        * rendering/style/StyleFilterData.h: Ditto.
+        * rendering/style/StyleFlexibleBoxData.cpp: Ditto.
+        * rendering/style/StyleFlexibleBoxData.h: Ditto.
+        * rendering/style/StyleGridData.cpp: Ditto.
+        * rendering/style/StyleGridData.h: Ditto.
+        * rendering/style/StyleGridItemData.cpp: Ditto.
+        * rendering/style/StyleGridItemData.h: Ditto.
+
+        * rendering/style/StyleGeneratedImage.cpp:
+        (WebCore::StyleGeneratedImage::cssValue): Removed no-longer-needed const_cast.
+        (WebCore::StyleGeneratedImage::imageSize): Ditto.
+        (WebCore::StyleGeneratedImage::image): Ditto.
+
+        * rendering/style/StyleInheritedData.cpp: Update data member names.
+        * rendering/style/StyleInheritedData.h: Ditto.
+        * rendering/style/StyleRareInheritedData.cpp: Ditto.
+        * rendering/style/StyleRareInheritedData.h: Ditto.
+        * rendering/style/StyleMultiColData.cpp: Ditto.
+        * rendering/style/StyleMultiColData.h: Ditto.
+        * rendering/style/StyleRareNonInheritedData.cpp: Ditto.
+        * rendering/style/StyleRareNonInheritedData.h: Ditto.
+        * rendering/style/StyleTransformData.cpp: Ditto.
+        * rendering/style/StyleTransformData.h: Ditto.
+        * rendering/style/StyleVisualData.cpp: Ditto.
+        * rendering/style/StyleVisualData.h: Ditto.
+
+        * style/StylePendingResources.cpp:
+        (WebCore::Style::loadPendingResources): Update since layers are references.
+
+
</ins><span class="cx"> 2017-01-13  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [WK2] Add diagnostic logging to measure WebGL usage
</span><span class="lines">@@ -2718,7 +3360,6 @@
</span><span class="cx">         this new class to handle the settings of the audio elements. The
</span><span class="cx">         class initializes the settings and the supportedSettings.
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> 2017-01-08  Konstantin Tokarev  &lt;annulen@yandex.ru&gt;
</span><span class="cx"> 
</span><span class="cx">         Introduce CPU(X86_SSE2) instead of various SSE2 checks
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmedialegacyLegacyCDMSessionClearKeyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;LegacyCDMSession.h&quot;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/text/WTFString.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesspeechSpeechSynthesisUtterancecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> 
</span><span class="cx"> SpeechSynthesisUtterance::SpeechSynthesisUtterance(ScriptExecutionContext&amp; context, const String&amp; text)
</span><span class="cx">     : ContextDestructionObserver(&amp;context)
</span><del>-    , m_platformUtterance(PlatformSpeechSynthesisUtterance::create(this))
</del><ins>+    , m_platformUtterance(PlatformSpeechSynthesisUtterance::create(*this))
</ins><span class="cx"> {
</span><span class="cx">     m_platformUtterance-&gt;setText(text);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesspeechSpeechSynthesisUtteranceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;SpeechSynthesisUtterance&gt; create(ScriptExecutionContext&amp;, const String&amp;);
</span><span class="cx"> 
</span><del>-    ~SpeechSynthesisUtterance();
</del><ins>+    virtual ~SpeechSynthesisUtterance();
</ins><span class="cx"> 
</span><span class="cx">     const String&amp; text() const { return m_platformUtterance-&gt;text(); }
</span><span class="cx">     void setText(const String&amp; text) { m_platformUtterance-&gt;setText(text); }
</span><span class="lines">@@ -62,21 +62,21 @@
</span><span class="cx">     double startTime() const { return m_platformUtterance-&gt;startTime(); }
</span><span class="cx">     void setStartTime(double startTime) { m_platformUtterance-&gt;setStartTime(startTime); }
</span><span class="cx"> 
</span><del>-    using RefCounted&lt;SpeechSynthesisUtterance&gt;::ref;
-    using RefCounted&lt;SpeechSynthesisUtterance&gt;::deref;
</del><ins>+    using RefCounted::ref;
+    using RefCounted::deref;
</ins><span class="cx"> 
</span><del>-    ScriptExecutionContext* scriptExecutionContext() const override { return ContextDestructionObserver::scriptExecutionContext(); }
-
</del><span class="cx">     PlatformSpeechSynthesisUtterance* platformUtterance() const { return m_platformUtterance.get(); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     SpeechSynthesisUtterance(ScriptExecutionContext&amp;, const String&amp;);
</span><ins>+
+    ScriptExecutionContext* scriptExecutionContext() const final { return ContextDestructionObserver::scriptExecutionContext(); }
+    EventTargetInterface eventTargetInterface() const final { return SpeechSynthesisUtteranceEventTargetInterfaceType; }
+    void refEventTarget() final { ref(); }
+    void derefEventTarget() final { deref(); }
+
</ins><span class="cx">     RefPtr&lt;PlatformSpeechSynthesisUtterance&gt; m_platformUtterance;
</span><span class="cx">     RefPtr&lt;SpeechSynthesisVoice&gt; m_voice;
</span><del>-
-    EventTargetInterface eventTargetInterface() const override { return SpeechSynthesisUtteranceEventTargetInterfaceType; }
-    void refEventTarget() override { ref(); }
-    void derefEventTarget() override { deref(); }
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMConverth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMConvert.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMConvert.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/bindings/js/JSDOMConvert.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -450,8 +450,8 @@
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename T&gt; inline T* getPtrOrRef(const T* p) { return const_cast&lt;T*&gt;(p); }
</span><span class="cx"> template &lt;typename T&gt; inline T&amp; getPtrOrRef(const T&amp; p) { return const_cast&lt;T&amp;&gt;(p); }
</span><del>-template &lt;typename T&gt; inline T* getPtrOrRef(const RefPtr&lt;T&gt;&amp; p) { return const_cast&lt;T*&gt;(p.get()); }
-template &lt;typename T&gt; inline T&amp; getPtrOrRef(const Ref&lt;T&gt;&amp; p) { return const_cast&lt;T&amp;&gt;(p.get()); }
</del><ins>+template &lt;typename T&gt; inline T* getPtrOrRef(const RefPtr&lt;T&gt;&amp; p) { return p.get(); }
+template &lt;typename T&gt; inline T&amp; getPtrOrRef(const Ref&lt;T&gt;&amp; p) { return p.get(); }
</ins><span class="cx"> 
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWrapperh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWrapper.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWrapper.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/bindings/js/JSDOMWrapper.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     typedef ImplementationClass DOMWrapped;
</span><span class="cx">     static constexpr bool isDOMWrapper = true;
</span><span class="cx"> 
</span><del>-    ImplementationClass&amp; wrapped() const { return const_cast&lt;ImplementationClass&amp;&gt;(m_wrapped.get()); }
</del><ins>+    ImplementationClass&amp; wrapped() const { return m_wrapped; }
</ins><span class="cx">     static ptrdiff_t offsetOfWrapped() { return OBJECT_OFFSETOF(JSDOMWrapper&lt;ImplementationClass&gt;, m_wrapped); }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScriptModuleLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScriptModuleLoader.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScriptModuleLoader.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/bindings/js/ScriptModuleLoader.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -53,10 +53,9 @@
</span><span class="cx"> ScriptModuleLoader::~ScriptModuleLoader()
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; loader : m_loaders)
</span><del>-        const_cast&lt;CachedModuleScriptLoader&amp;&gt;(loader.get()).clearClient();
</del><ins>+        loader-&gt;clearClient();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> static bool isRootModule(JSC::JSValue importerModuleKey)
</span><span class="cx"> {
</span><span class="cx">     return importerModuleKey.isSymbol() || importerModuleKey.isUndefined();
</span></span></pre></div>
<a id="trunkSourceWebCorecssBasicShapeFunctionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/BasicShapeFunctions.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/BasicShapeFunctions.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/BasicShapeFunctions.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -144,18 +144,16 @@
</span><span class="cx"> static LengthSize convertToLengthSize(const CSSToLengthConversionData&amp; conversionData, const CSSPrimitiveValue* value)
</span><span class="cx"> {
</span><span class="cx">     if (!value)
</span><del>-        return LengthSize(Length(0, Fixed), Length(0, Fixed));
</del><ins>+        return { { 0, Fixed }, { 0, Fixed } };
</ins><span class="cx"> 
</span><del>-    Pair* pair = value-&gt;pairValue();
-    return LengthSize(convertToLength(conversionData, pair-&gt;first()), convertToLength(conversionData, pair-&gt;second()));
</del><ins>+    auto&amp; pair = *value-&gt;pairValue();
+    return { convertToLength(conversionData, pair.first()), convertToLength(conversionData, pair.second()) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static BasicShapeCenterCoordinate convertToCenterCoordinate(const CSSToLengthConversionData&amp; conversionData, CSSPrimitiveValue* value)
</span><span class="cx"> {
</span><del>-    BasicShapeCenterCoordinate::Direction direction;
-    Length offset = Length(0, Fixed);
-
</del><span class="cx">     CSSValueID keyword = CSSValueTop;
</span><ins>+    Length offset { 0, Fixed };
</ins><span class="cx">     if (!value)
</span><span class="cx">         keyword = CSSValueCenter;
</span><span class="cx">     else if (value-&gt;isValueID())
</span><span class="lines">@@ -166,6 +164,7 @@
</span><span class="cx">     } else
</span><span class="cx">         offset = convertToLength(conversionData, value);
</span><span class="cx"> 
</span><ins>+    BasicShapeCenterCoordinate::Direction direction;
</ins><span class="cx">     switch (keyword) {
</span><span class="cx">     case CSSValueTop:
</span><span class="cx">     case CSSValueLeft:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2004 Zack Rusin &lt;zack@kde.org&gt;
</span><del>- * Copyright (C) 2004-2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2007 Alexey Proskuryakov &lt;ap@webkit.org&gt;
</span><span class="cx">  * Copyright (C) 2007 Nicholas Shanks &lt;webkit@nickshanks.com&gt;
</span><span class="cx">  * Copyright (C) 2011 Sencha, Inc. All rights reserved.
</span><span class="lines">@@ -606,11 +606,10 @@
</span><span class="cx"> static Ref&lt;CSSValue&gt; valueForNinePieceImageRepeat(const NinePieceImage&amp; image)
</span><span class="cx"> {
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><del>-    RefPtr&lt;CSSPrimitiveValue&gt; horizontalRepeat = cssValuePool.createIdentifierValue(valueForRepeatRule(image.horizontalRule()));
-
</del><ins>+    auto horizontalRepeat = cssValuePool.createIdentifierValue(valueForRepeatRule(image.horizontalRule()));
</ins><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; verticalRepeat;
</span><span class="cx">     if (image.horizontalRule() == image.verticalRule())
</span><del>-        verticalRepeat = horizontalRepeat;
</del><ins>+        verticalRepeat = horizontalRepeat.copyRef();
</ins><span class="cx">     else
</span><span class="cx">         verticalRepeat = cssValuePool.createIdentifierValue(valueForRepeatRule(image.verticalRule()));
</span><span class="cx">     return cssValuePool.createValue(Pair::create(WTFMove(horizontalRepeat), WTFMove(verticalRepeat)));
</span><span class="lines">@@ -688,20 +687,20 @@
</span><span class="cx">     return CSSReflectValue::create(direction.releaseNonNull(), offset.releaseNonNull(), valueForNinePieceImage(reflection-&gt;mask()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; createPositionListForLayer(CSSPropertyID propertyID, const FillLayer* layer, const RenderStyle&amp; style)
</del><ins>+static Ref&lt;CSSValueList&gt; createPositionListForLayer(CSSPropertyID propertyID, const FillLayer&amp; layer, const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><del>-    auto positionList = CSSValueList::createSpaceSeparated();
-    if (layer-&gt;isBackgroundXOriginSet()) {
</del><ins>+    auto list = CSSValueList::createSpaceSeparated();
+    if (layer.isBackgroundXOriginSet()) {
</ins><span class="cx">         ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPosition || propertyID == CSSPropertyWebkitMaskPosition);
</span><del>-        positionList.get().append(CSSValuePool::singleton().createValue(layer-&gt;backgroundXOrigin()));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createValue(layer.backgroundXOrigin()));
</ins><span class="cx">     }
</span><del>-    positionList.get().append(zoomAdjustedPixelValueForLength(layer-&gt;xPosition(), style));
-    if (layer-&gt;isBackgroundYOriginSet()) {
</del><ins>+    list-&gt;append(zoomAdjustedPixelValueForLength(layer.xPosition(), style));
+    if (layer.isBackgroundYOriginSet()) {
</ins><span class="cx">         ASSERT(propertyID == CSSPropertyBackgroundPosition || propertyID == CSSPropertyWebkitMaskPosition);
</span><del>-        positionList.get().append(CSSValuePool::singleton().createValue(layer-&gt;backgroundYOrigin()));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createValue(layer.backgroundYOrigin()));
</ins><span class="cx">     }
</span><del>-    positionList.get().append(zoomAdjustedPixelValueForLength(layer-&gt;yPosition(), style));
-    return positionList;
</del><ins>+    list-&gt;append(zoomAdjustedPixelValueForLength(layer.yPosition(), style));
+    return list;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static RefPtr&lt;CSSValue&gt; positionOffsetValue(const RenderStyle&amp; style, CSSPropertyID propertyID)
</span><span class="lines">@@ -765,39 +764,38 @@
</span><span class="cx">     return zoomAdjustedPixelValue(valueForLength(length, 0), style);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; getBorderRadiusCornerValues(const LengthSize&amp; radius, const RenderStyle&amp; style)
</del><ins>+static Ref&lt;CSSValueList&gt; borderRadiusCornerValues(const LengthSize&amp; radius, const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><del>-    list.get().append(percentageOrZoomAdjustedValue(radius.width(), style));
-    list.get().append(percentageOrZoomAdjustedValue(radius.height(), style));
</del><ins>+    list-&gt;append(percentageOrZoomAdjustedValue(radius.width, style));
+    list-&gt;append(percentageOrZoomAdjustedValue(radius.height, style));
</ins><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValue&gt; getBorderRadiusCornerValue(const LengthSize&amp; radius, const RenderStyle&amp; style)
</del><ins>+static Ref&lt;CSSValue&gt; borderRadiusCornerValue(const LengthSize&amp; radius, const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><del>-    if (radius.width() == radius.height())
-        return percentageOrZoomAdjustedValue(radius.width(), style);
-
-    return getBorderRadiusCornerValues(radius, style);
</del><ins>+    if (radius.width == radius.height)
+        return percentageOrZoomAdjustedValue(radius.width, style);
+    return borderRadiusCornerValues(radius, style);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; getBorderRadiusShorthandValue(const RenderStyle&amp; style)
</del><ins>+static Ref&lt;CSSValueList&gt; borderRadiusShorthandValue(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     auto list = CSSValueList::createSlashSeparated();
</span><del>-    bool showHorizontalBottomLeft = style.borderTopRightRadius().width() != style.borderBottomLeftRadius().width();
-    bool showHorizontalBottomRight = showHorizontalBottomLeft || (style.borderBottomRightRadius().width() != style.borderTopLeftRadius().width());
-    bool showHorizontalTopRight = showHorizontalBottomRight || (style.borderTopRightRadius().width() != style.borderTopLeftRadius().width());
</del><ins>+    bool showHorizontalBottomLeft = style.borderTopRightRadius().width != style.borderBottomLeftRadius().width;
+    bool showHorizontalBottomRight = showHorizontalBottomLeft || (style.borderBottomRightRadius().width != style.borderTopLeftRadius().width);
+    bool showHorizontalTopRight = showHorizontalBottomRight || (style.borderTopRightRadius().width != style.borderTopLeftRadius().width);
</ins><span class="cx"> 
</span><del>-    bool showVerticalBottomLeft = style.borderTopRightRadius().height() != style.borderBottomLeftRadius().height();
-    bool showVerticalBottomRight = showVerticalBottomLeft || (style.borderBottomRightRadius().height() != style.borderTopLeftRadius().height());
-    bool showVerticalTopRight = showVerticalBottomRight || (style.borderTopRightRadius().height() != style.borderTopLeftRadius().height());
</del><ins>+    bool showVerticalBottomLeft = style.borderTopRightRadius().height != style.borderBottomLeftRadius().height;
+    bool showVerticalBottomRight = showVerticalBottomLeft || (style.borderBottomRightRadius().height != style.borderTopLeftRadius().height);
+    bool showVerticalTopRight = showVerticalBottomRight || (style.borderTopRightRadius().height != style.borderTopLeftRadius().height);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;CSSValueList&gt; topLeftRadius = getBorderRadiusCornerValues(style.borderTopLeftRadius(), style);
-    RefPtr&lt;CSSValueList&gt; topRightRadius = getBorderRadiusCornerValues(style.borderTopRightRadius(), style);
-    RefPtr&lt;CSSValueList&gt; bottomRightRadius = getBorderRadiusCornerValues(style.borderBottomRightRadius(), style);
-    RefPtr&lt;CSSValueList&gt; bottomLeftRadius = getBorderRadiusCornerValues(style.borderBottomLeftRadius(), style);
</del><ins>+    auto topLeftRadius = borderRadiusCornerValues(style.borderTopLeftRadius(), style);
+    auto topRightRadius = borderRadiusCornerValues(style.borderTopRightRadius(), style);
+    auto bottomRightRadius = borderRadiusCornerValues(style.borderBottomRightRadius(), style);
+    auto bottomLeftRadius = borderRadiusCornerValues(style.borderBottomLeftRadius(), style);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;CSSValueList&gt; horizontalRadii = CSSValueList::createSpaceSeparated();
</del><ins>+    auto horizontalRadii = CSSValueList::createSpaceSeparated();
</ins><span class="cx">     horizontalRadii-&gt;append(*topLeftRadius-&gt;item(0));
</span><span class="cx">     if (showHorizontalTopRight)
</span><span class="cx">         horizontalRadii-&gt;append(*topRightRadius-&gt;item(0));
</span><span class="lines">@@ -806,9 +804,9 @@
</span><span class="cx">     if (showHorizontalBottomLeft)
</span><span class="cx">         horizontalRadii-&gt;append(*bottomLeftRadius-&gt;item(0));
</span><span class="cx"> 
</span><del>-    list.get().append(horizontalRadii.releaseNonNull());
</del><ins>+    list-&gt;append(WTFMove(horizontalRadii));
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;CSSValueList&gt; verticalRadiiList = CSSValueList::createSpaceSeparated();
</del><ins>+    auto verticalRadiiList = CSSValueList::createSpaceSeparated();
</ins><span class="cx">     verticalRadiiList-&gt;append(*topLeftRadius-&gt;item(1));
</span><span class="cx">     if (showVerticalTopRight)
</span><span class="cx">         verticalRadiiList-&gt;append(*topRightRadius-&gt;item(1));
</span><span class="lines">@@ -817,8 +815,8 @@
</span><span class="cx">     if (showVerticalBottomLeft)
</span><span class="cx">         verticalRadiiList-&gt;append(*bottomLeftRadius-&gt;item(1));
</span><span class="cx"> 
</span><del>-    if (!verticalRadiiList-&gt;equals(downcast&lt;CSSValueList&gt;(*list.get().item(0))))
-        list.get().append(verticalRadiiList.releaseNonNull());
</del><ins>+    if (!verticalRadiiList-&gt;equals(downcast&lt;CSSValueList&gt;(*list-&gt;item(0))))
+        list-&gt;append(WTFMove(verticalRadiiList));
</ins><span class="cx"> 
</span><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="lines">@@ -887,7 +885,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Need to print out individual functions (https://bugs.webkit.org/show_bug.cgi?id=23924)
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><del>-    list.get().append(matrixTransformValue(transform, style));
</del><ins>+    list-&gt;append(matrixTransformValue(transform, style));
</ins><span class="cx">     return WTFMove(list);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -934,7 +932,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (filterOperation.type() == FilterOperation::REFERENCE) {
</span><span class="cx">             ReferenceFilterOperation&amp; referenceOperation = downcast&lt;ReferenceFilterOperation&gt;(filterOperation);
</span><del>-            list.get().append(cssValuePool.createValue(referenceOperation.url(), CSSPrimitiveValue::CSS_URI));
</del><ins>+            list-&gt;append(cssValuePool.createValue(referenceOperation.url(), CSSPrimitiveValue::CSS_URI));
</ins><span class="cx">         } else {
</span><span class="cx">             RefPtr&lt;CSSFunctionValue&gt; filterValue;
</span><span class="cx">             switch (filterOperation.type()) {
</span><span class="lines">@@ -996,7 +994,7 @@
</span><span class="cx">                 filterValue = CSSFunctionValue::create(CSSValueInvalid);
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><del>-            list.get().append(filterValue.releaseNonNull());
</del><ins>+            list-&gt;append(filterValue.releaseNonNull());
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     return WTFMove(list);
</span><span class="lines">@@ -1166,7 +1164,7 @@
</span><span class="cx">     } else {
</span><span class="cx">         for (unsigned i = 0; i &lt; trackSizes.size(); ++i) {
</span><span class="cx">             addValuesForNamedGridLinesAtIndex(collector, i, list.get());
</span><del>-            list.get().append(specifiedValueForGridTrackSize(trackSizes[i], style));
</del><ins>+            list-&gt;append(specifiedValueForGridTrackSize(trackSizes[i], style));
</ins><span class="cx">         }
</span><span class="cx">         insertionIndex = trackSizes.size();
</span><span class="cx">     }
</span><span class="lines">@@ -1187,13 +1185,13 @@
</span><span class="cx"> 
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><span class="cx">     if (position.isSpan()) {
</span><del>-        list.get().append(cssValuePool.createIdentifierValue(CSSValueSpan));
-        list.get().append(cssValuePool.createValue(position.spanPosition(), CSSPrimitiveValue::CSS_NUMBER));
</del><ins>+        list-&gt;append(cssValuePool.createIdentifierValue(CSSValueSpan));
+        list-&gt;append(cssValuePool.createValue(position.spanPosition(), CSSPrimitiveValue::CSS_NUMBER));
</ins><span class="cx">     } else
</span><del>-        list.get().append(cssValuePool.createValue(position.integerPosition(), CSSPrimitiveValue::CSS_NUMBER));
</del><ins>+        list-&gt;append(cssValuePool.createValue(position.integerPosition(), CSSPrimitiveValue::CSS_NUMBER));
</ins><span class="cx"> 
</span><span class="cx">     if (!position.namedGridLine().isNull())
</span><del>-        list.get().append(cssValuePool.createValue(position.namedGridLine(), CSSPrimitiveValue::CSS_STRING));
</del><ins>+        list-&gt;append(cssValuePool.createValue(position.namedGridLine(), CSSPrimitiveValue::CSS_STRING));
</ins><span class="cx">     return WTFMove(list);
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="lines">@@ -1207,14 +1205,14 @@
</span><span class="cx">     return CSSValuePool::singleton().createValue(getPropertyNameString(animation.property()), CSSPrimitiveValue::CSS_STRING);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; getTransitionPropertyValue(const AnimationList* animList)
</del><ins>+static Ref&lt;CSSValueList&gt; transitionPropertyValue(const AnimationList* animationList)
</ins><span class="cx"> {
</span><span class="cx">     auto list = CSSValueList::createCommaSeparated();
</span><del>-    if (animList) {
-        for (size_t i = 0; i &lt; animList-&gt;size(); ++i)
-            list.get().append(createTransitionPropertyValue(animList-&gt;animation(i)));
</del><ins>+    if (animationList) {
+        for (size_t i = 0; i &lt; animationList-&gt;size(); ++i)
+            list-&gt;append(createTransitionPropertyValue(animationList-&gt;animation(i)));
</ins><span class="cx">     } else
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueAll));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueAll));
</ins><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1242,7 +1240,7 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValue&gt; getWillChangePropertyValue(const WillChangeData* willChangeData)
</del><ins>+static Ref&lt;CSSValue&gt; willChangePropertyValue(const WillChangeData* willChangeData)
</ins><span class="cx"> {
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><span class="cx">     if (!willChangeData || !willChangeData-&gt;numFeatures())
</span><span class="lines">@@ -1253,13 +1251,13 @@
</span><span class="cx">         WillChangeData::FeaturePropertyPair feature = willChangeData-&gt;featureAt(i);
</span><span class="cx">         switch (feature.first) {
</span><span class="cx">         case WillChangeData::ScrollPosition:
</span><del>-            list.get().append(cssValuePool.createIdentifierValue(CSSValueScrollPosition));
</del><ins>+            list-&gt;append(cssValuePool.createIdentifierValue(CSSValueScrollPosition));
</ins><span class="cx">             break;
</span><span class="cx">         case WillChangeData::Contents:
</span><del>-            list.get().append(cssValuePool.createIdentifierValue(CSSValueContents));
</del><ins>+            list-&gt;append(cssValuePool.createIdentifierValue(CSSValueContents));
</ins><span class="cx">             break;
</span><span class="cx">         case WillChangeData::Property:
</span><del>-            list.get().append(cssValuePool.createIdentifierValue(feature.second));
</del><ins>+            list-&gt;append(cssValuePool.createIdentifierValue(feature.second));
</ins><span class="cx">             break;
</span><span class="cx">         case WillChangeData::Invalid:
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><span class="lines">@@ -1456,39 +1454,39 @@
</span><span class="cx">     return WTFMove(valueList);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; getDelayValue(const AnimationList* animList)
</del><ins>+static Ref&lt;CSSValueList&gt; delayValue(const AnimationList* animationList)
</ins><span class="cx"> {
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><span class="cx">     auto list = CSSValueList::createCommaSeparated();
</span><del>-    if (animList) {
-        for (size_t i = 0; i &lt; animList-&gt;size(); ++i)
-            list.get().append(cssValuePool.createValue(animList-&gt;animation(i).delay(), CSSPrimitiveValue::CSS_S));
</del><ins>+    if (animationList) {
+        for (size_t i = 0; i &lt; animationList-&gt;size(); ++i)
+            list-&gt;append(cssValuePool.createValue(animationList-&gt;animation(i).delay(), CSSPrimitiveValue::CSS_S));
</ins><span class="cx">     } else {
</span><span class="cx">         // Note that initialAnimationDelay() is used for both transitions and animations
</span><del>-        list.get().append(cssValuePool.createValue(Animation::initialDelay(), CSSPrimitiveValue::CSS_S));
</del><ins>+        list-&gt;append(cssValuePool.createValue(Animation::initialDelay(), CSSPrimitiveValue::CSS_S));
</ins><span class="cx">     }
</span><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; getDurationValue(const AnimationList* animList)
</del><ins>+static Ref&lt;CSSValueList&gt; durationValue(const AnimationList* animationList)
</ins><span class="cx"> {
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><span class="cx">     auto list = CSSValueList::createCommaSeparated();
</span><del>-    if (animList) {
-        for (size_t i = 0; i &lt; animList-&gt;size(); ++i)
-            list.get().append(cssValuePool.createValue(animList-&gt;animation(i).duration(), CSSPrimitiveValue::CSS_S));
</del><ins>+    if (animationList) {
+        for (size_t i = 0; i &lt; animationList-&gt;size(); ++i)
+            list-&gt;append(cssValuePool.createValue(animationList-&gt;animation(i).duration(), CSSPrimitiveValue::CSS_S));
</ins><span class="cx">     } else {
</span><span class="cx">         // Note that initialAnimationDuration() is used for both transitions and animations
</span><del>-        list.get().append(cssValuePool.createValue(Animation::initialDuration(), CSSPrimitiveValue::CSS_S));
</del><ins>+        list-&gt;append(cssValuePool.createValue(Animation::initialDuration(), CSSPrimitiveValue::CSS_S));
</ins><span class="cx">     }
</span><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValue&gt; createTimingFunctionValue(const TimingFunction* timingFunction)
</del><ins>+static Ref&lt;CSSValue&gt; createTimingFunctionValue(const TimingFunction&amp; timingFunction)
</ins><span class="cx"> {
</span><del>-    switch (timingFunction-&gt;type()) {
</del><ins>+    switch (timingFunction.type()) {
</ins><span class="cx">     case TimingFunction::CubicBezierFunction: {
</span><del>-        auto&amp; function = *static_cast&lt;const CubicBezierTimingFunction*&gt;(timingFunction);
</del><ins>+        auto&amp; function = static_cast&lt;const CubicBezierTimingFunction&amp;&gt;(timingFunction);
</ins><span class="cx">         if (function.timingFunctionPreset() != CubicBezierTimingFunction::Custom) {
</span><span class="cx">             CSSValueID valueId = CSSValueInvalid;
</span><span class="cx">             switch (function.timingFunctionPreset()) {
</span><span class="lines">@@ -1511,37 +1509,38 @@
</span><span class="cx">         return CSSCubicBezierTimingFunctionValue::create(function.x1(), function.y1(), function.x2(), function.y2());
</span><span class="cx">     }
</span><span class="cx">     case TimingFunction::StepsFunction: {
</span><del>-        auto&amp; function = *static_cast&lt;const StepsTimingFunction*&gt;(timingFunction);
</del><ins>+        auto&amp; function = static_cast&lt;const StepsTimingFunction&amp;&gt;(timingFunction);
</ins><span class="cx">         return CSSStepsTimingFunctionValue::create(function.numberOfSteps(), function.stepAtStart());
</span><span class="cx">     }
</span><span class="cx">     case TimingFunction::SpringFunction: {
</span><del>-        auto&amp; function = *static_cast&lt;const SpringTimingFunction*&gt;(timingFunction);
</del><ins>+        auto&amp; function = static_cast&lt;const SpringTimingFunction&amp;&gt;(timingFunction);
</ins><span class="cx">         return CSSSpringTimingFunctionValue::create(function.mass(), function.stiffness(), function.damping(), function.initialVelocity());
</span><span class="cx">     }
</span><span class="cx">     default:
</span><del>-        ASSERT(timingFunction-&gt;type() == TimingFunction::LinearFunction);
</del><ins>+        ASSERT(timingFunction.type() == TimingFunction::LinearFunction);
</ins><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueLinear);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; getTimingFunctionValue(const AnimationList* animList)
</del><ins>+static Ref&lt;CSSValueList&gt; timingFunctionValue(const AnimationList* animationList)
</ins><span class="cx"> {
</span><span class="cx">     auto list = CSSValueList::createCommaSeparated();
</span><del>-    if (animList) {
-        for (size_t i = 0; i &lt; animList-&gt;size(); ++i)
-            list.get().append(createTimingFunctionValue(animList-&gt;animation(i).timingFunction().get()));
</del><ins>+    if (animationList) {
+        for (size_t i = 0; i &lt; animationList-&gt;size(); ++i)
+            list-&gt;append(createTimingFunctionValue(*animationList-&gt;animation(i).timingFunction()));
</ins><span class="cx">     } else
</span><span class="cx">         // Note that initialAnimationTimingFunction() is used for both transitions and animations
</span><del>-        list.get().append(createTimingFunctionValue(Animation::initialTimingFunction().get()));
</del><ins>+        list-&gt;append(createTimingFunctionValue(Animation::initialTimingFunction()));
</ins><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><del>-static Ref&lt;CSSValue&gt; createAnimationTriggerValue(const AnimationTrigger* trigger, const RenderStyle&amp; style)
</del><ins>+
+static Ref&lt;CSSValue&gt; createAnimationTriggerValue(const AnimationTrigger&amp; trigger, const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><del>-    switch (trigger-&gt;type()) {
</del><ins>+    switch (trigger.type()) {
</ins><span class="cx">     case AnimationTrigger::AnimationTriggerType::ScrollAnimationTriggerType: {
</span><del>-        auto&amp; scrollAnimationTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*trigger);
</del><ins>+        auto&amp; scrollAnimationTrigger = downcast&lt;ScrollAnimationTrigger&gt;(trigger);
</ins><span class="cx">         if (scrollAnimationTrigger.endValue().isAuto())
</span><span class="cx">             return CSSAnimationTriggerScrollValue::create(zoomAdjustedPixelValueForLength(scrollAnimationTrigger.startValue(), style));
</span><span class="cx">         return CSSAnimationTriggerScrollValue::create(zoomAdjustedPixelValueForLength(scrollAnimationTrigger.startValue(), style),
</span><span class="lines">@@ -1548,22 +1547,22 @@
</span><span class="cx">                                                       zoomAdjustedPixelValueForLength(scrollAnimationTrigger.endValue(), style));
</span><span class="cx">     }
</span><span class="cx">     default:
</span><del>-        ASSERT(trigger-&gt;type() == AnimationTrigger::AnimationTriggerType::AutoAnimationTriggerType);
</del><ins>+        ASSERT(trigger.type() == AnimationTrigger::AnimationTriggerType::AutoAnimationTriggerType);
</ins><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueAuto);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; getAnimationTriggerValue(const AnimationList* animList, const RenderStyle&amp; style)
</del><ins>+static Ref&lt;CSSValueList&gt; animationTriggerValue(const AnimationList* animationList, const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     auto list = CSSValueList::createCommaSeparated();
</span><del>-    if (animList) {
-        for (size_t i = 0; i &lt; animList-&gt;size(); ++i)
-            list.get().append(createAnimationTriggerValue(animList-&gt;animation(i).trigger().get(), style));
</del><ins>+    if (animationList) {
+        for (size_t i = 0; i &lt; animationList-&gt;size(); ++i)
+            list-&gt;append(createAnimationTriggerValue(*animationList-&gt;animation(i).trigger(), style));
</ins><span class="cx">     } else
</span><del>-        list.get().append(createAnimationTriggerValue(Animation::initialTrigger().get(), style));
-
</del><ins>+        list-&gt;append(createAnimationTriggerValue(Animation::initialTrigger().get(), style));
</ins><span class="cx">     return list;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> static Ref&lt;CSSValue&gt; createLineBoxContainValue(unsigned lineBoxContain)
</span><span class="lines">@@ -1700,7 +1699,7 @@
</span><span class="cx"> {
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><span class="cx">     // Blink value is ignored.
</span><del>-    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+    auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">     if (textDecoration &amp; TextDecorationUnderline)
</span><span class="cx">         list-&gt;append(cssValuePool.createIdentifierValue(CSSValueUnderline));
</span><span class="cx">     if (textDecoration &amp; TextDecorationOverline)
</span><span class="lines">@@ -1714,7 +1713,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!list-&gt;length())
</span><span class="cx">         return cssValuePool.createIdentifierValue(CSSValueNone);
</span><del>-    return list.releaseNonNull();
</del><ins>+    return WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Ref&lt;CSSValue&gt; renderTextDecorationStyleFlagsToCSSValue(TextDecorationStyle textDecorationStyle)
</span><span class="lines">@@ -1758,7 +1757,7 @@
</span><span class="cx">     ASSERT(!((textEmphasisPosition &amp; TextEmphasisPositionOver) &amp;&amp; (textEmphasisPosition &amp; TextEmphasisPositionUnder)));
</span><span class="cx">     ASSERT(!((textEmphasisPosition &amp; TextEmphasisPositionLeft) &amp;&amp; (textEmphasisPosition &amp; TextEmphasisPositionRight)));
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><del>-    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+    auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">     if (textEmphasisPosition &amp; TextEmphasisPositionOver)
</span><span class="cx">         list-&gt;append(cssValuePool.createIdentifierValue(CSSValueOver));
</span><span class="cx">     if (textEmphasisPosition &amp; TextEmphasisPositionUnder)
</span><span class="lines">@@ -1767,16 +1766,15 @@
</span><span class="cx">         list-&gt;append(cssValuePool.createIdentifierValue(CSSValueLeft));
</span><span class="cx">     if (textEmphasisPosition &amp; TextEmphasisPositionRight)
</span><span class="cx">         list-&gt;append(cssValuePool.createIdentifierValue(CSSValueRight));
</span><del>-
</del><span class="cx">     if (!list-&gt;length())
</span><span class="cx">         return cssValuePool.createIdentifierValue(CSSValueNone);
</span><del>-    return list.releaseNonNull();
</del><ins>+    return WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Ref&lt;CSSValue&gt; hangingPunctuationToCSSValue(HangingPunctuation hangingPunctuation)
</span><span class="cx"> {
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><del>-    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+    auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">     if (hangingPunctuation &amp; FirstHangingPunctuation)
</span><span class="cx">         list-&gt;append(cssValuePool.createIdentifierValue(CSSValueFirst));
</span><span class="cx">     if (hangingPunctuation &amp; AllowEndHangingPunctuation)
</span><span class="lines">@@ -1787,7 +1785,7 @@
</span><span class="cx">         list-&gt;append(cssValuePool.createIdentifierValue(CSSValueLast));
</span><span class="cx">     if (!list-&gt;length())
</span><span class="cx">         return cssValuePool.createIdentifierValue(CSSValueNone);
</span><del>-    return list.releaseNonNull();
</del><ins>+    return WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> static Ref&lt;CSSValue&gt; fillRepeatToCSSValue(EFillRepeat xRepeat, EFillRepeat yRepeat)
</span><span class="lines">@@ -1803,8 +1801,8 @@
</span><span class="cx">         return cssValuePool.createIdentifierValue(CSSValueRepeatY);
</span><span class="cx"> 
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><del>-    list.get().append(cssValuePool.createValue(xRepeat));
-    list.get().append(cssValuePool.createValue(yRepeat));
</del><ins>+    list-&gt;append(cssValuePool.createValue(xRepeat));
+    list-&gt;append(cssValuePool.createValue(yRepeat));
</ins><span class="cx">     return WTFMove(list);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1827,40 +1825,40 @@
</span><span class="cx">     if (fillSize.type == Cover)
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueCover);
</span><span class="cx"> 
</span><del>-    if (fillSize.size.height().isAuto())
-        return zoomAdjustedPixelValueForLength(fillSize.size.width(), style);
</del><ins>+    if (fillSize.size.height.isAuto())
+        return zoomAdjustedPixelValueForLength(fillSize.size.width, style);
</ins><span class="cx"> 
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><del>-    list.get().append(zoomAdjustedPixelValueForLength(fillSize.size.width(), style));
-    list.get().append(zoomAdjustedPixelValueForLength(fillSize.size.height(), style));
</del><ins>+    list-&gt;append(zoomAdjustedPixelValueForLength(fillSize.size.width, style));
+    list-&gt;append(zoomAdjustedPixelValueForLength(fillSize.size.height, style));
</ins><span class="cx">     return WTFMove(list);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValue&gt; altTextToCSSValue(const RenderStyle* style)
</del><ins>+static Ref&lt;CSSValue&gt; altTextToCSSValue(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><del>-    return CSSValuePool::singleton().createValue(style-&gt;contentAltText(), CSSPrimitiveValue::CSS_STRING);
</del><ins>+    return CSSValuePool::singleton().createValue(style.contentAltText(), CSSPrimitiveValue::CSS_STRING);
</ins><span class="cx"> }
</span><span class="cx">     
</span><del>-static Ref&lt;CSSValueList&gt; contentToCSSValue(const RenderStyle* style)
</del><ins>+static Ref&lt;CSSValueList&gt; contentToCSSValue(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><del>-    for (const ContentData* contentData = style-&gt;contentData(); contentData; contentData = contentData-&gt;next()) {
</del><ins>+    for (auto* contentData = style.contentData(); contentData; contentData = contentData-&gt;next()) {
</ins><span class="cx">         if (is&lt;CounterContentData&gt;(*contentData))
</span><del>-            list.get().append(cssValuePool.createValue(downcast&lt;CounterContentData&gt;(*contentData).counter().identifier(), CSSPrimitiveValue::CSS_COUNTER_NAME));
</del><ins>+            list-&gt;append(cssValuePool.createValue(downcast&lt;CounterContentData&gt;(*contentData).counter().identifier(), CSSPrimitiveValue::CSS_COUNTER_NAME));
</ins><span class="cx">         else if (is&lt;ImageContentData&gt;(*contentData))
</span><del>-            list.get().append(downcast&lt;ImageContentData&gt;(*contentData).image().cssValue());
</del><ins>+            list-&gt;append(downcast&lt;ImageContentData&gt;(*contentData).image().cssValue());
</ins><span class="cx">         else if (is&lt;TextContentData&gt;(*contentData))
</span><del>-            list.get().append(cssValuePool.createValue(downcast&lt;TextContentData&gt;(*contentData).text(), CSSPrimitiveValue::CSS_STRING));
</del><ins>+            list-&gt;append(cssValuePool.createValue(downcast&lt;TextContentData&gt;(*contentData).text(), CSSPrimitiveValue::CSS_STRING));
</ins><span class="cx">     }
</span><del>-    if (style-&gt;hasFlowFrom())
-        list.get().append(cssValuePool.createValue(style-&gt;regionThread(), CSSPrimitiveValue::CSS_STRING));
</del><ins>+    if (style.hasFlowFrom())
+        list-&gt;append(cssValuePool.createValue(style.regionThread(), CSSPrimitiveValue::CSS_STRING));
</ins><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValue&gt; counterToCSSValue(const RenderStyle* style, CSSPropertyID propertyID)
</del><ins>+static Ref&lt;CSSValue&gt; counterToCSSValue(const RenderStyle&amp; style, CSSPropertyID propertyID)
</ins><span class="cx"> {
</span><del>-    const CounterDirectiveMap* map = style-&gt;counterDirectives();
</del><ins>+    auto* map = style.counterDirectives();
</ins><span class="cx">     if (!map)
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueNone);
</span><span class="cx"> 
</span><span class="lines">@@ -1883,14 +1881,21 @@
</span><span class="cx">     LOG_ERROR(&quot;WebKit does not yet implement getComputedStyle for '%s'.&quot;, getPropertyName(propertyID));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValueList&gt; fontFamilyFromStyle(const RenderStyle* style)
</del><ins>+static Ref&lt;CSSValueList&gt; fontFamilyListFromStyle(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><span class="cx">     auto list = CSSValueList::createCommaSeparated();
</span><del>-    for (unsigned i = 0; i &lt; style-&gt;fontCascade().familyCount(); ++i)
-        list.get().append(valueForFamily(style-&gt;fontCascade().familyAt(i)));
</del><ins>+    for (unsigned i = 0; i &lt; style.fontCascade().familyCount(); ++i)
+        list-&gt;append(valueForFamily(style.fontCascade().familyAt(i)));
</ins><span class="cx">     return list;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static Ref&lt;CSSValue&gt; fontFamilyFromStyle(const RenderStyle&amp; style)
+{
+    if (style.fontCascade().familyCount() == 1)
+        return valueForFamily(style.fontCascade().familyAt(0));
+    return fontFamilyListFromStyle(style);
+}
+
</ins><span class="cx"> static Ref&lt;CSSPrimitiveValue&gt; lineHeightFromStyle(const RenderStyle&amp; style)
</span><span class="cx"> {
</span><span class="cx">     Length length = style.lineHeight();
</span><span class="lines">@@ -1911,194 +1916,194 @@
</span><span class="cx">     return zoomAdjustedPixelValue(style.fontDescription().computedSize(), style);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSPrimitiveValue&gt; fontStyleFromStyle(const RenderStyle* style)
</del><ins>+static Ref&lt;CSSPrimitiveValue&gt; fontStyleFromStyle(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><del>-    if (style-&gt;fontDescription().italic())
</del><ins>+    if (style.fontDescription().italic())
</ins><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueItalic);
</span><span class="cx">     return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSValue&gt; fontVariantFromStyle(const RenderStyle* style)
</del><ins>+static Ref&lt;CSSValue&gt; fontVariantFromStyle(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><del>-    if (style-&gt;fontDescription().variantSettings().isAllNormal())
</del><ins>+    if (style.fontDescription().variantSettings().isAllNormal())
</ins><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValueNormal);
</span><span class="cx"> 
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantCommonLigatures()) {
</del><ins>+    switch (style.fontDescription().variantCommonLigatures()) {
</ins><span class="cx">     case FontVariantLigatures::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::Yes:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueCommonLigatures));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueCommonLigatures));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::No:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoCommonLigatures));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoCommonLigatures));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantDiscretionaryLigatures()) {
</del><ins>+    switch (style.fontDescription().variantDiscretionaryLigatures()) {
</ins><span class="cx">     case FontVariantLigatures::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::Yes:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiscretionaryLigatures));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiscretionaryLigatures));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::No:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoDiscretionaryLigatures));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoDiscretionaryLigatures));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantHistoricalLigatures()) {
</del><ins>+    switch (style.fontDescription().variantHistoricalLigatures()) {
</ins><span class="cx">     case FontVariantLigatures::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::Yes:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalLigatures));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalLigatures));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::No:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoHistoricalLigatures));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoHistoricalLigatures));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantContextualAlternates()) {
</del><ins>+    switch (style.fontDescription().variantContextualAlternates()) {
</ins><span class="cx">     case FontVariantLigatures::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::Yes:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueContextual));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueContextual));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantLigatures::No:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoContextual));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueNoContextual));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantPosition()) {
</del><ins>+    switch (style.fontDescription().variantPosition()) {
</ins><span class="cx">     case FontVariantPosition::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantPosition::Subscript:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSub));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueSub));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantPosition::Superscript:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSuper));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueSuper));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantCaps()) {
</del><ins>+    switch (style.fontDescription().variantCaps()) {
</ins><span class="cx">     case FontVariantCaps::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantCaps::Small:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantCaps::AllSmall:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueAllSmallCaps));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueAllSmallCaps));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantCaps::Petite:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValuePetiteCaps));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValuePetiteCaps));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantCaps::AllPetite:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueAllPetiteCaps));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueAllPetiteCaps));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantCaps::Unicase:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueUnicase));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueUnicase));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantCaps::Titling:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueTitlingCaps));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueTitlingCaps));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantNumericFigure()) {
</del><ins>+    switch (style.fontDescription().variantNumericFigure()) {
</ins><span class="cx">     case FontVariantNumericFigure::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericFigure::LiningNumbers:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueLiningNums));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueLiningNums));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericFigure::OldStyleNumbers:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueOldstyleNums));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueOldstyleNums));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantNumericSpacing()) {
</del><ins>+    switch (style.fontDescription().variantNumericSpacing()) {
</ins><span class="cx">     case FontVariantNumericSpacing::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericSpacing::ProportionalNumbers:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalNums));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalNums));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericSpacing::TabularNumbers:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueTabularNums));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueTabularNums));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantNumericFraction()) {
</del><ins>+    switch (style.fontDescription().variantNumericFraction()) {
</ins><span class="cx">     case FontVariantNumericFraction::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericFraction::DiagonalFractions:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiagonalFractions));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueDiagonalFractions));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericFraction::StackedFractions:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueStackedFractions));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueStackedFractions));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantNumericOrdinal()) {
</del><ins>+    switch (style.fontDescription().variantNumericOrdinal()) {
</ins><span class="cx">     case FontVariantNumericOrdinal::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericOrdinal::Yes:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueOrdinal));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueOrdinal));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantNumericSlashedZero()) {
</del><ins>+    switch (style.fontDescription().variantNumericSlashedZero()) {
</ins><span class="cx">     case FontVariantNumericSlashedZero::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantNumericSlashedZero::Yes:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSlashedZero));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueSlashedZero));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantAlternates()) {
</del><ins>+    switch (style.fontDescription().variantAlternates()) {
</ins><span class="cx">     case FontVariantAlternates::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantAlternates::HistoricalForms:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalForms));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueHistoricalForms));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantEastAsianVariant()) {
</del><ins>+    switch (style.fontDescription().variantEastAsianVariant()) {
</ins><span class="cx">     case FontVariantEastAsianVariant::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianVariant::Jis78:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis78));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis78));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianVariant::Jis83:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis83));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis83));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianVariant::Jis90:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis90));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis90));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianVariant::Jis04:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis04));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueJis04));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianVariant::Simplified:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSimplified));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueSimplified));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianVariant::Traditional:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueTraditional));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueTraditional));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantEastAsianWidth()) {
</del><ins>+    switch (style.fontDescription().variantEastAsianWidth()) {
</ins><span class="cx">     case FontVariantEastAsianWidth::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianWidth::Full:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueFullWidth));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueFullWidth));
</ins><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianWidth::Proportional:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalWidth));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueProportionalWidth));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    switch (style-&gt;fontDescription().variantEastAsianRuby()) {
</del><ins>+    switch (style.fontDescription().variantEastAsianRuby()) {
</ins><span class="cx">     case FontVariantEastAsianRuby::Normal:
</span><span class="cx">         break;
</span><span class="cx">     case FontVariantEastAsianRuby::Yes:
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueRuby));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueRuby));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -2105,9 +2110,9 @@
</span><span class="cx">     return WTFMove(list);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSPrimitiveValue&gt; fontWeightFromStyle(const RenderStyle* style)
</del><ins>+static Ref&lt;CSSPrimitiveValue&gt; fontWeightFromStyle(const RenderStyle&amp; style)
</ins><span class="cx"> {
</span><del>-    switch (style-&gt;fontDescription().weight()) {
</del><ins>+    switch (style.fontDescription().weight()) {
</ins><span class="cx">     case FontWeight100:
</span><span class="cx">         return CSSValuePool::singleton().createIdentifierValue(CSSValue100);
</span><span class="cx">     case FontWeight200:
</span><span class="lines">@@ -2138,12 +2143,12 @@
</span><span class="cx"> 
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><span class="cx">     if (style.fontDescription().fontSynthesis() &amp; FontSynthesisStyle)
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueStyle));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueStyle));
</ins><span class="cx">     if (style.fontDescription().fontSynthesis() &amp; FontSynthesisWeight)
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueWeight));
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueWeight));
</ins><span class="cx">     if (style.fontDescription().fontSynthesis() &amp; FontSynthesisSmallCaps)
</span><del>-        list.get().append(CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps));
-    return Ref&lt;CSSValue&gt;(list.get());
</del><ins>+        list-&gt;append(CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps));
+    return WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> typedef const Length&amp; (RenderStyle::*RenderStyleLengthGetter)() const;
</span><span class="lines">@@ -2150,7 +2155,7 @@
</span><span class="cx"> typedef LayoutUnit (RenderBoxModelObject::*RenderBoxComputedCSSValueGetter)() const;
</span><span class="cx"> 
</span><span class="cx"> template&lt;RenderStyleLengthGetter lengthGetter, RenderBoxComputedCSSValueGetter computedCSSValueGetter&gt;
</span><del>-inline RefPtr&lt;CSSValue&gt; zoomAdjustedPaddingOrMarginPixelValue(const RenderStyle&amp; style, RenderObject* renderer)
</del><ins>+static RefPtr&lt;CSSValue&gt; zoomAdjustedPaddingOrMarginPixelValue(const RenderStyle&amp; style, RenderObject* renderer)
</ins><span class="cx"> {
</span><span class="cx">     Length unzoomzedLength = (style.*lengthGetter)();
</span><span class="cx">     if (!is&lt;RenderBox&gt;(renderer) || unzoomzedLength.isFixed())
</span><span class="lines">@@ -2159,11 +2164,9 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;RenderStyleLengthGetter lengthGetter&gt;
</span><del>-inline bool paddingOrMarginIsRendererDependent(const RenderStyle* style, RenderObject* renderer)
</del><ins>+static bool paddingOrMarginIsRendererDependent(const RenderStyle* style, RenderObject* renderer)
</ins><span class="cx"> {
</span><del>-    if (!renderer || !renderer-&gt;isBox())
-        return false;
-    return !(style &amp;&amp; (style-&gt;*lengthGetter)().isFixed());
</del><ins>+    return renderer &amp;&amp; style &amp;&amp; renderer-&gt;isBox() &amp;&amp; !(style-&gt;*lengthGetter)().isFixed();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static CSSValueID convertToPageBreak(BreakBetween value)
</span><span class="lines">@@ -2445,11 +2448,11 @@
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><span class="cx">     auto result = CSSValueList::createSpaceSeparated();
</span><span class="cx">     if (data.positionType() == LegacyPosition)
</span><del>-        result.get().append(cssValuePool.createIdentifierValue(CSSValueLegacy));
-    result.get().append(cssValuePool.createValue(data.position()));
</del><ins>+        result-&gt;append(cssValuePool.createIdentifierValue(CSSValueLegacy));
+    result-&gt;append(cssValuePool.createValue(data.position()));
</ins><span class="cx">     if (data.position() &gt;= ItemPositionCenter &amp;&amp; data.overflow() != OverflowAlignmentDefault)
</span><del>-        result.get().append(cssValuePool.createValue(data.overflow()));
-    ASSERT(result.get().length() &lt;= 2);
</del><ins>+        result-&gt;append(cssValuePool.createValue(data.overflow()));
+    ASSERT(result-&gt;length() &lt;= 2);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2458,7 +2461,7 @@
</span><span class="cx">     auto&amp; cssValuePool = CSSValuePool::singleton();
</span><span class="cx">     auto result = CSSValueList::createSpaceSeparated();
</span><span class="cx">     if (data.distribution() != ContentDistributionDefault)
</span><del>-        result.get().append(cssValuePool.createValue(data.distribution()));
</del><ins>+        result-&gt;append(cssValuePool.createValue(data.distribution()));
</ins><span class="cx">     if (data.distribution() == ContentDistributionDefault || data.position() != ContentPositionNormal) {
</span><span class="cx">         bool gridEnabled = false;
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="lines">@@ -2465,14 +2468,14 @@
</span><span class="cx">         gridEnabled = RuntimeEnabledFeatures::sharedFeatures().isCSSGridLayoutEnabled();
</span><span class="cx"> #endif
</span><span class="cx">         if (data.position() != ContentPositionNormal || gridEnabled)
</span><del>-            result.get().append(cssValuePool.createValue(data.position()));
</del><ins>+            result-&gt;append(cssValuePool.createValue(data.position()));
</ins><span class="cx">         else
</span><del>-            result.get().append(cssValuePool.createIdentifierValue(normalBehaviorValueID));
</del><ins>+            result-&gt;append(cssValuePool.createIdentifierValue(normalBehaviorValueID));
</ins><span class="cx">     }
</span><span class="cx">     if ((data.position() &gt;= ContentPositionCenter || data.distribution() != ContentDistributionDefault) &amp;&amp; data.overflow() != OverflowAlignmentDefault)
</span><del>-        result.get().append(cssValuePool.createValue(data.overflow()));
-    ASSERT(result.get().length() &gt; 0);
-    ASSERT(result.get().length() &lt;= 3);
</del><ins>+        result-&gt;append(cssValuePool.createValue(data.overflow()));
+    ASSERT(result-&gt;length() &gt; 0);
+    ASSERT(result-&gt;length() &lt;= 3);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2494,10 +2497,10 @@
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;RenderStyle&gt; ownedStyle;
</span><span class="cx">     auto* style = computeRenderStyleForProperty(*styledElement, m_pseudoElementSpecifier, CSSPropertyCustom, ownedStyle);
</span><del>-    if (!style || !style-&gt;hasCustomProperty(propertyName))
</del><ins>+    if (!style)
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    return style-&gt;getCustomPropertyValue(propertyName);
</del><ins>+    return style-&gt;customProperties().get(propertyName);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String ComputedStyleExtractor::customPropertyText(const String&amp; propertyName)
</span><span class="lines">@@ -2560,88 +2563,69 @@
</span><span class="cx">             return cssValuePool.createColorValue(m_allowVisitedStyle? style-&gt;visitedDependentColor(CSSPropertyBackgroundColor) : style-&gt;backgroundColor());
</span><span class="cx">         case CSSPropertyBackgroundImage:
</span><span class="cx">         case CSSPropertyWebkitMaskImage: {
</span><del>-            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskImage ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
-            if (!layers)
</del><ins>+            auto&amp; layers = propertyID == CSSPropertyWebkitMaskImage ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
+            if (!layers.next()) {
+                if (layers.image())
+                    return layers.image()-&gt;cssValue();
</ins><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueNone);
</span><del>-
-            if (!layers-&gt;next()) {
-                if (layers-&gt;image())
-                    return layers-&gt;image()-&gt;cssValue();
-
-                return cssValuePool.createIdentifierValue(CSSValueNone);
</del><span class="cx">             }
</span><del>-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next()) {
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next()) {
</ins><span class="cx">                 if (currLayer-&gt;image())
</span><span class="cx">                     list-&gt;append(currLayer-&gt;image()-&gt;cssValue());
</span><span class="cx">                 else
</span><span class="cx">                     list-&gt;append(cssValuePool.createIdentifierValue(CSSValueNone));
</span><span class="cx">             }
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackgroundSize:
</span><span class="cx">         case CSSPropertyWebkitBackgroundSize:
</span><span class="cx">         case CSSPropertyWebkitMaskSize: {
</span><del>-            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskSize ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
-                return fillSizeToCSSValue(layers-&gt;size(), *style);
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto&amp; layers = propertyID == CSSPropertyWebkitMaskSize ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
+            if (!layers.next())
+                return fillSizeToCSSValue(layers.size(), *style);
+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(fillSizeToCSSValue(currLayer-&gt;size(), *style));
</span><del>-
-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackgroundRepeat:
</span><span class="cx">         case CSSPropertyWebkitMaskRepeat: {
</span><del>-            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskRepeat ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
-                return fillRepeatToCSSValue(layers-&gt;repeatX(), layers-&gt;repeatY());
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto&amp; layers = propertyID == CSSPropertyWebkitMaskRepeat ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
+            if (!layers.next())
+                return fillRepeatToCSSValue(layers.repeatX(), layers.repeatY());
+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(fillRepeatToCSSValue(currLayer-&gt;repeatX(), currLayer-&gt;repeatY()));
</span><del>-
-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyWebkitMaskSourceType: {
</span><del>-            const FillLayer* layers = style-&gt;maskLayers();
-
-            if (!layers)
-                return cssValuePool.createIdentifierValue(CSSValueNone);
-
-            if (!layers-&gt;next())
-                return fillSourceTypeToCSSValue(layers-&gt;maskSourceType());
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto&amp; layers = style-&gt;maskLayers();
+            if (!layers.next())
+                return fillSourceTypeToCSSValue(layers.maskSourceType());
+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(fillSourceTypeToCSSValue(currLayer-&gt;maskSourceType()));
</span><del>-
-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyWebkitBackgroundComposite:
</span><span class="cx">         case CSSPropertyWebkitMaskComposite: {
</span><del>-            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskComposite ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
-                return cssValuePool.createValue(layers-&gt;composite());
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto&amp; layers = propertyID == CSSPropertyWebkitMaskComposite ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
+            if (!layers.next())
+                return cssValuePool.createValue(layers.composite());
+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(cssValuePool.createValue(currLayer-&gt;composite()));
</span><del>-
-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackgroundAttachment: {
</span><del>-            const FillLayer* layers = style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
-                return cssValuePool.createValue(layers-&gt;attachment());
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto&amp; layers = style-&gt;backgroundLayers();
+            if (!layers.next())
+                return cssValuePool.createValue(layers.attachment());
+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(cssValuePool.createValue(currLayer-&gt;attachment()));
</span><del>-
-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackgroundClip:
</span><span class="cx">         case CSSPropertyBackgroundOrigin:
</span><span class="lines">@@ -2649,55 +2633,49 @@
</span><span class="cx">         case CSSPropertyWebkitBackgroundOrigin:
</span><span class="cx">         case CSSPropertyWebkitMaskClip:
</span><span class="cx">         case CSSPropertyWebkitMaskOrigin: {
</span><del>-            const FillLayer* layers = (propertyID == CSSPropertyWebkitMaskClip || propertyID == CSSPropertyWebkitMaskOrigin) ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
</del><ins>+            auto&amp; layers = (propertyID == CSSPropertyWebkitMaskClip || propertyID == CSSPropertyWebkitMaskOrigin) ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
</ins><span class="cx">             bool isClip = propertyID == CSSPropertyBackgroundClip || propertyID == CSSPropertyWebkitBackgroundClip || propertyID == CSSPropertyWebkitMaskClip;
</span><del>-            if (!layers-&gt;next()) {
-                EFillBox box = isClip ? layers-&gt;clip() : layers-&gt;origin();
-                return cssValuePool.createValue(box);
-            }
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next()) {
-                EFillBox box = isClip ? currLayer-&gt;clip() : currLayer-&gt;origin();
-                list-&gt;append(cssValuePool.createValue(box));
-            }
-
-            return list;
</del><ins>+            if (!layers.next())
+                return cssValuePool.createValue(isClip ? layers.clip() : layers.origin());
+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
+                list-&gt;append(cssValuePool.createValue(isClip ? currLayer-&gt;clip() : currLayer-&gt;origin()));
+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackgroundPosition:
</span><span class="cx">         case CSSPropertyWebkitMaskPosition: {
</span><del>-            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskPosition ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
</del><ins>+            auto&amp; layers = propertyID == CSSPropertyWebkitMaskPosition ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
+            if (!layers.next())
</ins><span class="cx">                 return createPositionListForLayer(propertyID, layers, *style);
</span><span class="cx"> 
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
-                list-&gt;append(createPositionListForLayer(propertyID, currLayer, *style));
-            return list;
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
+                list-&gt;append(createPositionListForLayer(propertyID, *currLayer, *style));
+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackgroundPositionX:
</span><span class="cx">         case CSSPropertyWebkitMaskPositionX: {
</span><del>-            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskPositionX ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
-                return cssValuePool.createValue(layers-&gt;xPosition());
</del><ins>+            auto&amp; layers = propertyID == CSSPropertyWebkitMaskPositionX ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
+            if (!layers.next())
+                return cssValuePool.createValue(layers.xPosition());
</ins><span class="cx"> 
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(cssValuePool.createValue(currLayer-&gt;xPosition()));
</span><span class="cx"> 
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackgroundPositionY:
</span><span class="cx">         case CSSPropertyWebkitMaskPositionY: {
</span><del>-            const FillLayer* layers = propertyID == CSSPropertyWebkitMaskPositionY ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
-                return cssValuePool.createValue(layers-&gt;yPosition());
</del><ins>+            auto&amp; layers = propertyID == CSSPropertyWebkitMaskPositionY ? style-&gt;maskLayers() : style-&gt;backgroundLayers();
+            if (!layers.next())
+                return cssValuePool.createValue(layers.yPosition());
</ins><span class="cx"> 
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(cssValuePool.createValue(currLayer-&gt;yPosition()));
</span><span class="cx"> 
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBorderCollapse:
</span><span class="cx">             if (style-&gt;borderCollapse())
</span><span class="lines">@@ -2704,10 +2682,10 @@
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueCollapse);
</span><span class="cx">             return cssValuePool.createIdentifierValue(CSSValueSeparate);
</span><span class="cx">         case CSSPropertyBorderSpacing: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">             list-&gt;append(zoomAdjustedPixelValue(style-&gt;horizontalBorderSpacing(), *style));
</span><span class="cx">             list-&gt;append(zoomAdjustedPixelValue(style-&gt;verticalBorderSpacing(), *style));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyWebkitBorderHorizontalSpacing:
</span><span class="cx">             return zoomAdjustedPixelValue(style-&gt;horizontalBorderSpacing(), *style);
</span><span class="lines">@@ -2822,7 +2800,7 @@
</span><span class="cx"> #endif
</span><span class="cx">         case CSSPropertyCursor: {
</span><span class="cx">             RefPtr&lt;CSSValueList&gt; list;
</span><del>-            CursorList* cursors = style-&gt;cursors();
</del><ins>+            auto* cursors = style-&gt;cursors();
</ins><span class="cx">             if (cursors &amp;&amp; cursors-&gt;size() &gt; 0) {
</span><span class="cx">                 list = CSSValueList::createCommaSeparated();
</span><span class="cx">                 for (unsigned i = 0; i &lt; cursors-&gt;size(); ++i)
</span><span class="lines">@@ -2881,34 +2859,28 @@
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueNone);
</span><span class="cx">             return cssValuePool.createValue(style-&gt;floating());
</span><span class="cx">         case CSSPropertyFont: {
</span><del>-            RefPtr&lt;CSSFontValue&gt; computedFont = CSSFontValue::create();
-            computedFont-&gt;style = fontStyleFromStyle(style);
</del><ins>+            auto computedFont = CSSFontValue::create();
+            computedFont-&gt;style = fontStyleFromStyle(*style);
</ins><span class="cx">             if (style-&gt;fontDescription().variantCaps() == FontVariantCaps::Small)
</span><span class="cx">                 computedFont-&gt;variant = CSSValuePool::singleton().createIdentifierValue(CSSValueSmallCaps);
</span><span class="cx">             else
</span><span class="cx">                 computedFont-&gt;variant = CSSValuePool::singleton().createIdentifierValue(CSSValueNormal);
</span><del>-            computedFont-&gt;weight = fontWeightFromStyle(style);
</del><ins>+            computedFont-&gt;weight = fontWeightFromStyle(*style);
</ins><span class="cx">             computedFont-&gt;size = fontSizeFromStyle(*style);
</span><span class="cx">             computedFont-&gt;lineHeight = lineHeightFromStyle(*style);
</span><del>-            computedFont-&gt;family = fontFamilyFromStyle(style);
-            return computedFont;
</del><ins>+            computedFont-&gt;family = fontFamilyListFromStyle(*style);
+            return WTFMove(computedFont);
</ins><span class="cx">         }
</span><del>-        case CSSPropertyFontFamily: {
-            RefPtr&lt;CSSValueList&gt; fontFamilyList = fontFamilyFromStyle(style);
-            // If there's only a single family, return that as a CSSPrimitiveValue.
-            // NOTE: Gecko always returns this as a comma-separated CSSPrimitiveValue string.
-            if (fontFamilyList-&gt;length() == 1)
-                return fontFamilyList-&gt;item(0);
-            return fontFamilyList;
-        }
</del><ins>+        case CSSPropertyFontFamily:
+            return fontFamilyFromStyle(*style);
</ins><span class="cx">         case CSSPropertyFontSize:
</span><span class="cx">             return fontSizeFromStyle(*style);
</span><span class="cx">         case CSSPropertyFontStyle:
</span><del>-            return fontStyleFromStyle(style);
</del><ins>+            return fontStyleFromStyle(*style);
</ins><span class="cx">         case CSSPropertyFontVariant:
</span><del>-            return fontVariantFromStyle(style);
</del><ins>+            return fontVariantFromStyle(*style);
</ins><span class="cx">         case CSSPropertyFontWeight:
</span><del>-            return fontWeightFromStyle(style);
</del><ins>+            return fontWeightFromStyle(*style);
</ins><span class="cx">         case CSSPropertyFontSynthesis:
</span><span class="cx">             return fontSynthesisFromStyle(*style);
</span><span class="cx">         case CSSPropertyFontFeatureSettings: {
</span><span class="lines">@@ -2915,10 +2887,10 @@
</span><span class="cx">             const FontFeatureSettings&amp; featureSettings = style-&gt;fontDescription().featureSettings();
</span><span class="cx">             if (!featureSettings.size())
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueNormal);
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
</ins><span class="cx">             for (auto&amp; feature : featureSettings)
</span><span class="cx">                 list-&gt;append(CSSFontFeatureValue::create(FontTag(feature.tag()), feature.value()));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx"> #if ENABLE(VARIATION_FONTS)
</span><span class="cx">         case CSSPropertyFontVariationSettings: {
</span><span class="lines">@@ -2925,15 +2897,15 @@
</span><span class="cx">             const FontVariationSettings&amp; variationSettings = style-&gt;fontDescription().variationSettings();
</span><span class="cx">             if (variationSettings.isEmpty())
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueNormal);
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
</ins><span class="cx">             for (auto&amp; feature : variationSettings)
</span><span class="cx">                 list-&gt;append(CSSFontVariationValue::create(feature.tag(), feature.value()));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="cx">         case CSSPropertyGridAutoFlow: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">             ASSERT(style-&gt;isGridAutoFlowDirectionRow() || style-&gt;isGridAutoFlowDirectionColumn());
</span><span class="cx">             if (style-&gt;isGridAutoFlowDirectionRow())
</span><span class="cx">                 list-&gt;append(cssValuePool.createIdentifierValue(CSSValueRow));
</span><span class="lines">@@ -2943,7 +2915,7 @@
</span><span class="cx">             if (style-&gt;isGridAutoFlowAlgorithmDense())
</span><span class="cx">                 list-&gt;append(cssValuePool.createIdentifierValue(CSSValueDense));
</span><span class="cx"> 
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Specs mention that getComputedStyle() should return the used value of the property instead of the computed
</span><span class="lines">@@ -2979,13 +2951,11 @@
</span><span class="cx">             return getCSSPropertyValuesForGridShorthand(gridColumnShorthand());
</span><span class="cx">         case CSSPropertyGridRow:
</span><span class="cx">             return getCSSPropertyValuesForGridShorthand(gridRowShorthand());
</span><del>-
</del><span class="cx">         case CSSPropertyGridTemplateAreas:
</span><span class="cx">             if (!style-&gt;namedGridAreaRowCount()) {
</span><span class="cx">                 ASSERT(!style-&gt;namedGridAreaColumnCount());
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueNone);
</span><span class="cx">             }
</span><del>-
</del><span class="cx">             return CSSGridTemplateAreasValue::create(style-&gt;namedGridArea(), style-&gt;namedGridAreaRowCount(), style-&gt;namedGridAreaColumnCount());
</span><span class="cx">         case CSSPropertyGridColumnGap:
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style-&gt;gridColumnGap(), *style);
</span><span class="lines">@@ -3120,10 +3090,10 @@
</span><span class="cx">         case CSSPropertyObjectFit:
</span><span class="cx">             return cssValuePool.createValue(style-&gt;objectFit());
</span><span class="cx">         case CSSPropertyObjectPosition: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">             list-&gt;append(zoomAdjustedPixelValueForLength(style-&gt;objectPosition().x(), *style));
</span><span class="cx">             list-&gt;append(zoomAdjustedPixelValueForLength(style-&gt;objectPosition().y(), *style));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyOpacity:
</span><span class="cx">             return cssValuePool.createValue(style-&gt;opacity(), CSSPrimitiveValue::CSS_NUMBER);
</span><span class="lines">@@ -3224,31 +3194,30 @@
</span><span class="cx">             case TextEmphasisMarkCircle:
</span><span class="cx">             case TextEmphasisMarkDoubleCircle:
</span><span class="cx">             case TextEmphasisMarkTriangle:
</span><del>-            case TextEmphasisMarkSesame: {
-                RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            case TextEmphasisMarkSesame:
+                auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">                 list-&gt;append(cssValuePool.createValue(style-&gt;textEmphasisFill()));
</span><span class="cx">                 list-&gt;append(cssValuePool.createValue(style-&gt;textEmphasisMark()));
</span><del>-                return list;
</del><ins>+                return WTFMove(list);
</ins><span class="cx">             }
</span><del>-            }
</del><span class="cx">         case CSSPropertyTextIndent: {
</span><span class="cx">             // If CSS3_TEXT is disabled or text-indent has only one value(&lt;length&gt; | &lt;percentage&gt;),
</span><span class="cx">             // getPropertyCSSValue() returns CSSValue.
</span><del>-            RefPtr&lt;CSSValue&gt; textIndent = zoomAdjustedPixelValueForLength(style-&gt;textIndent(), *style);
</del><ins>+            auto textIndent = zoomAdjustedPixelValueForLength(style-&gt;textIndent(), *style);
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><span class="cx">             // If CSS3_TEXT is enabled and text-indent has -webkit-each-line or -webkit-hanging,
</span><span class="cx">             // getPropertyCSSValue() returns CSSValueList.
</span><span class="cx">             if (style-&gt;textIndentLine() == TextIndentEachLine || style-&gt;textIndentType() == TextIndentHanging) {
</span><del>-                RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
-                list-&gt;append(textIndent.releaseNonNull());
</del><ins>+                auto list = CSSValueList::createSpaceSeparated();
+                list-&gt;append(WTFMove(textIndent));
</ins><span class="cx">                 if (style-&gt;textIndentLine() == TextIndentEachLine)
</span><span class="cx">                     list-&gt;append(cssValuePool.createIdentifierValue(CSSValueWebkitEachLine));
</span><span class="cx">                 if (style-&gt;textIndentType() == TextIndentHanging)
</span><span class="cx">                     list-&gt;append(cssValuePool.createIdentifierValue(CSSValueWebkitHanging));
</span><del>-                return list;
</del><ins>+                return WTFMove(list);
</ins><span class="cx">             }
</span><span class="cx"> #endif
</span><del>-            return textIndent;
</del><ins>+            return WTFMove(textIndent);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyTextShadow:
</span><span class="cx">             return valueForShadow(style-&gt;textShadow(), propertyID, *style);
</span><span class="lines">@@ -3321,8 +3290,7 @@
</span><span class="cx">             }
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style-&gt;width(), *style);
</span><span class="cx">         case CSSPropertyWillChange:
</span><del>-            return getWillChangePropertyValue(style-&gt;willChange());
-            break;
</del><ins>+            return willChangePropertyValue(style-&gt;willChange());
</ins><span class="cx">         case CSSPropertyWordBreak:
</span><span class="cx">             return cssValuePool.createValue(style-&gt;wordBreak());
</span><span class="cx">         case CSSPropertyWordSpacing:
</span><span class="lines">@@ -3394,9 +3362,9 @@
</span><span class="cx">         }
</span><span class="cx"> #endif
</span><span class="cx">         case CSSPropertyAnimationDelay:
</span><del>-            return getDelayValue(style-&gt;animations());
</del><ins>+            return delayValue(style-&gt;animations());
</ins><span class="cx">         case CSSPropertyAnimationDirection: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
</ins><span class="cx">             const AnimationList* t = style-&gt;animations();
</span><span class="cx">             if (t) {
</span><span class="cx">                 for (size_t i = 0; i &lt; t-&gt;size(); ++i) {
</span><span class="lines">@@ -3417,12 +3385,12 @@
</span><span class="cx">                 }
</span><span class="cx">             } else
</span><span class="cx">                 list-&gt;append(cssValuePool.createIdentifierValue(CSSValueNormal));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyAnimationDuration:
</span><del>-            return getDurationValue(style-&gt;animations());
</del><ins>+            return durationValue(style-&gt;animations());
</ins><span class="cx">         case CSSPropertyAnimationFillMode: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
</ins><span class="cx">             const AnimationList* t = style-&gt;animations();
</span><span class="cx">             if (t) {
</span><span class="cx">                 for (size_t i = 0; i &lt; t-&gt;size(); ++i) {
</span><span class="lines">@@ -3443,10 +3411,10 @@
</span><span class="cx">                 }
</span><span class="cx">             } else
</span><span class="cx">                 list-&gt;append(cssValuePool.createIdentifierValue(CSSValueNone));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyAnimationIterationCount: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
</ins><span class="cx">             const AnimationList* t = style-&gt;animations();
</span><span class="cx">             if (t) {
</span><span class="cx">                 for (size_t i = 0; i &lt; t-&gt;size(); ++i) {
</span><span class="lines">@@ -3458,10 +3426,10 @@
</span><span class="cx">                 }
</span><span class="cx">             } else
</span><span class="cx">                 list-&gt;append(cssValuePool.createValue(Animation::initialIterationCount(), CSSPrimitiveValue::CSS_NUMBER));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyAnimationName: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
</ins><span class="cx">             const AnimationList* t = style-&gt;animations();
</span><span class="cx">             if (t) {
</span><span class="cx">                 for (size_t i = 0; i &lt; t-&gt;size(); ++i)
</span><span class="lines">@@ -3468,10 +3436,10 @@
</span><span class="cx">                     list-&gt;append(cssValuePool.createValue(t-&gt;animation(i).name(), CSSPrimitiveValue::CSS_STRING));
</span><span class="cx">             } else
</span><span class="cx">                 list-&gt;append(cssValuePool.createIdentifierValue(CSSValueNone));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyAnimationPlayState: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</del><ins>+            auto list = CSSValueList::createCommaSeparated();
</ins><span class="cx">             const AnimationList* t = style-&gt;animations();
</span><span class="cx">             if (t) {
</span><span class="cx">                 for (size_t i = 0; i &lt; t-&gt;size(); ++i) {
</span><span class="lines">@@ -3483,13 +3451,13 @@
</span><span class="cx">                 }
</span><span class="cx">             } else
</span><span class="cx">                 list-&gt;append(cssValuePool.createIdentifierValue(CSSValueRunning));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyAnimationTimingFunction:
</span><del>-            return getTimingFunctionValue(style-&gt;animations());
</del><ins>+            return timingFunctionValue(style-&gt;animations());
</ins><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><span class="cx">         case CSSPropertyWebkitAnimationTrigger:
</span><del>-            return getAnimationTriggerValue(style-&gt;animations(), *style);
</del><ins>+            return animationTriggerValue(style-&gt;animations(), *style);
</ins><span class="cx"> #endif
</span><span class="cx">         case CSSPropertyWebkitAppearance:
</span><span class="cx">             return cssValuePool.createValue(style-&gt;appearance());
</span><span class="lines">@@ -3531,8 +3499,8 @@
</span><span class="cx">             // Not a real style property -- used by the editing engine -- so has no computed value.
</span><span class="cx">             break;
</span><span class="cx">         case CSSPropertyWebkitInitialLetter: {
</span><del>-            Ref&lt;CSSPrimitiveValue&gt; drop = !style-&gt;initialLetterDrop() ? cssValuePool.createIdentifierValue(CSSValueNormal) : cssValuePool.createValue(style-&gt;initialLetterDrop(), CSSPrimitiveValue::CSS_NUMBER);
-            Ref&lt;CSSPrimitiveValue&gt; size = !style-&gt;initialLetterHeight() ? cssValuePool.createIdentifierValue(CSSValueNormal) : cssValuePool.createValue(style-&gt;initialLetterHeight(), CSSPrimitiveValue::CSS_NUMBER);
</del><ins>+            auto drop = !style-&gt;initialLetterDrop() ? cssValuePool.createIdentifierValue(CSSValueNormal) : cssValuePool.createValue(style-&gt;initialLetterDrop(), CSSPrimitiveValue::CSS_NUMBER);
+            auto size = !style-&gt;initialLetterHeight() ? cssValuePool.createIdentifierValue(CSSValueNormal) : cssValuePool.createValue(style-&gt;initialLetterHeight(), CSSPrimitiveValue::CSS_NUMBER);
</ins><span class="cx">             return cssValuePool.createValue(Pair::create(WTFMove(drop), WTFMove(size)));
</span><span class="cx">         }
</span><span class="cx">         case CSSPropertyWebkitMarginBottomCollapse:
</span><span class="lines">@@ -3552,7 +3520,7 @@
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueNone);
</span><span class="cx">             return zoomAdjustedPixelValue(style-&gt;perspective(), *style);
</span><span class="cx">         case CSSPropertyPerspectiveOrigin: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">             if (renderer) {
</span><span class="cx">                 LayoutRect box;
</span><span class="cx">                 if (is&lt;RenderBox&gt;(*renderer))
</span><span class="lines">@@ -3566,7 +3534,7 @@
</span><span class="cx">                 list-&gt;append(zoomAdjustedPixelValueForLength(style-&gt;perspectiveOriginY(), *style));
</span><span class="cx"> 
</span><span class="cx">             }
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyWebkitRtlOrdering:
</span><span class="cx">             return cssValuePool.createIdentifierValue(style-&gt;rtlOrdering() ? CSSValueVisual : CSSValueLogical);
</span><span class="lines">@@ -3585,13 +3553,13 @@
</span><span class="cx">         case CSSPropertyWebkitUserSelect:
</span><span class="cx">             return cssValuePool.createValue(style-&gt;userSelect());
</span><span class="cx">         case CSSPropertyBorderBottomLeftRadius:
</span><del>-            return getBorderRadiusCornerValue(style-&gt;borderBottomLeftRadius(), *style);
</del><ins>+            return borderRadiusCornerValue(style-&gt;borderBottomLeftRadius(), *style);
</ins><span class="cx">         case CSSPropertyBorderBottomRightRadius:
</span><del>-            return getBorderRadiusCornerValue(style-&gt;borderBottomRightRadius(), *style);
</del><ins>+            return borderRadiusCornerValue(style-&gt;borderBottomRightRadius(), *style);
</ins><span class="cx">         case CSSPropertyBorderTopLeftRadius:
</span><del>-            return getBorderRadiusCornerValue(style-&gt;borderTopLeftRadius(), *style);
</del><ins>+            return borderRadiusCornerValue(style-&gt;borderTopLeftRadius(), *style);
</ins><span class="cx">         case CSSPropertyBorderTopRightRadius:
</span><del>-            return getBorderRadiusCornerValue(style-&gt;borderTopRightRadius(), *style);
</del><ins>+            return borderRadiusCornerValue(style-&gt;borderTopRightRadius(), *style);
</ins><span class="cx">         case CSSPropertyClip: {
</span><span class="cx">             if (!style-&gt;hasClip())
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueAuto);
</span><span class="lines">@@ -3607,7 +3575,7 @@
</span><span class="cx">         case CSSPropertyTransform:
</span><span class="cx">             return computedTransform(renderer, *style);
</span><span class="cx">         case CSSPropertyTransformOrigin: {
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">             if (renderer) {
</span><span class="cx">                 LayoutRect box;
</span><span class="cx">                 if (is&lt;RenderBox&gt;(*renderer))
</span><span class="lines">@@ -3623,42 +3591,41 @@
</span><span class="cx">                 if (style-&gt;transformOriginZ() != 0)
</span><span class="cx">                     list-&gt;append(zoomAdjustedPixelValue(style-&gt;transformOriginZ(), *style));
</span><span class="cx">             }
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyTransformStyle:
</span><span class="cx">         case CSSPropertyWebkitTransformStyle:
</span><span class="cx">             return cssValuePool.createIdentifierValue((style-&gt;transformStyle3D() == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat);
</span><span class="cx">         case CSSPropertyTransitionDelay:
</span><del>-            return getDelayValue(style-&gt;transitions());
</del><ins>+            return delayValue(style-&gt;transitions());
</ins><span class="cx">         case CSSPropertyTransitionDuration:
</span><del>-            return getDurationValue(style-&gt;transitions());
</del><ins>+            return durationValue(style-&gt;transitions());
</ins><span class="cx">         case CSSPropertyTransitionProperty:
</span><del>-            return getTransitionPropertyValue(style-&gt;transitions());
</del><ins>+            return transitionPropertyValue(style-&gt;transitions());
</ins><span class="cx">         case CSSPropertyTransitionTimingFunction:
</span><del>-            return getTimingFunctionValue(style-&gt;transitions());
</del><ins>+            return timingFunctionValue(style-&gt;transitions());
</ins><span class="cx">         case CSSPropertyTransition: {
</span><del>-            const AnimationList* animList = style-&gt;transitions();
-            if (animList) {
-                RefPtr&lt;CSSValueList&gt; transitionsList = CSSValueList::createCommaSeparated();
-                for (size_t i = 0; i &lt; animList-&gt;size(); ++i) {
-                    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
-                    const Animation&amp; animation = animList-&gt;animation(i);
</del><ins>+            if (auto* animationList = style-&gt;transitions()) {
+                auto transitionsList = CSSValueList::createCommaSeparated();
+                for (size_t i = 0; i &lt; animationList-&gt;size(); ++i) {
+                    auto list = CSSValueList::createSpaceSeparated();
+                    auto&amp; animation = animationList-&gt;animation(i);
</ins><span class="cx">                     list-&gt;append(createTransitionPropertyValue(animation));
</span><span class="cx">                     list-&gt;append(cssValuePool.createValue(animation.duration(), CSSPrimitiveValue::CSS_S));
</span><del>-                    list-&gt;append(createTimingFunctionValue(animation.timingFunction().get()));
</del><ins>+                    list-&gt;append(createTimingFunctionValue(*animation.timingFunction()));
</ins><span class="cx">                     list-&gt;append(cssValuePool.createValue(animation.delay(), CSSPrimitiveValue::CSS_S));
</span><del>-                    transitionsList-&gt;append(list.releaseNonNull());
</del><ins>+                    transitionsList-&gt;append(WTFMove(list));
</ins><span class="cx">                 }
</span><del>-                return transitionsList;
</del><ins>+                return WTFMove(transitionsList);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><del>-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">             // transition-property default value.
</span><span class="cx">             list-&gt;append(cssValuePool.createIdentifierValue(CSSValueAll));
</span><span class="cx">             list-&gt;append(cssValuePool.createValue(Animation::initialDuration(), CSSPrimitiveValue::CSS_S));
</span><del>-            list-&gt;append(createTimingFunctionValue(Animation::initialTimingFunction().get()));
</del><ins>+            list-&gt;append(createTimingFunctionValue(Animation::initialTimingFunction()));
</ins><span class="cx">             list-&gt;append(cssValuePool.createValue(Animation::initialDelay(), CSSPrimitiveValue::CSS_S));
</span><del>-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyPointerEvents:
</span><span class="cx">             return cssValuePool.createValue(style-&gt;pointerEvents());
</span><span class="lines">@@ -3679,33 +3646,29 @@
</span><span class="cx">         case CSSPropertyWebkitLineBoxContain:
</span><span class="cx">             return createLineBoxContainValue(style-&gt;lineBoxContain());
</span><span class="cx">         case CSSPropertyAlt:
</span><del>-            return altTextToCSSValue(style);
</del><ins>+            return altTextToCSSValue(*style);
</ins><span class="cx">         case CSSPropertyContent:
</span><del>-            return contentToCSSValue(style);
</del><ins>+            return contentToCSSValue(*style);
</ins><span class="cx">         case CSSPropertyCounterIncrement:
</span><del>-            return counterToCSSValue(style, propertyID);
</del><ins>+            return counterToCSSValue(*style, propertyID);
</ins><span class="cx">         case CSSPropertyCounterReset:
</span><del>-            return counterToCSSValue(style, propertyID);
</del><ins>+            return counterToCSSValue(*style, propertyID);
</ins><span class="cx">         case CSSPropertyWebkitClipPath: {
</span><del>-            ClipPathOperation* operation = style-&gt;clipPath();
</del><ins>+            auto* operation = style-&gt;clipPath();
</ins><span class="cx">             if (!operation)
</span><span class="cx">                 return cssValuePool.createIdentifierValue(CSSValueNone);
</span><del>-            if (is&lt;ReferenceClipPathOperation&gt;(*operation)) {
-                const auto&amp; referenceOperation = downcast&lt;ReferenceClipPathOperation&gt;(*operation);
-                return CSSPrimitiveValue::create(referenceOperation.url(), CSSPrimitiveValue::CSS_URI);
-            }
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+            if (is&lt;ReferenceClipPathOperation&gt;(*operation))
+                return CSSPrimitiveValue::create(downcast&lt;ReferenceClipPathOperation&gt;(*operation).url(), CSSPrimitiveValue::CSS_URI);
+            auto list = CSSValueList::createSpaceSeparated();
</ins><span class="cx">             if (is&lt;ShapeClipPathOperation&gt;(*operation)) {
</span><del>-                const auto&amp; shapeOperation = downcast&lt;ShapeClipPathOperation&gt;(*operation);
</del><ins>+                auto&amp; shapeOperation = downcast&lt;ShapeClipPathOperation&gt;(*operation);
</ins><span class="cx">                 list-&gt;append(valueForBasicShape(*style, shapeOperation.basicShape()));
</span><span class="cx">                 if (shapeOperation.referenceBox() != BoxMissing)
</span><span class="cx">                     list-&gt;append(cssValuePool.createValue(shapeOperation.referenceBox()));
</span><span class="cx">             }
</span><del>-            if (is&lt;BoxClipPathOperation&gt;(*operation)) {
-                const auto&amp; boxOperation = downcast&lt;BoxClipPathOperation&gt;(*operation);
-                list-&gt;append(cssValuePool.createValue(boxOperation.referenceBox()));
-            }
-            return list;
</del><ins>+            if (is&lt;BoxClipPathOperation&gt;(*operation))
+                list-&gt;append(cssValuePool.createValue(downcast&lt;BoxClipPathOperation&gt;(*operation).referenceBox()));
+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx"> #if ENABLE(CSS_REGIONS)
</span><span class="cx">         case CSSPropertyWebkitFlowInto:
</span><span class="lines">@@ -3738,20 +3701,18 @@
</span><span class="cx">             return cssValuePool.createValue(style-&gt;isolation());
</span><span class="cx"> #endif
</span><span class="cx">         case CSSPropertyBackgroundBlendMode: {
</span><del>-            const FillLayer* layers = style-&gt;backgroundLayers();
-            if (!layers-&gt;next())
-                return cssValuePool.createValue(layers-&gt;blendMode());
-
-            RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
-            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer-&gt;next())
</del><ins>+            auto&amp; layers = style-&gt;backgroundLayers();
+            if (!layers.next())
+                return cssValuePool.createValue(layers.blendMode());
+            auto list = CSSValueList::createCommaSeparated();
+            for (auto* currLayer = &amp;layers; currLayer; currLayer = currLayer-&gt;next())
</ins><span class="cx">                 list-&gt;append(cssValuePool.createValue(currLayer-&gt;blendMode()));
</span><del>-
-            return list;
</del><ins>+            return WTFMove(list);
</ins><span class="cx">         }
</span><span class="cx">         case CSSPropertyBackground:
</span><span class="cx">             return getBackgroundShorthandValue();
</span><span class="cx">         case CSSPropertyBorder: {
</span><del>-            RefPtr&lt;CSSValue&gt; value = propertyValue(CSSPropertyBorderTop, DoNotUpdateLayout);
</del><ins>+            auto value = propertyValue(CSSPropertyBorderTop, DoNotUpdateLayout);
</ins><span class="cx">             const CSSPropertyID properties[3] = { CSSPropertyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft };
</span><span class="cx">             for (auto&amp; property : properties) {
</span><span class="cx">                 if (!compareCSSValuePtr&lt;CSSValue&gt;(value, propertyValue(property, DoNotUpdateLayout)))
</span><span class="lines">@@ -3768,7 +3729,7 @@
</span><span class="cx">         case CSSPropertyBorderImage:
</span><span class="cx">             return valueForNinePieceImage(style-&gt;borderImage());
</span><span class="cx">         case CSSPropertyBorderRadius:
</span><del>-            return getBorderRadiusShorthandValue(*style);
</del><ins>+            return borderRadiusShorthandValue(*style);
</ins><span class="cx">         case CSSPropertyBorderRight:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(borderRightShorthand());
</span><span class="cx">         case CSSPropertyBorderStyle:
</span><span class="lines">@@ -3998,7 +3959,7 @@
</span><span class="cx"> 
</span><span class="cx"> String CSSComputedStyleDeclaration::getPropertyValue(CSSPropertyID propertyID) const
</span><span class="cx"> {
</span><del>-    RefPtr&lt;CSSValue&gt; value = getPropertyCSSValue(propertyID);
</del><ins>+    auto value = getPropertyCSSValue(propertyID);
</ins><span class="cx">     if (!value)
</span><span class="cx">         return emptyString(); // FIXME: Should this be null instead, as it is in StyleProperties::getPropertyValue?
</span><span class="cx">     return value-&gt;cssText();
</span><span class="lines">@@ -4063,22 +4024,21 @@
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;CSSValueList&gt; ComputedStyleExtractor::getCSSPropertyValuesForShorthandProperties(const StylePropertyShorthand&amp; shorthand)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
-    for (size_t i = 0; i &lt; shorthand.length(); ++i) {
-        RefPtr&lt;CSSValue&gt; value = propertyValue(shorthand.properties()[i], DoNotUpdateLayout);
-        list-&gt;append(value.releaseNonNull());
-    }
-    return list;
</del><ins>+    auto list = CSSValueList::createSpaceSeparated();
+    for (size_t i = 0; i &lt; shorthand.length(); ++i)
+        list-&gt;append(propertyValue(shorthand.properties()[i], DoNotUpdateLayout).releaseNonNull());
+    return WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;CSSValueList&gt; ComputedStyleExtractor::getCSSPropertyValuesForSidesShorthand(const StylePropertyShorthand&amp; shorthand)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();
</del><ins>+    auto list = CSSValueList::createSpaceSeparated();
+
</ins><span class="cx">     // Assume the properties are in the usual order top, right, bottom, left.
</span><del>-    RefPtr&lt;CSSValue&gt; topValue = propertyValue(shorthand.properties()[0], DoNotUpdateLayout);
-    RefPtr&lt;CSSValue&gt; rightValue = propertyValue(shorthand.properties()[1], DoNotUpdateLayout);
-    RefPtr&lt;CSSValue&gt; bottomValue = propertyValue(shorthand.properties()[2], DoNotUpdateLayout);
-    RefPtr&lt;CSSValue&gt; leftValue = propertyValue(shorthand.properties()[3], DoNotUpdateLayout);
</del><ins>+    auto topValue = propertyValue(shorthand.properties()[0], DoNotUpdateLayout);
+    auto rightValue = propertyValue(shorthand.properties()[1], DoNotUpdateLayout);
+    auto bottomValue = propertyValue(shorthand.properties()[2], DoNotUpdateLayout);
+    auto leftValue = propertyValue(shorthand.properties()[3], DoNotUpdateLayout);
</ins><span class="cx"> 
</span><span class="cx">     // All 4 properties must be specified.
</span><span class="cx">     if (!topValue || !rightValue || !bottomValue || !leftValue)
</span><span class="lines">@@ -4096,17 +4056,15 @@
</span><span class="cx">     if (showLeft)
</span><span class="cx">         list-&gt;append(leftValue.releaseNonNull());
</span><span class="cx"> 
</span><del>-    return list;
</del><ins>+    return WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;CSSValueList&gt; ComputedStyleExtractor::getCSSPropertyValuesForGridShorthand(const StylePropertyShorthand&amp; shorthand)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSlashSeparated();
-    for (size_t i = 0; i &lt; shorthand.length(); ++i) {
-        RefPtr&lt;CSSValue&gt; value = propertyValue(shorthand.properties()[i], DoNotUpdateLayout);
-        list-&gt;append(value.releaseNonNull());
-    }
-    return list;
</del><ins>+    auto list = CSSValueList::createSlashSeparated();
+    for (size_t i = 0; i &lt; shorthand.length(); ++i)
+        list-&gt;append(propertyValue(shorthand.properties()[i], DoNotUpdateLayout).releaseNonNull());
+    return WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;MutableStyleProperties&gt; ComputedStyleExtractor::copyPropertiesInSet(const CSSPropertyID* set, unsigned length)
</span><span class="lines">@@ -4114,8 +4072,7 @@
</span><span class="cx">     Vector&lt;CSSProperty, 256&gt; list;
</span><span class="cx">     list.reserveInitialCapacity(length);
</span><span class="cx">     for (unsigned i = 0; i &lt; length; ++i) {
</span><del>-        auto value = propertyValue(set[i]);
-        if (value)
</del><ins>+        if (auto value = propertyValue(set[i]))
</ins><span class="cx">             list.append(CSSProperty(set[i], WTFMove(value), false));
</span><span class="cx">     }
</span><span class="cx">     return MutableStyleProperties::create(list.data(), list.size());
</span><span class="lines">@@ -4138,7 +4095,7 @@
</span><span class="cx">     CSSPropertyID propertyID = cssPropertyID(propertyName);
</span><span class="cx">     if (!propertyID)
</span><span class="cx">         return nullptr;
</span><del>-    RefPtr&lt;CSSValue&gt; value = getPropertyCSSValue(propertyID);
</del><ins>+    auto value = getPropertyCSSValue(propertyID);
</ins><span class="cx">     if (!value)
</span><span class="cx">         return nullptr;
</span><span class="cx">     return value-&gt;createDeprecatedCSSOMWrapper();
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSImageGeneratorValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="cx">     CachedGeneratedImage(CSSImageGeneratorValue&amp;, FloatSize, GeneratedImage&amp;);
</span><del>-    GeneratedImage&amp; image() const { return const_cast&lt;GeneratedImage&amp;&gt;(m_image.get()); }
</del><ins>+    GeneratedImage&amp; image() const { return m_image; }
</ins><span class="cx">     void puntEvictionTimer() { m_evictionTimer.restart(); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSKeyframesRulecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSKeyframesRule.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSKeyframesRule.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/CSSKeyframesRule.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -211,12 +211,10 @@
</span><span class="cx"> { 
</span><span class="cx">     if (index &gt;= length())
</span><span class="cx">         return nullptr;
</span><del>-
</del><span class="cx">     ASSERT(m_childRuleCSSOMWrappers.size() == m_keyframesRule-&gt;keyframes().size());
</span><del>-    RefPtr&lt;CSSKeyframeRule&gt;&amp; rule = m_childRuleCSSOMWrappers[index];
</del><ins>+    auto&amp; rule = m_childRuleCSSOMWrappers[index];
</ins><span class="cx">     if (!rule)
</span><del>-        rule = adoptRef(new CSSKeyframeRule(const_cast&lt;StyleRuleKeyframe&amp;&gt;(m_keyframesRule-&gt;keyframes()[index].get()), const_cast&lt;CSSKeyframesRule*&gt;(this)));
-
</del><ins>+        rule = adoptRef(*new CSSKeyframeRule(m_keyframesRule-&gt;keyframes()[index], const_cast&lt;CSSKeyframesRule*&gt;(this)));
</ins><span class="cx">     return rule.get(); 
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPrimitiveValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPrimitiveValue.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -427,7 +427,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_primitiveUnitType = CSS_PAIR;
</span><span class="cx">     m_hasCachedCSSText = false;
</span><del>-    m_value.pair = &amp;Pair::create(create(lengthSize.width(), style), create(lengthSize.height(), style)).leakRef();
</del><ins>+    m_value.pair = &amp;Pair::create(create(lengthSize.width, style), create(lengthSize.height, style)).leakRef();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CSSPrimitiveValue::init(Ref&lt;Counter&gt;&amp;&amp; counter)
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSStyleRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSStyleRule.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSStyleRule.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/CSSStyleRule.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">     WEBCORE_EXPORT CSSStyleDeclaration&amp; style();
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Not CSSOM. Remove.
</span><del>-    StyleRule&amp; styleRule() const { return const_cast&lt;StyleRule&amp;&gt;(m_styleRule.get()); }
</del><ins>+    StyleRule&amp; styleRule() const { return m_styleRule.get(); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CSSStyleRule(StyleRule&amp;, CSSStyleSheet*);
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSToStyleMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSToStyleMap.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSToStyleMap.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/CSSToStyleMap.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -188,12 +188,11 @@
</span><span class="cx"> static inline bool convertToLengthSize(const CSSPrimitiveValue&amp; primitiveValue, CSSToLengthConversionData conversionData, LengthSize&amp; size)
</span><span class="cx"> {
</span><span class="cx">     if (auto* pair = primitiveValue.pairValue()) {
</span><del>-        size.setWidth(pair-&gt;first()-&gt;convertToLength&lt;AnyConversion&gt;(conversionData));
-        size.setHeight(pair-&gt;second()-&gt;convertToLength&lt;AnyConversion&gt;(conversionData));
</del><ins>+        size.width = pair-&gt;first()-&gt;convertToLength&lt;AnyConversion&gt;(conversionData);
+        size.height = pair-&gt;second()-&gt;convertToLength&lt;AnyConversion&gt;(conversionData);
</ins><span class="cx">     } else
</span><del>-        size.setWidth(primitiveValue.convertToLength&lt;AnyConversion&gt;(conversionData));
-
-    return !size.width().isUndefined() &amp;&amp; !size.height().isUndefined();
</del><ins>+        size.width = primitiveValue.convertToLength&lt;AnyConversion&gt;(conversionData);
+    return !size.width.isUndefined() &amp;&amp; !size.height.isUndefined();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CSSToStyleMap::mapFillSize(CSSPropertyID propertyID, FillLayer&amp; layer, const CSSValue&amp; value)
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontFacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontFace.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontFace.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/FontFace.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -258,13 +258,13 @@
</span><span class="cx"> 
</span><span class="cx"> String FontFace::family() const
</span><span class="cx"> {
</span><del>-    const_cast&lt;CSSFontFace&amp;&gt;(m_backing.get()).updateStyleIfNeeded();
</del><ins>+    m_backing-&gt;updateStyleIfNeeded();
</ins><span class="cx">     return m_backing-&gt;families()-&gt;cssText();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String FontFace::style() const
</span><span class="cx"> {
</span><del>-    const_cast&lt;CSSFontFace&amp;&gt;(m_backing.get()).updateStyleIfNeeded();
</del><ins>+    m_backing-&gt;updateStyleIfNeeded();
</ins><span class="cx">     switch (m_backing-&gt;traitsMask() &amp; FontStyleMask) {
</span><span class="cx">     case FontStyleNormalMask:
</span><span class="cx">         return String(&quot;normal&quot;, String::ConstructFromLiteral);
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx"> 
</span><span class="cx"> String FontFace::weight() const
</span><span class="cx"> {
</span><del>-    const_cast&lt;CSSFontFace&amp;&gt;(m_backing.get()).updateStyleIfNeeded();
</del><ins>+    m_backing-&gt;updateStyleIfNeeded();
</ins><span class="cx">     switch (m_backing-&gt;traitsMask() &amp; FontWeightMask) {
</span><span class="cx">     case FontWeight100Mask:
</span><span class="cx">         return String(&quot;100&quot;, String::ConstructFromLiteral);
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx"> 
</span><span class="cx"> String FontFace::unicodeRange() const
</span><span class="cx"> {
</span><del>-    const_cast&lt;CSSFontFace&amp;&gt;(m_backing.get()).updateStyleIfNeeded();
</del><ins>+    m_backing-&gt;updateStyleIfNeeded();
</ins><span class="cx">     if (!m_backing-&gt;ranges().size())
</span><span class="cx">         return ASCIILiteral(&quot;U+0-10FFFF&quot;);
</span><span class="cx">     RefPtr&lt;CSSValueList&gt; values = CSSValueList::createCommaSeparated();
</span><span class="lines">@@ -320,13 +320,13 @@
</span><span class="cx"> 
</span><span class="cx"> String FontFace::variant() const
</span><span class="cx"> {
</span><del>-    const_cast&lt;CSSFontFace&amp;&gt;(m_backing.get()).updateStyleIfNeeded();
</del><ins>+    m_backing-&gt;updateStyleIfNeeded();
</ins><span class="cx">     return computeFontVariant(m_backing-&gt;variantSettings())-&gt;cssText();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String FontFace::featureSettings() const
</span><span class="cx"> {
</span><del>-    const_cast&lt;CSSFontFace&amp;&gt;(m_backing.get()).updateStyleIfNeeded();
</del><ins>+    m_backing-&gt;updateStyleIfNeeded();
</ins><span class="cx">     if (!m_backing-&gt;featureSettings().size())
</span><span class="cx">         return ASCIILiteral(&quot;normal&quot;);
</span><span class="cx">     RefPtr&lt;CSSValueList&gt; list = CSSValueList::createCommaSeparated();
</span></span></pre></div>
<a id="trunkSourceWebCorecssLengthFunctionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/LengthFunctions.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/LengthFunctions.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/LengthFunctions.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -25,6 +25,7 @@
</span><span class="cx"> #include &quot;LengthFunctions.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;FloatSize.h&quot;
</span><ins>+#include &quot;LayoutSize.h&quot;
</ins><span class="cx"> #include &quot;LengthSize.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -58,6 +59,11 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+LayoutSize sizeForLengthSize(const LengthSize&amp; length, const LayoutSize&amp; maximumValue)
+{
+    return { valueForLength(length.width, maximumValue.width()), valueForLength(length.height, maximumValue.height()) };
+}
+
</ins><span class="cx"> // FIXME: when subpixel layout is supported this copy of floatValueForLength() can be removed. See bug 71143.
</span><span class="cx"> float floatValueForLength(const Length&amp; length, LayoutUnit maximumValue)
</span><span class="cx"> {
</span><span class="lines">@@ -113,7 +119,7 @@
</span><span class="cx"> 
</span><span class="cx"> FloatSize floatSizeForLengthSize(const LengthSize&amp; lengthSize, const FloatSize&amp; boxSize)
</span><span class="cx"> {
</span><del>-    return FloatSize(floatValueForLength(lengthSize.width(), boxSize.width()), floatValueForLength(lengthSize.height(), boxSize.height()));
</del><ins>+    return { floatValueForLength(lengthSize.width, boxSize.width()), floatValueForLength(lengthSize.height, boxSize.height()) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecssLengthFunctionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/LengthFunctions.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/LengthFunctions.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/LengthFunctions.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">     Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><del>-    Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
</del><ins>+    Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">     Copyright (C) 2011 Rik Cabanier (cabanier@adobe.com)
</span><span class="cx">     Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
</span><span class="cx">     Copyright (C) 2012 Motorola Mobility, Inc. All rights reserved.
</span><span class="lines">@@ -29,8 +29,9 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class FloatSize;
</span><del>-class LayoutUnit;
</del><ins>+class LayoutSize;
</ins><span class="cx"> class RenderView;
</span><ins>+
</ins><span class="cx"> struct Length;
</span><span class="cx"> struct LengthSize;
</span><span class="cx"> 
</span><span class="lines">@@ -38,6 +39,7 @@
</span><span class="cx"> int intValueForLength(const Length&amp;, LayoutUnit maximumValue);
</span><span class="cx"> LayoutUnit minimumValueForLength(const Length&amp;, LayoutUnit maximumValue);
</span><span class="cx"> WEBCORE_EXPORT LayoutUnit valueForLength(const Length&amp;, LayoutUnit maximumValue);
</span><ins>+LayoutSize sizeForLengthSize(const LengthSize&amp;, const LayoutSize&amp; maximumValue);
</ins><span class="cx"> float floatValueForLength(const Length&amp;, LayoutUnit maximumValue);
</span><span class="cx"> WEBCORE_EXPORT float floatValueForLength(const Length&amp;, float maximumValue);
</span><span class="cx"> FloatSize floatSizeForLengthSize(const LengthSize&amp;, const FloatSize&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssSVGCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CSSPrimitiveValueMappings.h&quot;
</span><span class="cx"> #include &quot;CSSPropertyNames.h&quot;
</span><ins>+#include &quot;CSSValueList.h&quot;
</ins><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;Element.h&quot;
</span><span class="cx"> #include &quot;RenderStyle.h&quot;
</span><span class="lines">@@ -31,34 +32,34 @@
</span><span class="cx"> 
</span><span class="cx"> static Ref&lt;CSSValue&gt; paintOrder(PaintOrder paintOrder)
</span><span class="cx"> {
</span><del>-    Ref&lt;CSSValueList&gt; paintOrderList = CSSValueList::createSpaceSeparated();
-    Ref&lt;CSSValue&gt; fill = CSSPrimitiveValue::createIdentifier(CSSValueFill);
-    Ref&lt;CSSValue&gt; stroke = CSSPrimitiveValue::createIdentifier(CSSValueStroke);
-    Ref&lt;CSSValue&gt; markers = CSSPrimitiveValue::createIdentifier(CSSValueMarkers);
</del><ins>+    if (paintOrder == PaintOrderNormal)
+        return CSSPrimitiveValue::createIdentifier(CSSValueNormal);
</ins><span class="cx"> 
</span><ins>+    auto paintOrderList = CSSValueList::createSpaceSeparated();
</ins><span class="cx">     switch (paintOrder) {
</span><span class="cx">     case PaintOrderNormal:
</span><del>-        return CSSPrimitiveValue::createIdentifier(CSSValueNormal);
</del><ins>+        ASSERT_NOT_REACHED();
+        break;
</ins><span class="cx">     case PaintOrderFill:
</span><del>-        paintOrderList-&gt;append(WTFMove(fill));
</del><ins>+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueFill));
</ins><span class="cx">         break;
</span><span class="cx">     case PaintOrderFillMarkers:
</span><del>-        paintOrderList-&gt;append(WTFMove(fill));
-        paintOrderList-&gt;append(WTFMove(markers));
</del><ins>+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueFill));
+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers));
</ins><span class="cx">         break;
</span><span class="cx">     case PaintOrderStroke:
</span><del>-        paintOrderList-&gt;append(WTFMove(stroke));
</del><ins>+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueStroke));
</ins><span class="cx">         break;
</span><span class="cx">     case PaintOrderStrokeMarkers:
</span><del>-        paintOrderList-&gt;append(WTFMove(stroke));
-        paintOrderList-&gt;append(WTFMove(markers));
</del><ins>+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueStroke));
+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers));
</ins><span class="cx">         break;
</span><span class="cx">     case PaintOrderMarkers:
</span><del>-        paintOrderList-&gt;append(WTFMove(markers));
</del><ins>+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers));
</ins><span class="cx">         break;
</span><span class="cx">     case PaintOrderMarkersStroke:
</span><del>-        paintOrderList-&gt;append(WTFMove(markers));
-        paintOrderList-&gt;append(WTFMove(stroke));
</del><ins>+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueMarkers));
+        paintOrderList-&gt;append(CSSPrimitiveValue::createIdentifier(CSSValueStroke));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     return WTFMove(paintOrderList);
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -294,21 +294,19 @@
</span><span class="cx"> 
</span><span class="cx"> inline LengthSize StyleBuilderConverter::convertRadius(StyleResolver&amp; styleResolver, const CSSValue&amp; value)
</span><span class="cx"> {
</span><del>-    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
-    Pair* pair = primitiveValue.pairValue();
</del><ins>+    auto* pair = downcast&lt;CSSPrimitiveValue&gt;(value).pairValue();
</ins><span class="cx">     if (!pair || !pair-&gt;first() || !pair-&gt;second())
</span><del>-        return LengthSize(Length(0, Fixed), Length(0, Fixed));
</del><ins>+        return { { 0, Fixed }, { 0, Fixed } };
</ins><span class="cx"> 
</span><span class="cx">     CSSToLengthConversionData conversionData = styleResolver.state().cssToLengthConversionData();
</span><del>-    Length radiusWidth = convertToRadiusLength(conversionData, *pair-&gt;first());
-    Length radiusHeight = convertToRadiusLength(conversionData, *pair-&gt;second());
</del><ins>+    LengthSize radius { convertToRadiusLength(conversionData, *pair-&gt;first()), convertToRadiusLength(conversionData, *pair-&gt;second()) };
</ins><span class="cx"> 
</span><del>-    ASSERT(!radiusWidth.isNegative());
-    ASSERT(!radiusHeight.isNegative());
-    if (radiusWidth.isZero() || radiusHeight.isZero())
-        return LengthSize(Length(0, Fixed), Length(0, Fixed));
</del><ins>+    ASSERT(!radius.width.isNegative());
+    ASSERT(!radius.height.isNegative());
+    if (radius.width.isZero() || radius.height.isZero())
+        return { { 0, Fixed }, { 0, Fixed } };
</ins><span class="cx"> 
</span><del>-    return LengthSize(radiusWidth, radiusHeight);
</del><ins>+    return radius;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline Length StyleBuilderConverter::convertTo100PercentMinusLength(const Length&amp; length)
</span><span class="lines">@@ -766,7 +764,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (isImageShape(value))
</span><del>-        return ShapeValue::create(styleResolver.styleImage(value));
</del><ins>+        return ShapeValue::create(styleResolver.styleImage(value).releaseNonNull());
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;BasicShape&gt; shape;
</span><span class="cx">     CSSBoxType referenceBox = BoxMissing;
</span><span class="lines">@@ -786,7 +784,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (shape)
</span><del>-        return ShapeValue::create(WTFMove(shape), referenceBox);
</del><ins>+        return ShapeValue::create(shape.releaseNonNull(), referenceBox);
</ins><span class="cx"> 
</span><span class="cx">     if (referenceBox != BoxMissing)
</span><span class="cx">         return ShapeValue::create(referenceBox);
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderCustom.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderCustom.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/StyleBuilderCustom.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><del>- * Copyright (C) 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -58,6 +58,11 @@
</span><span class="cx">     static void applyInitial##property(StyleResolver&amp;); \
</span><span class="cx">     static void applyValue##property(StyleResolver&amp;, CSSValue&amp;)
</span><span class="cx"> 
</span><ins>+template&lt;typename T&gt; inline T forwardInheritedValue(T&amp;&amp; value) { return std::forward&lt;T&gt;(value); }
+inline Length forwardInheritedValue(const Length&amp; value) { auto copy = value; return copy; }
+inline LengthSize forwardInheritedValue(const LengthSize&amp; value) { auto copy = value; return copy; }
+inline LengthBox forwardInheritedValue(const LengthBox&amp; value) { auto copy = value; return copy; }
+
</ins><span class="cx"> // Note that we assume the CSS parser only allows valid CSSValue types.
</span><span class="cx"> class StyleBuilderCustom {
</span><span class="cx"> public:
</span><span class="lines">@@ -301,6 +306,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><ins>+
</ins><span class="cx"> static Length convertToIntLength(const CSSPrimitiveValue* primitiveValue, const CSSToLengthConversionData&amp; conversionData)
</span><span class="cx"> {
</span><span class="cx">     return primitiveValue ? primitiveValue-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | CalculatedConversion&gt;(conversionData) : Length(Undefined);
</span><span class="lines">@@ -318,7 +324,7 @@
</span><span class="cx">     if (!region)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    DashboardRegion* first = region;
</del><ins>+    auto* first = region;
</ins><span class="cx">     while (region) {
</span><span class="cx">         Length top = convertToIntLength(region-&gt;top(), styleResolver.state().cssToLengthConversionData().copyWithAdjustedZoom(1.0f));
</span><span class="cx">         Length right = convertToIntLength(region-&gt;right(), styleResolver.state().cssToLengthConversionData().copyWithAdjustedZoom(1.0f));
</span><span class="lines">@@ -335,17 +341,20 @@
</span><span class="cx">             left = Length();
</span><span class="cx"> 
</span><span class="cx">         if (region-&gt;m_isCircle)
</span><del>-            styleResolver.style()-&gt;setDashboardRegion(StyleDashboardRegion::Circle, region-&gt;m_label, top, right, bottom, left, region == first ? false : true);
</del><ins>+            styleResolver.style()-&gt;setDashboardRegion(StyleDashboardRegion::Circle, region-&gt;m_label, WTFMove(top), WTFMove(right), WTFMove(bottom), WTFMove(left), region != first);
</ins><span class="cx">         else if (region-&gt;m_isRectangle)
</span><del>-            styleResolver.style()-&gt;setDashboardRegion(StyleDashboardRegion::Rectangle, region-&gt;m_label, top, right, bottom, left, region == first ? false : true);
</del><ins>+            styleResolver.style()-&gt;setDashboardRegion(StyleDashboardRegion::Rectangle, region-&gt;m_label, WTFMove(top), WTFMove(right), WTFMove(bottom), WTFMove(left), region != first);
+
</ins><span class="cx">         region = region-&gt;m_next.get();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     styleResolver.document().setHasAnnotatedRegions(true);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif // ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><ins>+
</ins><span class="cx"> inline void StyleBuilderCustom::applyInheritImageResolution(StyleResolver&amp; styleResolver)
</span><span class="cx"> {
</span><span class="cx">     styleResolver.style()-&gt;setImageResolutionSource(styleResolver.parentStyle()-&gt;imageResolutionSource());
</span><span class="lines">@@ -378,18 +387,23 @@
</span><span class="cx">     styleResolver.style()-&gt;setImageResolutionSnap(snap);
</span><span class="cx">     styleResolver.style()-&gt;setImageResolution(resolution);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif // ENABLE(CSS_IMAGE_RESOLUTION)
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInheritSize(StyleResolver&amp;) { }
</span><ins>+
</ins><span class="cx"> inline void StyleBuilderCustom::applyInitialSize(StyleResolver&amp;) { }
</span><ins>+
</ins><span class="cx"> inline void StyleBuilderCustom::applyValueSize(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     styleResolver.style()-&gt;resetPageSizeType();
</span><ins>+
+    if (!is&lt;CSSValueList&gt;(value))
+        return;
+
</ins><span class="cx">     Length width;
</span><span class="cx">     Length height;
</span><span class="cx">     PageSizeType pageSizeType = PAGE_SIZE_AUTO;
</span><del>-    if (!is&lt;CSSValueList&gt;(value))
-        return;
</del><span class="cx"> 
</span><span class="cx">     auto&amp; valueList = downcast&lt;CSSValueList&gt;(value);
</span><span class="cx">     switch (valueList.length()) {
</span><span class="lines">@@ -453,12 +467,12 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     styleResolver.style()-&gt;setPageSizeType(pageSizeType);
</span><del>-    styleResolver.style()-&gt;setPageSize(LengthSize(width, height));
</del><ins>+    styleResolver.style()-&gt;setPageSize({ WTFMove(width), WTFMove(height) });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInheritTextIndent(StyleResolver&amp; styleResolver)
</span><span class="cx"> {
</span><del>-    styleResolver.style()-&gt;setTextIndent(styleResolver.parentStyle()-&gt;textIndent());
</del><ins>+    styleResolver.style()-&gt;setTextIndent(Length { styleResolver.parentStyle()-&gt;textIndent() });
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><span class="cx">     styleResolver.style()-&gt;setTextIndentLine(styleResolver.parentStyle()-&gt;textIndentLine());
</span><span class="cx">     styleResolver.style()-&gt;setTextIndentType(styleResolver.parentStyle()-&gt;textIndentType());
</span><span class="lines">@@ -496,7 +510,7 @@
</span><span class="cx">     if (lengthOrPercentageValue.isUndefined())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    styleResolver.style()-&gt;setTextIndent(lengthOrPercentageValue);
</del><ins>+    styleResolver.style()-&gt;setTextIndent(WTFMove(lengthOrPercentageValue));
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><span class="cx">     styleResolver.style()-&gt;setTextIndentLine(textIndentLineValue);
</span><span class="cx">     styleResolver.style()-&gt;setTextIndentType(textIndentTypeValue);
</span><span class="lines">@@ -611,8 +625,8 @@
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInheritLineHeight(StyleResolver&amp; styleResolver)
</span><span class="cx"> {
</span><del>-    styleResolver.style()-&gt;setLineHeight(styleResolver.parentStyle()-&gt;lineHeight());
-    styleResolver.style()-&gt;setSpecifiedLineHeight(styleResolver.parentStyle()-&gt;specifiedLineHeight());
</del><ins>+    styleResolver.style()-&gt;setLineHeight(Length { styleResolver.parentStyle()-&gt;lineHeight() });
+    styleResolver.style()-&gt;setSpecifiedLineHeight(Length { styleResolver.parentStyle()-&gt;specifiedLineHeight() });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInitialLineHeight(StyleResolver&amp; styleResolver)
</span><span class="lines">@@ -628,8 +642,8 @@
</span><span class="cx">     if (!lineHeight)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    styleResolver.style()-&gt;setLineHeight(lineHeight.value());
-    styleResolver.style()-&gt;setSpecifiedLineHeight(lineHeight.value());
</del><ins>+    styleResolver.style()-&gt;setLineHeight(Length { lineHeight.value() });
+    styleResolver.style()-&gt;setSpecifiedLineHeight(WTFMove(lineHeight.value()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -665,7 +679,8 @@
</span><span class="cx">     auto* parentStyle = styleResolver.parentStyle();
</span><span class="cx">     if (!parentStyle-&gt;hasClip())
</span><span class="cx">         return applyInitialClip(styleResolver);
</span><del>-    styleResolver.style()-&gt;setClip(parentStyle-&gt;clipTop(), parentStyle-&gt;clipRight(), parentStyle-&gt;clipBottom(), parentStyle-&gt;clipLeft());
</del><ins>+    styleResolver.style()-&gt;setClip(Length { parentStyle-&gt;clipTop() }, Length { parentStyle-&gt;clipRight() },
+        Length { parentStyle-&gt;clipBottom() }, Length { parentStyle-&gt;clipLeft() });
</ins><span class="cx">     styleResolver.style()-&gt;setHasClip(true);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -672,14 +687,13 @@
</span><span class="cx"> inline void StyleBuilderCustom::applyValueClip(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><del>-
-    if (Rect* rect = primitiveValue.rectValue()) {
</del><ins>+    if (auto* rect = primitiveValue.rectValue()) {
</ins><span class="cx">         auto conversionData = styleResolver.state().cssToLengthConversionData();
</span><del>-        Length top = rect-&gt;top()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
-        Length right = rect-&gt;right()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
-        Length bottom = rect-&gt;bottom()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
-        Length left = rect-&gt;left()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
-        styleResolver.style()-&gt;setClip(top, right, bottom, left);
</del><ins>+        auto top = rect-&gt;top()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
+        auto right = rect-&gt;right()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
+        auto bottom = rect-&gt;bottom()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
+        auto left = rect-&gt;left()-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | AutoConversion&gt;(conversionData);
+        styleResolver.style()-&gt;setClip(WTFMove(top), WTFMove(right), WTFMove(bottom), WTFMove(left));
</ins><span class="cx">         styleResolver.style()-&gt;setHasClip(true);
</span><span class="cx">     } else {
</span><span class="cx">         ASSERT(primitiveValue.valueID() == CSSValueAuto);
</span><span class="lines">@@ -735,12 +749,12 @@
</span><span class="cx">     styleResolver.state().setFontDirty(true);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template &lt;CSSPropertyID id&gt;
</del><ins>+template&lt;CSSPropertyID property&gt;
</ins><span class="cx"> inline void StyleBuilderCustom::applyTextOrBoxShadowValue(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (is&lt;CSSPrimitiveValue&gt;(value)) {
</span><span class="cx">         ASSERT(downcast&lt;CSSPrimitiveValue&gt;(value).valueID() == CSSValueNone);
</span><del>-        if (id == CSSPropertyTextShadow)
</del><ins>+        if (property == CSSPropertyTextShadow)
</ins><span class="cx">             styleResolver.style()-&gt;setTextShadow(nullptr);
</span><span class="cx">         else
</span><span class="cx">             styleResolver.style()-&gt;setBoxShadow(nullptr);
</span><span class="lines">@@ -761,8 +775,8 @@
</span><span class="cx">             color = styleResolver.colorFromPrimitiveValue(*shadowValue.color);
</span><span class="cx">         else
</span><span class="cx">             color = styleResolver.style()-&gt;color();
</span><del>-        auto shadowData = std::make_unique&lt;ShadowData&gt;(IntPoint(x, y), blur, spread, shadowStyle, id == CSSPropertyWebkitBoxShadow, color.isValid() ? color : Color::transparent);
-        if (id == CSSPropertyTextShadow)
</del><ins>+        auto shadowData = std::make_unique&lt;ShadowData&gt;(IntPoint(x, y), blur, spread, shadowStyle, property == CSSPropertyWebkitBoxShadow, color.isValid() ? color : Color::transparent);
+        if (property == CSSPropertyTextShadow)
</ins><span class="cx">             styleResolver.style()-&gt;setTextShadow(WTFMove(shadowData), !isFirstEntry); // add to the list if this is not the first entry
</span><span class="cx">         else
</span><span class="cx">             styleResolver.style()-&gt;setBoxShadow(WTFMove(shadowData), !isFirstEntry); // add to the list if this is not the first entry
</span><span class="lines">@@ -1156,14 +1170,14 @@
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInitialFill(StyleResolver&amp; styleResolver)
</span><span class="cx"> {
</span><del>-    SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
</del><ins>+    auto&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
</ins><span class="cx">     svgStyle.setFillPaint(SVGRenderStyle::initialFillPaintType(), SVGRenderStyle::initialFillPaintColor(), SVGRenderStyle::initialFillPaintUri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInheritFill(StyleResolver&amp; styleResolver)
</span><span class="cx"> {
</span><del>-    SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
-    const SVGRenderStyle&amp; svgParentStyle = styleResolver.parentStyle()-&gt;svgStyle();
</del><ins>+    auto&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
+    auto&amp; svgParentStyle = styleResolver.parentStyle()-&gt;svgStyle();
</ins><span class="cx">     svgStyle.setFillPaint(svgParentStyle.fillPaintType(), svgParentStyle.fillPaintColor(), svgParentStyle.fillPaintUri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="lines">@@ -1170,8 +1184,8 @@
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyValueFill(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><del>-    SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
-    const CSSPrimitiveValue* localValue = value.isPrimitiveValue() ? &amp;downcast&lt;CSSPrimitiveValue&gt;(value) : nullptr;
</del><ins>+    auto&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
+    const auto* localValue = value.isPrimitiveValue() ? &amp;downcast&lt;CSSPrimitiveValue&gt;(value) : nullptr;
</ins><span class="cx">     String url;
</span><span class="cx">     if (value.isValueList()) {
</span><span class="cx">         const CSSValueList&amp; list = downcast&lt;CSSValueList&gt;(value);
</span><span class="lines">@@ -1183,10 +1197,10 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     Color color;
</span><del>-    SVGPaintType paintType = SVG_PAINTTYPE_RGBCOLOR;
</del><ins>+    auto paintType = SVG_PAINTTYPE_RGBCOLOR;
</ins><span class="cx">     if (localValue-&gt;isURI()) {
</span><span class="cx">         paintType = SVG_PAINTTYPE_URI;
</span><del>-        url = downcast&lt;CSSPrimitiveValue&gt;(localValue)-&gt;stringValue();
</del><ins>+        url = localValue-&gt;stringValue();
</ins><span class="cx">     } else if (localValue-&gt;isValueID() &amp;&amp; localValue-&gt;valueID() == CSSValueNone)
</span><span class="cx">         paintType = url.isEmpty() ? SVG_PAINTTYPE_NONE : SVG_PAINTTYPE_URI_NONE;
</span><span class="cx">     else if (localValue-&gt;isValueID() &amp;&amp; localValue-&gt;valueID() == CSSValueCurrentcolor) {
</span><span class="lines">@@ -1207,15 +1221,15 @@
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInheritStroke(StyleResolver&amp; styleResolver)
</span><span class="cx"> {
</span><del>-    SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
-    const SVGRenderStyle&amp; svgParentStyle = styleResolver.parentStyle()-&gt;svgStyle();
</del><ins>+    auto&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
+    auto&amp; svgParentStyle = styleResolver.parentStyle()-&gt;svgStyle();
</ins><span class="cx">     svgStyle.setStrokePaint(svgParentStyle.strokePaintType(), svgParentStyle.strokePaintColor(), svgParentStyle.strokePaintUri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyValueStroke(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><del>-    SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
-    const CSSPrimitiveValue* localValue = value.isPrimitiveValue() ? &amp;downcast&lt;CSSPrimitiveValue&gt;(value) : nullptr;
</del><ins>+    auto&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
+    const auto* localValue = value.isPrimitiveValue() ? &amp;downcast&lt;CSSPrimitiveValue&gt;(value) : nullptr;
</ins><span class="cx">     String url;
</span><span class="cx">     if (value.isValueList()) {
</span><span class="cx">         const CSSValueList&amp; list = downcast&lt;CSSValueList&gt;(value);
</span><span class="lines">@@ -1227,7 +1241,7 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     Color color;
</span><del>-    SVGPaintType paintType = SVG_PAINTTYPE_RGBCOLOR;
</del><ins>+    auto paintType = SVG_PAINTTYPE_RGBCOLOR;
</ins><span class="cx">     if (localValue-&gt;isURI()) {
</span><span class="cx">         paintType = SVG_PAINTTYPE_URI;
</span><span class="cx">         url = downcast&lt;CSSPrimitiveValue&gt;(localValue)-&gt;stringValue();
</span><span class="lines">@@ -1258,7 +1272,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyValueWebkitSvgShadow(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><del>-    SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
</del><ins>+    auto&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
</ins><span class="cx">     if (is&lt;CSSPrimitiveValue&gt;(value)) {
</span><span class="cx">         ASSERT(downcast&lt;CSSPrimitiveValue&gt;(value).valueID() == CSSValueNone);
</span><span class="cx">         svgStyle.setShadow(nullptr);
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx">     m_hasUAAppearance = m_style-&gt;hasAppearance();
</span><span class="cx">     if (m_hasUAAppearance) {
</span><span class="cx">         m_borderData = m_style-&gt;border();
</span><del>-        m_backgroundData = *m_style-&gt;backgroundLayers();
</del><ins>+        m_backgroundData = m_style-&gt;backgroundLayers();
</ins><span class="cx">         m_backgroundColor = m_style-&gt;backgroundColor();
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -1328,7 +1328,7 @@
</span><span class="cx">         // We can build up the style by copying non-inherited properties from an earlier style object built using the same exact
</span><span class="cx">         // style declarations. We then only need to apply the inherited properties, if any, as their values can depend on the 
</span><span class="cx">         // element context. This is fast and saves memory by reusing the style data structures.
</span><del>-        state.style()-&gt;copyNonInheritedFrom(cacheItem-&gt;renderStyle.get());
</del><ins>+        state.style()-&gt;copyNonInheritedFrom(*cacheItem-&gt;renderStyle);
</ins><span class="cx">         if (state.parentStyle()-&gt;inheritedDataShared(cacheItem-&gt;parentRenderStyle.get()) &amp;&amp; !isAtShadowBoundary(element)) {
</span><span class="cx">             EInsideLink linkStatus = state.style()-&gt;insideLink();
</span><span class="cx">             // If the cache item parent style has identical inherited properties to the current parent style then the
</span><span class="lines">@@ -1661,17 +1661,10 @@
</span><span class="cx">     if (isInherit &amp;&amp; !CSSProperty::isInheritedProperty(id))
</span><span class="cx">         state.style()-&gt;setHasExplicitlyInheritedProperties();
</span><span class="cx">     
</span><del>-    if (id == CSSPropertyCustom) {
-        CSSCustomPropertyValue* customProperty = &amp;downcast&lt;CSSCustomPropertyValue&gt;(*valueToApply);
-        if (isInherit) {
-            RefPtr&lt;CSSCustomPropertyValue&gt; customVal = state.parentStyle()-&gt;getCustomPropertyValue(customProperty-&gt;name());
-            if (!customVal)
-                customVal = CSSCustomPropertyValue::createInvalid();
-            state.style()-&gt;setCustomPropertyValue(customProperty-&gt;name(), customVal);
-        } else if (isInitial)
-            state.style()-&gt;setCustomPropertyValue(customProperty-&gt;name(), CSSCustomPropertyValue::createInvalid());
-        else
-            state.style()-&gt;setCustomPropertyValue(customProperty-&gt;name(), customProperty);
</del><ins>+    if (customPropertyValue) {
+        auto&amp; name = customPropertyValue-&gt;name();
+        auto* value = isInitial ? nullptr : isInherit ? state.parentStyle()-&gt;customProperties().get(name) : customPropertyValue;
+        state.style()-&gt;setCustomPropertyValue(name, value ? makeRef(*value) : CSSCustomPropertyValue::createInvalid());
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssmakeproppl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/makeprop.pl (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/makeprop.pl        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/css/makeprop.pl        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -614,8 +614,8 @@
</span><span class="cx">   my $indent = shift;
</span><span class="cx"> 
</span><span class="cx">   my $setterContent = &quot;&quot;;
</span><del>-  $setterContent .= $indent . &quot;AnimationList&amp; list = styleResolver.style()-&gt;&quot; . getEnsureAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
-  $setterContent .= $indent . &quot;const AnimationList* parentList = styleResolver.parentStyle()-&gt;&quot; . getAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;auto&amp; list = styleResolver.style()-&gt;&quot; . getEnsureAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
+  $setterContent .= $indent . &quot;auto* parentList = styleResolver.parentStyle()-&gt;&quot; . getAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;size_t i = 0, parentSize = parentList ? parentList-&gt;size() : 0;\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;for ( ; i &lt; parentSize &amp;&amp; parentList-&gt;animation(i).&quot; . getTestFunction($name) . &quot;(); ++i) {\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    if (list.size() &lt;= i)\n&quot;;
</span><span class="lines">@@ -626,7 +626,7 @@
</span><span class="cx">   $setterContent .= $indent . &quot;    list.animation(i).setAnimationMode(parentList-&gt;animation(i).animationMode());\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;}\n&quot;;
</span><span class="cx">   $setterContent .= &quot;\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;/* Reset any remaining animations to not have the property set. */\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;// Reset any remaining animations to not have the property set.\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;for ( ; i &lt; list.size(); ++i)\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    list.animation(i).&quot; . getClearFunction($name) . &quot;();\n&quot;;
</span><span class="cx"> 
</span><span class="lines">@@ -674,11 +674,11 @@
</span><span class="cx"> 
</span><span class="cx">   my $setterContent = &quot;&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;// Check for (single-layer) no-op before clearing anything.\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;const FillLayer&amp; layers = *styleResolver.style()-&gt;&quot; . getLayersFunction($name) . &quot;();\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;auto&amp; layers = styleResolver.style()-&gt;&quot; . getLayersFunction($name) . &quot;();\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;if (!layers.next() &amp;&amp; (!layers.&quot; . $testFunction . &quot;() || layers.&quot; . $getter . &quot;() == $initial))\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    return;\n&quot;;
</span><span class="cx">   $setterContent .= &quot;\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;FillLayer* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;auto* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;child-&gt;&quot; . $setter . &quot;(&quot; . $initial . &quot;);\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;for (child = child-&gt;next(); child; child = child-&gt;next())\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    child-&gt;&quot; . $clearFunction . &quot;();\n&quot;;
</span><span class="lines">@@ -697,12 +697,12 @@
</span><span class="cx"> 
</span><span class="cx">   my $setterContent = &quot;&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;// Check for no-op before copying anything.\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;if (*styleResolver.parentStyle()-&gt;&quot; . getLayersFunction($name) .&quot;() == *styleResolver.style()-&gt;&quot; . getLayersFunction($name) . &quot;())\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;if (styleResolver.parentStyle()-&gt;&quot; . getLayersFunction($name) .&quot;() == styleResolver.style()-&gt;&quot; . getLayersFunction($name) . &quot;())\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;    return;\n&quot;;
</span><span class="cx">   $setterContent .= &quot;\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;auto* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;FillLayer* previousChild = nullptr;\n&quot;;
</span><del>-  $setterContent .= $indent . &quot;for (auto* parent = styleResolver.parentStyle()-&gt;&quot; . getLayersFunction($name) . &quot;(); parent &amp;&amp; parent-&gt;&quot; . $testFunction . &quot;(); parent = parent-&gt;next()) {\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;for (auto* parent = &amp;styleResolver.parentStyle()-&gt;&quot; . getLayersFunction($name) . &quot;(); parent &amp;&amp; parent-&gt;&quot; . $testFunction . &quot;(); parent = parent-&gt;next()) {\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;    if (!child) {\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;        previousChild-&gt;setNext(std::make_unique&lt;FillLayer&gt;(&quot; . getFillLayerType($name) . &quot;));\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;        child = previousChild-&gt;next();\n&quot;;
</span><span class="lines">@@ -724,7 +724,7 @@
</span><span class="cx">   my $CSSPropertyId = &quot;CSSProperty&quot; . $nameToId{$name};
</span><span class="cx"> 
</span><span class="cx">   my $setterContent = &quot;&quot;;
</span><del>-  $setterContent .= $indent . &quot;FillLayer* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
</del><ins>+  $setterContent .= $indent . &quot;auto* child = &amp;styleResolver.style()-&gt;&quot; . getLayersAccessorFunction($name) . &quot;();\n&quot;;
</ins><span class="cx">   $setterContent .= $indent . &quot;FillLayer* previousChild = nullptr;\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;if (is&lt;CSSValueList&gt;(value) &amp;&amp; !is&lt;CSSImageSetValue&gt;(value)) {\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    // Walk each value and put it into a layer, creating new layers as needed.\n&quot;;
</span><span class="lines">@@ -830,7 +830,7 @@
</span><span class="cx">   }
</span><span class="cx">   if (!$didCallSetValue) {
</span><span class="cx">     my $inheritedValue = $parentStyle . &quot;-&gt;&quot; . ($isSVG ? &quot;svgStyle().&quot; : &quot;&quot;) .  $getter . &quot;()&quot;;
</span><del>-    $setterContent .= $indent . &quot;    &quot; . generateSetValueStatement($name, $inheritedValue) . &quot;;\n&quot;;
</del><ins>+    $setterContent .= $indent . &quot;    &quot; . generateSetValueStatement($name, &quot;forwardInheritedValue(&quot; . $inheritedValue . &quot;)&quot;) . &quot;;\n&quot;;
</ins><span class="cx">   }
</span><span class="cx">   $setterContent .= $indent . &quot;}\n&quot;;
</span><span class="cx"> 
</span><span class="lines">@@ -849,7 +849,7 @@
</span><span class="cx">     $convertedValue = &quot;StyleBuilderConverter::convert&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;converter&quot;} . &quot;(styleResolver, value)&quot;;
</span><span class="cx">   } elsif (exists($propertiesWithStyleBuilderOptions{$name}{&quot;conditional-converter&quot;})) {
</span><span class="cx">     $setterContent .= $indent . &quot;    auto convertedValue = StyleBuilderConverter::convert&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;conditional-converter&quot;} . &quot;(styleResolver, value);\n&quot;;
</span><del>-    $convertedValue = &quot;convertedValue.value()&quot;;
</del><ins>+    $convertedValue = &quot;WTFMove(convertedValue.value())&quot;;
</ins><span class="cx">   } else {
</span><span class="cx">     $convertedValue = &quot;downcast&lt;CSSPrimitiveValue&gt;(value)&quot;;
</span><span class="cx">   }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/Document.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2072,7 +2072,7 @@
</span><span class="cx"> void Document::pageSizeAndMarginsInPixels(int pageIndex, IntSize&amp; pageSize, int&amp; marginTop, int&amp; marginRight, int&amp; marginBottom, int&amp; marginLeft)
</span><span class="cx"> {
</span><span class="cx">     updateStyleIfNeeded();
</span><del>-    std::unique_ptr&lt;RenderStyle&gt; style = styleScope().resolver().styleForPage(pageIndex);
</del><ins>+    auto style = styleScope().resolver().styleForPage(pageIndex);
</ins><span class="cx"> 
</span><span class="cx">     int width = pageSize.width();
</span><span class="cx">     int height = pageSize.height();
</span><span class="lines">@@ -2088,11 +2088,11 @@
</span><span class="cx">             std::swap(width, height);
</span><span class="cx">         break;
</span><span class="cx">     case PAGE_SIZE_RESOLVED: {
</span><del>-        LengthSize size = style-&gt;pageSize();
-        ASSERT(size.width().isFixed());
-        ASSERT(size.height().isFixed());
-        width = valueForLength(size.width(), 0);
-        height = valueForLength(size.height(), 0);
</del><ins>+        auto&amp; size = style-&gt;pageSize();
+        ASSERT(size.width.isFixed());
+        ASSERT(size.height.isFixed());
+        width = valueForLength(size.width, 0);
+        height = valueForLength(size.height, 0);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     default:
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventPathcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventPath.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventPath.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/EventPath.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -258,23 +258,21 @@
</span><span class="cx"> Vector&lt;EventTarget*&gt; EventPath::computePathUnclosedToTarget(const EventTarget&amp; target) const
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;EventTarget*&gt; path;
</span><del>-    const Node* targetNode = const_cast&lt;EventTarget&amp;&gt;(target).toNode();
</del><ins>+    auto* targetNode = const_cast&lt;EventTarget&amp;&gt;(target).toNode();
</ins><span class="cx">     if (!targetNode) {
</span><del>-        const DOMWindow* domWindow = const_cast&lt;EventTarget&amp;&gt;(target).toDOMWindow();
</del><ins>+        auto* domWindow = const_cast&lt;EventTarget&amp;&gt;(target).toDOMWindow();
</ins><span class="cx">         if (!domWindow)
</span><span class="cx">             return path;
</span><span class="cx">         targetNode = domWindow-&gt;document();
</span><span class="cx">         ASSERT(targetNode);
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     for (auto&amp; context : m_path) {
</span><del>-        if (Node* nodeInPath = context-&gt;currentTarget()-&gt;toNode()) {
</del><ins>+        if (auto* nodeInPath = context-&gt;currentTarget()-&gt;toNode()) {
</ins><span class="cx">             if (!targetNode-&gt;isClosedShadowHidden(*nodeInPath))
</span><span class="cx">                 path.append(context-&gt;currentTarget());
</span><span class="cx">         } else
</span><span class="cx">             path.append(context-&gt;currentTarget());
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     return path;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomLiveNodeListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/LiveNodeList.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/LiveNodeList.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/LiveNodeList.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">     virtual bool isRootedAtDocument() const = 0;
</span><span class="cx"> 
</span><span class="cx">     ALWAYS_INLINE NodeListInvalidationType invalidationType() const { return static_cast&lt;NodeListInvalidationType&gt;(m_invalidationType); }
</span><del>-    ContainerNode&amp; ownerNode() const { return const_cast&lt;ContainerNode&amp;&gt;(m_ownerNode.get()); }
</del><ins>+    ContainerNode&amp; ownerNode() const { return m_ownerNode; }
</ins><span class="cx">     ALWAYS_INLINE void invalidateCacheForAttribute(const QualifiedName* attrName) const
</span><span class="cx">     {
</span><span class="cx">         if (!attrName || shouldInvalidateTypeOnAttributeChange(invalidationType(), *attrName))
</span></span></pre></div>
<a id="trunkSourceWebCoredomMessageEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MessageEvent.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MessageEvent.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/MessageEvent.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -158,8 +158,8 @@
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     return WTF::switchOn(m_source.value(),
</span><del>-        [](const RefPtr&lt;DOMWindow&gt;&amp; window) -&gt; EventTarget* { return const_cast&lt;EventTarget*&gt;(static_cast&lt;const EventTarget*&gt;(window.get())); },
-        [](const RefPtr&lt;MessagePort&gt;&amp; messagePort) -&gt; EventTarget* { return const_cast&lt;EventTarget*&gt;(static_cast&lt;const EventTarget*&gt;(messagePort.get())); }
</del><ins>+        [] (const RefPtr&lt;DOMWindow&gt;&amp; window) -&gt; EventTarget* { return const_cast&lt;DOMWindow*&gt;(window.get()); },
+        [] (const RefPtr&lt;MessagePort&gt;&amp; messagePort) -&gt; EventTarget* { return const_cast&lt;MessagePort*&gt;(messagePort.get()); }
</ins><span class="cx">     );
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/Node.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -430,11 +430,10 @@
</span><span class="cx">     HashSet&lt;RefPtr&lt;Node&gt;&gt; nodeSet;
</span><span class="cx">     for (const auto&amp; variant : vector) {
</span><span class="cx">         WTF::switchOn(variant,
</span><del>-            [&amp;](const RefPtr&lt;Node&gt;&amp; node) { nodeSet.add(const_cast&lt;Node*&gt;(node.get())); },
-            [](const String&amp;) { }
</del><ins>+            [&amp;] (const RefPtr&lt;Node&gt;&amp; node) { nodeSet.add(const_cast&lt;Node*&gt;(node.get())); },
+            [] (const String&amp;) { }
</ins><span class="cx">         );
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     return nodeSet;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Range.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/Range.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     WEBCORE_EXPORT static Ref&lt;Range&gt; create(Document&amp;, const VisiblePosition&amp;, const VisiblePosition&amp;);
</span><span class="cx">     WEBCORE_EXPORT ~Range();
</span><span class="cx"> 
</span><del>-    Document&amp; ownerDocument() const { return const_cast&lt;Document&amp;&gt;(m_ownerDocument.get()); }
</del><ins>+    Document&amp; ownerDocument() const { return m_ownerDocument; }
</ins><span class="cx"> 
</span><span class="cx">     Node&amp; startContainer() const { ASSERT(m_start.container()); return *m_start.container(); }
</span><span class="cx">     unsigned startOffset() const { return m_start.offset(); }
</span></span></pre></div>
<a id="trunkSourceWebCoredomRegisteredEventListenerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/RegisteredEventListener.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/RegisteredEventListener.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/RegisteredEventListener.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">         return adoptRef(*new RegisteredEventListener(WTFMove(listener), options));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    EventListener&amp; callback() const { return const_cast&lt;EventListener&amp;&gt;(m_callback.get()); }
</del><ins>+    EventListener&amp; callback() const { return m_callback; }
</ins><span class="cx">     bool useCapture() const { return m_useCapture; }
</span><span class="cx">     bool isPassive() const { return m_isPassive; }
</span><span class="cx">     bool isOnce() const { return m_isOnce; }
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptRunnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptRunner.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptRunner.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/dom/ScriptRunner.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     }
</span><span class="cx">     for (auto&amp; pendingScript : m_pendingAsyncScripts) {
</span><span class="cx">         if (pendingScript-&gt;watchingForLoad())
</span><del>-            const_cast&lt;PendingScript&amp;&gt;(pendingScript.get()).clearClient();
</del><ins>+            pendingScript-&gt;clearClient();
</ins><span class="cx">         m_document.decrementLoadEventDelayCount();
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCollectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCollection.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCollection.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/html/HTMLCollection.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -187,7 +187,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline ContainerNode&amp; HTMLCollection::ownerNode() const
</span><span class="cx"> {
</span><del>-    return const_cast&lt;ContainerNode&amp;&gt;(m_ownerNode.get());
</del><ins>+    return m_ownerNode;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline Document&amp; HTMLCollection::document() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLStackItemh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLStackItem.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLStackItem.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/html/parser/HTMLStackItem.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> inline ContainerNode&amp; HTMLStackItem::node() const
</span><span class="cx"> {
</span><del>-    return const_cast&lt;ContainerNode&amp;&gt;(m_node.get());
</del><ins>+    return m_node.get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline Element&amp; HTMLStackItem::element() const
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorPageScriptDebugServercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/PageScriptDebugServer.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/PageScriptDebugServer.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/inspector/PageScriptDebugServer.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -133,58 +133,44 @@
</span><span class="cx"> {
</span><span class="cx">     setMainThreadCallbacksPaused(paused);
</span><span class="cx"> 
</span><del>-    for (auto&amp; page : pageGroup.pages())
-        setJavaScriptPaused(page, paused);
-}
</del><ins>+    for (auto&amp; page : pageGroup.pages()) {
+        page-&gt;setDefersLoading(paused);
</ins><span class="cx"> 
</span><del>-void PageScriptDebugServer::setJavaScriptPaused(Page* page, bool paused)
-{
-    ASSERT_ARG(page, page);
</del><ins>+        for (Frame* frame = &amp;page-&gt;mainFrame(); frame; frame = frame-&gt;tree().traverseNext())
+            setJavaScriptPaused(*frame, paused);
</ins><span class="cx"> 
</span><del>-    page-&gt;setDefersLoading(paused);
-
-    for (Frame* frame = &amp;page-&gt;mainFrame(); frame; frame = frame-&gt;tree().traverseNext())
-        setJavaScriptPaused(frame, paused);
-
-    if (InspectorFrontendClient* frontendClient = page-&gt;inspectorController().inspectorFrontendClient()) {
-        if (paused)
-            frontendClient-&gt;pagePaused();
-        else
-            frontendClient-&gt;pageUnpaused();
</del><ins>+        if (auto* frontendClient = page-&gt;inspectorController().inspectorFrontendClient()) {
+            if (paused)
+                frontendClient-&gt;pagePaused();
+            else
+                frontendClient-&gt;pageUnpaused();
+        }
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PageScriptDebugServer::setJavaScriptPaused(Frame* frame, bool paused)
</del><ins>+void PageScriptDebugServer::setJavaScriptPaused(Frame&amp; frame, bool paused)
</ins><span class="cx"> {
</span><del>-    ASSERT_ARG(frame, frame);
-
-    if (!frame-&gt;script().canExecuteScripts(NotAboutToExecuteScript))
</del><ins>+    if (!frame.script().canExecuteScripts(NotAboutToExecuteScript))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    frame-&gt;script().setPaused(paused);
</del><ins>+    frame.script().setPaused(paused);
</ins><span class="cx"> 
</span><del>-    Document* document = frame-&gt;document();
</del><ins>+    ASSERT(frame.document());
+    auto&amp; document = *frame.document();
</ins><span class="cx">     if (paused) {
</span><del>-        document-&gt;suspendScriptedAnimationControllerCallbacks();
-        document-&gt;suspendActiveDOMObjects(ActiveDOMObject::JavaScriptDebuggerPaused);
</del><ins>+        document.suspendScriptedAnimationControllerCallbacks();
+        document.suspendActiveDOMObjects(ActiveDOMObject::JavaScriptDebuggerPaused);
</ins><span class="cx">     } else {
</span><del>-        document-&gt;resumeActiveDOMObjects(ActiveDOMObject::JavaScriptDebuggerPaused);
-        document-&gt;resumeScriptedAnimationControllerCallbacks();
</del><ins>+        document.resumeActiveDOMObjects(ActiveDOMObject::JavaScriptDebuggerPaused);
+        document.resumeScriptedAnimationControllerCallbacks();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    setJavaScriptPaused(frame-&gt;view(), paused);
-}
-
-void PageScriptDebugServer::setJavaScriptPaused(FrameView* view, bool paused)
-{
-    if (!view)
-        return;
-
-    for (auto&amp; child : view-&gt;children()) {
-        if (!is&lt;PluginViewBase&gt;(*child))
-            continue;
-
-        downcast&lt;PluginViewBase&gt;(*child).setJavaScriptPaused(paused);
</del><ins>+    if (auto* view = frame.view()) {
+        for (auto&amp; child : view-&gt;children()) {
+            if (!is&lt;PluginViewBase&gt;(child.get()))
+                continue;
+            downcast&lt;PluginViewBase&gt;(child.get()).setJavaScriptPaused(paused);
+        }
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorPageScriptDebugServerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/PageScriptDebugServer.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/PageScriptDebugServer.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/inspector/PageScriptDebugServer.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class Frame;
</span><del>-class FrameView;
</del><span class="cx"> class Page;
</span><span class="cx"> class PageGroup;
</span><span class="cx"> 
</span><span class="lines">@@ -56,9 +55,7 @@
</span><span class="cx">     void runEventLoopWhilePausedInternal();
</span><span class="cx"> 
</span><span class="cx">     void setJavaScriptPaused(const PageGroup&amp;, bool paused);
</span><del>-    void setJavaScriptPaused(Page*, bool paused);
-    void setJavaScriptPaused(Frame*, bool paused);
-    void setJavaScriptPaused(FrameView*, bool paused);
</del><ins>+    void setJavaScriptPaused(Frame&amp;, bool paused);
</ins><span class="cx"> 
</span><span class="cx">     Page&amp; m_page;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderHistoryControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/HistoryController.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/HistoryController.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/loader/HistoryController.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -741,7 +741,7 @@
</span><span class="cx">         Frame* childFrame = m_frame.tree().child(childFrameName);
</span><span class="cx">         ASSERT(childFrame);
</span><span class="cx"> 
</span><del>-        childFrame-&gt;loader().history().recursiveSetProvisionalItem(const_cast&lt;HistoryItem&amp;&gt;(childItem.get()), fromChildItem);
</del><ins>+        childFrame-&gt;loader().history().recursiveSetProvisionalItem(childItem, fromChildItem);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -761,7 +761,7 @@
</span><span class="cx">         HistoryItem* fromChildItem = fromItem-&gt;childItemWithTarget(childFrameName);
</span><span class="cx">         ASSERT(fromChildItem);
</span><span class="cx">         if (Frame* childFrame = m_frame.tree().child(childFrameName))
</span><del>-            childFrame-&gt;loader().history().recursiveGoToItem(const_cast&lt;HistoryItem&amp;&gt;(childItem.get()), fromChildItem, type);
</del><ins>+            childFrame-&gt;loader().history().recursiveGoToItem(childItem, fromChildItem, type);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Frame.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Frame.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/Frame.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -723,31 +723,27 @@
</span><span class="cx"> 
</span><span class="cx"> RenderWidget* Frame::ownerRenderer() const
</span><span class="cx"> {
</span><del>-    HTMLFrameOwnerElement* ownerElement = m_ownerElement;
</del><ins>+    auto* ownerElement = m_ownerElement;
</ins><span class="cx">     if (!ownerElement)
</span><span class="cx">         return nullptr;
</span><span class="cx">     auto* object = ownerElement-&gt;renderer();
</span><del>-    if (!object)
-        return nullptr;
</del><span class="cx">     // FIXME: If &lt;object&gt; is ever fixed to disassociate itself from frames
</span><span class="cx">     // that it has started but canceled, then this can turn into an ASSERT
</span><del>-    // since m_ownerElement would be 0 when the load is canceled.
</del><ins>+    // since m_ownerElement would be nullptr when the load is canceled.
</ins><span class="cx">     // https://bugs.webkit.org/show_bug.cgi?id=18585
</span><del>-    if (!is&lt;RenderWidget&gt;(*object))
</del><ins>+    if (!is&lt;RenderWidget&gt;(object))
</ins><span class="cx">         return nullptr;
</span><span class="cx">     return downcast&lt;RenderWidget&gt;(object);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Frame* Frame::frameForWidget(const Widget* widget)
</del><ins>+Frame* Frame::frameForWidget(const Widget&amp; widget)
</ins><span class="cx"> {
</span><del>-    ASSERT_ARG(widget, widget);
-
-    if (RenderWidget* renderer = RenderWidget::find(widget))
</del><ins>+    if (auto* renderer = RenderWidget::find(widget))
</ins><span class="cx">         return renderer-&gt;frameOwnerElement().document().frame();
</span><span class="cx"> 
</span><span class="cx">     // Assume all widgets are either a FrameView or owned by a RenderWidget.
</span><span class="cx">     // FIXME: That assumption is not right for scroll bars!
</span><del>-    return &amp;downcast&lt;FrameView&gt;(*widget).frame();
</del><ins>+    return &amp;downcast&lt;FrameView&gt;(widget).frame();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Frame::clearTimers(FrameView *view, Document *document)
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Frame.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Frame.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/Frame.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx">     WEBCORE_EXPORT String layerTreeAsText(LayerTreeFlags = 0) const;
</span><span class="cx">     WEBCORE_EXPORT String trackedRepaintRectsAsText() const;
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT static Frame* frameForWidget(const Widget*);
</del><ins>+    WEBCORE_EXPORT static Frame* frameForWidget(const Widget&amp;);
</ins><span class="cx"> 
</span><span class="cx">     Settings&amp; settings() const { return *m_settings; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/FrameView.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx">  *                     1999 Lars Knoll &lt;knoll@kde.org&gt;
</span><span class="cx">  *                     1999 Antti Koivisto &lt;koivisto@kde.org&gt;
</span><span class="cx">  *                     2000 Dirk Mueller &lt;mueller@kde.org&gt;
</span><del>- * Copyright (C) 2004-2008, 2013-2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *           (C) 2006 Graham Dennis (graham.dennis@gmail.com)
</span><span class="cx">  *           (C) 2006 Alexey Proskuryakov (ap@nypop.com)
</span><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><span class="lines">@@ -506,18 +506,17 @@
</span><span class="cx"> void FrameView::invalidateRect(const IntRect&amp; rect)
</span><span class="cx"> {
</span><span class="cx">     if (!parent()) {
</span><del>-        if (HostWindow* window = hostWindow())
-            window-&gt;invalidateContentsAndRootView(rect);
</del><ins>+        if (auto* page = frame().page())
+            page-&gt;chrome().invalidateContentsAndRootView(rect);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RenderWidget* renderer = frame().ownerRenderer();
</del><ins>+    auto* renderer = frame().ownerRenderer();
</ins><span class="cx">     if (!renderer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     IntRect repaintRect = rect;
</span><del>-    repaintRect.move(renderer-&gt;borderLeft() + renderer-&gt;paddingLeft(),
-                     renderer-&gt;borderTop() + renderer-&gt;paddingTop());
</del><ins>+    repaintRect.move(renderer-&gt;borderLeft() + renderer-&gt;paddingLeft(), renderer-&gt;borderTop() + renderer-&gt;paddingTop());
</ins><span class="cx">     renderer-&gt;repaintRectangle(repaintRect);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -544,14 +543,16 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(REQUEST_ANIMATION_FRAME)
</span><ins>+
</ins><span class="cx"> bool FrameView::scheduleAnimation()
</span><span class="cx"> {
</span><del>-    if (HostWindow* window = hostWindow()) {
-        window-&gt;scheduleAnimation();
-        return true;
-    }
-    return false;
</del><ins>+    auto* page = frame().page();
+    if (!page)
+        return false;
+    page-&gt;chrome().scheduleAnimation();
+    return true;
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void FrameView::setMarginWidth(LayoutUnit w)
</span><span class="lines">@@ -1056,11 +1057,11 @@
</span><span class="cx"> {
</span><span class="cx">     // To find the Widget that corresponds with platformWidget we have to do a linear
</span><span class="cx">     // search of our child widgets.
</span><del>-    Widget* foundWidget = nullptr;
</del><ins>+    const Widget* foundWidget = nullptr;
</ins><span class="cx">     for (auto&amp; widget : children()) {
</span><span class="cx">         if (widget-&gt;platformWidget() != platformWidget)
</span><span class="cx">             continue;
</span><del>-        foundWidget = widget.get();
</del><ins>+        foundWidget = widget.ptr();
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1067,11 +1068,11 @@
</span><span class="cx">     if (!foundWidget)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    auto* renderWidget = RenderWidget::find(foundWidget);
</del><ins>+    auto* renderWidget = RenderWidget::find(*foundWidget);
</ins><span class="cx">     if (!renderWidget)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    RenderLayer* widgetLayer = renderWidget-&gt;layer();
</del><ins>+    auto* widgetLayer = renderWidget-&gt;layer();
</ins><span class="cx">     if (!widgetLayer || !widgetLayer-&gt;isComposited())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -2180,11 +2181,11 @@
</span><span class="cx"> bool FrameView::scrollContentsFastPath(const IntSize&amp; scrollDelta, const IntRect&amp; rectToScroll, const IntRect&amp; clipRect)
</span><span class="cx"> {
</span><span class="cx">     if (!m_viewportConstrainedObjects || m_viewportConstrainedObjects-&gt;isEmpty()) {
</span><del>-        hostWindow()-&gt;scroll(scrollDelta, rectToScroll, clipRect);
</del><ins>+        frame().page()-&gt;chrome().scroll(scrollDelta, rectToScroll, clipRect);
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    const bool isCompositedContentLayer = usesCompositedScrolling();
</del><ins>+    bool isCompositedContentLayer = usesCompositedScrolling();
</ins><span class="cx"> 
</span><span class="cx">     // Get the rects of the fixed objects visible in the rectToScroll
</span><span class="cx">     Region regionToUpdate;
</span><span class="lines">@@ -2220,7 +2221,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // 1) scroll
</span><del>-    hostWindow()-&gt;scroll(scrollDelta, rectToScroll, clipRect);
</del><ins>+    frame().page()-&gt;chrome().scroll(scrollDelta, rectToScroll, clipRect);
</ins><span class="cx"> 
</span><span class="cx">     // 2) update the area of fixed objects that has been invalidated
</span><span class="cx">     for (auto&amp; updateRect : regionToUpdate.rects()) {
</span><span class="lines">@@ -2235,7 +2236,7 @@
</span><span class="cx">         }
</span><span class="cx">         if (clipsRepaints())
</span><span class="cx">             updateRect.intersect(rectToScroll);
</span><del>-        hostWindow()-&gt;invalidateContentsAndRootView(updateRect);
</del><ins>+        frame().page()-&gt;chrome().invalidateContentsAndRootView(updateRect);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="lines">@@ -2642,9 +2643,10 @@
</span><span class="cx"> 
</span><span class="cx"> HostWindow* FrameView::hostWindow() const
</span><span class="cx"> {
</span><del>-    if (Page* page = frame().page())
-        return &amp;page-&gt;chrome();
-    return nullptr;
</del><ins>+    auto* page = frame().page();
+    if (!page)
+        return nullptr;
+    return &amp;page-&gt;chrome();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameView::addTrackedRepaintRect(const FloatRect&amp; r)
</span><span class="lines">@@ -2784,10 +2786,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><ins>+
</ins><span class="cx"> void FrameView::unobscuredContentSizeChanged()
</span><span class="cx"> {
</span><span class="cx">     adjustTiledBackingScrollability();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> static LayerFlushThrottleState::Flags determineLayerFlushThrottleState(Page&amp; page)
</span><span class="lines">@@ -4082,8 +4086,6 @@
</span><span class="cx">             m_scrollCorner-&gt;setStyle(WTFMove(*cornerStyle));
</span><span class="cx">         invalidateScrollCorner(cornerRect);
</span><span class="cx">     }
</span><del>-
-    ScrollView::updateScrollCorner();
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameView::paintScrollCorner(GraphicsContext&amp; context, const IntRect&amp; cornerRect)
</span><span class="lines">@@ -4157,15 +4159,14 @@
</span><span class="cx"> bool FrameView::hasCustomScrollbars() const
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; widget : children()) {
</span><del>-        if (is&lt;FrameView&gt;(*widget)) {
-            if (downcast&lt;FrameView&gt;(*widget).hasCustomScrollbars())
</del><ins>+        if (is&lt;FrameView&gt;(widget.get())) {
+            if (downcast&lt;FrameView&gt;(widget.get()).hasCustomScrollbars())
</ins><span class="cx">                 return true;
</span><del>-        } else if (is&lt;Scrollbar&gt;(*widget)) {
-            if (downcast&lt;Scrollbar&gt;(*widget).isCustomScrollbar())
</del><ins>+        } else if (is&lt;Scrollbar&gt;(widget.get())) {
+            if (downcast&lt;Scrollbar&gt;(widget.get()).isCustomScrollbar())
</ins><span class="cx">                 return true;
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4173,11 +4174,10 @@
</span><span class="cx"> {
</span><span class="cx">     if (!parent())
</span><span class="cx">         return nullptr;
</span><del>-
-    if (Frame* parentFrame = frame().tree().parent())
-        return parentFrame-&gt;view();
-
-    return nullptr;
</del><ins>+    auto* parentFrame = frame().tree().parent();
+    if (!parentFrame)
+        return nullptr;
+    return parentFrame-&gt;view();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool FrameView::isInChildFrameWithFrameFlattening() const
</span><span class="lines">@@ -5183,8 +5183,8 @@
</span><span class="cx">     // scripts in response to NPP_SetWindow, for example), so we need to keep the Widgets
</span><span class="cx">     // alive during enumeration.
</span><span class="cx">     for (auto&amp; widget : collectAndProtectWidgets(m_widgetsInRenderTree)) {
</span><del>-        if (RenderWidget* renderWidget = RenderWidget::find(widget.get())) {
-            auto ignoreWidgetState = renderWidget-&gt;updateWidgetPosition();
</del><ins>+        if (auto* renderer = RenderWidget::find(*widget)) {
+            auto ignoreWidgetState = renderer-&gt;updateWidgetPosition();
</ins><span class="cx">             UNUSED_PARAM(ignoreWidgetState);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/FrameView.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">              (C) 1998, 1999 Torben Weis (weis@kde.org)
</span><span class="cx">              (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">              (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>-   Copyright (C) 2004-2009, 2014-2016 Apple Inc. All rights reserved.
</del><ins>+   Copyright (C) 2004-2017 Apple Inc. All rights reserved.
</ins><span class="cx"> 
</span><span class="cx">    This library is free software; you can redistribute it and/or
</span><span class="cx">    modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -74,16 +74,16 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~FrameView();
</span><span class="cx"> 
</span><del>-    HostWindow* hostWindow() const override;
</del><ins>+    HostWindow* hostWindow() const final;
</ins><span class="cx">     
</span><del>-    WEBCORE_EXPORT void invalidateRect(const IntRect&amp;) override;
-    void setFrameRect(const IntRect&amp;) override;
</del><ins>+    WEBCORE_EXPORT void invalidateRect(const IntRect&amp;) final;
+    void setFrameRect(const IntRect&amp;) final;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(REQUEST_ANIMATION_FRAME)
</span><del>-    bool scheduleAnimation() override;
</del><ins>+    bool scheduleAnimation() final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    Frame&amp; frame() const { return const_cast&lt;Frame&amp;&gt;(m_frame.get()); }
</del><ins>+    Frame&amp; frame() const { return m_frame; }
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT RenderView* renderView() const;
</span><span class="cx"> 
</span><span class="lines">@@ -95,15 +95,15 @@
</span><span class="cx">     void setMarginWidth(LayoutUnit);
</span><span class="cx">     void setMarginHeight(LayoutUnit);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void setCanHaveScrollbars(bool) override;
</del><ins>+    WEBCORE_EXPORT void setCanHaveScrollbars(bool) final;
</ins><span class="cx">     WEBCORE_EXPORT void updateCanHaveScrollbars();
</span><span class="cx"> 
</span><del>-    Ref&lt;Scrollbar&gt; createScrollbar(ScrollbarOrientation) override;
</del><ins>+    Ref&lt;Scrollbar&gt; createScrollbar(ScrollbarOrientation) final;
</ins><span class="cx"> 
</span><del>-    bool avoidScrollbarCreation() const override;
</del><ins>+    bool avoidScrollbarCreation() const final;
</ins><span class="cx"> 
</span><del>-    void setContentsSize(const IntSize&amp;) override;
-    void updateContentsSize() override;
</del><ins>+    void setContentsSize(const IntSize&amp;) final;
+    void updateContentsSize() final;
</ins><span class="cx"> 
</span><span class="cx">     void layout(bool allowSubtree = true);
</span><span class="cx">     WEBCORE_EXPORT bool didFirstLayout() const;
</span><span class="lines">@@ -162,7 +162,7 @@
</span><span class="cx">     WEBCORE_EXPORT GraphicsLayer* graphicsLayerForPlatformWidget(PlatformWidget);
</span><span class="cx">     WEBCORE_EXPORT void scheduleLayerFlushAllowingThrottling();
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT TiledBacking* tiledBacking() const override;
</del><ins>+    WEBCORE_EXPORT TiledBacking* tiledBacking() const final;
</ins><span class="cx"> 
</span><span class="cx">     // In the future when any ScrollableArea can have a node in th ScrollingTree, this should
</span><span class="cx">     // become a virtual function on ScrollableArea.
</span><span class="lines">@@ -225,21 +225,21 @@
</span><span class="cx">     WEBCORE_EXPORT void setViewportSizeForCSSViewportUnits(IntSize);
</span><span class="cx">     IntSize viewportSizeForCSSViewportUnits() const;
</span><span class="cx">     
</span><del>-    IntRect windowClipRect() const override;
</del><ins>+    IntRect windowClipRect() const final;
</ins><span class="cx">     WEBCORE_EXPORT IntRect windowClipRectForFrameOwner(const HTMLFrameOwnerElement*, bool clipToLayerContents) const;
</span><span class="cx"> 
</span><del>-    float visibleContentScaleFactor() const override;
</del><ins>+    float visibleContentScaleFactor() const final;
</ins><span class="cx"> 
</span><span class="cx"> #if USE(COORDINATED_GRAPHICS)
</span><del>-    void setFixedVisibleContentRect(const IntRect&amp;) override;
</del><ins>+    void setFixedVisibleContentRect(const IntRect&amp;) final;
</ins><span class="cx"> #endif
</span><del>-    WEBCORE_EXPORT void setScrollPosition(const ScrollPosition&amp;) override;
-    void updateLayerPositionsAfterScrolling() override;
-    void updateCompositingLayersAfterScrolling() override;
-    bool requestScrollPositionUpdate(const ScrollPosition&amp;) override;
-    bool isRubberBandInProgress() const override;
-    WEBCORE_EXPORT ScrollPosition minimumScrollPosition() const override;
-    WEBCORE_EXPORT ScrollPosition maximumScrollPosition() const override;
</del><ins>+    WEBCORE_EXPORT void setScrollPosition(const ScrollPosition&amp;) final;
+    void updateLayerPositionsAfterScrolling() final;
+    void updateCompositingLayersAfterScrolling() final;
+    bool requestScrollPositionUpdate(const ScrollPosition&amp;) final;
+    bool isRubberBandInProgress() const final;
+    WEBCORE_EXPORT ScrollPosition minimumScrollPosition() const final;
+    WEBCORE_EXPORT ScrollPosition maximumScrollPosition() const final;
</ins><span class="cx"> 
</span><span class="cx">     // The scrollOrigin, scrollPosition, minimumScrollPosition and maximumScrollPosition are all affected by frame scale,
</span><span class="cx">     // but layoutViewport computations require unscaled scroll positions.
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx">     void addEmbeddedObjectToUpdate(RenderEmbeddedObject&amp;);
</span><span class="cx">     void removeEmbeddedObjectToUpdate(RenderEmbeddedObject&amp;);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void paintContents(GraphicsContext&amp;, const IntRect&amp; dirtyRect) override;
</del><ins>+    WEBCORE_EXPORT void paintContents(GraphicsContext&amp;, const IntRect&amp; dirtyRect) final;
</ins><span class="cx"> 
</span><span class="cx">     struct PaintingState {
</span><span class="cx">         PaintBehavior paintBehavior;
</span><span class="lines">@@ -379,9 +379,9 @@
</span><span class="cx">     enum CoordinateSpaceForSnapshot { DocumentCoordinates, ViewCoordinates };
</span><span class="cx">     WEBCORE_EXPORT void paintContentsForSnapshot(GraphicsContext&amp;, const IntRect&amp; imageRect, SelectionInSnapshot shouldPaintSelection, CoordinateSpaceForSnapshot);
</span><span class="cx"> 
</span><del>-    void paintOverhangAreas(GraphicsContext&amp;, const IntRect&amp; horizontalOverhangArea, const IntRect&amp; verticalOverhangArea, const IntRect&amp; dirtyRect) override;
-    void paintScrollCorner(GraphicsContext&amp;, const IntRect&amp; cornerRect) override;
-    void paintScrollbar(GraphicsContext&amp;, Scrollbar&amp;, const IntRect&amp;) override;
</del><ins>+    void paintOverhangAreas(GraphicsContext&amp;, const IntRect&amp; horizontalOverhangArea, const IntRect&amp; verticalOverhangArea, const IntRect&amp; dirtyRect) final;
+    void paintScrollCorner(GraphicsContext&amp;, const IntRect&amp; cornerRect) final;
+    void paintScrollbar(GraphicsContext&amp;, Scrollbar&amp;, const IntRect&amp;) final;
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT Color documentBackgroundColor() const;
</span><span class="cx"> 
</span><span class="lines">@@ -436,10 +436,10 @@
</span><span class="cx">     WEBCORE_EXPORT IntPoint convertFromContainingViewToRenderer(const RenderElement*, const IntPoint&amp;) const;
</span><span class="cx"> 
</span><span class="cx">     // Override ScrollView methods to do point conversion via renderers, in order to take transforms into account.
</span><del>-    IntRect convertToContainingView(const IntRect&amp;) const override;
-    IntRect convertFromContainingView(const IntRect&amp;) const override;
-    IntPoint convertToContainingView(const IntPoint&amp;) const override;
-    IntPoint convertFromContainingView(const IntPoint&amp;) const override;
</del><ins>+    IntRect convertToContainingView(const IntRect&amp;) const final;
+    IntRect convertFromContainingView(const IntRect&amp;) const final;
+    IntPoint convertToContainingView(const IntPoint&amp;) const final;
+    IntPoint convertFromContainingView(const IntPoint&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx">     bool isFrameViewScrollCorner(const RenderScrollbarPart&amp; scrollCorner) const { return m_scrollCorner == &amp;scrollCorner; }
</span><span class="cx"> 
</span><span class="lines">@@ -451,20 +451,20 @@
</span><span class="cx">     enum class Scrollability { Scrollable, ScrollableOrRubberbandable };
</span><span class="cx">     WEBCORE_EXPORT bool isScrollable(Scrollability definitionOfScrollable = Scrollability::Scrollable);
</span><span class="cx"> 
</span><del>-    bool isScrollableOrRubberbandable() override;
-    bool hasScrollableOrRubberbandableAncestor() override;
</del><ins>+    bool isScrollableOrRubberbandable() final;
+    bool hasScrollableOrRubberbandableAncestor() final;
</ins><span class="cx"> 
</span><span class="cx">     enum ScrollbarModesCalculationStrategy { RulesFromWebContentOnly, AnyRule };
</span><span class="cx">     void calculateScrollbarModesForLayout(ScrollbarMode&amp; hMode, ScrollbarMode&amp; vMode, ScrollbarModesCalculationStrategy = AnyRule);
</span><span class="cx"> 
</span><del>-    IntPoint lastKnownMousePosition() const override;
-    bool isHandlingWheelEvent() const override;
</del><ins>+    IntPoint lastKnownMousePosition() const final;
+    bool isHandlingWheelEvent() const final;
</ins><span class="cx">     bool shouldSetCursor() const;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Remove this method once plugin loading is decoupled from layout.
</span><span class="cx">     void flushAnyPendingPostLayoutTasks();
</span><span class="cx"> 
</span><del>-    bool shouldSuspendScrollAnimations() const override;
</del><ins>+    bool shouldSuspendScrollAnimations() const final;
</ins><span class="cx">     void scrollbarStyleChanged(ScrollbarStyle, bool forceUpdate) override;
</span><span class="cx"> 
</span><span class="cx">     RenderBox* embeddedContentBox() const;
</span><span class="lines">@@ -483,7 +483,7 @@
</span><span class="cx">     bool containsScrollableArea(ScrollableArea*) const;
</span><span class="cx">     const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas.get(); }
</span><span class="cx"> 
</span><del>-    void removeChild(Widget&amp;) override;
</del><ins>+    void removeChild(Widget&amp;) final;
</ins><span class="cx"> 
</span><span class="cx">     // This function exists for ports that need to handle wheel events manually.
</span><span class="cx">     // On Mac WebKit1 the underlying NSScrollView just does the scrolling, but on most other platforms
</span><span class="lines">@@ -501,7 +501,7 @@
</span><span class="cx">     const Pagination&amp; pagination() const;
</span><span class="cx">     void setPagination(const Pagination&amp;);
</span><span class="cx">     
</span><del>-    bool inProgrammaticScroll() const override { return m_inProgrammaticScroll; }
</del><ins>+    bool inProgrammaticScroll() const final { return m_inProgrammaticScroll; }
</ins><span class="cx">     void setInProgrammaticScroll(bool programmaticScroll) { m_inProgrammaticScroll = programmaticScroll; }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_DEVICE_ADAPTATION)
</span><span class="lines">@@ -509,8 +509,8 @@
</span><span class="cx">     void setInitialViewportSize(const IntSize&amp; size) { m_initialViewportSize = size; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool isActive() const override;
-    bool forceUpdateScrollbarsOnMainThreadForPerformanceTesting() const override;
</del><ins>+    bool isActive() const final;
+    bool forceUpdateScrollbarsOnMainThreadForPerformanceTesting() const final;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(RUBBER_BANDING)
</span><span class="cx">     WEBCORE_EXPORT GraphicsLayer* setWantsLayerForTopOverHangArea(bool) const;
</span><span class="lines">@@ -523,20 +523,20 @@
</span><span class="cx"> 
</span><span class="cx">     LayoutPoint scrollPositionRespectingCustomFixedPosition() const;
</span><span class="cx"> 
</span><del>-    int headerHeight() const override { return m_headerHeight; }
</del><ins>+    int headerHeight() const final { return m_headerHeight; }
</ins><span class="cx">     WEBCORE_EXPORT void setHeaderHeight(int);
</span><del>-    int footerHeight() const override { return m_footerHeight; }
</del><ins>+    int footerHeight() const final { return m_footerHeight; }
</ins><span class="cx">     WEBCORE_EXPORT void setFooterHeight(int);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT float topContentInset(TopContentInsetType = TopContentInsetType::WebCoreContentInset) const override;
</del><ins>+    WEBCORE_EXPORT float topContentInset(TopContentInsetType = TopContentInsetType::WebCoreContentInset) const final;
</ins><span class="cx">     void topContentInsetDidChange(float newTopContentInset);
</span><span class="cx"> 
</span><span class="cx">     void topContentDirectionDidChange();
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void willStartLiveResize() override;
-    WEBCORE_EXPORT void willEndLiveResize() override;
</del><ins>+    WEBCORE_EXPORT void willStartLiveResize() final;
+    WEBCORE_EXPORT void willEndLiveResize() final;
</ins><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void availableContentSizeChanged(AvailableSizeChangeReason) override;
</del><ins>+    WEBCORE_EXPORT void availableContentSizeChanged(AvailableSizeChangeReason) final;
</ins><span class="cx"> 
</span><span class="cx">     void adjustTiledBackingScrollability();
</span><span class="cx"> 
</span><span class="lines">@@ -574,16 +574,16 @@
</span><span class="cx">     std::optional&lt;FloatRect&gt; viewExposedRect() const { return m_viewExposedRect; }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><del>-    void updateSnapOffsets() override;
-    bool isScrollSnapInProgress() const override;
</del><ins>+    void updateSnapOffsets() final;
+    bool isScrollSnapInProgress() const final;
</ins><span class="cx">     void updateScrollingCoordinatorScrollSnapProperties() const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    float adjustScrollStepForFixedContent(float step, ScrollbarOrientation, ScrollGranularity) override;
</del><ins>+    float adjustScrollStepForFixedContent(float step, ScrollbarOrientation, ScrollGranularity) final;
</ins><span class="cx"> 
</span><span class="cx">     void didChangeScrollOffset();
</span><span class="cx"> 
</span><del>-    void show() override;
</del><ins>+    void show() final;
</ins><span class="cx"> 
</span><span class="cx">     bool shouldPlaceBlockDirectionScrollbarOnLeft() const final;
</span><span class="cx"> 
</span><span class="lines">@@ -590,13 +590,13 @@
</span><span class="cx">     void didRestoreFromPageCache();
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    bool scrollContentsFastPath(const IntSize&amp; scrollDelta, const IntRect&amp; rectToScroll, const IntRect&amp; clipRect) override;
-    void scrollContentsSlowPath(const IntRect&amp; updateRect) override;
</del><ins>+    bool scrollContentsFastPath(const IntSize&amp; scrollDelta, const IntRect&amp; rectToScroll, const IntRect&amp; clipRect) final;
+    void scrollContentsSlowPath(const IntRect&amp; updateRect) final;
</ins><span class="cx">     
</span><span class="cx">     void repaintSlowRepaintObjects();
</span><span class="cx"> 
</span><del>-    bool isVerticalDocument() const override;
-    bool isFlippedDocument() const override;
</del><ins>+    bool isVerticalDocument() const final;
+    bool isFlippedDocument() const final;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     explicit FrameView(Frame&amp;);
</span><span class="lines">@@ -617,7 +617,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool inPreLayoutStyleUpdate() const { return m_layoutPhase == InPreLayoutStyleUpdate; }
</span><span class="cx"> 
</span><del>-    bool isFrameView() const override { return true; }
</del><ins>+    bool isFrameView() const final { return true; }
</ins><span class="cx"> 
</span><span class="cx">     friend class RenderWidget;
</span><span class="cx">     bool useSlowRepaints(bool considerOverlap = true) const;
</span><span class="lines">@@ -628,9 +628,9 @@
</span><span class="cx">     bool shouldUpdateCompositingLayersAfterScrolling() const;
</span><span class="cx">     bool flushCompositingStateForThisFrame(const Frame&amp; rootFrameForFlush);
</span><span class="cx"> 
</span><del>-    bool shouldDeferScrollUpdateAfterContentSizeChange() override;
</del><ins>+    bool shouldDeferScrollUpdateAfterContentSizeChange() final;
</ins><span class="cx"> 
</span><del>-    void scrollOffsetChangedViaPlatformWidgetImpl(const ScrollOffset&amp; oldOffset, const ScrollOffset&amp; newOffset) override;
</del><ins>+    void scrollOffsetChangedViaPlatformWidgetImpl(const ScrollOffset&amp; oldOffset, const ScrollOffset&amp; newOffset) final;
</ins><span class="cx"> 
</span><span class="cx">     void applyOverflowToViewport(const RenderElement&amp;, ScrollbarMode&amp; hMode, ScrollbarMode&amp; vMode);
</span><span class="cx">     void applyPaginationToViewport();
</span><span class="lines">@@ -651,39 +651,39 @@
</span><span class="cx">     void updateLayerFlushThrottling();
</span><span class="cx">     WEBCORE_EXPORT void adjustTiledBackingCoverage();
</span><span class="cx"> 
</span><del>-    void repaintContentRectangle(const IntRect&amp;) override;
-    void addedOrRemovedScrollbar() override;
</del><ins>+    void repaintContentRectangle(const IntRect&amp;) final;
+    void addedOrRemovedScrollbar() final;
</ins><span class="cx"> 
</span><del>-    void delegatesScrollingDidChange() override;
</del><ins>+    void delegatesScrollingDidChange() final;
</ins><span class="cx"> 
</span><span class="cx">     // ScrollableArea interface
</span><del>-    void invalidateScrollbarRect(Scrollbar&amp;, const IntRect&amp;) override;
-    void scrollTo(const ScrollPosition&amp;) override;
-    void setVisibleScrollerThumbRect(const IntRect&amp;) override;
-    ScrollableArea* enclosingScrollableArea() const override;
-    IntRect scrollableAreaBoundingBox(bool* = nullptr) const override;
-    bool scrollAnimatorEnabled() const override;
-    GraphicsLayer* layerForScrolling() const override;
-    GraphicsLayer* layerForHorizontalScrollbar() const override;
-    GraphicsLayer* layerForVerticalScrollbar() const override;
-    GraphicsLayer* layerForScrollCorner() const override;
</del><ins>+    void invalidateScrollbarRect(Scrollbar&amp;, const IntRect&amp;) final;
+    void scrollTo(const ScrollPosition&amp;) final;
+    void setVisibleScrollerThumbRect(const IntRect&amp;) final;
+    ScrollableArea* enclosingScrollableArea() const final;
+    IntRect scrollableAreaBoundingBox(bool* = nullptr) const final;
+    bool scrollAnimatorEnabled() const final;
+    GraphicsLayer* layerForScrolling() const final;
+    GraphicsLayer* layerForHorizontalScrollbar() const final;
+    GraphicsLayer* layerForVerticalScrollbar() const final;
+    GraphicsLayer* layerForScrollCorner() const final;
</ins><span class="cx"> #if ENABLE(RUBBER_BANDING)
</span><del>-    GraphicsLayer* layerForOverhangAreas() const override;
</del><ins>+    GraphicsLayer* layerForOverhangAreas() const final;
</ins><span class="cx"> #endif
</span><del>-    void contentsResized() override;
</del><ins>+    void contentsResized() final;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    void unobscuredContentSizeChanged() override;
</del><ins>+    void unobscuredContentSizeChanged() final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool usesCompositedScrolling() const override;
-    bool usesAsyncScrolling() const override;
-    bool usesMockScrollAnimator() const override;
-    void logMockScrollAnimatorMessage(const String&amp;) const override;
</del><ins>+    bool usesCompositedScrolling() const final;
+    bool usesAsyncScrolling() const final;
+    bool usesMockScrollAnimator() const final;
+    void logMockScrollAnimatorMessage(const String&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx">     // Override scrollbar notifications to update the AXObject cache.
</span><del>-    void didAddScrollbar(Scrollbar*, ScrollbarOrientation) override;
-    void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation) override;
</del><ins>+    void didAddScrollbar(Scrollbar*, ScrollbarOrientation) final;
+    void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation) final;
</ins><span class="cx"> 
</span><span class="cx">     IntSize sizeForResizeEvent() const;
</span><span class="cx">     void sendResizeEventIfNeeded();
</span><span class="lines">@@ -693,7 +693,7 @@
</span><span class="cx">     void updateScrollableAreaSet();
</span><span class="cx">     void updateLayoutViewport();
</span><span class="cx"> 
</span><del>-    void notifyPageThatContentAreaWillPaint() const override;
</del><ins>+    void notifyPageThatContentAreaWillPaint() const final;
</ins><span class="cx"> 
</span><span class="cx">     void enableSpeculativeTilingIfNeeded();
</span><span class="cx">     void speculativeTilingEnableTimerFired();
</span><span class="lines">@@ -708,7 +708,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool hasCustomScrollbars() const;
</span><span class="cx"> 
</span><del>-    void updateScrollCorner() override;
</del><ins>+    void updateScrollCorner() final;
</ins><span class="cx"> 
</span><span class="cx">     FrameView* parentFrameView() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Page.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Page.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/Page.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1392,18 +1392,15 @@
</span><span class="cx"> Vector&lt;Ref&lt;PluginViewBase&gt;&gt; Page::pluginViews()
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;Ref&lt;PluginViewBase&gt;&gt; views;
</span><del>-
</del><span class="cx">     for (Frame* frame = &amp;mainFrame(); frame; frame = frame-&gt;tree().traverseNext()) {
</span><del>-        FrameView* view = frame-&gt;view();
</del><ins>+        auto* view = frame-&gt;view();
</ins><span class="cx">         if (!view)
</span><span class="cx">             break;
</span><del>-
</del><span class="cx">         for (auto&amp; widget : view-&gt;children()) {
</span><del>-            if (is&lt;PluginViewBase&gt;(*widget))
-                views.append(downcast&lt;PluginViewBase&gt;(*widget));
</del><ins>+            if (is&lt;PluginViewBase&gt;(widget.get()))
+                views.append(downcast&lt;PluginViewBase&gt;(widget.get()));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     return views;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagePrintContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PrintContext.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PrintContext.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/PrintContext.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -286,16 +286,19 @@
</span><span class="cx"> 
</span><span class="cx"> String PrintContext::pageProperty(Frame* frame, const char* propertyName, int pageNumber)
</span><span class="cx"> {
</span><del>-    Document* document = frame-&gt;document();
</del><ins>+    ASSERT(frame);
+    ASSERT(frame-&gt;document());
+
+    auto&amp; document = *frame-&gt;document();
</ins><span class="cx">     PrintContext printContext(frame);
</span><span class="cx">     printContext.begin(800); // Any width is OK here.
</span><del>-    document-&gt;updateLayout();
-    std::unique_ptr&lt;RenderStyle&gt; style = document-&gt;styleScope().resolver().styleForPage(pageNumber);
</del><ins>+    document.updateLayout();
+    auto style = document.styleScope().resolver().styleForPage(pageNumber);
</ins><span class="cx"> 
</span><span class="cx">     // Implement formatters for properties we care about.
</span><span class="cx">     if (!strcmp(propertyName, &quot;margin-left&quot;)) {
</span><span class="cx">         if (style-&gt;marginLeft().isAuto())
</span><del>-            return String(&quot;auto&quot;);
</del><ins>+            return ASCIILiteral { &quot;auto&quot; };
</ins><span class="cx">         return String::number(style-&gt;marginLeft().value());
</span><span class="cx">     }
</span><span class="cx">     if (!strcmp(propertyName, &quot;line-height&quot;))
</span><span class="lines">@@ -305,9 +308,9 @@
</span><span class="cx">     if (!strcmp(propertyName, &quot;font-family&quot;))
</span><span class="cx">         return style-&gt;fontDescription().firstFamily();
</span><span class="cx">     if (!strcmp(propertyName, &quot;size&quot;))
</span><del>-        return String::number(style-&gt;pageSize().width().value()) + ' ' + String::number(style-&gt;pageSize().height().value());
</del><ins>+        return String::number(style-&gt;pageSize().width.value()) + ' ' + String::number(style-&gt;pageSize().height.value());
</ins><span class="cx"> 
</span><del>-    return String(&quot;pageProperty() unimplemented for: &quot;) + propertyName;
</del><ins>+    return makeString(&quot;pageProperty() unimplemented for: &quot;, propertyName);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool PrintContext::isPageBoxVisible(Frame* frame, int pageNumber)
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationAnimationBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/AnimationBase.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/AnimationBase.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/animation/AnimationBase.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -494,7 +494,7 @@
</span><span class="cx">         if (m_animation-&gt;trigger() &amp;&amp; m_animation-&gt;trigger()-&gt;isScrollAnimationTrigger()) {
</span><span class="cx">             if (m_object) {
</span><span class="cx">                 float offset = m_compositeAnimation-&gt;animationController().scrollPosition();
</span><del>-                ScrollAnimationTrigger&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*m_animation-&gt;trigger().get());
</del><ins>+                auto&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*m_animation-&gt;trigger());
</ins><span class="cx">                 if (offset &gt; scrollTrigger.startValue().value())
</span><span class="cx">                     updateStateMachine(AnimationStateInput::StartTimerFired, 0);
</span><span class="cx">             }
</span><span class="lines">@@ -577,7 +577,7 @@
</span><span class="cx">         if (m_animation-&gt;trigger()-&gt;isScrollAnimationTrigger()) {
</span><span class="cx">             if (m_object) {
</span><span class="cx">                 float currentScrollPosition = m_object-&gt;view().frameView().scrollPositionForFixedPosition().y().toFloat();
</span><del>-                ScrollAnimationTrigger&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*m_animation-&gt;trigger().get());
</del><ins>+                auto&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*m_animation-&gt;trigger());
</ins><span class="cx">                 if (currentScrollPosition &gt;= scrollTrigger.startValue().value() &amp;&amp; (!scrollTrigger.hasEndValue() || currentScrollPosition &lt;= scrollTrigger.endValue().value()))
</span><span class="cx">                     return 0;
</span><span class="cx">             }
</span><span class="lines">@@ -653,7 +653,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!timingFunction)
</span><del>-        timingFunction = m_animation-&gt;timingFunction().get();
</del><ins>+        timingFunction = m_animation-&gt;timingFunction();
</ins><span class="cx"> 
</span><span class="cx">     switch (timingFunction-&gt;type()) {
</span><span class="cx">     case TimingFunction::CubicBezierFunction: {
</span><span class="lines">@@ -743,7 +743,7 @@
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><span class="cx">     if (m_animation-&gt;trigger() &amp;&amp; m_animation-&gt;trigger()-&gt;isScrollAnimationTrigger()) {
</span><del>-        ScrollAnimationTrigger&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*m_animation-&gt;trigger().get());
</del><ins>+        auto&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*m_animation-&gt;trigger());
</ins><span class="cx">         if (scrollTrigger.hasEndValue() &amp;&amp; m_object) {
</span><span class="cx">             float offset = m_compositeAnimation-&gt;animationController().scrollPosition();
</span><span class="cx">             float startValue = scrollTrigger.startValue().value();
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationCSSPropertyAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -90,8 +90,7 @@
</span><span class="cx"> 
</span><span class="cx"> static inline LengthSize blendFunc(const AnimationBase* anim, const LengthSize&amp; from, const LengthSize&amp; to, double progress)
</span><span class="cx"> {
</span><del>-    return LengthSize(blendFunc(anim, from.width(), to.width(), progress),
-                      blendFunc(anim, from.height(), to.height(), progress));
</del><ins>+    return { blendFunc(anim, from.width, to.width, progress), blendFunc(anim, from.height, to.height, progress) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline ShadowStyle blendFunc(const AnimationBase* anim, ShadowStyle from, ShadowStyle to, double progress)
</span><span class="lines">@@ -492,7 +491,7 @@
</span><span class="cx"> class LengthPropertyWrapper : public PropertyWrapperGetter&lt;const T&amp;&gt; {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    LengthPropertyWrapper(CSSPropertyID prop, const T&amp; (RenderStyle::*getter)() const, void (RenderStyle::*setter)(T))
</del><ins>+    LengthPropertyWrapper(CSSPropertyID prop, const T&amp; (RenderStyle::*getter)() const, void (RenderStyle::*setter)(T&amp;&amp;))
</ins><span class="cx">         : PropertyWrapperGetter&lt;const T&amp;&gt;(prop, getter)
</span><span class="cx">         , m_setter(setter)
</span><span class="cx">     {
</span><span class="lines">@@ -504,7 +503,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    void (RenderStyle::*m_setter)(T);
</del><ins>+    void (RenderStyle::*m_setter)(T&amp;&amp;);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class PropertyWrapperClipPath : public RefCountedPropertyWrapper&lt;ClipPathOperation&gt; {
</span><span class="lines">@@ -1049,7 +1048,7 @@
</span><span class="cx"> class FillLayersPropertyWrapper : public AnimationPropertyWrapperBase {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    typedef const FillLayer* (RenderStyle::*LayersGetter)() const;
</del><ins>+    typedef const FillLayer&amp; (RenderStyle::*LayersGetter)() const;
</ins><span class="cx">     typedef FillLayer&amp; (RenderStyle::*LayersAccessor)();
</span><span class="cx"> 
</span><span class="cx">     FillLayersPropertyWrapper(CSSPropertyID prop, LayersGetter getter, LayersAccessor accessor)
</span><span class="lines">@@ -1086,8 +1085,8 @@
</span><span class="cx">         if (!a || !b)
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><del>-        const FillLayer* fromLayer = (a-&gt;*m_layersGetter)();
-        const FillLayer* toLayer = (b-&gt;*m_layersGetter)();
</del><ins>+        auto* fromLayer = &amp;(a-&gt;*m_layersGetter)();
+        auto* toLayer = &amp;(b-&gt;*m_layersGetter)();
</ins><span class="cx"> 
</span><span class="cx">         while (fromLayer &amp;&amp; toLayer) {
</span><span class="cx">             if (!m_fillLayerPropertyWrapper-&gt;equals(fromLayer, toLayer))
</span><span class="lines">@@ -1102,9 +1101,9 @@
</span><span class="cx"> 
</span><span class="cx">     void blend(const AnimationBase* anim, RenderStyle* dst, const RenderStyle* a, const RenderStyle* b, double progress) const override
</span><span class="cx">     {
</span><del>-        const FillLayer* aLayer = (a-&gt;*m_layersGetter)();
-        const FillLayer* bLayer = (b-&gt;*m_layersGetter)();
-        FillLayer* dstLayer = &amp;(dst-&gt;*m_layersAccessor)();
</del><ins>+        auto* aLayer = &amp;(a-&gt;*m_layersGetter)();
+        auto* bLayer = &amp;(b-&gt;*m_layersGetter)();
+        auto* dstLayer = &amp;(dst-&gt;*m_layersAccessor)();
</ins><span class="cx"> 
</span><span class="cx">         while (aLayer &amp;&amp; bLayer &amp;&amp; dstLayer) {
</span><span class="cx">             m_fillLayerPropertyWrapper-&gt;blend(anim, dstLayer, aLayer, bLayer, progress);
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx"> 
</span><span class="cx"> EventTrackingRegions ScrollingCoordinator::absoluteEventTrackingRegionsForFrame(const Frame&amp; frame) const
</span><span class="cx"> {
</span><del>-    RenderView* renderView = frame.contentRenderer();
</del><ins>+    auto* renderView = frame.contentRenderer();
</ins><span class="cx">     if (!renderView || renderView-&gt;documentBeingDestroyed())
</span><span class="cx">         return EventTrackingRegions();
</span><span class="cx"> 
</span><span class="lines">@@ -106,21 +106,21 @@
</span><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS)
</span><span class="cx">     // On iOS, we use nonFastScrollableRegion to represent the region covered by elements with touch event handlers.
</span><span class="cx">     ASSERT(frame.isMainFrame());
</span><del>-
-    Document* document = frame.document();
</del><ins>+    auto* document = frame.document();
</ins><span class="cx">     if (!document)
</span><span class="cx">         return EventTrackingRegions();
</span><span class="cx">     return document-&gt;eventTrackingRegions();
</span><span class="cx"> #else
</span><del>-    Region nonFastScrollableRegion;
-    FrameView* frameView = frame.view();
</del><ins>+    auto* frameView = frame.view();
</ins><span class="cx">     if (!frameView)
</span><span class="cx">         return EventTrackingRegions();
</span><span class="cx"> 
</span><ins>+    Region nonFastScrollableRegion;
+
</ins><span class="cx">     // FIXME: should ASSERT(!frameView-&gt;needsLayout()) here, but need to fix DebugPageOverlays
</span><span class="cx">     // to not ask for regions at bad times.
</span><span class="cx"> 
</span><del>-    if (const FrameView::ScrollableAreaSet* scrollableAreas = frameView-&gt;scrollableAreas()) {
</del><ins>+    if (auto* scrollableAreas = frameView-&gt;scrollableAreas()) {
</ins><span class="cx">         for (auto&amp; scrollableArea : *scrollableAreas) {
</span><span class="cx">             // Composited scrollable areas can be scrolled off the main thread.
</span><span class="cx">             if (scrollableArea-&gt;usesAsyncScrolling())
</span><span class="lines">@@ -136,18 +136,21 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; widget : frameView-&gt;widgetsInRenderTree()) {
</span><del>-        RenderWidget* renderWidget = RenderWidget::find(widget);
-        if (!renderWidget || !is&lt;PluginViewBase&gt;(*widget))
</del><ins>+        if (!is&lt;PluginViewBase&gt;(*widget))
</ins><span class="cx">             continue;
</span><del>-    
-        if (downcast&lt;PluginViewBase&gt;(*widget).wantsWheelEvents())
-            nonFastScrollableRegion.unite(renderWidget-&gt;absoluteBoundingBoxRect());
</del><ins>+        if (!downcast&lt;PluginViewBase&gt;(*widget).wantsWheelEvents())
+            continue;
+        auto* renderWidget = RenderWidget::find(*widget);
+        if (!renderWidget)
+            continue;
+        nonFastScrollableRegion.unite(renderWidget-&gt;absoluteBoundingBoxRect());
</ins><span class="cx">     }
</span><span class="cx">     
</span><ins>+    EventTrackingRegions eventTrackingRegions;
+
</ins><span class="cx">     // FIXME: if we've already accounted for this subframe as a scrollable area, we can avoid recursing into it here.
</span><del>-    EventTrackingRegions eventTrackingRegions;
</del><span class="cx">     for (Frame* subframe = frame.tree().firstChild(); subframe; subframe = subframe-&gt;tree().nextSibling()) {
</span><del>-        FrameView* subframeView = subframe-&gt;view();
</del><ins>+        auto* subframeView = subframe-&gt;view();
</ins><span class="cx">         if (!subframeView)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="lines">@@ -160,7 +163,7 @@
</span><span class="cx">         eventTrackingRegions.unite(subframeRegion);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Document::RegionFixedPair wheelHandlerRegion = frame.document()-&gt;absoluteRegionForEventTargets(frame.document()-&gt;wheelEventTargets());
</del><ins>+    auto wheelHandlerRegion = frame.document()-&gt;absoluteRegionForEventTargets(frame.document()-&gt;wheelEventTargets());
</ins><span class="cx">     bool wheelHandlerInFixedContent = wheelHandlerRegion.second;
</span><span class="cx">     if (wheelHandlerInFixedContent) {
</span><span class="cx">         // FIXME: need to handle position:sticky here too.
</span><span class="lines">@@ -172,6 +175,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: If this is not the main frame, we could clip the region to the frame's bounds.
</span><span class="cx">     eventTrackingRegions.uniteSynchronousRegion(eventNames().wheelEvent, nonFastScrollableRegion);
</span><ins>+
</ins><span class="cx">     return eventTrackingRegions;
</span><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformKeyedCodingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/KeyedCoding.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/KeyedCoding.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/KeyedCoding.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef KeyedCoding_h
-#define KeyedCoding_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &lt;functional&gt;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="lines">@@ -156,7 +155,7 @@
</span><span class="cx">     virtual void encodeDouble(const String&amp; key, double) = 0;
</span><span class="cx">     virtual void encodeString(const String&amp; key, const String&amp;) = 0;
</span><span class="cx"> 
</span><del>-    virtual PassRefPtr&lt;SharedBuffer&gt; finishEncoding() = 0;
</del><ins>+    virtual RefPtr&lt;SharedBuffer&gt; finishEncoding() = 0;
</ins><span class="cx"> 
</span><span class="cx">     template&lt;typename T&gt;
</span><span class="cx">     void encodeEnum(const String&amp; key, T value)
</span><span class="lines">@@ -211,5 +210,3 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // KeyedCoding_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformLengthBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/LengthBox.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/LengthBox.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/LengthBox.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -19,8 +19,7 @@
</span><span class="cx">     Boston, MA 02110-1301, USA.
</span><span class="cx"> */
</span><span class="cx"> 
</span><del>-#ifndef LengthBox_h
-#define LengthBox_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;Length.h&quot;
</span><span class="cx"> #include &quot;WritingMode.h&quot;
</span><span class="lines">@@ -31,15 +30,20 @@
</span><span class="cx"> template&lt;typename T&gt; class BoxExtent {
</span><span class="cx"> public:
</span><span class="cx">     BoxExtent()
</span><del>-        : m_sides({{ T(0), T(0), T(0), T(0) }})
</del><ins>+        : m_sides({ { { 0 }, { 0 }, { 0 }, { 0 } } })
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     BoxExtent(const T&amp; top, const T&amp; right, const T&amp; bottom, const T&amp; left)
</span><del>-        : m_sides({{ top, right, bottom, left }})
</del><ins>+        : m_sides({ { top, right, bottom, left } })
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    BoxExtent(T&amp;&amp; top, T&amp;&amp; right, T&amp;&amp; bottom, T&amp;&amp; left)
+        : m_sides({ { std::forward&lt;T&gt;(top), std::forward&lt;T&gt;(right), std::forward&lt;T&gt;(bottom), std::forward&lt;T&gt;(left) } })
+    {
+    }
+
</ins><span class="cx">     T&amp; at(PhysicalBoxSide side) { return m_sides[side]; }
</span><span class="cx">     T&amp; top() { return at(TopSide); }
</span><span class="cx">     T&amp; right() { return at(RightSide); }
</span><span class="lines">@@ -139,8 +143,8 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    LengthBox(const Length&amp; top, const Length&amp; right, const Length&amp; bottom, const Length&amp; left)
-        : BoxExtent(top, right, bottom, left)
</del><ins>+    LengthBox(Length&amp;&amp; top, Length&amp;&amp; right, Length&amp;&amp; bottom, Length&amp;&amp; left)
+        : BoxExtent { WTFMove(top), WTFMove(right), WTFMove(bottom), WTFMove(left) }
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -150,11 +154,9 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-typedef BoxExtent&lt;LayoutUnit&gt; LayoutBoxExtent;
-typedef BoxExtent&lt;float&gt; FloatBoxExtent;
</del><ins>+using LayoutBoxExtent = BoxExtent&lt;LayoutUnit&gt;;
+using FloatBoxExtent = BoxExtent&lt;float&gt;;
</ins><span class="cx"> 
</span><span class="cx"> TextStream&amp; operator&lt;&lt;(TextStream&amp;, const LengthBox&amp;);
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // LengthBox_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformLengthSizecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/LengthSize.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/LengthSize.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/LengthSize.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2015 Apple Inc.  All rights reserved.
</del><ins>+ * Copyright (C) 2015 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> 
</span><span class="cx"> TextStream&amp; operator&lt;&lt;(TextStream&amp; ts, const LengthSize&amp; size)
</span><span class="cx"> {
</span><del>-    return ts &lt;&lt; size.width() &lt;&lt; &quot; &quot; &lt;&lt; size.height();
</del><ins>+    return ts &lt;&lt; size.width &lt;&lt; &quot; &quot; &lt;&lt; size.height;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLengthSizeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/LengthSize.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/LengthSize.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/LengthSize.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,5 @@
</span><span class="cx"> /*
</span><del>-    Copyright (C) 1999 Lars Knoll (knoll@kde.org)
-    Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
</del><ins>+    Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx"> 
</span><span class="cx">     This library is free software; you can redistribute it and/or
</span><span class="cx">     modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -18,8 +17,7 @@
</span><span class="cx">     Boston, MA 02110-1301, USA.
</span><span class="cx"> */
</span><span class="cx"> 
</span><del>-#ifndef LengthSize_h
-#define LengthSize_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;Length.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -26,40 +24,20 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> struct LengthSize {
</span><del>-public:
-    LengthSize()
-    {
-    }
-    
-    LengthSize(Length width, Length height)
-        : m_width(WTFMove(width))
-        , m_height(WTFMove(height))
-    {
-    }
</del><ins>+    Length width;
+    Length height;
+};
</ins><span class="cx"> 
</span><del>-    bool operator==(const LengthSize&amp; o) const
-    {
-        return m_width == o.m_width &amp;&amp; m_height == o.m_height;
-    }
</del><ins>+inline bool operator==(const LengthSize&amp; a, const LengthSize&amp; b)
+{
+    return a.width == b.width &amp;&amp; a.height == b.height;
+}
</ins><span class="cx"> 
</span><del>-    void setWidth(Length width) { m_width = WTFMove(width); }
-    const Length&amp; width() const { return m_width; }
-
-    void setHeight(Length height) { m_height = WTFMove(height); }
-    const Length&amp; height() const { return m_height; }
-
-private:
-    Length m_width;
-    Length m_height;
-};
-
</del><span class="cx"> inline LengthSize blend(const LengthSize&amp; from, const LengthSize&amp; to, double progress)
</span><span class="cx"> {
</span><del>-    return LengthSize(blend(from.width(), to.width(), progress), blend(from.height(), to.height(), progress));
</del><ins>+    return { blend(from.width, to.width, progress), blend(from.height, to.height, progress) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> TextStream&amp; operator&lt;&lt;(TextStream&amp;, const LengthSize&amp;);
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // LengthSize_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformSpeechSynthesish"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/PlatformSpeechSynthesis.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformSpeechSynthesis.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/PlatformSpeechSynthesis.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef PlatformSpeechSynthesis_h
-#define PlatformSpeechSynthesis_h
-
-#if ENABLE(SPEECH_SYNTHESIS)
-
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/Vector.h&gt;
-
-namespace WebCore {
-    
-class SpeechSynthesis;
-class SpeechSynthesisUtterance;
-class SpeechSynthesisVoice;
-    
-class PlatformSpeechSynthesis : public RefCounted&lt;PlatformSpeechSynthesis&gt; {
-public:
-    static PassRefPtr&lt;PlatformSpeechSynthesis&gt; create(SpeechSynthesis*);
-    
-    void platformInitializeVoiceList(Vector&lt;RefPtr&lt;SpeechSynthesisVoice&gt; &gt;&amp;);
-    void platformSpeak(SpeechSynthesisUtterance*);
-    
-private:
-    PlatformSpeechSynthesis(SpeechSynthesis*);
-
-    SpeechSynthesis* m_speechSynthesis;
-};
-    
-} // namespace WebCore
-
-#endif // ENABLE(SPEECH_SYNTHESIS)
-
-#endif // PlatformSpeechSynthesis_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformSpeechSynthesisUtterancecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc.  All rights reserved.
</del><ins>+ * Copyright (C) 2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -30,16 +30,13 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;PlatformSpeechSynthesisUtterance&gt; PlatformSpeechSynthesisUtterance::create(PlatformSpeechSynthesisUtteranceClient* client)
</del><ins>+Ref&lt;PlatformSpeechSynthesisUtterance&gt; PlatformSpeechSynthesisUtterance::create(PlatformSpeechSynthesisUtteranceClient&amp; client)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new PlatformSpeechSynthesisUtterance(client));
</del><ins>+    return adoptRef(*new PlatformSpeechSynthesisUtterance(client));
</ins><span class="cx"> }
</span><span class="cx">     
</span><del>-PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance(PlatformSpeechSynthesisUtteranceClient* client)
-    : m_client(client)
-    , m_volume(1.0f)
-    , m_rate(1.0f)
-    , m_pitch(1.0f)
</del><ins>+inline PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance(PlatformSpeechSynthesisUtteranceClient&amp; client)
+    : m_client(&amp;client)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformSpeechSynthesisUtteranceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/PlatformSpeechSynthesisUtterance.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc.  All rights reserved.
</del><ins>+ * Copyright (C) 2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -23,29 +23,21 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef PlatformSpeechSynthesisUtterance_h
-#define PlatformSpeechSynthesisUtterance_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(SPEECH_SYNTHESIS)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;PlatformSpeechSynthesisVoice.h&quot;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx">     
</span><span class="cx"> class PlatformSpeechSynthesisUtteranceClient {
</span><del>-public:
-    // Implement methods as needed.
-protected:
-    virtual ~PlatformSpeechSynthesisUtteranceClient() { }
</del><span class="cx"> };
</span><span class="cx">     
</span><span class="cx"> class PlatformSpeechSynthesisUtterance : public RefCounted&lt;PlatformSpeechSynthesisUtterance&gt; {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;PlatformSpeechSynthesisUtterance&gt; create(PlatformSpeechSynthesisUtteranceClient*);
-    
</del><ins>+    static Ref&lt;PlatformSpeechSynthesisUtterance&gt; create(PlatformSpeechSynthesisUtteranceClient&amp;);
+
</ins><span class="cx">     const String&amp; text() const { return m_text; }
</span><span class="cx">     void setText(const String&amp; text) { m_text = text; }
</span><span class="cx">     
</span><span class="lines">@@ -74,20 +66,18 @@
</span><span class="cx">     void setClient(PlatformSpeechSynthesisUtteranceClient* client) { m_client = client; }
</span><span class="cx">     
</span><span class="cx"> private:
</span><del>-    explicit PlatformSpeechSynthesisUtterance(PlatformSpeechSynthesisUtteranceClient*);
</del><ins>+    explicit PlatformSpeechSynthesisUtterance(PlatformSpeechSynthesisUtteranceClient&amp;);
</ins><span class="cx"> 
</span><span class="cx">     PlatformSpeechSynthesisUtteranceClient* m_client;
</span><span class="cx">     String m_text;
</span><span class="cx">     String m_lang;
</span><span class="cx">     RefPtr&lt;PlatformSpeechSynthesisVoice&gt; m_voice;
</span><del>-    float m_volume;
-    float m_rate;
-    float m_pitch;
-    double m_startTime;
</del><ins>+    float m_volume { 1 };
+    float m_rate { 1 };
+    float m_pitch { 1 };
+    double m_startTime { 0 };
</ins><span class="cx"> };
</span><span class="cx">     
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span><del>-
-#endif // PlatformSpeechSynthesisUtterance_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformSpeechSynthesisVoicecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc.  All rights reserved.
</del><ins>+ * Copyright (C) 2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -30,17 +30,17 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;PlatformSpeechSynthesisVoice&gt; PlatformSpeechSynthesisVoice::create(const String&amp; voiceURI, const String&amp; name, const String&amp; lang, bool localService, bool isDefault)
</del><ins>+Ref&lt;PlatformSpeechSynthesisVoice&gt; PlatformSpeechSynthesisVoice::create(const String&amp; voiceURI, const String&amp; name, const String&amp; lang, bool localService, bool isDefault)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new PlatformSpeechSynthesisVoice(voiceURI, name, lang, localService, isDefault));
</del><ins>+    return adoptRef(*new PlatformSpeechSynthesisVoice(voiceURI, name, lang, localService, isDefault));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;PlatformSpeechSynthesisVoice&gt; PlatformSpeechSynthesisVoice::create()
</del><ins>+Ref&lt;PlatformSpeechSynthesisVoice&gt; PlatformSpeechSynthesisVoice::create()
</ins><span class="cx"> {
</span><del>-    return adoptRef(new PlatformSpeechSynthesisVoice());
</del><ins>+    return adoptRef(*new PlatformSpeechSynthesisVoice);
</ins><span class="cx"> }
</span><del>-    
-PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice(const String&amp; voiceURI, const String&amp; name, const String&amp; lang, bool localService, bool isDefault)
</del><ins>+
+inline PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice(const String&amp; voiceURI, const String&amp; name, const String&amp; lang, bool localService, bool isDefault)
</ins><span class="cx">     : m_voiceURI(voiceURI)
</span><span class="cx">     , m_name(name)
</span><span class="cx">     , m_lang(lang)
</span><span class="lines">@@ -49,12 +49,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice()
-    : m_localService(false)
-    , m_default(false)
-{
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformSpeechSynthesisVoiceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/PlatformSpeechSynthesisVoice.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc.  All rights reserved.
</del><ins>+ * Copyright (C) 2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -23,13 +23,10 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef PlatformSpeechSynthesisVoice_h
-#define PlatformSpeechSynthesisVoice_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(SPEECH_SYNTHESIS)
</span><span class="cx"> 
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
</del><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -36,8 +33,8 @@
</span><span class="cx"> 
</span><span class="cx"> class PlatformSpeechSynthesisVoice : public RefCounted&lt;PlatformSpeechSynthesisVoice&gt; {
</span><span class="cx"> public:
</span><del>-    WEBCORE_EXPORT static PassRefPtr&lt;PlatformSpeechSynthesisVoice&gt; create(const String&amp; voiceURI, const String&amp; name, const String&amp; lang, bool localService, bool isDefault);
-    static PassRefPtr&lt;PlatformSpeechSynthesisVoice&gt; create();
</del><ins>+    WEBCORE_EXPORT static Ref&lt;PlatformSpeechSynthesisVoice&gt; create(const String&amp; voiceURI, const String&amp; name, const String&amp; lang, bool localService, bool isDefault);
+    static Ref&lt;PlatformSpeechSynthesisVoice&gt; create();
</ins><span class="cx"> 
</span><span class="cx">     const String&amp; voiceURI() const { return m_voiceURI; }
</span><span class="cx">     void setVoiceURI(const String&amp; voiceURI) { m_voiceURI = voiceURI; }
</span><span class="lines">@@ -56,17 +53,15 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     PlatformSpeechSynthesisVoice(const String&amp; voiceURI, const String&amp; name, const String&amp; lang, bool localService, bool isDefault);
</span><del>-    PlatformSpeechSynthesisVoice();
</del><ins>+    PlatformSpeechSynthesisVoice() = default;
</ins><span class="cx"> 
</span><span class="cx">     String m_voiceURI;
</span><span class="cx">     String m_name;
</span><span class="cx">     String m_lang;
</span><del>-    bool m_localService;
-    bool m_default;
</del><ins>+    bool m_localService { false };
+    bool m_default { false };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span><del>-
-#endif // PlatformSpeechSynthesisVoice_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/ScrollView.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007, 2008, 2014-2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -62,14 +62,14 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollView::addChild(PassRefPtr&lt;Widget&gt; prpChild) 
</del><ins>+void ScrollView::addChild(Widget&amp; child)
</ins><span class="cx"> {
</span><del>-    Widget* child = prpChild.get();
-    ASSERT(child != this &amp;&amp; !child-&gt;parent());
-    child-&gt;setParent(this);
-    m_children.add(prpChild);
-    if (child-&gt;platformWidget())
-        platformAddChild(child);
</del><ins>+    ASSERT(&amp;child != this);
+    ASSERT(!child.parent());
+    child.setParent(this);
+    m_children.add(child);
+    if (child.platformWidget())
+        platformAddChild(&amp;child);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::removeChild(Widget&amp; child)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (hasBar &amp;&amp; !scrollbar) {
</span><span class="cx">         scrollbar = createScrollbar(orientation);
</span><del>-        addChild(scrollbar.get());
</del><ins>+        addChild(*scrollbar);
</ins><span class="cx">         didAddScrollbar(scrollbar.get(), orientation);
</span><span class="cx">         scrollbar-&gt;styleChanged();
</span><span class="cx">         if (contentSizeAffected)
</span><span class="lines">@@ -829,12 +829,6 @@
</span><span class="cx">     window-&gt;invalidateRootView(IntRect());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ScrollView::scrollContentsFastPath(const IntSize&amp; scrollDelta, const IntRect&amp; rectToScroll, const IntRect&amp; clipRect)
-{
-    hostWindow()-&gt;scroll(scrollDelta, rectToScroll, clipRect);
-    return true;
-}
-
</del><span class="cx"> void ScrollView::scrollContentsSlowPath(const IntRect&amp; updateRect)
</span><span class="cx"> {
</span><span class="cx">     hostWindow()-&gt;invalidateContentsForSlowScroll(updateRect);
</span><span class="lines">@@ -1038,17 +1032,14 @@
</span><span class="cx"> {
</span><span class="cx">     if (platformWidget())
</span><span class="cx">         return;
</span><del>-
-    HashSet&lt;RefPtr&lt;Widget&gt;&gt;::const_iterator end = m_children.end();
-    for (HashSet&lt;RefPtr&lt;Widget&gt;&gt;::const_iterator current = m_children.begin(); current != end; ++current)
-        (*current)-&gt;frameRectsChanged();
</del><ins>+    for (auto&amp; child : m_children)
+        child-&gt;frameRectsChanged();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::clipRectChanged()
</span><span class="cx"> {
</span><del>-    HashSet&lt;RefPtr&lt;Widget&gt;&gt;::const_iterator end = m_children.end();
-    for (HashSet&lt;RefPtr&lt;Widget&gt;&gt;::const_iterator current = m_children.begin(); current != end; ++current)
-        (*current)-&gt;clipRectChanged();
</del><ins>+    for (auto&amp; child : m_children)
+        child-&gt;clipRectChanged();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void positionScrollbarLayer(GraphicsLayer* graphicsLayer, Scrollbar* scrollbar)
</span><span class="lines">@@ -1150,10 +1141,6 @@
</span><span class="cx">     positionScrollbarLayers();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollView::updateScrollCorner()
-{
-}
-
</del><span class="cx"> void ScrollView::paintScrollCorner(GraphicsContext&amp; context, const IntRect&amp; cornerRect)
</span><span class="cx"> {
</span><span class="cx">     ScrollbarTheme::theme().paintScrollCorner(this, context, cornerRect);
</span><span class="lines">@@ -1392,9 +1379,8 @@
</span><span class="cx">     if (!isSelfVisible())
</span><span class="cx">         return;
</span><span class="cx">         
</span><del>-    HashSet&lt;RefPtr&lt;Widget&gt;&gt;::iterator end = m_children.end();
-    for (HashSet&lt;RefPtr&lt;Widget&gt;&gt;::iterator it = m_children.begin(); it != end; ++it)
-        (*it)-&gt;setParentVisible(visible);
</del><ins>+    for (auto&amp; child : m_children)
+        child-&gt;setParentVisible(visible);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::show()
</span><span class="lines">@@ -1402,9 +1388,8 @@
</span><span class="cx">     if (!isSelfVisible()) {
</span><span class="cx">         setSelfVisible(true);
</span><span class="cx">         if (isParentVisible()) {
</span><del>-            HashSet&lt;RefPtr&lt;Widget&gt;&gt;::iterator end = m_children.end();
-            for (HashSet&lt;RefPtr&lt;Widget&gt;&gt;::iterator it = m_children.begin(); it != end; ++it)
-                (*it)-&gt;setParentVisible(true);
</del><ins>+            for (auto&amp; child : m_children)
+                child-&gt;setParentVisible(true);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1415,9 +1400,8 @@
</span><span class="cx"> {
</span><span class="cx">     if (isSelfVisible()) {
</span><span class="cx">         if (isParentVisible()) {
</span><del>-            HashSet&lt;RefPtr&lt;Widget&gt;&gt;::iterator end = m_children.end();
-            for (HashSet&lt;RefPtr&lt;Widget&gt;&gt;::iterator it = m_children.begin(); it != end; ++it)
-                (*it)-&gt;setParentVisible(false);
</del><ins>+            for (auto&amp; child : m_children)
+                child-&gt;setParentVisible(false);
</ins><span class="cx">         }
</span><span class="cx">         setSelfVisible(false);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/ScrollView.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2004, 2006, 2007, 2008, 2013, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2009 Holger Hans Peter Freyther
</span><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -32,10 +32,10 @@
</span><span class="cx"> #include &quot;ScrollableArea.h&quot;
</span><span class="cx"> #include &quot;ScrollTypes.h&quot;
</span><span class="cx"> #include &quot;Widget.h&quot;
</span><del>-
</del><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><ins>+
</ins><span class="cx"> OBJC_CLASS WAKScrollView;
</span><span class="cx"> OBJC_CLASS WAKView;
</span><span class="cx"> 
</span><span class="lines">@@ -46,6 +46,7 @@
</span><span class="cx"> #ifndef NSView
</span><span class="cx"> #define NSView WAKView
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) &amp;&amp; defined __OBJC__
</span><span class="lines">@@ -64,10 +65,10 @@
</span><span class="cx">     virtual ~ScrollView();
</span><span class="cx"> 
</span><span class="cx">     // ScrollableArea functions.
</span><del>-    int scrollSize(ScrollbarOrientation) const override;
-    int scrollOffset(ScrollbarOrientation) const override;
-    WEBCORE_EXPORT void setScrollOffset(const ScrollOffset&amp;) override;
-    bool isScrollCornerVisible() const override;
</del><ins>+    int scrollSize(ScrollbarOrientation) const final;
+    int scrollOffset(ScrollbarOrientation) const final;
+    WEBCORE_EXPORT void setScrollOffset(const ScrollOffset&amp;) final;
+    bool isScrollCornerVisible() const final;
</ins><span class="cx">     void scrollbarStyleChanged(ScrollbarStyle, bool forceUpdate) override;
</span><span class="cx"> 
</span><span class="cx">     virtual void notifyPageThatContentAreaWillPaint() const;
</span><span class="lines">@@ -85,14 +86,14 @@
</span><span class="cx">     virtual IntRect windowClipRect() const = 0;
</span><span class="cx"> 
</span><span class="cx">     // Functions for child manipulation and inspection.
</span><del>-    const HashSet&lt;RefPtr&lt;Widget&gt;&gt;&amp; children() const { return m_children; }
-    WEBCORE_EXPORT virtual void addChild(PassRefPtr&lt;Widget&gt;);
</del><ins>+    const HashSet&lt;Ref&lt;Widget&gt;&gt;&amp; children() const { return m_children; }
+    WEBCORE_EXPORT void addChild(Widget&amp;);
</ins><span class="cx">     virtual void removeChild(Widget&amp;);
</span><span class="cx"> 
</span><span class="cx">     // If the scroll view does not use a native widget, then it will have cross-platform Scrollbars. These functions
</span><span class="cx">     // can be used to obtain those scrollbars.
</span><del>-    Scrollbar* horizontalScrollbar() const override { return m_horizontalScrollbar.get(); }
-    Scrollbar* verticalScrollbar() const override { return m_verticalScrollbar.get(); }
</del><ins>+    Scrollbar* horizontalScrollbar() const final { return m_horizontalScrollbar.get(); }
+    Scrollbar* verticalScrollbar() const final { return m_verticalScrollbar.get(); }
</ins><span class="cx">     bool isScrollViewScrollbar(const Widget* child) const { return horizontalScrollbar() == child || verticalScrollbar() == child; }
</span><span class="cx"> 
</span><span class="cx">     void positionScrollbarLayers();
</span><span class="lines">@@ -121,7 +122,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool avoidScrollbarCreation() const { return false; }
</span><span class="cx"> 
</span><del>-    void setScrollbarOverlayStyle(ScrollbarOverlayStyle) override;
</del><ins>+    void setScrollbarOverlayStyle(ScrollbarOverlayStyle) final;
</ins><span class="cx"> 
</span><span class="cx">     // By default you only receive paint events for the area that is visible. In the case of using a
</span><span class="cx">     // tiled backing store, this function can be set, so that the view paints the entire contents.
</span><span class="lines">@@ -167,7 +168,7 @@
</span><span class="cx">     // In the situation the client is responsible for the scrolling (ie. with a tiled backing store) it is possible to use
</span><span class="cx">     // the setFixedVisibleContentRect instead for the mainframe, though this must be updated manually, e.g just before resuming the page
</span><span class="cx">     // which usually will happen when panning, pinching and rotation ends, or when scale or position are changed manually.
</span><del>-    IntSize visibleSize() const override { return visibleContentRect(LegacyIOSDocumentVisibleRect).size(); }
</del><ins>+    IntSize visibleSize() const final { return visibleContentRect(LegacyIOSDocumentVisibleRect).size(); }
</ins><span class="cx"> 
</span><span class="cx"> #if USE(COORDINATED_GRAPHICS)
</span><span class="cx">     virtual void setFixedVisibleContentRect(const IntRect&amp; visibleContentRect) { m_fixedVisibleContentRect = visibleContentRect; }
</span><span class="lines">@@ -217,13 +218,13 @@
</span><span class="cx"> 
</span><span class="cx">     // Functions for getting/setting the size of the document contained inside the ScrollView (as an IntSize or as individual width and height
</span><span class="cx">     // values).
</span><del>-    WEBCORE_EXPORT IntSize contentsSize() const override; // Always at least as big as the visibleWidth()/visibleHeight().
</del><ins>+    WEBCORE_EXPORT IntSize contentsSize() const final; // Always at least as big as the visibleWidth()/visibleHeight().
</ins><span class="cx">     int contentsWidth() const { return contentsSize().width(); }
</span><span class="cx">     int contentsHeight() const { return contentsSize().height(); }
</span><span class="cx">     virtual void setContentsSize(const IntSize&amp;);
</span><span class="cx"> 
</span><span class="cx">     // Functions for querying the current scrolled position (both as a point, a size, or as individual X and Y values).
</span><del>-    ScrollPosition scrollPosition() const override { return visibleContentRect(LegacyIOSDocumentVisibleRect).location(); }
</del><ins>+    ScrollPosition scrollPosition() const final { return visibleContentRect(LegacyIOSDocumentVisibleRect).location(); }
</ins><span class="cx"> 
</span><span class="cx">     ScrollPosition maximumScrollPosition() const override; // The maximum position we can be scrolled to.
</span><span class="cx"> 
</span><span class="lines">@@ -258,7 +259,7 @@
</span><span class="cx">     // relative to the very top of the view.
</span><span class="cx">     WEBCORE_EXPORT ScrollPosition documentScrollPositionRelativeToViewOrigin() const;
</span><span class="cx"> 
</span><del>-    IntSize overhangAmount() const override;
</del><ins>+    IntSize overhangAmount() const final;
</ins><span class="cx"> 
</span><span class="cx">     void cacheCurrentScrollPosition() { m_cachedScrollPosition = scrollPosition(); }
</span><span class="cx">     ScrollPosition cachedScrollPosition() const { return m_cachedScrollPosition; }
</span><span class="lines">@@ -313,13 +314,13 @@
</span><span class="cx">     bool isOffscreen() const;
</span><span class="cx"> 
</span><span class="cx">     // Called when our frame rect changes (or the rect/scroll position of an ancestor changes).
</span><del>-    void frameRectsChanged() override;
</del><ins>+    void frameRectsChanged() final;
</ins><span class="cx">     
</span><span class="cx">     // Widget override to update our scrollbars and notify our contents of the resize.
</span><span class="cx">     void setFrameRect(const IntRect&amp;) override;
</span><span class="cx"> 
</span><span class="cx">     // Widget override to notify our contents of a cliprect change.
</span><del>-    void clipRectChanged() override;
</del><ins>+    void clipRectChanged() final;
</ins><span class="cx"> 
</span><span class="cx">     // For platforms that need to hit test scrollbars from within the engine's event handlers (like Win32).
</span><span class="cx">     Scrollbar* scrollbarAtPoint(const IntPoint&amp; windowPoint);
</span><span class="lines">@@ -343,13 +344,13 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Widget override. Handles painting of the contents of the view as well as the scrollbars.
</span><del>-    WEBCORE_EXPORT void paint(GraphicsContext&amp;, const IntRect&amp;) override;
</del><ins>+    WEBCORE_EXPORT void paint(GraphicsContext&amp;, const IntRect&amp;) final;
</ins><span class="cx">     void paintScrollbars(GraphicsContext&amp;, const IntRect&amp;);
</span><span class="cx"> 
</span><span class="cx">     // Widget overrides to ensure that our children's visibility status is kept up to date when we get shown and hidden.
</span><span class="cx">     WEBCORE_EXPORT void show() override;
</span><del>-    WEBCORE_EXPORT void hide() override;
-    WEBCORE_EXPORT void setParentVisible(bool) override;
</del><ins>+    WEBCORE_EXPORT void hide() final;
+    WEBCORE_EXPORT void setParentVisible(bool) final;
</ins><span class="cx">     
</span><span class="cx">     // Pan scrolling.
</span><span class="cx">     static const int noPanScrollRadius = 15;
</span><span class="lines">@@ -357,21 +358,19 @@
</span><span class="cx">     void removePanScrollIcon();
</span><span class="cx">     void paintPanScrollIcon(GraphicsContext&amp;);
</span><span class="cx"> 
</span><del>-    virtual bool isPointInScrollbarCorner(const IntPoint&amp;);
-    virtual bool scrollbarCornerPresent() const;
-    IntRect scrollCornerRect() const override;
</del><ins>+    bool isPointInScrollbarCorner(const IntPoint&amp;);
+    bool scrollbarCornerPresent() const;
+    IntRect scrollCornerRect() const final;
</ins><span class="cx">     virtual void paintScrollCorner(GraphicsContext&amp;, const IntRect&amp; cornerRect);
</span><span class="cx">     virtual void paintScrollbar(GraphicsContext&amp;, Scrollbar&amp;, const IntRect&amp;);
</span><span class="cx"> 
</span><del>-    IntRect convertFromScrollbarToContainingView(const Scrollbar&amp;, const IntRect&amp;) const override;
-    IntRect convertFromContainingViewToScrollbar(const Scrollbar&amp;, const IntRect&amp;) const override;
-    IntPoint convertFromScrollbarToContainingView(const Scrollbar&amp;, const IntPoint&amp;) const override;
-    IntPoint convertFromContainingViewToScrollbar(const Scrollbar&amp;, const IntPoint&amp;) const override;
</del><ins>+    IntRect convertFromScrollbarToContainingView(const Scrollbar&amp;, const IntRect&amp;) const final;
+    IntRect convertFromContainingViewToScrollbar(const Scrollbar&amp;, const IntRect&amp;) const final;
+    IntPoint convertFromScrollbarToContainingView(const Scrollbar&amp;, const IntPoint&amp;) const final;
+    IntPoint convertFromContainingViewToScrollbar(const Scrollbar&amp;, const IntPoint&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx">     void calculateAndPaintOverhangAreas(GraphicsContext&amp;, const IntRect&amp; dirtyRect);
</span><span class="cx"> 
</span><del>-    bool isScrollView() const override { return true; }
-
</del><span class="cx">     WEBCORE_EXPORT void scrollOffsetChangedViaPlatformWidget(const ScrollOffset&amp; oldOffset, const ScrollOffset&amp; newOffset);
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="lines">@@ -384,18 +383,18 @@
</span><span class="cx"> 
</span><span class="cx">     void availableContentSizeChanged(AvailableSizeChangeReason) override;
</span><span class="cx">     virtual void addedOrRemovedScrollbar() = 0;
</span><del>-    virtual void delegatesScrollingDidChange() { }
</del><ins>+    virtual void delegatesScrollingDidChange() = 0;
</ins><span class="cx"> 
</span><span class="cx">     // These functions are used to create/destroy scrollbars.
</span><span class="cx">     // They return true if the scrollbar was added or removed.
</span><del>-    bool setHasHorizontalScrollbar(bool, bool* contentSizeAffected = 0);
-    bool setHasVerticalScrollbar(bool, bool* contentSizeAffected = 0);
</del><ins>+    bool setHasHorizontalScrollbar(bool, bool* contentSizeAffected = nullptr);
+    bool setHasVerticalScrollbar(bool, bool* contentSizeAffected = nullptr);
</ins><span class="cx"> 
</span><del>-    virtual void updateScrollCorner();
-    void invalidateScrollCornerRect(const IntRect&amp;) override;
</del><ins>+    virtual void updateScrollCorner() = 0;
+    void invalidateScrollCornerRect(const IntRect&amp;) final;
</ins><span class="cx"> 
</span><span class="cx">     // Scroll the content by blitting the pixels.
</span><del>-    virtual bool scrollContentsFastPath(const IntSize&amp; scrollDelta, const IntRect&amp; rectToScroll, const IntRect&amp; clipRect);
</del><ins>+    virtual bool scrollContentsFastPath(const IntSize&amp; scrollDelta, const IntRect&amp; rectToScroll, const IntRect&amp; clipRect) = 0;
</ins><span class="cx">     // Scroll the content by invalidating everything.
</span><span class="cx">     virtual void scrollContentsSlowPath(const IntRect&amp; updateRect);
</span><span class="cx"> 
</span><span class="lines">@@ -402,8 +401,8 @@
</span><span class="cx">     void setScrollOrigin(const IntPoint&amp;, bool updatePositionAtAll, bool updatePositionSynchronously);
</span><span class="cx"> 
</span><span class="cx">     // Subclassed by FrameView to check the writing-mode of the document.
</span><del>-    virtual bool isVerticalDocument() const { return true; }
-    virtual bool isFlippedDocument() const { return false; }
</del><ins>+    virtual bool isVerticalDocument() const = 0;
+    virtual bool isFlippedDocument() const = 0;
</ins><span class="cx"> 
</span><span class="cx">     // Called to update the scrollbars to accurately reflect the state of the view.
</span><span class="cx">     void updateScrollbars(const ScrollPosition&amp; desiredPosition);
</span><span class="lines">@@ -411,14 +410,14 @@
</span><span class="cx">     float platformTopContentInset() const;
</span><span class="cx">     void platformSetTopContentInset(float);
</span><span class="cx"> 
</span><del>-    virtual void handleDeferredScrollUpdateAfterContentSizeChange();
</del><ins>+    void handleDeferredScrollUpdateAfterContentSizeChange();
</ins><span class="cx"> 
</span><del>-    virtual bool shouldDeferScrollUpdateAfterContentSizeChange() { return false; }
</del><ins>+    virtual bool shouldDeferScrollUpdateAfterContentSizeChange() = 0;
</ins><span class="cx"> 
</span><del>-    virtual void scrollOffsetChangedViaPlatformWidgetImpl(const ScrollOffset&amp;, const ScrollOffset&amp;) { }
</del><ins>+    virtual void scrollOffsetChangedViaPlatformWidgetImpl(const ScrollOffset&amp;, const ScrollOffset&amp;) = 0;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    virtual void unobscuredContentSizeChanged() { }
</del><ins>+    virtual void unobscuredContentSizeChanged() = 0;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -425,7 +424,7 @@
</span><span class="cx">     // Size available for view contents, excluding content insets. Not affected by zooming.
</span><span class="cx">     IntSize sizeForUnobscuredContent(VisibleContentRectIncludesScrollbars = ExcludeScrollbars) const;
</span><span class="cx"> 
</span><del>-    IntRect visibleContentRectInternal(VisibleContentRectIncludesScrollbars, VisibleContentRectBehavior) const override;
</del><ins>+    IntRect visibleContentRectInternal(VisibleContentRectIncludesScrollbars, VisibleContentRectBehavior) const final;
</ins><span class="cx">     WEBCORE_EXPORT IntRect unobscuredContentRectInternal(VisibleContentRectIncludesScrollbars = ExcludeScrollbars) const;
</span><span class="cx"> 
</span><span class="cx">     void completeUpdatesAfterScrollTo(const IntSize&amp; scrollDelta);
</span><span class="lines">@@ -432,6 +431,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool setHasScrollbarInternal(RefPtr&lt;Scrollbar&gt;&amp;, ScrollbarOrientation, bool hasBar, bool* contentSizeAffected);
</span><span class="cx"> 
</span><ins>+    bool isScrollView() const final { return true; }
+
</ins><span class="cx">     RefPtr&lt;Scrollbar&gt; m_horizontalScrollbar;
</span><span class="cx">     RefPtr&lt;Scrollbar&gt; m_verticalScrollbar;
</span><span class="cx">     ScrollbarMode m_horizontalScrollbarMode;
</span><span class="lines">@@ -442,7 +443,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_prohibitsScrolling;
</span><span class="cx"> 
</span><del>-    HashSet&lt;RefPtr&lt;Widget&gt;&gt; m_children;
</del><ins>+    HashSet&lt;Ref&lt;Widget&gt;&gt; m_children;
</ins><span class="cx"> 
</span><span class="cx">     // This bool is unused on Mac OS because we directly ask the platform widget
</span><span class="cx">     // whether it is safe to blit on scroll.
</span><span class="lines">@@ -483,9 +484,9 @@
</span><span class="cx"> 
</span><span class="cx">     IntRect rectToCopyOnScroll() const;
</span><span class="cx"> 
</span><del>-    // Called when the scroll position within this view changes.  FrameView overrides this to generate repaint invalidations.
-    virtual void updateLayerPositionsAfterScrolling() { }
-    virtual void updateCompositingLayersAfterScrolling() { }
</del><ins>+    // Called when the scroll position within this view changes. FrameView overrides this to generate repaint invalidations.
+    virtual void updateLayerPositionsAfterScrolling() = 0;
+    virtual void updateCompositingLayersAfterScrolling() = 0;
</ins><span class="cx"> 
</span><span class="cx">     void platformAddChild(Widget*);
</span><span class="cx">     void platformRemoveChild(Widget*);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformThemeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Theme.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Theme.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/Theme.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx">     virtual LengthSize controlSize(ControlPart, const FontCascade&amp;, const LengthSize&amp; zoomedSize, float /*zoomFactor*/) const { return zoomedSize; }
</span><span class="cx">     
</span><span class="cx">     // Returns the minimum size for a control in zoomed coordinates.  
</span><del>-    virtual LengthSize minimumControlSize(ControlPart, const FontCascade&amp;, float /*zoomFactor*/) const { return LengthSize(Length(0, Fixed), Length(0, Fixed)); }
</del><ins>+    virtual LengthSize minimumControlSize(ControlPart, const FontCascade&amp;, float /*zoomFactor*/) const { return { { 0, Fixed }, { 0, Fixed } }; }
</ins><span class="cx">     
</span><span class="cx">     // Allows the theme to modify the existing padding/border.
</span><span class="cx">     virtual LengthBox controlPadding(ControlPart, const FontCascade&amp;, const LengthBox&amp; zoomedBox, float zoomFactor) const;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationAnimationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/Animation.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/Animation.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/animation/Animation.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 2000 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Dirk Mueller (mueller@kde.org)
</span><del>- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -22,22 +22,17 @@
</span><span class="cx">  *
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef Animation_h
-#define Animation_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><del>-#include &quot;PlatformExportMacros.h&quot;
-
-#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
-#include &quot;AnimationTrigger.h&quot;
-#endif
</del><span class="cx"> #include &quot;CSSPropertyNames.h&quot;
</span><span class="cx"> #include &quot;RenderStyleConstants.h&quot;
</span><span class="cx"> #include &quot;StyleScope.h&quot;
</span><span class="cx"> #include &quot;TimingFunction.h&quot;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
</del><span class="cx"> 
</span><ins>+#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
+#include &quot;AnimationTrigger.h&quot;
+#endif
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class Animation : public RefCounted&lt;Animation&gt; {
</span><span class="lines">@@ -62,6 +57,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Flags this to be the special &quot;none&quot; animation (animation-name: none)
</span><span class="cx">     bool isNoneAnimation() const { return m_isNone; }
</span><ins>+
</ins><span class="cx">     // We can make placeholder Animation objects to keep the comma-separated lists
</span><span class="cx">     // of properties in sync. isValidAnimation means this is not a placeholder.
</span><span class="cx">     bool isValidAnimation() const { return !m_isNone &amp;&amp; !m_name.isEmpty(); }
</span><span class="lines">@@ -68,14 +64,13 @@
</span><span class="cx"> 
</span><span class="cx">     bool isEmpty() const
</span><span class="cx">     {
</span><del>-        return (!m_directionSet &amp;&amp; !m_durationSet &amp;&amp; !m_fillModeSet
-                &amp;&amp; !m_nameSet &amp;&amp; !m_playStateSet &amp;&amp; !m_iterationCountSet
-                &amp;&amp; !m_delaySet &amp;&amp; !m_timingFunctionSet &amp;&amp; !m_propertySet
</del><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><del>-                &amp;&amp; !m_triggerSet);
-#else
-                );
</del><ins>+        if (m_triggerSet)
+            return false;
</ins><span class="cx"> #endif
</span><ins>+        return !m_directionSet &amp;&amp; !m_durationSet &amp;&amp; !m_fillModeSet
+            &amp;&amp; !m_nameSet &amp;&amp; !m_playStateSet &amp;&amp; !m_iterationCountSet
+            &amp;&amp; !m_delaySet &amp;&amp; !m_timingFunctionSet &amp;&amp; !m_propertySet;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool isEmptyOrZeroDuration() const
</span><span class="lines">@@ -114,11 +109,7 @@
</span><span class="cx"> 
</span><span class="cx">     double delay() const { return m_delay; }
</span><span class="cx"> 
</span><del>-    enum AnimationMode {
-        AnimateAll,
-        AnimateNone,
-        AnimateSingleProperty
-    };
</del><ins>+    enum AnimationMode { AnimateAll, AnimateNone, AnimateSingleProperty };
</ins><span class="cx"> 
</span><span class="cx">     enum AnimationDirection {
</span><span class="cx">         AnimationDirectionNormal,
</span><span class="lines">@@ -139,10 +130,10 @@
</span><span class="cx">     Style::ScopeOrdinal nameStyleScopeOrdinal() const { return m_nameStyleScopeOrdinal; }
</span><span class="cx">     EAnimPlayState playState() const { return static_cast&lt;EAnimPlayState&gt;(m_playState); }
</span><span class="cx">     CSSPropertyID property() const { return m_property; }
</span><del>-    PassRefPtr&lt;TimingFunction&gt; timingFunction() const { return m_timingFunction; }
</del><ins>+    TimingFunction* timingFunction() const { return m_timingFunction.get(); }
</ins><span class="cx">     AnimationMode animationMode() const { return m_mode; }
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><del>-    PassRefPtr&lt;AnimationTrigger&gt; trigger() const { return m_trigger; }
</del><ins>+    AnimationTrigger* trigger() const { return m_trigger.get(); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void setDelay(double c) { m_delay = c; m_delaySet = true; }
</span><span class="lines">@@ -158,10 +149,10 @@
</span><span class="cx">     }
</span><span class="cx">     void setPlayState(EAnimPlayState d) { m_playState = d; m_playStateSet = true; }
</span><span class="cx">     void setProperty(CSSPropertyID t) { m_property = t; m_propertySet = true; }
</span><del>-    void setTimingFunction(PassRefPtr&lt;TimingFunction&gt; f) { m_timingFunction = f; m_timingFunctionSet = true; }
</del><ins>+    void setTimingFunction(RefPtr&lt;TimingFunction&gt;&amp;&amp; function) { m_timingFunction = WTFMove(function); m_timingFunctionSet = true; }
</ins><span class="cx">     void setAnimationMode(AnimationMode mode) { m_mode = mode; }
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><del>-    void setTrigger(PassRefPtr&lt;AnimationTrigger&gt; t) { m_trigger = t; m_triggerSet = true; }
</del><ins>+    void setTrigger(RefPtr&lt;AnimationTrigger&gt;&amp;&amp; trigger) { m_trigger = WTFMove(trigger); m_triggerSet = true; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void setIsNoneAnimation(bool n) { m_isNone = n; }
</span><span class="lines">@@ -197,22 +188,22 @@
</span><span class="cx">     unsigned m_fillMode : 2;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-    unsigned m_playState     : 2;
</del><ins>+    unsigned m_playState : 2;
</ins><span class="cx"> 
</span><del>-    bool m_delaySet          : 1;
-    bool m_directionSet      : 1;
-    bool m_durationSet       : 1;
-    bool m_fillModeSet       : 1;
</del><ins>+    bool m_delaySet : 1;
+    bool m_directionSet : 1;
+    bool m_durationSet : 1;
+    bool m_fillModeSet : 1;
</ins><span class="cx">     bool m_iterationCountSet : 1;
</span><del>-    bool m_nameSet           : 1;
-    bool m_playStateSet      : 1;
-    bool m_propertySet       : 1;
</del><ins>+    bool m_nameSet : 1;
+    bool m_playStateSet : 1;
+    bool m_propertySet : 1;
</ins><span class="cx">     bool m_timingFunctionSet : 1;
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><del>-    bool m_triggerSet        : 1;
</del><ins>+    bool m_triggerSet : 1;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool m_isNone            : 1;
</del><ins>+    bool m_isNone : 1;
</ins><span class="cx"> 
</span><span class="cx"> public:
</span><span class="cx">     static double initialDelay() { return 0; }
</span><span class="lines">@@ -223,12 +214,10 @@
</span><span class="cx">     static const String&amp; initialName();
</span><span class="cx">     static EAnimPlayState initialPlayState() { return AnimPlayStatePlaying; }
</span><span class="cx">     static CSSPropertyID initialProperty() { return CSSPropertyInvalid; }
</span><del>-    static const PassRefPtr&lt;TimingFunction&gt; initialTimingFunction() { return CubicBezierTimingFunction::create(); }
</del><ins>+    static Ref&lt;TimingFunction&gt; initialTimingFunction() { return CubicBezierTimingFunction::create(); }
</ins><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><del>-    static const PassRefPtr&lt;AnimationTrigger&gt; initialTrigger() { return AutoAnimationTrigger::create(); }
</del><ins>+    static Ref&lt;AnimationTrigger&gt; initialTrigger() { return AutoAnimationTrigger::create(); }
</ins><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // Animation_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationAnimationListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/AnimationList.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/AnimationList.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/animation/AnimationList.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> 
</span><span class="cx"> #define FILL_UNSET_PROPERTY(test, propGet, propSet) \
</span><span class="cx"> for (i = 0; i &lt; size() &amp;&amp; animation(i).test(); ++i) { } \
</span><del>-if (i &lt; size() &amp;&amp; i != 0) { \
</del><ins>+if (i) { \
</ins><span class="cx">     for (size_t j = 0; i &lt; size(); ++i, ++j) \
</span><span class="cx">         animation(i).propSet(animation(j).propGet()); \
</span><span class="cx"> }
</span><span class="lines">@@ -33,8 +33,9 @@
</span><span class="cx"> 
</span><span class="cx"> AnimationList::AnimationList(const AnimationList&amp; other)
</span><span class="cx"> {
</span><del>-    for (size_t i = 0; i &lt; other.size(); ++i)
-        m_animations.append(Animation::create(other.animation(i)));
</del><ins>+    m_animations.reserveInitialCapacity(other.size());
+    for (auto&amp; animation : other.m_animations)
+        m_animations.uncheckedAppend(Animation::create(animation.get()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AnimationList::fillUnsetProperties()
</span><span class="lines">@@ -55,9 +56,10 @@
</span><span class="cx"> {
</span><span class="cx">     if (size() != other.size())
</span><span class="cx">         return false;
</span><del>-    for (size_t i = 0; i &lt; size(); ++i)
</del><ins>+    for (size_t i = 0; i &lt; size(); ++i) {
</ins><span class="cx">         if (animation(i) != other.animation(i))
</span><span class="cx">             return false;
</span><ins>+    }
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationAnimationListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/AnimationList.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/AnimationList.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/animation/AnimationList.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -22,8 +22,7 @@
</span><span class="cx">  *
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef AnimationList_h
-#define AnimationList_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;Animation.h&quot;
</span><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="lines">@@ -36,6 +35,7 @@
</span><span class="cx"> public:
</span><span class="cx">     AnimationList() { }
</span><span class="cx">     AnimationList(const AnimationList&amp;);
</span><ins>+    AnimationList(AnimationList&amp;&amp;) = default;
</ins><span class="cx"> 
</span><span class="cx">     void fillUnsetProperties();
</span><span class="cx">     bool operator==(const AnimationList&amp;) const;
</span><span class="lines">@@ -49,22 +49,17 @@
</span><span class="cx">     
</span><span class="cx">     void resize(size_t n) { m_animations.resize(n); }
</span><span class="cx">     void remove(size_t i) { m_animations.remove(i); }
</span><del>-    void append(PassRefPtr&lt;Animation&gt; animation)
-    {
-        ASSERT(animation);
-        m_animations.append(animation);
-    }
</del><ins>+    void append(Ref&lt;Animation&gt;&amp;&amp; animation) { m_animations.append(WTFMove(animation)); }
+
+    Animation&amp; animation(size_t i) { return m_animations[i].get(); }
+    const Animation&amp; animation(size_t i) const { return m_animations[i].get(); }
</ins><span class="cx">     
</span><del>-    Animation&amp; animation(size_t i) { return *m_animations[i]; }
-    const Animation&amp; animation(size_t i) const { return *m_animations[i]; }
-    
</del><span class="cx"> private:
</span><span class="cx">     AnimationList&amp; operator=(const AnimationList&amp;);
</span><ins>+    AnimationList&amp; operator=(AnimationList&amp;&amp;) = default;
</ins><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;Animation&gt;&gt; m_animations;
</del><ins>+    Vector&lt;Ref&lt;Animation&gt;&gt; m_animations;
</ins><span class="cx"> };    
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // AnimationList_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationAnimationTriggerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/AnimationTrigger.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/AnimationTrigger.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/animation/AnimationTrigger.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,14 +23,13 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef AnimationTrigger_h
-#define AnimationTrigger_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Length.h&quot;
</span><ins>+#include &lt;wtf/Ref.h&gt;
</ins><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><del>-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/TypeCasts.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -37,15 +36,11 @@
</span><span class="cx"> 
</span><span class="cx"> class AnimationTrigger : public RefCounted&lt;AnimationTrigger&gt; {
</span><span class="cx"> public:
</span><ins>+    virtual Ref&lt;AnimationTrigger&gt; clone() const = 0;
</ins><span class="cx"> 
</span><del>-    virtual PassRefPtr&lt;AnimationTrigger&gt; clone() const = 0;
-
-    enum class AnimationTriggerType {
-        AutoAnimationTriggerType, ScrollAnimationTriggerType
-    };
-
</del><span class="cx">     virtual ~AnimationTrigger() { }
</span><span class="cx"> 
</span><ins>+    enum class AnimationTriggerType { AutoAnimationTriggerType, ScrollAnimationTriggerType };
</ins><span class="cx">     AnimationTriggerType type() const { return m_type; }
</span><span class="cx"> 
</span><span class="cx">     bool isAutoAnimationTrigger() const { return m_type == AnimationTriggerType::AutoAnimationTriggerType; }
</span><span class="lines">@@ -62,16 +57,14 @@
</span><span class="cx">     AnimationTriggerType m_type;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class AutoAnimationTrigger : public AnimationTrigger {
</del><ins>+class AutoAnimationTrigger final : public AnimationTrigger {
</ins><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;AutoAnimationTrigger&gt; create()
</del><ins>+    static Ref&lt;AutoAnimationTrigger&gt; create()
</ins><span class="cx">     {
</span><del>-        return adoptRef(new AutoAnimationTrigger);
</del><ins>+        return adoptRef(*new AutoAnimationTrigger);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    virtual ~AutoAnimationTrigger() { }
-
-    bool operator==(const AnimationTrigger&amp; other) override
</del><ins>+    bool operator==(const AnimationTrigger&amp; other) final
</ins><span class="cx">     {
</span><span class="cx">         return other.isAutoAnimationTrigger();
</span><span class="cx">     }
</span><span class="lines">@@ -82,22 +75,20 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;AnimationTrigger&gt; clone() const override
</del><ins>+    Ref&lt;AnimationTrigger&gt; clone() const final
</ins><span class="cx">     {
</span><del>-        return adoptRef(new AutoAnimationTrigger);
</del><ins>+        return adoptRef(*new AutoAnimationTrigger);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class ScrollAnimationTrigger : public AnimationTrigger {
</del><ins>+class ScrollAnimationTrigger final : public AnimationTrigger {
</ins><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;ScrollAnimationTrigger&gt; create(Length startValue, Length endValue)
</del><ins>+    static Ref&lt;ScrollAnimationTrigger&gt; create(Length startValue, Length endValue)
</ins><span class="cx">     {
</span><del>-        return adoptRef(new ScrollAnimationTrigger(startValue, endValue));
</del><ins>+        return adoptRef(*new ScrollAnimationTrigger(startValue, endValue));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    virtual ~ScrollAnimationTrigger() { }
-
-    bool operator==(const AnimationTrigger&amp; other) override
</del><ins>+    bool operator==(const AnimationTrigger&amp; other) final
</ins><span class="cx">     {
</span><span class="cx">         if (!other.isScrollAnimationTrigger())
</span><span class="cx">             return false;
</span><span class="lines">@@ -133,9 +124,9 @@
</span><span class="cx">             m_endValue = endValue;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;AnimationTrigger&gt; clone() const override
</del><ins>+    Ref&lt;AnimationTrigger&gt; clone() const final
</ins><span class="cx">     {
</span><del>-        return adoptRef(new ScrollAnimationTrigger(m_startValue, m_endValue));
</del><ins>+        return adoptRef(*new ScrollAnimationTrigger(m_startValue, m_endValue));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Length m_startValue;
</span><span class="lines">@@ -154,5 +145,3 @@
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_ANIMATION_TRIGGER(ScrollAnimationTrigger, isScrollAnimationTrigger);
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><del>-
-#endif // AnimationTrigger_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationTimingFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/TimingFunction.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/TimingFunction.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/animation/TimingFunction.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -22,54 +22,50 @@
</span><span class="cx">  *
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef TimingFunction_h
-#define TimingFunction_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
</del><ins>+#include &lt;wtf/Ref.h&gt;
</ins><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><del>-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class TextStream;
+
</ins><span class="cx"> class TimingFunction : public RefCounted&lt;TimingFunction&gt; {
</span><span class="cx"> public:
</span><ins>+    virtual Ref&lt;TimingFunction&gt; clone() const = 0;
</ins><span class="cx"> 
</span><del>-    virtual PassRefPtr&lt;TimingFunction&gt; clone() const = 0;
-
-    enum TimingFunctionType {
-        LinearFunction, CubicBezierFunction, StepsFunction, SpringFunction
-    };
-    
</del><span class="cx">     virtual ~TimingFunction() { }
</span><span class="cx"> 
</span><ins>+    enum TimingFunctionType { LinearFunction, CubicBezierFunction, StepsFunction, SpringFunction };
</ins><span class="cx">     TimingFunctionType type() const { return m_type; }
</span><del>-    
</del><ins>+
</ins><span class="cx">     bool isLinearTimingFunction() const { return m_type == LinearFunction; }
</span><span class="cx">     bool isCubicBezierTimingFunction() const { return m_type == CubicBezierFunction; }
</span><span class="cx">     bool isStepsTimingFunction() const { return m_type == StepsFunction; }
</span><span class="cx">     bool isSpringTimingFunction() const { return m_type == SpringFunction; }
</span><del>-    
-    virtual bool operator==(const TimingFunction&amp; other) = 0;
</del><span class="cx"> 
</span><ins>+    virtual bool operator==(const TimingFunction&amp;) const = 0;
+    bool operator!=(const TimingFunction&amp; other) const { return !(*this == other); }
+
</ins><span class="cx"> protected:
</span><del>-    TimingFunction(TimingFunctionType type)
</del><ins>+    explicit TimingFunction(TimingFunctionType type)
</ins><span class="cx">         : m_type(type)
</span><span class="cx">     {
</span><span class="cx">     }
</span><del>-    
</del><ins>+
+private:
</ins><span class="cx">     TimingFunctionType m_type;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class LinearTimingFunction final : public TimingFunction {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;LinearTimingFunction&gt; create()
</del><ins>+    static Ref&lt;LinearTimingFunction&gt; create()
</ins><span class="cx">     {
</span><del>-        return adoptRef(new LinearTimingFunction);
</del><ins>+        return adoptRef(*new LinearTimingFunction);
</ins><span class="cx">     }
</span><span class="cx">     
</span><del>-    virtual ~LinearTimingFunction() { }
-    
-    bool operator==(const TimingFunction&amp; other) override
</del><ins>+    bool operator==(const TimingFunction&amp; other) const final
</ins><span class="cx">     {
</span><span class="cx">         return other.isLinearTimingFunction();
</span><span class="cx">     }
</span><span class="lines">@@ -80,61 +76,54 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;TimingFunction&gt; clone() const override
</del><ins>+    Ref&lt;TimingFunction&gt; clone() const final
</ins><span class="cx">     {
</span><del>-        return adoptRef(new LinearTimingFunction);
</del><ins>+        return adoptRef(*new LinearTimingFunction);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class CubicBezierTimingFunction final : public TimingFunction {
</span><span class="cx"> public:
</span><del>-    enum TimingFunctionPreset {
-        Ease,
-        EaseIn,
-        EaseOut,
-        EaseInOut,
-        Custom
-    };
</del><ins>+    enum TimingFunctionPreset { Ease, EaseIn, EaseOut, EaseInOut, Custom };
</ins><span class="cx">     
</span><del>-    static PassRefPtr&lt;CubicBezierTimingFunction&gt; create(double x1, double y1, double x2, double y2)
</del><ins>+    static Ref&lt;CubicBezierTimingFunction&gt; create(double x1, double y1, double x2, double y2)
</ins><span class="cx">     {
</span><del>-        return adoptRef(new CubicBezierTimingFunction(Custom, x1, y1, x2, y2));
</del><ins>+        return adoptRef(*new CubicBezierTimingFunction(Custom, x1, y1, x2, y2));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;CubicBezierTimingFunction&gt; create()
</del><ins>+    static Ref&lt;CubicBezierTimingFunction&gt; create()
</ins><span class="cx">     {
</span><del>-        return adoptRef(new CubicBezierTimingFunction());
</del><ins>+        return adoptRef(*new CubicBezierTimingFunction());
</ins><span class="cx">     }
</span><span class="cx">     
</span><del>-    static PassRefPtr&lt;CubicBezierTimingFunction&gt; create(TimingFunctionPreset preset)
</del><ins>+    static Ref&lt;CubicBezierTimingFunction&gt; create(TimingFunctionPreset preset)
</ins><span class="cx">     {
</span><span class="cx">         switch (preset) {
</span><span class="cx">         case Ease:
</span><del>-            return adoptRef(new CubicBezierTimingFunction());
</del><ins>+            return adoptRef(*new CubicBezierTimingFunction);
</ins><span class="cx">         case EaseIn:
</span><del>-            return adoptRef(new CubicBezierTimingFunction(EaseIn, 0.42, 0.0, 1.0, 1.0));
</del><ins>+            return adoptRef(*new CubicBezierTimingFunction(EaseIn, 0.42, 0.0, 1.0, 1.0));
</ins><span class="cx">         case EaseOut:
</span><del>-            return adoptRef(new CubicBezierTimingFunction(EaseOut, 0.0, 0.0, 0.58, 1.0));
</del><ins>+            return adoptRef(*new CubicBezierTimingFunction(EaseOut, 0.0, 0.0, 0.58, 1.0));
</ins><span class="cx">         case EaseInOut:
</span><del>-            return adoptRef(new CubicBezierTimingFunction(EaseInOut, 0.42, 0.0, 0.58, 1.0));
-        default:
-            ASSERT_NOT_REACHED();
-            return 0;
</del><ins>+            return adoptRef(*new CubicBezierTimingFunction(EaseInOut, 0.42, 0.0, 0.58, 1.0));
+        case Custom:
+            break;
</ins><span class="cx">         }
</span><ins>+        ASSERT_NOT_REACHED();
+        return adoptRef(*new CubicBezierTimingFunction);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    virtual ~CubicBezierTimingFunction() { }
-    
-    bool operator==(const TimingFunction&amp; other) override
</del><ins>+    bool operator==(const TimingFunction&amp; other) const final
</ins><span class="cx">     {
</span><del>-        if (other.isCubicBezierTimingFunction()) {
-            const CubicBezierTimingFunction* ctf = static_cast&lt;const CubicBezierTimingFunction*&gt;(&amp;other);
-            if (m_timingFunctionPreset != Custom)
-                return m_timingFunctionPreset == ctf-&gt;m_timingFunctionPreset;
-            
-            return m_x1 == ctf-&gt;m_x1 &amp;&amp; m_y1 == ctf-&gt;m_y1 &amp;&amp; m_x2 == ctf-&gt;m_x2 &amp;&amp; m_y2 == ctf-&gt;m_y2;
-        }
-        return false;
</del><ins>+        if (!other.isCubicBezierTimingFunction())
+            return false;
+        auto&amp; otherCubic = static_cast&lt;const CubicBezierTimingFunction&amp;&gt;(other);
+        if (m_timingFunctionPreset != otherCubic.m_timingFunctionPreset)
+            return false;
+        if (m_timingFunctionPreset != Custom)
+            return true;
+        return m_x1 == otherCubic.m_x1 &amp;&amp; m_y1 == otherCubic.m_y1 &amp;&amp; m_x2 == otherCubic.m_x2 &amp;&amp; m_y2 == otherCubic.m_y2;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     double x1() const { return m_x1; }
</span><span class="lines">@@ -149,21 +138,21 @@
</span><span class="cx">         m_x2 = x2;
</span><span class="cx">         m_y2 = y2;
</span><span class="cx">     }
</span><del>-    
</del><ins>+
</ins><span class="cx">     TimingFunctionPreset timingFunctionPreset() const { return m_timingFunctionPreset; }
</span><span class="cx">     void setTimingFunctionPreset(TimingFunctionPreset preset) { m_timingFunctionPreset = preset; }
</span><del>-    
-    static const CubicBezierTimingFunction* defaultTimingFunction()
</del><ins>+
+    static const CubicBezierTimingFunction&amp; defaultTimingFunction()
</ins><span class="cx">     {
</span><del>-        static const CubicBezierTimingFunction* dtf = create().leakRef();
-        return dtf;
</del><ins>+        static const CubicBezierTimingFunction&amp; function = create().leakRef();
+        return function;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;CubicBezierTimingFunction&gt; createReversed() const
</del><ins>+    Ref&lt;CubicBezierTimingFunction&gt; createReversed() const
</ins><span class="cx">     {
</span><span class="cx">         return create(1.0 - m_x2, 1.0 - m_y2, 1.0 - m_x1, 1.0 - m_y1);
</span><span class="cx">     }
</span><del>-    
</del><ins>+
</ins><span class="cx"> private:
</span><span class="cx">     explicit CubicBezierTimingFunction(TimingFunctionPreset preset = Ease, double x1 = 0.25, double y1 = 0.1, double x2 = 0.25, double y2 = 1.0)
</span><span class="cx">         : TimingFunction(CubicBezierFunction)
</span><span class="lines">@@ -175,9 +164,9 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;TimingFunction&gt; clone() const override
</del><ins>+    Ref&lt;TimingFunction&gt; clone() const final
</ins><span class="cx">     {
</span><del>-        return adoptRef(new CubicBezierTimingFunction(m_timingFunctionPreset, m_x1, m_y1, m_x2, m_y2));
</del><ins>+        return adoptRef(*new CubicBezierTimingFunction(m_timingFunctionPreset, m_x1, m_y1, m_x2, m_y2));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     double m_x1;
</span><span class="lines">@@ -189,25 +178,21 @@
</span><span class="cx"> 
</span><span class="cx"> class StepsTimingFunction final : public TimingFunction {
</span><span class="cx"> public:
</span><del>-    
-    static PassRefPtr&lt;StepsTimingFunction&gt; create(int steps, bool stepAtStart)
</del><ins>+    static Ref&lt;StepsTimingFunction&gt; create(int steps, bool stepAtStart)
</ins><span class="cx">     {
</span><del>-        return adoptRef(new StepsTimingFunction(steps, stepAtStart));
</del><ins>+        return adoptRef(*new StepsTimingFunction(steps, stepAtStart));
</ins><span class="cx">     }
</span><del>-    static PassRefPtr&lt;StepsTimingFunction&gt; create()
</del><ins>+    static Ref&lt;StepsTimingFunction&gt; create()
</ins><span class="cx">     {
</span><del>-        return adoptRef(new StepsTimingFunction(1, true));
</del><ins>+        return adoptRef(*new StepsTimingFunction(1, true));
</ins><span class="cx">     }
</span><span class="cx">     
</span><del>-    virtual ~StepsTimingFunction() { }
-    
-    bool operator==(const TimingFunction&amp; other) override
</del><ins>+    bool operator==(const TimingFunction&amp; other) const final
</ins><span class="cx">     {
</span><del>-        if (other.isStepsTimingFunction()) {
-            const StepsTimingFunction* stf = static_cast&lt;const StepsTimingFunction*&gt;(&amp;other);
-            return m_steps == stf-&gt;m_steps &amp;&amp; m_stepAtStart == stf-&gt;m_stepAtStart;
-        }
-        return false;
</del><ins>+        if (!other.isStepsTimingFunction())
+            return false;
+        auto&amp; otherSteps = static_cast&lt;const StepsTimingFunction&amp;&gt;(other);
+        return m_steps == otherSteps.m_steps &amp;&amp; m_stepAtStart == otherSteps.m_stepAtStart;
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     int numberOfSteps() const { return m_steps; }
</span><span class="lines">@@ -215,7 +200,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool stepAtStart() const { return m_stepAtStart; }
</span><span class="cx">     void setStepAtStart(bool stepAtStart) { m_stepAtStart = stepAtStart; }
</span><del>-    
</del><ins>+
</ins><span class="cx"> private:
</span><span class="cx">     StepsTimingFunction(int steps, bool stepAtStart)
</span><span class="cx">         : TimingFunction(StepsFunction)
</span><span class="lines">@@ -224,9 +209,9 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;TimingFunction&gt; clone() const override
</del><ins>+    Ref&lt;TimingFunction&gt; clone() const final
</ins><span class="cx">     {
</span><del>-        return adoptRef(new StepsTimingFunction(m_steps, m_stepAtStart));
</del><ins>+        return adoptRef(*new StepsTimingFunction(m_steps, m_stepAtStart));
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     int m_steps;
</span><span class="lines">@@ -247,13 +232,12 @@
</span><span class="cx">         return create(0, 0, 0, 0);
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    bool operator==(const TimingFunction&amp; other) override
</del><ins>+    bool operator==(const TimingFunction&amp; other) const final
</ins><span class="cx">     {
</span><del>-        if (other.isSpringTimingFunction()) {
-            const SpringTimingFunction&amp; otherString = *static_cast&lt;const SpringTimingFunction*&gt;(&amp;other);
-            return m_mass == otherString.m_mass &amp;&amp; m_stiffness == otherString.m_stiffness &amp;&amp; m_damping == otherString.m_damping &amp;&amp; m_initialVelocity == otherString.m_initialVelocity;
-        }
-        return false;
</del><ins>+        if (!other.isSpringTimingFunction())
+            return false;
+        auto&amp; otherSpring = static_cast&lt;const SpringTimingFunction&amp;&gt;(other);
+        return m_mass == otherSpring.m_mass &amp;&amp; m_stiffness == otherSpring.m_stiffness &amp;&amp; m_damping == otherSpring.m_damping &amp;&amp; m_initialVelocity == otherSpring.m_initialVelocity;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     double mass() const { return m_mass; }
</span><span class="lines">@@ -279,9 +263,9 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;TimingFunction&gt; clone() const override
</del><ins>+    Ref&lt;TimingFunction&gt; clone() const final
</ins><span class="cx">     {
</span><del>-        return adoptRef(new SpringTimingFunction(m_mass, m_stiffness, m_damping, m_initialVelocity));
</del><ins>+        return adoptRef(*new SpringTimingFunction(m_mass, m_stiffness, m_damping, m_initialVelocity));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     double m_mass;
</span><span class="lines">@@ -290,9 +274,6 @@
</span><span class="cx">     double m_initialVelocity;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class TextStream;
</del><span class="cx"> WEBCORE_EXPORT TextStream&amp; operator&lt;&lt;(TextStream&amp;, const TimingFunction&amp;);
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // TimingFunction_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformaudioAudioBush"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/audio/AudioBus.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/audio/AudioBus.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/audio/AudioBus.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     unsigned numberOfChannels() const { return m_channels.size(); }
</span><span class="cx"> 
</span><span class="cx">     AudioChannel* channel(unsigned channel) { return m_channels[channel].get(); }
</span><del>-    const AudioChannel* channel(unsigned channel) const { return const_cast&lt;AudioBus*&gt;(this)-&gt;m_channels[channel].get(); }
</del><ins>+    const AudioChannel* channel(unsigned channel) const { return m_channels[channel].get(); }
</ins><span class="cx">     AudioChannel* channelByType(unsigned type);
</span><span class="cx">     const AudioChannel* channelByType(unsigned type) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformcfKeyedEncoderCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/cf/KeyedEncoderCF.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/cf/KeyedEncoderCF.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/cf/KeyedEncoderCF.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -140,12 +140,11 @@
</span><span class="cx">     m_arrayStack.removeLast();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;SharedBuffer&gt; KeyedEncoderCF::finishEncoding()
</del><ins>+RefPtr&lt;SharedBuffer&gt; KeyedEncoderCF::finishEncoding()
</ins><span class="cx"> {
</span><del>-    RetainPtr&lt;CFDataRef&gt; data = adoptCF(CFPropertyListCreateData(kCFAllocatorDefault, m_rootDictionary.get(), kCFPropertyListBinaryFormat_v1_0, 0, nullptr));
</del><ins>+    auto data = adoptCF(CFPropertyListCreateData(kCFAllocatorDefault, m_rootDictionary.get(), kCFPropertyListBinaryFormat_v1_0, 0, nullptr));
</ins><span class="cx">     if (!data)
</span><span class="cx">         return nullptr;
</span><del>-
</del><span class="cx">     return SharedBuffer::wrapCFData(data.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformcfKeyedEncoderCFh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/cf/KeyedEncoderCF.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/cf/KeyedEncoderCF.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/cf/KeyedEncoderCF.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef KeyedEncoderCF_h
-#define KeyedEncoderCF_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;KeyedCoding.h&quot;
</span><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><span class="lines">@@ -37,26 +36,26 @@
</span><span class="cx">     KeyedEncoderCF();
</span><span class="cx">     ~KeyedEncoderCF();
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;WebCore::SharedBuffer&gt; finishEncoding() override;
-
</del><span class="cx"> private:
</span><del>-    void encodeBytes(const String&amp; key, const uint8_t*, size_t) override;
-    void encodeBool(const String&amp; key, bool) override;
-    void encodeUInt32(const String&amp; key, uint32_t) override;
-    void encodeInt32(const String&amp; key, int32_t) override;
-    void encodeInt64(const String&amp; key, int64_t) override;
-    void encodeFloat(const String&amp; key, float) override;
-    void encodeDouble(const String&amp; key, double) override;
-    void encodeString(const String&amp; key, const String&amp;) override;
</del><ins>+    RefPtr&lt;WebCore::SharedBuffer&gt; finishEncoding() final;
</ins><span class="cx"> 
</span><del>-    void beginObject(const String&amp; key) override;
-    void endObject() override;
</del><ins>+    void encodeBytes(const String&amp; key, const uint8_t*, size_t) final;
+    void encodeBool(const String&amp; key, bool) final;
+    void encodeUInt32(const String&amp; key, uint32_t) final;
+    void encodeInt32(const String&amp; key, int32_t) final;
+    void encodeInt64(const String&amp; key, int64_t) final;
+    void encodeFloat(const String&amp; key, float) final;
+    void encodeDouble(const String&amp; key, double) final;
+    void encodeString(const String&amp; key, const String&amp;) final;
</ins><span class="cx"> 
</span><del>-    void beginArray(const String&amp; key) override;
-    void beginArrayElement() override;
-    void endArrayElement() override;
-    void endArray() override;
</del><ins>+    void beginObject(const String&amp; key) final;
+    void endObject() final;
</ins><span class="cx"> 
</span><ins>+    void beginArray(const String&amp; key) final;
+    void beginArrayElement() final;
+    void endArrayElement() final;
+    void endArray() final;
+
</ins><span class="cx">     RetainPtr&lt;CFMutableDictionaryRef&gt; m_rootDictionary;
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;CFMutableDictionaryRef, 16&gt; m_dictionaryStack;
</span><span class="lines">@@ -64,5 +63,3 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // KeyedEncoderCF_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformeflPlatformSpeechSynthesisProviderEflh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/efl/PlatformSpeechSynthesisProviderEfl.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,13 +23,11 @@
</span><span class="cx">  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef PlatformSpeechSynthesisProviderEfl_h
-#define PlatformSpeechSynthesisProviderEfl_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(SPEECH_SYNTHESIS)
</span><span class="cx"> 
</span><span class="cx"> #include &lt;speak_lib.h&gt;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -76,5 +74,3 @@
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SPEECH_SYNTHESIS)
</span><del>-
-#endif // PlatformSpeechSynthesisProviderEfl_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformglibKeyedEncoderGlibcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">     m_arrayStack.removeLast();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;SharedBuffer&gt; KeyedEncoderGlib::finishEncoding()
</del><ins>+RefPtr&lt;SharedBuffer&gt; KeyedEncoderGlib::finishEncoding()
</ins><span class="cx"> {
</span><span class="cx">     g_assert(m_variantBuilderStack.last() == &amp;m_variantBuilder);
</span><span class="cx">     GRefPtr&lt;GVariant&gt; variant = g_variant_builder_end(&amp;m_variantBuilder);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformglibKeyedEncoderGlibh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/glib/KeyedEncoderGlib.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef KeyedEncoderGlib_h
-#define KeyedEncoderGlib_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;KeyedCoding.h&quot;
</span><span class="cx"> #include &lt;glib.h&gt;
</span><span class="lines">@@ -39,26 +38,26 @@
</span><span class="cx">     KeyedEncoderGlib();
</span><span class="cx">     ~KeyedEncoderGlib();
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;WebCore::SharedBuffer&gt; finishEncoding() override;
-
</del><span class="cx"> private:
</span><del>-    void encodeBytes(const String&amp; key, const uint8_t*, size_t) override;
-    void encodeBool(const String&amp; key, bool) override;
-    void encodeUInt32(const String&amp; key, uint32_t) override;
-    void encodeInt32(const String&amp; key, int32_t) override;
-    void encodeInt64(const String&amp; key, int64_t) override;
-    void encodeFloat(const String&amp; key, float) override;
-    void encodeDouble(const String&amp; key, double) override;
-    void encodeString(const String&amp; key, const String&amp;) override;
</del><ins>+    RefPtr&lt;WebCore::SharedBuffer&gt; finishEncoding() final;
</ins><span class="cx"> 
</span><del>-    void beginObject(const String&amp; key) override;
-    void endObject() override;
</del><ins>+    void encodeBytes(const String&amp; key, const uint8_t*, size_t) final;
+    void encodeBool(const String&amp; key, bool) final;
+    void encodeUInt32(const String&amp; key, uint32_t) final;
+    void encodeInt32(const String&amp; key, int32_t) final;
+    void encodeInt64(const String&amp; key, int64_t) final;
+    void encodeFloat(const String&amp; key, float) final;
+    void encodeDouble(const String&amp; key, double) final;
+    void encodeString(const String&amp; key, const String&amp;) final;
</ins><span class="cx"> 
</span><del>-    void beginArray(const String&amp; key) override;
-    void beginArrayElement() override;
-    void endArrayElement() override;
-    void endArray() override;
</del><ins>+    void beginObject(const String&amp; key) final;
+    void endObject() final;
</ins><span class="cx"> 
</span><ins>+    void beginArray(const String&amp; key) final;
+    void beginArrayElement() final;
+    void endArrayElement() final;
+    void endArray() final;
+
</ins><span class="cx">     GVariantBuilder m_variantBuilder;
</span><span class="cx">     Vector&lt;GVariantBuilder*, 16&gt; m_variantBuilderStack;
</span><span class="cx">     Vector&lt;std::pair&lt;String, GRefPtr&lt;GVariantBuilder&gt;&gt;, 16&gt; m_arrayStack;
</span><span class="lines">@@ -66,5 +65,3 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // KeyedEncoderGlib_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCache.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCache.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/FontCache.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -27,8 +27,7 @@
</span><span class="cx">  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef FontCache_h
-#define FontCache_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;FontDescription.h&quot;
</span><span class="cx"> #include &quot;Timer.h&quot;
</span><span class="lines">@@ -35,7 +34,6 @@
</span><span class="cx"> #include &lt;array&gt;
</span><span class="cx"> #include &lt;limits.h&gt;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> #include &lt;wtf/text/AtomicStringHash.h&gt;
</span><span class="lines">@@ -290,5 +288,3 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> }
</span><del>-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontPlatformDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontPlatformData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontPlatformData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/FontPlatformData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007, 2008, 2010, 2013-2016 Apple Inc.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
</span><span class="cx">  * Copyright (C) 2007 Holger Hans Peter Freyther
</span><span class="cx">  * Copyright (C) 2007 Pioneer Research Center USA, Inc.
</span><span class="lines">@@ -22,11 +22,16 @@
</span><span class="cx">  *
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef FontPlatformData_h
-#define FontPlatformData_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;TextFlags.h&quot;
</span><ins>+#include &lt;wtf/Forward.h&gt;
+#include &lt;wtf/PassRefPtr.h&gt;
+#include &lt;wtf/RefCounted.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+#include &lt;wtf/text/StringImpl.h&gt;
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx"> #include &quot;COMPtr.h&quot;
</span><span class="cx"> #include &quot;SharedGDIObject.h&quot;
</span><span class="lines">@@ -44,13 +49,12 @@
</span><span class="cx"> #include &quot;OpenTypeVerticalData.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if PLATFORM(COCOA)
</del><span class="cx"> #if USE(APPKIT)
</span><span class="cx"> OBJC_CLASS NSFont;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if PLATFORM(COCOA)
</ins><span class="cx"> typedef const struct __CTFont* CTFontRef;
</span><del>-
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if USE(CG)
</span><span class="lines">@@ -57,12 +61,6 @@
</span><span class="cx"> #include &lt;CoreGraphics/CoreGraphics.h&gt;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#include &lt;wtf/Forward.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RetainPtr.h&gt;
-#include &lt;wtf/text/StringImpl.h&gt;
-
</del><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx"> #include &lt;wtf/win/GDIObject.h&gt;
</span><span class="cx"> typedef struct HFONT__* HFONT;
</span><span class="lines">@@ -70,7 +68,6 @@
</span><span class="cx"> interface IDWriteFontFace;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class FontDescription;
</span><span class="lines">@@ -82,10 +79,7 @@
</span><span class="cx"> public:
</span><span class="cx">     FontPlatformData(WTF::HashTableDeletedValueType);
</span><span class="cx">     FontPlatformData();
</span><del>-#if !USE(FREETYPE)
-    FontPlatformData(const FontPlatformData&amp;) = default;
-#endif
-    FontPlatformData(FontPlatformData&amp;&amp;) = default;
</del><ins>+
</ins><span class="cx">     FontPlatformData(const FontDescription&amp;, const AtomicString&amp; family);
</span><span class="cx">     FontPlatformData(float size, bool syntheticBold, bool syntheticOblique, FontOrientation = Horizontal, FontWidthVariant = RegularWidth, TextRenderingMode = AutoTextRendering);
</span><span class="cx"> 
</span><span class="lines">@@ -103,20 +97,27 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx">     FontPlatformData(GDIObject&lt;HFONT&gt;, float size, bool syntheticBold, bool syntheticOblique, bool useGDI);
</span><ins>+#endif
</ins><span class="cx"> 
</span><del>-#if USE(CG)
</del><ins>+#if PLATFORM(WIN) &amp;&amp; USE(CG)
</ins><span class="cx">     FontPlatformData(GDIObject&lt;HFONT&gt;, CGFontRef, float size, bool syntheticBold, bool syntheticOblique, bool useGDI);
</span><del>-#elif USE(DIRECT2D)
</del><ins>+#endif
+
+#if PLATFORM(WIN) &amp;&amp; USE(DIRECT2D)
</ins><span class="cx">     FontPlatformData(GDIObject&lt;HFONT&gt;, IDWriteFont*, float size, bool syntheticBold, bool syntheticOblique, bool useGDI);
</span><del>-#elif USE(CAIRO)
</del><ins>+#endif
+
+#if PLATFORM(WIN) &amp;&amp; USE(CAIRO)
</ins><span class="cx">     FontPlatformData(GDIObject&lt;HFONT&gt;, cairo_font_face_t*, float size, bool bold, bool italic);
</span><span class="cx"> #endif
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> #if USE(FREETYPE)
</span><span class="cx">     FontPlatformData(FcPattern*, const FontDescription&amp;);
</span><span class="cx">     FontPlatformData(cairo_font_face_t*, const FontDescription&amp;, bool syntheticBold, bool syntheticOblique);
</span><span class="cx">     FontPlatformData(const FontPlatformData&amp;);
</span><ins>+    FontPlatformData(FontPlatformData&amp;&amp;) = default;
+    FontPlatformData&amp; operator=(const FontPlatformData&amp;);
+    FontPlatformData&amp; operator=(FontPlatformData&amp;&amp;) = default;
</ins><span class="cx">     ~FontPlatformData();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -123,7 +124,9 @@
</span><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx">     HFONT hfont() const { return m_font ? m_font-&gt;get() : 0; }
</span><span class="cx">     bool useGDI() const { return m_useGDI; }
</span><del>-#elif PLATFORM(COCOA)
</del><ins>+#endif
+
+#if PLATFORM(COCOA)
</ins><span class="cx">     CTFontRef font() const { return m_font.get(); }
</span><span class="cx">     WEBCORE_EXPORT CTFontRef registeredFont() const; // Returns nullptr iff the font is not registered, such as web fonts (otherwise returns font()).
</span><span class="cx"> 
</span><span class="lines">@@ -189,12 +192,6 @@
</span><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-#if USE(FREETYPE)
-    FontPlatformData&amp; operator=(const FontPlatformData&amp;);
-#else
-    FontPlatformData&amp; operator=(const FontPlatformData&amp;) = default;
-#endif
-
</del><span class="cx">     bool operator==(const FontPlatformData&amp; other) const
</span><span class="cx">     {
</span><span class="cx">         return platformIsEqual(other)
</span><span class="lines">@@ -232,12 +229,15 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool platformIsEqual(const FontPlatformData&amp;) const;
</span><ins>+
</ins><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     CGFloat ctFontSize() const;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx">     void platformDataInit(HFONT, float size, HDC, WCHAR* faceName);
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if USE(FREETYPE)
</span><span class="cx">     void buildScaledFont(cairo_font_face_t*);
</span><span class="cx"> #endif
</span><span class="lines">@@ -253,13 +253,16 @@
</span><span class="cx"> #if USE(CG) &amp;&amp; (PLATFORM(WIN) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 101200) || (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &lt; 100000))
</span><span class="cx">     RetainPtr&lt;CGFontRef&gt; m_cgFont;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if USE(DIRECT2D)
</span><span class="cx">     COMPtr&lt;IDWriteFont&gt; m_dwFont;
</span><span class="cx">     COMPtr&lt;IDWriteFontFace&gt; m_dwFontFace;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if USE(CAIRO)
</span><span class="cx">     RefPtr&lt;cairo_scaled_font_t&gt; m_scaledFont;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if USE(FREETYPE)
</span><span class="cx">     RefPtr&lt;FcPattern&gt; m_pattern;
</span><span class="cx">     mutable FcUniquePtr&lt;FcFontSet&gt; m_fallbacks;
</span><span class="lines">@@ -285,9 +288,11 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     bool m_isEmoji { false };
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx">     bool m_useGDI { false };
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if USE(FREETYPE)
</span><span class="cx">     bool m_fixedWidth { false };
</span><span class="cx"> #endif
</span><span class="lines">@@ -294,6 +299,7 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> #if USE(APPKIT)
</span><ins>+
</ins><span class="cx"> // NSFonts and CTFontRefs are toll-free-bridged.
</span><span class="cx"> inline CTFontRef toCTFont(NSFont *font)
</span><span class="cx"> {
</span><span class="lines">@@ -304,9 +310,11 @@
</span><span class="cx"> {
</span><span class="cx">     return (NSFont *)font;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if USE(CG)
</span><ins>+
</ins><span class="cx"> class ScopedTextMatrix {
</span><span class="cx"> public:
</span><span class="cx">     ScopedTextMatrix(CGAffineTransform newMatrix, CGContextRef context)
</span><span class="lines">@@ -330,8 +338,7 @@
</span><span class="cx">     CGContextRef m_context;
</span><span class="cx">     CGAffineTransform m_textMatrix;
</span><span class="cx"> };
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // FontPlatformData_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2009, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2009-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef GraphicsLayer_h
-#define GraphicsLayer_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;Animation.h&quot;
</span><span class="cx"> #include &quot;Color.h&quot;
</span><span class="lines">@@ -80,11 +79,15 @@
</span><span class="cx"> 
</span><span class="cx">     AnimationValue(const AnimationValue&amp; other)
</span><span class="cx">         : m_keyTime(other.m_keyTime)
</span><del>-        , m_timingFunction(other.m_timingFunction ? other.m_timingFunction-&gt;clone() : nullptr)
</del><ins>+        , m_timingFunction(other.m_timingFunction ? RefPtr&lt;TimingFunction&gt; { other.m_timingFunction-&gt;clone() } : nullptr)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    AnimationValue(AnimationValue&amp;&amp;) = default;
+
</ins><span class="cx"> private:
</span><ins>+    void operator=(const AnimationValue&amp;) = delete;
+
</ins><span class="cx">     double m_keyTime;
</span><span class="cx">     RefPtr&lt;TimingFunction&gt; m_timingFunction;
</span><span class="cx"> };
</span><span class="lines">@@ -104,12 +107,6 @@
</span><span class="cx">         return std::make_unique&lt;FloatAnimationValue&gt;(*this);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    FloatAnimationValue(const FloatAnimationValue&amp; other)
-        : AnimationValue(other)
-        , m_value(other.m_value)
-    {
-    }
-
</del><span class="cx">     float value() const { return m_value; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -134,10 +131,13 @@
</span><span class="cx">     TransformAnimationValue(const TransformAnimationValue&amp; other)
</span><span class="cx">         : AnimationValue(other)
</span><span class="cx">     {
</span><del>-        for (size_t i = 0; i &lt; other.m_value.operations().size(); ++i)
-            m_value.operations().append(other.m_value.operations()[i]-&gt;clone());
</del><ins>+        m_value.operations().reserveInitialCapacity(other.m_value.operations().size());
+        for (auto&amp; operation : other.m_value.operations())
+            m_value.operations().uncheckedAppend(operation-&gt;clone());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    TransformAnimationValue(TransformAnimationValue&amp;&amp;) = default;
+
</ins><span class="cx">     const TransformOperations&amp; value() const { return m_value; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -162,10 +162,13 @@
</span><span class="cx">     FilterAnimationValue(const FilterAnimationValue&amp; other)
</span><span class="cx">         : AnimationValue(other)
</span><span class="cx">     {
</span><del>-        for (size_t i = 0; i &lt; other.m_value.operations().size(); ++i)
-            m_value.operations().append(other.m_value.operations()[i]-&gt;clone());
</del><ins>+        m_value.operations().reserveInitialCapacity(other.m_value.operations().size());
+        for (auto&amp; operation : other.m_value.operations())
+            m_value.operations().uncheckedAppend(operation-&gt;clone());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    FilterAnimationValue(FilterAnimationValue&amp;&amp;) = default;
+
</ins><span class="cx">     const FilterOperations&amp; value() const { return m_value; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -185,13 +188,12 @@
</span><span class="cx">     KeyframeValueList(const KeyframeValueList&amp; other)
</span><span class="cx">         : m_property(other.property())
</span><span class="cx">     {
</span><del>-        for (size_t i = 0; i &lt; other.m_values.size(); ++i)
-            m_values.append(other.m_values[i]-&gt;clone());
</del><ins>+        m_values.reserveInitialCapacity(other.m_values.size());
+        for (auto&amp; value : other.m_values)
+            m_values.uncheckedAppend(value-&gt;clone());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ~KeyframeValueList()
-    {
-    }
</del><ins>+    KeyframeValueList(KeyframeValueList&amp;&amp;) = default;
</ins><span class="cx"> 
</span><span class="cx">     KeyframeValueList&amp; operator=(const KeyframeValueList&amp; other)
</span><span class="cx">     {
</span><span class="lines">@@ -200,6 +202,8 @@
</span><span class="cx">         return *this;
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    KeyframeValueList&amp; operator=(KeyframeValueList&amp;&amp;) = default;
+
</ins><span class="cx">     void swap(KeyframeValueList&amp; other)
</span><span class="cx">     {
</span><span class="cx">         std::swap(m_property, other.m_property);
</span><span class="lines">@@ -210,10 +214,10 @@
</span><span class="cx"> 
</span><span class="cx">     size_t size() const { return m_values.size(); }
</span><span class="cx">     const AnimationValue&amp; at(size_t i) const { return *m_values.at(i); }
</span><del>-    
</del><ins>+
</ins><span class="cx">     // Insert, sorted by keyTime.
</span><span class="cx">     WEBCORE_EXPORT void insert(std::unique_ptr&lt;const AnimationValue&gt;);
</span><del>-    
</del><ins>+
</ins><span class="cx"> protected:
</span><span class="cx">     Vector&lt;std::unique_ptr&lt;const AnimationValue&gt;&gt; m_values;
</span><span class="cx">     AnimatedPropertyID m_property;
</span><span class="lines">@@ -225,7 +229,6 @@
</span><span class="cx"> class GraphicsLayer {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(GraphicsLayer); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-
</del><span class="cx">     enum class Type {
</span><span class="cx">         Normal,
</span><span class="cx">         PageTiledBacking,
</span><span class="lines">@@ -241,7 +244,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void initialize(Type) { }
</span><span class="cx"> 
</span><del>-    typedef uint64_t PlatformLayerID;
</del><ins>+    using PlatformLayerID = uint64_t;
</ins><span class="cx">     virtual PlatformLayerID primaryLayerID() const { return 0; }
</span><span class="cx"> 
</span><span class="cx">     GraphicsLayerClient&amp; client() const { return m_client; }
</span><span class="lines">@@ -683,5 +686,3 @@
</span><span class="cx"> // Outside the WebCore namespace for ease of invocation from the debugger.
</span><span class="cx"> void showGraphicsLayerTree(const WebCore::GraphicsLayer* layer);
</span><span class="cx"> #endif
</span><del>-
-#endif // GraphicsLayer_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsLegacyCDMSessionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/LegacyCDMSession.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/LegacyCDMSession.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/LegacyCDMSession.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,21 +23,18 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef CDMSession_h
-#define CDMSession_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><span class="cx"> 
</span><span class="cx"> #include &lt;runtime/Uint8Array.h&gt;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class CDMSessionClient {
</span><span class="cx"> public:
</span><del>-    virtual ~CDMSessionClient() { };
</del><ins>+    virtual ~CDMSessionClient() { }
</ins><span class="cx">     virtual void sendMessage(Uint8Array*, String destinationURL) = 0;
</span><span class="cx"> 
</span><span class="cx">     enum {
</span><span class="lines">@@ -64,7 +61,6 @@
</span><span class="cx"> 
</span><span class="cx"> class CDMSession {
</span><span class="cx"> public:
</span><del>-    CDMSession() { }
</del><span class="cx">     virtual ~CDMSession() { }
</span><span class="cx"> 
</span><span class="cx">     virtual CDMSessionType type() { return CDMSessionTypeUnknown; }
</span><span class="lines">@@ -79,5 +75,3 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><del>-
-#endif // CDMSession_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsPathUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/PathUtilities.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/PathUtilities.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/PathUtilities.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -486,15 +486,16 @@
</span><span class="cx">     return FloatRect(topLeft.value(), bottomRight.value());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Path PathUtilities::pathWithShrinkWrappedRectsForOutline(const Vector&lt;FloatRect&gt;&amp; rects, const BorderData&amp; borderData, float outlineOffset, TextDirection direction,
-    WritingMode writingMode, float deviceScaleFactor)
</del><ins>+Path PathUtilities::pathWithShrinkWrappedRectsForOutline(const Vector&lt;FloatRect&gt;&amp; rects, const BorderData&amp; borderData,
+    float outlineOffset, TextDirection direction, WritingMode writingMode, float deviceScaleFactor)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(borderData.hasBorderRadius());
</span><del>-    FloatSize topLeftRadius = FloatSize(borderData.topLeft().width().value(), borderData.topLeft().height().value());
-    FloatSize topRightRadius = FloatSize(borderData.topRight().width().value(), borderData.topRight().height().value());
-    FloatSize bottomRightRadius = FloatSize(borderData.bottomRight().width().value(), borderData.bottomRight().height().value());
-    FloatSize bottomLeftRadius = FloatSize(borderData.bottomLeft().width().value(), borderData.bottomLeft().height().value());
</del><span class="cx"> 
</span><ins>+    FloatSize topLeftRadius { borderData.topLeft().width.value(), borderData.topLeft().height.value() };
+    FloatSize topRightRadius { borderData.topRight().width.value(), borderData.topRight().height.value() };
+    FloatSize bottomRightRadius { borderData.bottomRight().width.value(), borderData.bottomRight().height.value() };
+    FloatSize bottomLeftRadius { borderData.bottomLeft().width.value(), borderData.bottomLeft().height.value() };
+
</ins><span class="cx">     auto roundedRect = [topLeftRadius, topRightRadius, bottomRightRadius, bottomLeftRadius, outlineOffset, deviceScaleFactor] (const FloatRect&amp; rect)
</span><span class="cx">     {
</span><span class="cx">         auto radii = adjustedtRadiiForHuggingCurve(topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius, outlineOffset);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfCDMSessionAVFoundationCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -44,16 +44,14 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-CDMSessionAVFoundationCF::CDMSessionAVFoundationCF(MediaPlayerPrivateAVFoundationCF* parent, CDMSessionClient* client)
</del><ins>+CDMSessionAVFoundationCF::CDMSessionAVFoundationCF(MediaPlayerPrivateAVFoundationCF&amp; parent, CDMSessionClient*)
</ins><span class="cx">     : m_parent(parent)
</span><del>-    , m_client(client)
</del><span class="cx">     , m_sessionId(createCanonicalUUIDString())
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Uint8Array&gt; CDMSessionAVFoundationCF::generateKeyRequest(const String&amp; mimeType, Uint8Array* initData, String&amp; destinationURL, unsigned short&amp; errorCode, uint32_t&amp; systemCode)
</del><ins>+RefPtr&lt;Uint8Array&gt; CDMSessionAVFoundationCF::generateKeyRequest(const String&amp;, Uint8Array* initData, String&amp; destinationURL, unsigned short&amp; errorCode, uint32_t&amp; systemCode)
</ins><span class="cx"> {
</span><del>-    UNUSED_PARAM(mimeType);
</del><span class="cx"> #if USE(DIRECT2D)
</span><span class="cx">     UNUSED_PARAM(initData);
</span><span class="cx">     UNUSED_PARAM(destinationURL);
</span><span class="lines">@@ -70,35 +68,30 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_request = m_parent-&gt;takeRequestForKeyURI(keyURI);
</del><ins>+    m_request = m_parent.takeRequestForKeyURI(keyURI);
</ins><span class="cx">     if (!m_request) {
</span><span class="cx">         errorCode = MediaPlayer::InvalidPlayerState;
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RetainPtr&lt;CFMutableDataRef&gt; certificateData = adoptCF(CFDataCreateMutable(kCFAllocatorDefault, certificate-&gt;byteLength()));
</del><ins>+    auto certificateData = adoptCF(CFDataCreateMutable(kCFAllocatorDefault, certificate-&gt;byteLength()));
</ins><span class="cx">     CFDataAppendBytes(certificateData.get(), reinterpret_cast&lt;const UInt8*&gt;(certificate-&gt;baseAddress()), certificate-&gt;byteLength());
</span><span class="cx"> 
</span><del>-    CString assetStr = keyID.utf8();
-    RetainPtr&lt;CFMutableDataRef&gt; assetID = adoptCF(CFDataCreateMutable(kCFAllocatorDefault, assetStr.length()));
</del><ins>+    auto assetStr = keyID.utf8();
+    auto assetID = adoptCF(CFDataCreateMutable(kCFAllocatorDefault, assetStr.length()));
</ins><span class="cx">     CFDataAppendBytes(assetID.get(), reinterpret_cast&lt;const UInt8*&gt;(assetStr.data()), assetStr.length());
</span><span class="cx"> 
</span><span class="cx">     CFErrorRef cfError = nullptr;
</span><del>-    RetainPtr&lt;CFDataRef&gt; keyRequest = adoptCF(AVCFAssetResourceLoadingRequestCreateStreamingContentKeyRequestDataForApp(m_request.get(), certificateData.get(), assetID.get(), nullptr, &amp;cfError));
</del><ins>+    auto keyRequest = adoptCF(AVCFAssetResourceLoadingRequestCreateStreamingContentKeyRequestDataForApp(m_request.get(), certificateData.get(), assetID.get(), nullptr, &amp;cfError));
</ins><span class="cx"> 
</span><span class="cx">     if (!keyRequest) {
</span><del>-        RetainPtr&lt;CFDictionaryRef&gt; userInfo;
</del><span class="cx">         if (cfError) {
</span><del>-            userInfo = adoptCF(CFErrorCopyUserInfo(cfError));
-
-            if (userInfo) {
-                if (CFErrorRef underlyingError = (CFErrorRef)CFDictionaryGetValue(userInfo.get(), kCFErrorUnderlyingErrorKey))
</del><ins>+            if (auto userInfo = adoptCF(CFErrorCopyUserInfo(cfError))) {
+                if (auto underlyingError = (CFErrorRef)CFDictionaryGetValue(userInfo.get(), kCFErrorUnderlyingErrorKey))
</ins><span class="cx">                     systemCode = CFErrorGetCode(underlyingError);
</span><span class="cx">             }
</span><del>-
</del><span class="cx">             CFRelease(cfError);
</span><span class="cx">         }
</span><del>-
</del><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -106,8 +99,8 @@
</span><span class="cx">     systemCode = 0;
</span><span class="cx">     destinationURL = String();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;ArrayBuffer&gt; keyRequestBuffer = ArrayBuffer::create(CFDataGetBytePtr(keyRequest.get()), CFDataGetLength(keyRequest.get()));
-    return Uint8Array::create(keyRequestBuffer, 0, keyRequestBuffer-&gt;byteLength());
</del><ins>+    auto keyRequestBuffer = ArrayBuffer::create(CFDataGetBytePtr(keyRequest.get()), CFDataGetLength(keyRequest.get()));
+    return Uint8Array::create(WTFMove(keyRequestBuffer), 0, keyRequestBuffer-&gt;byteLength());
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -117,7 +110,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool CDMSessionAVFoundationCF::update(Uint8Array* key, RefPtr&lt;Uint8Array&gt;&amp; nextMessage, unsigned short&amp; errorCode, uint32_t&amp; systemCode)
</span><span class="cx"> {
</span><del>-    RetainPtr&lt;CFMutableDataRef&gt; keyData = adoptCF(CFDataCreateMutable(kCFAllocatorDefault, key-&gt;byteLength()));
</del><ins>+    auto keyData = adoptCF(CFDataCreateMutable(kCFAllocatorDefault, key-&gt;byteLength()));
</ins><span class="cx">     CFDataAppendBytes(keyData.get(), reinterpret_cast&lt;const UInt8*&gt;(key-&gt;baseAddress()), key-&gt;byteLength());
</span><span class="cx"> 
</span><span class="cx">     AVCFAssetResourceLoadingRequestFinishLoadingWithResponse(m_request.get(), nullptr, keyData.get(), nullptr);
</span><span class="lines">@@ -125,7 +118,6 @@
</span><span class="cx">     errorCode = MediaPlayer::NoError;
</span><span class="cx">     systemCode = 0;
</span><span class="cx">     nextMessage = nullptr;
</span><del>-
</del><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfCDMSessionAVFoundationCFh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,11 +23,11 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef CDMSessionAVFoundationCF_h
-#define CDMSessionAVFoundationCF_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;LegacyCDMSession.h&quot;
</span><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><ins>+#include &lt;wtf/text/WTFString.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if HAVE(AVFOUNDATION_LOADER_DELEGATE) &amp;&amp; ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><span class="cx"> 
</span><span class="lines">@@ -37,21 +37,19 @@
</span><span class="cx"> 
</span><span class="cx"> class MediaPlayerPrivateAVFoundationCF;
</span><span class="cx"> 
</span><del>-class CDMSessionAVFoundationCF : public CDMSession {
</del><ins>+class CDMSessionAVFoundationCF final : public CDMSession {
</ins><span class="cx"> public:
</span><del>-    CDMSessionAVFoundationCF(MediaPlayerPrivateAVFoundationCF* parent, CDMSessionClient*);
-    virtual ~CDMSessionAVFoundationCF() { }
</del><ins>+    CDMSessionAVFoundationCF(MediaPlayerPrivateAVFoundationCF&amp; parent, CDMSessionClient*);
</ins><span class="cx"> 
</span><del>-    void setClient(CDMSessionClient* client) override { m_client = client; }
-    const String&amp; sessionId() const override { return m_sessionId; }
-    RefPtr&lt;Uint8Array&gt; generateKeyRequest(const String&amp; mimeType, Uint8Array* initData, String&amp; destinationURL, unsigned short&amp; errorCode, uint32_t&amp; systemCode) override;
-    void releaseKeys() override;
-    bool update(Uint8Array*, RefPtr&lt;Uint8Array&gt;&amp; nextMessage, unsigned short&amp; errorCode, uint32_t&amp; systemCode) override;
</del><ins>+private:
+    void setClient(CDMSessionClient* client) final { }
+    const String&amp; sessionId() const final { return m_sessionId; }
+    RefPtr&lt;Uint8Array&gt; generateKeyRequest(const String&amp; mimeType, Uint8Array* initData, String&amp; destinationURL, unsigned short&amp; errorCode, uint32_t&amp; systemCode) final;
+    void releaseKeys() final;
+    bool update(Uint8Array*, RefPtr&lt;Uint8Array&gt;&amp; nextMessage, unsigned short&amp; errorCode, uint32_t&amp; systemCode) final;
</ins><span class="cx"> 
</span><del>-protected:
-    MediaPlayerPrivateAVFoundationCF* m_parent;
-    CDMSessionClient* m_client;
-    String m_sessionId;
</del><ins>+    MediaPlayerPrivateAVFoundationCF&amp; m_parent;
+    const String m_sessionId;
</ins><span class="cx">     RetainPtr&lt;AVCFAssetResourceLoadingRequestRef&gt; m_request;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -58,5 +56,3 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><del>-
-#endif // CDMSessionAVFoundationCF_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1122,6 +1122,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if HAVE(AVFOUNDATION_LOADER_DELEGATE) &amp;&amp; ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><ins>+
</ins><span class="cx"> RetainPtr&lt;AVCFAssetResourceLoadingRequestRef&gt; MediaPlayerPrivateAVFoundationCF::takeRequestForKeyURI(const String&amp; keyURI)
</span><span class="cx"> {
</span><span class="cx">     if (!m_avfWrapper)
</span><span class="lines">@@ -1135,13 +1136,16 @@
</span><span class="cx">     if (!keySystemIsSupported(keySystem))
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    return std::make_unique&lt;CDMSessionAVFoundationCF&gt;(this, client);
</del><ins>+    return std::make_unique&lt;CDMSessionAVFoundationCF&gt;(*this, client);
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #elif ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><del>-std::unique_ptr&lt;CDMSession&gt; MediaPlayerPrivateAVFoundationCF::createSession(const String&amp; keySystem, , CDMSessionClient*)
</del><ins>+
+std::unique_ptr&lt;CDMSession&gt; MediaPlayerPrivateAVFoundationCF::createSession(const String&amp; keySystem, CDMSessionClient*)
</ins><span class="cx"> {
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> long MediaPlayerPrivateAVFoundationCF::assetErrorCode() const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVFoundationObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -23,12 +23,12 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef CDMSessionAVFoundationObjC_h
-#define CDMSessionAVFoundationObjC_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;LegacyCDMSession.h&quot;
</span><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/WeakPtr.h&gt;
</span><ins>+#include &lt;wtf/text/WTFString.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(LEGACY_ENCRYPTED_MEDIA)
</span><span class="cx"> 
</span><span class="lines">@@ -66,5 +66,3 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><del>-
-#endif // CDMSessionAVFoundationObjC_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -924,8 +924,8 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_ANIMATIONS_LEVEL_2)
</span><span class="cx">     // If there is a trigger that depends on the scroll position, we cannot accelerate the animation.
</span><del>-    if (anim-&gt;trigger()-&gt;isScrollAnimationTrigger()) {
-        ScrollAnimationTrigger&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*anim-&gt;trigger().get());
</del><ins>+    if (is&lt;ScrollAnimationTrigger&gt;(anim-&gt;trigger())) {
+        auto&amp; scrollTrigger = downcast&lt;ScrollAnimationTrigger&gt;(*anim-&gt;trigger());
</ins><span class="cx">         if (scrollTrigger.hasEndValue())
</span><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="lines">@@ -2805,7 +2805,7 @@
</span><span class="cx">     int animationIndex = 0;
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;PlatformCAAnimation&gt; caAnimation;
</span><del>-    
</del><ins>+
</ins><span class="cx">     if (isKeyframe) {
</span><span class="cx">         caAnimation = createKeyframeAnimation(animation, propertyIdToString(valueList.property()), additive);
</span><span class="cx">         valuesOK = setAnimationKeyframes(valueList, animation, caAnimation.get());
</span><span class="lines">@@ -2816,7 +2816,7 @@
</span><span class="cx">             caAnimation = createBasicAnimation(animation, propertyIdToString(valueList.property()), additive);
</span><span class="cx">         valuesOK = setAnimationEndpoints(valueList, animation, caAnimation.get());
</span><span class="cx">     }
</span><del>-    
</del><ins>+
</ins><span class="cx">     if (!valuesOK)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -3024,13 +3024,12 @@
</span><span class="cx">     propertyAnim-&gt;setFillMode(fillMode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const TimingFunction* GraphicsLayerCA::timingFunctionForAnimationValue(const AnimationValue&amp; animValue, const Animation&amp; anim)
</del><ins>+const TimingFunction&amp; GraphicsLayerCA::timingFunctionForAnimationValue(const AnimationValue&amp; animValue, const Animation&amp; anim)
</ins><span class="cx"> {
</span><span class="cx">     if (animValue.timingFunction())
</span><del>-        return animValue.timingFunction();
</del><ins>+        return *animValue.timingFunction();
</ins><span class="cx">     if (anim.isTimingFunctionSet())
</span><del>-        return anim.timingFunction().get();
-    
</del><ins>+        return *anim.timingFunction();
</ins><span class="cx">     return CubicBezierTimingFunction::defaultTimingFunction();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3054,9 +3053,7 @@
</span><span class="cx"> 
</span><span class="cx">     // This codepath is used for 2-keyframe animations, so we still need to look in the start
</span><span class="cx">     // for a timing function. Even in the reversing animation case, the first keyframe provides the timing function.
</span><del>-    const TimingFunction* timingFunction = timingFunctionForAnimationValue(valueList.at(0), *animation);
-    if (timingFunction)
-        basicAnim-&gt;setTimingFunction(timingFunction, !forwards);
</del><ins>+    basicAnim-&gt;setTimingFunction(&amp;timingFunctionForAnimationValue(valueList.at(0), *animation), !forwards);
</ins><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -3086,13 +3083,13 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (i &lt; (valueList.size() - 1))
</span><del>-            timingFunctions.append(timingFunctionForAnimationValue(forwards ? curValue : valueList.at(index - 1), *animation));
</del><ins>+            timingFunctions.append(&amp;timingFunctionForAnimationValue(forwards ? curValue : valueList.at(index - 1), *animation));
</ins><span class="cx">     }
</span><del>-    
</del><ins>+
</ins><span class="cx">     keyframeAnim-&gt;setKeyTimes(keyTimes);
</span><span class="cx">     keyframeAnim-&gt;setValues(values);
</span><span class="cx">     keyframeAnim-&gt;setTimingFunctions(timingFunctions, !forwards);
</span><del>-    
</del><ins>+
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3105,8 +3102,8 @@
</span><span class="cx">     unsigned fromIndex = !forwards;
</span><span class="cx">     unsigned toIndex = forwards;
</span><span class="cx">     
</span><del>-    const TransformAnimationValue&amp; startValue = static_cast&lt;const TransformAnimationValue&amp;&gt;(valueList.at(fromIndex));
-    const TransformAnimationValue&amp; endValue = static_cast&lt;const TransformAnimationValue&amp;&gt;(valueList.at(toIndex));
</del><ins>+    auto&amp; startValue = static_cast&lt;const TransformAnimationValue&amp;&gt;(valueList.at(fromIndex));
+    auto&amp; endValue = static_cast&lt;const TransformAnimationValue&amp;&gt;(valueList.at(toIndex));
</ins><span class="cx"> 
</span><span class="cx">     if (isMatrixAnimation) {
</span><span class="cx">         TransformationMatrix fromTransform, toTransform;
</span><span class="lines">@@ -3149,10 +3146,9 @@
</span><span class="cx"> 
</span><span class="cx">     // This codepath is used for 2-keyframe animations, so we still need to look in the start
</span><span class="cx">     // for a timing function. Even in the reversing animation case, the first keyframe provides the timing function.
</span><del>-    const TimingFunction* timingFunction = timingFunctionForAnimationValue(valueList.at(0), *animation);
-    basicAnim-&gt;setTimingFunction(timingFunction, !forwards);
</del><ins>+    basicAnim-&gt;setTimingFunction(&amp;timingFunctionForAnimationValue(valueList.at(0), *animation), !forwards);
</ins><span class="cx"> 
</span><del>-    PlatformCAAnimation::ValueFunctionType valueFunction = getValueFunctionNameForTransformOperation(transformOpType);
</del><ins>+    auto valueFunction = getValueFunctionNameForTransformOperation(transformOpType);
</ins><span class="cx">     if (valueFunction != PlatformCAAnimation::NoValueFunction)
</span><span class="cx">         basicAnim-&gt;setValueFunction(valueFunction);
</span><span class="cx"> 
</span><span class="lines">@@ -3204,7 +3200,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (i &lt; (valueList.size() - 1))
</span><del>-            timingFunctions.append(timingFunctionForAnimationValue(forwards ? curValue : valueList.at(index - 1), *animation));
</del><ins>+            timingFunctions.append(&amp;timingFunctionForAnimationValue(forwards ? curValue : valueList.at(index - 1), *animation));
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     keyframeAnim-&gt;setKeyTimes(keyTimes);
</span><span class="lines">@@ -3260,7 +3256,7 @@
</span><span class="cx"> 
</span><span class="cx">     // This codepath is used for 2-keyframe animations, so we still need to look in the start
</span><span class="cx">     // for a timing function. Even in the reversing animation case, the first keyframe provides the timing function.
</span><del>-    basicAnim-&gt;setTimingFunction(timingFunctionForAnimationValue(valueList.at(0), *animation), !forwards);
</del><ins>+    basicAnim-&gt;setTimingFunction(&amp;timingFunctionForAnimationValue(valueList.at(0), *animation), !forwards);
</ins><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -3288,7 +3284,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (i &lt; (valueList.size() - 1))
</span><del>-            timingFunctions.append(timingFunctionForAnimationValue(forwards ? curValue : valueList.at(index - 1), *animation));
</del><ins>+            timingFunctions.append(&amp;timingFunctionForAnimationValue(forwards ? curValue : valueList.at(index - 1), *animation));
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     keyframeAnim-&gt;setKeyTimes(keyTimes);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaGraphicsLayerCAh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx">     RefPtr&lt;PlatformCAAnimation&gt; createSpringAnimation(const Animation*, const String&amp;, bool additive);
</span><span class="cx">     void setupAnimation(PlatformCAAnimation*, const Animation*, bool additive);
</span><span class="cx">     
</span><del>-    const TimingFunction* timingFunctionForAnimationValue(const AnimationValue&amp;, const Animation&amp;);
</del><ins>+    const TimingFunction&amp; timingFunctionForAnimationValue(const AnimationValue&amp;, const Animation&amp;);
</ins><span class="cx">     
</span><span class="cx">     bool setAnimationEndpoints(const KeyframeValueList&amp;, const Animation*, PlatformCAAnimation*);
</span><span class="cx">     bool setAnimationKeyframes(const KeyframeValueList&amp;, const Animation*, PlatformCAAnimation*);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFilterOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FilterOperations.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FilterOperations.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/filters/FilterOperations.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2011 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2011-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -35,49 +35,33 @@
</span><span class="cx"> 
</span><span class="cx"> static inline IntSize outsetSizeForBlur(float stdDeviation)
</span><span class="cx"> {
</span><del>-    IntSize kernelSize = FEGaussianBlur::calculateUnscaledKernelSize(FloatPoint(stdDeviation, stdDeviation));
</del><ins>+    auto kernelSize = FEGaussianBlur::calculateUnscaledKernelSize(FloatPoint(stdDeviation, stdDeviation));
</ins><span class="cx"> 
</span><del>-    IntSize outset;
</del><span class="cx">     // We take the half kernel size and multiply it with three, because we run box blur three times.
</span><del>-    outset.setWidth(3 * kernelSize.width() * 0.5f);
-    outset.setHeight(3 * kernelSize.height() * 0.5f);
-
-    return outset;
</del><ins>+    return {
+        3 * kernelSize.width() / 2,
+        3 * kernelSize.height() / 2
+    };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-FilterOperations::FilterOperations()
</del><ins>+bool FilterOperations::operator==(const FilterOperations&amp; other) const
</ins><span class="cx"> {
</span><del>-}
-
-FilterOperations&amp; FilterOperations::operator=(const FilterOperations&amp; other)
-{
-    m_operations = other.m_operations;
-    return *this;
-}
-
-bool FilterOperations::operator==(const FilterOperations&amp; o) const
-{
-    if (m_operations.size() != o.m_operations.size())
</del><ins>+    size_t size = m_operations.size();
+    if (size != other.m_operations.size())
</ins><span class="cx">         return false;
</span><del>-
-    unsigned s = m_operations.size();
-    for (unsigned i = 0; i &lt; s; i++) {
-        if (*m_operations[i] != *o.m_operations[i])
</del><ins>+    for (size_t i = 0; i &lt; size; i++) {
+        if (*m_operations[i] != *other.m_operations[i])
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool FilterOperations::operationsMatch(const FilterOperations&amp; other) const
</span><span class="cx"> {
</span><del>-    size_t numOperations = operations().size();
-    // If the sizes of the function lists don't match, the lists don't match
-    if (numOperations != other.operations().size())
</del><ins>+    size_t size = operations().size();
+    if (size != other.operations().size())
</ins><span class="cx">         return false;
</span><del>-
-    // If the types of each function are not the same, the lists don't match
-    for (size_t i = 0; i &lt; numOperations; ++i) {
</del><ins>+    for (size_t i = 0; i &lt; size; ++i) {
</ins><span class="cx">         if (!operations()[i]-&gt;isSameType(*other.operations()[i]))
</span><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="lines">@@ -86,8 +70,8 @@
</span><span class="cx"> 
</span><span class="cx"> bool FilterOperations::hasReferenceFilter() const
</span><span class="cx"> {
</span><del>-    for (size_t i = 0; i &lt; m_operations.size(); ++i) {
-        if (m_operations.at(i)-&gt;type() == FilterOperation::REFERENCE)
</del><ins>+    for (auto&amp; operation : m_operations) {
+        if (operation-&gt;type() == FilterOperation::REFERENCE)
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="lines">@@ -95,9 +79,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool FilterOperations::hasOutsets() const
</span><span class="cx"> {
</span><del>-    for (size_t i = 0; i &lt; m_operations.size(); ++i) {
-        FilterOperation::OperationType operationType = m_operations.at(i).get()-&gt;type();
-        if (operationType == FilterOperation::BLUR || operationType == FilterOperation::DROP_SHADOW)
</del><ins>+    for (auto&amp; operation : m_operations) {
+        auto type = operation-&gt;type();
+        if (type == FilterOperation::BLUR || type == FilterOperation::DROP_SHADOW)
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="lines">@@ -106,11 +90,10 @@
</span><span class="cx"> FilterOutsets FilterOperations::outsets() const
</span><span class="cx"> {
</span><span class="cx">     FilterOutsets totalOutsets;
</span><del>-    for (size_t i = 0; i &lt; m_operations.size(); ++i) {
-        const FilterOperation&amp; filterOperation = *m_operations.at(i);
-        switch (filterOperation.type()) {
</del><ins>+    for (auto&amp; operation : m_operations) {
+        switch (operation-&gt;type()) {
</ins><span class="cx">         case FilterOperation::BLUR: {
</span><del>-            const BlurFilterOperation&amp; blurOperation = downcast&lt;BlurFilterOperation&gt;(filterOperation);
</del><ins>+            auto&amp; blurOperation = downcast&lt;BlurFilterOperation&gt;(*operation);
</ins><span class="cx">             float stdDeviation = floatValueForLength(blurOperation.stdDeviation(), 0);
</span><span class="cx">             IntSize outsetSize = outsetSizeForBlur(stdDeviation);
</span><span class="cx">             FilterOutsets outsets(outsetSize.height(), outsetSize.width(), outsetSize.height(), outsetSize.width());
</span><span class="lines">@@ -118,14 +101,14 @@
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">         case FilterOperation::DROP_SHADOW: {
</span><del>-            const DropShadowFilterOperation&amp; dropShadowOperation = downcast&lt;DropShadowFilterOperation&gt;(filterOperation);
</del><ins>+            auto&amp; dropShadowOperation = downcast&lt;DropShadowFilterOperation&gt;(*operation);
</ins><span class="cx">             IntSize outsetSize = outsetSizeForBlur(dropShadowOperation.stdDeviation());
</span><del>-            FilterOutsets outsets(
</del><ins>+            FilterOutsets outsets {
</ins><span class="cx">                 std::max(0, outsetSize.height() - dropShadowOperation.y()),
</span><span class="cx">                 std::max(0, outsetSize.width() + dropShadowOperation.x()),
</span><span class="cx">                 std::max(0, outsetSize.height() + dropShadowOperation.y()),
</span><span class="cx">                 std::max(0, outsetSize.width() - dropShadowOperation.x())
</span><del>-            );
</del><ins>+            };
</ins><span class="cx">             totalOutsets += outsets;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -138,17 +121,19 @@
</span><span class="cx"> 
</span><span class="cx"> bool FilterOperations::hasFilterThatAffectsOpacity() const
</span><span class="cx"> {
</span><del>-    for (size_t i = 0; i &lt; m_operations.size(); ++i)
-        if (m_operations[i]-&gt;affectsOpacity())
</del><ins>+    for (auto&amp; operation : m_operations) {
+        if (operation-&gt;affectsOpacity())
</ins><span class="cx">             return true;
</span><ins>+    }
</ins><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool FilterOperations::hasFilterThatMovesPixels() const
</span><span class="cx"> {
</span><del>-    for (size_t i = 0; i &lt; m_operations.size(); ++i)
-        if (m_operations[i]-&gt;movesPixels())
</del><ins>+    for (auto&amp; operation : m_operations) {
+        if (operation-&gt;movesPixels())
</ins><span class="cx">             return true;
</span><ins>+    }
</ins><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -155,7 +140,7 @@
</span><span class="cx"> TextStream&amp; operator&lt;&lt;(TextStream&amp; ts, const FilterOperations&amp; filters)
</span><span class="cx"> {
</span><span class="cx">     for (size_t i = 0; i &lt; filters.size(); ++i) {
</span><del>-        const auto filter = filters.at(i);
</del><ins>+        auto filter = filters.at(i);
</ins><span class="cx">         if (filter)
</span><span class="cx">             ts &lt;&lt; *filter;
</span><span class="cx">         else
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFilterOperationsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FilterOperations.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FilterOperations.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/filters/FilterOperations.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2011 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2011-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -23,8 +23,7 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef FilterOperations_h
-#define FilterOperations_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;FilterOperation.h&quot;
</span><span class="cx"> #include &quot;IntRectExtent.h&quot;
</span><span class="lines">@@ -33,33 +32,22 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-typedef IntRectExtent FilterOutsets;
</del><ins>+using FilterOutsets = IntRectExtent;
</ins><span class="cx"> 
</span><span class="cx"> class FilterOperations {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    WEBCORE_EXPORT FilterOperations();
-    FilterOperations(const FilterOperations&amp; other) { *this = other; }
</del><ins>+    bool operator==(const FilterOperations&amp;) const;
+    bool operator!=(const FilterOperations&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><del>-    WEBCORE_EXPORT FilterOperations&amp; operator=(const FilterOperations&amp;);
</del><ins>+    void clear() { m_operations.clear(); }
</ins><span class="cx"> 
</span><del>-    bool operator==(const FilterOperations&amp;) const;
-    bool operator!=(const FilterOperations&amp; o) const
-    {
-        return !(*this == o);
-    }
-    
-    void clear()
-    {
-        m_operations.clear();
-    }
-    
</del><span class="cx">     Vector&lt;RefPtr&lt;FilterOperation&gt;&gt;&amp; operations() { return m_operations; }
</span><span class="cx">     const Vector&lt;RefPtr&lt;FilterOperation&gt;&gt;&amp; operations() const { return m_operations; }
</span><span class="cx"> 
</span><del>-    bool isEmpty() const { return !m_operations.size(); }
</del><ins>+    bool isEmpty() const { return m_operations.isEmpty(); }
</ins><span class="cx">     size_t size() const { return m_operations.size(); }
</span><del>-    const FilterOperation* at(size_t index) const { return index &lt; m_operations.size() ? m_operations.at(index).get() : 0; }
</del><ins>+    const FilterOperation* at(size_t index) const { return index &lt; m_operations.size() ? m_operations[index].get() : nullptr; }
</ins><span class="cx"> 
</span><span class="cx">     bool operationsMatch(const FilterOperations&amp;) const;
</span><span class="cx"> 
</span><span class="lines">@@ -70,6 +58,7 @@
</span><span class="cx">     bool hasFilterThatMovesPixels() const;
</span><span class="cx"> 
</span><span class="cx">     bool hasReferenceFilter() const;
</span><ins>+
</ins><span class="cx"> private:
</span><span class="cx">     Vector&lt;RefPtr&lt;FilterOperation&gt;&gt; m_operations;
</span><span class="cx"> };
</span><span class="lines">@@ -77,5 +66,3 @@
</span><span class="cx"> WEBCORE_EXPORT TextStream&amp; operator&lt;&lt;(TextStream&amp;, const FilterOperations&amp;);
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // FilterOperations_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapTextureMapperAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -128,19 +128,16 @@
</span><span class="cx">     return floor(numSteps * t) / numSteps;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline float applyTimingFunction(const TimingFunction* timingFunction, float progress, double duration)
</del><ins>+static inline float applyTimingFunction(const TimingFunction&amp; timingFunction, float progress, double duration)
</ins><span class="cx"> {
</span><del>-    if (!timingFunction)
-        return progress;
-
-    if (timingFunction-&gt;isCubicBezierTimingFunction()) {
-        const CubicBezierTimingFunction* ctf = static_cast&lt;const CubicBezierTimingFunction*&gt;(timingFunction);
-        return solveCubicBezierFunction(ctf-&gt;x1(), ctf-&gt;y1(), ctf-&gt;x2(), ctf-&gt;y2(), progress, duration);
</del><ins>+    if (timingFunction.isCubicBezierTimingFunction()) {
+        auto&amp; ctf = static_cast&lt;const CubicBezierTimingFunction&amp;&gt;(timingFunction);
+        return solveCubicBezierFunction(ctf.x1(), ctf.y1(), ctf.x2(), ctf.y2(), progress, duration);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (timingFunction-&gt;isStepsTimingFunction()) {
-        const StepsTimingFunction* stf = static_cast&lt;const StepsTimingFunction*&gt;(timingFunction);
-        return solveStepsFunction(stf-&gt;numberOfSteps(), stf-&gt;stepAtStart(), double(progress));
</del><ins>+    if (timingFunction.isStepsTimingFunction()) {
+        auto&amp; stf = static_cast&lt;const StepsTimingFunction&amp;&gt;(timingFunction);
+        return solveStepsFunction(stf.numberOfSteps(), stf.stepAtStart(), double(progress));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return progress;
</span><span class="lines">@@ -194,13 +191,12 @@
</span><span class="cx">     return matrix;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static const TimingFunction* timingFunctionForAnimationValue(const AnimationValue&amp; animValue, const Animation* anim)
</del><ins>+static const TimingFunction&amp; timingFunctionForAnimationValue(const AnimationValue&amp; animationValue, const Animation&amp; animation)
</ins><span class="cx"> {
</span><del>-    if (animValue.timingFunction())
-        return animValue.timingFunction();
-    if (anim-&gt;timingFunction())
-        return anim-&gt;timingFunction().get();
-
</del><ins>+    if (animationValue.timingFunction())
+        return *animationValue.timingFunction();
+    if (animation.timingFunction())
+        return *animation.timingFunction();
</ins><span class="cx">     return CubicBezierTimingFunction::defaultTimingFunction();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -257,7 +253,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (m_keyframes.size() == 2) {
</span><del>-        const TimingFunction* timingFunction = timingFunctionForAnimationValue(m_keyframes.at(0), m_animation.get());
</del><ins>+        auto&amp; timingFunction = timingFunctionForAnimationValue(m_keyframes.at(0), *m_animation);
</ins><span class="cx">         normalizedValue = applyTimingFunction(timingFunction, normalizedValue, m_animation-&gt;duration());
</span><span class="cx">         applyInternal(client, m_keyframes.at(0), m_keyframes.at(1), normalizedValue);
</span><span class="cx">         return;
</span><span class="lines">@@ -270,7 +266,7 @@
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         normalizedValue = (normalizedValue - from.keyTime()) / (to.keyTime() - from.keyTime());
</span><del>-        const TimingFunction* timingFunction = timingFunctionForAnimationValue(from, m_animation.get());
</del><ins>+        auto&amp; timingFunction = timingFunctionForAnimationValue(from, *m_animation);
</ins><span class="cx">         normalizedValue = applyTimingFunction(timingFunction, normalizedValue, m_animation-&gt;duration());
</span><span class="cx">         applyInternal(client, from, to, normalizedValue);
</span><span class="cx">         break;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosPlatformSpeechSynthesizerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (WebSpeechSynthesisWrapper *)initWithSpeechSynthesizer:(WebCore::PlatformSpeechSynthesizer*)synthesizer;
</span><del>-- (void)speakUtterance:(PassRefPtr&lt;WebCore::PlatformSpeechSynthesisUtterance&gt;)utterance;
</del><ins>+- (void)speakUtterance:(RefPtr&lt;WebCore::PlatformSpeechSynthesisUtterance&gt;&amp;&amp;)utterance;
</ins><span class="cx"> 
</span><span class="cx"> @end
</span><span class="cx"> 
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">     return rate;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (void)speakUtterance:(PassRefPtr&lt;WebCore::PlatformSpeechSynthesisUtterance&gt;)utterance
</del><ins>+- (void)speakUtterance:(RefPtr&lt;WebCore::PlatformSpeechSynthesisUtterance&gt;&amp;&amp;)utterance
</ins><span class="cx"> {
</span><span class="cx">     // When speak is called we should not have an existing speech utterance outstanding.
</span><span class="cx">     ASSERT(!m_utterance);
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx">     [avUtterance setVolume:utterance-&gt;volume()];
</span><span class="cx">     [avUtterance setPitchMultiplier:utterance-&gt;pitch()];
</span><span class="cx">     [avUtterance setVoice:avVoice];
</span><del>-    m_utterance = utterance;
</del><ins>+    m_utterance = WTFMove(utterance);
</ins><span class="cx"> 
</span><span class="cx">     [m_synthesizer speakUtterance:avUtterance];
</span><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ThemeMac.mm (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ThemeMac.mm        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/mac/ThemeMac.mm        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -155,10 +155,10 @@
</span><span class="cx">     if (zoomFactor != 1.0f)
</span><span class="cx">         controlSize = IntSize(controlSize.width() * zoomFactor, controlSize.height() * zoomFactor);
</span><span class="cx">     LengthSize result = zoomedSize;
</span><del>-    if (zoomedSize.width().isIntrinsicOrAuto() &amp;&amp; controlSize.width() &gt; 0)
-        result.setWidth(Length(controlSize.width(), Fixed));
-    if (zoomedSize.height().isIntrinsicOrAuto() &amp;&amp; controlSize.height() &gt; 0)
-        result.setHeight(Length(controlSize.height(), Fixed));
</del><ins>+    if (zoomedSize.width.isIntrinsicOrAuto() &amp;&amp; controlSize.width() &gt; 0)
+        result.width = { controlSize.width(), Fixed };
+    if (zoomedSize.height.isIntrinsicOrAuto() &amp;&amp; controlSize.height() &gt; 0)
+        result.height = { controlSize.height(), Fixed };
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx"> static LengthSize checkboxSize(const FontCascade&amp; font, const LengthSize&amp; zoomedSize, float zoomFactor)
</span><span class="cx"> {
</span><span class="cx">     // If the width and height are both specified, then we have nothing to do.
</span><del>-    if (!zoomedSize.width().isIntrinsicOrAuto() &amp;&amp; !zoomedSize.height().isIntrinsicOrAuto())
</del><ins>+    if (!zoomedSize.width.isIntrinsicOrAuto() &amp;&amp; !zoomedSize.height.isIntrinsicOrAuto())
</ins><span class="cx">         return zoomedSize;
</span><span class="cx"> 
</span><span class="cx">     // Use the font size to determine the intrinsic width of the control.
</span><span class="lines">@@ -310,7 +310,7 @@
</span><span class="cx"> static LengthSize radioSize(const FontCascade&amp; font, const LengthSize&amp; zoomedSize, float zoomFactor)
</span><span class="cx"> {
</span><span class="cx">     // If the width and height are both specified, then we have nothing to do.
</span><del>-    if (!zoomedSize.width().isIntrinsicOrAuto() &amp;&amp; !zoomedSize.height().isIntrinsicOrAuto())
</del><ins>+    if (!zoomedSize.width.isIntrinsicOrAuto() &amp;&amp; !zoomedSize.height.isIntrinsicOrAuto())
</ins><span class="cx">         return zoomedSize;
</span><span class="cx"> 
</span><span class="cx">     // Use the font size to determine the intrinsic width of the control.
</span><span class="lines">@@ -713,9 +713,9 @@
</span><span class="cx">             return radioSize(font, zoomedSize, zoomFactor);
</span><span class="cx">         case PushButtonPart:
</span><span class="cx">             // Height is reset to auto so that specified heights can be ignored.
</span><del>-            return sizeFromFont(font, LengthSize(zoomedSize.width(), Length()), zoomFactor, buttonSizes());
</del><ins>+            return sizeFromFont(font, { zoomedSize.width, { } }, zoomFactor, buttonSizes());
</ins><span class="cx">         case InnerSpinButtonPart:
</span><del>-            if (!zoomedSize.width().isIntrinsicOrAuto() &amp;&amp; !zoomedSize.height().isIntrinsicOrAuto())
</del><ins>+            if (!zoomedSize.width.isIntrinsicOrAuto() &amp;&amp; !zoomedSize.height.isIntrinsicOrAuto())
</ins><span class="cx">                 return zoomedSize;
</span><span class="cx">             return sizeFromNSControlSize(stepperControlSizeForFont(font), zoomedSize, zoomFactor, stepperSizes());
</span><span class="cx">         default:
</span><span class="lines">@@ -726,18 +726,18 @@
</span><span class="cx"> LengthSize ThemeMac::minimumControlSize(ControlPart part, const FontCascade&amp; font, float zoomFactor) const
</span><span class="cx"> {
</span><span class="cx">     switch (part) {
</span><del>-        case SquareButtonPart:
-        case DefaultButtonPart:
-        case ButtonPart:
-            return LengthSize(Length(0, Fixed), Length(static_cast&lt;int&gt;(15 * zoomFactor), Fixed));
-        case InnerSpinButtonPart:{
-            IntSize base = stepperSizes()[NSControlSizeMini];
-            return LengthSize(Length(static_cast&lt;int&gt;(base.width() * zoomFactor), Fixed),
-                              Length(static_cast&lt;int&gt;(base.height() * zoomFactor), Fixed));
-        }
-        default:
-            return Theme::minimumControlSize(part, font, zoomFactor);
</del><ins>+    case SquareButtonPart:
+    case DefaultButtonPart:
+    case ButtonPart:
+        return { { 0, Fixed }, { static_cast&lt;int&gt;(15 * zoomFactor), Fixed } };
+    case InnerSpinButtonPart: {
+        auto&amp; base = stepperSizes()[NSControlSizeMini];
+        return { { static_cast&lt;int&gt;(base.width() * zoomFactor), Fixed },
+            { static_cast&lt;int&gt;(base.height() * zoomFactor), Fixed } };
</ins><span class="cx">     }
</span><ins>+    default:
+        return Theme::minimumControlSize(part, font, zoomFactor);
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> LengthBox ThemeMac::controlBorder(ControlPart part, const FontCascade&amp; font, const LengthBox&amp; zoomedBox, float zoomFactor) const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacWidgetMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/WidgetMac.mm (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/WidgetMac.mm        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/mac/WidgetMac.mm        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">     if (!focused)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Frame* frame = Frame::frameForWidget(this);
</del><ins>+    Frame* frame = Frame::frameForWidget(*this);
</ins><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockDeviceMotionClientMockcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,71 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;DeviceMotionClientMock.h&quot;
-
-#include &quot;DeviceMotionController.h&quot;
-
-namespace WebCore {
-
-DeviceMotionClientMock::DeviceMotionClientMock()
-    : m_controller(0)
-    , m_timer(*this, &amp;DeviceMotionClientMock::timerFired)
-    , m_isUpdating(false)
-{
-}
-
-void DeviceMotionClientMock::setController(DeviceMotionController* controller)
-{
-    ASSERT(!m_controller);
-    m_controller = controller;
-    ASSERT(m_controller);
-}
-
-void DeviceMotionClientMock::startUpdating()
-{
-    m_isUpdating = true;
-}
-
-void DeviceMotionClientMock::stopUpdating()
-{
-    m_isUpdating = false;
-    m_timer.stop();
-}
-
-void DeviceMotionClientMock::setMotion(PassRefPtr&lt;DeviceMotionData&gt; motion)
-{
-    m_motion = motion;
-    if (m_isUpdating &amp;&amp; !m_timer.isActive())
-        m_timer.startOneShot(0);
-}
-
-void DeviceMotionClientMock::timerFired()
-{
-    m_timer.stop();
-    m_controller-&gt;didChangeDeviceMotion(m_motion.get());
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmockDeviceMotionClientMockh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/mock/DeviceMotionClientMock.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,68 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef DeviceMotionClientMock_h
-#define DeviceMotionClientMock_h
-
-#include &quot;DeviceMotionClient.h&quot;
-#include &quot;DeviceMotionData.h&quot;
-#include &quot;Timer.h&quot;
-
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-
-namespace WebCore {
-
-class DeviceMotionController;
-
-// A mock implementation of DeviceMotionClient used to test the feature in
-// DumpRenderTree. Embedders should should configure the Page object to use this
-// client when running DumpRenderTree.
-class DeviceMotionClientMock : public DeviceMotionClient {
-public:
-    DeviceMotionClientMock();
-
-    // DeviceMotionClient
-    void setController(DeviceMotionController*) override;
-    void startUpdating() override;
-    void stopUpdating() override;
-    DeviceMotionData* lastMotion() const override { return m_motion.get(); }
-    // mock is owned by the testing framework, which should handle deletion
-    void deviceMotionControllerDestroyed() override { }
-
-    void setMotion(PassRefPtr&lt;DeviceMotionData&gt;);
-
-private:
-    void timerFired();
-
-    RefPtr&lt;DeviceMotionData&gt; m_motion;
-    DeviceMotionController* m_controller;
-    Timer m_timer;
-    bool m_isUpdating;
-};
-
-} // namespace WebCore
-
-#endif // DeviceMotionClientMock_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformwinCursorWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/CursorWin.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/CursorWin.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/platform/win/CursorWin.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -40,10 +40,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static PassRefPtr&lt;SharedCursor&gt; createSharedCursor(Image* img, const IntPoint&amp; hotSpot)
</del><ins>+static Ref&lt;SharedCursor&gt; createSharedCursor(Image* img, const IntPoint&amp; hotSpot)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;SharedCursor&gt; impl;
-
</del><span class="cx">     IntPoint effectiveHotSpot = determineHotSpot(img, hotSpot);
</span><span class="cx">     static bool doAlpha = windowsVersion() &gt;= WindowsXP;
</span><span class="cx">     BitmapInfo cursorImage = BitmapInfo::create(IntSize(img-&gt;width(), img-&gt;height()));
</span><span class="lines">@@ -52,8 +50,6 @@
</span><span class="cx">     auto workingDC = adoptGDIObject(::CreateCompatibleDC(dc));
</span><span class="cx">     if (doAlpha) {
</span><span class="cx">         auto hCursor = adoptGDIObject(::CreateDIBSection(dc, &amp;cursorImage, DIB_RGB_COLORS, nullptr, 0, 0));
</span><del>-        if (!hCursor)
-            return nullptr;
</del><span class="cx"> 
</span><span class="cx">         img-&gt;getHBITMAP(hCursor.get()); 
</span><span class="cx">         HBITMAP hOldBitmap = (HBITMAP)SelectObject(workingDC.get(), hCursor.get());
</span><span class="lines">@@ -71,7 +67,7 @@
</span><span class="cx">         ii.hbmMask = hMask.get();
</span><span class="cx">         ii.hbmColor = hCursor.get();
</span><span class="cx"> 
</span><del>-        impl = SharedCursor::create(::CreateIconIndirect(&amp;ii));
</del><ins>+        return SharedCursor::create(::CreateIconIndirect(&amp;ii));
</ins><span class="cx">     } else {
</span><span class="cx">         // Platform doesn't support alpha blended cursors, so we need
</span><span class="cx">         // to create the mask manually
</span><span class="lines">@@ -78,8 +74,6 @@
</span><span class="cx">         auto andMaskDC = adoptGDIObject(::CreateCompatibleDC(dc));
</span><span class="cx">         auto xorMaskDC = adoptGDIObject(::CreateCompatibleDC(dc));
</span><span class="cx">         auto hCursor = adoptGDIObject(::CreateDIBSection(dc, &amp;cursorImage, DIB_RGB_COLORS, nullptr, 0, 0));
</span><del>-        if (!hCursor)
-            return nullptr;
</del><span class="cx"> 
</span><span class="cx">         img-&gt;getHBITMAP(hCursor.get()); 
</span><span class="cx">         BITMAP cursor;
</span><span class="lines">@@ -108,18 +102,16 @@
</span><span class="cx">         icon.yHotspot = effectiveHotSpot.y();
</span><span class="cx">         icon.hbmMask = andMask.get();
</span><span class="cx">         icon.hbmColor = xorMask.get();
</span><del>-        impl = SharedCursor::create(CreateIconIndirect(&amp;icon));
</del><ins>+        return SharedCursor::create(CreateIconIndirect(&amp;icon));
</ins><span class="cx">     }
</span><del>-
-    return impl.release();
</del><span class="cx"> }
</span><span class="cx"> 
</span><del>-static PassRefPtr&lt;SharedCursor&gt; loadSharedCursor(HINSTANCE hInstance, LPCWSTR lpCursorName)
</del><ins>+static Ref&lt;SharedCursor&gt; loadSharedCursor(HINSTANCE hInstance, LPCWSTR lpCursorName)
</ins><span class="cx"> {
</span><span class="cx">     return SharedCursor::create(::LoadCursorW(hInstance, lpCursorName));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static PassRefPtr&lt;SharedCursor&gt; loadCursorByName(char* name, int x, int y)
</del><ins>+static Ref&lt;SharedCursor&gt; loadCursorByName(char* name, int x, int y)
</ins><span class="cx"> {
</span><span class="cx">     IntPoint hotSpot(x, y);
</span><span class="cx">     RefPtr&lt;Image&gt; cursorImage(Image::loadPlatformResource(name));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingFilterEffectRenderercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -364,7 +364,7 @@
</span><span class="cx"> 
</span><span class="cx"> ImageBuffer* FilterEffectRenderer::output() const
</span><span class="cx"> {
</span><del>-    return const_cast&lt;FilterEffect&amp;&gt;(m_effects.last().get()).asImageBuffer();
</del><ins>+    return m_effects.last()-&gt;asImageBuffer();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FilterEffectRenderer::setMaxEffectRects(const FloatRect&amp; effectRect)
</span><span class="lines">@@ -375,7 +375,7 @@
</span><span class="cx"> 
</span><span class="cx"> IntRect FilterEffectRenderer::outputRect() const
</span><span class="cx"> {
</span><del>-    auto&amp; lastEffect = const_cast&lt;FilterEffect&amp;&gt;(m_effects.last().get());
</del><ins>+    auto&amp; lastEffect = m_effects.last().get();
</ins><span class="cx">     if (!lastEffect.hasResult())
</span><span class="cx">         return { };
</span><span class="cx">     return lastEffect.requestedRegionOfInputImageData(IntRect { m_filterRegion });
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingImageQualityControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/ImageQualityController.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/ImageQualityController.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/ImageQualityController.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">     return std::nullopt;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-InterpolationQuality ImageQualityController::chooseInterpolationQuality(GraphicsContext&amp; context, RenderBoxModelObject* object, Image&amp; image, const void *layer, const LayoutSize&amp; size)
</del><ins>+InterpolationQuality ImageQualityController::chooseInterpolationQuality(GraphicsContext&amp; context, RenderBoxModelObject* object, Image&amp; image, const void* layer, const LayoutSize&amp; size)
</ins><span class="cx"> {
</span><span class="cx">     // If the image is not a bitmap image, then none of this is relevant and we just paint at high quality.
</span><span class="cx">     if (!(image.isBitmapImage() || image.isPDFDocumentImage()) || context.paintingDisabled())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineFlowBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineFlowBox.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1231,12 +1231,14 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InlineFlowBox::paintFillLayers(const PaintInfo&amp; paintInfo, const Color&amp; c, const FillLayer* fillLayer, const LayoutRect&amp; rect, CompositeOperator op)
</del><ins>+void InlineFlowBox::paintFillLayers(const PaintInfo&amp; paintInfo, const Color&amp; color, const FillLayer&amp; fillLayer, const LayoutRect&amp; rect, CompositeOperator op)
</ins><span class="cx"> {
</span><del>-    if (!fillLayer)
-        return;
-    paintFillLayers(paintInfo, c, fillLayer-&gt;next(), rect, op);
-    paintFillLayer(paintInfo, c, fillLayer, rect, op);
</del><ins>+    Vector&lt;const FillLayer*, 8&gt; layers;
+    for (auto* layer = &amp;fillLayer; layer; layer = layer-&gt;next())
+        layers.append(layer);
+    layers.reverse();
+    for (auto* layer : layers)
+        paintFillLayer(paintInfo, color, *layer, rect, op);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool InlineFlowBox::boxShadowCanBeAppliedToBackground(const FillLayer&amp; lastBackgroundLayer) const
</span><span class="lines">@@ -1248,17 +1250,17 @@
</span><span class="cx">     return (!hasFillImage &amp;&amp; !renderer().style().hasBorderRadius()) || (!prevLineBox() &amp;&amp; !nextLineBox()) || !parent();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InlineFlowBox::paintFillLayer(const PaintInfo&amp; paintInfo, const Color&amp; c, const FillLayer* fillLayer, const LayoutRect&amp; rect, CompositeOperator op)
</del><ins>+void InlineFlowBox::paintFillLayer(const PaintInfo&amp; paintInfo, const Color&amp; color, const FillLayer&amp; fillLayer, const LayoutRect&amp; rect, CompositeOperator op)
</ins><span class="cx"> {
</span><del>-    StyleImage* img = fillLayer-&gt;image();
-    bool hasFillImage = img &amp;&amp; img-&gt;canRender(&amp;renderer(), renderer().style().effectiveZoom());
</del><ins>+    auto* image = fillLayer.image();
+    bool hasFillImage = image &amp;&amp; image-&gt;canRender(&amp;renderer(), renderer().style().effectiveZoom());
</ins><span class="cx">     if ((!hasFillImage &amp;&amp; !renderer().style().hasBorderRadius()) || (!prevLineBox() &amp;&amp; !nextLineBox()) || !parent())
</span><del>-        renderer().paintFillLayerExtended(paintInfo, c, fillLayer, rect, BackgroundBleedNone, this, rect.size(), op);
</del><ins>+        renderer().paintFillLayerExtended(paintInfo, color, fillLayer, rect, BackgroundBleedNone, this, rect.size(), op);
</ins><span class="cx"> #if ENABLE(CSS_BOX_DECORATION_BREAK)
</span><span class="cx">     else if (renderer().style().boxDecorationBreak() == DCLONE) {
</span><span class="cx">         GraphicsContextStateSaver stateSaver(paintInfo.context());
</span><span class="cx">         paintInfo.context().clip(LayoutRect(rect.x(), rect.y(), width(), height()));
</span><del>-        renderer().paintFillLayerExtended(paintInfo, c, fillLayer, rect, BackgroundBleedNone, this, rect.size(), op);
</del><ins>+        renderer().paintFillLayerExtended(paintInfo, color, fillLayer, rect, BackgroundBleedNone, this, rect.size(), op);
</ins><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx">     else {
</span><span class="lines">@@ -1290,7 +1292,7 @@
</span><span class="cx"> 
</span><span class="cx">         GraphicsContextStateSaver stateSaver(paintInfo.context());
</span><span class="cx">         paintInfo.context().clip(LayoutRect(rect.x(), rect.y(), width(), height()));
</span><del>-        renderer().paintFillLayerExtended(paintInfo, c, fillLayer, LayoutRect(stripX, stripY, stripWidth, stripHeight), BackgroundBleedNone, this, rect.size(), op);
</del><ins>+        renderer().paintFillLayerExtended(paintInfo, color, fillLayer, LayoutRect(stripX, stripY, stripWidth, stripHeight), BackgroundBleedNone, this, rect.size(), op);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1446,7 +1448,7 @@
</span><span class="cx">     bool flattenCompositingLayers = renderer().view().frameView().paintBehavior() &amp; PaintBehaviorFlattenCompositingLayers;
</span><span class="cx">     CompositeOperator compositeOp = CompositeSourceOver;
</span><span class="cx">     if (!compositedMask || flattenCompositingLayers) {
</span><del>-        if ((maskBoxImage &amp;&amp; renderer().style().maskLayers()-&gt;hasImage()) || renderer().style().maskLayers()-&gt;next())
</del><ins>+        if ((maskBoxImage &amp;&amp; renderer().style().maskLayers().hasImage()) || renderer().style().maskLayers().next())
</ins><span class="cx">             pushTransparencyLayer = true;
</span><span class="cx">         
</span><span class="cx">         compositeOp = CompositeDestinationIn;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineFlowBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineFlowBox.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineFlowBox.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -115,8 +115,8 @@
</span><span class="cx"> 
</span><span class="cx">     void paintBoxDecorations(PaintInfo&amp;, const LayoutPoint&amp;);
</span><span class="cx">     void paintMask(PaintInfo&amp;, const LayoutPoint&amp;);
</span><del>-    void paintFillLayers(const PaintInfo&amp;, const Color&amp;, const FillLayer*, const LayoutRect&amp;, CompositeOperator = CompositeSourceOver);
-    void paintFillLayer(const PaintInfo&amp;, const Color&amp;, const FillLayer*, const LayoutRect&amp;, CompositeOperator = CompositeSourceOver);
</del><ins>+    void paintFillLayers(const PaintInfo&amp;, const Color&amp;, const FillLayer&amp;, const LayoutRect&amp;, CompositeOperator = CompositeSourceOver);
+    void paintFillLayer(const PaintInfo&amp;, const Color&amp;, const FillLayer&amp;, const LayoutRect&amp;, CompositeOperator = CompositeSourceOver);
</ins><span class="cx">     void paintBoxShadow(const PaintInfo&amp;, const RenderStyle&amp;, ShadowStyle, const LayoutRect&amp;);
</span><span class="cx">     void paint(PaintInfo&amp;, const LayoutPoint&amp;, LayoutUnit lineTop, LayoutUnit lineBottom) override;
</span><span class="cx">     bool nodeAtPoint(const HitTestRequest&amp;, HitTestResult&amp;, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom, HitTestAction) override;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1305,10 +1305,9 @@
</span><span class="cx">     if (!rootBackgroundRenderer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    const FillLayer* bgLayer = rootBackgroundRenderer-&gt;style().backgroundLayers();
-    Color bgColor = rootBackgroundRenderer-&gt;style().visitedDependentColor(CSSPropertyBackgroundColor);
-
-    paintFillLayers(paintInfo, bgColor, bgLayer, view().backgroundRect(), BackgroundBleedNone, CompositeSourceOver, rootBackgroundRenderer);
</del><ins>+    auto&amp; style = rootBackgroundRenderer-&gt;style();
+    auto color = style.visitedDependentColor(CSSPropertyBackgroundColor);
+    paintFillLayers(paintInfo, color, style.backgroundLayers(), view().backgroundRect(), BackgroundBleedNone, CompositeSourceOver, rootBackgroundRenderer);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> BackgroundBleedAvoidance RenderBox::determineBackgroundBleedAvoidance(GraphicsContext&amp; context) const
</span><span class="lines">@@ -1449,12 +1448,13 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!style().backgroundLayers()-&gt;image() || style().backgroundLayers()-&gt;next()) {
</del><ins>+    auto&amp; layers = style().backgroundLayers();
+    if (!layers.image() || layers.next()) {
</ins><span class="cx">         paintedExtent =  backgroundRect;
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    BackgroundImageGeometry geometry = calculateBackgroundImageGeometry(nullptr, *style().backgroundLayers(), paintOffset, backgroundRect);
</del><ins>+    auto geometry = calculateBackgroundImageGeometry(nullptr, layers, paintOffset, backgroundRect);
</ins><span class="cx">     paintedExtent = geometry.destRect();
</span><span class="cx">     return !geometry.hasNonLocalGeometry();
</span><span class="cx"> }
</span><span class="lines">@@ -1484,7 +1484,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     
</span><span class="cx">     // FIXME: The background color clip is defined by the last layer.
</span><del>-    if (style().backgroundLayers()-&gt;next())
</del><ins>+    if (style().backgroundLayers().next())
</ins><span class="cx">         return false;
</span><span class="cx">     LayoutRect backgroundRect;
</span><span class="cx">     switch (style().backgroundClip()) {
</span><span class="lines">@@ -1574,19 +1574,19 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderBox::backgroundHasOpaqueTopLayer() const
</span><span class="cx"> {
</span><del>-    const FillLayer* fillLayer = style().backgroundLayers();
-    if (!fillLayer || fillLayer-&gt;clip() != BorderFillBox)
</del><ins>+    auto&amp; fillLayer = style().backgroundLayers();
+    if (fillLayer.clip() != BorderFillBox)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // Clipped with local scrolling
</span><del>-    if (hasOverflowClip() &amp;&amp; fillLayer-&gt;attachment() == LocalBackgroundAttachment)
</del><ins>+    if (hasOverflowClip() &amp;&amp; fillLayer.attachment() == LocalBackgroundAttachment)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (fillLayer-&gt;hasOpaqueImage(*this) &amp;&amp; fillLayer-&gt;hasRepeatXY() &amp;&amp; fillLayer-&gt;image()-&gt;canRender(this, style().effectiveZoom()))
</del><ins>+    if (fillLayer.hasOpaqueImage(*this) &amp;&amp; fillLayer.hasRepeatXY() &amp;&amp; fillLayer.image()-&gt;canRender(this, style().effectiveZoom()))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // If there is only one layer and no image, check whether the background color is opaque.
</span><del>-    if (!fillLayer-&gt;next() &amp;&amp; !fillLayer-&gt;hasImage()) {
</del><ins>+    if (!fillLayer.next() &amp;&amp; !fillLayer.hasImage()) {
</ins><span class="cx">         Color bgColor = style().visitedDependentColor(CSSPropertyBackgroundColor);
</span><span class="cx">         if (bgColor.isOpaque())
</span><span class="cx">             return true;
</span><span class="lines">@@ -1625,15 +1625,12 @@
</span><span class="cx">     
</span><span class="cx">     if (!compositedMask || flattenCompositingLayers) {
</span><span class="cx">         pushTransparencyLayer = true;
</span><del>-        StyleImage* maskBoxImage = style().maskBoxImage().image();
-        const FillLayer* maskLayers = style().maskLayers();
</del><span class="cx"> 
</span><span class="cx">         // Don't render a masked element until all the mask images have loaded, to prevent a flash of unmasked content.
</span><del>-        if (maskBoxImage)
</del><ins>+        if (auto* maskBoxImage = style().maskBoxImage().image())
</ins><span class="cx">             allMaskImagesLoaded &amp;= maskBoxImage-&gt;isLoaded();
</span><span class="cx"> 
</span><del>-        if (maskLayers)
-            allMaskImagesLoaded &amp;= maskLayers-&gt;imagesAreLoaded();
</del><ins>+        allMaskImagesLoaded &amp;= style().maskLayers().imagesAreLoaded();
</ins><span class="cx"> 
</span><span class="cx">         paintInfo.context().setCompositeOperation(CompositeDestinationIn);
</span><span class="cx">         paintInfo.context().beginTransparencyLayer(1);
</span><span class="lines">@@ -1662,26 +1659,29 @@
</span><span class="cx">     
</span><span class="cx">     LayoutRect result;
</span><span class="cx">     LayoutRect borderBox = borderBoxRect();
</span><del>-    for (const FillLayer* maskLayer = style().maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
</del><ins>+    for (auto* maskLayer = &amp;style().maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
</ins><span class="cx">         if (maskLayer-&gt;image()) {
</span><span class="cx">             // Masks should never have fixed attachment, so it's OK for paintContainer to be null.
</span><del>-            BackgroundImageGeometry geometry = calculateBackgroundImageGeometry(nullptr, *maskLayer, paintOffset, borderBox);
-            result.unite(geometry.destRect());
</del><ins>+            result.unite(calculateBackgroundImageGeometry(nullptr, *maskLayer, paintOffset, borderBox).destRect());
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderBox::paintFillLayers(const PaintInfo&amp; paintInfo, const Color&amp; c, const FillLayer* fillLayer, const LayoutRect&amp; rect,
</del><ins>+void RenderBox::paintFillLayers(const PaintInfo&amp; paintInfo, const Color&amp; color, const FillLayer&amp; fillLayer, const LayoutRect&amp; rect,
</ins><span class="cx">     BackgroundBleedAvoidance bleedAvoidance, CompositeOperator op, RenderElement* backgroundObject)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;const FillLayer*, 8&gt; layers;
</span><del>-    const FillLayer* curLayer = fillLayer;
</del><span class="cx">     bool shouldDrawBackgroundInSeparateBuffer = false;
</span><del>-    while (curLayer) {
-        layers.append(curLayer);
</del><ins>+
+    for (auto* layer = &amp;fillLayer; layer; layer = layer-&gt;next()) {
+        layers.append(layer);
+
+        if (layer-&gt;blendMode() != BlendModeNormal)
+            shouldDrawBackgroundInSeparateBuffer = true;
+
</ins><span class="cx">         // Stop traversal when an opaque layer is encountered.
</span><del>-        // FIXME : It would be possible for the following occlusion culling test to be more aggressive 
</del><ins>+        // FIXME: It would be possible for the following occlusion culling test to be more aggressive
</ins><span class="cx">         // on layers with no repeat by testing whether the image covers the layout rect.
</span><span class="cx">         // Testing that here would imply duplicating a lot of calculations that are currently done in
</span><span class="cx">         // RenderBoxModelObject::paintFillLayerExtended. A more efficient solution might be to move
</span><span class="lines">@@ -1688,45 +1688,40 @@
</span><span class="cx">         // the layer recursion into paintFillLayerExtended, or to compute the layer geometry here
</span><span class="cx">         // and pass it down.
</span><span class="cx"> 
</span><del>-        if (!shouldDrawBackgroundInSeparateBuffer &amp;&amp; curLayer-&gt;blendMode() != BlendModeNormal)
-            shouldDrawBackgroundInSeparateBuffer = true;
-
</del><span class="cx">         // The clipOccludesNextLayers condition must be evaluated first to avoid short-circuiting.
</span><del>-        if (curLayer-&gt;clipOccludesNextLayers(curLayer == fillLayer) &amp;&amp; curLayer-&gt;hasOpaqueImage(*this) &amp;&amp; curLayer-&gt;image()-&gt;canRender(this, style().effectiveZoom()) &amp;&amp; curLayer-&gt;hasRepeatXY() &amp;&amp; curLayer-&gt;blendMode() == BlendModeNormal)
</del><ins>+        if (layer-&gt;clipOccludesNextLayers(layer == &amp;fillLayer) &amp;&amp; layer-&gt;hasOpaqueImage(*this) &amp;&amp; layer-&gt;image()-&gt;canRender(this, style().effectiveZoom()) &amp;&amp; layer-&gt;hasRepeatXY() &amp;&amp; layer-&gt;blendMode() == BlendModeNormal)
</ins><span class="cx">             break;
</span><del>-        curLayer = curLayer-&gt;next();
</del><span class="cx">     }
</span><span class="cx"> 
</span><del>-    GraphicsContext&amp; context = paintInfo.context();
-    BaseBackgroundColorUsage baseBgColorUsage = BaseBackgroundColorUse;
</del><ins>+    auto&amp; context = paintInfo.context();
+    auto baseBgColorUsage = BaseBackgroundColorUse;
</ins><span class="cx"> 
</span><span class="cx">     if (shouldDrawBackgroundInSeparateBuffer) {
</span><del>-        paintFillLayer(paintInfo, c, *layers.rbegin(), rect, bleedAvoidance, op, backgroundObject, BaseBackgroundColorOnly);
</del><ins>+        paintFillLayer(paintInfo, color, *layers.last(), rect, bleedAvoidance, op, backgroundObject, BaseBackgroundColorOnly);
</ins><span class="cx">         baseBgColorUsage = BaseBackgroundColorSkip;
</span><span class="cx">         context.beginTransparencyLayer(1);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Vector&lt;const FillLayer*&gt;::const_reverse_iterator topLayer = layers.rend();
-    for (Vector&lt;const FillLayer*&gt;::const_reverse_iterator it = layers.rbegin(); it != topLayer; ++it)
-        paintFillLayer(paintInfo, c, *it, rect, bleedAvoidance, op, backgroundObject, baseBgColorUsage);
</del><ins>+    auto topLayer = layers.rend();
+    for (auto it = layers.rbegin(); it != topLayer; ++it)
+        paintFillLayer(paintInfo, color, **it, rect, bleedAvoidance, op, backgroundObject, baseBgColorUsage);
</ins><span class="cx"> 
</span><span class="cx">     if (shouldDrawBackgroundInSeparateBuffer)
</span><span class="cx">         context.endTransparencyLayer();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderBox::paintFillLayer(const PaintInfo&amp; paintInfo, const Color&amp; c, const FillLayer* fillLayer, const LayoutRect&amp; rect,
</del><ins>+void RenderBox::paintFillLayer(const PaintInfo&amp; paintInfo, const Color&amp; c, const FillLayer&amp; fillLayer, const LayoutRect&amp; rect,
</ins><span class="cx">     BackgroundBleedAvoidance bleedAvoidance, CompositeOperator op, RenderElement* backgroundObject, BaseBackgroundColorUsage baseBgColorUsage)
</span><span class="cx"> {
</span><span class="cx">     paintFillLayerExtended(paintInfo, c, fillLayer, rect, bleedAvoidance, nullptr, LayoutSize(), op, backgroundObject, baseBgColorUsage);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool layersUseImage(WrappedImagePtr image, const FillLayer* layers)
</del><ins>+static bool layersUseImage(WrappedImagePtr image, const FillLayer&amp; layers)
</ins><span class="cx"> {
</span><del>-    for (const FillLayer* curLayer = layers; curLayer; curLayer = curLayer-&gt;next()) {
-        if (curLayer-&gt;image() &amp;&amp; image == curLayer-&gt;image()-&gt;data())
</del><ins>+    for (auto* layer = &amp;layers; layer; layer = layer-&gt;next()) {
+        if (layer-&gt;image() &amp;&amp; image == layer-&gt;image()-&gt;data())
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1760,13 +1755,13 @@
</span><span class="cx">         layer()-&gt;contentChanged(BackgroundImageChanged);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool RenderBox::repaintLayerRectsForImage(WrappedImagePtr image, const FillLayer* layers, bool drawingBackground)
</del><ins>+bool RenderBox::repaintLayerRectsForImage(WrappedImagePtr image, const FillLayer&amp; layers, bool drawingBackground)
</ins><span class="cx"> {
</span><span class="cx">     LayoutRect rendererRect;
</span><span class="cx">     RenderBox* layerRenderer = nullptr;
</span><span class="cx"> 
</span><del>-    for (const FillLayer* curLayer = layers; curLayer; curLayer = curLayer-&gt;next()) {
-        if (curLayer-&gt;image() &amp;&amp; image == curLayer-&gt;image()-&gt;data() &amp;&amp; curLayer-&gt;image()-&gt;canRender(this, style().effectiveZoom())) {
</del><ins>+    for (auto* layer = &amp;layers; layer; layer = layer-&gt;next()) {
+        if (layer-&gt;image() &amp;&amp; image == layer-&gt;image()-&gt;data() &amp;&amp; layer-&gt;image()-&gt;canRender(this, style().effectiveZoom())) {
</ins><span class="cx">             // Now that we know this image is being used, compute the renderer and the rect if we haven't already.
</span><span class="cx">             bool drawingRootBackground = drawingBackground &amp;&amp; (isDocumentElementRenderer() || (isBody() &amp;&amp; !document().documentElement()-&gt;renderer()-&gt;hasBackground()));
</span><span class="cx">             if (!layerRenderer) {
</span><span class="lines">@@ -1786,7 +1781,7 @@
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">             // FIXME: Figure out how to pass absolute position to calculateBackgroundImageGeometry (for pixel snapping)
</span><del>-            BackgroundImageGeometry geometry = layerRenderer-&gt;calculateBackgroundImageGeometry(nullptr, *curLayer, LayoutPoint(), rendererRect);
</del><ins>+            BackgroundImageGeometry geometry = layerRenderer-&gt;calculateBackgroundImageGeometry(nullptr, *layer, LayoutPoint(), rendererRect);
</ins><span class="cx">             if (geometry.hasNonLocalGeometry()) {
</span><span class="cx">                 // Rather than incur the costs of computing the paintContainer for renderers with fixed backgrounds
</span><span class="cx">                 // in order to get the right destRect, just repaint the entire renderer.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderBox.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -627,8 +627,8 @@
</span><span class="cx"> 
</span><span class="cx">     void paintBackground(const PaintInfo&amp;, const LayoutRect&amp;, BackgroundBleedAvoidance = BackgroundBleedNone);
</span><span class="cx">     
</span><del>-    void paintFillLayer(const PaintInfo&amp;, const Color&amp;, const FillLayer*, const LayoutRect&amp;, BackgroundBleedAvoidance, CompositeOperator, RenderElement* backgroundObject, BaseBackgroundColorUsage = BaseBackgroundColorUse);
-    void paintFillLayers(const PaintInfo&amp;, const Color&amp;, const FillLayer*, const LayoutRect&amp;, BackgroundBleedAvoidance = BackgroundBleedNone, CompositeOperator = CompositeSourceOver, RenderElement* backgroundObject = nullptr);
</del><ins>+    void paintFillLayer(const PaintInfo&amp;, const Color&amp;, const FillLayer&amp;, const LayoutRect&amp;, BackgroundBleedAvoidance, CompositeOperator, RenderElement* backgroundObject, BaseBackgroundColorUsage = BaseBackgroundColorUse);
+    void paintFillLayers(const PaintInfo&amp;, const Color&amp;, const FillLayer&amp;, const LayoutRect&amp;, BackgroundBleedAvoidance = BackgroundBleedNone, CompositeOperator = CompositeSourceOver, RenderElement* backgroundObject = nullptr);
</ins><span class="cx"> 
</span><span class="cx">     void paintMaskImages(const PaintInfo&amp;, const LayoutRect&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -667,8 +667,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool isScrollableOrRubberbandableBox() const override;
</span><span class="cx"> 
</span><del>-    // Returns true if we did a full repaint
-    bool repaintLayerRectsForImage(WrappedImagePtr image, const FillLayer* layers, bool drawingBackground);
</del><ins>+    // Returns true if we did a full repaint.
+    bool repaintLayerRectsForImage(WrappedImagePtr, const FillLayer&amp; layers, bool drawingBackground);
</ins><span class="cx"> 
</span><span class="cx">     bool skipContainingBlockForPercentHeightCalculation(const RenderBox&amp; containingBlock, bool isPerpendicularWritingMode) const;
</span><span class="cx">    
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -623,7 +623,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderBoxModelObject::paintFillLayerExtended(const PaintInfo&amp; paintInfo, const Color&amp; color, const FillLayer* bgLayer, const LayoutRect&amp; rect,
</del><ins>+void RenderBoxModelObject::paintFillLayerExtended(const PaintInfo&amp; paintInfo, const Color&amp; color, const FillLayer&amp; bgLayer, const LayoutRect&amp; rect,
</ins><span class="cx">     BackgroundBleedAvoidance bleedAvoidance, InlineFlowBox* box, const LayoutSize&amp; boxSize, CompositeOperator op, RenderElement* backgroundObject, BaseBackgroundColorUsage baseBgColorUsage)
</span><span class="cx"> {
</span><span class="cx">     GraphicsContext&amp; context = paintInfo.context();
</span><span class="lines">@@ -634,12 +634,12 @@
</span><span class="cx">     bool includeRightEdge = box ? box-&gt;includeLogicalRightEdge() : true;
</span><span class="cx"> 
</span><span class="cx">     bool hasRoundedBorder = style().hasBorderRadius() &amp;&amp; (includeLeftEdge || includeRightEdge);
</span><del>-    bool clippedWithLocalScrolling = hasOverflowClip() &amp;&amp; bgLayer-&gt;attachment() == LocalBackgroundAttachment;
-    bool isBorderFill = bgLayer-&gt;clip() == BorderFillBox;
</del><ins>+    bool clippedWithLocalScrolling = hasOverflowClip() &amp;&amp; bgLayer.attachment() == LocalBackgroundAttachment;
+    bool isBorderFill = bgLayer.clip() == BorderFillBox;
</ins><span class="cx">     bool isRoot = this-&gt;isDocumentElementRenderer();
</span><span class="cx"> 
</span><span class="cx">     Color bgColor = color;
</span><del>-    StyleImage* bgImage = bgLayer-&gt;image();
</del><ins>+    StyleImage* bgImage = bgLayer.image();
</ins><span class="cx">     bool shouldPaintBackgroundImage = bgImage &amp;&amp; bgImage-&gt;canRender(this, style().effectiveZoom());
</span><span class="cx">     
</span><span class="cx">     bool forceBackgroundToWhite = false;
</span><span class="lines">@@ -659,7 +659,7 @@
</span><span class="cx">     // while rendering.)
</span><span class="cx">     if (forceBackgroundToWhite) {
</span><span class="cx">         // Note that we can't reuse this variable below because the bgColor might be changed
</span><del>-        bool shouldPaintBackgroundColor = !bgLayer-&gt;next() &amp;&amp; bgColor.isVisible();
</del><ins>+        bool shouldPaintBackgroundColor = !bgLayer.next() &amp;&amp; bgColor.isVisible();
</ins><span class="cx">         if (shouldPaintBackgroundImage || shouldPaintBackgroundColor) {
</span><span class="cx">             bgColor = Color::white;
</span><span class="cx">             shouldPaintBackgroundImage = false;
</span><span class="lines">@@ -667,7 +667,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool baseBgColorOnly = (baseBgColorUsage == BaseBackgroundColorOnly);
</span><del>-    if (baseBgColorOnly &amp;&amp; (!isRoot || bgLayer-&gt;next() || bgColor.isOpaque()))
</del><ins>+    if (baseBgColorOnly &amp;&amp; (!isRoot || bgLayer.next() || bgColor.isOpaque()))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     bool colorVisible = bgColor.isVisible();
</span><span class="lines">@@ -675,7 +675,7 @@
</span><span class="cx">     FloatRect pixelSnappedRect = snapRectToDevicePixels(rect, deviceScaleFactor);
</span><span class="cx"> 
</span><span class="cx">     // Fast path for drawing simple color backgrounds.
</span><del>-    if (!isRoot &amp;&amp; !clippedWithLocalScrolling &amp;&amp; !shouldPaintBackgroundImage &amp;&amp; isBorderFill &amp;&amp; !bgLayer-&gt;next()) {
</del><ins>+    if (!isRoot &amp;&amp; !clippedWithLocalScrolling &amp;&amp; !shouldPaintBackgroundImage &amp;&amp; isBorderFill &amp;&amp; !bgLayer.next()) {
</ins><span class="cx">         if (!colorVisible)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="lines">@@ -708,10 +708,10 @@
</span><span class="cx">         RoundedRect border = isBorderFill ? backgroundRoundedRectAdjustedForBleedAvoidance(context, rect, bleedAvoidance, box, boxSize, includeLeftEdge, includeRightEdge) : getBackgroundRoundedRect(rect, box, boxSize.width(), boxSize.height(), includeLeftEdge, includeRightEdge);
</span><span class="cx"> 
</span><span class="cx">         // Clip to the padding or content boxes as necessary.
</span><del>-        if (bgLayer-&gt;clip() == ContentFillBox) {
</del><ins>+        if (bgLayer.clip() == ContentFillBox) {
</ins><span class="cx">             border = style().getRoundedInnerBorderFor(border.rect(),
</span><span class="cx">                 paddingTop() + borderTop(), paddingBottom() + borderBottom(), paddingLeft() + borderLeft(), paddingRight() + borderRight(), includeLeftEdge, includeRightEdge);
</span><del>-        } else if (bgLayer-&gt;clip() == PaddingFillBox)
</del><ins>+        } else if (bgLayer.clip() == PaddingFillBox)
</ins><span class="cx">             border = style().getRoundedInnerBorderFor(border.rect(), includeLeftEdge, includeRightEdge);
</span><span class="cx"> 
</span><span class="cx">         clipRoundedInnerRect(context, pixelSnappedRect, border.pixelSnappedRoundedRectForPainting(deviceScaleFactor));
</span><span class="lines">@@ -739,10 +739,10 @@
</span><span class="cx">     std::unique_ptr&lt;ImageBuffer&gt; maskImage;
</span><span class="cx">     IntRect maskRect;
</span><span class="cx"> 
</span><del>-    if (bgLayer-&gt;clip() == PaddingFillBox || bgLayer-&gt;clip() == ContentFillBox) {
</del><ins>+    if (bgLayer.clip() == PaddingFillBox || bgLayer.clip() == ContentFillBox) {
</ins><span class="cx">         // Clip to the padding or content boxes as necessary.
</span><span class="cx">         if (!clipToBorderRadius) {
</span><del>-            bool includePadding = bgLayer-&gt;clip() == ContentFillBox;
</del><ins>+            bool includePadding = bgLayer.clip() == ContentFillBox;
</ins><span class="cx">             LayoutRect clipRect = LayoutRect(scrolledPaintRect.x() + bLeft + (includePadding ? pLeft : LayoutUnit()),
</span><span class="cx">                 scrolledPaintRect.y() + borderTop() + (includePadding ? paddingTop() : LayoutUnit()),
</span><span class="cx">                 scrolledPaintRect.width() - bLeft - bRight - (includePadding ? pLeft + pRight : LayoutUnit()),
</span><span class="lines">@@ -750,7 +750,7 @@
</span><span class="cx">             backgroundClipStateSaver.save();
</span><span class="cx">             context.clip(clipRect);
</span><span class="cx">         }
</span><del>-    } else if (bgLayer-&gt;clip() == TextFillBox) {
</del><ins>+    } else if (bgLayer.clip() == TextFillBox) {
</ins><span class="cx">         // We have to draw our text into a mask that can then be used to clip background drawing.
</span><span class="cx">         // First figure out how big the mask has to be.  It should be no bigger than what we need
</span><span class="cx">         // to actually render, so we should intersect the dirty rect with the border box of the background.
</span><span class="lines">@@ -774,7 +774,7 @@
</span><span class="cx">     bool isOpaqueRoot = false;
</span><span class="cx">     if (isRoot) {
</span><span class="cx">         isOpaqueRoot = true;
</span><del>-        if (!bgLayer-&gt;next() &amp;&amp; !bgColor.isOpaque()) {
</del><ins>+        if (!bgLayer.next() &amp;&amp; !bgColor.isOpaque()) {
</ins><span class="cx">             HTMLFrameOwnerElement* ownerElement = document().ownerElement();
</span><span class="cx">             if (ownerElement) {
</span><span class="cx">                 if (!ownerElement-&gt;hasTagName(frameTag)) {
</span><span class="lines">@@ -797,12 +797,12 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Paint the color first underneath all images, culled if background image occludes it.
</span><del>-    // FIXME: In the bgLayer-&gt;hasFiniteBounds() case, we could improve the culling test
</del><ins>+    // FIXME: In the bgLayer.hasFiniteBounds() case, we could improve the culling test
</ins><span class="cx">     // by verifying whether the background image covers the entire layout rect.
</span><del>-    if (!bgLayer-&gt;next()) {
</del><ins>+    if (!bgLayer.next()) {
</ins><span class="cx">         LayoutRect backgroundRect(scrolledPaintRect);
</span><span class="cx">         bool boxShadowShouldBeAppliedToBackground = this-&gt;boxShadowShouldBeAppliedToBackground(rect.location(), bleedAvoidance, box);
</span><del>-        if (boxShadowShouldBeAppliedToBackground || !shouldPaintBackgroundImage || !bgLayer-&gt;hasOpaqueImage(*this) || !bgLayer-&gt;hasRepeatXY()) {
</del><ins>+        if (boxShadowShouldBeAppliedToBackground || !shouldPaintBackgroundImage || !bgLayer.hasOpaqueImage(*this) || !bgLayer.hasRepeatXY()) {
</ins><span class="cx">             if (!boxShadowShouldBeAppliedToBackground)
</span><span class="cx">                 backgroundRect.intersect(paintInfo.rect);
</span><span class="cx"> 
</span><span class="lines">@@ -823,10 +823,9 @@
</span><span class="cx">             if (baseColor.isVisible()) {
</span><span class="cx">                 if (!baseBgColorOnly &amp;&amp; bgColor.isVisible())
</span><span class="cx">                     baseColor = baseColor.blend(bgColor);
</span><del>-
</del><span class="cx">                 context.fillRect(backgroundRectForPainting, baseColor, CompositeCopy);
</span><span class="cx">             } else if (!baseBgColorOnly &amp;&amp; bgColor.isVisible()) {
</span><del>-                CompositeOperator operation = shouldClearBackground ? CompositeCopy : context.compositeOperation();
</del><ins>+                auto operation = shouldClearBackground ? CompositeCopy : context.compositeOperation();
</ins><span class="cx">                 context.fillRect(backgroundRectForPainting, bgColor, operation);
</span><span class="cx">             } else if (shouldClearBackground)
</span><span class="cx">                 context.clearRect(backgroundRectForPainting);
</span><span class="lines">@@ -835,19 +834,19 @@
</span><span class="cx"> 
</span><span class="cx">     // no progressive loading of the background image
</span><span class="cx">     if (!baseBgColorOnly &amp;&amp; shouldPaintBackgroundImage) {
</span><del>-        BackgroundImageGeometry geometry = calculateBackgroundImageGeometry(paintInfo.paintContainer, *bgLayer, rect.location(), scrolledPaintRect, backgroundObject);
</del><ins>+        auto geometry = calculateBackgroundImageGeometry(paintInfo.paintContainer, bgLayer, rect.location(), scrolledPaintRect, backgroundObject);
</ins><span class="cx">         geometry.clip(LayoutRect(pixelSnappedRect));
</span><span class="cx">         RefPtr&lt;Image&gt; image;
</span><span class="cx">         if (!geometry.destRect().isEmpty() &amp;&amp; (image = bgImage-&gt;image(backgroundObject ? backgroundObject : this, geometry.tileSize()))) {
</span><del>-            CompositeOperator compositeOp = op == CompositeSourceOver ? bgLayer-&gt;composite() : op;
-            context.setDrawLuminanceMask(bgLayer-&gt;maskSourceType() == MaskLuminance);
</del><ins>+            auto compositeOp = op == CompositeSourceOver ? bgLayer.composite() : op;
+            context.setDrawLuminanceMask(bgLayer.maskSourceType() == MaskLuminance);
</ins><span class="cx"> 
</span><del>-            InterpolationQuality interpolation = chooseInterpolationQuality(context, *image, bgLayer, geometry.tileSize());
-            context.drawTiledImage(*image, geometry.destRect(), toLayoutPoint(geometry.relativePhase()), geometry.tileSize(), geometry.spaceSize(), ImagePaintingOptions(compositeOp, bgLayer-&gt;blendMode(), ImageOrientationDescription(), interpolation));
</del><ins>+            auto interpolation = chooseInterpolationQuality(context, *image, &amp;bgLayer, geometry.tileSize());
+            context.drawTiledImage(*image, geometry.destRect(), toLayoutPoint(geometry.relativePhase()), geometry.tileSize(), geometry.spaceSize(), ImagePaintingOptions(compositeOp, bgLayer.blendMode(), ImageOrientationDescription(), interpolation));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (maskImage &amp;&amp; bgLayer-&gt;clip() == TextFillBox) {
</del><ins>+    if (maskImage &amp;&amp; bgLayer.clip() == TextFillBox) {
</ins><span class="cx">         context.drawConsumingImageBuffer(WTFMove(maskImage), maskRect, CompositeDestinationIn);
</span><span class="cx">         context.endTransparencyLayer();
</span><span class="cx">     }
</span><span class="lines">@@ -960,8 +959,8 @@
</span><span class="cx">         case SizeLength: {
</span><span class="cx">             LayoutSize tileSize = positioningAreaSize;
</span><span class="cx"> 
</span><del>-            Length layerWidth = fillLayer.size().size.width();
-            Length layerHeight = fillLayer.size().size.height();
</del><ins>+            Length layerWidth = fillLayer.size().size.width;
+            Length layerHeight = fillLayer.size().size.height;
</ins><span class="cx"> 
</span><span class="cx">             if (layerWidth.isFixed())
</span><span class="cx">                 tileSize.setWidth(layerWidth.value());
</span><span class="lines">@@ -985,7 +984,7 @@
</span><span class="cx">                 // If both width and height are auto, use the image's intrinsic size.
</span><span class="cx">                 tileSize = imageIntrinsicSize;
</span><span class="cx">             }
</span><del>-            
</del><ins>+
</ins><span class="cx">             tileSize.clampNegativeToZero();
</span><span class="cx">             return tileSize;
</span><span class="cx">         }
</span><span class="lines">@@ -1170,7 +1169,7 @@
</span><span class="cx">     LayoutUnit computedXPosition = resolveEdgeRelativeLength(fillLayer.xPosition(), fillLayer.backgroundXOrigin(), availableWidth, positioningAreaSize, tileSize);
</span><span class="cx">     if (backgroundRepeatX == RoundFill &amp;&amp; positioningAreaSize.width() &gt; 0 &amp;&amp; tileSize.width() &gt; 0) {
</span><span class="cx">         int numTiles = std::max(1, roundToInt(positioningAreaSize.width() / tileSize.width()));
</span><del>-        if (fillLayer.size().size.height().isAuto() &amp;&amp; backgroundRepeatY != RoundFill)
</del><ins>+        if (fillLayer.size().size.height.isAuto() &amp;&amp; backgroundRepeatY != RoundFill)
</ins><span class="cx">             tileSize.setHeight(tileSize.height() * positioningAreaSize.width() / (numTiles * tileSize.width()));
</span><span class="cx"> 
</span><span class="cx">         tileSize.setWidth(positioningAreaSize.width() / numTiles);
</span><span class="lines">@@ -1180,7 +1179,7 @@
</span><span class="cx">     LayoutUnit computedYPosition = resolveEdgeRelativeLength(fillLayer.yPosition(), fillLayer.backgroundYOrigin(), availableHeight, positioningAreaSize, tileSize);
</span><span class="cx">     if (backgroundRepeatY == RoundFill &amp;&amp; positioningAreaSize.height() &gt; 0 &amp;&amp; tileSize.height() &gt; 0) {
</span><span class="cx">         int numTiles = std::max(1, roundToInt(positioningAreaSize.height() / tileSize.height()));
</span><del>-        if (fillLayer.size().size.width().isAuto() &amp;&amp; backgroundRepeatX != RoundFill)
</del><ins>+        if (fillLayer.size().size.width.isAuto() &amp;&amp; backgroundRepeatX != RoundFill)
</ins><span class="cx">             tileSize.setWidth(tileSize.width() * positioningAreaSize.height() / (numTiles * tileSize.height()));
</span><span class="cx"> 
</span><span class="cx">         tileSize.setHeight(positioningAreaSize.height() / numTiles);
</span><span class="lines">@@ -1249,7 +1248,7 @@
</span><span class="cx"> void RenderBoxModelObject::getGeometryForBackgroundImage(const RenderLayerModelObject* paintContainer, const LayoutPoint&amp; paintOffset, FloatRect&amp; destRect, FloatSize&amp; phase, FloatSize&amp; tileSize) const
</span><span class="cx"> {
</span><span class="cx">     LayoutRect paintRect(destRect);
</span><del>-    BackgroundImageGeometry geometry = calculateBackgroundImageGeometry(paintContainer, *style().backgroundLayers(), paintOffset, paintRect);
</del><ins>+    auto geometry = calculateBackgroundImageGeometry(paintContainer, style().backgroundLayers(), paintOffset, paintRect);
</ins><span class="cx">     phase = geometry.phase();
</span><span class="cx">     tileSize = geometry.tileSize();
</span><span class="cx">     destRect = geometry.destRect();
</span><span class="lines">@@ -2169,8 +2168,8 @@
</span><span class="cx">     if (!backgroundColor.isOpaque())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    const FillLayer* lastBackgroundLayer = style().backgroundLayers();
-    for (const FillLayer* next = lastBackgroundLayer-&gt;next(); next; next = lastBackgroundLayer-&gt;next())
</del><ins>+    auto* lastBackgroundLayer = &amp;style().backgroundLayers();
+    while (auto* next = lastBackgroundLayer-&gt;next())
</ins><span class="cx">         lastBackgroundLayer = next;
</span><span class="cx"> 
</span><span class="cx">     if (lastBackgroundLayer-&gt;clip() != BorderFillBox)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx">     void paintBorder(const PaintInfo&amp;, const LayoutRect&amp;, const RenderStyle&amp;, BackgroundBleedAvoidance = BackgroundBleedNone, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true);
</span><span class="cx">     bool paintNinePieceImage(GraphicsContext&amp;, const LayoutRect&amp;, const RenderStyle&amp;, const NinePieceImage&amp;, CompositeOperator = CompositeSourceOver);
</span><span class="cx">     void paintBoxShadow(const PaintInfo&amp;, const LayoutRect&amp;, const RenderStyle&amp;, ShadowStyle, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true);
</span><del>-    void paintFillLayerExtended(const PaintInfo&amp;, const Color&amp;, const FillLayer*, const LayoutRect&amp;, BackgroundBleedAvoidance, InlineFlowBox* = nullptr, const LayoutSize&amp; = LayoutSize(), CompositeOperator = CompositeSourceOver, RenderElement* backgroundObject = nullptr, BaseBackgroundColorUsage = BaseBackgroundColorUse);
</del><ins>+    void paintFillLayerExtended(const PaintInfo&amp;, const Color&amp;, const FillLayer&amp;, const LayoutRect&amp;, BackgroundBleedAvoidance, InlineFlowBox* = nullptr, const LayoutSize&amp; = LayoutSize(), CompositeOperator = CompositeSourceOver, RenderElement* backgroundObject = nullptr, BaseBackgroundColorUsage = BaseBackgroundColorUse);
</ins><span class="cx"> 
</span><span class="cx">     virtual bool boxShadowShouldBeAppliedToBackground(const LayoutPoint&amp; absolutePaintPostion, BackgroundBleedAvoidance, InlineFlowBox* = nullptr) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -135,22 +135,18 @@
</span><span class="cx"> RenderElement::~RenderElement()
</span><span class="cx"> {
</span><span class="cx">     if (hasInitializedStyle()) {
</span><del>-        for (const FillLayer* bgLayer = m_style.backgroundLayers(); bgLayer; bgLayer = bgLayer-&gt;next()) {
-            if (StyleImage* backgroundImage = bgLayer-&gt;image())
</del><ins>+        for (auto* bgLayer = &amp;m_style.backgroundLayers(); bgLayer; bgLayer = bgLayer-&gt;next()) {
+            if (auto* backgroundImage = bgLayer-&gt;image())
</ins><span class="cx">                 backgroundImage-&gt;removeClient(this);
</span><span class="cx">         }
</span><del>-
-        for (const FillLayer* maskLayer = m_style.maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
-            if (StyleImage* maskImage = maskLayer-&gt;image())
</del><ins>+        for (auto* maskLayer = &amp;m_style.maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next()) {
+            if (auto* maskImage = maskLayer-&gt;image())
</ins><span class="cx">                 maskImage-&gt;removeClient(this);
</span><span class="cx">         }
</span><del>-
-        if (StyleImage* borderImage = m_style.borderImage().image())
</del><ins>+        if (auto* borderImage = m_style.borderImage().image())
</ins><span class="cx">             borderImage-&gt;removeClient(this);
</span><del>-
-        if (StyleImage* maskBoxImage = m_style.maskBoxImage().image())
</del><ins>+        if (auto* maskBoxImage = m_style.maskBoxImage().image())
</ins><span class="cx">             maskBoxImage-&gt;removeClient(this);
</span><del>-
</del><span class="cx">         if (auto shapeValue = m_style.shapeOutside()) {
</span><span class="cx">             if (auto shapeImage = shapeValue-&gt;image())
</span><span class="cx">                 shapeImage-&gt;removeClient(this);
</span><span class="lines">@@ -303,8 +299,8 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if ((contextSensitiveProperties &amp; ContextSensitivePropertyFilter) &amp;&amp; hasLayer()) {
</span><del>-        RenderLayer* layer = downcast&lt;RenderLayerModelObject&gt;(*this).layer();
-        if (!layer-&gt;isComposited() || layer-&gt;paintsWithFilters())
</del><ins>+        auto&amp; layer = *downcast&lt;RenderLayerModelObject&gt;(*this).layer();
+        if (!layer.isComposited() || layer.paintsWithFilters())
</ins><span class="cx">             diff = std::max(diff, StyleDifferenceRepaintLayer);
</span><span class="cx">         else
</span><span class="cx">             diff = std::max(diff, StyleDifferenceRecompositeLayer);
</span><span class="lines">@@ -341,21 +337,20 @@
</span><span class="cx">     return diff == StyleDifferenceRepaint || (diff == StyleDifferenceRepaintIfTextOrBorderOrOutline &amp;&amp; hasImmediateNonWhitespaceTextChildOrBorderOrOutline());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderElement::updateFillImages(const FillLayer* oldLayers, const FillLayer* newLayers)
</del><ins>+void RenderElement::updateFillImages(const FillLayer* oldLayers, const FillLayer&amp; newLayers)
</ins><span class="cx"> {
</span><del>-    // Optimize the common case
-    if (FillLayer::imagesIdentical(oldLayers, newLayers))
</del><ins>+    // Optimize the common case.
+    if (FillLayer::imagesIdentical(oldLayers, &amp;newLayers))
</ins><span class="cx">         return;
</span><span class="cx">     
</span><del>-    // Go through the new layers and addClients first, to avoid removing all clients of an image.
-    for (const FillLayer* currNew = newLayers; currNew; currNew = currNew-&gt;next()) {
-        if (currNew-&gt;image())
-            currNew-&gt;image()-&gt;addClient(this);
</del><ins>+    // Add before removing, to avoid removing all clients of an image that is in both sets.
+    for (auto* layer = &amp;newLayers; layer; layer = layer-&gt;next()) {
+        if (layer-&gt;image())
+            layer-&gt;image()-&gt;addClient(this);
</ins><span class="cx">     }
</span><del>-
-    for (const FillLayer* currOld = oldLayers; currOld; currOld = currOld-&gt;next()) {
-        if (currOld-&gt;image())
-            currOld-&gt;image()-&gt;removeClient(this);
</del><ins>+    for (auto* layer = oldLayers; layer; layer = layer-&gt;next()) {
+        if (layer-&gt;image())
+            layer-&gt;image()-&gt;removeClient(this);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -409,8 +404,7 @@
</span><span class="cx">     Style::loadPendingResources(style, document(), element());
</span><span class="cx"> 
</span><span class="cx">     styleWillChange(diff, style);
</span><del>-    auto oldStyle = WTFMove(m_style);
-    m_style = WTFMove(style);
</del><ins>+    auto oldStyle = m_style.replace(WTFMove(style));
</ins><span class="cx">     bool detachedFromParent = !parent();
</span><span class="cx"> 
</span><span class="cx">     // Make sure we invalidate the containing block cache for flows when the contianing block context changes
</span><span class="lines">@@ -807,7 +801,7 @@
</span><span class="cx">         auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), elementChild.style().display());
</span><span class="cx">         if (style().specifiesColumns()) {
</span><span class="cx">             if (elementChild.style().specifiesColumns())
</span><del>-                newStyle.inheritColumnPropertiesFrom(&amp;style());
</del><ins>+                newStyle.inheritColumnPropertiesFrom(style());
</ins><span class="cx">             if (elementChild.style().columnSpan())
</span><span class="cx">                 newStyle.setColumnSpan(ColumnSpanAll);
</span><span class="cx">         }
</span><span class="lines">@@ -999,8 +993,8 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderElement::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
</span><span class="cx"> {
</span><del>-    updateFillImages(oldStyle ? oldStyle-&gt;backgroundLayers() : nullptr, m_style.backgroundLayers());
-    updateFillImages(oldStyle ? oldStyle-&gt;maskLayers() : nullptr, m_style.maskLayers());
</del><ins>+    updateFillImages(oldStyle ? &amp;oldStyle-&gt;backgroundLayers() : nullptr, m_style.backgroundLayers());
+    updateFillImages(oldStyle ? &amp;oldStyle-&gt;maskLayers() : nullptr, m_style.maskLayers());
</ins><span class="cx">     updateImage(oldStyle ? oldStyle-&gt;borderImage().image() : nullptr, m_style.borderImage().image());
</span><span class="cx">     updateImage(oldStyle ? oldStyle-&gt;maskBoxImage().image() : nullptr, m_style.maskBoxImage().image());
</span><span class="cx">     updateShapeImage(oldStyle ? oldStyle-&gt;shapeOutside() : nullptr, m_style.shapeOutside());
</span><span class="lines">@@ -1231,41 +1225,39 @@
</span><span class="cx"> {
</span><span class="cx">     StackStats::LayoutCheckPoint layoutCheckPoint;
</span><span class="cx">     ASSERT(needsLayout());
</span><del>-    RenderObject* child = firstChild();
-    while (child) {
</del><ins>+    for (auto* child = firstChild(); child; child = child-&gt;nextSibling()) {
</ins><span class="cx">         if (child-&gt;needsLayout())
</span><span class="cx">             downcast&lt;RenderElement&gt;(*child).layout();
</span><span class="cx">         ASSERT(!child-&gt;needsLayout());
</span><del>-        child = child-&gt;nextSibling();
</del><span class="cx">     }
</span><span class="cx">     clearNeedsLayout();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool mustRepaintFillLayers(const RenderElement&amp; renderer, const FillLayer* layer)
</del><ins>+static bool mustRepaintFillLayers(const RenderElement&amp; renderer, const FillLayer&amp; layer)
</ins><span class="cx"> {
</span><span class="cx">     // Nobody will use multiple layers without wanting fancy positioning.
</span><del>-    if (layer-&gt;next())
</del><ins>+    if (layer.next())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Make sure we have a valid image.
</span><del>-    StyleImage* image = layer-&gt;image();
</del><ins>+    auto* image = layer.image();
</ins><span class="cx">     if (!image || !image-&gt;canRender(&amp;renderer, renderer.style().effectiveZoom()))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!layer-&gt;xPosition().isZero() || !layer-&gt;yPosition().isZero())
</del><ins>+    if (!layer.xPosition().isZero() || !layer.yPosition().isZero())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    EFillSizeType sizeType = layer-&gt;sizeType();
</del><ins>+    auto sizeType = layer.sizeType();
</ins><span class="cx"> 
</span><span class="cx">     if (sizeType == Contain || sizeType == Cover)
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     if (sizeType == SizeLength) {
</span><del>-        LengthSize size = layer-&gt;sizeLength();
-        if (size.width().isPercentOrCalculated() || size.height().isPercentOrCalculated())
</del><ins>+        auto size = layer.sizeLength();
+        if (size.width.isPercentOrCalculated() || size.height.isPercentOrCalculated())
</ins><span class="cx">             return true;
</span><span class="cx">         // If the image has neither an intrinsic width nor an intrinsic height, its size is determined as for 'contain'.
</span><del>-        if ((size.width().isAuto() || size.height().isAuto()) &amp;&amp; image-&gt;isGeneratedImage())
</del><ins>+        if ((size.width.isAuto() || size.height.isAuto()) &amp;&amp; image-&gt;isGeneratedImage())
</ins><span class="cx">             return true;
</span><span class="cx">     } else if (image-&gt;usesImageContainerSize())
</span><span class="cx">         return true;
</span><span class="lines">@@ -1365,14 +1357,14 @@
</span><span class="cx">         style().getBoxShadowHorizontalExtent(shadowLeft, shadowRight);
</span><span class="cx">         LayoutUnit borderRight = is&lt;RenderBox&gt;(*this) ? downcast&lt;RenderBox&gt;(*this).borderRight() : LayoutUnit::fromPixel(0);
</span><span class="cx">         LayoutUnit boxWidth = is&lt;RenderBox&gt;(*this) ? downcast&lt;RenderBox&gt;(*this).width() : LayoutUnit();
</span><del>-        LayoutUnit minInsetRightShadowExtent = std::min&lt;LayoutUnit&gt;(-insetShadowExtent.right(), std::min&lt;LayoutUnit&gt;(newBounds.width(), oldBounds.width()));
-        LayoutUnit borderWidth = std::max&lt;LayoutUnit&gt;(borderRight, std::max&lt;LayoutUnit&gt;(valueForLength(style().borderTopRightRadius().width(), boxWidth), valueForLength(style().borderBottomRightRadius().width(), boxWidth)));
-        LayoutUnit decorationsWidth = std::max&lt;LayoutUnit&gt;(-outlineStyle.outlineOffset(), borderWidth + minInsetRightShadowExtent) + std::max&lt;LayoutUnit&gt;(outlineWidth, shadowRight);
</del><ins>+        LayoutUnit minInsetRightShadowExtent = std::min&lt;LayoutUnit&gt;(-insetShadowExtent.right(), std::min(newBounds.width(), oldBounds.width()));
+        LayoutUnit borderWidth = std::max(borderRight, std::max(valueForLength(style().borderTopRightRadius().width, boxWidth), valueForLength(style().borderBottomRightRadius().width, boxWidth)));
+        LayoutUnit decorationsWidth = std::max&lt;LayoutUnit&gt;(-outlineStyle.outlineOffset(), borderWidth + minInsetRightShadowExtent) + std::max(outlineWidth, shadowRight);
</ins><span class="cx">         LayoutRect rightRect(newOutlineBox.x() + std::min(newOutlineBox.width(), oldOutlineBox.width()) - decorationsWidth,
</span><span class="cx">             newOutlineBox.y(),
</span><span class="cx">             width + decorationsWidth,
</span><span class="cx">             std::max(newOutlineBox.height(), oldOutlineBox.height()));
</span><del>-        LayoutUnit right = std::min&lt;LayoutUnit&gt;(newBounds.maxX(), oldBounds.maxX());
</del><ins>+        LayoutUnit right = std::min(newBounds.maxX(), oldBounds.maxX());
</ins><span class="cx">         if (rightRect.x() &lt; right) {
</span><span class="cx">             rightRect.setWidth(std::min(rightRect.width(), right - rightRect.x()));
</span><span class="cx">             repaintUsingContainer(repaintContainer, rightRect);
</span><span class="lines">@@ -1385,10 +1377,10 @@
</span><span class="cx">         style().getBoxShadowVerticalExtent(shadowTop, shadowBottom);
</span><span class="cx">         LayoutUnit borderBottom = is&lt;RenderBox&gt;(*this) ? downcast&lt;RenderBox&gt;(*this).borderBottom() : LayoutUnit::fromPixel(0);
</span><span class="cx">         LayoutUnit boxHeight = is&lt;RenderBox&gt;(*this) ? downcast&lt;RenderBox&gt;(*this).height() : LayoutUnit();
</span><del>-        LayoutUnit minInsetBottomShadowExtent = std::min&lt;LayoutUnit&gt;(-insetShadowExtent.bottom(), std::min&lt;LayoutUnit&gt;(newBounds.height(), oldBounds.height()));
-        LayoutUnit borderHeight = std::max&lt;LayoutUnit&gt;(borderBottom, std::max&lt;LayoutUnit&gt;(valueForLength(style().borderBottomLeftRadius().height(), boxHeight),
-            valueForLength(style().borderBottomRightRadius().height(), boxHeight)));
-        LayoutUnit decorationsHeight = std::max&lt;LayoutUnit&gt;(-outlineStyle.outlineOffset(), borderHeight + minInsetBottomShadowExtent) + std::max&lt;LayoutUnit&gt;(outlineWidth, shadowBottom);
</del><ins>+        LayoutUnit minInsetBottomShadowExtent = std::min&lt;LayoutUnit&gt;(-insetShadowExtent.bottom(), std::min(newBounds.height(), oldBounds.height()));
+        LayoutUnit borderHeight = std::max(borderBottom, std::max(valueForLength(style().borderBottomLeftRadius().height, boxHeight),
+            valueForLength(style().borderBottomRightRadius().height, boxHeight)));
+        LayoutUnit decorationsHeight = std::max&lt;LayoutUnit&gt;(-outlineStyle.outlineOffset(), borderHeight + minInsetBottomShadowExtent) + std::max(outlineWidth, shadowBottom);
</ins><span class="cx">         LayoutRect bottomRect(newOutlineBox.x(),
</span><span class="cx">             std::min(newOutlineBox.maxY(), oldOutlineBox.maxY()) - decorationsHeight,
</span><span class="cx">             std::max(newOutlineBox.width(), oldOutlineBox.width()),
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderElement.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -294,7 +294,7 @@
</span><span class="cx">     bool shouldRepaintForStyleDifference(StyleDifference) const;
</span><span class="cx">     bool hasImmediateNonWhitespaceTextChildOrBorderOrOutline() const;
</span><span class="cx"> 
</span><del>-    void updateFillImages(const FillLayer*, const FillLayer*);
</del><ins>+    void updateFillImages(const FillLayer*, const FillLayer&amp;);
</ins><span class="cx">     void updateImage(StyleImage*, StyleImage*);
</span><span class="cx">     void updateShapeImage(const ShapeValue*, const ShapeValue*);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderGrid.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2755,7 +2755,7 @@
</span><span class="cx">     if (contentAlignment.isValid())
</span><span class="cx">         return contentAlignment;
</span><span class="cx"> 
</span><del>-    auto overflow = isRowAxis ? style().justifyContentOverflowAlignment() : style().alignContentOverflowAlignment();
</del><ins>+    auto overflow = (isRowAxis ? style().justifyContent() : style().alignContent()).overflow();
</ins><span class="cx">     if (availableFreeSpace &lt;= 0 &amp;&amp; overflow == OverflowAlignmentSafe)
</span><span class="cx">         return {0, 0};
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -3143,10 +3143,11 @@
</span><span class="cx"> Ref&lt;Scrollbar&gt; RenderLayer::createScrollbar(ScrollbarOrientation orientation)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Scrollbar&gt; widget;
</span><del>-    RenderElement* actualRenderer = rendererForScrollbar(renderer());
-    bool hasCustomScrollbarStyle = actualRenderer-&gt;isBox() &amp;&amp; actualRenderer-&gt;style().hasPseudoStyle(SCROLLBAR);
</del><ins>+    ASSERT(rendererForScrollbar(renderer()));
+    auto&amp; actualRenderer = *rendererForScrollbar(renderer());
+    bool hasCustomScrollbarStyle = is&lt;RenderBox&gt;(actualRenderer) &amp;&amp; downcast&lt;RenderBox&gt;(actualRenderer).style().hasPseudoStyle(SCROLLBAR);
</ins><span class="cx">     if (hasCustomScrollbarStyle)
</span><del>-        widget = RenderScrollbar::createCustomScrollbar(*this, orientation, actualRenderer-&gt;element());
</del><ins>+        widget = RenderScrollbar::createCustomScrollbar(*this, orientation, downcast&lt;RenderBox&gt;(actualRenderer).element());
</ins><span class="cx">     else {
</span><span class="cx">         widget = Scrollbar::createNativeScrollbar(*this, orientation, RegularScrollbar);
</span><span class="cx">         didAddScrollbar(widget.get(), orientation);
</span><span class="lines">@@ -3153,7 +3154,7 @@
</span><span class="cx">         if (page().expectsWheelEventTriggers())
</span><span class="cx">             scrollAnimator().setWheelEventTestTrigger(page().testTrigger());
</span><span class="cx">     }
</span><del>-    renderer().view().frameView().addChild(widget.get());
</del><ins>+    renderer().view().frameView().addChild(*widget);
</ins><span class="cx">     return widget.releaseNonNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1726,30 +1726,27 @@
</span><span class="cx"> 
</span><span class="cx"> static bool canCreateTiledImage(const RenderStyle&amp; style)
</span><span class="cx"> {
</span><del>-    const FillLayer* fillLayer = style.backgroundLayers();
-    if (fillLayer-&gt;next())
</del><ins>+    auto&amp; fillLayer = style.backgroundLayers();
+    if (fillLayer.next())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!fillLayer-&gt;imagesAreLoaded())
</del><ins>+    if (!fillLayer.imagesAreLoaded())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (fillLayer-&gt;attachment() != ScrollBackgroundAttachment)
</del><ins>+    if (fillLayer.attachment() != ScrollBackgroundAttachment)
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Color color = style.visitedDependentColor(CSSPropertyBackgroundColor);
-
</del><span class="cx">     // FIXME: Allow color+image compositing when it makes sense.
</span><span class="cx">     // For now bailing out.
</span><del>-    if (color.isVisible())
</del><ins>+    if (style.visitedDependentColor(CSSPropertyBackgroundColor).isVisible())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    StyleImage* styleImage = fillLayer-&gt;image();
-
</del><span class="cx">     // FIXME: support gradients with isGeneratedImage.
</span><ins>+    auto* styleImage = fillLayer.image();
</ins><span class="cx">     if (!styleImage-&gt;isCachedImage())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Image* image = styleImage-&gt;cachedImage()-&gt;image();
</del><ins>+    auto* image = styleImage-&gt;cachedImage()-&gt;image();
</ins><span class="cx">     if (!image-&gt;isBitmapImage())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -1809,25 +1806,24 @@
</span><span class="cx">     if (isDirectlyCompositedImage())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    const RenderStyle&amp; style = renderer().style();
-
</del><ins>+    auto&amp; style = renderer().style();
</ins><span class="cx">     if (!isSimpleContainer || !style.hasBackgroundImage()) {
</span><span class="cx">         m_graphicsLayer-&gt;setContentsToImage(0);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    FloatRect destRect = backgroundBoxForSimpleContainerPainting();
</del><ins>+    auto destRect = backgroundBoxForSimpleContainerPainting();
</ins><span class="cx">     FloatSize phase;
</span><span class="cx">     FloatSize tileSize;
</span><ins>+    // FIXME: Absolute paint location is required here.
+    downcast&lt;RenderBox&gt;(renderer()).getGeometryForBackgroundImage(&amp;renderer(), LayoutPoint(), destRect, phase, tileSize);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;Image&gt; image = style.backgroundLayers()-&gt;image()-&gt;cachedImage()-&gt;image();
-    // FIXME: absolute paint location is required here.
-    downcast&lt;RenderBox&gt;(renderer()).getGeometryForBackgroundImage(&amp;renderer(), LayoutPoint(), destRect, phase, tileSize);
</del><span class="cx">     m_graphicsLayer-&gt;setContentsTileSize(tileSize);
</span><span class="cx">     m_graphicsLayer-&gt;setContentsTilePhase(phase);
</span><span class="cx">     m_graphicsLayer-&gt;setContentsRect(destRect);
</span><span class="cx">     m_graphicsLayer-&gt;setContentsClippingRect(FloatRoundedRect(destRect));
</span><del>-    m_graphicsLayer-&gt;setContentsToImage(image.get());
</del><ins>+    m_graphicsLayer-&gt;setContentsToImage(style.backgroundLayers().image()-&gt;cachedImage()-&gt;image());
+
</ins><span class="cx">     didUpdateContentsRect = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -902,7 +902,7 @@
</span><span class="cx">         if (page().expectsWheelEventTriggers())
</span><span class="cx">             scrollAnimator().setWheelEventTestTrigger(page().testTrigger());
</span><span class="cx">     }
</span><del>-    view().frameView().addChild(widget.get());
</del><ins>+    view().frameView().addChild(*widget);
</ins><span class="cx">     return widget.releaseNonNull();
</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 (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx">     // Use margin:auto instead of align-items:center to get safe centering, i.e.
</span><span class="cx">     // when the content overflows, treat it the same as align-items: flex-start.
</span><span class="cx">     // But we only do that for the cases where html.css would otherwise use center.
</span><del>-    if (style().alignItemsPosition() == ItemPositionCenter) {
</del><ins>+    if (style().alignItems().position() == ItemPositionCenter) {
</ins><span class="cx">         innerStyle.setMarginTop(Length());
</span><span class="cx">         innerStyle.setMarginBottom(Length());
</span><span class="cx">         innerStyle.setAlignSelfPosition(ItemPositionFlexStart);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTableCell.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTableCell.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderTableCell.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1276,9 +1276,9 @@
</span><span class="cx">         adjustedPaintOffset.moveBy(location());
</span><span class="cx"> 
</span><span class="cx">     Color c = backgroundObject-&gt;style().visitedDependentColor(CSSPropertyBackgroundColor);
</span><del>-    const FillLayer* bgLayer = backgroundObject-&gt;style().backgroundLayers();
</del><ins>+    auto&amp; bgLayer = backgroundObject-&gt;style().backgroundLayers();
</ins><span class="cx"> 
</span><del>-    if (bgLayer-&gt;hasImage() || c.isValid()) {
</del><ins>+    if (bgLayer.hasImage() || c.isValid()) {
</ins><span class="cx">         // We have to clip here because the background would paint
</span><span class="cx">         // on top of the borders otherwise.  This only matters for cells and rows.
</span><span class="cx">         bool shouldClip = backgroundObject-&gt;hasLayer() &amp;&amp; (backgroundObject == this || backgroundObject == parent()) &amp;&amp; tableElt-&gt;collapseBorders();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTheme.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTheme.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderTheme.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx">         // Padding
</span><span class="cx">         LengthBox paddingBox = m_theme-&gt;controlPadding(part, style.fontCascade(), style.paddingBox(), style.effectiveZoom());
</span><span class="cx">         if (paddingBox != style.paddingBox())
</span><del>-            style.setPaddingBox(paddingBox);
</del><ins>+            style.setPaddingBox(WTFMove(paddingBox));
</ins><span class="cx"> 
</span><span class="cx">         // Whitespace
</span><span class="cx">         if (m_theme-&gt;controlRequiresPreWhiteSpace(part))
</span><span class="lines">@@ -155,19 +155,19 @@
</span><span class="cx">         // Width / Height
</span><span class="cx">         // The width and height here are affected by the zoom.
</span><span class="cx">         // FIXME: Check is flawed, since it doesn't take min-width/max-width into account.
</span><del>-        LengthSize controlSize = m_theme-&gt;controlSize(part, style.fontCascade(), LengthSize(style.width(), style.height()), style.effectiveZoom());
-        if (controlSize.width() != style.width())
-            style.setWidth(controlSize.width());
-        if (controlSize.height() != style.height())
-            style.setHeight(controlSize.height());
-                
</del><ins>+        LengthSize controlSize = m_theme-&gt;controlSize(part, style.fontCascade(), { style.width(), style.height() }, style.effectiveZoom());
+        if (controlSize.width != style.width())
+            style.setWidth(WTFMove(controlSize.width));
+        if (controlSize.height != style.height())
+            style.setHeight(WTFMove(controlSize.height));
+
</ins><span class="cx">         // Min-Width / Min-Height
</span><span class="cx">         LengthSize minControlSize = m_theme-&gt;minimumControlSize(part, style.fontCascade(), style.effectiveZoom());
</span><del>-        if (minControlSize.width() != style.minWidth())
-            style.setMinWidth(minControlSize.width());
-        if (minControlSize.height() != style.minHeight())
-            style.setMinHeight(minControlSize.height());
-                
</del><ins>+        if (minControlSize.width != style.minWidth())
+            style.setMinWidth(WTFMove(minControlSize.width));
+        if (minControlSize.height != style.minHeight())
+            style.setMinHeight(WTFMove(minControlSize.height));
+
</ins><span class="cx">         // Font
</span><span class="cx">         if (auto themeFont = m_theme-&gt;controlFont(part, style.fontCascade(), style.effectiveZoom())) {
</span><span class="cx">             // If overriding the specified font with the theme font, also override the line height with the standard line height.
</span><span class="lines">@@ -709,9 +709,9 @@
</span><span class="cx">     case TextFieldPart:
</span><span class="cx">     case TextAreaPart:
</span><span class="cx">         // Test the style to see if the UA border and background match.
</span><del>-        return (style.border() != border
-            || *style.backgroundLayers() != background
-            || !style.backgroundColorEqualsToColorIgnoringVisited(backgroundColor));
</del><ins>+        return style.border() != border
+            || style.backgroundLayers() != background
+            || !style.backgroundColorEqualsToColorIgnoringVisited(backgroundColor);
</ins><span class="cx">     default:
</span><span class="cx">         return false;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeEfl.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeEfl.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderThemeEfl.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -145,20 +145,26 @@
</span><span class="cx">     // These are always valid, even if no theme could be loaded.
</span><span class="cx">     const ThemePartDesc* desc = m_partDescs + (size_t)type;
</span><span class="cx"> 
</span><del>-    if (style.minWidth().isIntrinsic())
-        style.setMinWidth(desc-&gt;min.width());
-    if (style.minHeight().isIntrinsic())
-        style.setMinHeight(desc-&gt;min.height());
</del><ins>+    if (style.minWidth().isIntrinsic()) {
+        auto copy = desc-&gt;min.width;
+        style.setMinWidth(WTFMove(copy));
+    }
+    if (style.minHeight().isIntrinsic()) {
+        auto copy = desc-&gt;min.height;
+        style.setMinHeight(WTFMove(copy));
+    }
</ins><span class="cx"> 
</span><del>-    if (desc-&gt;max.width().value() &gt; 0 &amp;&amp; style.maxWidth().isIntrinsicOrAuto())
-        style.setMaxWidth(desc-&gt;max.width());
-    if (desc-&gt;max.height().value() &gt; 0 &amp;&amp; style.maxHeight().isIntrinsicOrAuto())
-        style.setMaxHeight(desc-&gt;max.height());
</del><ins>+    if (desc-&gt;max.width.value() &gt; 0 &amp;&amp; style.maxWidth().isIntrinsicOrAuto()) {
+        auto copy = desc-&gt;max.width;
+        style.setMaxWidth(WTFMove(copy));
+    }
+    if (desc-&gt;max.height.value() &gt; 0 &amp;&amp; style.maxHeight().isIntrinsicOrAuto()) {
+        auto copy = desc-&gt;max.height;
+        style.setMaxHeight(WTFMove(copy));
+    }
</ins><span class="cx"> 
</span><del>-    style.setPaddingTop(desc-&gt;padding.top());
-    style.setPaddingBottom(desc-&gt;padding.bottom());
-    style.setPaddingLeft(desc-&gt;padding.left());
-    style.setPaddingRight(desc-&gt;padding.right());
</del><ins>+    auto paddingCopy = desc-&gt;padding;
+    style.setPaddingBox(WTFMove(paddingCopy));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isFormElementTooLargeToDisplay(const IntSize&amp; elementSize)
</span><span class="lines">@@ -365,7 +371,7 @@
</span><span class="cx">     if (!entry)
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    bool haveBackgroundColor = isControlStyled(object.style(), object.style().border(), *object.style().backgroundLayers(), Color::white);
</del><ins>+    bool haveBackgroundColor = isControlStyled(object.style(), object.style().border(), object.style().backgroundLayers(), Color::white);
</ins><span class="cx">     ControlStates states(extractControlStatesForRenderer(object));
</span><span class="cx">     applyEdjeStateFromForm(entry-&gt;edje(), &amp;states, haveBackgroundColor);
</span><span class="cx"> 
</span><span class="lines">@@ -542,11 +548,11 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderThemeEfl::applyPartDescriptionFallback(ThemePartDesc* desc)
</span><span class="cx"> {
</span><del>-    desc-&gt;min.setWidth(Length(0, Fixed));
-    desc-&gt;min.setHeight(Length(0, Fixed));
</del><ins>+    desc-&gt;min.width = { 0, Fixed };
+    desc-&gt;min.height = { 0, Fixed };
</ins><span class="cx"> 
</span><del>-    desc-&gt;max.setWidth(Length(0, Fixed));
-    desc-&gt;max.setHeight(Length(0, Fixed));
</del><ins>+    desc-&gt;max.width = { 0, Fixed };
+    desc-&gt;max.height = { 0, Fixed };
</ins><span class="cx"> 
</span><span class="cx">     desc-&gt;padding = LengthBox(0, 0, 0, 0);
</span><span class="cx"> }
</span><span class="lines">@@ -559,12 +565,12 @@
</span><span class="cx">     if (!minw &amp;&amp; !minh)
</span><span class="cx">         edje_object_size_min_calc(object, &amp;minw, &amp;minh);
</span><span class="cx"> 
</span><del>-    desc-&gt;min.setWidth(Length(minw, Fixed));
-    desc-&gt;min.setHeight(Length(minh, Fixed));
</del><ins>+    desc-&gt;min.width = { minw, Fixed };
+    desc-&gt;min.height = { minh, Fixed };
</ins><span class="cx"> 
</span><span class="cx">     edje_object_size_max_get(object, &amp;maxw, &amp;maxh);
</span><del>-    desc-&gt;max.setWidth(Length(maxw, Fixed));
-    desc-&gt;max.setHeight(Length(maxh, Fixed));
</del><ins>+    desc-&gt;max.width = { maxw, Fixed };
+    desc-&gt;max.height = { maxh, Fixed };
</ins><span class="cx"> 
</span><span class="cx">     if (!edje_object_part_exists(object, &quot;text_confinement&quot;))
</span><span class="cx">         desc-&gt;padding = LengthBox(0, 0, 0, 0);
</span><span class="lines">@@ -800,10 +806,14 @@
</span><span class="cx">     style.resetBorder();
</span><span class="cx"> 
</span><span class="cx">     const ThemePartDesc* desc = m_partDescs + (size_t)CheckBox;
</span><del>-    if (style.width().value() &lt; desc-&gt;min.width().value())
-        style.setWidth(desc-&gt;min.width());
-    if (style.height().value() &lt; desc-&gt;min.height().value())
-        style.setHeight(desc-&gt;min.height());
</del><ins>+    if (style.width().value() &lt; desc-&gt;min.width.value()) {
+        auto copy = desc-&gt;min.width;
+        style.setWidth(WTFMove(copy));
+    }
+    if (style.height().value() &lt; desc-&gt;min.height.value()) {
+        auto copy = desc-&gt;min.height;
+        style.setHeight(WTFMove(copy));
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderThemeEfl::paintCheckbox(const RenderObject&amp; object, const PaintInfo&amp; info, const IntRect&amp; rect)
</span><span class="lines">@@ -823,10 +833,14 @@
</span><span class="cx">     style.resetBorder();
</span><span class="cx"> 
</span><span class="cx">     const ThemePartDesc* desc = m_partDescs + (size_t)RadioButton;
</span><del>-    if (style.width().value() &lt; desc-&gt;min.width().value())
-        style.setWidth(desc-&gt;min.width());
-    if (style.height().value() &lt; desc-&gt;min.height().value())
-        style.setHeight(desc-&gt;min.height());
</del><ins>+    if (style.width().value() &lt; desc-&gt;min.width.value()) {
+        auto copy = desc-&gt;min.width;
+        style.setWidth(WTFMove(copy));
+    }
+    if (style.height().value() &lt; desc-&gt;min.height.value()) {
+        auto copy = desc-&gt;min.height;
+        style.setHeight(WTFMove(copy));
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderThemeEfl::paintRadio(const RenderObject&amp; object, const PaintInfo&amp; info, const IntRect&amp; rect)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeGtk.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeGtk.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderThemeGtk.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2014,10 +2014,10 @@
</span><span class="cx"> static FloatRoundedRect::Radii borderRadiiFromStyle(const RenderStyle&amp; style)
</span><span class="cx"> {
</span><span class="cx">     return FloatRoundedRect::Radii(
</span><del>-        IntSize(style.borderTopLeftRadius().width().intValue(), style.borderTopLeftRadius().height().intValue()),
-        IntSize(style.borderTopRightRadius().width().intValue(), style.borderTopRightRadius().height().intValue()),
-        IntSize(style.borderBottomLeftRadius().width().intValue(), style.borderBottomLeftRadius().height().intValue()),
-        IntSize(style.borderBottomRightRadius().width().intValue(), style.borderBottomRightRadius().height().intValue()));
</del><ins>+        IntSize(style.borderTopLeftRadius().width.intValue(), style.borderTopLeftRadius().height.intValue()),
+        IntSize(style.borderTopRightRadius().width.intValue(), style.borderTopRightRadius().height.intValue()),
+        IntSize(style.borderBottomLeftRadius().width.intValue(), style.borderBottomLeftRadius().height.intValue()),
+        IntSize(style.borderBottomRightRadius().width.intValue(), style.borderBottomRightRadius().height.intValue()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderThemeGtk::paintMediaSliderTrack(const RenderObject&amp; o, const PaintInfo&amp; paintInfo, const IntRect&amp; r)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -357,10 +357,9 @@
</span><span class="cx">     if (!style.width().isIntrinsicOrAuto() &amp;&amp; !style.height().isAuto())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Length length = Length(static_cast&lt;int&gt;(ceilf(std::max(style.fontSize(), 10))), Fixed);
-    
-    style.setWidth(length);
-    style.setHeight(length);
</del><ins>+    int size = std::max(style.fontSize(), 10);
+    style.setWidth({ size, Fixed });
+    style.setHeight({ size, Fixed });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static CGPoint shortened(CGPoint start, CGPoint end, float width)
</span><span class="lines">@@ -448,10 +447,10 @@
</span><span class="cx"> {
</span><span class="cx">     // Buttons and MenulistButtons are styled if they contain a background image.
</span><span class="cx">     if (style.appearance() == PushButtonPart || style.appearance() == MenulistButtonPart)
</span><del>-        return !style.visitedDependentColor(CSSPropertyBackgroundColor).alpha() || style.backgroundLayers()-&gt;hasImage();
</del><ins>+        return !style.visitedDependentColor(CSSPropertyBackgroundColor).isVisible() || style.backgroundLayers().hasImage();
</ins><span class="cx"> 
</span><span class="cx">     if (style.appearance() == TextFieldPart || style.appearance() == TextAreaPart)
</span><del>-        return *style.backgroundLayers() != background;
</del><ins>+        return style.backgroundLayers() != background;
</ins><span class="cx"> 
</span><span class="cx">     return RenderTheme::isControlStyled(style, border, background, backgroundColor);
</span><span class="cx"> }
</span><span class="lines">@@ -461,10 +460,10 @@
</span><span class="cx">     if (!style.width().isIntrinsicOrAuto() &amp;&amp; !style.height().isAuto())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Length length = Length(static_cast&lt;int&gt;(ceilf(std::max(style.fontSize(), 10))), Fixed);
-    style.setWidth(length);
-    style.setHeight(length);
-    style.setBorderRadius(IntSize(length.value() / 2.0f, length.value() / 2.0f));
</del><ins>+    int size = std::max(style.fontSize(), 10);
+    style.setWidth({ size, Fixed });
+    style.setHeight({ size, Fixed });
+    style.setBorderRadius({ size / 2, size / 2 });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderThemeIOS::paintRadioDecorations(const RenderObject&amp; box, const PaintInfo&amp; paintInfo, const IntRect&amp; rect)
</span><span class="lines">@@ -538,13 +537,11 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderThemeIOS::adjustRoundBorderRadius(RenderStyle&amp; style, RenderBox&amp; box)
</span><span class="cx"> {
</span><del>-    if (style.appearance() == NoControlPart || style.backgroundLayers()-&gt;hasImage())
</del><ins>+    if (style.appearance() == NoControlPart || style.backgroundLayers().hasImage())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    // FIXME: We should not be relying on border radius for the appearance of our controls &lt;rdar://problem/7675493&gt;
-    Length radiusWidth(static_cast&lt;int&gt;(std::min(box.width(), box.height()) / 2.0), Fixed);
-    Length radiusHeight(static_cast&lt;int&gt;(box.height() / 2.0), Fixed);
-    style.setBorderRadius(LengthSize(radiusWidth, radiusHeight));
</del><ins>+    // FIXME: We should not be relying on border radius for the appearance of our controls &lt;rdar://problem/7675493&gt;.
+    style.setBorderRadius({ { std::min(box.width(), box.height()) / 2, Fixed }, { box.height() / 2, Fixed } });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void applyCommonButtonPaddingToStyle(RenderStyle&amp; style, const Element&amp; element)
</span><span class="lines">@@ -655,11 +652,11 @@
</span><span class="cx">         FloatSize bottomRightRadius;
</span><span class="cx"> 
</span><span class="cx">         if (isRTL) {
</span><del>-            topRightRadius = FloatSize(valueForLength(style.borderTopRightRadius().width(), rect.width()) - style.borderRightWidth(), valueForLength(style.borderTopRightRadius().height(), rect.height()) - style.borderTopWidth());
-            bottomRightRadius = FloatSize(valueForLength(style.borderBottomRightRadius().width(), rect.width()) - style.borderRightWidth(), valueForLength(style.borderBottomRightRadius().height(), rect.height()) - style.borderBottomWidth());
</del><ins>+            topRightRadius = FloatSize(valueForLength(style.borderTopRightRadius().width, rect.width()) - style.borderRightWidth(), valueForLength(style.borderTopRightRadius().height, rect.height()) - style.borderTopWidth());
+            bottomRightRadius = FloatSize(valueForLength(style.borderBottomRightRadius().width, rect.width()) - style.borderRightWidth(), valueForLength(style.borderBottomRightRadius().height, rect.height()) - style.borderBottomWidth());
</ins><span class="cx">         } else {
</span><del>-            topLeftRadius = FloatSize(valueForLength(style.borderTopLeftRadius().width(), rect.width()) - style.borderLeftWidth(), valueForLength(style.borderTopLeftRadius().height(), rect.height()) - style.borderTopWidth());
-            bottomLeftRadius = FloatSize(valueForLength(style.borderBottomLeftRadius().width(), rect.width()) - style.borderLeftWidth(), valueForLength(style.borderBottomLeftRadius().height(), rect.height()) - style.borderBottomWidth());
</del><ins>+            topLeftRadius = FloatSize(valueForLength(style.borderTopLeftRadius().width, rect.width()) - style.borderLeftWidth(), valueForLength(style.borderTopLeftRadius().height, rect.height()) - style.borderTopWidth());
+            bottomLeftRadius = FloatSize(valueForLength(style.borderBottomLeftRadius().width, rect.width()) - style.borderLeftWidth(), valueForLength(style.borderBottomLeftRadius().height, rect.height()) - style.borderBottomWidth());
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         paintInfo.context().clipRoundedRect(FloatRoundedRect(titleClip,
</span><span class="lines">@@ -692,11 +689,11 @@
</span><span class="cx">         FloatSize bottomRightRadius;
</span><span class="cx"> 
</span><span class="cx">         if (isRTL) {
</span><del>-            topLeftRadius = FloatSize(valueForLength(style.borderTopLeftRadius().width(), rect.width()) - style.borderLeftWidth(), valueForLength(style.borderTopLeftRadius().height(), rect.height()) - style.borderTopWidth());
-            bottomLeftRadius = FloatSize(valueForLength(style.borderBottomLeftRadius().width(), rect.width()) - style.borderLeftWidth(), valueForLength(style.borderBottomLeftRadius().height(), rect.height()) - style.borderBottomWidth());
</del><ins>+            topLeftRadius = FloatSize(valueForLength(style.borderTopLeftRadius().width, rect.width()) - style.borderLeftWidth(), valueForLength(style.borderTopLeftRadius().height, rect.height()) - style.borderTopWidth());
+            bottomLeftRadius = FloatSize(valueForLength(style.borderBottomLeftRadius().width, rect.width()) - style.borderLeftWidth(), valueForLength(style.borderBottomLeftRadius().height, rect.height()) - style.borderBottomWidth());
</ins><span class="cx">         } else {
</span><del>-            topRightRadius = FloatSize(valueForLength(style.borderTopRightRadius().width(), rect.width()) - style.borderRightWidth(), valueForLength(style.borderTopRightRadius().height(), rect.height()) - style.borderTopWidth());
-            bottomRightRadius = FloatSize(valueForLength(style.borderBottomRightRadius().width(), rect.width()) - style.borderRightWidth(), valueForLength(style.borderBottomRightRadius().height(), rect.height()) - style.borderBottomWidth());
</del><ins>+            topRightRadius = FloatSize(valueForLength(style.borderTopRightRadius().width, rect.width()) - style.borderRightWidth(), valueForLength(style.borderTopRightRadius().height, rect.height()) - style.borderTopWidth());
+            bottomRightRadius = FloatSize(valueForLength(style.borderBottomRightRadius().width, rect.width()) - style.borderRightWidth(), valueForLength(style.borderBottomRightRadius().height, rect.height()) - style.borderBottomWidth());
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         paintInfo.context().clipRoundedRect(FloatRoundedRect(buttonClip,
</span><span class="lines">@@ -758,10 +755,9 @@
</span><span class="cx"> {
</span><span class="cx">     RenderTheme::adjustSliderTrackStyle(selector, style, element);
</span><span class="cx"> 
</span><del>-    // FIXME: We should not be relying on border radius for the appearance of our controls &lt;rdar://problem/7675493&gt;
-    Length radiusWidth(static_cast&lt;int&gt;(kTrackRadius), Fixed);
-    Length radiusHeight(static_cast&lt;int&gt;(kTrackRadius), Fixed);
-    style.setBorderRadius(LengthSize(radiusWidth, radiusHeight));
</del><ins>+    // FIXME: We should not be relying on border radius for the appearance of our controls &lt;rdar://problem/7675493&gt;.
+    int radius = static_cast&lt;int&gt;(kTrackRadius);
+    style.setBorderRadius({ { radius, Fixed }, { radius, Fixed } });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderThemeIOS::paintSliderTrack(const RenderObject&amp; box, const PaintInfo&amp; paintInfo, const IntRect&amp; rect)
</span><span class="lines">@@ -848,14 +844,12 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Enforce &quot;border-radius: 50%&quot;.
</span><del>-    Length length(50.0f, Percent);
-    style.setBorderRadius(LengthSize(length, length));
</del><ins>+    style.setBorderRadius({ { 50, Percent }, { 50, Percent } });
</ins><span class="cx"> 
</span><span class="cx">     // Enforce a 16x16 size if no size is provided.
</span><span class="cx">     if (style.width().isIntrinsicOrAuto() || style.height().isAuto()) {
</span><del>-        Length length = Length(kDefaultSliderThumbSize, Fixed);
-        style.setWidth(length);
-        style.setHeight(length);
</del><ins>+        style.setWidth({ kDefaultSliderThumbSize, Fixed });
+        style.setHeight({ kDefaultSliderThumbSize, Fixed });
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderWidgetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderWidget.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderWidget.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderWidget.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -52,16 +52,14 @@
</span><span class="cx"> 
</span><span class="cx"> void WidgetHierarchyUpdatesSuspensionScope::moveWidgets()
</span><span class="cx"> {
</span><del>-    WidgetToParentMap map;
-    widgetNewParentMap().swap(map);
-    WidgetToParentMap::iterator end = map.end();
-    for (WidgetToParentMap::iterator it = map.begin(); it != end; ++it) {
-        Widget* child = it-&gt;key.get();
-        ScrollView* currentParent = child-&gt;parent();
-        FrameView* newParent = it-&gt;value;
</del><ins>+    auto map = WTFMove(widgetNewParentMap());
+    for (auto&amp; entry : map) {
+        auto&amp; child = *entry.key;
+        auto* currentParent = child.parent();
+        auto* newParent = entry.value;
</ins><span class="cx">         if (newParent != currentParent) {
</span><span class="cx">             if (currentParent)
</span><del>-                currentParent-&gt;removeChild(*child);
</del><ins>+                currentParent-&gt;removeChild(child);
</ins><span class="cx">             if (newParent)
</span><span class="cx">                 newParent-&gt;addChild(child);
</span><span class="cx">         }
</span><span class="lines">@@ -68,13 +66,13 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void moveWidgetToParentSoon(Widget* child, FrameView* parent)
</del><ins>+static void moveWidgetToParentSoon(Widget&amp; child, FrameView* parent)
</ins><span class="cx"> {
</span><span class="cx">     if (!WidgetHierarchyUpdatesSuspensionScope::isSuspended()) {
</span><span class="cx">         if (parent)
</span><span class="cx">             parent-&gt;addChild(child);
</span><span class="cx">         else
</span><del>-            child-&gt;removeFromParent();
</del><ins>+            child.removeFromParent();
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove(child, parent);
</span><span class="lines">@@ -167,7 +165,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (m_widget) {
</span><del>-        moveWidgetToParentSoon(m_widget.get(), 0);
</del><ins>+        moveWidgetToParentSoon(*m_widget, nullptr);
</ins><span class="cx">         view().frameView().willRemoveWidgetFromRenderTree(*m_widget);
</span><span class="cx">         widgetRendererMap().remove(m_widget.get());
</span><span class="cx">         m_widget = nullptr;
</span><span class="lines">@@ -193,7 +191,7 @@
</span><span class="cx">                 repaint();
</span><span class="cx">             }
</span><span class="cx">         }
</span><del>-        moveWidgetToParentSoon(m_widget.get(), &amp;view().frameView());
</del><ins>+        moveWidgetToParentSoon(*m_widget, &amp;view().frameView());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -338,9 +336,9 @@
</span><span class="cx">         m_widget-&gt;setIsSelected(isSelected());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RenderWidget* RenderWidget::find(const Widget* widget)
</del><ins>+RenderWidget* RenderWidget::find(const Widget&amp; widget)
</ins><span class="cx"> {
</span><del>-    return widgetRendererMap().get(widget);
</del><ins>+    return widgetRendererMap().get(&amp;widget);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderWidget::nodeAtPoint(const HitTestRequest&amp; request, HitTestResult&amp; result, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset, HitTestAction action)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderWidgeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderWidget.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderWidget.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/RenderWidget.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -44,14 +44,13 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     static bool isSuspended() { return s_widgetHierarchyUpdateSuspendCount; }
</span><del>-    static void scheduleWidgetToMove(Widget* widget, FrameView* frame) { widgetNewParentMap().set(widget, frame); }
</del><ins>+    static void scheduleWidgetToMove(Widget&amp; widget, FrameView* frame) { widgetNewParentMap().set(&amp;widget, frame); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    typedef HashMap&lt;RefPtr&lt;Widget&gt;, FrameView*&gt; WidgetToParentMap;
</del><ins>+    using WidgetToParentMap = HashMap&lt;RefPtr&lt;Widget&gt;, FrameView*&gt;;
</ins><span class="cx">     static WidgetToParentMap&amp; widgetNewParentMap();
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void moveWidgets();
</span><del>-
</del><span class="cx">     WEBCORE_EXPORT static unsigned s_widgetHierarchyUpdateSuspendCount;
</span><span class="cx"> };
</span><span class="cx">     
</span><span class="lines">@@ -64,7 +63,7 @@
</span><span class="cx">     Widget* widget() const { return m_widget.get(); }
</span><span class="cx">     WEBCORE_EXPORT void setWidget(RefPtr&lt;Widget&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    static RenderWidget* find(const Widget*);
</del><ins>+    static RenderWidget* find(const Widget&amp;);
</ins><span class="cx"> 
</span><span class="cx">     enum class ChildWidgetState { Valid, Destroyed };
</span><span class="cx">     ChildWidgetState updateWidgetPosition() WARN_UNUSED_RETURN;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingTextAutoSizingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/TextAutoSizing.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/TextAutoSizing.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/TextAutoSizing.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Resize the line height of the parent.
</span><span class="cx">         auto&amp; parentStyle = parentRenderer-&gt;style();
</span><del>-        Length lineHeightLength = parentStyle.specifiedLineHeight();
</del><ins>+        auto&amp; lineHeightLength = parentStyle.specifiedLineHeight();
</ins><span class="cx"> 
</span><span class="cx">         int specifiedLineHeight;
</span><span class="cx">         if (lineHeightLength.isPercent())
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx"> 
</span><span class="cx">         auto newParentStyle = cloneRenderStyleWithState(parentStyle);
</span><span class="cx">         newParentStyle.setLineHeight(Length(lineHeight, Fixed));
</span><del>-        newParentStyle.setSpecifiedLineHeight(lineHeightLength);
</del><ins>+        newParentStyle.setSpecifiedLineHeight(Length { lineHeightLength });
</ins><span class="cx">         newParentStyle.setFontDescription(fontDescription);
</span><span class="cx">         newParentStyle.fontCascade().update(&amp;node-&gt;document().fontSelector());
</span><span class="cx">         parentRenderer-&gt;setStyle(WTFMove(newParentStyle));
</span><span class="lines">@@ -188,12 +188,12 @@
</span><span class="cx">             parentRenderer = parentRenderer-&gt;parent();
</span><span class="cx"> 
</span><span class="cx">         auto&amp; parentStyle = parentRenderer-&gt;style();
</span><del>-        Length originalLineHeight = parentStyle.specifiedLineHeight();
</del><ins>+        auto&amp; originalLineHeight = parentStyle.specifiedLineHeight();
</ins><span class="cx">         if (originalLineHeight == parentStyle.lineHeight())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         auto newParentStyle = cloneRenderStyleWithState(parentStyle);
</span><del>-        newParentStyle.setLineHeight(originalLineHeight);
</del><ins>+        newParentStyle.setLineHeight(Length { originalLineHeight });
</ins><span class="cx">         newParentStyle.setFontDescription(fontDescription);
</span><span class="cx">         newParentStyle.fontCascade().update(&amp;node-&gt;document().fontSelector());
</span><span class="cx">         parentRenderer-&gt;setStyle(WTFMove(newParentStyle));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlMathMLStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/mathml/MathMLStyle.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -49,14 +49,11 @@
</span><span class="cx"> 
</span><span class="cx"> const MathMLStyle* MathMLStyle::getMathMLStyle(RenderObject* renderer)
</span><span class="cx"> {
</span><del>-    if (renderer) {
-        // FIXME: Should we make RenderMathMLTable derive from RenderMathMLBlock in order to simplify this?
-        if (is&lt;RenderMathMLTable&gt;(renderer))
-            return downcast&lt;RenderMathMLTable&gt;(renderer)-&gt;mathMLStyle();
-        if (is&lt;RenderMathMLBlock&gt;(renderer))
-            return downcast&lt;RenderMathMLBlock&gt;(renderer)-&gt;mathMLStyle();
-    }
-
</del><ins>+    // FIXME: Should we make RenderMathMLTable derive from RenderMathMLBlock in order to simplify this?
+    if (is&lt;RenderMathMLTable&gt;(renderer))
+        return &amp;downcast&lt;RenderMathMLTable&gt;(*renderer).mathMLStyle();
+    if (is&lt;RenderMathMLBlock&gt;(renderer))
+        return &amp;downcast&lt;RenderMathMLBlock&gt;(*renderer).mathMLStyle();
</ins><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -65,9 +62,9 @@
</span><span class="cx">     for (auto* child = renderer; child; child = child-&gt;nextInPreOrder(renderer)) {
</span><span class="cx">         // FIXME: Should we make RenderMathMLTable derive from RenderMathMLBlock in order to simplify this?
</span><span class="cx">         if (is&lt;RenderMathMLTable&gt;(child))
</span><del>-            downcast&lt;RenderMathMLTable&gt;(child)-&gt;mathMLStyle()-&gt;resolveMathMLStyle(child);
</del><ins>+            downcast&lt;RenderMathMLTable&gt;(*child).mathMLStyle().resolveMathMLStyle(child);
</ins><span class="cx">         else if (is&lt;RenderMathMLBlock&gt;(child))
</span><del>-            downcast&lt;RenderMathMLBlock&gt;(child)-&gt;mathMLStyle()-&gt;resolveMathMLStyle(child);
</del><ins>+            downcast&lt;RenderMathMLBlock&gt;(*child).mathMLStyle().resolveMathMLStyle(child);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     RenderMathMLBlock(Document&amp;, RenderStyle&amp;&amp;);
</span><span class="cx">     virtual ~RenderMathMLBlock();
</span><span class="cx"> 
</span><del>-    MathMLStyle* mathMLStyle() const { return const_cast&lt;MathMLStyle*&gt;(&amp;m_mathMLStyle.get()); }
</del><ins>+    MathMLStyle&amp; mathMLStyle() const { return m_mathMLStyle; }
</ins><span class="cx"> 
</span><span class="cx">     bool isChildAllowed(const RenderObject&amp;, const RenderStyle&amp;) const override;
</span><span class="cx"> 
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-    MathMLStyle* mathMLStyle() const { return const_cast&lt;MathMLStyle*&gt;(&amp;m_mathMLStyle.get()); }
</del><ins>+    MathMLStyle&amp; mathMLStyle() const { return m_mathMLStyle; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     bool isRenderMathMLTable() const final { return true; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLFractioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">     // We try and read constants to draw the fraction from the OpenType MATH and use fallback values otherwise.
</span><span class="cx">     const auto&amp; primaryFont = style().fontCascade().primaryFont();
</span><span class="cx">     const auto* mathData = style().fontCascade().primaryFont().mathData();
</span><del>-    bool display = mathMLStyle()-&gt;displayStyle();
</del><ins>+    bool display = mathMLStyle().displayStyle();
</ins><span class="cx">     if (mathData) {
</span><span class="cx">         parameters.numeratorGapMin = mathData-&gt;getMathConstant(primaryFont, display ? OpenTypeMathData::FractionNumDisplayStyleGapMin : OpenTypeMathData::FractionNumeratorGapMin);
</span><span class="cx">         parameters.denominatorGapMin = mathData-&gt;getMathConstant(primaryFont, display ? OpenTypeMathData::FractionDenomDisplayStyleGapMin : OpenTypeMathData::FractionDenominatorGapMin);
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx">     // We try and read constants to draw the stack from the OpenType MATH and use fallback values otherwise.
</span><span class="cx">     const auto&amp; primaryFont = style().fontCascade().primaryFont();
</span><span class="cx">     const auto* mathData = style().fontCascade().primaryFont().mathData();
</span><del>-    bool display = mathMLStyle()-&gt;displayStyle();
</del><ins>+    bool display = mathMLStyle().displayStyle();
</ins><span class="cx">     if (mathData) {
</span><span class="cx">         parameters.gapMin = mathData-&gt;getMathConstant(primaryFont, display ? OpenTypeMathData::StackDisplayStyleGapMin : OpenTypeMathData::StackGapMin);
</span><span class="cx">         parameters.topShiftUp = mathData-&gt;getMathConstant(primaryFont, display ? OpenTypeMathData::StackTopDisplayStyleShiftUp : OpenTypeMathData::StackTopShiftUp);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -48,8 +48,8 @@
</span><span class="cx">     void resetStretchSize();
</span><span class="cx"> 
</span><span class="cx">     virtual bool hasOperatorFlag(MathMLOperatorDictionary::Flag) const;
</span><del>-    bool isLargeOperatorInDisplayStyle() const { return !hasOperatorFlag(MathMLOperatorDictionary::Stretchy) &amp;&amp; hasOperatorFlag(MathMLOperatorDictionary::LargeOp) &amp;&amp; mathMLStyle()-&gt;displayStyle(); }
-    bool shouldMoveLimits() const { return hasOperatorFlag(MathMLOperatorDictionary::MovableLimits) &amp;&amp; !mathMLStyle()-&gt;displayStyle(); }
</del><ins>+    bool isLargeOperatorInDisplayStyle() const { return !hasOperatorFlag(MathMLOperatorDictionary::Stretchy) &amp;&amp; hasOperatorFlag(MathMLOperatorDictionary::LargeOp) &amp;&amp; mathMLStyle().displayStyle(); }
+    bool shouldMoveLimits() const { return hasOperatorFlag(MathMLOperatorDictionary::MovableLimits) &amp;&amp; !mathMLStyle().displayStyle(); }
</ins><span class="cx">     virtual bool isVertical() const;
</span><span class="cx">     LayoutUnit italicCorrection() const { return m_mathOperator.italicCorrection(); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx">     const auto&amp; primaryFont = style().fontCascade().primaryFont();
</span><span class="cx">     if (auto* mathData = style().fontCascade().primaryFont().mathData()) {
</span><span class="cx">         parameters.ruleThickness = mathData-&gt;getMathConstant(primaryFont, OpenTypeMathData::RadicalRuleThickness);
</span><del>-        parameters.verticalGap = mathData-&gt;getMathConstant(primaryFont, mathMLStyle()-&gt;displayStyle() ? OpenTypeMathData::RadicalDisplayStyleVerticalGap : OpenTypeMathData::RadicalVerticalGap);
</del><ins>+        parameters.verticalGap = mathData-&gt;getMathConstant(primaryFont, mathMLStyle().displayStyle() ? OpenTypeMathData::RadicalDisplayStyleVerticalGap : OpenTypeMathData::RadicalVerticalGap);
</ins><span class="cx">         parameters.extraAscender = mathData-&gt;getMathConstant(primaryFont, OpenTypeMathData::RadicalExtraAscender);
</span><span class="cx">         if (m_kind == RootWithIndex)
</span><span class="cx">             parameters.degreeBottomRaisePercent = mathData-&gt;getMathConstant(primaryFont, OpenTypeMathData::RadicalDegreeBottomRaisePercent);
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx">         // RadicalExtraAscender: Suggested value is RadicalRuleThickness.
</span><span class="cx">         // RadicalDegreeBottomRaisePercent: Suggested value is 60%.
</span><span class="cx">         parameters.ruleThickness = ruleThicknessFallback();
</span><del>-        if (mathMLStyle()-&gt;displayStyle())
</del><ins>+        if (mathMLStyle().displayStyle())
</ins><span class="cx">             parameters.verticalGap = parameters.ruleThickness + style().fontMetrics().xHeight() / 4;
</span><span class="cx">         else
</span><span class="cx">             parameters.verticalGap = 5 * parameters.ruleThickness / 4;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLTokencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -528,7 +528,7 @@
</span><span class="cx"> 
</span><span class="cx">     const auto&amp; tokenElement = element();
</span><span class="cx">     if (auto codePoint = MathMLTokenElement::convertToSingleCodePoint(element().textContent())) {
</span><del>-        MathMLElement::MathVariant mathvariant = mathMLStyle()-&gt;mathVariant();
</del><ins>+        MathMLElement::MathVariant mathvariant = mathMLStyle().mathVariant();
</ins><span class="cx">         if (mathvariant == MathMLElement::MathVariant::None)
</span><span class="cx">             mathvariant = tokenElement.hasTagName(MathMLNames::miTag) ? MathMLElement::MathVariant::Italic : MathMLElement::MathVariant::Normal;
</span><span class="cx">         UChar32 transformedCodePoint = mathVariant(codePoint.value(), mathvariant);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleBasicShapescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/BasicShapes.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/BasicShapes.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/BasicShapes.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -387,8 +387,8 @@
</span><span class="cx"> 
</span><span class="cx"> static FloatSize floatSizeForLengthSize(const LengthSize&amp; lengthSize, const FloatRect&amp; boundingBox)
</span><span class="cx"> {
</span><del>-    return FloatSize(floatValueForLength(lengthSize.width(), boundingBox.width()),
-        floatValueForLength(lengthSize.height(), boundingBox.height()));
</del><ins>+    return { floatValueForLength(lengthSize.width, boundingBox.width()),
+        floatValueForLength(lengthSize.height, boundingBox.height()) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Path&amp; BasicShapeInset::path(const FloatRect&amp; boundingBox)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleBorderDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/BorderData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/BorderData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/BorderData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -34,10 +34,11 @@
</span><span class="cx"> class BorderData {
</span><span class="cx"> friend class RenderStyle;
</span><span class="cx"> public:
</span><del>-    BorderData() : m_topLeft(Length(0, Fixed), Length(0, Fixed))
-                 , m_topRight(Length(0, Fixed), Length(0, Fixed))
-                 , m_bottomLeft(Length(0, Fixed), Length(0, Fixed))
-                 , m_bottomRight(Length(0, Fixed), Length(0, Fixed))
</del><ins>+    BorderData()
+        : m_topLeft { { 0, Fixed }, { 0, Fixed } }
+        , m_topRight { { 0, Fixed }, { 0, Fixed } }
+        , m_bottomLeft { { 0, Fixed }, { 0, Fixed } }
+        , m_bottomRight { { 0, Fixed }, { 0, Fixed } }
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx">     bool hasBorder() const
</span><span class="lines">@@ -59,15 +60,10 @@
</span><span class="cx">     
</span><span class="cx">     bool hasBorderRadius() const
</span><span class="cx">     {
</span><del>-        if (!m_topLeft.width().isZero())
-            return true;
-        if (!m_topRight.width().isZero())
-            return true;
-        if (!m_bottomLeft.width().isZero())
-            return true;
-        if (!m_bottomRight.width().isZero())
-            return true;
-        return false;
</del><ins>+        return !m_topLeft.width.isZero()
+            || !m_topRight.width.isZero()
+            || !m_bottomLeft.width.isZero()
+            || !m_bottomRight.width.isZero();
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     float borderLeftWidth() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleContentDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/ContentData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/ContentData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/ContentData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -38,8 +38,7 @@
</span><span class="cx">     auto result = cloneInternal();
</span><span class="cx">     auto* lastNewData = result.get();
</span><span class="cx">     for (auto* contentData = next(); contentData; contentData = contentData-&gt;next()) {
</span><del>-        auto newData = contentData-&gt;cloneInternal();
-        lastNewData-&gt;setNext(WTFMove(newData));
</del><ins>+        lastNewData-&gt;setNext(contentData-&gt;cloneInternal());
</ins><span class="cx">         lastNewData = lastNewData-&gt;next();
</span><span class="cx">     }
</span><span class="cx">     return result;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleContentDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/ContentData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/ContentData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/ContentData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     RenderPtr&lt;RenderObject&gt; createContentRenderer(Document&amp;, const RenderStyle&amp;) const final;
</span><del>-    std::unique_ptr&lt;ContentData&gt; cloneInternal() const final { return std::make_unique&lt;TextContentData&gt;(text()); }
</del><ins>+    std::unique_ptr&lt;ContentData&gt; cloneInternal() const final { return std::make_unique&lt;TextContentData&gt;(m_text); }
</ins><span class="cx"> 
</span><span class="cx">     String m_text;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleDataRefh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/DataRef.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/DataRef.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/DataRef.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,8 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
- *           (C) 2000 Antti Koivisto (koivisto@kde.org)
- *           (C) 2000 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2003, 2005, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -29,30 +26,65 @@
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename T&gt; class DataRef {
</span><span class="cx"> public:
</span><del>-    DataRef(Ref&lt;T&gt;&amp;&amp; data) : m_data(WTFMove(data)) { }
-    DataRef(const DataRef&amp; other) : m_data(const_cast&lt;T&amp;&gt;(other.m_data.get())) { }
-    DataRef&amp; operator=(const DataRef&amp; other) { m_data = const_cast&lt;T&amp;&gt;(other.m_data.get()); return *this; }
</del><ins>+    DataRef(Ref&lt;T&gt;&amp;&amp; data)
+        : m_data(WTFMove(data))
+    {
+    }
</ins><span class="cx"> 
</span><del>-    const T* get() const { return m_data.ptr(); }
</del><ins>+    DataRef(const DataRef&amp; other)
+        : m_data(other.m_data.copyRef())
+    {
+    }
</ins><span class="cx"> 
</span><del>-    const T&amp; operator*() const { return *get(); }
-    const T* operator-&gt;() const { return get(); }
</del><ins>+    DataRef&amp; operator=(const DataRef&amp; other)
+    {
+        m_data = other.m_data.copyRef();
+        return *this;
+    }
</ins><span class="cx"> 
</span><del>-    T* access()
</del><ins>+    DataRef(DataRef&amp;&amp;) = default;
+    DataRef&amp; operator=(DataRef&amp;&amp;) = default;
+
+    DataRef replace(DataRef&amp;&amp; other)
</ins><span class="cx">     {
</span><ins>+        return m_data.replace(WTFMove(other.m_data));
+    }
+
+    operator const T&amp;() const
+    {
+        return m_data;
+    }
+
+    const T&amp; get() const
+    {
+        return m_data;
+    }
+
+    const T&amp; operator*() const
+    {
+        return m_data;
+    }
+
+    const T* operator-&gt;() const
+    {
+        return m_data.ptr();
+    }
+
+    T&amp; access()
+    {
</ins><span class="cx">         if (!m_data-&gt;hasOneRef())
</span><span class="cx">             m_data = m_data-&gt;copy();
</span><del>-        return m_data.ptr();
</del><ins>+        return m_data;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool operator==(const DataRef&lt;T&gt;&amp; o) const
</del><ins>+    bool operator==(const DataRef&amp; other) const
</ins><span class="cx">     {
</span><del>-        return m_data.ptr() == o.m_data.ptr() || m_data.get() == o.m_data.get();
</del><ins>+        return m_data.ptr() == other.m_data.ptr() || m_data.get() == other.m_data.get();
</ins><span class="cx">     }
</span><del>-    
-    bool operator!=(const DataRef&lt;T&gt;&amp; o) const
</del><ins>+
+    bool operator!=(const DataRef&amp; other) const
</ins><span class="cx">     {
</span><del>-        return m_data.ptr() != o.m_data.ptr() &amp;&amp; m_data.get() != o.m_data.get();
</del><ins>+        return !(*this == other);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleKeyframeListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/KeyframeList.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/KeyframeList.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/KeyframeList.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> TimingFunction* KeyframeValue::timingFunction(const AtomicString&amp; name) const
</span><span class="cx"> {
</span><del>-    const RenderStyle* keyframeStyle = style();
</del><ins>+    auto* keyframeStyle = style();
</ins><span class="cx">     if (!keyframeStyle || !keyframeStyle-&gt;animations())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx">     for (size_t i = 0; i &lt; keyframeStyle-&gt;animations()-&gt;size(); ++i) {
</span><span class="cx">         const Animation&amp; animation = keyframeStyle-&gt;animations()-&gt;animation(i);
</span><span class="cx">         if (name == animation.name())
</span><del>-            return animation.timingFunction().get();
</del><ins>+            return animation.timingFunction();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return nullptr;
</span><span class="lines">@@ -44,7 +44,6 @@
</span><span class="cx"> 
</span><span class="cx"> KeyframeList::~KeyframeList()
</span><span class="cx"> {
</span><del>-    clear();
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void KeyframeList::clear()
</span><span class="lines">@@ -58,15 +57,12 @@
</span><span class="cx">     if (m_keyframes.size() != o.m_keyframes.size())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Vector&lt;KeyframeValue&gt;::const_iterator it2 = o.m_keyframes.begin();
-    for (Vector&lt;KeyframeValue&gt;::const_iterator it1 = m_keyframes.begin(); it1 != m_keyframes.end(); ++it1) {
</del><ins>+    auto it2 = o.m_keyframes.begin();
+    for (auto it1 = m_keyframes.begin(); it1 != m_keyframes.end(); ++it1, ++it2) {
</ins><span class="cx">         if (it1-&gt;key() != it2-&gt;key())
</span><span class="cx">             return false;
</span><del>-        const RenderStyle&amp; style1 = *it1-&gt;style();
-        const RenderStyle&amp; style2 = *it2-&gt;style();
-        if (style1 != style2)
</del><ins>+        if (*it1-&gt;style() != *it2-&gt;style())
</ins><span class="cx">             return false;
</span><del>-        ++it2;
</del><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleNinePieceImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/NinePieceImage.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/NinePieceImage.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/NinePieceImage.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -60,20 +60,22 @@
</span><span class="cx"> 
</span><span class="cx"> LayoutBoxExtent NinePieceImage::computeSlices(const LayoutSize&amp; size, const LengthBox&amp; lengths, int scaleFactor)
</span><span class="cx"> {
</span><del>-    LayoutUnit top    = std::min&lt;LayoutUnit&gt;(size.height(), valueForLength(lengths.top(),    size.height())) * scaleFactor;
-    LayoutUnit right  = std::min&lt;LayoutUnit&gt;(size.width(),  valueForLength(lengths.right(),  size.width()))  * scaleFactor;
-    LayoutUnit bottom = std::min&lt;LayoutUnit&gt;(size.height(), valueForLength(lengths.bottom(), size.height())) * scaleFactor;
-    LayoutUnit left   = std::min&lt;LayoutUnit&gt;(size.width(),  valueForLength(lengths.left(),   size.width()))  * scaleFactor;
-    return LayoutBoxExtent(top, right, bottom, left);
</del><ins>+    return {
+        std::min(size.height(), valueForLength(lengths.top(), size.height())) * scaleFactor,
+        std::min(size.width(), valueForLength(lengths.right(), size.width()))  * scaleFactor,
+        std::min(size.height(), valueForLength(lengths.bottom(), size.height())) * scaleFactor,
+        std::min(size.width(), valueForLength(lengths.left(), size.width()))  * scaleFactor
+    };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> LayoutBoxExtent NinePieceImage::computeSlices(const LayoutSize&amp; size, const LengthBox&amp; lengths, const FloatBoxExtent&amp; widths, const LayoutBoxExtent&amp; slices)
</span><span class="cx"> {
</span><del>-    LayoutUnit top    = computeSlice(lengths.top(),    widths.top(),    slices.top(),    size.height());
-    LayoutUnit right  = computeSlice(lengths.right(),  widths.right(),  slices.right(),  size.width());
-    LayoutUnit bottom = computeSlice(lengths.bottom(), widths.bottom(), slices.bottom(), size.height());
-    LayoutUnit left   = computeSlice(lengths.left(),   widths.left(),   slices.left(),   size.width());
-    return LayoutBoxExtent(top, right, bottom, left);
</del><ins>+    return {
+        computeSlice(lengths.top(), widths.top(), slices.top(), size.height()),
+        computeSlice(lengths.right(), widths.right(), slices.right(), size.width()),
+        computeSlice(lengths.bottom(), widths.bottom(), slices.bottom(), size.height()),
+        computeSlice(lengths.left(), widths.left(), slices.left(), size.width())
+    };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NinePieceImage::scaleSlicesIfNeeded(const LayoutSize&amp; size, LayoutBoxExtent&amp; slices, float deviceScaleFactor)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleNinePieceImageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/NinePieceImage.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/NinePieceImage.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/NinePieceImage.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -108,53 +108,53 @@
</span><span class="cx"> 
</span><span class="cx">     bool hasImage() const { return m_data-&gt;image; }
</span><span class="cx">     StyleImage* image() const { return m_data-&gt;image.get(); }
</span><del>-    void setImage(RefPtr&lt;StyleImage&gt;&amp;&amp; image) { m_data.access()-&gt;image = WTFMove(image); }
</del><ins>+    void setImage(RefPtr&lt;StyleImage&gt;&amp;&amp; image) { m_data.access().image = WTFMove(image); }
</ins><span class="cx"> 
</span><span class="cx">     const LengthBox&amp; imageSlices() const { return m_data-&gt;imageSlices; }
</span><del>-    void setImageSlices(LengthBox slices) { m_data.access()-&gt;imageSlices = WTFMove(slices); }
</del><ins>+    void setImageSlices(LengthBox slices) { m_data.access().imageSlices = WTFMove(slices); }
</ins><span class="cx"> 
</span><span class="cx">     bool fill() const { return m_data-&gt;fill; }
</span><del>-    void setFill(bool fill) { m_data.access()-&gt;fill = fill; }
</del><ins>+    void setFill(bool fill) { m_data.access().fill = fill; }
</ins><span class="cx"> 
</span><span class="cx">     const LengthBox&amp; borderSlices() const { return m_data-&gt;borderSlices; }
</span><del>-    void setBorderSlices(LengthBox slices) { m_data.access()-&gt;borderSlices = WTFMove(slices); }
</del><ins>+    void setBorderSlices(LengthBox slices) { m_data.access().borderSlices = WTFMove(slices); }
</ins><span class="cx"> 
</span><span class="cx">     const LengthBox&amp; outset() const { return m_data-&gt;outset; }
</span><del>-    void setOutset(LengthBox outset) { m_data.access()-&gt;outset = WTFMove(outset); }
</del><ins>+    void setOutset(LengthBox outset) { m_data.access().outset = WTFMove(outset); }
</ins><span class="cx"> 
</span><span class="cx">     ENinePieceImageRule horizontalRule() const { return static_cast&lt;ENinePieceImageRule&gt;(m_data-&gt;horizontalRule); }
</span><del>-    void setHorizontalRule(ENinePieceImageRule rule) { m_data.access()-&gt;horizontalRule = rule; }
</del><ins>+    void setHorizontalRule(ENinePieceImageRule rule) { m_data.access().horizontalRule = rule; }
</ins><span class="cx">     
</span><span class="cx">     ENinePieceImageRule verticalRule() const { return static_cast&lt;ENinePieceImageRule&gt;(m_data-&gt;verticalRule); }
</span><del>-    void setVerticalRule(ENinePieceImageRule rule) { m_data.access()-&gt;verticalRule = rule; }
</del><ins>+    void setVerticalRule(ENinePieceImageRule rule) { m_data.access().verticalRule = rule; }
</ins><span class="cx"> 
</span><span class="cx">     void copyImageSlicesFrom(const NinePieceImage&amp; other)
</span><span class="cx">     {
</span><del>-        m_data.access()-&gt;imageSlices = other.m_data-&gt;imageSlices;
-        m_data.access()-&gt;fill = other.m_data-&gt;fill;
</del><ins>+        m_data.access().imageSlices = other.m_data-&gt;imageSlices;
+        m_data.access().fill = other.m_data-&gt;fill;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void copyBorderSlicesFrom(const NinePieceImage&amp; other)
</span><span class="cx">     {
</span><del>-        m_data.access()-&gt;borderSlices = other.m_data-&gt;borderSlices;
</del><ins>+        m_data.access().borderSlices = other.m_data-&gt;borderSlices;
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     void copyOutsetFrom(const NinePieceImage&amp; other)
</span><span class="cx">     {
</span><del>-        m_data.access()-&gt;outset = other.m_data-&gt;outset;
</del><ins>+        m_data.access().outset = other.m_data-&gt;outset;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void copyRepeatFrom(const NinePieceImage&amp; other)
</span><span class="cx">     {
</span><del>-        m_data.access()-&gt;horizontalRule = other.m_data-&gt;horizontalRule;
-        m_data.access()-&gt;verticalRule = other.m_data-&gt;verticalRule;
</del><ins>+        m_data.access().horizontalRule = other.m_data-&gt;horizontalRule;
+        m_data.access().verticalRule = other.m_data-&gt;verticalRule;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void setMaskDefaults()
</span><span class="cx">     {
</span><del>-        m_data.access()-&gt;imageSlices = LengthBox(0);
-        m_data.access()-&gt;fill = true;
-        m_data.access()-&gt;borderSlices = LengthBox();
</del><ins>+        m_data.access().imageSlices = LengthBox(0);
+        m_data.access().fill = true;
+        m_data.access().borderSlices = LengthBox();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     static LayoutUnit computeOutset(const Length&amp; outsetSide, LayoutUnit borderSide)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004-2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -71,11 +71,11 @@
</span><span class="cx">     void* dataRefSvgStyle;
</span><span class="cx">     struct InheritedFlags {
</span><span class="cx">         unsigned m_bitfields[2];
</span><del>-    } inherited_flags;
</del><ins>+    } m_inheritedFlags;
</ins><span class="cx"> 
</span><span class="cx">     struct NonInheritedFlags {
</span><span class="cx">         uint64_t m_flags;
</span><del>-    } noninherited_flags;
</del><ins>+    } m_nonInheritedFlags;
</ins><span class="cx"> #if !ASSERT_DISABLED || ENABLE(SECURITY_ASSERTIONS)
</span><span class="cx">     bool deletionCheck;
</span><span class="cx"> #endif
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx"> RenderStyle&amp; RenderStyle::defaultStyle()
</span><span class="cx"> {
</span><del>-    static RenderStyle&amp; style = *new RenderStyle(CreateDefaultStyle);
</del><ins>+    static NeverDestroyed&lt;RenderStyle&gt; style { CreateDefaultStyle };
</ins><span class="cx">     return style;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -128,56 +128,71 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RenderStyle::RenderStyle(CreateDefaultStyleTag)
</span><del>-    : m_box(StyleBoxData::create())
-    , visual(StyleVisualData::create())
-    , m_background(StyleBackgroundData::create())
-    , surround(StyleSurroundData::create())
-    , rareNonInheritedData(StyleRareNonInheritedData::create())
-    , rareInheritedData(StyleRareInheritedData::create())
-    , inherited(StyleInheritedData::create())
</del><ins>+    : m_boxData(StyleBoxData::create())
+    , m_visualData(StyleVisualData::create())
+    , m_backgroundData(StyleBackgroundData::create())
+    , m_surroundData(StyleSurroundData::create())
+    , m_rareNonInheritedData(StyleRareNonInheritedData::create())
+    , m_rareInheritedData(StyleRareInheritedData::create())
+    , m_inheritedData(StyleInheritedData::create())
</ins><span class="cx">     , m_svgStyle(SVGRenderStyle::create())
</span><span class="cx"> {
</span><del>-    inherited_flags._empty_cells = initialEmptyCells();
-    inherited_flags._caption_side = initialCaptionSide();
-    inherited_flags._list_style_type = initialListStyleType();
-    inherited_flags._list_style_position = initialListStylePosition();
-    inherited_flags._visibility = initialVisibility();
-    inherited_flags._text_align = initialTextAlign();
-    inherited_flags._text_transform = initialTextTransform();
-    inherited_flags._text_decorations = initialTextDecoration();
-    inherited_flags._cursor_style = initialCursor();
</del><ins>+    m_inheritedFlags.emptyCells = initialEmptyCells();
+    m_inheritedFlags.captionSide = initialCaptionSide();
+    m_inheritedFlags.listStyleType = initialListStyleType();
+    m_inheritedFlags.listStylePosition = initialListStylePosition();
+    m_inheritedFlags.visibility = initialVisibility();
+    m_inheritedFlags.textAlign = initialTextAlign();
+    m_inheritedFlags.textTransform = initialTextTransform();
+    m_inheritedFlags.textDecorations = initialTextDecoration();
+    m_inheritedFlags.cursor = initialCursor();
</ins><span class="cx"> #if ENABLE(CURSOR_VISIBILITY)
</span><del>-    inherited_flags.m_cursorVisibility = initialCursorVisibility();
</del><ins>+    m_inheritedFlags.cursorVisibility = initialCursorVisibility();
</ins><span class="cx"> #endif
</span><del>-    inherited_flags._direction = initialDirection();
-    inherited_flags._white_space = initialWhiteSpace();
-    inherited_flags._border_collapse = initialBorderCollapse();
-    inherited_flags.m_rtlOrdering = initialRTLOrdering();
-    inherited_flags._box_direction = initialBoxDirection();
-    inherited_flags.m_printColorAdjust = initialPrintColorAdjust();
-    inherited_flags._pointerEvents = initialPointerEvents();
-    inherited_flags._insideLink = NotInsideLink;
-    inherited_flags._insideDefaultButton = false;
-    inherited_flags.m_writingMode = initialWritingMode();
</del><ins>+    m_inheritedFlags.direction = initialDirection();
+    m_inheritedFlags.whiteSpace = initialWhiteSpace();
+    m_inheritedFlags.borderCollapse = initialBorderCollapse();
+    m_inheritedFlags.rtlOrdering = initialRTLOrdering();
+    m_inheritedFlags.boxDirection = initialBoxDirection();
+    m_inheritedFlags.printColorAdjust = initialPrintColorAdjust();
+    m_inheritedFlags.pointerEvents = initialPointerEvents();
+    m_inheritedFlags.insideLink = NotInsideLink;
+    m_inheritedFlags.insideDefaultButton = false;
+    m_inheritedFlags.writingMode = initialWritingMode();
</ins><span class="cx"> 
</span><span class="cx">     static_assert((sizeof(InheritedFlags) &lt;= 8), &quot;InheritedFlags does not grow&quot;);
</span><span class="cx">     static_assert((sizeof(NonInheritedFlags) &lt;= 8), &quot;NonInheritedFlags does not grow&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RenderStyle::RenderStyle(const RenderStyle&amp; other, CloneTag)
-    : m_box(other.m_box)
-    , visual(other.visual)
-    , m_background(other.m_background)
-    , surround(other.surround)
-    , rareNonInheritedData(other.rareNonInheritedData)
-    , rareInheritedData(other.rareInheritedData)
-    , inherited(other.inherited)
</del><ins>+inline RenderStyle::RenderStyle(const RenderStyle&amp; other, CloneTag)
+    : m_boxData(other.m_boxData)
+    , m_visualData(other.m_visualData)
+    , m_backgroundData(other.m_backgroundData)
+    , m_surroundData(other.m_surroundData)
+    , m_rareNonInheritedData(other.m_rareNonInheritedData)
+    , m_nonInheritedFlags(other.m_nonInheritedFlags)
+    , m_rareInheritedData(other.m_rareInheritedData)
+    , m_inheritedData(other.m_inheritedData)
+    , m_inheritedFlags(other.m_inheritedFlags)
</ins><span class="cx">     , m_svgStyle(other.m_svgStyle)
</span><del>-    , inherited_flags(other.inherited_flags)
-    , noninherited_flags(other.noninherited_flags)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline RenderStyle::RenderStyle(RenderStyle&amp; a, RenderStyle&amp;&amp; b)
+    : m_boxData(a.m_boxData.replace(WTFMove(b.m_boxData)))
+    , m_visualData(a.m_visualData.replace(WTFMove(b.m_visualData)))
+    , m_backgroundData(a.m_backgroundData.replace(WTFMove(b.m_backgroundData)))
+    , m_surroundData(a.m_surroundData.replace(WTFMove(b.m_surroundData)))
+    , m_rareNonInheritedData(a.m_rareNonInheritedData.replace(WTFMove(b.m_rareNonInheritedData)))
+    , m_nonInheritedFlags(std::exchange(a.m_nonInheritedFlags, b.m_nonInheritedFlags))
+    , m_rareInheritedData(a.m_rareInheritedData.replace(WTFMove(b.m_rareInheritedData)))
+    , m_inheritedData(a.m_inheritedData.replace(WTFMove(b.m_inheritedData)))
+    , m_inheritedFlags(std::exchange(a.m_inheritedFlags, b.m_inheritedFlags))
+    , m_cachedPseudoStyles(std::exchange(a.m_cachedPseudoStyles, WTFMove(b.m_cachedPseudoStyles)))
+    , m_svgStyle(a.m_svgStyle.replace(WTFMove(b.m_svgStyle)))
+{
+}
+
</ins><span class="cx"> RenderStyle::~RenderStyle()
</span><span class="cx"> {
</span><span class="cx"> #if !ASSERT_DISABLED || ENABLE(SECURITY_ASSERTIONS)
</span><span class="lines">@@ -186,6 +201,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+RenderStyle RenderStyle::replace(RenderStyle&amp;&amp; newStyle)
+{
+    return RenderStyle { *this, WTFMove(newStyle) };
+}
+
</ins><span class="cx"> bool RenderStyle::isCSSGridLayoutEnabled()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><span class="lines">@@ -212,7 +232,7 @@
</span><span class="cx"> {
</span><span class="cx">     // The auto keyword computes to the parent's align-items computed value.
</span><span class="cx">     // We will return the behaviour of 'normal' value if needed, which is specific of each layout model.
</span><del>-    if (alignSelfPosition() == ItemPositionAuto)
</del><ins>+    if (alignSelf().position() == ItemPositionAuto)
</ins><span class="cx">         return parentStyle.resolvedAlignItems(normalValueBehaviour);
</span><span class="cx">     return resolvedSelfAlignment(alignSelf(), normalValueBehaviour);
</span><span class="cx"> }
</span><span class="lines">@@ -222,9 +242,8 @@
</span><span class="cx">     // FIXME: justify-items 'auto' value is allowed only to provide the 'legacy' keyword's behavior, which it's still not implemented for layout.
</span><span class="cx">     // &quot;If the inherited value of justify-items includes the legacy keyword, auto computes to the inherited value.&quot;
</span><span class="cx">     // https://drafts.csswg.org/css-align/#justify-items-property
</span><del>-    if (justifyItemsPosition() == ItemPositionAuto)
</del><ins>+    if (justifyItems().position() == ItemPositionAuto)
</ins><span class="cx">         return { normalValueBehaviour, OverflowAlignmentDefault };
</span><del>-
</del><span class="cx">     return resolvedSelfAlignment(justifyItems(), normalValueBehaviour);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -232,7 +251,7 @@
</span><span class="cx"> {
</span><span class="cx">     // The auto keyword computes to the parent's justify-items computed value.
</span><span class="cx">     // We will return the behaviour of 'normal' value if needed, which is specific of each layout model.
</span><del>-    if (justifySelfPosition() == ItemPositionAuto)
</del><ins>+    if (justifySelf().position() == ItemPositionAuto)
</ins><span class="cx">         return parentStyle.resolvedJustifyItems(normalValueBehaviour);
</span><span class="cx">     return resolvedSelfAlignment(justifySelf(), normalValueBehaviour);
</span><span class="cx"> }
</span><span class="lines">@@ -269,43 +288,42 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::inheritFrom(const RenderStyle&amp; inheritParent)
</span><span class="cx"> {
</span><del>-    rareInheritedData = inheritParent.rareInheritedData;
-    inherited = inheritParent.inherited;
-    inherited_flags = inheritParent.inherited_flags;
</del><ins>+    m_rareInheritedData = inheritParent.m_rareInheritedData;
+    m_inheritedData = inheritParent.m_inheritedData;
+    m_inheritedFlags = inheritParent.m_inheritedFlags;
</ins><span class="cx"> 
</span><span class="cx">     if (m_svgStyle != inheritParent.m_svgStyle)
</span><del>-        m_svgStyle.access()-&gt;inheritFrom(inheritParent.m_svgStyle.get());
</del><ins>+        m_svgStyle.access().inheritFrom(inheritParent.m_svgStyle.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::copyNonInheritedFrom(const RenderStyle* other)
</del><ins>+void RenderStyle::copyNonInheritedFrom(const RenderStyle&amp; other)
</ins><span class="cx"> {
</span><del>-    m_box = other-&gt;m_box;
-    visual = other-&gt;visual;
-    m_background = other-&gt;m_background;
-    surround = other-&gt;surround;
-    rareNonInheritedData = other-&gt;rareNonInheritedData;
-    noninherited_flags.copyNonInheritedFrom(other-&gt;noninherited_flags);
</del><ins>+    m_boxData = other.m_boxData;
+    m_visualData = other.m_visualData;
+    m_backgroundData = other.m_backgroundData;
+    m_surroundData = other.m_surroundData;
+    m_rareNonInheritedData = other.m_rareNonInheritedData;
+    m_nonInheritedFlags.copyNonInheritedFrom(other.m_nonInheritedFlags);
</ins><span class="cx"> 
</span><del>-    if (m_svgStyle != other-&gt;m_svgStyle)
-        m_svgStyle.access()-&gt;copyNonInheritedFrom(other-&gt;m_svgStyle.get());
</del><ins>+    if (m_svgStyle != other.m_svgStyle)
+        m_svgStyle.access().copyNonInheritedFrom(other.m_svgStyle.get());
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(zoom() == initialZoom());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool RenderStyle::operator==(const RenderStyle&amp; o) const
</del><ins>+bool RenderStyle::operator==(const RenderStyle&amp; other) const
</ins><span class="cx"> {
</span><span class="cx">     // compare everything except the pseudoStyle pointer
</span><del>-    return inherited_flags == o.inherited_flags
-        &amp;&amp; noninherited_flags == o.noninherited_flags
-        &amp;&amp; m_box == o.m_box
-        &amp;&amp; visual == o.visual
-        &amp;&amp; m_background == o.m_background
-        &amp;&amp; surround == o.surround
-        &amp;&amp; rareNonInheritedData == o.rareNonInheritedData
-        &amp;&amp; rareInheritedData == o.rareInheritedData
-        &amp;&amp; inherited == o.inherited
-        &amp;&amp; m_svgStyle == o.m_svgStyle
-            ;
</del><ins>+    return m_inheritedFlags == other.m_inheritedFlags
+        &amp;&amp; m_nonInheritedFlags == other.m_nonInheritedFlags
+        &amp;&amp; m_boxData == other.m_boxData
+        &amp;&amp; m_visualData == other.m_visualData
+        &amp;&amp; m_backgroundData == other.m_backgroundData
+        &amp;&amp; m_surroundData == other.m_surroundData
+        &amp;&amp; m_rareNonInheritedData == other.m_rareNonInheritedData
+        &amp;&amp; m_rareInheritedData == other.m_rareInheritedData
+        &amp;&amp; m_inheritedData == other.m_inheritedData
+        &amp;&amp; m_svgStyle == other.m_svgStyle;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::hasUniquePseudoStyle() const
</span><span class="lines">@@ -313,8 +331,7 @@
</span><span class="cx">     if (!m_cachedPseudoStyles || styleType() != NOPSEUDO)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    for (size_t i = 0; i &lt; m_cachedPseudoStyles-&gt;size(); ++i) {
-        RenderStyle* pseudoStyle = m_cachedPseudoStyles-&gt;at(i).get();
</del><ins>+    for (auto&amp; pseudoStyle : *m_cachedPseudoStyles) {
</ins><span class="cx">         if (pseudoStyle-&gt;unique())
</span><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="lines">@@ -330,10 +347,9 @@
</span><span class="cx">     if (styleType() != NOPSEUDO) 
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    for (size_t i = 0; i &lt; m_cachedPseudoStyles-&gt;size(); ++i) {
-        RenderStyle* pseudoStyle = m_cachedPseudoStyles-&gt;at(i).get();
</del><ins>+    for (auto&amp; pseudoStyle : *m_cachedPseudoStyles) {
</ins><span class="cx">         if (pseudoStyle-&gt;styleType() == pid)
</span><del>-            return pseudoStyle;
</del><ins>+            return pseudoStyle.get();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return nullptr;
</span><span class="lines">@@ -371,10 +387,10 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::inheritedNotEqual(const RenderStyle* other) const
</span><span class="cx"> {
</span><del>-    return inherited_flags != other-&gt;inherited_flags
-           || inherited != other-&gt;inherited
-           || m_svgStyle-&gt;inheritedNotEqual(other-&gt;m_svgStyle.get())
-           || rareInheritedData != other-&gt;rareInheritedData;
</del><ins>+    return m_inheritedFlags != other-&gt;m_inheritedFlags
+        || m_inheritedData != other-&gt;m_inheritedData
+        || m_svgStyle-&gt;inheritedNotEqual(other-&gt;m_svgStyle)
+        || m_rareInheritedData != other-&gt;m_rareInheritedData;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="lines">@@ -390,46 +406,46 @@
</span><span class="cx"> unsigned RenderStyle::hashForTextAutosizing() const
</span><span class="cx"> {
</span><span class="cx">     // FIXME: Not a very smart hash. Could be improved upon. See &lt;https://bugs.webkit.org/show_bug.cgi?id=121131&gt;.
</span><del>-    unsigned hash = rareNonInheritedData-&gt;m_appearance;
-    hash ^= rareNonInheritedData-&gt;marginBeforeCollapse;
-    hash ^= rareNonInheritedData-&gt;marginAfterCollapse;
-    hash ^= rareNonInheritedData-&gt;lineClamp.value();
-    hash ^= rareInheritedData-&gt;overflowWrap;
-    hash ^= rareInheritedData-&gt;nbspMode;
-    hash ^= rareInheritedData-&gt;lineBreak;
-    hash ^= WTF::FloatHash&lt;float&gt;::hash(inherited-&gt;specifiedLineHeight.value());
-    hash ^= computeFontHash(inherited-&gt;fontCascade);
-    hash ^= WTF::FloatHash&lt;float&gt;::hash(inherited-&gt;horizontal_border_spacing);
-    hash ^= WTF::FloatHash&lt;float&gt;::hash(inherited-&gt;vertical_border_spacing);
-    hash ^= inherited_flags._box_direction;
-    hash ^= inherited_flags.m_rtlOrdering;
-    hash ^= noninherited_flags.position();
-    hash ^= noninherited_flags.floating();
-    hash ^= rareNonInheritedData-&gt;textOverflow;
-    hash ^= rareInheritedData-&gt;textSecurity;
</del><ins>+    unsigned hash = m_rareNonInheritedData-&gt;appearance;
+    hash ^= m_rareNonInheritedData-&gt;marginBeforeCollapse;
+    hash ^= m_rareNonInheritedData-&gt;marginAfterCollapse;
+    hash ^= m_rareNonInheritedData-&gt;lineClamp.value();
+    hash ^= m_rareInheritedData-&gt;overflowWrap;
+    hash ^= m_rareInheritedData-&gt;nbspMode;
+    hash ^= m_rareInheritedData-&gt;lineBreak;
+    hash ^= WTF::FloatHash&lt;float&gt;::hash(m_inheritedData-&gt;specifiedLineHeight.value());
+    hash ^= computeFontHash(m_inheritedData-&gt;fontCascade);
+    hash ^= WTF::FloatHash&lt;float&gt;::hash(m_inheritedData-&gt;horizontalBorderSpacing);
+    hash ^= WTF::FloatHash&lt;float&gt;::hash(m_inheritedData-&gt;verticalBorderSpacing);
+    hash ^= m_inheritedFlags.boxDirection;
+    hash ^= m_inheritedFlags.rtlOrdering;
+    hash ^= m_nonInheritedFlags.position();
+    hash ^= m_nonInheritedFlags.floating();
+    hash ^= m_rareNonInheritedData-&gt;textOverflow;
+    hash ^= m_rareInheritedData-&gt;textSecurity;
</ins><span class="cx">     return hash;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::equalForTextAutosizing(const RenderStyle&amp; other) const
</span><span class="cx"> {
</span><del>-    return rareNonInheritedData-&gt;m_appearance == other.rareNonInheritedData-&gt;m_appearance
-        &amp;&amp; rareNonInheritedData-&gt;marginBeforeCollapse == other.rareNonInheritedData-&gt;marginBeforeCollapse
-        &amp;&amp; rareNonInheritedData-&gt;marginAfterCollapse == other.rareNonInheritedData-&gt;marginAfterCollapse
-        &amp;&amp; rareNonInheritedData-&gt;lineClamp == other.rareNonInheritedData-&gt;lineClamp
-        &amp;&amp; rareInheritedData-&gt;textSizeAdjust == other.rareInheritedData-&gt;textSizeAdjust
-        &amp;&amp; rareInheritedData-&gt;overflowWrap == other.rareInheritedData-&gt;overflowWrap
-        &amp;&amp; rareInheritedData-&gt;nbspMode == other.rareInheritedData-&gt;nbspMode
-        &amp;&amp; rareInheritedData-&gt;lineBreak == other.rareInheritedData-&gt;lineBreak
-        &amp;&amp; rareInheritedData-&gt;textSecurity == other.rareInheritedData-&gt;textSecurity
-        &amp;&amp; inherited-&gt;specifiedLineHeight == other.inherited-&gt;specifiedLineHeight
-        &amp;&amp; inherited-&gt;fontCascade.equalForTextAutoSizing(other.inherited-&gt;fontCascade)
-        &amp;&amp; inherited-&gt;horizontal_border_spacing == other.inherited-&gt;horizontal_border_spacing
-        &amp;&amp; inherited-&gt;vertical_border_spacing == other.inherited-&gt;vertical_border_spacing
-        &amp;&amp; inherited_flags._box_direction == other.inherited_flags._box_direction
-        &amp;&amp; inherited_flags.m_rtlOrdering == other.inherited_flags.m_rtlOrdering
-        &amp;&amp; noninherited_flags.position() == other.noninherited_flags.position()
-        &amp;&amp; noninherited_flags.floating() == other.noninherited_flags.floating()
-        &amp;&amp; rareNonInheritedData-&gt;textOverflow == other.rareNonInheritedData-&gt;textOverflow;
</del><ins>+    return m_rareNonInheritedData-&gt;appearance == other.m_rareNonInheritedData-&gt;appearance
+        &amp;&amp; m_rareNonInheritedData-&gt;marginBeforeCollapse == other.m_rareNonInheritedData-&gt;marginBeforeCollapse
+        &amp;&amp; m_rareNonInheritedData-&gt;marginAfterCollapse == other.m_rareNonInheritedData-&gt;marginAfterCollapse
+        &amp;&amp; m_rareNonInheritedData-&gt;lineClamp == other.m_rareNonInheritedData-&gt;lineClamp
+        &amp;&amp; m_rareInheritedData-&gt;textSizeAdjust == other.m_rareInheritedData-&gt;textSizeAdjust
+        &amp;&amp; m_rareInheritedData-&gt;overflowWrap == other.m_rareInheritedData-&gt;overflowWrap
+        &amp;&amp; m_rareInheritedData-&gt;nbspMode == other.m_rareInheritedData-&gt;nbspMode
+        &amp;&amp; m_rareInheritedData-&gt;lineBreak == other.m_rareInheritedData-&gt;lineBreak
+        &amp;&amp; m_rareInheritedData-&gt;textSecurity == other.m_rareInheritedData-&gt;textSecurity
+        &amp;&amp; m_inheritedData-&gt;specifiedLineHeight == other.m_inheritedData-&gt;specifiedLineHeight
+        &amp;&amp; m_inheritedData-&gt;fontCascade.equalForTextAutoSizing(other.m_inheritedData-&gt;fontCascade)
+        &amp;&amp; m_inheritedData-&gt;horizontalBorderSpacing == other.m_inheritedData-&gt;horizontalBorderSpacing
+        &amp;&amp; m_inheritedData-&gt;verticalBorderSpacing == other.m_inheritedData-&gt;verticalBorderSpacing
+        &amp;&amp; m_inheritedFlags.boxDirection == other.m_inheritedFlags.boxDirection
+        &amp;&amp; m_inheritedFlags.rtlOrdering == other.m_inheritedFlags.rtlOrdering
+        &amp;&amp; m_nonInheritedFlags.position() == other.m_nonInheritedFlags.position()
+        &amp;&amp; m_nonInheritedFlags.floating() == other.m_nonInheritedFlags.floating()
+        &amp;&amp; m_rareNonInheritedData-&gt;textOverflow == other.m_rareNonInheritedData-&gt;textOverflow;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(TEXT_AUTOSIZING)
</span><span class="lines">@@ -437,10 +453,10 @@
</span><span class="cx"> bool RenderStyle::inheritedDataShared(const RenderStyle* other) const
</span><span class="cx"> {
</span><span class="cx">     // This is a fast check that only looks if the data structures are shared.
</span><del>-    return inherited_flags == other-&gt;inherited_flags
-        &amp;&amp; inherited.get() == other-&gt;inherited.get()
</del><ins>+    return m_inheritedFlags == other-&gt;m_inheritedFlags
+        &amp;&amp; m_inheritedData.get() == other-&gt;m_inheritedData.get()
</ins><span class="cx">         &amp;&amp; m_svgStyle.get() == other-&gt;m_svgStyle.get()
</span><del>-        &amp;&amp; rareInheritedData.get() == other-&gt;rareInheritedData.get();
</del><ins>+        &amp;&amp; m_rareInheritedData.get() == other-&gt;m_rareInheritedData.get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool positionChangeIsMovementOnly(const LengthBox&amp; a, const LengthBox&amp; b, const Length&amp; width)
</span><span class="lines">@@ -472,17 +488,17 @@
</span><span class="cx"> 
</span><span class="cx"> inline bool RenderStyle::changeAffectsVisualOverflow(const RenderStyle&amp; other) const
</span><span class="cx"> {
</span><del>-    if (rareNonInheritedData.get() != other.rareNonInheritedData.get()
-        &amp;&amp; !arePointingToEqualData(rareNonInheritedData-&gt;m_boxShadow, other.rareNonInheritedData-&gt;m_boxShadow))
</del><ins>+    if (m_rareNonInheritedData.get() != other.m_rareNonInheritedData.get()
+        &amp;&amp; !arePointingToEqualData(m_rareNonInheritedData-&gt;boxShadow, other.m_rareNonInheritedData-&gt;boxShadow))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (rareInheritedData.get() != other.rareInheritedData.get()
-        &amp;&amp; !arePointingToEqualData(rareInheritedData-&gt;textShadow, other.rareInheritedData-&gt;textShadow))
</del><ins>+    if (m_rareInheritedData.get() != other.m_rareInheritedData.get()
+        &amp;&amp; !arePointingToEqualData(m_rareInheritedData-&gt;textShadow, other.m_rareInheritedData-&gt;textShadow))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (inherited_flags._text_decorations != other.inherited_flags._text_decorations
-        || visual-&gt;textDecoration != other.visual-&gt;textDecoration
-        || rareNonInheritedData-&gt;m_textDecorationStyle != other.rareNonInheritedData-&gt;m_textDecorationStyle) {
</del><ins>+    if (m_inheritedFlags.textDecorations != other.m_inheritedFlags.textDecorations
+        || m_visualData-&gt;textDecoration != other.m_visualData-&gt;textDecoration
+        || m_rareNonInheritedData-&gt;textDecorationStyle != other.m_rareNonInheritedData-&gt;textDecorationStyle) {
</ins><span class="cx">         // Underlines are always drawn outside of their textbox bounds when text-underline-position: under;
</span><span class="cx">         // is specified. We can take an early out here.
</span><span class="cx">         if (textUnderlinePosition() == TextUnderlinePositionUnder
</span><span class="lines">@@ -498,24 +514,24 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::changeRequiresLayout(const RenderStyle&amp; other, unsigned&amp; changedContextSensitiveProperties) const
</span><span class="cx"> {
</span><del>-    if (m_box-&gt;width() != other.m_box-&gt;width()
-        || m_box-&gt;minWidth() != other.m_box-&gt;minWidth()
-        || m_box-&gt;maxWidth() != other.m_box-&gt;maxWidth()
-        || m_box-&gt;height() != other.m_box-&gt;height()
-        || m_box-&gt;minHeight() != other.m_box-&gt;minHeight()
-        || m_box-&gt;maxHeight() != other.m_box-&gt;maxHeight())
</del><ins>+    if (m_boxData-&gt;width() != other.m_boxData-&gt;width()
+        || m_boxData-&gt;minWidth() != other.m_boxData-&gt;minWidth()
+        || m_boxData-&gt;maxWidth() != other.m_boxData-&gt;maxWidth()
+        || m_boxData-&gt;height() != other.m_boxData-&gt;height()
+        || m_boxData-&gt;minHeight() != other.m_boxData-&gt;minHeight()
+        || m_boxData-&gt;maxHeight() != other.m_boxData-&gt;maxHeight())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (m_box-&gt;verticalAlign() != other.m_box-&gt;verticalAlign() || noninherited_flags.verticalAlign() != other.noninherited_flags.verticalAlign())
</del><ins>+    if (m_boxData-&gt;verticalAlign() != other.m_boxData-&gt;verticalAlign() || m_nonInheritedFlags.verticalAlign() != other.m_nonInheritedFlags.verticalAlign())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (m_box-&gt;boxSizing() != other.m_box-&gt;boxSizing())
</del><ins>+    if (m_boxData-&gt;boxSizing() != other.m_boxData-&gt;boxSizing())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (surround-&gt;margin != other.surround-&gt;margin)
</del><ins>+    if (m_surroundData-&gt;margin != other.m_surroundData-&gt;margin)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (surround-&gt;padding != other.surround-&gt;padding)
</del><ins>+    if (m_surroundData-&gt;padding != other.m_surroundData-&gt;padding)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: We should add an optimized form of layout that just recomputes visual overflow.
</span><span class="lines">@@ -522,46 +538,46 @@
</span><span class="cx">     if (changeAffectsVisualOverflow(other))
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) {
-        if (rareNonInheritedData-&gt;m_appearance != other.rareNonInheritedData-&gt;m_appearance
-            || rareNonInheritedData-&gt;marginBeforeCollapse != other.rareNonInheritedData-&gt;marginBeforeCollapse
-            || rareNonInheritedData-&gt;marginAfterCollapse != other.rareNonInheritedData-&gt;marginAfterCollapse
-            || rareNonInheritedData-&gt;lineClamp != other.rareNonInheritedData-&gt;lineClamp
-            || rareNonInheritedData-&gt;m_initialLetter != other.rareNonInheritedData-&gt;m_initialLetter
-            || rareNonInheritedData-&gt;textOverflow != other.rareNonInheritedData-&gt;textOverflow)
</del><ins>+    if (m_rareNonInheritedData.get() != other.m_rareNonInheritedData.get()) {
+        if (m_rareNonInheritedData-&gt;appearance != other.m_rareNonInheritedData-&gt;appearance
+            || m_rareNonInheritedData-&gt;marginBeforeCollapse != other.m_rareNonInheritedData-&gt;marginBeforeCollapse
+            || m_rareNonInheritedData-&gt;marginAfterCollapse != other.m_rareNonInheritedData-&gt;marginAfterCollapse
+            || m_rareNonInheritedData-&gt;lineClamp != other.m_rareNonInheritedData-&gt;lineClamp
+            || m_rareNonInheritedData-&gt;initialLetter != other.m_rareNonInheritedData-&gt;initialLetter
+            || m_rareNonInheritedData-&gt;textOverflow != other.m_rareNonInheritedData-&gt;textOverflow)
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (rareNonInheritedData-&gt;m_regionFragment != other.rareNonInheritedData-&gt;m_regionFragment)
</del><ins>+        if (m_rareNonInheritedData-&gt;regionFragment != other.m_rareNonInheritedData-&gt;regionFragment)
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (rareNonInheritedData-&gt;m_shapeMargin != other.rareNonInheritedData-&gt;m_shapeMargin)
</del><ins>+        if (m_rareNonInheritedData-&gt;shapeMargin != other.m_rareNonInheritedData-&gt;shapeMargin)
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (rareNonInheritedData-&gt;m_deprecatedFlexibleBox != other.rareNonInheritedData-&gt;m_deprecatedFlexibleBox)
</del><ins>+        if (m_rareNonInheritedData-&gt;deprecatedFlexibleBox != other.m_rareNonInheritedData-&gt;deprecatedFlexibleBox)
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (rareNonInheritedData-&gt;m_flexibleBox != other.rareNonInheritedData-&gt;m_flexibleBox)
</del><ins>+        if (m_rareNonInheritedData-&gt;flexibleBox != other.m_rareNonInheritedData-&gt;flexibleBox)
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (rareNonInheritedData-&gt;m_order != other.rareNonInheritedData-&gt;m_order
-            || rareNonInheritedData-&gt;m_alignContent != other.rareNonInheritedData-&gt;m_alignContent
-            || rareNonInheritedData-&gt;m_alignItems != other.rareNonInheritedData-&gt;m_alignItems
-            || rareNonInheritedData-&gt;m_alignSelf != other.rareNonInheritedData-&gt;m_alignSelf
-            || rareNonInheritedData-&gt;m_justifyContent != other.rareNonInheritedData-&gt;m_justifyContent
-            || rareNonInheritedData-&gt;m_justifyItems != other.rareNonInheritedData-&gt;m_justifyItems
-            || rareNonInheritedData-&gt;m_justifySelf != other.rareNonInheritedData-&gt;m_justifySelf)
</del><ins>+        if (m_rareNonInheritedData-&gt;order != other.m_rareNonInheritedData-&gt;order
+            || m_rareNonInheritedData-&gt;alignContent != other.m_rareNonInheritedData-&gt;alignContent
+            || m_rareNonInheritedData-&gt;alignItems != other.m_rareNonInheritedData-&gt;alignItems
+            || m_rareNonInheritedData-&gt;alignSelf != other.m_rareNonInheritedData-&gt;alignSelf
+            || m_rareNonInheritedData-&gt;justifyContent != other.m_rareNonInheritedData-&gt;justifyContent
+            || m_rareNonInheritedData-&gt;justifyItems != other.m_rareNonInheritedData-&gt;justifyItems
+            || m_rareNonInheritedData-&gt;justifySelf != other.m_rareNonInheritedData-&gt;justifySelf)
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (!arePointingToEqualData(rareNonInheritedData-&gt;m_boxReflect, other.rareNonInheritedData-&gt;m_boxReflect))
</del><ins>+        if (!arePointingToEqualData(m_rareNonInheritedData-&gt;boxReflect, other.m_rareNonInheritedData-&gt;boxReflect))
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (rareNonInheritedData-&gt;m_multiCol != other.rareNonInheritedData-&gt;m_multiCol)
</del><ins>+        if (m_rareNonInheritedData-&gt;multiCol != other.m_rareNonInheritedData-&gt;multiCol)
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><del>-        if (rareNonInheritedData-&gt;m_transform != other.rareNonInheritedData-&gt;m_transform) {
-            if (rareNonInheritedData-&gt;m_transform-&gt;hasTransform() != other.rareNonInheritedData-&gt;m_transform-&gt;hasTransform())
</del><ins>+        if (m_rareNonInheritedData-&gt;transform != other.m_rareNonInheritedData-&gt;transform) {
+            if (m_rareNonInheritedData-&gt;transform-&gt;hasTransform() != other.m_rareNonInheritedData-&gt;transform-&gt;hasTransform())
</ins><span class="cx">                 return true;
</span><del>-            if (*rareNonInheritedData-&gt;m_transform != *other.rareNonInheritedData-&gt;m_transform) {
</del><ins>+            if (*m_rareNonInheritedData-&gt;transform != *other.m_rareNonInheritedData-&gt;transform) {
</ins><span class="cx">                 changedContextSensitiveProperties |= ContextSensitivePropertyTransform;
</span><span class="cx">                 // Don't return; keep looking for another change
</span><span class="cx">             }
</span><span class="lines">@@ -568,67 +584,67 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-        if (rareNonInheritedData-&gt;m_grid != other.rareNonInheritedData-&gt;m_grid
-            || rareNonInheritedData-&gt;m_gridItem != other.rareNonInheritedData-&gt;m_gridItem)
</del><ins>+        if (m_rareNonInheritedData-&gt;grid != other.m_rareNonInheritedData-&gt;grid
+            || m_rareNonInheritedData-&gt;gridItem != other.m_rareNonInheritedData-&gt;gridItem)
</ins><span class="cx">             return true;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx">         // If regions change, trigger a relayout to re-calc regions.
</span><del>-        if (rareNonInheritedData-&gt;m_dashboardRegions != other.rareNonInheritedData-&gt;m_dashboardRegions)
</del><ins>+        if (m_rareNonInheritedData-&gt;dashboardRegions != other.m_rareNonInheritedData-&gt;dashboardRegions)
</ins><span class="cx">             return true;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-        if (!arePointingToEqualData(rareNonInheritedData-&gt;m_willChange, other.rareNonInheritedData-&gt;m_willChange)) {
</del><ins>+        if (!arePointingToEqualData(m_rareNonInheritedData-&gt;willChange, other.m_rareNonInheritedData-&gt;willChange)) {
</ins><span class="cx">             changedContextSensitiveProperties |= ContextSensitivePropertyWillChange;
</span><span class="cx">             // Don't return; keep looking for another change
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (rareInheritedData.get() != other.rareInheritedData.get()) {
-        if (rareInheritedData-&gt;indent != other.rareInheritedData-&gt;indent
</del><ins>+    if (m_rareInheritedData.get() != other.m_rareInheritedData.get()) {
+        if (m_rareInheritedData-&gt;indent != other.m_rareInheritedData-&gt;indent
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-            || rareInheritedData-&gt;m_textAlignLast != other.rareInheritedData-&gt;m_textAlignLast
-            || rareInheritedData-&gt;m_textJustify != other.rareInheritedData-&gt;m_textJustify
-            || rareInheritedData-&gt;m_textIndentLine != other.rareInheritedData-&gt;m_textIndentLine
</del><ins>+            || m_rareInheritedData-&gt;textAlignLast != other.m_rareInheritedData-&gt;textAlignLast
+            || m_rareInheritedData-&gt;textJustify != other.m_rareInheritedData-&gt;textJustify
+            || m_rareInheritedData-&gt;textIndentLine != other.m_rareInheritedData-&gt;textIndentLine
</ins><span class="cx"> #endif
</span><del>-            || rareInheritedData-&gt;m_effectiveZoom != other.rareInheritedData-&gt;m_effectiveZoom
-            || rareInheritedData-&gt;m_textZoom != other.rareInheritedData-&gt;m_textZoom
</del><ins>+            || m_rareInheritedData-&gt;effectiveZoom != other.m_rareInheritedData-&gt;effectiveZoom
+            || m_rareInheritedData-&gt;textZoom != other.m_rareInheritedData-&gt;textZoom
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-            || rareInheritedData-&gt;textSizeAdjust != other.rareInheritedData-&gt;textSizeAdjust
</del><ins>+            || m_rareInheritedData-&gt;textSizeAdjust != other.m_rareInheritedData-&gt;textSizeAdjust
</ins><span class="cx"> #endif
</span><del>-            || rareInheritedData-&gt;wordBreak != other.rareInheritedData-&gt;wordBreak
-            || rareInheritedData-&gt;overflowWrap != other.rareInheritedData-&gt;overflowWrap
-            || rareInheritedData-&gt;nbspMode != other.rareInheritedData-&gt;nbspMode
-            || rareInheritedData-&gt;lineBreak != other.rareInheritedData-&gt;lineBreak
-            || rareInheritedData-&gt;textSecurity != other.rareInheritedData-&gt;textSecurity
-            || rareInheritedData-&gt;hyphens != other.rareInheritedData-&gt;hyphens
-            || rareInheritedData-&gt;hyphenationLimitBefore != other.rareInheritedData-&gt;hyphenationLimitBefore
-            || rareInheritedData-&gt;hyphenationLimitAfter != other.rareInheritedData-&gt;hyphenationLimitAfter
-            || rareInheritedData-&gt;hyphenationString != other.rareInheritedData-&gt;hyphenationString
-            || rareInheritedData-&gt;m_rubyPosition != other.rareInheritedData-&gt;m_rubyPosition
-            || rareInheritedData-&gt;textEmphasisMark != other.rareInheritedData-&gt;textEmphasisMark
-            || rareInheritedData-&gt;textEmphasisPosition != other.rareInheritedData-&gt;textEmphasisPosition
-            || rareInheritedData-&gt;textEmphasisCustomMark != other.rareInheritedData-&gt;textEmphasisCustomMark
-            || rareInheritedData-&gt;m_textOrientation != other.rareInheritedData-&gt;m_textOrientation
-            || rareInheritedData-&gt;m_tabSize != other.rareInheritedData-&gt;m_tabSize
-            || rareInheritedData-&gt;m_lineBoxContain != other.rareInheritedData-&gt;m_lineBoxContain
-            || rareInheritedData-&gt;m_lineGrid != other.rareInheritedData-&gt;m_lineGrid
</del><ins>+            || m_rareInheritedData-&gt;wordBreak != other.m_rareInheritedData-&gt;wordBreak
+            || m_rareInheritedData-&gt;overflowWrap != other.m_rareInheritedData-&gt;overflowWrap
+            || m_rareInheritedData-&gt;nbspMode != other.m_rareInheritedData-&gt;nbspMode
+            || m_rareInheritedData-&gt;lineBreak != other.m_rareInheritedData-&gt;lineBreak
+            || m_rareInheritedData-&gt;textSecurity != other.m_rareInheritedData-&gt;textSecurity
+            || m_rareInheritedData-&gt;hyphens != other.m_rareInheritedData-&gt;hyphens
+            || m_rareInheritedData-&gt;hyphenationLimitBefore != other.m_rareInheritedData-&gt;hyphenationLimitBefore
+            || m_rareInheritedData-&gt;hyphenationLimitAfter != other.m_rareInheritedData-&gt;hyphenationLimitAfter
+            || m_rareInheritedData-&gt;hyphenationString != other.m_rareInheritedData-&gt;hyphenationString
+            || m_rareInheritedData-&gt;rubyPosition != other.m_rareInheritedData-&gt;rubyPosition
+            || m_rareInheritedData-&gt;textEmphasisMark != other.m_rareInheritedData-&gt;textEmphasisMark
+            || m_rareInheritedData-&gt;textEmphasisPosition != other.m_rareInheritedData-&gt;textEmphasisPosition
+            || m_rareInheritedData-&gt;textEmphasisCustomMark != other.m_rareInheritedData-&gt;textEmphasisCustomMark
+            || m_rareInheritedData-&gt;textOrientation != other.m_rareInheritedData-&gt;textOrientation
+            || m_rareInheritedData-&gt;tabSize != other.m_rareInheritedData-&gt;tabSize
+            || m_rareInheritedData-&gt;lineBoxContain != other.m_rareInheritedData-&gt;lineBoxContain
+            || m_rareInheritedData-&gt;lineGrid != other.m_rareInheritedData-&gt;lineGrid
</ins><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><del>-            || rareInheritedData-&gt;m_imageOrientation != other.rareInheritedData-&gt;m_imageOrientation
</del><ins>+            || m_rareInheritedData-&gt;imageOrientation != other.m_rareInheritedData-&gt;imageOrientation
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-            || rareInheritedData-&gt;m_imageResolutionSource != other.rareInheritedData-&gt;m_imageResolutionSource
-            || rareInheritedData-&gt;m_imageResolutionSnap != other.rareInheritedData-&gt;m_imageResolutionSnap
-            || rareInheritedData-&gt;m_imageResolution != other.rareInheritedData-&gt;m_imageResolution
</del><ins>+            || m_rareInheritedData-&gt;imageResolutionSource != other.m_rareInheritedData-&gt;imageResolutionSource
+            || m_rareInheritedData-&gt;imageResolutionSnap != other.m_rareInheritedData-&gt;imageResolutionSnap
+            || m_rareInheritedData-&gt;imageResolution != other.m_rareInheritedData-&gt;imageResolution
</ins><span class="cx"> #endif
</span><del>-            || rareInheritedData-&gt;m_lineSnap != other.rareInheritedData-&gt;m_lineSnap
-            || rareInheritedData-&gt;m_lineAlign != other.rareInheritedData-&gt;m_lineAlign
-            || rareInheritedData-&gt;m_hangingPunctuation != other.rareInheritedData-&gt;m_hangingPunctuation
</del><ins>+            || m_rareInheritedData-&gt;lineSnap != other.m_rareInheritedData-&gt;lineSnap
+            || m_rareInheritedData-&gt;lineAlign != other.m_rareInheritedData-&gt;lineAlign
+            || m_rareInheritedData-&gt;hangingPunctuation != other.m_rareInheritedData-&gt;hangingPunctuation
</ins><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><del>-            || rareInheritedData-&gt;useTouchOverflowScrolling != other.rareInheritedData-&gt;useTouchOverflowScrolling
</del><ins>+            || m_rareInheritedData-&gt;useTouchOverflowScrolling != other.m_rareInheritedData-&gt;useTouchOverflowScrolling
</ins><span class="cx"> #endif
</span><del>-            || rareInheritedData-&gt;listStyleImage != other.rareInheritedData-&gt;listStyleImage) // FIXME: needs arePointingToEqualData()?
</del><ins>+            || m_rareInheritedData-&gt;listStyleImage != other.m_rareInheritedData-&gt;listStyleImage) // FIXME: needs arePointingToEqualData()?
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><span class="cx">         if (textStrokeWidth() != other.textStrokeWidth())
</span><span class="lines">@@ -635,31 +651,31 @@
</span><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (inherited-&gt;line_height != other.inherited-&gt;line_height
</del><ins>+    if (m_inheritedData-&gt;lineHeight != other.m_inheritedData-&gt;lineHeight
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-        || inherited-&gt;specifiedLineHeight != other.inherited-&gt;specifiedLineHeight
</del><ins>+        || m_inheritedData-&gt;specifiedLineHeight != other.m_inheritedData-&gt;specifiedLineHeight
</ins><span class="cx"> #endif
</span><del>-        || inherited-&gt;fontCascade != other.inherited-&gt;fontCascade
-        || inherited-&gt;horizontal_border_spacing != other.inherited-&gt;horizontal_border_spacing
-        || inherited-&gt;vertical_border_spacing != other.inherited-&gt;vertical_border_spacing
-        || inherited_flags._box_direction != other.inherited_flags._box_direction
-        || inherited_flags.m_rtlOrdering != other.inherited_flags.m_rtlOrdering
-        || noninherited_flags.position() != other.noninherited_flags.position()
-        || noninherited_flags.floating() != other.noninherited_flags.floating()
-        || noninherited_flags.originalDisplay() != other.noninherited_flags.originalDisplay())
</del><ins>+        || m_inheritedData-&gt;fontCascade != other.m_inheritedData-&gt;fontCascade
+        || m_inheritedData-&gt;horizontalBorderSpacing != other.m_inheritedData-&gt;horizontalBorderSpacing
+        || m_inheritedData-&gt;verticalBorderSpacing != other.m_inheritedData-&gt;verticalBorderSpacing
+        || m_inheritedFlags.boxDirection != other.m_inheritedFlags.boxDirection
+        || m_inheritedFlags.rtlOrdering != other.m_inheritedFlags.rtlOrdering
+        || m_nonInheritedFlags.position() != other.m_nonInheritedFlags.position()
+        || m_nonInheritedFlags.floating() != other.m_nonInheritedFlags.floating()
+        || m_nonInheritedFlags.originalDisplay() != other.m_nonInheritedFlags.originalDisplay())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-    if ((noninherited_flags.effectiveDisplay()) &gt;= TABLE) {
-        if (inherited_flags._border_collapse != other.inherited_flags._border_collapse
-            || inherited_flags._empty_cells != other.inherited_flags._empty_cells
-            || inherited_flags._caption_side != other.inherited_flags._caption_side
-            || noninherited_flags.tableLayout() != other.noninherited_flags.tableLayout())
</del><ins>+    if ((m_nonInheritedFlags.effectiveDisplay()) &gt;= TABLE) {
+        if (m_inheritedFlags.borderCollapse != other.m_inheritedFlags.borderCollapse
+            || m_inheritedFlags.emptyCells != other.m_inheritedFlags.emptyCells
+            || m_inheritedFlags.captionSide != other.m_inheritedFlags.captionSide
+            || m_nonInheritedFlags.tableLayout() != other.m_nonInheritedFlags.tableLayout())
</ins><span class="cx">             return true;
</span><span class="cx"> 
</span><span class="cx">         // In the collapsing border model, 'hidden' suppresses other borders, while 'none'
</span><span class="cx">         // does not, so these style differences can be width differences.
</span><del>-        if (inherited_flags._border_collapse
</del><ins>+        if (m_inheritedFlags.borderCollapse
</ins><span class="cx">             &amp;&amp; ((borderTopStyle() == BHIDDEN &amp;&amp; other.borderTopStyle() == BNONE)
</span><span class="cx">                 || (borderTopStyle() == BNONE &amp;&amp; other.borderTopStyle() == BHIDDEN)
</span><span class="cx">                 || (borderBottomStyle() == BHIDDEN &amp;&amp; other.borderBottomStyle() == BNONE)
</span><span class="lines">@@ -671,37 +687,37 @@
</span><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (noninherited_flags.effectiveDisplay() == LIST_ITEM) {
-        if (inherited_flags._list_style_type != other.inherited_flags._list_style_type
-            || inherited_flags._list_style_position != other.inherited_flags._list_style_position)
</del><ins>+    if (m_nonInheritedFlags.effectiveDisplay() == LIST_ITEM) {
+        if (m_inheritedFlags.listStyleType != other.m_inheritedFlags.listStyleType
+            || m_inheritedFlags.listStylePosition != other.m_inheritedFlags.listStylePosition)
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (inherited_flags._text_align != other.inherited_flags._text_align
-        || inherited_flags._text_transform != other.inherited_flags._text_transform
-        || inherited_flags._direction != other.inherited_flags._direction
-        || inherited_flags._white_space != other.inherited_flags._white_space
-        || noninherited_flags.clear() != other.noninherited_flags.clear()
-        || noninherited_flags.unicodeBidi() != other.noninherited_flags.unicodeBidi())
</del><ins>+    if (m_inheritedFlags.textAlign != other.m_inheritedFlags.textAlign
+        || m_inheritedFlags.textTransform != other.m_inheritedFlags.textTransform
+        || m_inheritedFlags.direction != other.m_inheritedFlags.direction
+        || m_inheritedFlags.whiteSpace != other.m_inheritedFlags.whiteSpace
+        || m_nonInheritedFlags.clear() != other.m_nonInheritedFlags.clear()
+        || m_nonInheritedFlags.unicodeBidi() != other.m_nonInheritedFlags.unicodeBidi())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Check block flow direction.
</span><del>-    if (inherited_flags.m_writingMode != other.inherited_flags.m_writingMode)
</del><ins>+    if (m_inheritedFlags.writingMode != other.m_inheritedFlags.writingMode)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Check text combine mode.
</span><del>-    if (rareNonInheritedData-&gt;m_textCombine != other.rareNonInheritedData-&gt;m_textCombine)
</del><ins>+    if (m_rareNonInheritedData-&gt;textCombine != other.m_rareNonInheritedData-&gt;textCombine)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Check breaks.
</span><del>-    if (rareNonInheritedData-&gt;m_breakBefore != other.rareNonInheritedData-&gt;m_breakBefore
-        || rareNonInheritedData-&gt;m_breakAfter != other.rareNonInheritedData-&gt;m_breakAfter
-        || rareNonInheritedData-&gt;m_breakInside != other.rareNonInheritedData-&gt;m_breakInside)
</del><ins>+    if (m_rareNonInheritedData-&gt;breakBefore != other.m_rareNonInheritedData-&gt;breakBefore
+        || m_rareNonInheritedData-&gt;breakAfter != other.m_rareNonInheritedData-&gt;breakAfter
+        || m_rareNonInheritedData-&gt;breakInside != other.m_rareNonInheritedData-&gt;breakInside)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Overflow returns a layout hint.
</span><del>-    if (noninherited_flags.overflowX() != other.noninherited_flags.overflowX()
-        || noninherited_flags.overflowY() != other.noninherited_flags.overflowY())
</del><ins>+    if (m_nonInheritedFlags.overflowX() != other.m_nonInheritedFlags.overflowX()
+        || m_nonInheritedFlags.overflowY() != other.m_nonInheritedFlags.overflowY())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // If our border widths change, then we need to layout.  Other changes to borders
</span><span class="lines">@@ -713,13 +729,13 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // If the counter directives change, trigger a relayout to re-calculate counter values and rebuild the counter node tree.
</span><del>-    if (!arePointingToEqualData(rareNonInheritedData-&gt;m_counterDirectives, other.rareNonInheritedData-&gt;m_counterDirectives))
</del><ins>+    if (!arePointingToEqualData(m_rareNonInheritedData-&gt;counterDirectives, other.m_rareNonInheritedData-&gt;counterDirectives))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     if ((visibility() == COLLAPSE) != (other.visibility() == COLLAPSE))
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (rareNonInheritedData-&gt;hasOpacity() != other.rareNonInheritedData-&gt;hasOpacity()) {
</del><ins>+    if (m_rareNonInheritedData-&gt;hasOpacity() != other.m_rareNonInheritedData-&gt;hasOpacity()) {
</ins><span class="cx">         // FIXME: We would like to use SimplifiedLayout here, but we can't quite do that yet.
</span><span class="cx">         // We need to make sure SimplifiedLayout can operate correctly on RenderInlines (we will need
</span><span class="cx">         // to add a selfNeedsSimplifiedLayout bit in order to not get confused and taint every line).
</span><span class="lines">@@ -728,19 +744,19 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (rareNonInheritedData-&gt;hasFilters() != other.rareNonInheritedData-&gt;hasFilters())
</del><ins>+    if (m_rareNonInheritedData-&gt;hasFilters() != other.m_rareNonInheritedData-&gt;hasFilters())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-    if (rareNonInheritedData-&gt;hasBackdropFilters() != other.rareNonInheritedData-&gt;hasBackdropFilters())
</del><ins>+    if (m_rareNonInheritedData-&gt;hasBackdropFilters() != other.m_rareNonInheritedData-&gt;hasBackdropFilters())
</ins><span class="cx">         return true;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (!arePointingToEqualData(rareInheritedData-&gt;quotes, other.rareInheritedData-&gt;quotes))
</del><ins>+    if (!arePointingToEqualData(m_rareInheritedData-&gt;quotes, other.m_rareInheritedData-&gt;quotes))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     if (position() != StaticPosition) {
</span><del>-        if (surround-&gt;offset != other.surround-&gt;offset) {
</del><ins>+        if (m_surroundData-&gt;offset != other.m_surroundData-&gt;offset) {
</ins><span class="cx">             // FIXME: We would like to use SimplifiedLayout for relative positioning, but we can't quite do that yet.
</span><span class="cx">             // We need to make sure SimplifiedLayout can operate correctly on RenderInlines (we will need
</span><span class="cx">             // to add a selfNeedsSimplifiedLayout bit in order to not get confused and taint every line).
</span><span class="lines">@@ -748,7 +764,7 @@
</span><span class="cx">                 return true;
</span><span class="cx"> 
</span><span class="cx">             // Optimize for the case where a positioned layer is moving but not changing size.
</span><del>-            if (!positionChangeIsMovementOnly(surround-&gt;offset, other.surround-&gt;offset, m_box-&gt;width()))
</del><ins>+            if (!positionChangeIsMovementOnly(m_surroundData-&gt;offset, other.m_surroundData-&gt;offset, m_boxData-&gt;width()))
</ins><span class="cx">                 return true;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -776,9 +792,9 @@
</span><span class="cx">     if (position() == StaticPosition)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (surround-&gt;offset != other.surround-&gt;offset) {
</del><ins>+    if (m_surroundData-&gt;offset != other.m_surroundData-&gt;offset) {
</ins><span class="cx">         // Optimize for the case where a positioned layer is moving but not changing size.
</span><del>-        if (position() == AbsolutePosition &amp;&amp; positionChangeIsMovementOnly(surround-&gt;offset, other.surround-&gt;offset, m_box-&gt;width()))
</del><ins>+        if (position() == AbsolutePosition &amp;&amp; positionChangeIsMovementOnly(m_surroundData-&gt;offset, other.m_surroundData-&gt;offset, m_boxData-&gt;width()))
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -788,11 +804,11 @@
</span><span class="cx"> bool RenderStyle::changeRequiresLayerRepaint(const RenderStyle&amp; other, unsigned&amp; changedContextSensitiveProperties) const
</span><span class="cx"> {
</span><span class="cx">     // StyleResolver has ensured that zIndex is non-auto only if it's applicable.
</span><del>-    if (m_box-&gt;zIndex() != other.m_box-&gt;zIndex() || m_box-&gt;hasAutoZIndex() != other.m_box-&gt;hasAutoZIndex())
</del><ins>+    if (m_boxData-&gt;zIndex() != other.m_boxData-&gt;zIndex() || m_boxData-&gt;hasAutoZIndex() != other.m_boxData-&gt;hasAutoZIndex())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     if (position() != StaticPosition) {
</span><del>-        if (visual-&gt;clip != other.visual-&gt;clip || visual-&gt;hasClip != other.visual-&gt;hasClip) {
</del><ins>+        if (m_visualData-&gt;clip != other.m_visualData-&gt;clip || m_visualData-&gt;hasClip != other.m_visualData-&gt;hasClip) {
</ins><span class="cx">             changedContextSensitiveProperties |= ContextSensitivePropertyClipRect;
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="lines">@@ -799,29 +815,29 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    if (rareNonInheritedData-&gt;m_effectiveBlendMode != other.rareNonInheritedData-&gt;m_effectiveBlendMode)
</del><ins>+    if (m_rareNonInheritedData-&gt;effectiveBlendMode != other.m_rareNonInheritedData-&gt;effectiveBlendMode)
</ins><span class="cx">         return true;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (rareNonInheritedData-&gt;m_opacity != other.rareNonInheritedData-&gt;m_opacity) {
</del><ins>+    if (m_rareNonInheritedData-&gt;opacity != other.m_rareNonInheritedData-&gt;opacity) {
</ins><span class="cx">         changedContextSensitiveProperties |= ContextSensitivePropertyOpacity;
</span><span class="cx">         // Don't return; keep looking for another change.
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (rareNonInheritedData-&gt;m_filter != other.rareNonInheritedData-&gt;m_filter) {
</del><ins>+    if (m_rareNonInheritedData-&gt;filter != other.m_rareNonInheritedData-&gt;filter) {
</ins><span class="cx">         changedContextSensitiveProperties |= ContextSensitivePropertyFilter;
</span><span class="cx">         // Don't return; keep looking for another change.
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-    if (rareNonInheritedData-&gt;m_backdropFilter != other.rareNonInheritedData-&gt;m_backdropFilter) {
</del><ins>+    if (m_rareNonInheritedData-&gt;backdropFilter != other.m_rareNonInheritedData-&gt;backdropFilter) {
</ins><span class="cx">         changedContextSensitiveProperties |= ContextSensitivePropertyFilter;
</span><span class="cx">         // Don't return; keep looking for another change.
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (rareNonInheritedData-&gt;m_mask != other.rareNonInheritedData-&gt;m_mask
-        || rareNonInheritedData-&gt;m_maskBoxImage != other.rareNonInheritedData-&gt;m_maskBoxImage)
</del><ins>+    if (m_rareNonInheritedData-&gt;mask != other.m_rareNonInheritedData-&gt;mask
+        || m_rareNonInheritedData-&gt;maskBoxImage != other.m_rareNonInheritedData-&gt;maskBoxImage)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -829,26 +845,26 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::changeRequiresRepaint(const RenderStyle&amp; other, unsigned&amp; changedContextSensitiveProperties) const
</span><span class="cx"> {
</span><del>-    if (inherited_flags._visibility != other.inherited_flags._visibility
-        || inherited_flags.m_printColorAdjust != other.inherited_flags.m_printColorAdjust
-        || inherited_flags._insideLink != other.inherited_flags._insideLink
-        || inherited_flags._insideDefaultButton != other.inherited_flags._insideDefaultButton
-        || surround-&gt;border != other.surround-&gt;border
-        || !m_background-&gt;isEquivalentForPainting(*other.m_background)
-        || rareInheritedData-&gt;userModify != other.rareInheritedData-&gt;userModify
-        || rareInheritedData-&gt;userSelect != other.rareInheritedData-&gt;userSelect
-        || rareNonInheritedData-&gt;userDrag != other.rareNonInheritedData-&gt;userDrag
-        || rareNonInheritedData-&gt;m_borderFit != other.rareNonInheritedData-&gt;m_borderFit
-        || rareNonInheritedData-&gt;m_objectFit != other.rareNonInheritedData-&gt;m_objectFit
-        || rareNonInheritedData-&gt;m_objectPosition != other.rareNonInheritedData-&gt;m_objectPosition
-        || rareInheritedData-&gt;m_imageRendering != other.rareInheritedData-&gt;m_imageRendering)
</del><ins>+    if (m_inheritedFlags.visibility != other.m_inheritedFlags.visibility
+        || m_inheritedFlags.printColorAdjust != other.m_inheritedFlags.printColorAdjust
+        || m_inheritedFlags.insideLink != other.m_inheritedFlags.insideLink
+        || m_inheritedFlags.insideDefaultButton != other.m_inheritedFlags.insideDefaultButton
+        || m_surroundData-&gt;border != other.m_surroundData-&gt;border
+        || !m_backgroundData-&gt;isEquivalentForPainting(*other.m_backgroundData)
+        || m_rareInheritedData-&gt;userModify != other.m_rareInheritedData-&gt;userModify
+        || m_rareInheritedData-&gt;userSelect != other.m_rareInheritedData-&gt;userSelect
+        || m_rareNonInheritedData-&gt;userDrag != other.m_rareNonInheritedData-&gt;userDrag
+        || m_rareNonInheritedData-&gt;borderFit != other.m_rareNonInheritedData-&gt;borderFit
+        || m_rareNonInheritedData-&gt;objectFit != other.m_rareNonInheritedData-&gt;objectFit
+        || m_rareNonInheritedData-&gt;objectPosition != other.m_rareNonInheritedData-&gt;objectPosition
+        || m_rareInheritedData-&gt;imageRendering != other.m_rareInheritedData-&gt;imageRendering)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (rareNonInheritedData-&gt;m_shapeOutside != other.rareNonInheritedData-&gt;m_shapeOutside)
</del><ins>+    if (m_rareNonInheritedData-&gt;shapeOutside != other.m_rareNonInheritedData-&gt;shapeOutside)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: this should probably be moved to changeRequiresLayerRepaint().
</span><del>-    if (rareNonInheritedData-&gt;m_clipPath != other.rareNonInheritedData-&gt;m_clipPath) {
</del><ins>+    if (m_rareNonInheritedData-&gt;clipPath != other.m_rareNonInheritedData-&gt;clipPath) {
</ins><span class="cx">         changedContextSensitiveProperties |= ContextSensitivePropertyClipPath;
</span><span class="cx">         // Don't return; keep looking for another change.
</span><span class="cx">     }
</span><span class="lines">@@ -858,16 +874,16 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline(const RenderStyle&amp; other, unsigned&amp;) const
</span><span class="cx"> {
</span><del>-    if (inherited-&gt;color != other.inherited-&gt;color
-        || inherited_flags._text_decorations != other.inherited_flags._text_decorations
-        || visual-&gt;textDecoration != other.visual-&gt;textDecoration
-        || rareNonInheritedData-&gt;m_textDecorationStyle != other.rareNonInheritedData-&gt;m_textDecorationStyle
-        || rareNonInheritedData-&gt;m_textDecorationColor != other.rareNonInheritedData-&gt;m_textDecorationColor
-        || rareInheritedData-&gt;m_textDecorationSkip != other.rareInheritedData-&gt;m_textDecorationSkip
-        || rareInheritedData-&gt;textFillColor != other.rareInheritedData-&gt;textFillColor
-        || rareInheritedData-&gt;textStrokeColor != other.rareInheritedData-&gt;textStrokeColor
-        || rareInheritedData-&gt;textEmphasisColor != other.rareInheritedData-&gt;textEmphasisColor
-        || rareInheritedData-&gt;textEmphasisFill != other.rareInheritedData-&gt;textEmphasisFill)
</del><ins>+    if (m_inheritedData-&gt;color != other.m_inheritedData-&gt;color
+        || m_inheritedFlags.textDecorations != other.m_inheritedFlags.textDecorations
+        || m_visualData-&gt;textDecoration != other.m_visualData-&gt;textDecoration
+        || m_rareNonInheritedData-&gt;textDecorationStyle != other.m_rareNonInheritedData-&gt;textDecorationStyle
+        || m_rareNonInheritedData-&gt;textDecorationColor != other.m_rareNonInheritedData-&gt;textDecorationColor
+        || m_rareInheritedData-&gt;textDecorationSkip != other.m_rareInheritedData-&gt;textDecorationSkip
+        || m_rareInheritedData-&gt;textFillColor != other.m_rareInheritedData-&gt;textFillColor
+        || m_rareInheritedData-&gt;textStrokeColor != other.m_rareInheritedData-&gt;textStrokeColor
+        || m_rareInheritedData-&gt;textEmphasisColor != other.m_rareInheritedData-&gt;textEmphasisColor
+        || m_rareInheritedData-&gt;textEmphasisFill != other.m_rareInheritedData-&gt;textEmphasisFill)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -875,12 +891,12 @@
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::changeRequiresRecompositeLayer(const RenderStyle&amp; other, unsigned&amp;) const
</span><span class="cx"> {
</span><del>-    if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) {
-        if (rareNonInheritedData-&gt;m_transformStyle3D != other.rareNonInheritedData-&gt;m_transformStyle3D
-            || rareNonInheritedData-&gt;m_backfaceVisibility != other.rareNonInheritedData-&gt;m_backfaceVisibility
-            || rareNonInheritedData-&gt;m_perspective != other.rareNonInheritedData-&gt;m_perspective
-            || rareNonInheritedData-&gt;m_perspectiveOriginX != other.rareNonInheritedData-&gt;m_perspectiveOriginX
-            || rareNonInheritedData-&gt;m_perspectiveOriginY != other.rareNonInheritedData-&gt;m_perspectiveOriginY)
</del><ins>+    if (m_rareNonInheritedData.get() != other.m_rareNonInheritedData.get()) {
+        if (m_rareNonInheritedData-&gt;transformStyle3D != other.m_rareNonInheritedData-&gt;transformStyle3D
+            || m_rareNonInheritedData-&gt;backfaceVisibility != other.m_rareNonInheritedData-&gt;backfaceVisibility
+            || m_rareNonInheritedData-&gt;perspective != other.m_rareNonInheritedData-&gt;perspective
+            || m_rareNonInheritedData-&gt;perspectiveOriginX != other.m_rareNonInheritedData-&gt;perspectiveOriginX
+            || m_rareNonInheritedData-&gt;perspectiveOriginY != other.m_rareNonInheritedData-&gt;perspectiveOriginY)
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -944,66 +960,75 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setClip(Length top, Length right, Length bottom, Length left)
</del><ins>+void RenderStyle::setClip(Length&amp;&amp; top, Length&amp;&amp; right, Length&amp;&amp; bottom, Length&amp;&amp; left)
</ins><span class="cx"> {
</span><del>-    StyleVisualData* data = visual.access();
-    data-&gt;clip.top() = top;
-    data-&gt;clip.right() = right;
-    data-&gt;clip.bottom() = bottom;
-    data-&gt;clip.left() = left;
</del><ins>+    auto&amp; data = m_visualData.access();
+    data.clip.top() = WTFMove(top);
+    data.clip.right() = WTFMove(right);
+    data.clip.bottom() = WTFMove(bottom);
+    data.clip.left() = WTFMove(left);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::addCursor(RefPtr&lt;StyleImage&gt;&amp;&amp; image, const IntPoint&amp; hotSpot)
</span><span class="cx"> {
</span><del>-    if (!rareInheritedData.access()-&gt;cursorData)
-        rareInheritedData.access()-&gt;cursorData = CursorList::create();
-    rareInheritedData.access()-&gt;cursorData-&gt;append(CursorData(WTFMove(image), hotSpot));
</del><ins>+    auto&amp; cursorData = m_rareInheritedData.access().cursorData;
+    if (!cursorData)
+        cursorData = CursorList::create();
+    cursorData-&gt;append(CursorData(WTFMove(image), hotSpot));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setCursorList(RefPtr&lt;CursorList&gt;&amp;&amp; list)
</span><span class="cx"> {
</span><del>-    rareInheritedData.access()-&gt;cursorData = WTFMove(list);
</del><ins>+    m_rareInheritedData.access().cursorData = WTFMove(list);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setQuotes(RefPtr&lt;QuotesData&gt;&amp;&amp; q)
</span><span class="cx"> {
</span><del>-    if (rareInheritedData-&gt;quotes == q || (rareInheritedData-&gt;quotes &amp;&amp; q &amp;&amp; *rareInheritedData-&gt;quotes == *q))
</del><ins>+    if (m_rareInheritedData-&gt;quotes == q || (m_rareInheritedData-&gt;quotes &amp;&amp; q &amp;&amp; *m_rareInheritedData-&gt;quotes == *q))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    rareInheritedData.access()-&gt;quotes = WTFMove(q);
</del><ins>+    m_rareInheritedData.access().quotes = WTFMove(q);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setWillChange(RefPtr&lt;WillChangeData&gt;&amp;&amp; willChangeData)
</span><span class="cx"> {
</span><del>-    if (arePointingToEqualData(rareNonInheritedData-&gt;m_willChange.get(), willChangeData.get()))
</del><ins>+    if (arePointingToEqualData(m_rareNonInheritedData-&gt;willChange.get(), willChangeData.get()))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    rareNonInheritedData.access()-&gt;m_willChange = WTFMove(willChangeData);
</del><ins>+    m_rareNonInheritedData.access().willChange = WTFMove(willChangeData);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::clearCursorList()
</span><span class="cx"> {
</span><del>-    if (rareInheritedData-&gt;cursorData)
-        rareInheritedData.access()-&gt;cursorData = nullptr;
</del><ins>+    if (m_rareInheritedData-&gt;cursorData)
+        m_rareInheritedData.access().cursorData = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::clearContent()
</span><span class="cx"> {
</span><del>-    if (rareNonInheritedData-&gt;m_content)
-        rareNonInheritedData.access()-&gt;m_content = nullptr;
</del><ins>+    if (m_rareNonInheritedData-&gt;content)
+        m_rareNonInheritedData.access().content = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::appendContent(std::unique_ptr&lt;ContentData&gt; contentData)
</del><ins>+static inline ContentData&amp; lastContent(ContentData&amp; firstContent)
</ins><span class="cx"> {
</span><del>-    auto&amp; content = rareNonInheritedData.access()-&gt;m_content;
-    ContentData* lastContent = content.get();
-    while (lastContent &amp;&amp; lastContent-&gt;next())
-        lastContent = lastContent-&gt;next();
</del><ins>+    auto* lastContent = &amp;firstContent;
+    for (auto* content = &amp;firstContent; content; content = content-&gt;next())
+        lastContent = content;
+    return *lastContent;
+}
</ins><span class="cx"> 
</span><del>-    if (lastContent)
-        lastContent-&gt;setNext(WTFMove(contentData));
-    else
-        content = WTFMove(contentData);
</del><ins>+void RenderStyle::setContent(std::unique_ptr&lt;ContentData&gt; contentData, bool add)
+{
+    auto&amp; data = m_rareNonInheritedData.access();
+    if (add &amp;&amp; data.content)
+        lastContent(*data.content).setNext(WTFMove(contentData));
+    else {
+        data.content = WTFMove(contentData);
+        auto&amp; altText = data.altText;
+        if (!altText.isNull())
+            data.content-&gt;setAltText(altText);
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setContent(RefPtr&lt;StyleImage&gt;&amp;&amp; image, bool add)
</span><span class="lines">@@ -1010,42 +1035,26 @@
</span><span class="cx"> {
</span><span class="cx">     if (!image)
</span><span class="cx">         return;
</span><del>-        
-    if (add) {
-        appendContent(std::make_unique&lt;ImageContentData&gt;(image.releaseNonNull()));
-        return;
-    }
-
-    rareNonInheritedData.access()-&gt;m_content = std::make_unique&lt;ImageContentData&gt;(image.releaseNonNull());
-    if (!rareNonInheritedData.access()-&gt;m_altText.isNull())
-        rareNonInheritedData.access()-&gt;m_content-&gt;setAltText(rareNonInheritedData.access()-&gt;m_altText);
</del><ins>+    setContent(std::make_unique&lt;ImageContentData&gt;(image.releaseNonNull()), add);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setContent(const String&amp; string, bool add)
</span><span class="cx"> {
</span><del>-    auto&amp; content = rareNonInheritedData.access()-&gt;m_content;
-    if (add) {
-        ContentData* lastContent = content.get();
-        while (lastContent &amp;&amp; lastContent-&gt;next())
-            lastContent = lastContent-&gt;next();
-
-        if (lastContent) {
-            // We attempt to merge with the last ContentData if possible.
-            if (is&lt;TextContentData&gt;(*lastContent)) {
-                TextContentData&amp; textContent = downcast&lt;TextContentData&gt;(*lastContent);
-                textContent.setText(textContent.text() + string);
-            } else
-                lastContent-&gt;setNext(std::make_unique&lt;TextContentData&gt;(string));
-
-            if (!rareNonInheritedData.access()-&gt;m_altText.isNull())
-                lastContent-&gt;setAltText(rareNonInheritedData.access()-&gt;m_altText);
-            return;
</del><ins>+    auto&amp; data = m_rareNonInheritedData.access();
+    if (add &amp;&amp; data.content) {
+        auto&amp; last = lastContent(*data.content);
+        if (!is&lt;TextContentData&gt;(last))
+            last.setNext(std::make_unique&lt;TextContentData&gt;(string));
+        else {
+            auto&amp; textContent = downcast&lt;TextContentData&gt;(last);
+            textContent.setText(textContent.text() + string);
</ins><span class="cx">         }
</span><ins>+    } else {
+        data.content = std::make_unique&lt;TextContentData&gt;(string);
+        auto&amp; altText = data.altText;
+        if (!altText.isNull())
+            data.content-&gt;setAltText(altText);
</ins><span class="cx">     }
</span><del>-
-    content = std::make_unique&lt;TextContentData&gt;(string);
-    if (!rareNonInheritedData.access()-&gt;m_altText.isNull())
-        content-&gt;setAltText(rareNonInheritedData.access()-&gt;m_altText);
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setContent(std::unique_ptr&lt;CounterContent&gt; counter, bool add)
</span><span class="lines">@@ -1052,60 +1061,49 @@
</span><span class="cx"> {
</span><span class="cx">     if (!counter)
</span><span class="cx">         return;
</span><del>-
-    if (add) {
-        appendContent(std::make_unique&lt;CounterContentData&gt;(WTFMove(counter)));
-        return;
-    }
-
-    rareNonInheritedData.access()-&gt;m_content = std::make_unique&lt;CounterContentData&gt;(WTFMove(counter));
</del><ins>+    setContent(std::make_unique&lt;CounterContentData&gt;(WTFMove(counter)), add);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setContent(QuoteType quote, bool add)
</span><span class="cx"> {
</span><del>-    if (add) {
-        appendContent(std::make_unique&lt;QuoteContentData&gt;(quote));
-        return;
-    }
-
-    rareNonInheritedData.access()-&gt;m_content = std::make_unique&lt;QuoteContentData&gt;(quote);
</del><ins>+    setContent(std::make_unique&lt;QuoteContentData&gt;(quote), add);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setContentAltText(const String&amp; string)
</span><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_altText = string;
-    
-    if (rareNonInheritedData.access()-&gt;m_content)
-        rareNonInheritedData.access()-&gt;m_content-&gt;setAltText(string);
</del><ins>+    auto&amp; data = m_rareNonInheritedData.access();
+    data.altText = string;
+    if (data.content)
+        data.content-&gt;setAltText(string);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const String&amp; RenderStyle::contentAltText() const
</span><span class="cx"> {
</span><del>-    return rareNonInheritedData-&gt;m_altText;
</del><ins>+    return m_rareNonInheritedData-&gt;altText;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setHasAttrContent()
</span><span class="cx"> {
</span><span class="cx">     setUnique();
</span><del>-    SET_VAR(rareNonInheritedData, m_hasAttrContent, true);
</del><ins>+    SET_VAR(m_rareNonInheritedData, hasAttrContent, true);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-// FIXME: use affectedByTransformOrigin().
</del><span class="cx"> static inline bool requireTransformOrigin(const Vector&lt;RefPtr&lt;TransformOperation&gt;&gt;&amp; transformOperations, RenderStyle::ApplyTransformOrigin applyOrigin)
</span><span class="cx"> {
</span><del>-    // transform-origin brackets the transform with translate operations.
-    // Optimize for the case where the only transform is a translation, since the transform-origin is irrelevant
-    // in that case.
</del><ins>+    // The transform-origin property brackets the transform with translate operations.
+    // When the only transform is a translation, the transform-origin is irrelevant.
+
</ins><span class="cx">     if (applyOrigin != RenderStyle::IncludeTransformOrigin)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; operation : transformOperations) {
</span><del>-        TransformOperation::OperationType type = operation-&gt;type();
-        if (type != TransformOperation::TRANSLATE_X
</del><ins>+        // FIXME: Use affectedByTransformOrigin().
+        auto type = operation-&gt;type();
+        if (type != TransformOperation::TRANSLATE
+            &amp;&amp; type != TransformOperation::TRANSLATE_3D
+            &amp;&amp; type != TransformOperation::TRANSLATE_X
</ins><span class="cx">             &amp;&amp; type != TransformOperation::TRANSLATE_Y
</span><del>-            &amp;&amp; type != TransformOperation::TRANSLATE 
-            &amp;&amp; type != TransformOperation::TRANSLATE_Z
-            &amp;&amp; type != TransformOperation::TRANSLATE_3D)
</del><ins>+            &amp;&amp; type != TransformOperation::TRANSLATE_Z)
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1114,7 +1112,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::applyTransform(TransformationMatrix&amp; transform, const FloatRect&amp; boundingBox, ApplyTransformOrigin applyOrigin) const
</span><span class="cx"> {
</span><del>-    auto&amp; operations = rareNonInheritedData-&gt;m_transform-&gt;m_operations.operations();
</del><ins>+    auto&amp; operations = m_rareNonInheritedData-&gt;transform-&gt;operations.operations();
</ins><span class="cx">     bool applyTransformOrigin = requireTransformOrigin(operations, applyOrigin);
</span><span class="cx"> 
</span><span class="cx">     float offsetX = transformOriginX().isPercent() ? boundingBox.x() : 0;
</span><span class="lines">@@ -1151,78 +1149,91 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!shadowData || (!shadowData-&gt;spread() &amp;&amp; shadowData-&gt;style() == Normal));
</span><span class="cx"> 
</span><del>-    StyleRareInheritedData* rareData = rareInheritedData.access();
</del><ins>+    auto&amp; rareData = m_rareInheritedData.access();
</ins><span class="cx">     if (!add) {
</span><del>-        rareData-&gt;textShadow = WTFMove(shadowData);
</del><ins>+        rareData.textShadow = WTFMove(shadowData);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    shadowData-&gt;setNext(WTFMove(rareData-&gt;textShadow));
-    rareData-&gt;textShadow = WTFMove(shadowData);
</del><ins>+    shadowData-&gt;setNext(WTFMove(rareData.textShadow));
+    rareData.textShadow = WTFMove(shadowData);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setBoxShadow(std::unique_ptr&lt;ShadowData&gt; shadowData, bool add)
</span><span class="cx"> {
</span><del>-    StyleRareNonInheritedData* rareData = rareNonInheritedData.access();
</del><ins>+    auto&amp; rareData = m_rareNonInheritedData.access();
</ins><span class="cx">     if (!add) {
</span><del>-        rareData-&gt;m_boxShadow = WTFMove(shadowData);
</del><ins>+        rareData.boxShadow = WTFMove(shadowData);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    shadowData-&gt;setNext(WTFMove(rareData-&gt;m_boxShadow));
-    rareData-&gt;m_boxShadow = WTFMove(shadowData);
</del><ins>+    shadowData-&gt;setNext(WTFMove(rareData.boxShadow));
+    rareData.boxShadow = WTFMove(shadowData);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static RoundedRect::Radii calcRadiiFor(const BorderData&amp; border, const LayoutSize&amp; size)
</span><span class="cx"> {
</span><del>-    return RoundedRect::Radii(
-        LayoutSize(valueForLength(border.topLeft().width(), size.width()),
-            valueForLength(border.topLeft().height(), size.height())),
-        LayoutSize(valueForLength(border.topRight().width(), size.width()),
-            valueForLength(border.topRight().height(), size.height())),
-        LayoutSize(valueForLength(border.bottomLeft().width(), size.width()),
-            valueForLength(border.bottomLeft().height(), size.height())),
-        LayoutSize(valueForLength(border.bottomRight().width(), size.width()),
-            valueForLength(border.bottomRight().height(), size.height())));
</del><ins>+    return {
+        sizeForLengthSize(border.topLeft(), size),
+        sizeForLengthSize(border.topRight(), size),
+        sizeForLengthSize(border.bottomLeft(), size),
+        sizeForLengthSize(border.bottomRight(), size)
+    };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-StyleImage* RenderStyle::listStyleImage() const { return rareInheritedData-&gt;listStyleImage.get(); }
</del><ins>+StyleImage* RenderStyle::listStyleImage() const { return m_rareInheritedData-&gt;listStyleImage.get(); }
+
</ins><span class="cx"> void RenderStyle::setListStyleImage(RefPtr&lt;StyleImage&gt;&amp;&amp; v)
</span><span class="cx"> {
</span><del>-    if (rareInheritedData-&gt;listStyleImage != v)
-        rareInheritedData.access()-&gt;listStyleImage = WTFMove(v);
</del><ins>+    if (m_rareInheritedData-&gt;listStyleImage != v)
+        m_rareInheritedData.access().listStyleImage = WTFMove(v);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Color&amp; RenderStyle::color() const
</span><span class="cx"> {
</span><del>-    return inherited-&gt;color;
</del><ins>+    return m_inheritedData-&gt;color;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Color&amp; RenderStyle::visitedLinkColor() const
</span><span class="cx"> {
</span><del>-    return inherited-&gt;visitedLinkColor;
</del><ins>+    return m_inheritedData-&gt;visitedLinkColor;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setColor(const Color&amp; v)
</span><span class="cx"> {
</span><del>-    SET_VAR(inherited, color, v);
</del><ins>+    SET_VAR(m_inheritedData, color, v);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setVisitedLinkColor(const Color&amp; v)
</span><span class="cx"> {
</span><del>-    SET_VAR(inherited, visitedLinkColor, v);
</del><ins>+    SET_VAR(m_inheritedData, visitedLinkColor, v);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-float RenderStyle::horizontalBorderSpacing() const { return inherited-&gt;horizontal_border_spacing; }
-float RenderStyle::verticalBorderSpacing() const { return inherited-&gt;vertical_border_spacing; }
-void RenderStyle::setHorizontalBorderSpacing(float v) { SET_VAR(inherited, horizontal_border_spacing, v); }
-void RenderStyle::setVerticalBorderSpacing(float v) { SET_VAR(inherited, vertical_border_spacing, v); }
</del><ins>+float RenderStyle::horizontalBorderSpacing() const
+{
+    return m_inheritedData-&gt;horizontalBorderSpacing;
+}
</ins><span class="cx"> 
</span><ins>+float RenderStyle::verticalBorderSpacing() const
+{
+    return m_inheritedData-&gt;verticalBorderSpacing;
+}
+
+void RenderStyle::setHorizontalBorderSpacing(float v)
+{
+    SET_VAR(m_inheritedData, horizontalBorderSpacing, v);
+}
+
+void RenderStyle::setVerticalBorderSpacing(float v)
+{
+    SET_VAR(m_inheritedData, verticalBorderSpacing, v);
+}
+
</ins><span class="cx"> RoundedRect RenderStyle::getRoundedBorderFor(const LayoutRect&amp; borderRect, bool includeLogicalLeftEdge, bool includeLogicalRightEdge) const
</span><span class="cx"> {
</span><span class="cx">     RoundedRect roundedRect(borderRect);
</span><span class="cx">     if (hasBorderRadius()) {
</span><del>-        RoundedRect::Radii radii = calcRadiiFor(surround-&gt;border, borderRect.size());
</del><ins>+        RoundedRect::Radii radii = calcRadiiFor(m_surroundData-&gt;border, borderRect.size());
</ins><span class="cx">         radii.scale(calcBorderRadiiConstraintScaleFor(borderRect, radii));
</span><span class="cx">         roundedRect.includeLogicalEdges(radii, isHorizontalWritingMode(), includeLogicalLeftEdge, includeLogicalRightEdge);
</span><span class="cx">     }
</span><span class="lines">@@ -1232,12 +1243,10 @@
</span><span class="cx"> RoundedRect RenderStyle::getRoundedInnerBorderFor(const LayoutRect&amp; borderRect, bool includeLogicalLeftEdge, bool includeLogicalRightEdge) const
</span><span class="cx"> {
</span><span class="cx">     bool horizontal = isHorizontalWritingMode();
</span><del>-
-    LayoutUnit leftWidth = (!horizontal || includeLogicalLeftEdge) ? borderLeftWidth() : 0;
-    LayoutUnit rightWidth = (!horizontal || includeLogicalRightEdge) ? borderRightWidth() : 0;
-    LayoutUnit topWidth = (horizontal || includeLogicalLeftEdge) ? borderTopWidth() : 0;
-    LayoutUnit bottomWidth = (horizontal || includeLogicalRightEdge) ? borderBottomWidth() : 0;
-
</del><ins>+    auto leftWidth = (!horizontal || includeLogicalLeftEdge) ? borderLeftWidth() : 0;
+    auto rightWidth = (!horizontal || includeLogicalRightEdge) ? borderRightWidth() : 0;
+    auto topWidth = (horizontal || includeLogicalLeftEdge) ? borderTopWidth() : 0;
+    auto bottomWidth = (horizontal || includeLogicalRightEdge) ? borderBottomWidth() : 0;
</ins><span class="cx">     return getRoundedInnerBorderFor(borderRect, topWidth, bottomWidth, leftWidth, rightWidth, includeLogicalLeftEdge, includeLogicalRightEdge);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1244,15 +1253,10 @@
</span><span class="cx"> RoundedRect RenderStyle::getRoundedInnerBorderFor(const LayoutRect&amp; borderRect, LayoutUnit topWidth, LayoutUnit bottomWidth,
</span><span class="cx">     LayoutUnit leftWidth, LayoutUnit rightWidth, bool includeLogicalLeftEdge, bool includeLogicalRightEdge) const
</span><span class="cx"> {
</span><del>-    LayoutRect innerRect(borderRect.x() + leftWidth, 
-               borderRect.y() + topWidth, 
-               borderRect.width() - leftWidth - rightWidth, 
-               borderRect.height() - topWidth - bottomWidth);
-
-    RoundedRect roundedRect(innerRect);
-
</del><ins>+    RoundedRect roundedRect { { borderRect.x() + leftWidth, borderRect.y() + topWidth,
+        borderRect.width() - leftWidth - rightWidth, borderRect.height() - topWidth - bottomWidth } };
</ins><span class="cx">     if (hasBorderRadius()) {
</span><del>-        RoundedRect::Radii radii = getRoundedBorderFor(borderRect).radii();
</del><ins>+        auto radii = getRoundedBorderFor(borderRect).radii();
</ins><span class="cx">         radii.shrink(topWidth, bottomWidth, leftWidth, rightWidth);
</span><span class="cx">         roundedRect.includeLogicalEdges(radii, isHorizontalWritingMode(), includeLogicalLeftEdge, includeLogicalRightEdge);
</span><span class="cx">     }
</span><span class="lines">@@ -1259,14 +1263,13 @@
</span><span class="cx">     return roundedRect;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool allLayersAreFixed(const FillLayer* layer)
</del><ins>+static bool allLayersAreFixed(const FillLayer&amp; layers)
</ins><span class="cx"> {
</span><del>-    bool allFixed = true;
-    
-    for (const FillLayer* currLayer = layer; currLayer; currLayer = currLayer-&gt;next())
-        allFixed &amp;= (currLayer-&gt;image() &amp;&amp; currLayer-&gt;attachment() == FixedBackgroundAttachment);
-
-    return layer &amp;&amp; allFixed;
</del><ins>+    for (auto* layer = &amp;layers; layer; layer = layer-&gt;next()) {
+        if (!(layer-&gt;image() &amp;&amp; layer-&gt;attachment() == FixedBackgroundAttachment))
+            return false;
+    }
+    return true;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::hasEntirelyFixedBackground() const
</span><span class="lines">@@ -1276,12 +1279,12 @@
</span><span class="cx"> 
</span><span class="cx"> const CounterDirectiveMap* RenderStyle::counterDirectives() const
</span><span class="cx"> {
</span><del>-    return rareNonInheritedData-&gt;m_counterDirectives.get();
</del><ins>+    return m_rareNonInheritedData-&gt;counterDirectives.get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> CounterDirectiveMap&amp; RenderStyle::accessCounterDirectives()
</span><span class="cx"> {
</span><del>-    auto&amp; map = rareNonInheritedData.access()-&gt;m_counterDirectives;
</del><ins>+    auto&amp; map = m_rareNonInheritedData.access().counterDirectives;
</ins><span class="cx">     if (!map)
</span><span class="cx">         map = std::make_unique&lt;CounterDirectiveMap&gt;();
</span><span class="cx">     return *map;
</span><span class="lines">@@ -1298,7 +1301,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(hyphens() != HyphensNone);
</span><span class="cx"> 
</span><del>-    const AtomicString&amp; hyphenationString = rareInheritedData.get()-&gt;hyphenationString;
</del><ins>+    auto&amp; hyphenationString = m_rareInheritedData-&gt;hyphenationString;
</ins><span class="cx">     if (!hyphenationString.isNull())
</span><span class="cx">         return hyphenationString;
</span><span class="cx"> 
</span><span class="lines">@@ -1350,6 +1353,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><ins>+
</ins><span class="cx"> const Vector&lt;StyleDashboardRegion&gt;&amp; RenderStyle::initialDashboardRegions()
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;Vector&lt;StyleDashboardRegion&gt;&gt; emptyList;
</span><span class="lines">@@ -1360,30 +1364,23 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;Vector&lt;StyleDashboardRegion&gt;&gt; noneList;
</span><span class="cx">     static bool noneListInitialized = false;
</span><del>-
</del><span class="cx">     if (!noneListInitialized) {
</span><del>-        StyleDashboardRegion region;
-        region.label = emptyString();
-        region.offset.top()  = Length();
-        region.offset.right() = Length();
-        region.offset.bottom() = Length();
-        region.offset.left() = Length();
-        region.type = StyleDashboardRegion::None;
-        noneList.get().append(region);
</del><ins>+        noneList.get().append(StyleDashboardRegion { emptyString(), { }, StyleDashboardRegion::None });
</ins><span class="cx">         noneListInitialized = true;
</span><span class="cx">     }
</span><span class="cx">     return noneList;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::adjustAnimations()
</span><span class="cx"> {
</span><del>-    AnimationList* animationList = rareNonInheritedData-&gt;m_animations.get();
</del><ins>+    auto* animationList = m_rareNonInheritedData-&gt;animations.get();
</ins><span class="cx">     if (!animationList)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Get rid of empty animations and anything beyond them
</span><del>-    for (size_t i = 0; i &lt; animationList-&gt;size(); ++i) {
</del><ins>+    for (size_t i = 0, size = animationList-&gt;size(); i &lt; size; ++i) {
</ins><span class="cx">         if (animationList-&gt;animation(i).isEmpty()) {
</span><span class="cx">             animationList-&gt;resize(i);
</span><span class="cx">             break;
</span><span class="lines">@@ -1401,12 +1398,12 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::adjustTransitions()
</span><span class="cx"> {
</span><del>-    AnimationList* transitionList = rareNonInheritedData-&gt;m_transitions.get();
</del><ins>+    auto* transitionList = m_rareNonInheritedData-&gt;transitions.get();
</ins><span class="cx">     if (!transitionList)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Get rid of empty transitions and anything beyond them
</span><del>-    for (size_t i = 0; i &lt; transitionList-&gt;size(); ++i) {
</del><ins>+    for (size_t i = 0, size = transitionList-&gt;size(); i &lt; size; ++i) {
</ins><span class="cx">         if (transitionList-&gt;animation(i).isEmpty()) {
</span><span class="cx">             transitionList-&gt;resize(i);
</span><span class="cx">             break;
</span><span class="lines">@@ -1421,10 +1418,10 @@
</span><span class="cx">     // Repeat patterns into layers that don't have some properties set.
</span><span class="cx">     transitionList-&gt;fillUnsetProperties();
</span><span class="cx"> 
</span><del>-    // Make sure there are no duplicate properties. This is an O(n^2) algorithm
-    // but the lists tend to be very short, so it is probably ok
</del><ins>+    // Make sure there are no duplicate properties.
+    // This is an O(n^2) algorithm but the lists tend to be short, so it is probably OK.
</ins><span class="cx">     for (size_t i = 0; i &lt; transitionList-&gt;size(); ++i) {
</span><del>-        for (size_t j = i+1; j &lt; transitionList-&gt;size(); ++j) {
</del><ins>+        for (size_t j = i + 1; j &lt; transitionList-&gt;size(); ++j) {
</ins><span class="cx">             if (transitionList-&gt;animation(i).property() == transitionList-&gt;animation(j).property()) {
</span><span class="cx">                 // toss i
</span><span class="cx">                 transitionList-&gt;remove(i);
</span><span class="lines">@@ -1436,63 +1433,108 @@
</span><span class="cx"> 
</span><span class="cx"> AnimationList&amp; RenderStyle::ensureAnimations()
</span><span class="cx"> {
</span><del>-    if (!rareNonInheritedData.access()-&gt;m_animations)
-        rareNonInheritedData.access()-&gt;m_animations = std::make_unique&lt;AnimationList&gt;();
-    return *rareNonInheritedData-&gt;m_animations;
</del><ins>+    if (!m_rareNonInheritedData.access().animations)
+        m_rareNonInheritedData.access().animations = std::make_unique&lt;AnimationList&gt;();
+    return *m_rareNonInheritedData-&gt;animations;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AnimationList&amp; RenderStyle::ensureTransitions()
</span><span class="cx"> {
</span><del>-    if (!rareNonInheritedData.access()-&gt;m_transitions)
-        rareNonInheritedData.access()-&gt;m_transitions = std::make_unique&lt;AnimationList&gt;();
-    return *rareNonInheritedData-&gt;m_transitions;
</del><ins>+    if (!m_rareNonInheritedData.access().transitions)
+        m_rareNonInheritedData.access().transitions = std::make_unique&lt;AnimationList&gt;();
+    return *m_rareNonInheritedData-&gt;transitions;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Animation* RenderStyle::transitionForProperty(CSSPropertyID property) const
</span><span class="cx"> {
</span><del>-    if (transitions()) {
-        for (size_t i = 0; i &lt; transitions()-&gt;size(); ++i) {
-            const Animation&amp; p = transitions()-&gt;animation(i);
-            if (p.animationMode() == Animation::AnimateAll || p.property() == property) {
-                return &amp;p;
-            }
-        }
</del><ins>+    auto* transitions = this-&gt;transitions();
+    if (!transitions)
+        return nullptr;
+    for (size_t i = 0, size = transitions-&gt;size(); i &lt; size; ++i) {
+        auto&amp; animation = transitions-&gt;animation(i);
+        if (animation.animationMode() == Animation::AnimateAll || animation.property() == property)
+            return &amp;animation;
</ins><span class="cx">     }
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-const FontCascade&amp; RenderStyle::fontCascade() const { return inherited-&gt;fontCascade; }
-const FontMetrics&amp; RenderStyle::fontMetrics() const { return inherited-&gt;fontCascade.fontMetrics(); }
-const FontCascadeDescription&amp; RenderStyle::fontDescription() const { return inherited-&gt;fontCascade.fontDescription(); }
-float RenderStyle::specifiedFontSize() const { return fontDescription().specifiedSize(); }
-float RenderStyle::computedFontSize() const { return fontDescription().computedSize(); }
-int RenderStyle::fontSize() const { return inherited-&gt;fontCascade.pixelSize(); }
</del><ins>+const FontCascade&amp; RenderStyle::fontCascade() const
+{
+    return m_inheritedData-&gt;fontCascade;
+}
</ins><span class="cx"> 
</span><del>-const Length&amp; RenderStyle::wordSpacing() const { return rareInheritedData-&gt;wordSpacing; }
-float RenderStyle::letterSpacing() const { return inherited-&gt;fontCascade.letterSpacing(); }
</del><ins>+const FontMetrics&amp; RenderStyle::fontMetrics() const
+{
+    return m_inheritedData-&gt;fontCascade.fontMetrics();
+}
</ins><span class="cx"> 
</span><del>-bool RenderStyle::setFontDescription(const FontCascadeDescription&amp; v)
</del><ins>+const FontCascadeDescription&amp; RenderStyle::fontDescription() const
</ins><span class="cx"> {
</span><del>-    if (inherited-&gt;fontCascade.fontDescription() != v) {
-        inherited.access()-&gt;fontCascade = FontCascade(v, inherited-&gt;fontCascade.letterSpacing(), inherited-&gt;fontCascade.wordSpacing());
-        return true;
-    }
-    return false;
</del><ins>+    return m_inheritedData-&gt;fontCascade.fontDescription();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+float RenderStyle::specifiedFontSize() const
+{
+    return fontDescription().specifiedSize();
+}
+
+float RenderStyle::computedFontSize() const
+{
+    return fontDescription().computedSize();
+}
+
+int RenderStyle::fontSize() const
+{
+    return m_inheritedData-&gt;fontCascade.pixelSize();
+}
+
+const Length&amp; RenderStyle::wordSpacing() const
+{
+    return m_rareInheritedData-&gt;wordSpacing;
+}
+
+float RenderStyle::letterSpacing() const
+{
+    return m_inheritedData-&gt;fontCascade.letterSpacing();
+}
+
+bool RenderStyle::setFontDescription(const FontCascadeDescription&amp; description)
+{
+    if (m_inheritedData-&gt;fontCascade.fontDescription() == description)
+        return false;
+    auto&amp; cascade = m_inheritedData.access().fontCascade;
+    cascade = { description, cascade.letterSpacing(), cascade.wordSpacing() };
+    return true;
+}
+
+const Length&amp; RenderStyle::specifiedLineHeight() const
+{
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-const Length&amp; RenderStyle::specifiedLineHeight() const { return inherited-&gt;specifiedLineHeight; }
-void RenderStyle::setSpecifiedLineHeight(Length v) { SET_VAR(inherited, specifiedLineHeight, v); }
</del><ins>+    return m_inheritedData-&gt;specifiedLineHeight;
</ins><span class="cx"> #else
</span><del>-const Length&amp; RenderStyle::specifiedLineHeight() const { return inherited-&gt;line_height; }
</del><ins>+    return m_inheritedData-&gt;lineHeight;
</ins><span class="cx"> #endif
</span><ins>+}
</ins><span class="cx"> 
</span><del>-Length RenderStyle::lineHeight() const
</del><ins>+#if ENABLE(TEXT_AUTOSIZING)
+
+void RenderStyle::setSpecifiedLineHeight(Length&amp;&amp; height)
</ins><span class="cx"> {
</span><del>-    return inherited-&gt;line_height;
</del><ins>+    SET_VAR(m_inheritedData, specifiedLineHeight, WTFMove(height));
</ins><span class="cx"> }
</span><del>-void RenderStyle::setLineHeight(Length specifiedLineHeight) { SET_VAR(inherited, line_height, specifiedLineHeight); }
</del><span class="cx"> 
</span><ins>+#endif
+
+const Length&amp; RenderStyle::lineHeight() const
+{
+    return m_inheritedData-&gt;lineHeight;
+}
+
+void RenderStyle::setLineHeight(Length&amp;&amp; height)
+{
+    SET_VAR(m_inheritedData, lineHeight, WTFMove(height));
+}
+
</ins><span class="cx"> int RenderStyle::computedLineHeight() const
</span><span class="cx"> {
</span><span class="cx">     const Length&amp; lh = lineHeight();
</span><span class="lines">@@ -1507,7 +1549,7 @@
</span><span class="cx">     return clampTo&lt;int&gt;(lh.value());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setWordSpacing(Length value)
</del><ins>+void RenderStyle::setWordSpacing(Length&amp;&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     float fontWordSpacing;
</span><span class="cx">     switch (value.type()) {
</span><span class="lines">@@ -1528,11 +1570,11 @@
</span><span class="cx">         fontWordSpacing = 0;
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    inherited.access()-&gt;fontCascade.setWordSpacing(fontWordSpacing);
-    rareInheritedData.access()-&gt;wordSpacing = WTFMove(value);
</del><ins>+    m_inheritedData.access().fontCascade.setWordSpacing(fontWordSpacing);
+    m_rareInheritedData.access().wordSpacing = WTFMove(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setLetterSpacing(float v) { inherited.access()-&gt;fontCascade.setLetterSpacing(v); }
</del><ins>+void RenderStyle::setLetterSpacing(float v) { m_inheritedData.access().fontCascade.setLetterSpacing(v); }
</ins><span class="cx"> 
</span><span class="cx"> void RenderStyle::setFontSize(float size)
</span><span class="cx"> {
</span><span class="lines">@@ -1566,7 +1608,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void RenderStyle::getShadowExtent(const ShadowData* shadow, LayoutUnit &amp;top, LayoutUnit &amp;right, LayoutUnit &amp;bottom, LayoutUnit &amp;left) const
</del><ins>+void RenderStyle::getShadowExtent(const ShadowData* shadow, LayoutUnit&amp; top, LayoutUnit&amp; right, LayoutUnit&amp; bottom, LayoutUnit&amp; left) const
</ins><span class="cx"> {
</span><span class="cx">     top = 0;
</span><span class="cx">     right = 0;
</span><span class="lines">@@ -1810,53 +1852,53 @@
</span><span class="cx">     return isLeftToRightDirection() ? borderBottomWidth() : borderTopWidth();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setMarginStart(Length margin)
</del><ins>+void RenderStyle::setMarginStart(Length&amp;&amp; margin)
</ins><span class="cx"> {
</span><span class="cx">     if (isHorizontalWritingMode()) {
</span><span class="cx">         if (isLeftToRightDirection())
</span><del>-            setMarginLeft(margin);
</del><ins>+            setMarginLeft(WTFMove(margin));
</ins><span class="cx">         else
</span><del>-            setMarginRight(margin);
</del><ins>+            setMarginRight(WTFMove(margin));
</ins><span class="cx">     } else {
</span><span class="cx">         if (isLeftToRightDirection())
</span><del>-            setMarginTop(margin);
</del><ins>+            setMarginTop(WTFMove(margin));
</ins><span class="cx">         else
</span><del>-            setMarginBottom(margin);
</del><ins>+            setMarginBottom(WTFMove(margin));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setMarginEnd(Length margin)
</del><ins>+void RenderStyle::setMarginEnd(Length&amp;&amp; margin)
</ins><span class="cx"> {
</span><span class="cx">     if (isHorizontalWritingMode()) {
</span><span class="cx">         if (isLeftToRightDirection())
</span><del>-            setMarginRight(margin);
</del><ins>+            setMarginRight(WTFMove(margin));
</ins><span class="cx">         else
</span><del>-            setMarginLeft(margin);
</del><ins>+            setMarginLeft(WTFMove(margin));
</ins><span class="cx">     } else {
</span><span class="cx">         if (isLeftToRightDirection())
</span><del>-            setMarginBottom(margin);
</del><ins>+            setMarginBottom(WTFMove(margin));
</ins><span class="cx">         else
</span><del>-            setMarginTop(margin);
</del><ins>+            setMarginTop(WTFMove(margin));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> TextEmphasisMark RenderStyle::textEmphasisMark() const
</span><span class="cx"> {
</span><del>-    TextEmphasisMark mark = static_cast&lt;TextEmphasisMark&gt;(rareInheritedData-&gt;textEmphasisMark);
</del><ins>+    auto mark = static_cast&lt;TextEmphasisMark&gt;(m_rareInheritedData-&gt;textEmphasisMark);
</ins><span class="cx">     if (mark != TextEmphasisMarkAuto)
</span><span class="cx">         return mark;
</span><del>-
</del><span class="cx">     if (isHorizontalWritingMode())
</span><span class="cx">         return TextEmphasisMarkDot;
</span><del>-
</del><span class="cx">     return TextEmphasisMarkSesame;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><ins>+
</ins><span class="cx"> Color RenderStyle::initialTapHighlightColor()
</span><span class="cx"> {
</span><span class="cx">     return RenderTheme::tapHighlightColor();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> LayoutBoxExtent RenderStyle::imageOutsets(const NinePieceImage&amp; image) const
</span><span class="lines">@@ -1889,30 +1931,30 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setBorderImageSource(RefPtr&lt;StyleImage&gt;&amp;&amp; image)
</span><span class="cx"> {
</span><del>-    if (surround-&gt;border.m_image.image() == image.get())
</del><ins>+    if (m_surroundData-&gt;border.m_image.image() == image.get())
</ins><span class="cx">         return;
</span><del>-    surround.access()-&gt;border.m_image.setImage(WTFMove(image));
</del><ins>+    m_surroundData.access().border.m_image.setImage(WTFMove(image));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setBorderImageSlices(LengthBox slices)
</del><ins>+void RenderStyle::setBorderImageSlices(LengthBox&amp;&amp; slices)
</ins><span class="cx"> {
</span><del>-    if (surround-&gt;border.m_image.imageSlices() == slices)
</del><ins>+    if (m_surroundData-&gt;border.m_image.imageSlices() == slices)
</ins><span class="cx">         return;
</span><del>-    surround.access()-&gt;border.m_image.setImageSlices(slices);
</del><ins>+    m_surroundData.access().border.m_image.setImageSlices(WTFMove(slices));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setBorderImageWidth(LengthBox slices)
</del><ins>+void RenderStyle::setBorderImageWidth(LengthBox&amp;&amp; slices)
</ins><span class="cx"> {
</span><del>-    if (surround-&gt;border.m_image.borderSlices() == slices)
</del><ins>+    if (m_surroundData-&gt;border.m_image.borderSlices() == slices)
</ins><span class="cx">         return;
</span><del>-    surround.access()-&gt;border.m_image.setBorderSlices(slices);
</del><ins>+    m_surroundData.access().border.m_image.setBorderSlices(WTFMove(slices));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setBorderImageOutset(LengthBox outset)
</del><ins>+void RenderStyle::setBorderImageOutset(LengthBox&amp;&amp; outset)
</ins><span class="cx"> {
</span><del>-    if (surround-&gt;border.m_image.outset() == outset)
</del><ins>+    if (m_surroundData-&gt;border.m_image.outset() == outset)
</ins><span class="cx">         return;
</span><del>-    surround.access()-&gt;border.m_image.setOutset(outset);
</del><ins>+    m_surroundData.access().border.m_image.setOutset(WTFMove(outset));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setColumnStylesFromPaginationMode(const Pagination::Mode&amp; paginationMode)
</span><span class="lines">@@ -1958,6 +2000,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><ins>+
</ins><span class="cx"> ScrollSnapType RenderStyle::initialScrollSnapType()
</span><span class="cx"> {
</span><span class="cx">     return { };
</span><span class="lines">@@ -1970,22 +2013,22 @@
</span><span class="cx"> 
</span><span class="cx"> const StyleScrollSnapArea&amp; RenderStyle::scrollSnapArea() const
</span><span class="cx"> {
</span><del>-    return *rareNonInheritedData-&gt;m_scrollSnapArea;
</del><ins>+    return *m_rareNonInheritedData-&gt;scrollSnapArea;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const StyleScrollSnapPort&amp; RenderStyle::scrollSnapPort() const
</span><span class="cx"> {
</span><del>-    return *rareNonInheritedData-&gt;m_scrollSnapPort;
</del><ins>+    return *m_rareNonInheritedData-&gt;scrollSnapPort;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const ScrollSnapType&amp; RenderStyle::scrollSnapType() const
</span><span class="cx"> {
</span><del>-    return rareNonInheritedData-&gt;m_scrollSnapPort-&gt;type;
</del><ins>+    return m_rareNonInheritedData-&gt;scrollSnapPort-&gt;type;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const LengthBox&amp; RenderStyle::scrollPadding() const
</span><span class="cx"> {
</span><del>-    return rareNonInheritedData-&gt;m_scrollSnapPort-&gt;scrollPadding;
</del><ins>+    return m_rareNonInheritedData-&gt;scrollSnapPort-&gt;scrollPadding;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Length&amp; RenderStyle::scrollPaddingTop() const
</span><span class="lines">@@ -2010,12 +2053,12 @@
</span><span class="cx"> 
</span><span class="cx"> const ScrollSnapAlign&amp; RenderStyle::scrollSnapAlign() const
</span><span class="cx"> {
</span><del>-    return rareNonInheritedData-&gt;m_scrollSnapArea-&gt;alignment;
</del><ins>+    return m_rareNonInheritedData-&gt;scrollSnapArea-&gt;alignment;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const LengthBox&amp; RenderStyle::scrollSnapMargin() const
</span><span class="cx"> {
</span><del>-    return rareNonInheritedData-&gt;m_scrollSnapArea-&gt;scrollSnapMargin;
</del><ins>+    return m_rareNonInheritedData-&gt;scrollSnapArea-&gt;scrollSnapMargin;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Length&amp; RenderStyle::scrollSnapMarginTop() const
</span><span class="lines">@@ -2040,53 +2083,54 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setScrollSnapType(const ScrollSnapType&amp; type)
</span><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapPort.access()-&gt;type = type;
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapPort, type, type);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollPaddingTop(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollPaddingTop(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapPort.access()-&gt;scrollPadding.setTop(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapPort, scrollPadding.top(), WTFMove(length));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollPaddingBottom(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollPaddingBottom(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapPort.access()-&gt;scrollPadding.setBottom(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapPort, scrollPadding.bottom(), WTFMove(length));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollPaddingLeft(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollPaddingLeft(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapPort.access()-&gt;scrollPadding.setLeft(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapPort, scrollPadding.left(), WTFMove(length));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollPaddingRight(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollPaddingRight(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapPort.access()-&gt;scrollPadding.setRight(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapPort, scrollPadding.right(), WTFMove(length));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::setScrollSnapAlign(const ScrollSnapAlign&amp; alignment)
</span><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapArea.access()-&gt;alignment = alignment;
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapArea, alignment, alignment);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollSnapMarginTop(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollSnapMarginTop(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapArea.access()-&gt;scrollSnapMargin.setTop(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapArea, scrollSnapMargin.top(), WTFMove(length));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollSnapMarginBottom(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollSnapMarginBottom(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapArea.access()-&gt;scrollSnapMargin.setBottom(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapArea, scrollSnapMargin.bottom(), WTFMove(length));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollSnapMarginLeft(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollSnapMarginLeft(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapArea.access()-&gt;scrollSnapMargin.setLeft(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapArea, scrollSnapMargin.left(), WTFMove(length));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderStyle::setScrollSnapMarginRight(const Length&amp; length)
</del><ins>+void RenderStyle::setScrollSnapMarginRight(Length&amp;&amp; length)
</ins><span class="cx"> {
</span><del>-    rareNonInheritedData.access()-&gt;m_scrollSnapArea.access()-&gt;scrollSnapMargin.setRight(length);
</del><ins>+    SET_NESTED_VAR(m_rareNonInheritedData, scrollSnapArea, scrollSnapMargin.right(), WTFMove(length));
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::hasReferenceFilterOnly() const
</span><span class="lines">@@ -2093,26 +2137,20 @@
</span><span class="cx"> {
</span><span class="cx">     if (!hasFilter())
</span><span class="cx">         return false;
</span><del>-
-    const FilterOperations&amp; filterOperations = rareNonInheritedData-&gt;m_filter-&gt;m_operations;
-    if (filterOperations.size() != 1)
-        return false;
-
-    const FilterOperation&amp; filterOperation = *filterOperations.at(0);
-    if (filterOperation.type() != FilterOperation::REFERENCE)
-        return false;
-
-    return true;
</del><ins>+    auto&amp; filterOperations = m_rareNonInheritedData-&gt;filter-&gt;operations;
+    return filterOperations.size() == 1 &amp;&amp; filterOperations.at(0)-&gt;type() == FilterOperation::REFERENCE;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderStyle::checkVariablesInCustomProperties()
</span><span class="cx"> {
</span><del>-    if (!rareInheritedData-&gt;m_customProperties-&gt;containsVariables())
</del><ins>+    if (!m_rareInheritedData-&gt;customProperties-&gt;containsVariables)
</ins><span class="cx">         return;
</span><del>-    
</del><ins>+
+    auto&amp; customPropertyData = m_rareInheritedData.access().customProperties.access();
+
</ins><span class="cx">     // Our first pass checks the variables for validity and replaces any properties that became
</span><span class="cx">     // invalid with empty values.
</span><del>-    auto&amp; customProperties = rareInheritedData.access()-&gt;m_customProperties.access()-&gt;values();
</del><ins>+    auto&amp; customProperties = customPropertyData.values;
</ins><span class="cx">     HashSet&lt;AtomicString&gt; invalidProperties;
</span><span class="cx">     for (auto entry : customProperties) {
</span><span class="cx">         if (!entry.value-&gt;containsVariables())
</span><span class="lines">@@ -2142,25 +2180,25 @@
</span><span class="cx">     for (auto&amp; resolvedValue : resolvedValues)
</span><span class="cx">         customProperties.set(resolvedValue-&gt;name(), resolvedValue.copyRef());
</span><span class="cx"> 
</span><del>-    rareInheritedData.access()-&gt;m_customProperties.access()-&gt;setContainsVariables(false);
</del><ins>+    customPropertyData.containsVariables = false;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> float RenderStyle::outlineWidth() const
</span><span class="cx"> {
</span><del>-    if (m_background-&gt;outline().style() == BNONE)
</del><ins>+    if (m_backgroundData-&gt;outline.style() == BNONE)
</ins><span class="cx">         return 0;
</span><span class="cx">     if (outlineStyleIsAuto())
</span><del>-        return std::max(m_background-&gt;outline().width(), RenderTheme::platformFocusRingWidth());
-    return m_background-&gt;outline().width();
</del><ins>+        return std::max(m_backgroundData-&gt;outline.width(), RenderTheme::platformFocusRingWidth());
+    return m_backgroundData-&gt;outline.width();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> float RenderStyle::outlineOffset() const
</span><span class="cx"> {
</span><del>-    if (m_background-&gt;outline().style() == BNONE)
</del><ins>+    if (m_backgroundData-&gt;outline.style() == BNONE)
</ins><span class="cx">         return 0;
</span><span class="cx">     if (outlineStyleIsAuto())
</span><del>-        return (m_background-&gt;outline().offset() + RenderTheme::platformFocusRingOffset(outlineWidth()));
-    return m_background-&gt;outline().offset();
</del><ins>+        return (m_backgroundData-&gt;outline.offset() + RenderTheme::platformFocusRingOffset(outlineWidth()));
+    return m_backgroundData-&gt;outline.offset();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool RenderStyle::shouldPlaceBlockDirectionScrollbarOnLeft() const
</span><span class="lines">@@ -2168,4 +2206,15 @@
</span><span class="cx">     return !isLeftToRightDirection() &amp;&amp; isHorizontalWritingMode();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+#if ENABLE(DASHBOARD_SUPPORT)
+
+void RenderStyle::setDashboardRegion(int type, const String&amp; label, Length&amp;&amp; top, Length&amp;&amp; right, Length&amp;&amp; bottom, Length&amp;&amp; left, bool append)
+{
+    if (!append)
+        m_rareNonInheritedData.access().dashboardRegions.clear();
+    m_rareNonInheritedData.access().dashboardRegions.append({ label, { WTFMove(top), WTFMove(right), WTFMove(bottom), WTFMove(left) }, type });
+}
+
+#endif
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 2000 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Dirk Mueller (mueller@kde.org)
</span><del>- * Copyright (C) 2003-2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -82,20 +82,21 @@
</span><span class="cx"> #include &quot;TextSizeAdjustment.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-template&lt;typename T, typename U&gt; inline bool compareEqual(const T&amp; t, const U&amp; u) { return t == static_cast&lt;const T&amp;&gt;(u); }
</del><ins>+#define SET_VAR(group, variable, value) do { \
+        if (!compareEqual(group-&gt;variable, value)) \
+            group.access().variable = value; \
+    } while (0)
</ins><span class="cx"> 
</span><del>-#define SET_VAR(group, variable, value) \
-    if (!compareEqual(group-&gt;variable, value)) \
-        group.access()-&gt;variable = value
</del><ins>+#define SET_NESTED_VAR(group, parentVariable, variable, value) do { \
+        if (!compareEqual(group-&gt;parentVariable-&gt;variable, value)) \
+            group.access().parentVariable.access().variable = value; \
+    } while (0)
</ins><span class="cx"> 
</span><del>-#define SET_NESTED_VAR(group, parentVariable, variable, value) \
-    if (!compareEqual(group-&gt;parentVariable-&gt;variable, value)) \
-        group.access()-&gt;parentVariable.access()-&gt;variable = value
</del><ins>+#define SET_BORDERVALUE_COLOR(group, variable, value) do { \
+        if (!compareEqual(group-&gt;variable.color(), value)) \
+            group.access().variable.setColor(value); \
+    } while (0)
</ins><span class="cx"> 
</span><del>-#define SET_BORDERVALUE_COLOR(group, variable, value) \
-    if (!compareEqual(group-&gt;variable.color(), value)) \
-        group.access()-&gt;variable.setColor(value)
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class BorderData;
</span><span class="lines">@@ -111,386 +112,35 @@
</span><span class="cx"> class StyleImage;
</span><span class="cx"> class StyleInheritedData;
</span><span class="cx"> class StyleResolver;
</span><ins>+class StyleScrollSnapArea;
+class StyleScrollSnapPort;
</ins><span class="cx"> class TransformationMatrix;
</span><span class="cx"> 
</span><del>-#if ENABLE(CSS_SCROLL_SNAP)
-class StyleScrollSnapPort;
-class StyleScrollSnapArea;
</del><ins>+struct ScrollSnapAlign;
</ins><span class="cx"> struct ScrollSnapType;
</span><del>-struct ScrollSnapAlign;
-#endif
</del><span class="cx"> 
</span><del>-typedef Vector&lt;std::unique_ptr&lt;RenderStyle&gt;, 4&gt; PseudoStyleCache;
</del><ins>+using PseudoStyleCache = Vector&lt;std::unique_ptr&lt;RenderStyle&gt;, 4&gt;;
</ins><span class="cx"> 
</span><ins>+template&lt;typename T, typename U&gt; inline bool compareEqual(const T&amp; t, const U&amp; u) { return t == static_cast&lt;const T&amp;&gt;(u); }
+
</ins><span class="cx"> class RenderStyle {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><del>-    
-    friend class CSSPropertyAnimationWrapperMap; // Used by CSS animations. We can't allow them to animate based off visited colors.
-    friend class ApplyStyleCommand; // Editing has to only reveal unvisited info.
-    friend class EditingStyle; // Editing has to only reveal unvisited info.
-    friend class ComputedStyleExtractor; // Ignores visited styles, so needs to be able to see unvisited info.
-    friend class PropertyWrapperMaybeInvalidColor; // Used by CSS animations. We can't allow them to animate based off visited colors.
-    friend class RenderSVGResource; // FIXME: Needs to alter the visited state by hand. Should clean the SVG code up and move it into RenderStyle perhaps.
-    friend class RenderTreeAsText; // FIXME: Only needed so the render tree can keep lying and dump the wrong colors.  Rebaselining would allow this to be yanked.
-    friend class StyleBuilderConverter; // Sets members directly.
-    friend class StyleBuilderCustom; // Sets members directly.
-    friend class StyleBuilderFunctions; // Sets members directly.
-    friend class StyleResolver; // Sets members directly.
</del><span class="cx"> 
</span><del>-public:
-    struct NonInheritedFlags {
-        NonInheritedFlags()
-        {
-            // The default values should all be zero.
-            ASSERT(!initialOverflowX());
-            ASSERT(!initialOverflowY());
-            ASSERT(!initialClear());
-            ASSERT(!initialDisplay());
-            ASSERT(!initialUnicodeBidi());
-            ASSERT(!initialPosition());
-            ASSERT(!initialVerticalAlign());
-            ASSERT(!initialFloating());
-            ASSERT(!initialTableLayout());
-
-            m_flags = 0;
-        }
-
-        bool operator==(const NonInheritedFlags&amp; other) const
-        {
-            return m_flags == other.m_flags;
-        }
-
-        bool operator!=(const NonInheritedFlags&amp; other) const { return !(*this == other); }
-
-        void copyNonInheritedFrom(const NonInheritedFlags&amp; other)
-        {
-            // Only a subset is copied because NonInheritedFlags contains a bunch of stuff other than real style data.
-            uint64_t nonInheritedMask = overflowMask &lt;&lt; overflowXOffset
-                | overflowMask &lt;&lt; overflowYOffset
-                | clearMask &lt;&lt; clearOffset
-                | displayMask &lt;&lt; effectiveDisplayOffset
-                | positionMask &lt;&lt; positionOffset
-                | displayMask &lt;&lt; originalDisplayOffset
-                | unicodeBidiMask &lt;&lt; unicodeBidiOffset
-                | verticalAlignMask &lt;&lt; verticalAlignOffset
-                | floatingMask &lt;&lt; floatingOffset
-                | oneBitMask &lt;&lt; explicitInheritanceOffset
-                | tableLayoutBitMask &lt;&lt; tableLayoutOffset
-                | hasViewportUnitsBitMask &lt;&lt; hasViewportUnitsOffset;
-
-            m_flags = (m_flags &amp; ~nonInheritedMask) | (other.m_flags &amp; nonInheritedMask);
-        }
-
-        EOverflow overflowX() const { return static_cast&lt;EOverflow&gt;(getValue(overflowMask, overflowXOffset)); }
-        void setOverflowX(EOverflow overflowX) { updateValue(overflowX, overflowMask, overflowXOffset); }
-
-        EOverflow overflowY() const { return static_cast&lt;EOverflow&gt;(getValue(overflowMask, overflowYOffset)); }
-        void setOverflowY(EOverflow overflowY) { updateValue(overflowY, overflowMask, overflowYOffset); }
-
-        EClear clear() const { return static_cast&lt;EClear&gt;(getValue(clearMask, clearOffset)); }
-        void setClear(EClear clear) { updateValue(clear, clearMask, clearOffset); }
-
-        EDisplay effectiveDisplay() const { return static_cast&lt;EDisplay&gt;(getValue(displayMask, effectiveDisplayOffset)); }
-        void setEffectiveDisplay(EDisplay effectiveDisplay) { updateValue(effectiveDisplay, displayMask, effectiveDisplayOffset); }
-
-        EPosition position() const { return static_cast&lt;EPosition&gt;(getValue(positionMask, positionOffset)); }
-        void setPosition(EPosition position) { updateValue(position, positionMask, positionOffset); }
-
-        EDisplay originalDisplay() const { return static_cast&lt;EDisplay&gt;(getValue(displayMask, originalDisplayOffset)); }
-        void setOriginalDisplay(EDisplay originalDisplay) { updateValue(originalDisplay, displayMask, originalDisplayOffset); }
-
-        EUnicodeBidi unicodeBidi() const { return static_cast&lt;EUnicodeBidi&gt;(getValue(unicodeBidiMask, unicodeBidiOffset)); }
-        void setUnicodeBidi(EUnicodeBidi unicodeBidi) { updateValue(unicodeBidi, unicodeBidiMask, unicodeBidiOffset); }
-
-        bool hasViewportUnits() const { return getBoolean(hasViewportUnitsOffset); }
-        void setHasViewportUnits(bool value) { updateBoolean(value, hasViewportUnitsOffset); }
-
-        EVerticalAlign verticalAlign() const { return static_cast&lt;EVerticalAlign&gt;(getValue(verticalAlignMask, verticalAlignOffset)); }
-        void setVerticalAlign(EVerticalAlign verticalAlign) { updateValue(verticalAlign, verticalAlignMask, verticalAlignOffset); }
-
-        bool hasExplicitlyInheritedProperties() const { return getBoolean(explicitInheritanceOffset); }
-        void setHasExplicitlyInheritedProperties(bool value) { updateBoolean(value, explicitInheritanceOffset); }
-
-        bool isFloating() const { return floating() != NoFloat; }
-        EFloat floating() const { return static_cast&lt;EFloat&gt;(getValue(floatingMask, floatingOffset)); }
-        void setFloating(EFloat floating) { updateValue(floating, floatingMask, floatingOffset); }
-
-        bool hasAnyPublicPseudoStyles() const { return PUBLIC_PSEUDOID_MASK &amp; getValue(pseudoBitsMask, pseudoBitsOffset); }
-        bool hasPseudoStyle(PseudoId pseudo) const
-        {
-            ASSERT(pseudo &gt; NOPSEUDO);
-            ASSERT(pseudo &lt; FIRST_INTERNAL_PSEUDOID);
-            return (oneBitMask &lt;&lt; (pseudoBitsOffset - 1 + pseudo)) &amp; m_flags;
-        }
-        void setHasPseudoStyle(PseudoId pseudo)
-        {
-            ASSERT(pseudo &gt; NOPSEUDO);
-            ASSERT(pseudo &lt; FIRST_INTERNAL_PSEUDOID);
-            m_flags |= oneBitMask &lt;&lt; (pseudoBitsOffset - 1 + pseudo);
-        }
-        void setHasPseudoStyles(PseudoIdSet pseudoIdSet)
-        {
-            ASSERT(pseudoIdSet);
-            uint64_t rawPseudoIdSet = pseudoIdSet.data();
-            ASSERT((rawPseudoIdSet &amp; PUBLIC_PSEUDOID_MASK) == rawPseudoIdSet);
-            static_assert(pseudoBitsOffset &gt;= 1, &quot;(pseudoBitsOffset - 1) should be valid.&quot;);
-            m_flags |= (static_cast&lt;uint64_t&gt;(rawPseudoIdSet) &lt;&lt; (pseudoBitsOffset - 1));
-        }
-
-        ETableLayout tableLayout() const { return static_cast&lt;ETableLayout&gt;(getValue(tableLayoutBitMask, tableLayoutOffset)); }
-        void setTableLayout(ETableLayout tableLayout) { updateValue(tableLayout, tableLayoutBitMask, tableLayoutOffset); }
-
-        PseudoId styleType() const { return static_cast&lt;PseudoId&gt;(getValue(styleTypeMask, styleTypeOffset)); }
-        void setStyleType(PseudoId styleType) { updateValue(styleType, styleTypeMask, styleTypeOffset); }
-
-        bool isUnique() const { return getBoolean(isUniqueOffset); }
-        void setIsUnique() { updateBoolean(true, isUniqueOffset); }
-
-        bool emptyState() const { return getBoolean(emptyStateOffset);  }
-        void setEmptyState(bool value) { updateBoolean(value, emptyStateOffset); }
-
-        bool firstChildState() const { return getBoolean(firstChildStateOffset);  }
-        void setFirstChildState(bool value) { updateBoolean(value, firstChildStateOffset); }
-
-        bool lastChildState() const { return getBoolean(lastChildStateOffset);  }
-        void setLastChildState(bool value) { updateBoolean(value, lastChildStateOffset); }
-
-        bool affectedByHover() const { return getBoolean(affectedByHoverOffset); }
-        void setAffectedByHover(bool value) { updateBoolean(value, affectedByHoverOffset); }
-
-        bool affectedByActive() const { return getBoolean(affectedByActiveOffset); }
-        void setAffectedByActive(bool value) { updateBoolean(value, affectedByActiveOffset); }
-
-        bool affectedByDrag() const { return getBoolean(affectedByDragOffset); }
-        void setAffectedByDrag(bool value) { updateBoolean(value, affectedByDragOffset); }
-
-        bool isLink() const { return getBoolean(isLinkOffset); }
-        void setIsLink(bool value) { updateBoolean(value, isLinkOffset); }
-
-        bool hasExplicitlySetDirection() const { return getBoolean(hasExplicitlySetDirectionOffset); }
-        void setHasExplicitlySetDirection(bool value) { updateBoolean(value, hasExplicitlySetDirectionOffset); }
-
-        bool hasExplicitlySetWritingMode() const { return getBoolean(hasExplicitlySetWritingModeOffset); }
-        void setHasExplicitlySetWritingMode(bool value) { updateBoolean(value, hasExplicitlySetWritingModeOffset); }
-
-        static ptrdiff_t flagsMemoryOffset() { return OBJECT_OFFSETOF(NonInheritedFlags, m_flags); }
-        static uint64_t flagIsaffectedByActive() { return oneBitMask &lt;&lt; affectedByActiveOffset; }
-        static uint64_t flagIsaffectedByHover() { return oneBitMask &lt;&lt; affectedByHoverOffset; }
-        static uint64_t flagPseudoStyle(PseudoId pseudo) { return oneBitMask &lt;&lt; (pseudoBitsOffset - 1 + pseudo); }
-        static uint64_t setFirstChildStateFlags() { return flagFirstChildState() | flagIsUnique(); }
-        static uint64_t setLastChildStateFlags() { return flagLastChildState() | flagIsUnique(); }
-    private:
-        void updateBoolean(bool isSet, uint64_t offset)
-        {
-            if (isSet)
-                m_flags |= (oneBitMask &lt;&lt; offset);
-            else
-                m_flags &amp;= ~(oneBitMask &lt;&lt; offset);
-        }
-
-        bool getBoolean(uint64_t offset) const
-        {
-            return m_flags &amp; (oneBitMask &lt;&lt; offset);
-        }
-
-        void updateValue(uint8_t newValue, uint64_t positionIndependentMask, uint64_t offset)
-        {
-            ASSERT(!(newValue &amp; ~positionIndependentMask));
-            uint64_t positionDependentMask = positionIndependentMask &lt;&lt; offset;
-            m_flags = (m_flags &amp; ~positionDependentMask) | (static_cast&lt;uint64_t&gt;(newValue) &lt;&lt; offset);
-        }
-
-        unsigned getValue(uint64_t positionIndependentMask, uint64_t offset) const
-        {
-            return static_cast&lt;unsigned&gt;((m_flags &gt;&gt; offset) &amp; positionIndependentMask);
-        }
-
-        static uint64_t flagIsUnique() { return oneBitMask &lt;&lt; isUniqueOffset; }
-        static uint64_t flagFirstChildState() { return oneBitMask &lt;&lt; firstChildStateOffset; }
-        static uint64_t flagLastChildState() { return oneBitMask &lt;&lt; lastChildStateOffset; }
-
-        // To type the bit mask properly on 64bits.
-        static const uint64_t oneBitMask = 0x1;
-
-        // Byte 1.
-        static const unsigned overflowBitCount = 3;
-        static const uint64_t overflowMask = (oneBitMask &lt;&lt; overflowBitCount) - 1;
-        static const unsigned overflowXOffset = 0;
-        static const unsigned overflowYOffset = overflowXOffset + overflowBitCount;
-        static const unsigned clearBitCount = 2;
-        static const uint64_t clearMask = (oneBitMask &lt;&lt; clearBitCount) - 1;
-        static const unsigned clearOffset = overflowYOffset + overflowBitCount;
-
-        // Byte 2.
-        static const unsigned displayBitCount = 5;
-        static const uint64_t displayMask = (oneBitMask &lt;&lt; displayBitCount) - 1;
-        static const unsigned effectiveDisplayOffset = clearOffset + clearBitCount;
-        static const unsigned positionBitCount = 3;
-        static const uint64_t positionMask = (oneBitMask &lt;&lt; positionBitCount) - 1;
-        static const unsigned positionOffset = effectiveDisplayOffset + displayBitCount;
-
-        // Byte 3.
-        static const unsigned originalDisplayOffset = positionOffset + positionBitCount;
-        static const unsigned unicodeBidiBitCount = 3;
-        static const uint64_t unicodeBidiMask = (oneBitMask &lt;&lt; unicodeBidiBitCount) - 1;
-        static const unsigned unicodeBidiOffset = originalDisplayOffset + displayBitCount;
-
-        // Byte 4.
-        static const unsigned floatingBitCount = 2;
-        static const uint64_t floatingMask = (oneBitMask &lt;&lt; floatingBitCount) - 1;
-        static const unsigned floatingOffset = unicodeBidiOffset + unicodeBidiBitCount;
-        static const unsigned hasExplicitlySetDirectionBitcount = 1;
-        static const unsigned hasExplicitlySetDirectionOffset = floatingOffset + floatingBitCount;
-        static const unsigned hasExplicitlySetWritingModeBitcount = 1;
-        static const unsigned hasExplicitlySetWritingModeOffset = hasExplicitlySetDirectionOffset + hasExplicitlySetDirectionBitcount;
-
-        // Byte 5.
-        static const unsigned explicitInheritanceBitCount = 1;
-        static const unsigned explicitInheritanceOffset = hasExplicitlySetWritingModeOffset + hasExplicitlySetWritingModeBitcount;
-        static const unsigned tableLayoutBitCount = 1;
-        static const uint64_t tableLayoutBitMask = oneBitMask;
-        static const unsigned tableLayoutOffset = explicitInheritanceOffset + explicitInheritanceBitCount;
-        static const unsigned verticalAlignBitCount = 4;
-        static const unsigned verticalAlignPadding = 2;
-        static const unsigned verticalAlignAndPaddingBitCount = verticalAlignBitCount + verticalAlignPadding;
-        static const uint64_t verticalAlignMask = (oneBitMask &lt;&lt; verticalAlignBitCount) - 1;
-        static const unsigned verticalAlignOffset = tableLayoutOffset + tableLayoutBitCount;
-
-        // Byte 6.
-        static const unsigned pseudoBitsBitCount = 7;
-        static const uint64_t pseudoBitsMask = (oneBitMask &lt;&lt; pseudoBitsBitCount) - 1;
-        static const unsigned pseudoBitsOffset = verticalAlignOffset + verticalAlignBitCount;
-
-        static const unsigned hasViewportUnitsBitCount = 1;
-        static const uint64_t hasViewportUnitsBitMask = (oneBitMask &lt;&lt; hasViewportUnitsBitCount) - 1;
-        static const unsigned hasViewportUnitsOffset = pseudoBitsOffset + pseudoBitsBitCount;
-
-        // Byte 7.
-        static const unsigned styleTypeBitCount = 6;
-        static const unsigned styleTypePadding = 2;
-        static const unsigned styleTypeAndPaddingBitCount = styleTypeBitCount + styleTypePadding;
-        static const uint64_t styleTypeMask = (oneBitMask &lt;&lt; styleTypeAndPaddingBitCount) - 1;
-        static const unsigned styleTypeOffset = hasViewportUnitsBitCount + hasViewportUnitsOffset;
-
-        // Byte 8.
-        static const unsigned isUniqueOffset = styleTypeOffset + styleTypeAndPaddingBitCount;
-        static const unsigned emptyStateOffset = isUniqueOffset + 1;
-        static const unsigned firstChildStateOffset = emptyStateOffset + 1;
-        static const unsigned lastChildStateOffset = firstChildStateOffset + 1;
-        static const unsigned affectedByHoverOffset = lastChildStateOffset + 1;
-        static const unsigned affectedByActiveOffset = affectedByHoverOffset + 1;
-        static const unsigned affectedByDragOffset = affectedByActiveOffset + 1;
-        static const unsigned isLinkOffset = affectedByDragOffset + 1;
-
-        // 60 bits are assigned. There are 4 bits available currently used as padding to improve code generation.
-        // If you add more style bits here, you will also need to update RenderStyle::copyNonInheritedFrom().
-        uint64_t m_flags;
-    };
-
-protected:
-
-    // non-inherited attributes
-    DataRef&lt;StyleBoxData&gt; m_box;
-    DataRef&lt;StyleVisualData&gt; visual;
-    DataRef&lt;StyleBackgroundData&gt; m_background;
-    DataRef&lt;StyleSurroundData&gt; surround;
-    DataRef&lt;StyleRareNonInheritedData&gt; rareNonInheritedData;
-
-    // inherited attributes
-    DataRef&lt;StyleRareInheritedData&gt; rareInheritedData;
-    DataRef&lt;StyleInheritedData&gt; inherited;
-
-    // list of associated pseudo styles
-    std::unique_ptr&lt;PseudoStyleCache&gt; m_cachedPseudoStyles;
-
-    DataRef&lt;SVGRenderStyle&gt; m_svgStyle;
-
-// !START SYNC!: Keep this in sync with the copy constructor in RenderStyle.cpp and implicitlyInherited() in StyleResolver.cpp
-
-    // inherit
-    struct InheritedFlags {
-        bool operator==(const InheritedFlags&amp; other) const
-        {
-            return (_empty_cells == other._empty_cells)
-                &amp;&amp; (_caption_side == other._caption_side)
-                &amp;&amp; (_list_style_type == other._list_style_type)
-                &amp;&amp; (_list_style_position == other._list_style_position)
-                &amp;&amp; (_visibility == other._visibility)
-                &amp;&amp; (_text_align == other._text_align)
-                &amp;&amp; (_text_transform == other._text_transform)
-                &amp;&amp; (_text_decorations == other._text_decorations)
-                &amp;&amp; (_cursor_style == other._cursor_style)
-#if ENABLE(CURSOR_VISIBILITY)
-                &amp;&amp; (m_cursorVisibility == other.m_cursorVisibility)
-#endif
-                &amp;&amp; (_direction == other._direction)
-                &amp;&amp; (_white_space == other._white_space)
-                &amp;&amp; (_border_collapse == other._border_collapse)
-                &amp;&amp; (_box_direction == other._box_direction)
-                &amp;&amp; (m_rtlOrdering == other.m_rtlOrdering)
-                &amp;&amp; (m_printColorAdjust == other.m_printColorAdjust)
-                &amp;&amp; (_pointerEvents == other._pointerEvents)
-                &amp;&amp; (_insideLink == other._insideLink)
-                &amp;&amp; (_insideDefaultButton == other._insideDefaultButton)
-                &amp;&amp; (m_writingMode == other.m_writingMode);
-        }
-
-        bool operator!=(const InheritedFlags&amp; other) const { return !(*this == other); }
-
-        unsigned _empty_cells : 1; // EEmptyCell
-        unsigned _caption_side : 2; // ECaptionSide
-        unsigned _list_style_type : 7; // EListStyleType
-        unsigned _list_style_position : 1; // EListStylePosition
-        unsigned _visibility : 2; // EVisibility
-        unsigned _text_align : 4; // ETextAlign
-        unsigned _text_transform : 2; // ETextTransform
-        unsigned _text_decorations : TextDecorationBits;
-        unsigned _cursor_style : 6; // ECursor
-#if ENABLE(CURSOR_VISIBILITY)
-        unsigned m_cursorVisibility : 1; // CursorVisibility
-#endif
-        unsigned _direction : 1; // TextDirection
-        unsigned _white_space : 3; // EWhiteSpace
-        // 32 bits
-        unsigned _border_collapse : 1; // EBorderCollapse
-        unsigned _box_direction : 1; // EBoxDirection (CSS3 box_direction property, flexible box layout module)
-
-        // non CSS2 inherited
-        unsigned m_rtlOrdering : 1; // Order
-        unsigned m_printColorAdjust : PrintColorAdjustBits;
-        unsigned _pointerEvents : 4; // EPointerEvents
-        unsigned _insideLink : 2; // EInsideLink
-        unsigned _insideDefaultButton : 1;
-        // 44 bits
-
-        // CSS Text Layout Module Level 3: Vertical writing support
-        unsigned m_writingMode : 2; // WritingMode
-        // 46 bits
-    } inherited_flags;
-
-// don't inherit
-    NonInheritedFlags noninherited_flags;
-
-#if !ASSERT_DISABLED || ENABLE(SECURITY_ASSERTIONS)
-    bool m_deletionHasBegun { false };
-#endif
-
-// !END SYNC!
</del><span class="cx"> private:
</span><ins>+    enum CloneTag { Clone };
</ins><span class="cx">     enum CreateDefaultStyleTag { CreateDefaultStyle };
</span><del>-    RenderStyle(CreateDefaultStyleTag);
</del><span class="cx"> 
</span><del>-    static RenderStyle&amp; defaultStyle();
-
</del><span class="cx"> public:
</span><span class="cx">     RenderStyle(RenderStyle&amp;&amp;) = default;
</span><span class="cx">     RenderStyle&amp; operator=(RenderStyle&amp;&amp;) = default;
</span><ins>+    ~RenderStyle();
</ins><span class="cx"> 
</span><del>-    // This is not a true copy constructor. It doesn't copy pseudo style caches for example.
-    enum CloneTag { Clone };
</del><ins>+    RenderStyle replace(RenderStyle&amp;&amp;) WARN_UNUSED_RETURN;
+
+    explicit RenderStyle(CreateDefaultStyleTag);
</ins><span class="cx">     RenderStyle(const RenderStyle&amp;, CloneTag);
</span><span class="cx"> 
</span><del>-    ~RenderStyle();
</del><ins>+    static RenderStyle&amp; defaultStyle();
</ins><span class="cx"> 
</span><span class="cx">     static RenderStyle create();
</span><span class="cx">     static std::unique_ptr&lt;RenderStyle&gt; createPtr();
</span><span class="lines">@@ -505,6 +155,12 @@
</span><span class="cx">     bool deletionHasBegun() const { return m_deletionHasBegun; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    bool operator==(const RenderStyle&amp;) const;
+    bool operator!=(const RenderStyle&amp; other) const { return !(*this == other); }
+
+    void inheritFrom(const RenderStyle&amp; inheritParent);
+    void copyNonInheritedFrom(const RenderStyle&amp;);
+
</ins><span class="cx">     ContentPosition resolvedJustifyContentPosition(const StyleContentAlignmentData&amp; normalValueBehavior) const;
</span><span class="cx">     ContentDistributionType resolvedJustifyContentDistribution(const StyleContentAlignmentData&amp; normalValueBehavior) const;
</span><span class="cx">     ContentPosition resolvedAlignContentPosition(const StyleContentAlignmentData&amp; normalValueBehavior) const;
</span><span class="lines">@@ -514,12 +170,9 @@
</span><span class="cx">     StyleSelfAlignmentData resolvedJustifyItems(ItemPosition normalValueBehaviour) const;
</span><span class="cx">     StyleSelfAlignmentData resolvedJustifySelf(const RenderStyle&amp; parentStyle, ItemPosition normalValueBehaviour) const;
</span><span class="cx"> 
</span><del>-    void inheritFrom(const RenderStyle&amp; inheritParent);
-    void copyNonInheritedFrom(const RenderStyle*);
</del><ins>+    PseudoId styleType() const { return m_nonInheritedFlags.styleType(); }
+    void setStyleType(PseudoId styleType) { m_nonInheritedFlags.setStyleType(styleType); }
</ins><span class="cx"> 
</span><del>-    PseudoId styleType() const { return noninherited_flags.styleType(); }
-    void setStyleType(PseudoId styleType) { noninherited_flags.setStyleType(styleType); }
-
</del><span class="cx">     RenderStyle* getCachedPseudoStyle(PseudoId) const;
</span><span class="cx">     RenderStyle* addCachedPseudoStyle(std::unique_ptr&lt;RenderStyle&gt;);
</span><span class="cx">     void removeCachedPseudoStyle(PseudoId);
</span><span class="lines">@@ -526,116 +179,93 @@
</span><span class="cx"> 
</span><span class="cx">     const PseudoStyleCache* cachedPseudoStyles() const { return m_cachedPseudoStyles.get(); }
</span><span class="cx"> 
</span><del>-    void setCustomPropertyValue(const AtomicString&amp; name, const RefPtr&lt;CSSCustomPropertyValue&gt;&amp; value) { rareInheritedData.access()-&gt;m_customProperties.access()-&gt;setCustomPropertyValue(name, value); }
-    RefPtr&lt;CSSCustomPropertyValue&gt; getCustomPropertyValue(const AtomicString&amp; name) const { return rareInheritedData-&gt;m_customProperties-&gt;getCustomPropertyValue(name); }
-    bool hasCustomProperty(const AtomicString&amp; name) const { return rareInheritedData-&gt;m_customProperties-&gt;hasCustomProperty(name); }
-    const CustomPropertyValueMap&amp; customProperties() const { return rareInheritedData-&gt;m_customProperties-&gt;m_values; }
</del><ins>+    const CustomPropertyValueMap&amp; customProperties() const { return m_rareInheritedData-&gt;customProperties-&gt;values; }
+    void setCustomPropertyValue(const AtomicString&amp; name, Ref&lt;CSSCustomPropertyValue&gt;&amp;&amp; value) { return m_rareInheritedData.access().customProperties.access().setCustomPropertyValue(name, WTFMove(value)); }
</ins><span class="cx"> 
</span><del>-    void setHasViewportUnits(bool hasViewportUnits = true) { noninherited_flags.setHasViewportUnits(hasViewportUnits); }
-    bool hasViewportUnits() const { return noninherited_flags.hasViewportUnits(); }
</del><ins>+    void setHasViewportUnits(bool hasViewportUnits = true) { m_nonInheritedFlags.setHasViewportUnits(hasViewportUnits); }
+    bool hasViewportUnits() const { return m_nonInheritedFlags.hasViewportUnits(); }
</ins><span class="cx"> 
</span><del>-    bool affectedByHover() const { return noninherited_flags.affectedByHover(); }
-    bool affectedByActive() const { return noninherited_flags.affectedByActive(); }
-    bool affectedByDrag() const { return noninherited_flags.affectedByDrag(); }
</del><ins>+    bool affectedByHover() const { return m_nonInheritedFlags.affectedByHover(); }
+    bool affectedByActive() const { return m_nonInheritedFlags.affectedByActive(); }
+    bool affectedByDrag() const { return m_nonInheritedFlags.affectedByDrag(); }
</ins><span class="cx"> 
</span><del>-    void setAffectedByHover() { noninherited_flags.setAffectedByHover(true); }
-    void setAffectedByActive() { noninherited_flags.setAffectedByActive(true); }
-    void setAffectedByDrag() { noninherited_flags.setAffectedByDrag(true); }
</del><ins>+    void setAffectedByHover() { m_nonInheritedFlags.setAffectedByHover(true); }
+    void setAffectedByActive() { m_nonInheritedFlags.setAffectedByActive(true); }
+    void setAffectedByDrag() { m_nonInheritedFlags.setAffectedByDrag(true); }
</ins><span class="cx"> 
</span><span class="cx">     void setColumnStylesFromPaginationMode(const Pagination::Mode&amp;);
</span><span class="cx">     
</span><del>-    bool operator==(const RenderStyle&amp; other) const;
-    bool operator!=(const RenderStyle&amp; other) const { return !(*this == other); }
-    bool isFloating() const { return noninherited_flags.isFloating(); }
-    bool hasMargin() const { return !surround-&gt;margin.isZero(); }
-    bool hasBorder() const { return surround-&gt;border.hasBorder(); }
-    bool hasBorderFill() const { return surround-&gt;border.hasFill(); }
</del><ins>+    bool isFloating() const { return m_nonInheritedFlags.isFloating(); }
+    bool hasMargin() const { return !m_surroundData-&gt;margin.isZero(); }
+    bool hasBorder() const { return m_surroundData-&gt;border.hasBorder(); }
+    bool hasBorderFill() const { return m_surroundData-&gt;border.hasFill(); }
</ins><span class="cx">     bool hasVisibleBorderDecoration() const { return hasVisibleBorder() || hasBorderFill(); }
</span><del>-    bool hasVisibleBorder() const { return surround-&gt;border.hasVisibleBorder(); }
-    bool hasPadding() const { return !surround-&gt;padding.isZero(); }
-    bool hasOffset() const { return !surround-&gt;offset.isZero(); }
</del><ins>+    bool hasVisibleBorder() const { return m_surroundData-&gt;border.hasVisibleBorder(); }
+    bool hasPadding() const { return !m_surroundData-&gt;padding.isZero(); }
+    bool hasOffset() const { return !m_surroundData-&gt;offset.isZero(); }
</ins><span class="cx">     bool hasMarginBeforeQuirk() const { return marginBefore().hasQuirk(); }
</span><span class="cx">     bool hasMarginAfterQuirk() const { return marginAfter().hasQuirk(); }
</span><span class="cx"> 
</span><del>-    bool hasBackgroundImage() const { return m_background-&gt;background().hasImage(); }
-    bool hasFixedBackgroundImage() const { return m_background-&gt;background().hasFixedImage(); }
-    
</del><ins>+    bool hasBackgroundImage() const { return m_backgroundData-&gt;background.hasImage(); }
+    bool hasFixedBackgroundImage() const { return m_backgroundData-&gt;background.hasFixedImage(); }
+
</ins><span class="cx">     bool hasEntirelyFixedBackground() const;
</span><del>-    
</del><ins>+
</ins><span class="cx">     bool hasAppearance() const { return appearance() != NoControlPart; }
</span><span class="cx"> 
</span><del>-    bool hasBackground() const
-    {
-        Color color = visitedDependentColor(CSSPropertyBackgroundColor);
-        if (color.isVisible())
-            return true;
-        return hasBackgroundImage();
-    }
</del><ins>+    bool hasBackground() const;
</ins><span class="cx">     
</span><span class="cx">     LayoutBoxExtent imageOutsets(const NinePieceImage&amp;) const;
</span><del>-    bool hasBorderImageOutsets() const
-    {
-        return borderImage().hasImage() &amp;&amp; !borderImage().outset().isZero();
-    }
-    LayoutBoxExtent borderImageOutsets() const
-    {
-        return imageOutsets(borderImage());
-    }
</del><ins>+    bool hasBorderImageOutsets() const { return borderImage().hasImage() &amp;&amp; !borderImage().outset().isZero(); }
+    LayoutBoxExtent borderImageOutsets() const { return imageOutsets(borderImage()); }
</ins><span class="cx"> 
</span><del>-    LayoutBoxExtent maskBoxImageOutsets() const
-    {
-        return imageOutsets(maskBoxImage());
-    }
</del><ins>+    LayoutBoxExtent maskBoxImageOutsets() const { return imageOutsets(maskBoxImage()); }
</ins><span class="cx"> 
</span><span class="cx">     bool hasFilterOutsets() const { return hasFilter() &amp;&amp; filter().hasOutsets(); }
</span><span class="cx">     FilterOutsets filterOutsets() const { return hasFilter() ? filter().outsets() : FilterOutsets(); }
</span><span class="cx"> 
</span><del>-    Order rtlOrdering() const { return static_cast&lt;Order&gt;(inherited_flags.m_rtlOrdering); }
-    void setRTLOrdering(Order o) { inherited_flags.m_rtlOrdering = o; }
</del><ins>+    Order rtlOrdering() const { return static_cast&lt;Order&gt;(m_inheritedFlags.rtlOrdering); }
+    void setRTLOrdering(Order ordering) { m_inheritedFlags.rtlOrdering = ordering; }
</ins><span class="cx"> 
</span><span class="cx">     bool isStyleAvailable() const;
</span><span class="cx"> 
</span><span class="cx">     bool hasAnyPublicPseudoStyles() const;
</span><del>-    bool hasPseudoStyle(PseudoId pseudo) const;
-    void setHasPseudoStyle(PseudoId pseudo);
</del><ins>+    bool hasPseudoStyle(PseudoId) const;
+    void setHasPseudoStyle(PseudoId);
</ins><span class="cx">     void setHasPseudoStyles(PseudoIdSet);
</span><span class="cx">     bool hasUniquePseudoStyle() const;
</span><span class="cx"> 
</span><span class="cx">     // attribute getter methods
</span><span class="cx"> 
</span><del>-    EDisplay display() const { return noninherited_flags.effectiveDisplay(); }
-    EDisplay originalDisplay() const { return noninherited_flags.originalDisplay(); }
</del><ins>+    EDisplay display() const { return m_nonInheritedFlags.effectiveDisplay(); }
</ins><span class="cx"> 
</span><del>-    const Length&amp; left() const { return surround-&gt;offset.left(); }
-    const Length&amp; right() const { return surround-&gt;offset.right(); }
-    const Length&amp; top() const { return surround-&gt;offset.top(); }
-    const Length&amp; bottom() const { return surround-&gt;offset.bottom(); }
</del><ins>+    const Length&amp; left() const { return m_surroundData-&gt;offset.left(); }
+    const Length&amp; right() const { return m_surroundData-&gt;offset.right(); }
+    const Length&amp; top() const { return m_surroundData-&gt;offset.top(); }
+    const Length&amp; bottom() const { return m_surroundData-&gt;offset.bottom(); }
</ins><span class="cx"> 
</span><span class="cx">     // Accessors for positioned object edges that take into account writing mode.
</span><del>-    const Length&amp; logicalLeft() const { return surround-&gt;offset.start(writingMode()); }
-    const Length&amp; logicalRight() const { return surround-&gt;offset.end(writingMode()); }
-    const Length&amp; logicalTop() const { return surround-&gt;offset.before(writingMode()); }
-    const Length&amp; logicalBottom() const { return surround-&gt;offset.after(writingMode()); }
</del><ins>+    const Length&amp; logicalLeft() const { return m_surroundData-&gt;offset.start(writingMode()); }
+    const Length&amp; logicalRight() const { return m_surroundData-&gt;offset.end(writingMode()); }
+    const Length&amp; logicalTop() const { return m_surroundData-&gt;offset.before(writingMode()); }
+    const Length&amp; logicalBottom() const { return m_surroundData-&gt;offset.after(writingMode()); }
</ins><span class="cx"> 
</span><del>-    // Whether or not a positioned element requires normal flow x/y to be computed
-    // to determine its position.
-    bool hasAutoLeftAndRight() const { return left().isAuto() &amp;&amp; right().isAuto(); }
-    bool hasAutoTopAndBottom() const { return top().isAuto() &amp;&amp; bottom().isAuto(); }
</del><ins>+    // Whether or not a positioned element requires normal flow x/y to be computed  to determine its position.
</ins><span class="cx">     bool hasStaticInlinePosition(bool horizontal) const { return horizontal ? hasAutoLeftAndRight() : hasAutoTopAndBottom(); }
</span><span class="cx">     bool hasStaticBlockPosition(bool horizontal) const { return horizontal ? hasAutoTopAndBottom() : hasAutoLeftAndRight(); }
</span><span class="cx"> 
</span><del>-    EPosition position() const { return noninherited_flags.position(); }
</del><ins>+    EPosition position() const { return m_nonInheritedFlags.position(); }
</ins><span class="cx">     bool hasOutOfFlowPosition() const { return position() == AbsolutePosition || position() == FixedPosition; }
</span><span class="cx">     bool hasInFlowPosition() const { return position() == RelativePosition || position() == StickyPosition; }
</span><span class="cx">     bool hasViewportConstrainedPosition() const { return position() == FixedPosition || position() == StickyPosition; }
</span><del>-    EFloat floating() const { return noninherited_flags.floating(); }
</del><ins>+    EFloat floating() const { return m_nonInheritedFlags.floating(); }
</ins><span class="cx"> 
</span><del>-    const Length&amp; width() const { return m_box-&gt;width(); }
-    const Length&amp; height() const { return m_box-&gt;height(); }
-    const Length&amp; minWidth() const { return m_box-&gt;minWidth(); }
-    const Length&amp; maxWidth() const { return m_box-&gt;maxWidth(); }
-    const Length&amp; minHeight() const { return m_box-&gt;minHeight(); }
-    const Length&amp; maxHeight() const { return m_box-&gt;maxHeight(); }
</del><ins>+    const Length&amp; width() const { return m_boxData-&gt;width(); }
+    const Length&amp; height() const { return m_boxData-&gt;height(); }
+    const Length&amp; minWidth() const { return m_boxData-&gt;minWidth(); }
+    const Length&amp; maxWidth() const { return m_boxData-&gt;maxWidth(); }
+    const Length&amp; minHeight() const { return m_boxData-&gt;minHeight(); }
+    const Length&amp; maxHeight() const { return m_boxData-&gt;maxHeight(); }
</ins><span class="cx">     
</span><span class="cx">     const Length&amp; logicalWidth() const { return isHorizontalWritingMode() ? width() : height(); }
</span><span class="cx">     const Length&amp; logicalHeight() const { return isHorizontalWritingMode() ? height() : width(); }
</span><span class="lines">@@ -644,11 +274,11 @@
</span><span class="cx">     const Length&amp; logicalMinHeight() const { return isHorizontalWritingMode() ? minHeight() : minWidth(); }
</span><span class="cx">     const Length&amp; logicalMaxHeight() const { return isHorizontalWritingMode() ? maxHeight() : maxWidth(); }
</span><span class="cx"> 
</span><del>-    const BorderData&amp; border() const { return surround-&gt;border; }
-    const BorderValue&amp; borderLeft() const { return surround-&gt;border.left(); }
-    const BorderValue&amp; borderRight() const { return surround-&gt;border.right(); }
-    const BorderValue&amp; borderTop() const { return surround-&gt;border.top(); }
-    const BorderValue&amp; borderBottom() const { return surround-&gt;border.bottom(); }
</del><ins>+    const BorderData&amp; border() const { return m_surroundData-&gt;border; }
+    const BorderValue&amp; borderLeft() const { return m_surroundData-&gt;border.left(); }
+    const BorderValue&amp; borderRight() const { return m_surroundData-&gt;border.right(); }
+    const BorderValue&amp; borderTop() const { return m_surroundData-&gt;border.top(); }
+    const BorderValue&amp; borderBottom() const { return m_surroundData-&gt;border.bottom(); }
</ins><span class="cx"> 
</span><span class="cx">     const BorderValue&amp; borderBefore() const;
</span><span class="cx">     const BorderValue&amp; borderAfter() const;
</span><span class="lines">@@ -655,31 +285,31 @@
</span><span class="cx">     const BorderValue&amp; borderStart() const;
</span><span class="cx">     const BorderValue&amp; borderEnd() const;
</span><span class="cx"> 
</span><del>-    const NinePieceImage&amp; borderImage() const { return surround-&gt;border.image(); }
-    StyleImage* borderImageSource() const { return surround-&gt;border.image().image(); }
-    const LengthBox&amp; borderImageSlices() const { return surround-&gt;border.image().imageSlices(); }
-    const LengthBox&amp; borderImageWidth() const { return surround-&gt;border.image().borderSlices(); }
-    const LengthBox&amp; borderImageOutset() const { return surround-&gt;border.image().outset(); }
</del><ins>+    const NinePieceImage&amp; borderImage() const { return m_surroundData-&gt;border.image(); }
+    StyleImage* borderImageSource() const { return m_surroundData-&gt;border.image().image(); }
+    const LengthBox&amp; borderImageSlices() const { return m_surroundData-&gt;border.image().imageSlices(); }
+    const LengthBox&amp; borderImageWidth() const { return m_surroundData-&gt;border.image().borderSlices(); }
+    const LengthBox&amp; borderImageOutset() const { return m_surroundData-&gt;border.image().outset(); }
</ins><span class="cx"> 
</span><del>-    const LengthSize&amp; borderTopLeftRadius() const { return surround-&gt;border.topLeft(); }
-    const LengthSize&amp; borderTopRightRadius() const { return surround-&gt;border.topRight(); }
-    const LengthSize&amp; borderBottomLeftRadius() const { return surround-&gt;border.bottomLeft(); }
-    const LengthSize&amp; borderBottomRightRadius() const { return surround-&gt;border.bottomRight(); }
-    bool hasBorderRadius() const { return surround-&gt;border.hasBorderRadius(); }
</del><ins>+    const LengthSize&amp; borderTopLeftRadius() const { return m_surroundData-&gt;border.topLeft(); }
+    const LengthSize&amp; borderTopRightRadius() const { return m_surroundData-&gt;border.topRight(); }
+    const LengthSize&amp; borderBottomLeftRadius() const { return m_surroundData-&gt;border.bottomLeft(); }
+    const LengthSize&amp; borderBottomRightRadius() const { return m_surroundData-&gt;border.bottomRight(); }
+    bool hasBorderRadius() const { return m_surroundData-&gt;border.hasBorderRadius(); }
</ins><span class="cx"> 
</span><del>-    float borderLeftWidth() const { return surround-&gt;border.borderLeftWidth(); }
-    EBorderStyle borderLeftStyle() const { return surround-&gt;border.left().style(); }
-    bool borderLeftIsTransparent() const { return surround-&gt;border.left().isTransparent(); }
-    float borderRightWidth() const { return surround-&gt;border.borderRightWidth(); }
-    EBorderStyle borderRightStyle() const { return surround-&gt;border.right().style(); }
-    bool borderRightIsTransparent() const { return surround-&gt;border.right().isTransparent(); }
-    float borderTopWidth() const { return surround-&gt;border.borderTopWidth(); }
-    EBorderStyle borderTopStyle() const { return surround-&gt;border.top().style(); }
-    bool borderTopIsTransparent() const { return surround-&gt;border.top().isTransparent(); }
-    float borderBottomWidth() const { return surround-&gt;border.borderBottomWidth(); }
-    EBorderStyle borderBottomStyle() const { return surround-&gt;border.bottom().style(); }
-    bool borderBottomIsTransparent() const { return surround-&gt;border.bottom().isTransparent(); }
-    FloatBoxExtent borderWidth() const { return surround-&gt;border.borderWidth(); }
</del><ins>+    float borderLeftWidth() const { return m_surroundData-&gt;border.borderLeftWidth(); }
+    EBorderStyle borderLeftStyle() const { return m_surroundData-&gt;border.left().style(); }
+    bool borderLeftIsTransparent() const { return m_surroundData-&gt;border.left().isTransparent(); }
+    float borderRightWidth() const { return m_surroundData-&gt;border.borderRightWidth(); }
+    EBorderStyle borderRightStyle() const { return m_surroundData-&gt;border.right().style(); }
+    bool borderRightIsTransparent() const { return m_surroundData-&gt;border.right().isTransparent(); }
+    float borderTopWidth() const { return m_surroundData-&gt;border.borderTopWidth(); }
+    EBorderStyle borderTopStyle() const { return m_surroundData-&gt;border.top().style(); }
+    bool borderTopIsTransparent() const { return m_surroundData-&gt;border.top().isTransparent(); }
+    float borderBottomWidth() const { return m_surroundData-&gt;border.borderBottomWidth(); }
+    EBorderStyle borderBottomStyle() const { return m_surroundData-&gt;border.bottom().style(); }
+    bool borderBottomIsTransparent() const { return m_surroundData-&gt;border.bottom().isTransparent(); }
+    FloatBoxExtent borderWidth() const { return m_surroundData-&gt;border.borderWidth(); }
</ins><span class="cx"> 
</span><span class="cx">     float borderBeforeWidth() const;
</span><span class="cx">     float borderAfterWidth() const;
</span><span class="lines">@@ -689,28 +319,28 @@
</span><span class="cx">     float outlineSize() const { return std::max&lt;float&gt;(0, outlineWidth() + outlineOffset()); }
</span><span class="cx">     float outlineWidth() const;
</span><span class="cx">     bool hasOutline() const { return outlineStyle() &gt; BHIDDEN &amp;&amp; outlineWidth() &gt; 0; }
</span><del>-    EBorderStyle outlineStyle() const { return m_background-&gt;outline().style(); }
-    OutlineIsAuto outlineStyleIsAuto() const { return static_cast&lt;OutlineIsAuto&gt;(m_background-&gt;outline().isAuto()); }
</del><ins>+    EBorderStyle outlineStyle() const { return m_backgroundData-&gt;outline.style(); }
+    OutlineIsAuto outlineStyleIsAuto() const { return static_cast&lt;OutlineIsAuto&gt;(m_backgroundData-&gt;outline.isAuto()); }
</ins><span class="cx">     bool hasOutlineInVisualOverflow() const { return hasOutline() &amp;&amp; outlineSize() &gt; 0; }
</span><span class="cx">     
</span><del>-    EOverflow overflowX() const { return noninherited_flags.overflowX(); }
-    EOverflow overflowY() const { return noninherited_flags.overflowY(); }
</del><ins>+    EOverflow overflowX() const { return m_nonInheritedFlags.overflowX(); }
+    EOverflow overflowY() const { return m_nonInheritedFlags.overflowY(); }
</ins><span class="cx"> 
</span><del>-    EVisibility visibility() const { return static_cast&lt;EVisibility&gt;(inherited_flags._visibility); }
-    EVerticalAlign verticalAlign() const { return noninherited_flags.verticalAlign(); }
-    const Length&amp; verticalAlignLength() const { return m_box-&gt;verticalAlign(); }
</del><ins>+    EVisibility visibility() const { return static_cast&lt;EVisibility&gt;(m_inheritedFlags.visibility); }
+    EVerticalAlign verticalAlign() const { return m_nonInheritedFlags.verticalAlign(); }
+    const Length&amp; verticalAlignLength() const { return m_boxData-&gt;verticalAlign(); }
</ins><span class="cx"> 
</span><del>-    const Length&amp; clipLeft() const { return visual-&gt;clip.left(); }
-    const Length&amp; clipRight() const { return visual-&gt;clip.right(); }
-    const Length&amp; clipTop() const { return visual-&gt;clip.top(); }
-    const Length&amp; clipBottom() const { return visual-&gt;clip.bottom(); }
-    const LengthBox&amp; clip() const { return visual-&gt;clip; }
-    bool hasClip() const { return visual-&gt;hasClip; }
</del><ins>+    const Length&amp; clipLeft() const { return m_visualData-&gt;clip.left(); }
+    const Length&amp; clipRight() const { return m_visualData-&gt;clip.right(); }
+    const Length&amp; clipTop() const { return m_visualData-&gt;clip.top(); }
+    const Length&amp; clipBottom() const { return m_visualData-&gt;clip.bottom(); }
+    const LengthBox&amp; clip() const { return m_visualData-&gt;clip; }
+    bool hasClip() const { return m_visualData-&gt;hasClip; }
</ins><span class="cx"> 
</span><del>-    EUnicodeBidi unicodeBidi() const { return noninherited_flags.unicodeBidi(); }
</del><ins>+    EUnicodeBidi unicodeBidi() const { return m_nonInheritedFlags.unicodeBidi(); }
</ins><span class="cx"> 
</span><del>-    EClear clear() const { return noninherited_flags.clear(); }
-    ETableLayout tableLayout() const { return noninherited_flags.tableLayout(); }
</del><ins>+    EClear clear() const { return m_nonInheritedFlags.clear(); }
+    ETableLayout tableLayout() const { return m_nonInheritedFlags.tableLayout(); }
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT const FontCascade&amp; fontCascade() const;
</span><span class="cx">     WEBCORE_EXPORT const FontMetrics&amp; fontMetrics() const;
</span><span class="lines">@@ -718,277 +348,212 @@
</span><span class="cx">     float specifiedFontSize() const;
</span><span class="cx">     float computedFontSize() const;
</span><span class="cx">     int fontSize() const;
</span><ins>+    std::pair&lt;FontOrientation, NonCJKGlyphOrientation&gt; fontAndGlyphOrientation();
+
</ins><span class="cx"> #if ENABLE(VARIATION_FONTS)
</span><span class="cx">     FontVariationSettings fontVariationSettings() const { return fontDescription().variationSettings(); }
</span><span class="cx"> #endif
</span><del>-    std::pair&lt;FontOrientation, NonCJKGlyphOrientation&gt; fontAndGlyphOrientation();
</del><span class="cx"> 
</span><del>-    const Length&amp; textIndent() const { return rareInheritedData-&gt;indent; }
</del><ins>+    const Length&amp; textIndent() const { return m_rareInheritedData-&gt;indent; }
+    ETextAlign textAlign() const { return static_cast&lt;ETextAlign&gt;(m_inheritedFlags.textAlign); }
+    ETextTransform textTransform() const { return static_cast&lt;ETextTransform&gt;(m_inheritedFlags.textTransform); }
+    TextDecoration textDecorationsInEffect() const { return static_cast&lt;TextDecoration&gt;(m_inheritedFlags.textDecorations); }
+    TextDecoration textDecoration() const { return static_cast&lt;TextDecoration&gt;(m_visualData-&gt;textDecoration); }
+    TextDecorationStyle textDecorationStyle() const { return static_cast&lt;TextDecorationStyle&gt;(m_rareNonInheritedData-&gt;textDecorationStyle); }
+    TextDecorationSkip textDecorationSkip() const { return static_cast&lt;TextDecorationSkip&gt;(m_rareInheritedData-&gt;textDecorationSkip); }
+    TextUnderlinePosition textUnderlinePosition() const { return static_cast&lt;TextUnderlinePosition&gt;(m_rareInheritedData-&gt;textUnderlinePosition); }
+
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    TextIndentLine textIndentLine() const { return static_cast&lt;TextIndentLine&gt;(rareInheritedData-&gt;m_textIndentLine); }
-    TextIndentType textIndentType() const { return static_cast&lt;TextIndentType&gt;(rareInheritedData-&gt;m_textIndentType); }
</del><ins>+    TextIndentLine textIndentLine() const { return static_cast&lt;TextIndentLine&gt;(m_rareInheritedData-&gt;textIndentLine); }
+    TextIndentType textIndentType() const { return static_cast&lt;TextIndentType&gt;(m_rareInheritedData-&gt;textIndentType); }
+    TextAlignLast textAlignLast() const { return static_cast&lt;TextAlignLast&gt;(m_rareInheritedData-&gt;textAlignLast); }
+    TextJustify textJustify() const { return static_cast&lt;TextJustify&gt;(m_rareInheritedData-&gt;textJustify); }
</ins><span class="cx"> #endif
</span><del>-    ETextAlign textAlign() const { return static_cast&lt;ETextAlign&gt;(inherited_flags._text_align); }
-    ETextTransform textTransform() const { return static_cast&lt;ETextTransform&gt;(inherited_flags._text_transform); }
-    TextDecoration textDecorationsInEffect() const { return static_cast&lt;TextDecoration&gt;(inherited_flags._text_decorations); }
-    TextDecoration textDecoration() const { return static_cast&lt;TextDecoration&gt;(visual-&gt;textDecoration); }
-#if ENABLE(CSS3_TEXT)
-    TextAlignLast textAlignLast() const { return static_cast&lt;TextAlignLast&gt;(rareInheritedData-&gt;m_textAlignLast); }
-    TextJustify textJustify() const { return static_cast&lt;TextJustify&gt;(rareInheritedData-&gt;m_textJustify); }
-#endif // CSS3_TEXT
-    TextDecorationStyle textDecorationStyle() const { return static_cast&lt;TextDecorationStyle&gt;(rareNonInheritedData-&gt;m_textDecorationStyle); }
-    TextDecorationSkip textDecorationSkip() const { return static_cast&lt;TextDecorationSkip&gt;(rareInheritedData-&gt;m_textDecorationSkip); }
-    TextUnderlinePosition textUnderlinePosition() const { return static_cast&lt;TextUnderlinePosition&gt;(rareInheritedData-&gt;m_textUnderlinePosition); }
</del><span class="cx"> 
</span><span class="cx">     const Length&amp; wordSpacing() const;
</span><span class="cx">     float letterSpacing() const;
</span><span class="cx"> 
</span><del>-    float zoom() const { return visual-&gt;m_zoom; }
-    float effectiveZoom() const { return rareInheritedData-&gt;m_effectiveZoom; }
</del><ins>+    float zoom() const { return m_visualData-&gt;zoom; }
+    float effectiveZoom() const { return m_rareInheritedData-&gt;effectiveZoom; }
</ins><span class="cx">     
</span><del>-    TextZoom textZoom() const { return static_cast&lt;TextZoom&gt;(rareInheritedData-&gt;m_textZoom); }
</del><ins>+    TextZoom textZoom() const { return static_cast&lt;TextZoom&gt;(m_rareInheritedData-&gt;textZoom); }
</ins><span class="cx"> 
</span><del>-    TextDirection direction() const { return static_cast&lt;TextDirection&gt;(inherited_flags._direction); }
</del><ins>+    TextDirection direction() const { return static_cast&lt;TextDirection&gt;(m_inheritedFlags.direction); }
</ins><span class="cx">     bool isLeftToRightDirection() const { return direction() == LTR; }
</span><del>-    bool hasExplicitlySetDirection() const { return noninherited_flags.hasExplicitlySetDirection(); }
</del><ins>+    bool hasExplicitlySetDirection() const { return m_nonInheritedFlags.hasExplicitlySetDirection(); }
</ins><span class="cx"> 
</span><span class="cx">     const Length&amp; specifiedLineHeight() const;
</span><del>-    WEBCORE_EXPORT Length lineHeight() const;
</del><ins>+    WEBCORE_EXPORT const Length&amp; lineHeight() const;
</ins><span class="cx">     WEBCORE_EXPORT int computedLineHeight() const;
</span><span class="cx"> 
</span><del>-    EWhiteSpace whiteSpace() const { return static_cast&lt;EWhiteSpace&gt;(inherited_flags._white_space); }
-    static bool autoWrap(EWhiteSpace ws)
-    {
-        // Nowrap and pre don't automatically wrap.
-        return ws != NOWRAP &amp;&amp; ws != PRE;
-    }
</del><ins>+    EWhiteSpace whiteSpace() const { return static_cast&lt;EWhiteSpace&gt;(m_inheritedFlags.whiteSpace); }
+    static bool autoWrap(EWhiteSpace);
+    bool autoWrap() const { return autoWrap(whiteSpace()); }
+    static bool preserveNewline(EWhiteSpace);
+    bool preserveNewline() const { return preserveNewline(whiteSpace()); }
+    static bool collapseWhiteSpace(EWhiteSpace);
+    bool collapseWhiteSpace() const { return collapseWhiteSpace(whiteSpace()); }
+    bool isCollapsibleWhiteSpace(UChar) const;
+    bool breakOnlyAfterWhiteSpace() const;
+    bool breakWords() const;
</ins><span class="cx"> 
</span><del>-    bool autoWrap() const
-    {
-        return autoWrap(whiteSpace());
-    }
</del><ins>+    EFillRepeat backgroundRepeatX() const { return static_cast&lt;EFillRepeat&gt;(m_backgroundData-&gt;background.repeatX()); }
+    EFillRepeat backgroundRepeatY() const { return static_cast&lt;EFillRepeat&gt;(m_backgroundData-&gt;background.repeatY()); }
+    CompositeOperator backgroundComposite() const { return static_cast&lt;CompositeOperator&gt;(m_backgroundData-&gt;background.composite()); }
+    EFillAttachment backgroundAttachment() const { return static_cast&lt;EFillAttachment&gt;(m_backgroundData-&gt;background.attachment()); }
+    EFillBox backgroundClip() const { return static_cast&lt;EFillBox&gt;(m_backgroundData-&gt;background.clip()); }
+    EFillBox backgroundOrigin() const { return static_cast&lt;EFillBox&gt;(m_backgroundData-&gt;background.origin()); }
+    const Length&amp; backgroundXPosition() const { return m_backgroundData-&gt;background.xPosition(); }
+    const Length&amp; backgroundYPosition() const { return m_backgroundData-&gt;background.yPosition(); }
+    EFillSizeType backgroundSizeType() const { return m_backgroundData-&gt;background.sizeType(); }
+    const LengthSize&amp; backgroundSizeLength() const { return m_backgroundData-&gt;background.sizeLength(); }
+    FillLayer&amp; ensureBackgroundLayers() { return m_backgroundData.access().background; }
+    const FillLayer&amp; backgroundLayers() const { return m_backgroundData-&gt;background; }
</ins><span class="cx"> 
</span><del>-    static bool preserveNewline(EWhiteSpace ws)
-    {
-        // Normal and nowrap do not preserve newlines.
-        return ws != NORMAL &amp;&amp; ws != NOWRAP;
-    }
</del><ins>+    StyleImage* maskImage() const { return m_rareNonInheritedData-&gt;mask.image(); }
+    EFillRepeat maskRepeatX() const { return static_cast&lt;EFillRepeat&gt;(m_rareNonInheritedData-&gt;mask.repeatX()); }
+    EFillRepeat maskRepeatY() const { return static_cast&lt;EFillRepeat&gt;(m_rareNonInheritedData-&gt;mask.repeatY()); }
+    CompositeOperator maskComposite() const { return static_cast&lt;CompositeOperator&gt;(m_rareNonInheritedData-&gt;mask.composite()); }
+    EFillBox maskClip() const { return static_cast&lt;EFillBox&gt;(m_rareNonInheritedData-&gt;mask.clip()); }
+    EFillBox maskOrigin() const { return static_cast&lt;EFillBox&gt;(m_rareNonInheritedData-&gt;mask.origin()); }
+    const Length&amp; maskXPosition() const { return m_rareNonInheritedData-&gt;mask.xPosition(); }
+    const Length&amp; maskYPosition() const { return m_rareNonInheritedData-&gt;mask.yPosition(); }
+    EFillSizeType maskSizeType() const { return m_rareNonInheritedData-&gt;mask.sizeType(); }
+    const LengthSize&amp; maskSizeLength() const { return m_rareNonInheritedData-&gt;mask.sizeLength(); }
+    FillLayer&amp; ensureMaskLayers() { return m_rareNonInheritedData.access().mask; }
+    const FillLayer&amp; maskLayers() const { return m_rareNonInheritedData-&gt;mask; }
+    const NinePieceImage&amp; maskBoxImage() const { return m_rareNonInheritedData-&gt;maskBoxImage; }
+    StyleImage* maskBoxImageSource() const { return m_rareNonInheritedData-&gt;maskBoxImage.image(); }
</ins><span class="cx"> 
</span><del>-    bool preserveNewline() const
-    {
-        return preserveNewline(whiteSpace());
-    }
-
-    static bool collapseWhiteSpace(EWhiteSpace ws)
-    {
-        // Pre and prewrap do not collapse whitespace.
-        return ws != PRE &amp;&amp; ws != PRE_WRAP;
-    }
-
-    bool collapseWhiteSpace() const
-    {
-        return collapseWhiteSpace(whiteSpace());
-    }
-
-    bool isCollapsibleWhiteSpace(UChar c) const
-    {
-        switch (c) {
-            case ' ':
-            case '\t':
-                return collapseWhiteSpace();
-            case '\n':
-                return !preserveNewline();
-        }
-        return false;
-    }
-
-    bool breakOnlyAfterWhiteSpace() const
-    {
-        return whiteSpace() == PRE_WRAP || lineBreak() == LineBreakAfterWhiteSpace;
-    }
-
-    bool breakWords() const
-    {
-        return wordBreak() == BreakWordBreak || overflowWrap() == BreakOverflowWrap;
-    }
-
-    EFillRepeat backgroundRepeatX() const { return static_cast&lt;EFillRepeat&gt;(m_background-&gt;background().repeatX()); }
-    EFillRepeat backgroundRepeatY() const { return static_cast&lt;EFillRepeat&gt;(m_background-&gt;background().repeatY()); }
-    CompositeOperator backgroundComposite() const { return static_cast&lt;CompositeOperator&gt;(m_background-&gt;background().composite()); }
-    EFillAttachment backgroundAttachment() const { return static_cast&lt;EFillAttachment&gt;(m_background-&gt;background().attachment()); }
-    EFillBox backgroundClip() const { return static_cast&lt;EFillBox&gt;(m_background-&gt;background().clip()); }
-    EFillBox backgroundOrigin() const { return static_cast&lt;EFillBox&gt;(m_background-&gt;background().origin()); }
-    const Length&amp; backgroundXPosition() const { return m_background-&gt;background().xPosition(); }
-    const Length&amp; backgroundYPosition() const { return m_background-&gt;background().yPosition(); }
-    EFillSizeType backgroundSizeType() const { return m_background-&gt;background().sizeType(); }
-    const LengthSize&amp; backgroundSizeLength() const { return m_background-&gt;background().sizeLength(); }
-    FillLayer&amp; ensureBackgroundLayers() { return m_background.access()-&gt;m_background; }
-    const FillLayer* backgroundLayers() const { return &amp;(m_background-&gt;background()); }
-
-    StyleImage* maskImage() const { return rareNonInheritedData-&gt;m_mask.image(); }
-    EFillRepeat maskRepeatX() const { return static_cast&lt;EFillRepeat&gt;(rareNonInheritedData-&gt;m_mask.repeatX()); }
-    EFillRepeat maskRepeatY() const { return static_cast&lt;EFillRepeat&gt;(rareNonInheritedData-&gt;m_mask.repeatY()); }
-    CompositeOperator maskComposite() const { return static_cast&lt;CompositeOperator&gt;(rareNonInheritedData-&gt;m_mask.composite()); }
-    EFillBox maskClip() const { return static_cast&lt;EFillBox&gt;(rareNonInheritedData-&gt;m_mask.clip()); }
-    EFillBox maskOrigin() const { return static_cast&lt;EFillBox&gt;(rareNonInheritedData-&gt;m_mask.origin()); }
-    const Length&amp; maskXPosition() const { return rareNonInheritedData-&gt;m_mask.xPosition(); }
-    const Length&amp; maskYPosition() const { return rareNonInheritedData-&gt;m_mask.yPosition(); }
-    EFillSizeType maskSizeType() const { return rareNonInheritedData-&gt;m_mask.sizeType(); }
-    const LengthSize&amp; maskSizeLength() const { return rareNonInheritedData-&gt;m_mask.sizeLength(); }
-    FillLayer&amp; ensureMaskLayers() { return rareNonInheritedData.access()-&gt;m_mask; }
-    const FillLayer* maskLayers() const { return &amp;(rareNonInheritedData-&gt;m_mask); }
-    const NinePieceImage&amp; maskBoxImage() const { return rareNonInheritedData-&gt;m_maskBoxImage; }
-    StyleImage* maskBoxImageSource() const { return rareNonInheritedData-&gt;m_maskBoxImage.image(); }

-    EBorderCollapse borderCollapse() const { return static_cast&lt;EBorderCollapse&gt;(inherited_flags._border_collapse); }
</del><ins>+    EBorderCollapse borderCollapse() const { return static_cast&lt;EBorderCollapse&gt;(m_inheritedFlags.borderCollapse); }
</ins><span class="cx">     float horizontalBorderSpacing() const;
</span><span class="cx">     float verticalBorderSpacing() const;
</span><del>-    EEmptyCell emptyCells() const { return static_cast&lt;EEmptyCell&gt;(inherited_flags._empty_cells); }
-    ECaptionSide captionSide() const { return static_cast&lt;ECaptionSide&gt;(inherited_flags._caption_side); }
</del><ins>+    EEmptyCell emptyCells() const { return static_cast&lt;EEmptyCell&gt;(m_inheritedFlags.emptyCells); }
+    ECaptionSide captionSide() const { return static_cast&lt;ECaptionSide&gt;(m_inheritedFlags.captionSide); }
</ins><span class="cx"> 
</span><del>-    EListStyleType listStyleType() const { return static_cast&lt;EListStyleType&gt;(inherited_flags._list_style_type); }
</del><ins>+    EListStyleType listStyleType() const { return static_cast&lt;EListStyleType&gt;(m_inheritedFlags.listStyleType); }
</ins><span class="cx">     StyleImage* listStyleImage() const;
</span><del>-    EListStylePosition listStylePosition() const { return static_cast&lt;EListStylePosition&gt;(inherited_flags._list_style_position); }
</del><ins>+    EListStylePosition listStylePosition() const { return static_cast&lt;EListStylePosition&gt;(m_inheritedFlags.listStylePosition); }
</ins><span class="cx"> 
</span><del>-    const Length&amp; marginTop() const { return surround-&gt;margin.top(); }
-    const Length&amp; marginBottom() const { return surround-&gt;margin.bottom(); }
-    const Length&amp; marginLeft() const { return surround-&gt;margin.left(); }
-    const Length&amp; marginRight() const { return surround-&gt;margin.right(); }
-    const Length&amp; marginBefore() const { return surround-&gt;margin.before(writingMode()); }
-    const Length&amp; marginAfter() const { return surround-&gt;margin.after(writingMode()); }
-    const Length&amp; marginStart() const { return surround-&gt;margin.start(writingMode(), direction()); }
-    const Length&amp; marginEnd() const { return surround-&gt;margin.end(writingMode(), direction()); }
-    const Length&amp; marginStartUsing(const RenderStyle* otherStyle) const { return surround-&gt;margin.start(otherStyle-&gt;writingMode(), otherStyle-&gt;direction()); }
-    const Length&amp; marginEndUsing(const RenderStyle* otherStyle) const { return surround-&gt;margin.end(otherStyle-&gt;writingMode(), otherStyle-&gt;direction()); }
-    const Length&amp; marginBeforeUsing(const RenderStyle* otherStyle) const { return surround-&gt;margin.before(otherStyle-&gt;writingMode()); }
-    const Length&amp; marginAfterUsing(const RenderStyle* otherStyle) const { return surround-&gt;margin.after(otherStyle-&gt;writingMode()); }
</del><ins>+    const Length&amp; marginTop() const { return m_surroundData-&gt;margin.top(); }
+    const Length&amp; marginBottom() const { return m_surroundData-&gt;margin.bottom(); }
+    const Length&amp; marginLeft() const { return m_surroundData-&gt;margin.left(); }
+    const Length&amp; marginRight() const { return m_surroundData-&gt;margin.right(); }
+    const Length&amp; marginBefore() const { return m_surroundData-&gt;margin.before(writingMode()); }
+    const Length&amp; marginAfter() const { return m_surroundData-&gt;margin.after(writingMode()); }
+    const Length&amp; marginStart() const { return m_surroundData-&gt;margin.start(writingMode(), direction()); }
+    const Length&amp; marginEnd() const { return m_surroundData-&gt;margin.end(writingMode(), direction()); }
+    const Length&amp; marginStartUsing(const RenderStyle* otherStyle) const { return m_surroundData-&gt;margin.start(otherStyle-&gt;writingMode(), otherStyle-&gt;direction()); }
+    const Length&amp; marginEndUsing(const RenderStyle* otherStyle) const { return m_surroundData-&gt;margin.end(otherStyle-&gt;writingMode(), otherStyle-&gt;direction()); }
+    const Length&amp; marginBeforeUsing(const RenderStyle* otherStyle) const { return m_surroundData-&gt;margin.before(otherStyle-&gt;writingMode()); }
+    const Length&amp; marginAfterUsing(const RenderStyle* otherStyle) const { return m_surroundData-&gt;margin.after(otherStyle-&gt;writingMode()); }
</ins><span class="cx"> 
</span><del>-    const LengthBox&amp; paddingBox() const { return surround-&gt;padding; }
-    const Length&amp; paddingTop() const { return surround-&gt;padding.top(); }
-    const Length&amp; paddingBottom() const { return surround-&gt;padding.bottom(); }
-    const Length&amp; paddingLeft() const { return surround-&gt;padding.left(); }
-    const Length&amp; paddingRight() const { return surround-&gt;padding.right(); }
-    const Length&amp; paddingBefore() const { return surround-&gt;padding.before(writingMode()); }
-    const Length&amp; paddingAfter() const { return surround-&gt;padding.after(writingMode()); }
-    const Length&amp; paddingStart() const { return surround-&gt;padding.start(writingMode(), direction()); }
-    const Length&amp; paddingEnd() const { return surround-&gt;padding.end(writingMode(), direction()); }
</del><ins>+    const LengthBox&amp; paddingBox() const { return m_surroundData-&gt;padding; }
+    const Length&amp; paddingTop() const { return m_surroundData-&gt;padding.top(); }
+    const Length&amp; paddingBottom() const { return m_surroundData-&gt;padding.bottom(); }
+    const Length&amp; paddingLeft() const { return m_surroundData-&gt;padding.left(); }
+    const Length&amp; paddingRight() const { return m_surroundData-&gt;padding.right(); }
+    const Length&amp; paddingBefore() const { return m_surroundData-&gt;padding.before(writingMode()); }
+    const Length&amp; paddingAfter() const { return m_surroundData-&gt;padding.after(writingMode()); }
+    const Length&amp; paddingStart() const { return m_surroundData-&gt;padding.start(writingMode(), direction()); }
+    const Length&amp; paddingEnd() const { return m_surroundData-&gt;padding.end(writingMode(), direction()); }
</ins><span class="cx"> 
</span><del>-    ECursor cursor() const { return static_cast&lt;ECursor&gt;(inherited_flags._cursor_style); }
</del><ins>+    ECursor cursor() const { return static_cast&lt;ECursor&gt;(m_inheritedFlags.cursor); }
+
</ins><span class="cx"> #if ENABLE(CURSOR_VISIBILITY)
</span><del>-    CursorVisibility cursorVisibility() const { return static_cast&lt;CursorVisibility&gt;(inherited_flags.m_cursorVisibility); }
</del><ins>+    CursorVisibility cursorVisibility() const { return static_cast&lt;CursorVisibility&gt;(m_inheritedFlags.cursorVisibility); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    CursorList* cursors() const { return rareInheritedData-&gt;cursorData.get(); }
</del><ins>+    CursorList* cursors() const { return m_rareInheritedData-&gt;cursorData.get(); }
</ins><span class="cx"> 
</span><del>-    EInsideLink insideLink() const { return static_cast&lt;EInsideLink&gt;(inherited_flags._insideLink); }
-    bool isLink() const { return noninherited_flags.isLink(); }
</del><ins>+    EInsideLink insideLink() const { return static_cast&lt;EInsideLink&gt;(m_inheritedFlags.insideLink); }
+    bool isLink() const { return m_nonInheritedFlags.isLink(); }
</ins><span class="cx"> 
</span><del>-    bool insideDefaultButton() const { return inherited_flags._insideDefaultButton; }
</del><ins>+    bool insideDefaultButton() const { return m_inheritedFlags.insideDefaultButton; }
</ins><span class="cx"> 
</span><del>-    short widows() const { return rareInheritedData-&gt;widows; }
-    short orphans() const { return rareInheritedData-&gt;orphans; }
-    bool hasAutoWidows() const { return rareInheritedData-&gt;m_hasAutoWidows; }
-    bool hasAutoOrphans() const { return rareInheritedData-&gt;m_hasAutoOrphans; }
</del><ins>+    short widows() const { return m_rareInheritedData-&gt;widows; }
+    short orphans() const { return m_rareInheritedData-&gt;orphans; }
+    bool hasAutoWidows() const { return m_rareInheritedData-&gt;hasAutoWidows; }
+    bool hasAutoOrphans() const { return m_rareInheritedData-&gt;hasAutoOrphans; }
</ins><span class="cx"> 
</span><del>-    // CSS3 Getter Methods
-    BreakInside breakInside() const { return static_cast&lt;BreakInside&gt;(rareNonInheritedData-&gt;m_breakInside); }
-    BreakBetween breakBefore() const { return static_cast&lt;BreakBetween&gt;(rareNonInheritedData-&gt;m_breakBefore); }
-    BreakBetween breakAfter() const { return static_cast&lt;BreakBetween&gt;(rareNonInheritedData-&gt;m_breakAfter); }
-    
-    HangingPunctuation hangingPunctuation() const { return static_cast&lt;HangingPunctuation&gt;(rareInheritedData-&gt;m_hangingPunctuation); }
</del><ins>+    BreakInside breakInside() const { return static_cast&lt;BreakInside&gt;(m_rareNonInheritedData-&gt;breakInside); }
+    BreakBetween breakBefore() const { return static_cast&lt;BreakBetween&gt;(m_rareNonInheritedData-&gt;breakBefore); }
+    BreakBetween breakAfter() const { return static_cast&lt;BreakBetween&gt;(m_rareNonInheritedData-&gt;breakAfter); }
</ins><span class="cx"> 
</span><ins>+    HangingPunctuation hangingPunctuation() const { return static_cast&lt;HangingPunctuation&gt;(m_rareInheritedData-&gt;hangingPunctuation); }
+
</ins><span class="cx">     float outlineOffset() const;
</span><del>-    const ShadowData* textShadow() const { return rareInheritedData-&gt;textShadow.get(); }
-    void getTextShadowExtent(LayoutUnit&amp; top, LayoutUnit&amp; right, LayoutUnit&amp; bottom, LayoutUnit&amp; left) const { getShadowExtent(textShadow(), top, right, bottom, left); }
-    void getTextShadowHorizontalExtent(LayoutUnit&amp; left, LayoutUnit&amp; right) const { getShadowHorizontalExtent(textShadow(), left, right); }
-    void getTextShadowVerticalExtent(LayoutUnit&amp; top, LayoutUnit&amp; bottom) const { getShadowVerticalExtent(textShadow(), top, bottom); }
</del><ins>+    const ShadowData* textShadow() const { return m_rareInheritedData-&gt;textShadow.get(); }
</ins><span class="cx">     void getTextShadowInlineDirectionExtent(LayoutUnit&amp; logicalLeft, LayoutUnit&amp; logicalRight) const { getShadowInlineDirectionExtent(textShadow(), logicalLeft, logicalRight); }
</span><span class="cx">     void getTextShadowBlockDirectionExtent(LayoutUnit&amp; logicalTop, LayoutUnit&amp; logicalBottom) const { getShadowBlockDirectionExtent(textShadow(), logicalTop, logicalBottom); }
</span><span class="cx"> 
</span><del>-    float textStrokeWidth() const { return rareInheritedData-&gt;textStrokeWidth; }
-    float opacity() const { return rareNonInheritedData-&gt;m_opacity; }
-    ControlPart appearance() const { return static_cast&lt;ControlPart&gt;(rareNonInheritedData-&gt;m_appearance); }
-    AspectRatioType aspectRatioType() const { return static_cast&lt;AspectRatioType&gt;(rareNonInheritedData-&gt;m_aspectRatioType); }
-    float aspectRatio() const { return aspectRatioNumerator() / aspectRatioDenominator(); }
-    float aspectRatioDenominator() const { return rareNonInheritedData-&gt;m_aspectRatioDenominator; }
-    float aspectRatioNumerator() const { return rareNonInheritedData-&gt;m_aspectRatioNumerator; }
-    EBoxAlignment boxAlign() const { return static_cast&lt;EBoxAlignment&gt;(rareNonInheritedData-&gt;m_deprecatedFlexibleBox-&gt;align); }
-    EBoxDirection boxDirection() const { return static_cast&lt;EBoxDirection&gt;(inherited_flags._box_direction); }
-    float boxFlex() const { return rareNonInheritedData-&gt;m_deprecatedFlexibleBox-&gt;flex; }
-    unsigned int boxFlexGroup() const { return rareNonInheritedData-&gt;m_deprecatedFlexibleBox-&gt;flex_group; }
-    EBoxLines boxLines() const { return static_cast&lt;EBoxLines&gt;(rareNonInheritedData-&gt;m_deprecatedFlexibleBox-&gt;lines); }
-    unsigned int boxOrdinalGroup() const { return rareNonInheritedData-&gt;m_deprecatedFlexibleBox-&gt;ordinal_group; }
-    EBoxOrient boxOrient() const { return static_cast&lt;EBoxOrient&gt;(rareNonInheritedData-&gt;m_deprecatedFlexibleBox-&gt;orient); }
-    EBoxPack boxPack() const { return static_cast&lt;EBoxPack&gt;(rareNonInheritedData-&gt;m_deprecatedFlexibleBox-&gt;pack); }
</del><ins>+    float textStrokeWidth() const { return m_rareInheritedData-&gt;textStrokeWidth; }
+    float opacity() const { return m_rareNonInheritedData-&gt;opacity; }
+    ControlPart appearance() const { return static_cast&lt;ControlPart&gt;(m_rareNonInheritedData-&gt;appearance); }
+    AspectRatioType aspectRatioType() const { return static_cast&lt;AspectRatioType&gt;(m_rareNonInheritedData-&gt;aspectRatioType); }
+    float aspectRatioDenominator() const { return m_rareNonInheritedData-&gt;aspectRatioDenominator; }
+    float aspectRatioNumerator() const { return m_rareNonInheritedData-&gt;aspectRatioNumerator; }
+    EBoxAlignment boxAlign() const { return static_cast&lt;EBoxAlignment&gt;(m_rareNonInheritedData-&gt;deprecatedFlexibleBox-&gt;align); }
+    EBoxDirection boxDirection() const { return static_cast&lt;EBoxDirection&gt;(m_inheritedFlags.boxDirection); }
+    float boxFlex() const { return m_rareNonInheritedData-&gt;deprecatedFlexibleBox-&gt;flex; }
+    unsigned boxFlexGroup() const { return m_rareNonInheritedData-&gt;deprecatedFlexibleBox-&gt;flexGroup; }
+    EBoxLines boxLines() const { return static_cast&lt;EBoxLines&gt;(m_rareNonInheritedData-&gt;deprecatedFlexibleBox-&gt;lines); }
+    unsigned boxOrdinalGroup() const { return m_rareNonInheritedData-&gt;deprecatedFlexibleBox-&gt;ordinalGroup; }
+    EBoxOrient boxOrient() const { return static_cast&lt;EBoxOrient&gt;(m_rareNonInheritedData-&gt;deprecatedFlexibleBox-&gt;orient); }
+    EBoxPack boxPack() const { return static_cast&lt;EBoxPack&gt;(m_rareNonInheritedData-&gt;deprecatedFlexibleBox-&gt;pack); }
</ins><span class="cx"> 
</span><del>-    int order() const { return rareNonInheritedData-&gt;m_order; }
-    float flexGrow() const { return rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexGrow; }
-    float flexShrink() const { return rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexShrink; }
-    const Length&amp; flexBasis() const { return rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexBasis; }
-    const StyleContentAlignmentData&amp; alignContent() const { return rareNonInheritedData-&gt;m_alignContent; }
-    ContentPosition alignContentPosition() const { return rareNonInheritedData-&gt;m_alignContent.position(); }
-    ContentDistributionType alignContentDistribution() const { return rareNonInheritedData-&gt;m_alignContent.distribution(); }
-    OverflowAlignment alignContentOverflowAlignment() const { return rareNonInheritedData-&gt;m_alignContent.overflow(); }
-    const StyleSelfAlignmentData&amp; alignItems() const { return rareNonInheritedData-&gt;m_alignItems; }
-    ItemPosition alignItemsPosition() const { return rareNonInheritedData-&gt;m_alignItems.position(); }
-    OverflowAlignment alignItemsOverflowAlignment() const { return rareNonInheritedData-&gt;m_alignItems.overflow(); }
-    const StyleSelfAlignmentData&amp; alignSelf() const { return rareNonInheritedData-&gt;m_alignSelf; }
-    ItemPosition alignSelfPosition() const { return rareNonInheritedData-&gt;m_alignSelf.position(); }
-    OverflowAlignment alignSelfOverflowAlignment() const { return rareNonInheritedData-&gt;m_alignSelf.overflow(); }
-    EFlexDirection flexDirection() const { return static_cast&lt;EFlexDirection&gt;(rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexDirection); }
</del><ins>+    int order() const { return m_rareNonInheritedData-&gt;order; }
+    float flexGrow() const { return m_rareNonInheritedData-&gt;flexibleBox-&gt;flexGrow; }
+    float flexShrink() const { return m_rareNonInheritedData-&gt;flexibleBox-&gt;flexShrink; }
+    const Length&amp; flexBasis() const { return m_rareNonInheritedData-&gt;flexibleBox-&gt;flexBasis; }
+    const StyleContentAlignmentData&amp; alignContent() const { return m_rareNonInheritedData-&gt;alignContent; }
+    const StyleSelfAlignmentData&amp; alignItems() const { return m_rareNonInheritedData-&gt;alignItems; }
+    const StyleSelfAlignmentData&amp; alignSelf() const { return m_rareNonInheritedData-&gt;alignSelf; }
+    EFlexDirection flexDirection() const { return static_cast&lt;EFlexDirection&gt;(m_rareNonInheritedData-&gt;flexibleBox-&gt;flexDirection); }
</ins><span class="cx">     bool isColumnFlexDirection() const { return flexDirection() == FlowColumn || flexDirection() == FlowColumnReverse; }
</span><span class="cx">     bool isReverseFlexDirection() const { return flexDirection() == FlowRowReverse || flexDirection() == FlowColumnReverse; }
</span><del>-    EFlexWrap flexWrap() const { return static_cast&lt;EFlexWrap&gt;(rareNonInheritedData-&gt;m_flexibleBox-&gt;m_flexWrap); }
-    const StyleContentAlignmentData&amp; justifyContent() const { return rareNonInheritedData-&gt;m_justifyContent; }
-    ContentPosition justifyContentPosition() const { return rareNonInheritedData-&gt;m_justifyContent.position(); }
-    ContentDistributionType justifyContentDistribution() const { return rareNonInheritedData-&gt;m_justifyContent.distribution(); }
-    OverflowAlignment justifyContentOverflowAlignment() const { return rareNonInheritedData-&gt;m_justifyContent.overflow(); }
-    const StyleSelfAlignmentData&amp; justifyItems() const { return rareNonInheritedData-&gt;m_justifyItems; }
-    ItemPosition justifyItemsPosition() const { return rareNonInheritedData-&gt;m_justifyItems.position(); }
-    OverflowAlignment justifyItemsOverflowAlignment() const { return rareNonInheritedData-&gt;m_justifyItems.overflow(); }
-    ItemPositionType justifyItemsPositionType() const { return rareNonInheritedData-&gt;m_justifyItems.positionType(); }
-    const StyleSelfAlignmentData&amp; justifySelf() const { return rareNonInheritedData-&gt;m_justifySelf; }
-    ItemPosition justifySelfPosition() const { return rareNonInheritedData-&gt;m_justifySelf.position(); }
-    OverflowAlignment justifySelfOverflowAlignment() const { return rareNonInheritedData-&gt;m_justifySelf.overflow(); }
</del><ins>+    EFlexWrap flexWrap() const { return static_cast&lt;EFlexWrap&gt;(m_rareNonInheritedData-&gt;flexibleBox-&gt;flexWrap); }
+    const StyleContentAlignmentData&amp; justifyContent() const { return m_rareNonInheritedData-&gt;justifyContent; }
+    const StyleSelfAlignmentData&amp; justifyItems() const { return m_rareNonInheritedData-&gt;justifyItems; }
+    const StyleSelfAlignmentData&amp; justifySelf() const { return m_rareNonInheritedData-&gt;justifySelf; }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-    const Vector&lt;GridTrackSize&gt;&amp; gridColumns() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridColumns; }
-    const Vector&lt;GridTrackSize&gt;&amp; gridRows() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridRows; }
-    const Vector&lt;GridTrackSize&gt;&amp; gridAutoRepeatColumns() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoRepeatColumns; }
-    const Vector&lt;GridTrackSize&gt;&amp; gridAutoRepeatRows() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoRepeatRows; }
-    unsigned gridAutoRepeatColumnsInsertionPoint() const { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatColumnsInsertionPoint; }
-    unsigned gridAutoRepeatRowsInsertionPoint() const { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatRowsInsertionPoint; }
-    AutoRepeatType gridAutoRepeatColumnsType() const  { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatColumnsType; }
-    AutoRepeatType gridAutoRepeatRowsType() const  { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatRowsType; }
-    const NamedGridLinesMap&amp; namedGridColumnLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_namedGridColumnLines; }
-    const NamedGridLinesMap&amp; namedGridRowLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_namedGridRowLines; }
-    const OrderedNamedGridLinesMap&amp; orderedNamedGridColumnLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_orderedNamedGridColumnLines; }
-    const OrderedNamedGridLinesMap&amp; orderedNamedGridRowLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_orderedNamedGridRowLines; }
-    const NamedGridLinesMap&amp; autoRepeatNamedGridColumnLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatNamedGridColumnLines; }
-    const NamedGridLinesMap&amp; autoRepeatNamedGridRowLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatNamedGridRowLines; }
-    const OrderedNamedGridLinesMap&amp; autoRepeatOrderedNamedGridColumnLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatOrderedNamedGridColumnLines; }
-    const OrderedNamedGridLinesMap&amp; autoRepeatOrderedNamedGridRowLines() const { return rareNonInheritedData-&gt;m_grid-&gt;m_autoRepeatOrderedNamedGridRowLines; }
-    const NamedGridAreaMap&amp; namedGridArea() const { return rareNonInheritedData-&gt;m_grid-&gt;m_namedGridArea; }
-    size_t namedGridAreaRowCount() const { return rareNonInheritedData-&gt;m_grid-&gt;m_namedGridAreaRowCount; }
-    size_t namedGridAreaColumnCount() const { return rareNonInheritedData-&gt;m_grid-&gt;m_namedGridAreaColumnCount; }
-    GridAutoFlow gridAutoFlow() const { return static_cast&lt;GridAutoFlow&gt;(rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow); }
-    bool isGridAutoFlowDirectionRow() const { return (rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow &amp; InternalAutoFlowDirectionRow); }
-    bool isGridAutoFlowDirectionColumn() const { return (rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow &amp; InternalAutoFlowDirectionColumn); }
-    bool isGridAutoFlowAlgorithmSparse() const { return (rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow &amp; InternalAutoFlowAlgorithmSparse); }
-    bool isGridAutoFlowAlgorithmDense() const { return (rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoFlow &amp; InternalAutoFlowAlgorithmDense); }
-    const Vector&lt;GridTrackSize&gt;&amp; gridAutoColumns() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoColumns; }
-    const Vector&lt;GridTrackSize&gt;&amp; gridAutoRows() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridAutoRows; }
-    const Length&amp; gridColumnGap() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridColumnGap; }
-    const Length&amp; gridRowGap() const { return rareNonInheritedData-&gt;m_grid-&gt;m_gridRowGap; }
</del><ins>+    const Vector&lt;GridTrackSize&gt;&amp; gridColumns() const { return m_rareNonInheritedData-&gt;grid-&gt;gridColumns; }
+    const Vector&lt;GridTrackSize&gt;&amp; gridRows() const { return m_rareNonInheritedData-&gt;grid-&gt;gridRows; }
+    const Vector&lt;GridTrackSize&gt;&amp; gridAutoRepeatColumns() const { return m_rareNonInheritedData-&gt;grid-&gt;gridAutoRepeatColumns; }
+    const Vector&lt;GridTrackSize&gt;&amp; gridAutoRepeatRows() const { return m_rareNonInheritedData-&gt;grid-&gt;gridAutoRepeatRows; }
+    unsigned gridAutoRepeatColumnsInsertionPoint() const { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatColumnsInsertionPoint; }
+    unsigned gridAutoRepeatRowsInsertionPoint() const { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatRowsInsertionPoint; }
+    AutoRepeatType gridAutoRepeatColumnsType() const  { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatColumnsType; }
+    AutoRepeatType gridAutoRepeatRowsType() const  { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatRowsType; }
+    const NamedGridLinesMap&amp; namedGridColumnLines() const { return m_rareNonInheritedData-&gt;grid-&gt;namedGridColumnLines; }
+    const NamedGridLinesMap&amp; namedGridRowLines() const { return m_rareNonInheritedData-&gt;grid-&gt;namedGridRowLines; }
+    const OrderedNamedGridLinesMap&amp; orderedNamedGridColumnLines() const { return m_rareNonInheritedData-&gt;grid-&gt;orderedNamedGridColumnLines; }
+    const OrderedNamedGridLinesMap&amp; orderedNamedGridRowLines() const { return m_rareNonInheritedData-&gt;grid-&gt;orderedNamedGridRowLines; }
+    const NamedGridLinesMap&amp; autoRepeatNamedGridColumnLines() const { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatNamedGridColumnLines; }
+    const NamedGridLinesMap&amp; autoRepeatNamedGridRowLines() const { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatNamedGridRowLines; }
+    const OrderedNamedGridLinesMap&amp; autoRepeatOrderedNamedGridColumnLines() const { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatOrderedNamedGridColumnLines; }
+    const OrderedNamedGridLinesMap&amp; autoRepeatOrderedNamedGridRowLines() const { return m_rareNonInheritedData-&gt;grid-&gt;autoRepeatOrderedNamedGridRowLines; }
+    const NamedGridAreaMap&amp; namedGridArea() const { return m_rareNonInheritedData-&gt;grid-&gt;namedGridArea; }
+    size_t namedGridAreaRowCount() const { return m_rareNonInheritedData-&gt;grid-&gt;namedGridAreaRowCount; }
+    size_t namedGridAreaColumnCount() const { return m_rareNonInheritedData-&gt;grid-&gt;namedGridAreaColumnCount; }
+    GridAutoFlow gridAutoFlow() const { return static_cast&lt;GridAutoFlow&gt;(m_rareNonInheritedData-&gt;grid-&gt;gridAutoFlow); }
+    bool isGridAutoFlowDirectionRow() const { return (m_rareNonInheritedData-&gt;grid-&gt;gridAutoFlow &amp; InternalAutoFlowDirectionRow); }
+    bool isGridAutoFlowDirectionColumn() const { return (m_rareNonInheritedData-&gt;grid-&gt;gridAutoFlow &amp; InternalAutoFlowDirectionColumn); }
+    bool isGridAutoFlowAlgorithmSparse() const { return (m_rareNonInheritedData-&gt;grid-&gt;gridAutoFlow &amp; InternalAutoFlowAlgorithmSparse); }
+    bool isGridAutoFlowAlgorithmDense() const { return (m_rareNonInheritedData-&gt;grid-&gt;gridAutoFlow &amp; InternalAutoFlowAlgorithmDense); }
+    const Vector&lt;GridTrackSize&gt;&amp; gridAutoColumns() const { return m_rareNonInheritedData-&gt;grid-&gt;gridAutoColumns; }
+    const Vector&lt;GridTrackSize&gt;&amp; gridAutoRows() const { return m_rareNonInheritedData-&gt;grid-&gt;gridAutoRows; }
+    const Length&amp; gridColumnGap() const { return m_rareNonInheritedData-&gt;grid-&gt;gridColumnGap; }
+    const Length&amp; gridRowGap() const { return m_rareNonInheritedData-&gt;grid-&gt;gridRowGap; }
</ins><span class="cx"> 
</span><ins>+    const GridPosition&amp; gridItemColumnStart() const { return m_rareNonInheritedData-&gt;gridItem-&gt;gridColumnStart; }
+    const GridPosition&amp; gridItemColumnEnd() const { return m_rareNonInheritedData-&gt;gridItem-&gt;gridColumnEnd; }
+    const GridPosition&amp; gridItemRowStart() const { return m_rareNonInheritedData-&gt;gridItem-&gt;gridRowStart; }
+    const GridPosition&amp; gridItemRowEnd() const { return m_rareNonInheritedData-&gt;gridItem-&gt;gridRowEnd; }
+#endif // ENABLE(CSS_GRID_LAYOUT)
</ins><span class="cx"> 
</span><del>-    const GridPosition&amp; gridItemColumnStart() const { return rareNonInheritedData-&gt;m_gridItem-&gt;m_gridColumnStart; }
-    const GridPosition&amp; gridItemColumnEnd() const { return rareNonInheritedData-&gt;m_gridItem-&gt;m_gridColumnEnd; }
-    const GridPosition&amp; gridItemRowStart() const { return rareNonInheritedData-&gt;m_gridItem-&gt;m_gridRowStart; }
-    const GridPosition&amp; gridItemRowEnd() const { return rareNonInheritedData-&gt;m_gridItem-&gt;m_gridRowEnd; }
-#endif /* ENABLE(CSS_GRID_LAYOUT) */
-
-    const ShadowData* boxShadow() const { return rareNonInheritedData-&gt;m_boxShadow.get(); }
</del><ins>+    const ShadowData* boxShadow() const { return m_rareNonInheritedData-&gt;boxShadow.get(); }
</ins><span class="cx">     void getBoxShadowExtent(LayoutUnit&amp; top, LayoutUnit&amp; right, LayoutUnit&amp; bottom, LayoutUnit&amp; left) const { getShadowExtent(boxShadow(), top, right, bottom, left); }
</span><span class="cx">     LayoutBoxExtent getBoxShadowInsetExtent() const { return getShadowInsetExtent(boxShadow()); }
</span><span class="cx">     void getBoxShadowHorizontalExtent(LayoutUnit&amp; left, LayoutUnit&amp; right) const { getShadowHorizontalExtent(boxShadow(), left, right); }
</span><span class="lines">@@ -997,73 +562,71 @@
</span><span class="cx">     void getBoxShadowBlockDirectionExtent(LayoutUnit&amp; logicalTop, LayoutUnit&amp; logicalBottom) const { getShadowBlockDirectionExtent(boxShadow(), logicalTop, logicalBottom); }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_BOX_DECORATION_BREAK)
</span><del>-    EBoxDecorationBreak boxDecorationBreak() const { return m_box-&gt;boxDecorationBreak(); }
</del><ins>+    EBoxDecorationBreak boxDecorationBreak() const { return m_boxData-&gt;boxDecorationBreak(); }
</ins><span class="cx"> #endif
</span><del>-    StyleReflection* boxReflect() const { return rareNonInheritedData-&gt;m_boxReflect.get(); }
-    EBoxSizing boxSizing() const { return m_box-&gt;boxSizing(); }
-    const Length&amp; marqueeIncrement() const { return rareNonInheritedData-&gt;m_marquee-&gt;increment; }
-    int marqueeSpeed() const { return rareNonInheritedData-&gt;m_marquee-&gt;speed; }
-    int marqueeLoopCount() const { return rareNonInheritedData-&gt;m_marquee-&gt;loops; }
-    EMarqueeBehavior marqueeBehavior() const { return static_cast&lt;EMarqueeBehavior&gt;(rareNonInheritedData-&gt;m_marquee-&gt;behavior); }
-    EMarqueeDirection marqueeDirection() const { return static_cast&lt;EMarqueeDirection&gt;(rareNonInheritedData-&gt;m_marquee-&gt;direction); }
-    EUserModify userModify() const { return static_cast&lt;EUserModify&gt;(rareInheritedData-&gt;userModify); }
-    EUserDrag userDrag() const { return static_cast&lt;EUserDrag&gt;(rareNonInheritedData-&gt;userDrag); }
-    EUserSelect userSelect() const { return static_cast&lt;EUserSelect&gt;(rareInheritedData-&gt;userSelect); }
-    TextOverflow textOverflow() const { return static_cast&lt;TextOverflow&gt;(rareNonInheritedData-&gt;textOverflow); }
-    EMarginCollapse marginBeforeCollapse() const { return static_cast&lt;EMarginCollapse&gt;(rareNonInheritedData-&gt;marginBeforeCollapse); }
-    EMarginCollapse marginAfterCollapse() const { return static_cast&lt;EMarginCollapse&gt;(rareNonInheritedData-&gt;marginAfterCollapse); }
-    EWordBreak wordBreak() const { return static_cast&lt;EWordBreak&gt;(rareInheritedData-&gt;wordBreak); }
-    EOverflowWrap overflowWrap() const { return static_cast&lt;EOverflowWrap&gt;(rareInheritedData-&gt;overflowWrap); }
-    ENBSPMode nbspMode() const { return static_cast&lt;ENBSPMode&gt;(rareInheritedData-&gt;nbspMode); }
-    LineBreak lineBreak() const { return static_cast&lt;LineBreak&gt;(rareInheritedData-&gt;lineBreak); }
-    Hyphens hyphens() const { return static_cast&lt;Hyphens&gt;(rareInheritedData-&gt;hyphens); }
-    short hyphenationLimitBefore() const { return rareInheritedData-&gt;hyphenationLimitBefore; }
-    short hyphenationLimitAfter() const { return rareInheritedData-&gt;hyphenationLimitAfter; }
-    short hyphenationLimitLines() const { return rareInheritedData-&gt;hyphenationLimitLines; }
-    const AtomicString&amp; hyphenationString() const { return rareInheritedData-&gt;hyphenationString; }
</del><ins>+
+    StyleReflection* boxReflect() const { return m_rareNonInheritedData-&gt;boxReflect.get(); }
+    EBoxSizing boxSizing() const { return m_boxData-&gt;boxSizing(); }
+    const Length&amp; marqueeIncrement() const { return m_rareNonInheritedData-&gt;marquee-&gt;increment; }
+    int marqueeSpeed() const { return m_rareNonInheritedData-&gt;marquee-&gt;speed; }
+    int marqueeLoopCount() const { return m_rareNonInheritedData-&gt;marquee-&gt;loops; }
+    EMarqueeBehavior marqueeBehavior() const { return static_cast&lt;EMarqueeBehavior&gt;(m_rareNonInheritedData-&gt;marquee-&gt;behavior); }
+    EMarqueeDirection marqueeDirection() const { return static_cast&lt;EMarqueeDirection&gt;(m_rareNonInheritedData-&gt;marquee-&gt;direction); }
+    EUserModify userModify() const { return static_cast&lt;EUserModify&gt;(m_rareInheritedData-&gt;userModify); }
+    EUserDrag userDrag() const { return static_cast&lt;EUserDrag&gt;(m_rareNonInheritedData-&gt;userDrag); }
+    EUserSelect userSelect() const { return static_cast&lt;EUserSelect&gt;(m_rareInheritedData-&gt;userSelect); }
+    TextOverflow textOverflow() const { return static_cast&lt;TextOverflow&gt;(m_rareNonInheritedData-&gt;textOverflow); }
+    EMarginCollapse marginBeforeCollapse() const { return static_cast&lt;EMarginCollapse&gt;(m_rareNonInheritedData-&gt;marginBeforeCollapse); }
+    EMarginCollapse marginAfterCollapse() const { return static_cast&lt;EMarginCollapse&gt;(m_rareNonInheritedData-&gt;marginAfterCollapse); }
+    EWordBreak wordBreak() const { return static_cast&lt;EWordBreak&gt;(m_rareInheritedData-&gt;wordBreak); }
+    EOverflowWrap overflowWrap() const { return static_cast&lt;EOverflowWrap&gt;(m_rareInheritedData-&gt;overflowWrap); }
+    ENBSPMode nbspMode() const { return static_cast&lt;ENBSPMode&gt;(m_rareInheritedData-&gt;nbspMode); }
+    LineBreak lineBreak() const { return static_cast&lt;LineBreak&gt;(m_rareInheritedData-&gt;lineBreak); }
+    Hyphens hyphens() const { return static_cast&lt;Hyphens&gt;(m_rareInheritedData-&gt;hyphens); }
+    short hyphenationLimitBefore() const { return m_rareInheritedData-&gt;hyphenationLimitBefore; }
+    short hyphenationLimitAfter() const { return m_rareInheritedData-&gt;hyphenationLimitAfter; }
+    short hyphenationLimitLines() const { return m_rareInheritedData-&gt;hyphenationLimitLines; }
+    const AtomicString&amp; hyphenationString() const { return m_rareInheritedData-&gt;hyphenationString; }
</ins><span class="cx">     const AtomicString&amp; locale() const { return fontDescription().locale(); }
</span><del>-    EBorderFit borderFit() const { return static_cast&lt;EBorderFit&gt;(rareNonInheritedData-&gt;m_borderFit); }
-    EResize resize() const { return static_cast&lt;EResize&gt;(rareNonInheritedData-&gt;m_resize); }
-    ColumnAxis columnAxis() const { return static_cast&lt;ColumnAxis&gt;(rareNonInheritedData-&gt;m_multiCol-&gt;m_axis); }
-    bool hasInlineColumnAxis() const {
-        ColumnAxis axis = columnAxis();
-        return axis == AutoColumnAxis || isHorizontalWritingMode() == (axis == HorizontalColumnAxis);
-    }
-    ColumnProgression columnProgression() const { return static_cast&lt;ColumnProgression&gt;(rareNonInheritedData-&gt;m_multiCol-&gt;m_progression); }
-    float columnWidth() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_width; }
-    bool hasAutoColumnWidth() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_autoWidth; }
-    unsigned short columnCount() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_count; }
-    bool hasAutoColumnCount() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_autoCount; }
</del><ins>+    EBorderFit borderFit() const { return static_cast&lt;EBorderFit&gt;(m_rareNonInheritedData-&gt;borderFit); }
+    EResize resize() const { return static_cast&lt;EResize&gt;(m_rareNonInheritedData-&gt;resize); }
+    ColumnAxis columnAxis() const { return static_cast&lt;ColumnAxis&gt;(m_rareNonInheritedData-&gt;multiCol-&gt;axis); }
+    bool hasInlineColumnAxis() const;
+    ColumnProgression columnProgression() const { return static_cast&lt;ColumnProgression&gt;(m_rareNonInheritedData-&gt;multiCol-&gt;progression); }
+    float columnWidth() const { return m_rareNonInheritedData-&gt;multiCol-&gt;width; }
+    bool hasAutoColumnWidth() const { return m_rareNonInheritedData-&gt;multiCol-&gt;autoWidth; }
+    unsigned short columnCount() const { return m_rareNonInheritedData-&gt;multiCol-&gt;count; }
+    bool hasAutoColumnCount() const { return m_rareNonInheritedData-&gt;multiCol-&gt;autoCount; }
</ins><span class="cx">     bool specifiesColumns() const { return !hasAutoColumnCount() || !hasAutoColumnWidth() || !hasInlineColumnAxis(); }
</span><del>-    ColumnFill columnFill() const { return static_cast&lt;ColumnFill&gt;(rareNonInheritedData-&gt;m_multiCol-&gt;m_fill); }
-    float columnGap() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_gap; }
-    bool hasNormalColumnGap() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_normalGap; }
-    EBorderStyle columnRuleStyle() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_rule.style(); }
-    unsigned short columnRuleWidth() const { return rareNonInheritedData-&gt;m_multiCol-&gt;ruleWidth(); }
-    bool columnRuleIsTransparent() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_rule.isTransparent(); }
-    ColumnSpan columnSpan() const { return static_cast&lt;ColumnSpan&gt;(rareNonInheritedData-&gt;m_multiCol-&gt;m_columnSpan); }
</del><ins>+    ColumnFill columnFill() const { return static_cast&lt;ColumnFill&gt;(m_rareNonInheritedData-&gt;multiCol-&gt;fill); }
+    float columnGap() const { return m_rareNonInheritedData-&gt;multiCol-&gt;gap; }
+    bool hasNormalColumnGap() const { return m_rareNonInheritedData-&gt;multiCol-&gt;normalGap; }
+    EBorderStyle columnRuleStyle() const { return m_rareNonInheritedData-&gt;multiCol-&gt;rule.style(); }
+    unsigned short columnRuleWidth() const { return m_rareNonInheritedData-&gt;multiCol-&gt;ruleWidth(); }
+    bool columnRuleIsTransparent() const { return m_rareNonInheritedData-&gt;multiCol-&gt;rule.isTransparent(); }
+    ColumnSpan columnSpan() const { return static_cast&lt;ColumnSpan&gt;(m_rareNonInheritedData-&gt;multiCol-&gt;columnSpan); }
</ins><span class="cx"> 
</span><del>-    const TransformOperations&amp; transform() const { return rareNonInheritedData-&gt;m_transform-&gt;m_operations; }
-    const Length&amp; transformOriginX() const { return rareNonInheritedData-&gt;m_transform-&gt;m_x; }
-    const Length&amp; transformOriginY() const { return rareNonInheritedData-&gt;m_transform-&gt;m_y; }
-    float transformOriginZ() const { return rareNonInheritedData-&gt;m_transform-&gt;m_z; }
-    bool hasTransform() const { return !rareNonInheritedData-&gt;m_transform-&gt;m_operations.operations().isEmpty(); }
</del><ins>+    const TransformOperations&amp; transform() const { return m_rareNonInheritedData-&gt;transform-&gt;operations; }
+    const Length&amp; transformOriginX() const { return m_rareNonInheritedData-&gt;transform-&gt;x; }
+    const Length&amp; transformOriginY() const { return m_rareNonInheritedData-&gt;transform-&gt;y; }
+    float transformOriginZ() const { return m_rareNonInheritedData-&gt;transform-&gt;z; }
+    bool hasTransform() const { return !m_rareNonInheritedData-&gt;transform-&gt;operations.operations().isEmpty(); }
</ins><span class="cx"> 
</span><del>-    TextEmphasisFill textEmphasisFill() const { return static_cast&lt;TextEmphasisFill&gt;(rareInheritedData-&gt;textEmphasisFill); }
</del><ins>+    TextEmphasisFill textEmphasisFill() const { return static_cast&lt;TextEmphasisFill&gt;(m_rareInheritedData-&gt;textEmphasisFill); }
</ins><span class="cx">     TextEmphasisMark textEmphasisMark() const;
</span><del>-    const AtomicString&amp; textEmphasisCustomMark() const { return rareInheritedData-&gt;textEmphasisCustomMark; }
-    TextEmphasisPosition textEmphasisPosition() const { return static_cast&lt;TextEmphasisPosition&gt;(rareInheritedData-&gt;textEmphasisPosition); }
</del><ins>+    const AtomicString&amp; textEmphasisCustomMark() const { return m_rareInheritedData-&gt;textEmphasisCustomMark; }
+    TextEmphasisPosition textEmphasisPosition() const { return static_cast&lt;TextEmphasisPosition&gt;(m_rareInheritedData-&gt;textEmphasisPosition); }
</ins><span class="cx">     const AtomicString&amp; textEmphasisMarkString() const;
</span><span class="cx"> 
</span><del>-    RubyPosition rubyPosition() const { return static_cast&lt;RubyPosition&gt;(rareInheritedData-&gt;m_rubyPosition); }
</del><ins>+    RubyPosition rubyPosition() const { return static_cast&lt;RubyPosition&gt;(m_rareInheritedData-&gt;rubyPosition); }
</ins><span class="cx"> 
</span><del>-    TextOrientation textOrientation() const { return static_cast&lt;TextOrientation&gt;(rareInheritedData-&gt;m_textOrientation); }
</del><ins>+    TextOrientation textOrientation() const { return static_cast&lt;TextOrientation&gt;(m_rareInheritedData-&gt;textOrientation); }
</ins><span class="cx"> 
</span><del>-    ObjectFit objectFit() const { return static_cast&lt;ObjectFit&gt;(rareNonInheritedData-&gt;m_objectFit); }
-    LengthPoint objectPosition() const { return rareNonInheritedData-&gt;m_objectPosition; }
</del><ins>+    ObjectFit objectFit() const { return static_cast&lt;ObjectFit&gt;(m_rareNonInheritedData-&gt;objectFit); }
+    LengthPoint objectPosition() const { return m_rareNonInheritedData-&gt;objectPosition; }
</ins><span class="cx"> 
</span><span class="cx">     // Return true if any transform related property (currently transform, transformStyle3D or perspective)
</span><del>-    // indicates that we are transforming
</del><ins>+    // indicates that we are transforming.
</ins><span class="cx">     bool hasTransformRelatedProperty() const { return hasTransform() || preserves3D() || hasPerspective(); }
</span><span class="cx"> 
</span><span class="cx">     enum ApplyTransformOrigin { IncludeTransformOrigin, ExcludeTransformOrigin };
</span><span class="lines">@@ -1070,63 +633,62 @@
</span><span class="cx">     void applyTransform(TransformationMatrix&amp;, const FloatRect&amp; boundingBox, ApplyTransformOrigin = IncludeTransformOrigin) const;
</span><span class="cx">     void setPageScaleTransform(float);
</span><span class="cx"> 
</span><del>-    bool hasMask() const { return rareNonInheritedData-&gt;m_mask.hasImage() || rareNonInheritedData-&gt;m_maskBoxImage.hasImage(); }
</del><ins>+    bool hasMask() const { return m_rareNonInheritedData-&gt;mask.hasImage() || m_rareNonInheritedData-&gt;maskBoxImage.hasImage(); }
</ins><span class="cx"> 
</span><del>-    TextCombine textCombine() const { return static_cast&lt;TextCombine&gt;(rareNonInheritedData-&gt;m_textCombine); }
</del><ins>+    TextCombine textCombine() const { return static_cast&lt;TextCombine&gt;(m_rareNonInheritedData-&gt;textCombine); }
</ins><span class="cx">     bool hasTextCombine() const { return textCombine() != TextCombineNone; }
</span><span class="cx"> 
</span><del>-    unsigned tabSize() const { return rareInheritedData-&gt;m_tabSize; }
</del><ins>+    unsigned tabSize() const { return m_rareInheritedData-&gt;tabSize; }
</ins><span class="cx"> 
</span><span class="cx">     // End CSS3 Getters
</span><span class="cx"> 
</span><del>-    bool hasFlowInto() const { return !rareNonInheritedData-&gt;m_flowThread.isNull(); }
-    const AtomicString&amp; flowThread() const { return rareNonInheritedData-&gt;m_flowThread; }
-    bool hasFlowFrom() const { return !rareNonInheritedData-&gt;m_regionThread.isNull(); }
-    const AtomicString&amp; regionThread() const { return rareNonInheritedData-&gt;m_regionThread; }
-    RegionFragment regionFragment() const { return static_cast&lt;RegionFragment&gt;(rareNonInheritedData-&gt;m_regionFragment); }
</del><ins>+    bool hasFlowInto() const { return !m_rareNonInheritedData-&gt;flowThread.isNull(); }
+    const AtomicString&amp; flowThread() const { return m_rareNonInheritedData-&gt;flowThread; }
+    bool hasFlowFrom() const { return !m_rareNonInheritedData-&gt;regionThread.isNull(); }
+    const AtomicString&amp; regionThread() const { return m_rareNonInheritedData-&gt;regionThread; }
+    RegionFragment regionFragment() const { return static_cast&lt;RegionFragment&gt;(m_rareNonInheritedData-&gt;regionFragment); }
</ins><span class="cx"> 
</span><del>-    const AtomicString&amp; lineGrid() const { return rareInheritedData-&gt;m_lineGrid; }
-    LineSnap lineSnap() const { return static_cast&lt;LineSnap&gt;(rareInheritedData-&gt;m_lineSnap); }
-    LineAlign lineAlign() const { return static_cast&lt;LineAlign&gt;(rareInheritedData-&gt;m_lineAlign); }
</del><ins>+    const AtomicString&amp; lineGrid() const { return m_rareInheritedData-&gt;lineGrid; }
+    LineSnap lineSnap() const { return static_cast&lt;LineSnap&gt;(m_rareInheritedData-&gt;lineSnap); }
+    LineAlign lineAlign() const { return static_cast&lt;LineAlign&gt;(m_rareInheritedData-&gt;lineAlign); }
</ins><span class="cx"> 
</span><del>-    // Apple-specific property getter methods
-    EPointerEvents pointerEvents() const { return static_cast&lt;EPointerEvents&gt;(inherited_flags._pointerEvents); }
-    const AnimationList* animations() const { return rareNonInheritedData-&gt;m_animations.get(); }
-    const AnimationList* transitions() const { return rareNonInheritedData-&gt;m_transitions.get(); }
</del><ins>+    EPointerEvents pointerEvents() const { return static_cast&lt;EPointerEvents&gt;(m_inheritedFlags.pointerEvents); }
+    const AnimationList* animations() const { return m_rareNonInheritedData-&gt;animations.get(); }
+    const AnimationList* transitions() const { return m_rareNonInheritedData-&gt;transitions.get(); }
</ins><span class="cx"> 
</span><del>-    AnimationList* animations() { return rareNonInheritedData-&gt;m_animations.get(); }
-    AnimationList* transitions() { return rareNonInheritedData-&gt;m_transitions.get(); }
</del><ins>+    AnimationList* animations() { return m_rareNonInheritedData-&gt;animations.get(); }
+    AnimationList* transitions() { return m_rareNonInheritedData-&gt;transitions.get(); }
</ins><span class="cx">     
</span><del>-    bool hasAnimationsOrTransitions() const { return rareNonInheritedData-&gt;hasAnimationsOrTransitions(); }
</del><ins>+    bool hasAnimationsOrTransitions() const { return m_rareNonInheritedData-&gt;hasAnimationsOrTransitions(); }
</ins><span class="cx"> 
</span><span class="cx">     AnimationList&amp; ensureAnimations();
</span><span class="cx">     AnimationList&amp; ensureTransitions();
</span><span class="cx"> 
</span><del>-    bool hasAnimations() const { return rareNonInheritedData-&gt;m_animations &amp;&amp; rareNonInheritedData-&gt;m_animations-&gt;size() &gt; 0; }
-    bool hasTransitions() const { return rareNonInheritedData-&gt;m_transitions &amp;&amp; rareNonInheritedData-&gt;m_transitions-&gt;size() &gt; 0; }
</del><ins>+    bool hasAnimations() const { return m_rareNonInheritedData-&gt;animations &amp;&amp; m_rareNonInheritedData-&gt;animations-&gt;size() &gt; 0; }
+    bool hasTransitions() const { return m_rareNonInheritedData-&gt;transitions &amp;&amp; m_rareNonInheritedData-&gt;transitions-&gt;size() &gt; 0; }
</ins><span class="cx"> 
</span><del>-    // return the first found Animation (including 'all' transitions)
</del><ins>+    // Return the first found Animation (including 'all' transitions).
</ins><span class="cx">     const Animation* transitionForProperty(CSSPropertyID) const;
</span><span class="cx"> 
</span><del>-    ETransformStyle3D transformStyle3D() const { return static_cast&lt;ETransformStyle3D&gt;(rareNonInheritedData-&gt;m_transformStyle3D); }
-    bool preserves3D() const { return rareNonInheritedData-&gt;m_transformStyle3D == TransformStyle3DPreserve3D; }
</del><ins>+    ETransformStyle3D transformStyle3D() const { return static_cast&lt;ETransformStyle3D&gt;(m_rareNonInheritedData-&gt;transformStyle3D); }
+    bool preserves3D() const { return m_rareNonInheritedData-&gt;transformStyle3D == TransformStyle3DPreserve3D; }
</ins><span class="cx"> 
</span><del>-    EBackfaceVisibility backfaceVisibility() const { return static_cast&lt;EBackfaceVisibility&gt;(rareNonInheritedData-&gt;m_backfaceVisibility); }
-    float perspective() const { return rareNonInheritedData-&gt;m_perspective; }
-    bool hasPerspective() const { return rareNonInheritedData-&gt;m_perspective &gt; 0; }
-    const Length&amp; perspectiveOriginX() const { return rareNonInheritedData-&gt;m_perspectiveOriginX; }
-    const Length&amp; perspectiveOriginY() const { return rareNonInheritedData-&gt;m_perspectiveOriginY; }
-    const LengthSize&amp; pageSize() const { return rareNonInheritedData-&gt;m_pageSize; }
-    PageSizeType pageSizeType() const { return static_cast&lt;PageSizeType&gt;(rareNonInheritedData-&gt;m_pageSizeType); }
</del><ins>+    EBackfaceVisibility backfaceVisibility() const { return static_cast&lt;EBackfaceVisibility&gt;(m_rareNonInheritedData-&gt;backfaceVisibility); }
+    float perspective() const { return m_rareNonInheritedData-&gt;perspective; }
+    bool hasPerspective() const { return m_rareNonInheritedData-&gt;perspective &gt; 0; }
+    const Length&amp; perspectiveOriginX() const { return m_rareNonInheritedData-&gt;perspectiveOriginX; }
+    const Length&amp; perspectiveOriginY() const { return m_rareNonInheritedData-&gt;perspectiveOriginY; }
+    const LengthSize&amp; pageSize() const { return m_rareNonInheritedData-&gt;pageSize; }
+    PageSizeType pageSizeType() const { return static_cast&lt;PageSizeType&gt;(m_rareNonInheritedData-&gt;pageSizeType); }
</ins><span class="cx">     
</span><del>-    LineBoxContain lineBoxContain() const { return rareInheritedData-&gt;m_lineBoxContain; }
-    const LineClampValue&amp; lineClamp() const { return rareNonInheritedData-&gt;lineClamp; }
-    const IntSize&amp; initialLetter() const { return rareNonInheritedData-&gt;m_initialLetter; }
</del><ins>+    LineBoxContain lineBoxContain() const { return m_rareInheritedData-&gt;lineBoxContain; }
+    const LineClampValue&amp; lineClamp() const { return m_rareNonInheritedData-&gt;lineClamp; }
+    const IntSize&amp; initialLetter() const { return m_rareNonInheritedData-&gt;initialLetter; }
</ins><span class="cx">     int initialLetterDrop() const { return initialLetter().width(); }
</span><span class="cx">     int initialLetterHeight() const { return initialLetter().height(); }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    TouchAction touchAction() const { return static_cast&lt;TouchAction&gt;(rareNonInheritedData-&gt;m_touchAction); }
</del><ins>+    TouchAction touchAction() const { return static_cast&lt;TouchAction&gt;(m_rareNonInheritedData-&gt;touchAction); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="lines">@@ -1150,69 +712,62 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    Color tapHighlightColor() const { return rareInheritedData-&gt;tapHighlightColor; }
</del><ins>+    Color tapHighlightColor() const { return m_rareInheritedData-&gt;tapHighlightColor; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    bool touchCalloutEnabled() const { return rareInheritedData-&gt;touchCalloutEnabled; }
</del><ins>+    bool touchCalloutEnabled() const { return m_rareInheritedData-&gt;touchCalloutEnabled; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><del>-    bool useTouchOverflowScrolling() const { return rareInheritedData-&gt;useTouchOverflowScrolling; }
</del><ins>+    bool useTouchOverflowScrolling() const { return m_rareInheritedData-&gt;useTouchOverflowScrolling; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-    TextSizeAdjustment textSizeAdjust() const { return rareInheritedData-&gt;textSizeAdjust; }
</del><ins>+    TextSizeAdjustment textSizeAdjust() const { return m_rareInheritedData-&gt;textSizeAdjust; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    ETextSecurity textSecurity() const { return static_cast&lt;ETextSecurity&gt;(rareInheritedData-&gt;textSecurity); }
</del><ins>+    ETextSecurity textSecurity() const { return static_cast&lt;ETextSecurity&gt;(m_rareInheritedData-&gt;textSecurity); }
</ins><span class="cx"> 
</span><del>-    WritingMode writingMode() const { return static_cast&lt;WritingMode&gt;(inherited_flags.m_writingMode); }
</del><ins>+    WritingMode writingMode() const { return static_cast&lt;WritingMode&gt;(m_inheritedFlags.writingMode); }
</ins><span class="cx">     bool isHorizontalWritingMode() const { return WebCore::isHorizontalWritingMode(writingMode()); }
</span><span class="cx">     bool isVerticalWritingMode() const { return WebCore::isVerticalWritingMode(writingMode()); }
</span><span class="cx">     bool isFlippedLinesWritingMode() const { return WebCore::isFlippedLinesWritingMode(writingMode()); }
</span><span class="cx">     bool isFlippedBlocksWritingMode() const { return WebCore::isFlippedWritingMode(writingMode()); }
</span><span class="cx"> 
</span><del>-    ImageOrientationEnum imageOrientation() const
-    {
-#if ENABLE(CSS_IMAGE_ORIENTATION)
-        return static_cast&lt;ImageOrientationEnum&gt;(rareInheritedData-&gt;m_imageOrientation);
-#else
-        return DefaultImageOrientation;
-#endif
-    }
</del><ins>+    ImageOrientationEnum imageOrientation() const;
</ins><span class="cx"> 
</span><del>-    EImageRendering imageRendering() const { return static_cast&lt;EImageRendering&gt;(rareInheritedData-&gt;m_imageRendering); }
</del><ins>+    EImageRendering imageRendering() const { return static_cast&lt;EImageRendering&gt;(m_rareInheritedData-&gt;imageRendering); }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    ImageResolutionSource imageResolutionSource() const { return static_cast&lt;ImageResolutionSource&gt;(rareInheritedData-&gt;m_imageResolutionSource); }
-    ImageResolutionSnap imageResolutionSnap() const { return static_cast&lt;ImageResolutionSnap&gt;(rareInheritedData-&gt;m_imageResolutionSnap); }
-    float imageResolution() const { return rareInheritedData-&gt;m_imageResolution; }
</del><ins>+    ImageResolutionSource imageResolutionSource() const { return static_cast&lt;ImageResolutionSource&gt;(m_rareInheritedData-&gt;imageResolutionSource); }
+    ImageResolutionSnap imageResolutionSnap() const { return static_cast&lt;ImageResolutionSnap&gt;(m_rareInheritedData-&gt;imageResolutionSnap); }
+    float imageResolution() const { return m_rareInheritedData-&gt;imageResolution; }
</ins><span class="cx"> #endif
</span><span class="cx">     
</span><del>-    ESpeak speak() const { return static_cast&lt;ESpeak&gt;(rareInheritedData-&gt;speak); }
</del><ins>+    ESpeak speak() const { return static_cast&lt;ESpeak&gt;(m_rareInheritedData-&gt;speak); }
</ins><span class="cx"> 
</span><del>-    FilterOperations&amp; mutableFilter() { return rareNonInheritedData.access()-&gt;m_filter.access()-&gt;m_operations; }
-    const FilterOperations&amp; filter() const { return rareNonInheritedData-&gt;m_filter-&gt;m_operations; }
-    bool hasFilter() const { return !rareNonInheritedData-&gt;m_filter-&gt;m_operations.operations().isEmpty(); }
</del><ins>+    FilterOperations&amp; mutableFilter() { return m_rareNonInheritedData.access().filter.access().operations; }
+    const FilterOperations&amp; filter() const { return m_rareNonInheritedData-&gt;filter-&gt;operations; }
+    bool hasFilter() const { return !m_rareNonInheritedData-&gt;filter-&gt;operations.operations().isEmpty(); }
</ins><span class="cx">     bool hasReferenceFilterOnly() const;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-    FilterOperations&amp; mutableBackdropFilter() { return rareNonInheritedData.access()-&gt;m_backdropFilter.access()-&gt;m_operations; }
-    const FilterOperations&amp; backdropFilter() const { return rareNonInheritedData-&gt;m_backdropFilter-&gt;m_operations; }
-    bool hasBackdropFilter() const { return !rareNonInheritedData-&gt;m_backdropFilter-&gt;m_operations.operations().isEmpty(); }
</del><ins>+    FilterOperations&amp; mutableBackdropFilter() { return m_rareNonInheritedData.access().backdropFilter.access().operations; }
+    const FilterOperations&amp; backdropFilter() const { return m_rareNonInheritedData-&gt;backdropFilter-&gt;operations; }
+    bool hasBackdropFilter() const { return !m_rareNonInheritedData-&gt;backdropFilter-&gt;operations.operations().isEmpty(); }
</ins><span class="cx"> #else
</span><span class="cx">     bool hasBackdropFilter() const { return false; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    BlendMode blendMode() const { return static_cast&lt;BlendMode&gt;(rareNonInheritedData-&gt;m_effectiveBlendMode); }
-    void setBlendMode(BlendMode blendMode) { SET_VAR(rareNonInheritedData, m_effectiveBlendMode, blendMode); }
-    bool hasBlendMode() const { return static_cast&lt;BlendMode&gt;(rareNonInheritedData-&gt;m_effectiveBlendMode) != BlendModeNormal; }
</del><ins>+    BlendMode blendMode() const { return static_cast&lt;BlendMode&gt;(m_rareNonInheritedData-&gt;effectiveBlendMode); }
+    void setBlendMode(BlendMode mode) { SET_VAR(m_rareNonInheritedData, effectiveBlendMode, mode); }
+    bool hasBlendMode() const { return static_cast&lt;BlendMode&gt;(m_rareNonInheritedData-&gt;effectiveBlendMode) != BlendModeNormal; }
</ins><span class="cx"> 
</span><del>-    Isolation isolation() const { return static_cast&lt;Isolation&gt;(rareNonInheritedData-&gt;m_isolation); }
-    void setIsolation(Isolation isolation) { SET_VAR(rareNonInheritedData, m_isolation, isolation); }
-    bool hasIsolation() const { return rareNonInheritedData-&gt;m_isolation != IsolationAuto; }
</del><ins>+    Isolation isolation() const { return static_cast&lt;Isolation&gt;(m_rareNonInheritedData-&gt;isolation); }
+    void setIsolation(Isolation isolation) { SET_VAR(m_rareNonInheritedData, isolation, isolation); }
+    bool hasIsolation() const { return m_rareNonInheritedData-&gt;isolation != IsolationAuto; }
</ins><span class="cx"> #else
</span><span class="cx">     BlendMode blendMode() const { return BlendModeNormal; }
</span><span class="cx">     bool hasBlendMode() const { return false; }
</span><span class="lines">@@ -1224,12 +779,12 @@
</span><span class="cx">     bool shouldPlaceBlockDirectionScrollbarOnLeft() const;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_TRAILING_WORD)
</span><del>-    TrailingWord trailingWord() const { return static_cast&lt;TrailingWord&gt;(rareInheritedData-&gt;trailingWord); }
</del><ins>+    TrailingWord trailingWord() const { return static_cast&lt;TrailingWord&gt;(m_rareInheritedData-&gt;trailingWord); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(APPLE_PAY)
</span><del>-    ApplePayButtonStyle applePayButtonStyle() const { return static_cast&lt;ApplePayButtonStyle&gt;(rareNonInheritedData-&gt;m_applePayButtonStyle); }
-    ApplePayButtonType applePayButtonType() const { return static_cast&lt;ApplePayButtonType&gt;(rareNonInheritedData-&gt;m_applePayButtonType); }
</del><ins>+    ApplePayButtonStyle applePayButtonStyle() const { return static_cast&lt;ApplePayButtonStyle&gt;(m_rareNonInheritedData-&gt;applePayButtonStyle); }
+    ApplePayButtonType applePayButtonType() const { return static_cast&lt;ApplePayButtonType&gt;(m_rareNonInheritedData-&gt;applePayButtonType); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void checkVariablesInCustomProperties();
</span><span class="lines">@@ -1236,103 +791,66 @@
</span><span class="cx"> 
</span><span class="cx"> // attribute setter methods
</span><span class="cx"> 
</span><del>-    void setDisplay(EDisplay v) { noninherited_flags.setEffectiveDisplay(v); }
-    void setOriginalDisplay(EDisplay v) { noninherited_flags.setOriginalDisplay(v); }
-    void setPosition(EPosition v) { noninherited_flags.setPosition(v); }
-    void setFloating(EFloat v) { noninherited_flags.setFloating(v); }
</del><ins>+    void setDisplay(EDisplay v) { m_nonInheritedFlags.setEffectiveDisplay(v); }
+    void setOriginalDisplay(EDisplay v) { m_nonInheritedFlags.setOriginalDisplay(v); }
+    void setPosition(EPosition v) { m_nonInheritedFlags.setPosition(v); }
+    void setFloating(EFloat v) { m_nonInheritedFlags.setFloating(v); }
</ins><span class="cx"> 
</span><del>-    void setLeft(Length v) { SET_VAR(surround, offset.left(), WTFMove(v)); }
-    void setRight(Length v) { SET_VAR(surround, offset.right(), WTFMove(v)); }
-    void setTop(Length v) { SET_VAR(surround, offset.top(), WTFMove(v)); }
-    void setBottom(Length v) { SET_VAR(surround, offset.bottom(), WTFMove(v)); }
</del><ins>+    void setLeft(Length&amp;&amp; length) { SET_VAR(m_surroundData, offset.left(), WTFMove(length)); }
+    void setRight(Length&amp;&amp; length) { SET_VAR(m_surroundData, offset.right(), WTFMove(length)); }
+    void setTop(Length&amp;&amp; length) { SET_VAR(m_surroundData, offset.top(), WTFMove(length)); }
+    void setBottom(Length&amp;&amp; length) { SET_VAR(m_surroundData, offset.bottom(), WTFMove(length)); }
</ins><span class="cx"> 
</span><del>-    void setWidth(Length v) { SET_VAR(m_box, m_width, WTFMove(v)); }
-    void setHeight(Length v) { SET_VAR(m_box, m_height, WTFMove(v)); }
</del><ins>+    void setWidth(Length&amp;&amp; length) { SET_VAR(m_boxData, m_width, WTFMove(length)); }
+    void setHeight(Length&amp;&amp; length) { SET_VAR(m_boxData, m_height, WTFMove(length)); }
</ins><span class="cx"> 
</span><del>-    void setLogicalWidth(Length v)
-    {
-        if (isHorizontalWritingMode()) {
-            SET_VAR(m_box, m_width, WTFMove(v));
-        } else {
-            SET_VAR(m_box, m_height, WTFMove(v));
-        }
-    }
</del><ins>+    void setLogicalWidth(Length&amp;&amp;);
+    void setLogicalHeight(Length&amp;&amp;);
</ins><span class="cx"> 
</span><del>-    void setLogicalHeight(Length v)
-    {
-        if (isHorizontalWritingMode()) {
-            SET_VAR(m_box, m_height, WTFMove(v));
-        } else {
-            SET_VAR(m_box, m_width, WTFMove(v));
-        }
-    }
</del><ins>+    void setMinWidth(Length&amp;&amp; length) { SET_VAR(m_boxData, m_minWidth, WTFMove(length)); }
+    void setMaxWidth(Length&amp;&amp; length) { SET_VAR(m_boxData, m_maxWidth, WTFMove(length)); }
+    void setMinHeight(Length&amp;&amp; length) { SET_VAR(m_boxData, m_minHeight, WTFMove(length)); }
+    void setMaxHeight(Length&amp;&amp; length) { SET_VAR(m_boxData, m_maxHeight, WTFMove(length)); }
</ins><span class="cx"> 
</span><del>-    void setMinWidth(Length v) { SET_VAR(m_box, m_minWidth, WTFMove(v)); }
-    void setMaxWidth(Length v) { SET_VAR(m_box, m_maxWidth, WTFMove(v)); }
-    void setMinHeight(Length v) { SET_VAR(m_box, m_minHeight, WTFMove(v)); }
-    void setMaxHeight(Length v) { SET_VAR(m_box, m_maxHeight, WTFMove(v)); }
-
</del><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><del>-    Vector&lt;StyleDashboardRegion&gt; dashboardRegions() const { return rareNonInheritedData-&gt;m_dashboardRegions; }
-    void setDashboardRegions(Vector&lt;StyleDashboardRegion&gt; regions) { SET_VAR(rareNonInheritedData, m_dashboardRegions, regions); }
-
-    void setDashboardRegion(int type, const String&amp; label, Length t, Length r, Length b, Length l, bool append)
-    {
-        StyleDashboardRegion region;
-        region.label = label;
-        region.offset.top() = WTFMove(t);
-        region.offset.right() = WTFMove(r);
-        region.offset.bottom() = WTFMove(b);
-        region.offset.left() = WTFMove(l);
-        region.type = type;
-        if (!append)
-            rareNonInheritedData.access()-&gt;m_dashboardRegions.clear();
-        rareNonInheritedData.access()-&gt;m_dashboardRegions.append(region);
-    }
</del><ins>+    const Vector&lt;StyleDashboardRegion&gt;&amp; dashboardRegions() const { return m_rareNonInheritedData-&gt;dashboardRegions; }
+    void setDashboardRegions(const Vector&lt;StyleDashboardRegion&gt;&amp; regions) { SET_VAR(m_rareNonInheritedData, dashboardRegions, regions); }
+    void setDashboardRegion(int type, const String&amp; label, Length&amp;&amp; top, Length&amp;&amp; right, Length&amp;&amp; bottom, Length&amp;&amp; left, bool append);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void resetBorder() { resetBorderImage(); resetBorderTop(); resetBorderRight(); resetBorderBottom(); resetBorderLeft(); resetBorderRadius(); }
</span><del>-    void resetBorderTop() { SET_VAR(surround, border.m_top, BorderValue()); }
-    void resetBorderRight() { SET_VAR(surround, border.m_right, BorderValue()); }
-    void resetBorderBottom() { SET_VAR(surround, border.m_bottom, BorderValue()); }
-    void resetBorderLeft() { SET_VAR(surround, border.m_left, BorderValue()); }
-    void resetBorderImage() { SET_VAR(surround, border.m_image, NinePieceImage()); }
</del><ins>+    void resetBorderTop() { SET_VAR(m_surroundData, border.m_top, BorderValue()); }
+    void resetBorderRight() { SET_VAR(m_surroundData, border.m_right, BorderValue()); }
+    void resetBorderBottom() { SET_VAR(m_surroundData, border.m_bottom, BorderValue()); }
+    void resetBorderLeft() { SET_VAR(m_surroundData, border.m_left, BorderValue()); }
+    void resetBorderImage() { SET_VAR(m_surroundData, border.m_image, NinePieceImage()); }
</ins><span class="cx">     void resetBorderRadius() { resetBorderTopLeftRadius(); resetBorderTopRightRadius(); resetBorderBottomLeftRadius(); resetBorderBottomRightRadius(); }
</span><del>-    void resetBorderTopLeftRadius() { SET_VAR(surround, border.m_topLeft, initialBorderRadius()); }
-    void resetBorderTopRightRadius() { SET_VAR(surround, border.m_topRight, initialBorderRadius()); }
-    void resetBorderBottomLeftRadius() { SET_VAR(surround, border.m_bottomLeft, initialBorderRadius()); }
-    void resetBorderBottomRightRadius() { SET_VAR(surround, border.m_bottomRight, initialBorderRadius()); }
</del><ins>+    void resetBorderTopLeftRadius() { SET_VAR(m_surroundData, border.m_topLeft, initialBorderRadius()); }
+    void resetBorderTopRightRadius() { SET_VAR(m_surroundData, border.m_topRight, initialBorderRadius()); }
+    void resetBorderBottomLeftRadius() { SET_VAR(m_surroundData, border.m_bottomLeft, initialBorderRadius()); }
+    void resetBorderBottomRightRadius() { SET_VAR(m_surroundData, border.m_bottomRight, initialBorderRadius()); }
</ins><span class="cx"> 
</span><del>-    void setBackgroundColor(const Color&amp; v) { SET_VAR(m_background, m_color, v); }
</del><ins>+    void setBackgroundColor(const Color&amp; v) { SET_VAR(m_backgroundData, color, v); }
</ins><span class="cx"> 
</span><del>-    void setBackgroundXPosition(Length length) { SET_VAR(m_background, m_background.m_xPosition, WTFMove(length)); }
-    void setBackgroundYPosition(Length length) { SET_VAR(m_background, m_background.m_yPosition, WTFMove(length)); }
-    void setBackgroundSize(EFillSizeType b) { SET_VAR(m_background, m_background.m_sizeType, b); }
-    void setBackgroundSizeLength(LengthSize size) { SET_VAR(m_background, m_background.m_sizeLength, WTFMove(size)); }
</del><ins>+    void setBackgroundXPosition(Length&amp;&amp; length) { SET_VAR(m_backgroundData, background.m_xPosition, WTFMove(length)); }
+    void setBackgroundYPosition(Length&amp;&amp; length) { SET_VAR(m_backgroundData, background.m_yPosition, WTFMove(length)); }
+    void setBackgroundSize(EFillSizeType b) { SET_VAR(m_backgroundData, background.m_sizeType, b); }
+    void setBackgroundSizeLength(LengthSize&amp;&amp; size) { SET_VAR(m_backgroundData, background.m_sizeLength, WTFMove(size)); }
</ins><span class="cx">     
</span><del>-    void setBorderImage(const NinePieceImage&amp; b) { SET_VAR(surround, border.m_image, b); }
</del><ins>+    void setBorderImage(const NinePieceImage&amp; b) { SET_VAR(m_surroundData, border.m_image, b); }
</ins><span class="cx">     void setBorderImageSource(RefPtr&lt;StyleImage&gt;&amp;&amp;);
</span><del>-    void setBorderImageSlices(LengthBox);
-    void setBorderImageWidth(LengthBox);
-    void setBorderImageOutset(LengthBox);
</del><ins>+    void setBorderImageSlices(LengthBox&amp;&amp;);
+    void setBorderImageWidth(LengthBox&amp;&amp;);
+    void setBorderImageOutset(LengthBox&amp;&amp;);
</ins><span class="cx"> 
</span><del>-    void setBorderTopLeftRadius(LengthSize size) { SET_VAR(surround, border.m_topLeft, WTFMove(size)); }
-    void setBorderTopRightRadius(LengthSize size) { SET_VAR(surround, border.m_topRight, WTFMove(size)); }
-    void setBorderBottomLeftRadius(LengthSize size) { SET_VAR(surround, border.m_bottomLeft, WTFMove(size)); }
-    void setBorderBottomRightRadius(LengthSize size) { SET_VAR(surround, border.m_bottomRight, WTFMove(size)); }
</del><ins>+    void setBorderTopLeftRadius(LengthSize&amp;&amp; size) { SET_VAR(m_surroundData, border.m_topLeft, WTFMove(size)); }
+    void setBorderTopRightRadius(LengthSize&amp;&amp; size) { SET_VAR(m_surroundData, border.m_topRight, WTFMove(size)); }
+    void setBorderBottomLeftRadius(LengthSize&amp;&amp; size) { SET_VAR(m_surroundData, border.m_bottomLeft, WTFMove(size)); }
+    void setBorderBottomRightRadius(LengthSize&amp;&amp; size) { SET_VAR(m_surroundData, border.m_bottomRight, WTFMove(size)); }
</ins><span class="cx"> 
</span><del>-    void setBorderRadius(LengthSize s)
-    {
-        setBorderTopLeftRadius(s);
-        setBorderTopRightRadius(s);
-        setBorderBottomLeftRadius(s);
-        setBorderBottomRightRadius(s);
-    }
-    void setBorderRadius(const IntSize&amp; s)
-    {
-        setBorderRadius(LengthSize(Length(s.width(), Fixed), Length(s.height(), Fixed)));
-    }
-    
</del><ins>+    void setBorderRadius(LengthSize&amp;&amp;);
+    void setBorderRadius(const IntSize&amp;);
+
</ins><span class="cx">     RoundedRect getRoundedBorderFor(const LayoutRect&amp; borderRect, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true) const;
</span><span class="cx">     RoundedRect getRoundedInnerBorderFor(const LayoutRect&amp; borderRect, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true) const;
</span><span class="cx"> 
</span><span class="lines">@@ -1339,458 +857,428 @@
</span><span class="cx">     RoundedRect getRoundedInnerBorderFor(const LayoutRect&amp; borderRect, LayoutUnit topWidth, LayoutUnit bottomWidth,
</span><span class="cx">         LayoutUnit leftWidth, LayoutUnit rightWidth, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true) const;
</span><span class="cx"> 
</span><del>-    void setBorderLeftWidth(float v) { SET_VAR(surround, border.m_left.m_width, v); }
-    void setBorderLeftStyle(EBorderStyle v) { SET_VAR(surround, border.m_left.m_style, v); }
-    void setBorderLeftColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(surround, border.m_left, v); }
-    void setBorderRightWidth(float v) { SET_VAR(surround, border.m_right.m_width, v); }
-    void setBorderRightStyle(EBorderStyle v) { SET_VAR(surround, border.m_right.m_style, v); }
-    void setBorderRightColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(surround, border.m_right, v); }
-    void setBorderTopWidth(float v) { SET_VAR(surround, border.m_top.m_width, v); }
-    void setBorderTopStyle(EBorderStyle v) { SET_VAR(surround, border.m_top.m_style, v); }
-    void setBorderTopColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(surround, border.m_top, v); }
-    void setBorderBottomWidth(float v) { SET_VAR(surround, border.m_bottom.m_width, v); }
-    void setBorderBottomStyle(EBorderStyle v) { SET_VAR(surround, border.m_bottom.m_style, v); }
-    void setBorderBottomColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(surround, border.m_bottom, v); }
</del><ins>+    void setBorderLeftWidth(float v) { SET_VAR(m_surroundData, border.m_left.m_width, v); }
+    void setBorderLeftStyle(EBorderStyle v) { SET_VAR(m_surroundData, border.m_left.m_style, v); }
+    void setBorderLeftColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(m_surroundData, border.m_left, v); }
+    void setBorderRightWidth(float v) { SET_VAR(m_surroundData, border.m_right.m_width, v); }
+    void setBorderRightStyle(EBorderStyle v) { SET_VAR(m_surroundData, border.m_right.m_style, v); }
+    void setBorderRightColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(m_surroundData, border.m_right, v); }
+    void setBorderTopWidth(float v) { SET_VAR(m_surroundData, border.m_top.m_width, v); }
+    void setBorderTopStyle(EBorderStyle v) { SET_VAR(m_surroundData, border.m_top.m_style, v); }
+    void setBorderTopColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(m_surroundData, border.m_top, v); }
+    void setBorderBottomWidth(float v) { SET_VAR(m_surroundData, border.m_bottom.m_width, v); }
+    void setBorderBottomStyle(EBorderStyle v) { SET_VAR(m_surroundData, border.m_bottom.m_style, v); }
+    void setBorderBottomColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(m_surroundData, border.m_bottom, v); }
</ins><span class="cx"> 
</span><del>-    void setOutlineWidth(float v) { SET_VAR(m_background, m_outline.m_width, v); }
-    void setOutlineStyleIsAuto(OutlineIsAuto isAuto) { SET_VAR(m_background, m_outline.m_isAuto, isAuto); }
-    void setOutlineStyle(EBorderStyle v) { SET_VAR(m_background, m_outline.m_style, v); }
-    void setOutlineColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(m_background, m_outline, v); }
</del><ins>+    void setOutlineWidth(float v) { SET_VAR(m_backgroundData, outline.m_width, v); }
+    void setOutlineStyleIsAuto(OutlineIsAuto isAuto) { SET_VAR(m_backgroundData, outline.m_isAuto, isAuto); }
+    void setOutlineStyle(EBorderStyle v) { SET_VAR(m_backgroundData, outline.m_style, v); }
+    void setOutlineColor(const Color&amp; v) { SET_BORDERVALUE_COLOR(m_backgroundData, outline, v); }
</ins><span class="cx"> 
</span><del>-    void setOverflowX(EOverflow v) { noninherited_flags.setOverflowX(v); }
-    void setOverflowY(EOverflow v) { noninherited_flags.setOverflowY(v); }
-    void setVisibility(EVisibility v) { inherited_flags._visibility = v; }
-    void setVerticalAlign(EVerticalAlign v) { noninherited_flags.setVerticalAlign(v); }
-    void setVerticalAlignLength(Length length) { setVerticalAlign(LENGTH); SET_VAR(m_box, m_verticalAlign, WTFMove(length)); }
</del><ins>+    void setOverflowX(EOverflow v) { m_nonInheritedFlags.setOverflowX(v); }
+    void setOverflowY(EOverflow v) { m_nonInheritedFlags.setOverflowY(v); }
+    void setVisibility(EVisibility v) { m_inheritedFlags.visibility = v; }
+    void setVerticalAlign(EVerticalAlign v) { m_nonInheritedFlags.setVerticalAlign(v); }
+    void setVerticalAlignLength(Length&amp;&amp; length) { setVerticalAlign(LENGTH); SET_VAR(m_boxData, m_verticalAlign, WTFMove(length)); }
</ins><span class="cx"> 
</span><del>-    void setHasClip(bool b = true) { SET_VAR(visual, hasClip, b); }
-    void setClipLeft(Length length) { SET_VAR(visual, clip.left(), WTFMove(length)); }
-    void setClipRight(Length length) { SET_VAR(visual, clip.right(), WTFMove(length)); }
-    void setClipTop(Length length) { SET_VAR(visual, clip.top(), WTFMove(length)); }
-    void setClipBottom(Length length) { SET_VAR(visual, clip.bottom(), WTFMove(length)); }
-    void setClip(Length top, Length right, Length bottom, Length left);
-    void setClip(LengthBox box) { SET_VAR(visual, clip, WTFMove(box)); }
</del><ins>+    void setHasClip(bool b = true) { SET_VAR(m_visualData, hasClip, b); }
+    void setClipLeft(Length&amp;&amp; length) { SET_VAR(m_visualData, clip.left(), WTFMove(length)); }
+    void setClipRight(Length&amp;&amp; length) { SET_VAR(m_visualData, clip.right(), WTFMove(length)); }
+    void setClipTop(Length&amp;&amp; length) { SET_VAR(m_visualData, clip.top(), WTFMove(length)); }
+    void setClipBottom(Length&amp;&amp; length) { SET_VAR(m_visualData, clip.bottom(), WTFMove(length)); }
+    void setClip(Length&amp;&amp; top, Length&amp;&amp; right, Length&amp;&amp; bottom, Length&amp;&amp; left);
+    void setClip(LengthBox&amp;&amp; box) { SET_VAR(m_visualData, clip, WTFMove(box)); }
</ins><span class="cx"> 
</span><del>-    void setUnicodeBidi(EUnicodeBidi b) { noninherited_flags.setUnicodeBidi(b); }
</del><ins>+    void setUnicodeBidi(EUnicodeBidi b) { m_nonInheritedFlags.setUnicodeBidi(b); }
</ins><span class="cx"> 
</span><del>-    void setClear(EClear v) { noninherited_flags.setClear(v); }
-    void setTableLayout(ETableLayout v) { noninherited_flags.setTableLayout(v); }
</del><ins>+    void setClear(EClear v) { m_nonInheritedFlags.setClear(v); }
+    void setTableLayout(ETableLayout v) { m_nonInheritedFlags.setTableLayout(v); }
</ins><span class="cx"> 
</span><span class="cx">     bool setFontDescription(const FontCascadeDescription&amp;);
</span><ins>+
</ins><span class="cx">     // Only used for blending font sizes when animating, for MathML anonymous blocks, and for text autosizing.
</span><span class="cx">     void setFontSize(float);
</span><ins>+
</ins><span class="cx"> #if ENABLE(VARIATION_FONTS)
</span><span class="cx">     void setFontVariationSettings(FontVariationSettings);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void setColor(const Color&amp;);
</span><del>-    void setTextIndent(Length length) { SET_VAR(rareInheritedData, indent, WTFMove(length)); }
</del><ins>+    void setTextIndent(Length&amp;&amp; length) { SET_VAR(m_rareInheritedData, indent, WTFMove(length)); }
+    void setTextAlign(ETextAlign v) { m_inheritedFlags.textAlign = v; }
+    void setTextTransform(ETextTransform v) { m_inheritedFlags.textTransform = v; }
+    void addToTextDecorationsInEffect(TextDecoration v) { m_inheritedFlags.textDecorations |= v; }
+    void setTextDecorationsInEffect(TextDecoration v) { m_inheritedFlags.textDecorations = v; }
+    void setTextDecoration(TextDecoration v) { SET_VAR(m_visualData, textDecoration, v); }
+    void setTextDecorationStyle(TextDecorationStyle v) { SET_VAR(m_rareNonInheritedData, textDecorationStyle, v); }
+    void setTextDecorationSkip(TextDecorationSkip skip) { SET_VAR(m_rareInheritedData, textDecorationSkip, skip); }
+    void setTextUnderlinePosition(TextUnderlinePosition v) { SET_VAR(m_rareInheritedData, textUnderlinePosition, v); }
+    void setDirection(TextDirection v) { m_inheritedFlags.direction = v; }
+    void setHasExplicitlySetDirection(bool v) { m_nonInheritedFlags.setHasExplicitlySetDirection(v); }
+    void setLineHeight(Length&amp;&amp;);
+    bool setZoom(float);
+    void setZoomWithoutReturnValue(float f) { setZoom(f); }
+    bool setEffectiveZoom(float);
+    void setTextZoom(TextZoom v) { SET_VAR(m_rareInheritedData, textZoom, v); }
+
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    void setTextIndentLine(TextIndentLine v) { SET_VAR(rareInheritedData, m_textIndentLine, v); }
-    void setTextIndentType(TextIndentType v) { SET_VAR(rareInheritedData, m_textIndentType, v); }
</del><ins>+    void setTextIndentLine(TextIndentLine v) { SET_VAR(m_rareInheritedData, textIndentLine, v); }
+    void setTextIndentType(TextIndentType v) { SET_VAR(m_rareInheritedData, textIndentType, v); }
+    void setTextAlignLast(TextAlignLast v) { SET_VAR(m_rareInheritedData, textAlignLast, v); }
+    void setTextJustify(TextJustify v) { SET_VAR(m_rareInheritedData, textJustify, v); }
</ins><span class="cx"> #endif
</span><del>-    void setTextAlign(ETextAlign v) { inherited_flags._text_align = v; }
-    void setTextTransform(ETextTransform v) { inherited_flags._text_transform = v; }
-    void addToTextDecorationsInEffect(TextDecoration v) { inherited_flags._text_decorations |= v; }
-    void setTextDecorationsInEffect(TextDecoration v) { inherited_flags._text_decorations = v; }
-    void setTextDecoration(TextDecoration v) { SET_VAR(visual, textDecoration, v); }
-#if ENABLE(CSS3_TEXT)
-    void setTextAlignLast(TextAlignLast v) { SET_VAR(rareInheritedData, m_textAlignLast, v); }
-    void setTextJustify(TextJustify v) { SET_VAR(rareInheritedData, m_textJustify, v); }
-#endif
-    void setTextDecorationStyle(TextDecorationStyle v) { SET_VAR(rareNonInheritedData, m_textDecorationStyle, v); }
-    void setTextDecorationSkip(TextDecorationSkip skip) { SET_VAR(rareInheritedData, m_textDecorationSkip, skip); }
-    void setTextUnderlinePosition(TextUnderlinePosition v) { SET_VAR(rareInheritedData, m_textUnderlinePosition, v); }
-    void setDirection(TextDirection v) { inherited_flags._direction = v; }
-    void setHasExplicitlySetDirection(bool v) { noninherited_flags.setHasExplicitlySetDirection(v); }
</del><ins>+
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-    void setSpecifiedLineHeight(Length v);
</del><ins>+    void setSpecifiedLineHeight(Length&amp;&amp;);
</ins><span class="cx"> #endif
</span><del>-    void setLineHeight(Length specifiedLineHeight);
-    bool setZoom(float);
-    void setZoomWithoutReturnValue(float f) { setZoom(f); }
-    bool setEffectiveZoom(float);
-    void setTextZoom(TextZoom v) { SET_VAR(rareInheritedData, m_textZoom, v); }
-    
</del><ins>+
</ins><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><del>-    void setImageOrientation(ImageOrientationEnum v) { SET_VAR(rareInheritedData, m_imageOrientation, static_cast&lt;int&gt;(v)); }
</del><ins>+    void setImageOrientation(ImageOrientationEnum v) { SET_VAR(m_rareInheritedData, imageOrientation, static_cast&lt;int&gt;(v)); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setImageRendering(EImageRendering v) { SET_VAR(rareInheritedData, m_imageRendering, v); }
</del><ins>+    void setImageRendering(EImageRendering v) { SET_VAR(m_rareInheritedData, imageRendering, v); }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    void setImageResolutionSource(ImageResolutionSource v) { SET_VAR(rareInheritedData, m_imageResolutionSource, v); }
-    void setImageResolutionSnap(ImageResolutionSnap v) { SET_VAR(rareInheritedData, m_imageResolutionSnap, v); }
-    void setImageResolution(float f) { SET_VAR(rareInheritedData, m_imageResolution, f); }
</del><ins>+    void setImageResolutionSource(ImageResolutionSource v) { SET_VAR(m_rareInheritedData, imageResolutionSource, v); }
+    void setImageResolutionSnap(ImageResolutionSnap v) { SET_VAR(m_rareInheritedData, imageResolutionSnap, v); }
+    void setImageResolution(float f) { SET_VAR(m_rareInheritedData, imageResolution, f); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setWhiteSpace(EWhiteSpace v) { inherited_flags._white_space = v; }
</del><ins>+    void setWhiteSpace(EWhiteSpace v) { m_inheritedFlags.whiteSpace = v; }
</ins><span class="cx"> 
</span><del>-    void setWordSpacing(Length);
</del><ins>+    void setWordSpacing(Length&amp;&amp;);
</ins><span class="cx">     void setLetterSpacing(float);
</span><span class="cx"> 
</span><del>-    void clearBackgroundLayers() { m_background.access()-&gt;m_background = FillLayer(BackgroundFillLayer); }
-    void inheritBackgroundLayers(const FillLayer&amp; parent) { m_background.access()-&gt;m_background = parent; }
</del><ins>+    void clearBackgroundLayers() { m_backgroundData.access().background = FillLayer(BackgroundFillLayer); }
+    void inheritBackgroundLayers(const FillLayer&amp; parent) { m_backgroundData.access().background = parent; }
</ins><span class="cx"> 
</span><del>-    void adjustBackgroundLayers()
-    {
-        if (backgroundLayers()-&gt;next()) {
-            ensureBackgroundLayers().cullEmptyLayers();
-            ensureBackgroundLayers().fillUnsetProperties();
-        }
-    }
</del><ins>+    void adjustBackgroundLayers();
</ins><span class="cx"> 
</span><del>-    void clearMaskLayers() { rareNonInheritedData.access()-&gt;m_mask = FillLayer(MaskFillLayer); }
-    void inheritMaskLayers(const FillLayer&amp; parent) { rareNonInheritedData.access()-&gt;m_mask = parent; }
</del><ins>+    void clearMaskLayers() { m_rareNonInheritedData.access().mask = FillLayer(MaskFillLayer); }
+    void inheritMaskLayers(const FillLayer&amp; parent) { m_rareNonInheritedData.access().mask = parent; }
</ins><span class="cx"> 
</span><del>-    void adjustMaskLayers()
-    {
-        if (maskLayers()-&gt;next()) {
-            ensureMaskLayers().cullEmptyLayers();
-            ensureMaskLayers().fillUnsetProperties();
-        }
-    }
</del><ins>+    void adjustMaskLayers();
</ins><span class="cx"> 
</span><del>-    void setMaskImage(RefPtr&lt;StyleImage&gt;&amp;&amp; v) { rareNonInheritedData.access()-&gt;m_mask.setImage(WTFMove(v)); }
</del><ins>+    void setMaskImage(RefPtr&lt;StyleImage&gt;&amp;&amp; v) { m_rareNonInheritedData.access().mask.setImage(WTFMove(v)); }
</ins><span class="cx"> 
</span><del>-    void setMaskBoxImage(const NinePieceImage&amp; b) { SET_VAR(rareNonInheritedData, m_maskBoxImage, b); }
-    void setMaskBoxImageSource(RefPtr&lt;StyleImage&gt;&amp;&amp; v) { rareNonInheritedData.access()-&gt;m_maskBoxImage.setImage(WTFMove(v)); }
-    void setMaskXPosition(Length length) { SET_VAR(rareNonInheritedData, m_mask.m_xPosition, WTFMove(length)); }
-    void setMaskYPosition(Length length) { SET_VAR(rareNonInheritedData, m_mask.m_yPosition, WTFMove(length)); }
-    void setMaskSize(LengthSize size) { SET_VAR(rareNonInheritedData, m_mask.m_sizeLength, WTFMove(size)); }
</del><ins>+    void setMaskBoxImage(const NinePieceImage&amp; b) { SET_VAR(m_rareNonInheritedData, maskBoxImage, b); }
+    void setMaskBoxImageSource(RefPtr&lt;StyleImage&gt;&amp;&amp; v) { m_rareNonInheritedData.access().maskBoxImage.setImage(WTFMove(v)); }
+    void setMaskXPosition(Length&amp;&amp; length) { SET_VAR(m_rareNonInheritedData, mask.m_xPosition, WTFMove(length)); }
+    void setMaskYPosition(Length&amp;&amp; length) { SET_VAR(m_rareNonInheritedData, mask.m_yPosition, WTFMove(length)); }
+    void setMaskSize(LengthSize size) { SET_VAR(m_rareNonInheritedData, mask.m_sizeLength, WTFMove(size)); }
</ins><span class="cx"> 
</span><del>-    void setBorderCollapse(EBorderCollapse collapse) { inherited_flags._border_collapse = collapse; }
</del><ins>+    void setBorderCollapse(EBorderCollapse collapse) { m_inheritedFlags.borderCollapse = collapse; }
</ins><span class="cx">     void setHorizontalBorderSpacing(float);
</span><span class="cx">     void setVerticalBorderSpacing(float);
</span><del>-    void setEmptyCells(EEmptyCell v) { inherited_flags._empty_cells = v; }
-    void setCaptionSide(ECaptionSide v) { inherited_flags._caption_side = v; }
</del><ins>+    void setEmptyCells(EEmptyCell v) { m_inheritedFlags.emptyCells = v; }
+    void setCaptionSide(ECaptionSide v) { m_inheritedFlags.captionSide = v; }
</ins><span class="cx"> 
</span><del>-    void setAspectRatioType(AspectRatioType aspectRatioType) { SET_VAR(rareNonInheritedData, m_aspectRatioType, aspectRatioType); }
-    void setAspectRatioDenominator(float v) { SET_VAR(rareNonInheritedData, m_aspectRatioDenominator, v); }
-    void setAspectRatioNumerator(float v) { SET_VAR(rareNonInheritedData, m_aspectRatioNumerator, v); }
</del><ins>+    void setAspectRatioType(AspectRatioType aspectRatioType) { SET_VAR(m_rareNonInheritedData, aspectRatioType, aspectRatioType); }
+    void setAspectRatioDenominator(float v) { SET_VAR(m_rareNonInheritedData, aspectRatioDenominator, v); }
+    void setAspectRatioNumerator(float v) { SET_VAR(m_rareNonInheritedData, aspectRatioNumerator, v); }
</ins><span class="cx"> 
</span><del>-    void setListStyleType(EListStyleType v) { inherited_flags._list_style_type = v; }
</del><ins>+    void setListStyleType(EListStyleType v) { m_inheritedFlags.listStyleType = v; }
</ins><span class="cx">     void setListStyleImage(RefPtr&lt;StyleImage&gt;&amp;&amp;);
</span><del>-    void setListStylePosition(EListStylePosition v) { inherited_flags._list_style_position = v; }
</del><ins>+    void setListStylePosition(EListStylePosition v) { m_inheritedFlags.listStylePosition = v; }
</ins><span class="cx"> 
</span><del>-    void resetMargin() { SET_VAR(surround, margin, LengthBox(Fixed)); }
-    void setMarginTop(Length length) { SET_VAR(surround, margin.top(), WTFMove(length)); }
-    void setMarginBottom(Length length) { SET_VAR(surround, margin.bottom(), WTFMove(length)); }
-    void setMarginLeft(Length length) { SET_VAR(surround, margin.left(), WTFMove(length)); }
-    void setMarginRight(Length length) { SET_VAR(surround, margin.right(), WTFMove(length)); }
-    void setMarginStart(Length);
-    void setMarginEnd(Length);
</del><ins>+    void resetMargin() { SET_VAR(m_surroundData, margin, LengthBox(Fixed)); }
+    void setMarginTop(Length&amp;&amp; length) { SET_VAR(m_surroundData, margin.top(), WTFMove(length)); }
+    void setMarginBottom(Length&amp;&amp; length) { SET_VAR(m_surroundData, margin.bottom(), WTFMove(length)); }
+    void setMarginLeft(Length&amp;&amp; length) { SET_VAR(m_surroundData, margin.left(), WTFMove(length)); }
+    void setMarginRight(Length&amp;&amp; length) { SET_VAR(m_surroundData, margin.right(), WTFMove(length)); }
+    void setMarginStart(Length&amp;&amp;);
+    void setMarginEnd(Length&amp;&amp;);
</ins><span class="cx"> 
</span><del>-    void resetPadding() { SET_VAR(surround, padding, LengthBox(Auto)); }
-    void setPaddingBox(LengthBox box) { SET_VAR(surround, padding, WTFMove(box)); }
-    void setPaddingTop(Length length) { SET_VAR(surround, padding.top(), WTFMove(length)); }
-    void setPaddingBottom(Length length) { SET_VAR(surround, padding.bottom(), WTFMove(length)); }
-    void setPaddingLeft(Length length) { SET_VAR(surround, padding.left(), WTFMove(length)); }
-    void setPaddingRight(Length length) { SET_VAR(surround, padding.right(), WTFMove(length)); }
</del><ins>+    void resetPadding() { SET_VAR(m_surroundData, padding, LengthBox(Auto)); }
+    void setPaddingBox(LengthBox&amp;&amp; box) { SET_VAR(m_surroundData, padding, WTFMove(box)); }
+    void setPaddingTop(Length&amp;&amp; length) { SET_VAR(m_surroundData, padding.top(), WTFMove(length)); }
+    void setPaddingBottom(Length&amp;&amp; length) { SET_VAR(m_surroundData, padding.bottom(), WTFMove(length)); }
+    void setPaddingLeft(Length&amp;&amp; length) { SET_VAR(m_surroundData, padding.left(), WTFMove(length)); }
+    void setPaddingRight(Length&amp;&amp; length) { SET_VAR(m_surroundData, padding.right(), WTFMove(length)); }
</ins><span class="cx"> 
</span><del>-    void setCursor(ECursor c) { inherited_flags._cursor_style = c; }
</del><ins>+    void setCursor(ECursor c) { m_inheritedFlags.cursor = c; }
</ins><span class="cx">     void addCursor(RefPtr&lt;StyleImage&gt;&amp;&amp;, const IntPoint&amp; hotSpot = IntPoint());
</span><span class="cx">     void setCursorList(RefPtr&lt;CursorList&gt;&amp;&amp;);
</span><span class="cx">     void clearCursorList();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CURSOR_VISIBILITY)
</span><del>-    void setCursorVisibility(CursorVisibility c) { inherited_flags.m_cursorVisibility = c; }
</del><ins>+    void setCursorVisibility(CursorVisibility c) { m_inheritedFlags.cursorVisibility = c; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setInsideLink(EInsideLink insideLink) { inherited_flags._insideLink = insideLink; }
-    void setIsLink(bool b) { noninherited_flags.setIsLink(b); }
</del><ins>+    void setInsideLink(EInsideLink insideLink) { m_inheritedFlags.insideLink = insideLink; }
+    void setIsLink(bool b) { m_nonInheritedFlags.setIsLink(b); }
</ins><span class="cx"> 
</span><del>-    void setInsideDefaultButton(bool insideDefaultButton) { inherited_flags._insideDefaultButton = insideDefaultButton; }
</del><ins>+    void setInsideDefaultButton(bool insideDefaultButton) { m_inheritedFlags.insideDefaultButton = insideDefaultButton; }
</ins><span class="cx"> 
</span><del>-    PrintColorAdjust printColorAdjust() const { return static_cast&lt;PrintColorAdjust&gt;(inherited_flags.m_printColorAdjust); }
-    void setPrintColorAdjust(PrintColorAdjust value) { inherited_flags.m_printColorAdjust = value; }
</del><ins>+    PrintColorAdjust printColorAdjust() const { return static_cast&lt;PrintColorAdjust&gt;(m_inheritedFlags.printColorAdjust); }
+    void setPrintColorAdjust(PrintColorAdjust value) { m_inheritedFlags.printColorAdjust = value; }
</ins><span class="cx"> 
</span><del>-    bool hasAutoZIndex() const { return m_box-&gt;hasAutoZIndex(); }
-    void setHasAutoZIndex() { SET_VAR(m_box, m_hasAutoZIndex, true); SET_VAR(m_box, m_zIndex, 0); }
-    int zIndex() const { return m_box-&gt;zIndex(); }
-    void setZIndex(int v) { SET_VAR(m_box, m_hasAutoZIndex, false); SET_VAR(m_box, m_zIndex, v); }
</del><ins>+    bool hasAutoZIndex() const { return m_boxData-&gt;hasAutoZIndex(); }
+    void setHasAutoZIndex() { SET_VAR(m_boxData, m_hasAutoZIndex, true); SET_VAR(m_boxData, m_zIndex, 0); }
+    int zIndex() const { return m_boxData-&gt;zIndex(); }
+    void setZIndex(int v) { SET_VAR(m_boxData, m_hasAutoZIndex, false); SET_VAR(m_boxData, m_zIndex, v); }
</ins><span class="cx"> 
</span><del>-    void setHasAutoWidows() { SET_VAR(rareInheritedData, m_hasAutoWidows, true); SET_VAR(rareInheritedData, widows, initialWidows()); }
-    void setWidows(short w) { SET_VAR(rareInheritedData, m_hasAutoWidows, false); SET_VAR(rareInheritedData, widows, w); }
</del><ins>+    void setHasAutoWidows() { SET_VAR(m_rareInheritedData, hasAutoWidows, true); SET_VAR(m_rareInheritedData, widows, initialWidows()); }
+    void setWidows(short w) { SET_VAR(m_rareInheritedData, hasAutoWidows, false); SET_VAR(m_rareInheritedData, widows, w); }
</ins><span class="cx"> 
</span><del>-    void setHasAutoOrphans() { SET_VAR(rareInheritedData, m_hasAutoOrphans, true); SET_VAR(rareInheritedData, orphans, initialOrphans()); }
-    void setOrphans(short o) { SET_VAR(rareInheritedData, m_hasAutoOrphans, false); SET_VAR(rareInheritedData, orphans, o); }
</del><ins>+    void setHasAutoOrphans() { SET_VAR(m_rareInheritedData, hasAutoOrphans, true); SET_VAR(m_rareInheritedData, orphans, initialOrphans()); }
+    void setOrphans(short o) { SET_VAR(m_rareInheritedData, hasAutoOrphans, false); SET_VAR(m_rareInheritedData, orphans, o); }
</ins><span class="cx"> 
</span><span class="cx">     // CSS3 Setters
</span><del>-    void setOutlineOffset(float v) { SET_VAR(m_background, m_outline.m_offset, v); }
</del><ins>+    void setOutlineOffset(float v) { SET_VAR(m_backgroundData, outline.m_offset, v); }
</ins><span class="cx">     void setTextShadow(std::unique_ptr&lt;ShadowData&gt;, bool add = false);
</span><del>-    void setTextStrokeColor(const Color&amp; c) { SET_VAR(rareInheritedData, textStrokeColor, c); }
-    void setTextStrokeWidth(float w) { SET_VAR(rareInheritedData, textStrokeWidth, w); }
-    void setTextFillColor(const Color&amp; c) { SET_VAR(rareInheritedData, textFillColor, c); }
-    void setOpacity(float f) { float v = clampTo&lt;float&gt;(f, 0, 1); SET_VAR(rareNonInheritedData, m_opacity, v); }
-    void setAppearance(ControlPart a) { SET_VAR(rareNonInheritedData, m_appearance, a); }
</del><ins>+    void setTextStrokeColor(const Color&amp; c) { SET_VAR(m_rareInheritedData, textStrokeColor, c); }
+    void setTextStrokeWidth(float w) { SET_VAR(m_rareInheritedData, textStrokeWidth, w); }
+    void setTextFillColor(const Color&amp; c) { SET_VAR(m_rareInheritedData, textFillColor, c); }
+    void setOpacity(float f) { float v = clampTo&lt;float&gt;(f, 0, 1); SET_VAR(m_rareNonInheritedData, opacity, v); }
+    void setAppearance(ControlPart a) { SET_VAR(m_rareNonInheritedData, appearance, a); }
</ins><span class="cx">     // For valid values of box-align see http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#alignment
</span><del>-    void setBoxAlign(EBoxAlignment a) { SET_NESTED_VAR(rareNonInheritedData, m_deprecatedFlexibleBox, align, a); }
</del><ins>+    void setBoxAlign(EBoxAlignment a) { SET_NESTED_VAR(m_rareNonInheritedData, deprecatedFlexibleBox, align, a); }
+    void setBoxDirection(EBoxDirection d) { m_inheritedFlags.boxDirection = d; }
+    void setBoxFlex(float f) { SET_NESTED_VAR(m_rareNonInheritedData, deprecatedFlexibleBox, flex, f); }
+    void setBoxFlexGroup(unsigned group) { SET_NESTED_VAR(m_rareNonInheritedData, deprecatedFlexibleBox, flexGroup, group); }
+    void setBoxLines(EBoxLines lines) { SET_NESTED_VAR(m_rareNonInheritedData, deprecatedFlexibleBox, lines, lines); }
+    void setBoxOrdinalGroup(unsigned group) { SET_NESTED_VAR(m_rareNonInheritedData, deprecatedFlexibleBox, ordinalGroup, group); }
+    void setBoxOrient(EBoxOrient o) { SET_NESTED_VAR(m_rareNonInheritedData, deprecatedFlexibleBox, orient, o); }
+    void setBoxPack(EBoxPack p) { SET_NESTED_VAR(m_rareNonInheritedData, deprecatedFlexibleBox, pack, p); }
+    void setBoxShadow(std::unique_ptr&lt;ShadowData&gt;, bool add = false);
+    void setBoxReflect(RefPtr&lt;StyleReflection&gt;&amp;&amp;);
+    void setBoxSizing(EBoxSizing s) { SET_VAR(m_boxData, m_boxSizing, s); }
+    void setFlexGrow(float f) { SET_NESTED_VAR(m_rareNonInheritedData, flexibleBox, flexGrow, f); }
+    void setFlexShrink(float f) { SET_NESTED_VAR(m_rareNonInheritedData, flexibleBox, flexShrink, f); }
+    void setFlexBasis(Length&amp;&amp; length) { SET_NESTED_VAR(m_rareNonInheritedData, flexibleBox, flexBasis, WTFMove(length)); }
+    void setOrder(int o) { SET_VAR(m_rareNonInheritedData, order, o); }
+    void setAlignContent(const StyleContentAlignmentData&amp; data) { SET_VAR(m_rareNonInheritedData, alignContent, data); }
+    void setAlignItems(const StyleSelfAlignmentData&amp; data) { SET_VAR(m_rareNonInheritedData, alignItems, data); }
+    void setAlignItemsPosition(ItemPosition position) { m_rareNonInheritedData.access().alignItems.setPosition(position); }
+    void setAlignSelf(const StyleSelfAlignmentData&amp; data) { SET_VAR(m_rareNonInheritedData, alignSelf, data); }
+    void setAlignSelfPosition(ItemPosition position) { m_rareNonInheritedData.access().alignSelf.setPosition(position); }
+    void setFlexDirection(EFlexDirection direction) { SET_NESTED_VAR(m_rareNonInheritedData, flexibleBox, flexDirection, direction); }
+    void setFlexWrap(EFlexWrap w) { SET_NESTED_VAR(m_rareNonInheritedData, flexibleBox, flexWrap, w); }
+    void setJustifyContent(const StyleContentAlignmentData&amp; data) { SET_VAR(m_rareNonInheritedData, justifyContent, data); }
+    void setJustifyContentPosition(ContentPosition position) { m_rareNonInheritedData.access().justifyContent.setPosition(position); }
+    void setJustifyItems(const StyleSelfAlignmentData&amp; data) { SET_VAR(m_rareNonInheritedData, justifyItems, data); }
+    void setJustifySelf(const StyleSelfAlignmentData&amp; data) { SET_VAR(m_rareNonInheritedData, justifySelf, data); }
+
</ins><span class="cx"> #if ENABLE(CSS_BOX_DECORATION_BREAK)
</span><del>-    void setBoxDecorationBreak(EBoxDecorationBreak b) { SET_VAR(m_box, m_boxDecorationBreak, b); }
</del><ins>+    void setBoxDecorationBreak(EBoxDecorationBreak b) { SET_VAR(m_boxData, m_boxDecorationBreak, b); }
</ins><span class="cx"> #endif
</span><del>-    void setBoxDirection(EBoxDirection d) { inherited_flags._box_direction = d; }
-    void setBoxFlex(float f) { SET_NESTED_VAR(rareNonInheritedData, m_deprecatedFlexibleBox, flex, f); }
-    void setBoxFlexGroup(unsigned int fg) { SET_NESTED_VAR(rareNonInheritedData, m_deprecatedFlexibleBox, flex_group, fg); }
-    void setBoxLines(EBoxLines l) { SET_NESTED_VAR(rareNonInheritedData, m_deprecatedFlexibleBox, lines, l); }
-    void setBoxOrdinalGroup(unsigned int og) { SET_NESTED_VAR(rareNonInheritedData, m_deprecatedFlexibleBox, ordinal_group, og); }
-    void setBoxOrient(EBoxOrient o) { SET_NESTED_VAR(rareNonInheritedData, m_deprecatedFlexibleBox, orient, o); }
-    void setBoxPack(EBoxPack p) { SET_NESTED_VAR(rareNonInheritedData, m_deprecatedFlexibleBox, pack, p); }
-    void setBoxShadow(std::unique_ptr&lt;ShadowData&gt;, bool add = false);
-    void setBoxReflect(RefPtr&lt;StyleReflection&gt;&amp;&amp; reflect) { if (rareNonInheritedData-&gt;m_boxReflect != reflect) rareNonInheritedData.access()-&gt;m_boxReflect = WTFMove(reflect); }
-    void setBoxSizing(EBoxSizing s) { SET_VAR(m_box, m_boxSizing, s); }
-    void setFlexGrow(float f) { SET_NESTED_VAR(rareNonInheritedData, m_flexibleBox, m_flexGrow, f); }
-    void setFlexShrink(float f) { SET_NESTED_VAR(rareNonInheritedData, m_flexibleBox, m_flexShrink, f); }
-    void setFlexBasis(Length length) { SET_NESTED_VAR(rareNonInheritedData, m_flexibleBox, m_flexBasis, WTFMove(length)); }
-    void setOrder(int o) { SET_VAR(rareNonInheritedData, m_order, o); }
-    void setAlignContent(const StyleContentAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_alignContent, data); }
-    void setAlignContentPosition(ContentPosition position) { rareNonInheritedData.access()-&gt;m_alignContent.setPosition(position); }
-    void setAlignContentOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_alignContent.setOverflow(overflow); }
-    void setAlignContentDistribution(ContentDistributionType distribution) { rareNonInheritedData.access()-&gt;m_alignContent.setDistribution(distribution); }
-    void setAlignItems(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_alignItems, data); }
-    void setAlignItemsPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_alignItems.setPosition(position); }
-    void setAlignItemsOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_alignItems.setOverflow(overflow); }
-    void setAlignSelf(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_alignSelf, data); }
-    void setAlignSelfPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_alignSelf.setPosition(position); }
-    void setAlignSelfOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_alignSelf.setOverflow(overflow); }
-    void setFlexDirection(EFlexDirection direction) { SET_NESTED_VAR(rareNonInheritedData, m_flexibleBox, m_flexDirection, direction); }
-    void setFlexWrap(EFlexWrap w) { SET_NESTED_VAR(rareNonInheritedData, m_flexibleBox, m_flexWrap, w); }
-    void setJustifyContent(const StyleContentAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_justifyContent, data); }
-    void setJustifyContentPosition(ContentPosition position) { rareNonInheritedData.access()-&gt;m_justifyContent.setPosition(position); }
-    void setJustifyContentOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_justifyContent.setOverflow(overflow); }
-    void setJustifyContentDistribution(ContentDistributionType distribution) { rareNonInheritedData.access()-&gt;m_justifyContent.setDistribution(distribution); }
-    void setJustifyItems(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_justifyItems, data); }
-    void setJustifyItemsPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_justifyItems.setPosition(position); }
-    void setJustifyItemsOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_justifyItems.setOverflow(overflow); }
-    void setJustifyItemsPositionType(ItemPositionType positionType) { rareNonInheritedData.access()-&gt;m_justifyItems.setPositionType(positionType); }
-    void setJustifySelf(const StyleSelfAlignmentData&amp; data) { SET_VAR(rareNonInheritedData, m_justifySelf, data); }
-    void setJustifySelfPosition(ItemPosition position) { rareNonInheritedData.access()-&gt;m_justifySelf.setPosition(position); }
-    void setJustifySelfOverflow(OverflowAlignment overflow) { rareNonInheritedData.access()-&gt;m_justifySelf.setOverflow(overflow); }
</del><ins>+
</ins><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-    void setGridAutoColumns(const Vector&lt;GridTrackSize&gt;&amp; trackSizeList) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoColumns, trackSizeList); }
-    void setGridAutoRows(const Vector&lt;GridTrackSize&gt;&amp; trackSizeList) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRows, trackSizeList); }
-    void setGridColumns(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridColumns, lengths); }
-    void setGridRows(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridRows, lengths); }
-    void setGridAutoRepeatColumns(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRepeatColumns, lengths); }
-    void setGridAutoRepeatRows(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoRepeatRows, lengths); }
-    void setGridAutoRepeatColumnsInsertionPoint(const unsigned insertionPoint) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatColumnsInsertionPoint, insertionPoint); }
-    void setGridAutoRepeatRowsInsertionPoint(const unsigned insertionPoint) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatRowsInsertionPoint, insertionPoint); }
-    void setGridAutoRepeatColumnsType(const AutoRepeatType autoRepeatType) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatColumnsType, autoRepeatType); }
-    void setGridAutoRepeatRowsType(const AutoRepeatType autoRepeatType) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatRowsType, autoRepeatType); }
-    void setNamedGridColumnLines(const NamedGridLinesMap&amp; namedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridColumnLines, namedGridColumnLines); }
-    void setNamedGridRowLines(const NamedGridLinesMap&amp; namedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridRowLines, namedGridRowLines); }
-    void setOrderedNamedGridColumnLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_orderedNamedGridColumnLines, orderedNamedGridColumnLines); }
-    void setOrderedNamedGridRowLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_orderedNamedGridRowLines, orderedNamedGridRowLines); }
-    void setAutoRepeatNamedGridColumnLines(const NamedGridLinesMap&amp; namedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatNamedGridColumnLines, namedGridColumnLines); }
-    void setAutoRepeatNamedGridRowLines(const NamedGridLinesMap&amp; namedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatNamedGridRowLines, namedGridRowLines); }
-    void setAutoRepeatOrderedNamedGridColumnLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridColumnLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatOrderedNamedGridColumnLines, orderedNamedGridColumnLines); }
-    void setAutoRepeatOrderedNamedGridRowLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridRowLines) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_autoRepeatOrderedNamedGridRowLines, orderedNamedGridRowLines); }
-    void setNamedGridArea(const NamedGridAreaMap&amp; namedGridArea) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridArea, namedGridArea); }
-    void setNamedGridAreaRowCount(size_t rowCount) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridAreaRowCount, rowCount); }
-    void setNamedGridAreaColumnCount(size_t columnCount) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_namedGridAreaColumnCount, columnCount); }
-    void setGridAutoFlow(GridAutoFlow flow) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridAutoFlow, flow); }
-    void setGridItemColumnStart(const GridPosition&amp; columnStartPosition) { SET_NESTED_VAR(rareNonInheritedData, m_gridItem, m_gridColumnStart, columnStartPosition); }
-    void setGridItemColumnEnd(const GridPosition&amp; columnEndPosition) { SET_NESTED_VAR(rareNonInheritedData, m_gridItem, m_gridColumnEnd, columnEndPosition); }
-    void setGridItemRowStart(const GridPosition&amp; rowStartPosition) { SET_NESTED_VAR(rareNonInheritedData, m_gridItem, m_gridRowStart, rowStartPosition); }
-    void setGridItemRowEnd(const GridPosition&amp; rowEndPosition) { SET_NESTED_VAR(rareNonInheritedData, m_gridItem, m_gridRowEnd, rowEndPosition); }
-    void setGridColumnGap(const Length&amp; v) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridColumnGap, v); }
-    void setGridRowGap(const Length&amp; v) { SET_NESTED_VAR(rareNonInheritedData, m_grid, m_gridRowGap, v); }
-#endif /* ENABLE(CSS_GRID_LAYOUT) */
-    void setMarqueeIncrement(Length length) { SET_NESTED_VAR(rareNonInheritedData, m_marquee, increment, WTFMove(length)); }
-    void setMarqueeSpeed(int f) { SET_NESTED_VAR(rareNonInheritedData, m_marquee, speed, f); }
-    void setMarqueeDirection(EMarqueeDirection d) { SET_NESTED_VAR(rareNonInheritedData, m_marquee, direction, d); }
-    void setMarqueeBehavior(EMarqueeBehavior b) { SET_NESTED_VAR(rareNonInheritedData, m_marquee, behavior, b); }
-    void setMarqueeLoopCount(int i) { SET_NESTED_VAR(rareNonInheritedData, m_marquee, loops, i); }
-    void setUserModify(EUserModify u) { SET_VAR(rareInheritedData, userModify, u); }
-    void setUserDrag(EUserDrag d) { SET_VAR(rareNonInheritedData, userDrag, d); }
-    void setUserSelect(EUserSelect s) { SET_VAR(rareInheritedData, userSelect, s); }
-    void setTextOverflow(TextOverflow overflow) { SET_VAR(rareNonInheritedData, textOverflow, overflow); }
-    void setMarginBeforeCollapse(EMarginCollapse c) { SET_VAR(rareNonInheritedData, marginBeforeCollapse, c); }
-    void setMarginAfterCollapse(EMarginCollapse c) { SET_VAR(rareNonInheritedData, marginAfterCollapse, c); }
-    void setWordBreak(EWordBreak b) { SET_VAR(rareInheritedData, wordBreak, b); }
-    void setOverflowWrap(EOverflowWrap b) { SET_VAR(rareInheritedData, overflowWrap, b); }
-    void setNBSPMode(ENBSPMode b) { SET_VAR(rareInheritedData, nbspMode, b); }
-    void setLineBreak(LineBreak b) { SET_VAR(rareInheritedData, lineBreak, b); }
-    void setHyphens(Hyphens h) { SET_VAR(rareInheritedData, hyphens, h); }
-    void setHyphenationLimitBefore(short limit) { SET_VAR(rareInheritedData, hyphenationLimitBefore, limit); }
-    void setHyphenationLimitAfter(short limit) { SET_VAR(rareInheritedData, hyphenationLimitAfter, limit); }
-    void setHyphenationLimitLines(short limit) { SET_VAR(rareInheritedData, hyphenationLimitLines, limit); }
-    void setHyphenationString(const AtomicString&amp; h) { SET_VAR(rareInheritedData, hyphenationString, h); }
-    void setBorderFit(EBorderFit b) { SET_VAR(rareNonInheritedData, m_borderFit, b); }
-    void setResize(EResize r) { SET_VAR(rareNonInheritedData, m_resize, r); }
-    void setColumnAxis(ColumnAxis axis) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_axis, axis); }
-    void setColumnProgression(ColumnProgression progression) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_progression, progression); }
-    void setColumnWidth(float f) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_autoWidth, false); SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_width, f); }
-    void setHasAutoColumnWidth() { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_autoWidth, true); SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_width, 0); }
-    void setColumnCount(unsigned short c) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_autoCount, false); SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_count, c); }
-    void setHasAutoColumnCount() { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_autoCount, true); SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_count, 0); }
-    void setColumnFill(ColumnFill columnFill) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_fill, columnFill); }
-    void setColumnGap(float f) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_normalGap, false); SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_gap, f); }
-    void setHasNormalColumnGap() { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_normalGap, true); SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_gap, 0); }
-    void setColumnRuleColor(const Color&amp; c) { SET_BORDERVALUE_COLOR(rareNonInheritedData.access()-&gt;m_multiCol, m_rule, c); }
-    void setColumnRuleStyle(EBorderStyle b) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_rule.m_style, b); }
-    void setColumnRuleWidth(unsigned short w) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_rule.m_width, w); }
-    void resetColumnRule() { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_rule, BorderValue()); }
-    void setColumnSpan(ColumnSpan columnSpan) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_columnSpan, columnSpan); }
-    void inheritColumnPropertiesFrom(const RenderStyle* parent) { rareNonInheritedData.access()-&gt;m_multiCol = parent-&gt;rareNonInheritedData-&gt;m_multiCol; }
-    void setTransform(const TransformOperations&amp; ops) { SET_NESTED_VAR(rareNonInheritedData, m_transform, m_operations, ops); }
-    void setTransformOriginX(Length length) { SET_NESTED_VAR(rareNonInheritedData, m_transform, m_x, WTFMove(length)); }
-    void setTransformOriginY(Length length) { SET_NESTED_VAR(rareNonInheritedData, m_transform, m_y, WTFMove(length)); }
-    void setTransformOriginZ(float f) { SET_NESTED_VAR(rareNonInheritedData, m_transform, m_z, f); }
-    void setSpeak(ESpeak s) { SET_VAR(rareInheritedData, speak, s); }
-    void setTextCombine(TextCombine v) { SET_VAR(rareNonInheritedData, m_textCombine, v); }
-    void setTextDecorationColor(const Color&amp; c) { SET_VAR(rareNonInheritedData, m_textDecorationColor, c); }
-    void setTextEmphasisColor(const Color&amp; c) { SET_VAR(rareInheritedData, textEmphasisColor, c); }
-    void setTextEmphasisFill(TextEmphasisFill fill) { SET_VAR(rareInheritedData, textEmphasisFill, fill); }
-    void setTextEmphasisMark(TextEmphasisMark mark) { SET_VAR(rareInheritedData, textEmphasisMark, mark); }
-    void setTextEmphasisCustomMark(const AtomicString&amp; mark) { SET_VAR(rareInheritedData, textEmphasisCustomMark, mark); }
-    void setTextEmphasisPosition(TextEmphasisPosition position) { SET_VAR(rareInheritedData, textEmphasisPosition, position); }
</del><ins>+    void setGridAutoColumns(const Vector&lt;GridTrackSize&gt;&amp; trackSizeList) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridAutoColumns, trackSizeList); }
+    void setGridAutoRows(const Vector&lt;GridTrackSize&gt;&amp; trackSizeList) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridAutoRows, trackSizeList); }
+    void setGridColumns(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridColumns, lengths); }
+    void setGridRows(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridRows, lengths); }
+    void setGridAutoRepeatColumns(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridAutoRepeatColumns, lengths); }
+    void setGridAutoRepeatRows(const Vector&lt;GridTrackSize&gt;&amp; lengths) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridAutoRepeatRows, lengths); }
+    void setGridAutoRepeatColumnsInsertionPoint(const unsigned insertionPoint) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatColumnsInsertionPoint, insertionPoint); }
+    void setGridAutoRepeatRowsInsertionPoint(const unsigned insertionPoint) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatRowsInsertionPoint, insertionPoint); }
+    void setGridAutoRepeatColumnsType(const AutoRepeatType autoRepeatType) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatColumnsType, autoRepeatType); }
+    void setGridAutoRepeatRowsType(const AutoRepeatType autoRepeatType) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatRowsType, autoRepeatType); }
+    void setNamedGridColumnLines(const NamedGridLinesMap&amp; namedGridColumnLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, namedGridColumnLines, namedGridColumnLines); }
+    void setNamedGridRowLines(const NamedGridLinesMap&amp; namedGridRowLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, namedGridRowLines, namedGridRowLines); }
+    void setOrderedNamedGridColumnLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridColumnLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, orderedNamedGridColumnLines, orderedNamedGridColumnLines); }
+    void setOrderedNamedGridRowLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridRowLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, orderedNamedGridRowLines, orderedNamedGridRowLines); }
+    void setAutoRepeatNamedGridColumnLines(const NamedGridLinesMap&amp; namedGridColumnLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatNamedGridColumnLines, namedGridColumnLines); }
+    void setAutoRepeatNamedGridRowLines(const NamedGridLinesMap&amp; namedGridRowLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatNamedGridRowLines, namedGridRowLines); }
+    void setAutoRepeatOrderedNamedGridColumnLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridColumnLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatOrderedNamedGridColumnLines, orderedNamedGridColumnLines); }
+    void setAutoRepeatOrderedNamedGridRowLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridRowLines) { SET_NESTED_VAR(m_rareNonInheritedData, grid, autoRepeatOrderedNamedGridRowLines, orderedNamedGridRowLines); }
+    void setNamedGridArea(const NamedGridAreaMap&amp; namedGridArea) { SET_NESTED_VAR(m_rareNonInheritedData, grid, namedGridArea, namedGridArea); }
+    void setNamedGridAreaRowCount(size_t rowCount) { SET_NESTED_VAR(m_rareNonInheritedData, grid, namedGridAreaRowCount, rowCount); }
+    void setNamedGridAreaColumnCount(size_t columnCount) { SET_NESTED_VAR(m_rareNonInheritedData, grid, namedGridAreaColumnCount, columnCount); }
+    void setGridAutoFlow(GridAutoFlow flow) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridAutoFlow, flow); }
+    void setGridItemColumnStart(const GridPosition&amp; columnStartPosition) { SET_NESTED_VAR(m_rareNonInheritedData, gridItem, gridColumnStart, columnStartPosition); }
+    void setGridItemColumnEnd(const GridPosition&amp; columnEndPosition) { SET_NESTED_VAR(m_rareNonInheritedData, gridItem, gridColumnEnd, columnEndPosition); }
+    void setGridItemRowStart(const GridPosition&amp; rowStartPosition) { SET_NESTED_VAR(m_rareNonInheritedData, gridItem, gridRowStart, rowStartPosition); }
+    void setGridItemRowEnd(const GridPosition&amp; rowEndPosition) { SET_NESTED_VAR(m_rareNonInheritedData, gridItem, gridRowEnd, rowEndPosition); }
+    void setGridColumnGap(Length&amp;&amp; length) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridColumnGap, WTFMove(length)); }
+    void setGridRowGap(Length&amp;&amp; length) { SET_NESTED_VAR(m_rareNonInheritedData, grid, gridRowGap, WTFMove(length)); }
+#endif // ENABLE(CSS_GRID_LAYOUT)
+
+    void setMarqueeIncrement(Length&amp;&amp; length) { SET_NESTED_VAR(m_rareNonInheritedData, marquee, increment, WTFMove(length)); }
+    void setMarqueeSpeed(int f) { SET_NESTED_VAR(m_rareNonInheritedData, marquee, speed, f); }
+    void setMarqueeDirection(EMarqueeDirection d) { SET_NESTED_VAR(m_rareNonInheritedData, marquee, direction, d); }
+    void setMarqueeBehavior(EMarqueeBehavior b) { SET_NESTED_VAR(m_rareNonInheritedData, marquee, behavior, b); }
+    void setMarqueeLoopCount(int i) { SET_NESTED_VAR(m_rareNonInheritedData, marquee, loops, i); }
+    void setUserModify(EUserModify u) { SET_VAR(m_rareInheritedData, userModify, u); }
+    void setUserDrag(EUserDrag d) { SET_VAR(m_rareNonInheritedData, userDrag, d); }
+    void setUserSelect(EUserSelect s) { SET_VAR(m_rareInheritedData, userSelect, s); }
+    void setTextOverflow(TextOverflow overflow) { SET_VAR(m_rareNonInheritedData, textOverflow, overflow); }
+    void setMarginBeforeCollapse(EMarginCollapse c) { SET_VAR(m_rareNonInheritedData, marginBeforeCollapse, c); }
+    void setMarginAfterCollapse(EMarginCollapse c) { SET_VAR(m_rareNonInheritedData, marginAfterCollapse, c); }
+    void setWordBreak(EWordBreak b) { SET_VAR(m_rareInheritedData, wordBreak, b); }
+    void setOverflowWrap(EOverflowWrap b) { SET_VAR(m_rareInheritedData, overflowWrap, b); }
+    void setNBSPMode(ENBSPMode b) { SET_VAR(m_rareInheritedData, nbspMode, b); }
+    void setLineBreak(LineBreak b) { SET_VAR(m_rareInheritedData, lineBreak, b); }
+    void setHyphens(Hyphens h) { SET_VAR(m_rareInheritedData, hyphens, h); }
+    void setHyphenationLimitBefore(short limit) { SET_VAR(m_rareInheritedData, hyphenationLimitBefore, limit); }
+    void setHyphenationLimitAfter(short limit) { SET_VAR(m_rareInheritedData, hyphenationLimitAfter, limit); }
+    void setHyphenationLimitLines(short limit) { SET_VAR(m_rareInheritedData, hyphenationLimitLines, limit); }
+    void setHyphenationString(const AtomicString&amp; h) { SET_VAR(m_rareInheritedData, hyphenationString, h); }
+    void setBorderFit(EBorderFit b) { SET_VAR(m_rareNonInheritedData, borderFit, b); }
+    void setResize(EResize r) { SET_VAR(m_rareNonInheritedData, resize, r); }
+    void setColumnAxis(ColumnAxis axis) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, axis, axis); }
+    void setColumnProgression(ColumnProgression progression) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, progression, progression); }
+    void setColumnWidth(float f) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, autoWidth, false); SET_NESTED_VAR(m_rareNonInheritedData, multiCol, width, f); }
+    void setHasAutoColumnWidth() { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, autoWidth, true); SET_NESTED_VAR(m_rareNonInheritedData, multiCol, width, 0); }
+    void setColumnCount(unsigned short c) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, autoCount, false); SET_NESTED_VAR(m_rareNonInheritedData, multiCol, count, c); }
+    void setHasAutoColumnCount() { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, autoCount, true); SET_NESTED_VAR(m_rareNonInheritedData, multiCol, count, 0); }
+    void setColumnFill(ColumnFill columnFill) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, fill, columnFill); }
+    void setColumnGap(float f) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, normalGap, false); SET_NESTED_VAR(m_rareNonInheritedData, multiCol, gap, f); }
+    void setHasNormalColumnGap() { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, normalGap, true); SET_NESTED_VAR(m_rareNonInheritedData, multiCol, gap, 0); }
+    void setColumnRuleColor(const Color&amp; c) { SET_BORDERVALUE_COLOR(m_rareNonInheritedData.access().multiCol, rule, c); }
+    void setColumnRuleStyle(EBorderStyle b) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, rule.m_style, b); }
+    void setColumnRuleWidth(unsigned short w) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, rule.m_width, w); }
+    void resetColumnRule() { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, rule, BorderValue()); }
+    void setColumnSpan(ColumnSpan columnSpan) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, columnSpan, columnSpan); }
+    void inheritColumnPropertiesFrom(const RenderStyle&amp; parent) { m_rareNonInheritedData.access().multiCol = parent.m_rareNonInheritedData-&gt;multiCol; }
+    void setTransform(const TransformOperations&amp; ops) { SET_NESTED_VAR(m_rareNonInheritedData, transform, operations, ops); }
+    void setTransformOriginX(Length&amp;&amp; length) { SET_NESTED_VAR(m_rareNonInheritedData, transform, x, WTFMove(length)); }
+    void setTransformOriginY(Length&amp;&amp; length) { SET_NESTED_VAR(m_rareNonInheritedData, transform, y, WTFMove(length)); }
+    void setTransformOriginZ(float f) { SET_NESTED_VAR(m_rareNonInheritedData, transform, z, f); }
+    void setSpeak(ESpeak s) { SET_VAR(m_rareInheritedData, speak, s); }
+    void setTextCombine(TextCombine v) { SET_VAR(m_rareNonInheritedData, textCombine, v); }
+    void setTextDecorationColor(const Color&amp; c) { SET_VAR(m_rareNonInheritedData, textDecorationColor, c); }
+    void setTextEmphasisColor(const Color&amp; c) { SET_VAR(m_rareInheritedData, textEmphasisColor, c); }
+    void setTextEmphasisFill(TextEmphasisFill fill) { SET_VAR(m_rareInheritedData, textEmphasisFill, fill); }
+    void setTextEmphasisMark(TextEmphasisMark mark) { SET_VAR(m_rareInheritedData, textEmphasisMark, mark); }
+    void setTextEmphasisCustomMark(const AtomicString&amp; mark) { SET_VAR(m_rareInheritedData, textEmphasisCustomMark, mark); }
+    void setTextEmphasisPosition(TextEmphasisPosition position) { SET_VAR(m_rareInheritedData, textEmphasisPosition, position); }
</ins><span class="cx">     bool setTextOrientation(TextOrientation);
</span><span class="cx"> 
</span><del>-    void setObjectFit(ObjectFit fit) { SET_VAR(rareNonInheritedData, m_objectFit, fit); }
-    void setObjectPosition(const LengthPoint&amp; position) { SET_VAR(rareNonInheritedData, m_objectPosition, position); }
</del><ins>+    void setObjectFit(ObjectFit fit) { SET_VAR(m_rareNonInheritedData, objectFit, fit); }
+    void setObjectPosition(LengthPoint&amp;&amp; position) { SET_VAR(m_rareNonInheritedData, objectPosition, WTFMove(position)); }
</ins><span class="cx"> 
</span><del>-    void setRubyPosition(RubyPosition position) { SET_VAR(rareInheritedData, m_rubyPosition, position); }
</del><ins>+    void setRubyPosition(RubyPosition position) { SET_VAR(m_rareInheritedData, rubyPosition, position); }
</ins><span class="cx"> 
</span><del>-    void setFilter(const FilterOperations&amp; ops) { SET_NESTED_VAR(rareNonInheritedData, m_filter, m_operations, ops); }
</del><ins>+    void setFilter(const FilterOperations&amp; ops) { SET_NESTED_VAR(m_rareNonInheritedData, filter, operations, ops); }
+
</ins><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-    void setBackdropFilter(const FilterOperations&amp; ops) { SET_NESTED_VAR(rareNonInheritedData, m_backdropFilter, m_operations, ops); }
</del><ins>+    void setBackdropFilter(const FilterOperations&amp; ops) { SET_NESTED_VAR(m_rareNonInheritedData, backdropFilter, operations, ops); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setTabSize(unsigned size) { SET_VAR(rareInheritedData, m_tabSize, size); }
</del><ins>+    void setTabSize(unsigned size) { SET_VAR(m_rareInheritedData, tabSize, size); }
</ins><span class="cx"> 
</span><del>-    void setBreakBefore(BreakBetween breakBehavior) { SET_VAR(rareNonInheritedData, m_breakBefore, breakBehavior); }
-    void setBreakAfter(BreakBetween breakBehavior) { SET_VAR(rareNonInheritedData, m_breakAfter, breakBehavior); }
-    void setBreakInside(BreakInside breakBehavior) { SET_VAR(rareNonInheritedData, m_breakInside, breakBehavior); }
</del><ins>+    void setBreakBefore(BreakBetween breakBehavior) { SET_VAR(m_rareNonInheritedData, breakBefore, breakBehavior); }
+    void setBreakAfter(BreakBetween breakBehavior) { SET_VAR(m_rareNonInheritedData, breakAfter, breakBehavior); }
+    void setBreakInside(BreakInside breakBehavior) { SET_VAR(m_rareNonInheritedData, breakInside, breakBehavior); }
</ins><span class="cx">     
</span><del>-    void setHangingPunctuation(HangingPunctuation punctuation) { SET_VAR(rareInheritedData, m_hangingPunctuation, punctuation); }
</del><ins>+    void setHangingPunctuation(HangingPunctuation punctuation) { SET_VAR(m_rareInheritedData, hangingPunctuation, punctuation); }
</ins><span class="cx"> 
</span><span class="cx">     // End CSS3 Setters
</span><span class="cx"> 
</span><del>-    void setLineGrid(const AtomicString&amp; lineGrid) { SET_VAR(rareInheritedData, m_lineGrid, lineGrid); }
-    void setLineSnap(LineSnap lineSnap) { SET_VAR(rareInheritedData, m_lineSnap, lineSnap); }
-    void setLineAlign(LineAlign lineAlign) { SET_VAR(rareInheritedData, m_lineAlign, lineAlign); }
</del><ins>+    void setLineGrid(const AtomicString&amp; lineGrid) { SET_VAR(m_rareInheritedData, lineGrid, lineGrid); }
+    void setLineSnap(LineSnap lineSnap) { SET_VAR(m_rareInheritedData, lineSnap, lineSnap); }
+    void setLineAlign(LineAlign lineAlign) { SET_VAR(m_rareInheritedData, lineAlign, lineAlign); }
</ins><span class="cx"> 
</span><del>-    void setFlowThread(const AtomicString&amp; flowThread) { SET_VAR(rareNonInheritedData, m_flowThread, flowThread); }
-    void setRegionThread(const AtomicString&amp; regionThread) { SET_VAR(rareNonInheritedData, m_regionThread, regionThread); }
-    void setRegionFragment(RegionFragment regionFragment) { SET_VAR(rareNonInheritedData, m_regionFragment, regionFragment); }
</del><ins>+    void setFlowThread(const AtomicString&amp; flowThread) { SET_VAR(m_rareNonInheritedData, flowThread, flowThread); }
+    void setRegionThread(const AtomicString&amp; regionThread) { SET_VAR(m_rareNonInheritedData, regionThread, regionThread); }
+    void setRegionFragment(RegionFragment regionFragment) { SET_VAR(m_rareNonInheritedData, regionFragment, regionFragment); }
</ins><span class="cx"> 
</span><del>-    // Apple-specific property setters
-    void setPointerEvents(EPointerEvents p) { inherited_flags._pointerEvents = p; }
</del><ins>+    void setPointerEvents(EPointerEvents p) { m_inheritedFlags.pointerEvents = p; }
</ins><span class="cx"> 
</span><del>-    void clearAnimations()
-    {
-        rareNonInheritedData.access()-&gt;m_animations = nullptr;
-    }
</del><ins>+    void clearAnimations();
+    void clearTransitions();
</ins><span class="cx"> 
</span><del>-    void clearTransitions()
-    {
-        rareNonInheritedData.access()-&gt;m_transitions = nullptr;
-    }
-
-    void inheritAnimations(const AnimationList* parent) { rareNonInheritedData.access()-&gt;m_animations = parent ? std::make_unique&lt;AnimationList&gt;(*parent) : nullptr; }
-    void inheritTransitions(const AnimationList* parent) { rareNonInheritedData.access()-&gt;m_transitions = parent ? std::make_unique&lt;AnimationList&gt;(*parent) : nullptr; }
</del><span class="cx">     void adjustAnimations();
</span><span class="cx">     void adjustTransitions();
</span><span class="cx"> 
</span><del>-    void setTransformStyle3D(ETransformStyle3D b) { SET_VAR(rareNonInheritedData, m_transformStyle3D, b); }
-    void setBackfaceVisibility(EBackfaceVisibility b) { SET_VAR(rareNonInheritedData, m_backfaceVisibility, b); }
-    void setPerspective(float p) { SET_VAR(rareNonInheritedData, m_perspective, p); }
-    void setPerspectiveOriginX(Length length) { SET_VAR(rareNonInheritedData, m_perspectiveOriginX, WTFMove(length)); }
-    void setPerspectiveOriginY(Length length) { SET_VAR(rareNonInheritedData, m_perspectiveOriginY, WTFMove(length)); }
-    void setPageSize(LengthSize size) { SET_VAR(rareNonInheritedData, m_pageSize, WTFMove(size)); }
-    void setPageSizeType(PageSizeType t) { SET_VAR(rareNonInheritedData, m_pageSizeType, t); }
-    void resetPageSizeType() { SET_VAR(rareNonInheritedData, m_pageSizeType, PAGE_SIZE_AUTO); }
</del><ins>+    void setTransformStyle3D(ETransformStyle3D b) { SET_VAR(m_rareNonInheritedData, transformStyle3D, b); }
+    void setBackfaceVisibility(EBackfaceVisibility b) { SET_VAR(m_rareNonInheritedData, backfaceVisibility, b); }
+    void setPerspective(float p) { SET_VAR(m_rareNonInheritedData, perspective, p); }
+    void setPerspectiveOriginX(Length&amp;&amp; length) { SET_VAR(m_rareNonInheritedData, perspectiveOriginX, WTFMove(length)); }
+    void setPerspectiveOriginY(Length&amp;&amp; length) { SET_VAR(m_rareNonInheritedData, perspectiveOriginY, WTFMove(length)); }
+    void setPageSize(LengthSize size) { SET_VAR(m_rareNonInheritedData, pageSize, WTFMove(size)); }
+    void setPageSizeType(PageSizeType t) { SET_VAR(m_rareNonInheritedData, pageSizeType, t); }
+    void resetPageSizeType() { SET_VAR(m_rareNonInheritedData, pageSizeType, PAGE_SIZE_AUTO); }
</ins><span class="cx"> 
</span><del>-    void setLineBoxContain(LineBoxContain c) { SET_VAR(rareInheritedData, m_lineBoxContain, c); }
-    void setLineClamp(LineClampValue c) { SET_VAR(rareNonInheritedData, lineClamp, c); }
</del><ins>+    void setLineBoxContain(LineBoxContain c) { SET_VAR(m_rareInheritedData, lineBoxContain, c); }
+    void setLineClamp(LineClampValue c) { SET_VAR(m_rareNonInheritedData, lineClamp, c); }
</ins><span class="cx">     
</span><del>-    void setInitialLetter(const IntSize&amp; size) { SET_VAR(rareNonInheritedData, m_initialLetter, size); }
</del><ins>+    void setInitialLetter(const IntSize&amp; size) { SET_VAR(m_rareNonInheritedData, initialLetter, size); }
</ins><span class="cx">     
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    void setTouchAction(TouchAction touchAction) { SET_VAR(rareNonInheritedData, m_touchAction, static_cast&lt;unsigned&gt;(touchAction)); }
</del><ins>+    void setTouchAction(TouchAction touchAction) { SET_VAR(m_rareNonInheritedData, touchAction, static_cast&lt;unsigned&gt;(touchAction)); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><del>-    // Scroll snap port style.
</del><span class="cx">     void setScrollSnapType(const ScrollSnapType&amp;);
</span><del>-    void setScrollPaddingTop(const Length&amp;);
-    void setScrollPaddingBottom(const Length&amp;);
-    void setScrollPaddingLeft(const Length&amp;);
-    void setScrollPaddingRight(const Length&amp;);
</del><ins>+    void setScrollPaddingTop(Length&amp;&amp;);
+    void setScrollPaddingBottom(Length&amp;&amp;);
+    void setScrollPaddingLeft(Length&amp;&amp;);
+    void setScrollPaddingRight(Length&amp;&amp;);
</ins><span class="cx"> 
</span><del>-    // Scroll snap area style.
</del><span class="cx">     void setScrollSnapAlign(const ScrollSnapAlign&amp;);
</span><del>-    void setScrollSnapMarginTop(const Length&amp;);
-    void setScrollSnapMarginBottom(const Length&amp;);
-    void setScrollSnapMarginLeft(const Length&amp;);
-    void setScrollSnapMarginRight(const Length&amp;);
</del><ins>+    void setScrollSnapMarginTop(Length&amp;&amp;);
+    void setScrollSnapMarginBottom(Length&amp;&amp;);
+    void setScrollSnapMarginLeft(Length&amp;&amp;);
+    void setScrollSnapMarginRight(Length&amp;&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    void setTapHighlightColor(const Color&amp; c) { SET_VAR(rareInheritedData, tapHighlightColor, c); }
</del><ins>+    void setTapHighlightColor(const Color&amp; c) { SET_VAR(m_rareInheritedData, tapHighlightColor, c); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    void setTouchCalloutEnabled(bool v) { SET_VAR(rareInheritedData, touchCalloutEnabled, v); }
</del><ins>+    void setTouchCalloutEnabled(bool v) { SET_VAR(m_rareInheritedData, touchCalloutEnabled, v); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><del>-    void setUseTouchOverflowScrolling(bool v) { SET_VAR(rareInheritedData, useTouchOverflowScrolling, v); }
</del><ins>+    void setUseTouchOverflowScrolling(bool v) { SET_VAR(m_rareInheritedData, useTouchOverflowScrolling, v); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-    void setTextSizeAdjust(TextSizeAdjustment anAdjustment) { SET_VAR(rareInheritedData, textSizeAdjust, anAdjustment); }
</del><ins>+    void setTextSizeAdjust(TextSizeAdjustment adjustment) { SET_VAR(m_rareInheritedData, textSizeAdjust, adjustment); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setTextSecurity(ETextSecurity aTextSecurity) { SET_VAR(rareInheritedData, textSecurity, aTextSecurity); }
</del><ins>+    void setTextSecurity(ETextSecurity security) { SET_VAR(m_rareInheritedData, textSecurity, security); }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_TRAILING_WORD)
</span><del>-    void setTrailingWord(TrailingWord v) { SET_VAR(rareInheritedData, trailingWord, static_cast&lt;unsigned&gt;(v)); }
</del><ins>+    void setTrailingWord(TrailingWord v) { SET_VAR(m_rareInheritedData, trailingWord, static_cast&lt;unsigned&gt;(v)); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(APPLE_PAY)
</span><del>-    void setApplePayButtonStyle(ApplePayButtonStyle v) { SET_VAR(rareNonInheritedData, m_applePayButtonStyle, static_cast&lt;unsigned&gt;(v)); }
-    void setApplePayButtonType(ApplePayButtonType v) { SET_VAR(rareNonInheritedData, m_applePayButtonType, static_cast&lt;unsigned&gt;(v)); }
</del><ins>+    void setApplePayButtonStyle(ApplePayButtonStyle style) { SET_VAR(m_rareNonInheritedData, applePayButtonStyle, static_cast&lt;unsigned&gt;(style)); }
+    void setApplePayButtonType(ApplePayButtonType type) { SET_VAR(m_rareNonInheritedData, applePayButtonType, static_cast&lt;unsigned&gt;(type)); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    const SVGRenderStyle&amp; svgStyle() const { return *m_svgStyle; }
-    SVGRenderStyle&amp; accessSVGStyle() { return *m_svgStyle.access(); }
</del><ins>+    const SVGRenderStyle&amp; svgStyle() const { return m_svgStyle; }
+    SVGRenderStyle&amp; accessSVGStyle() { return m_svgStyle.access(); }
</ins><span class="cx"> 
</span><span class="cx">     const SVGPaintType&amp; fillPaintType() const { return svgStyle().fillPaintType(); }
</span><span class="cx">     Color fillPaintColor() const { return svgStyle().fillPaintColor(); }
</span><del>-    void setFillPaintColor(const Color&amp; c) { accessSVGStyle().setFillPaint(SVG_PAINTTYPE_RGBCOLOR, c, &quot;&quot;); }
</del><ins>+    void setFillPaintColor(const Color&amp; color) { accessSVGStyle().setFillPaint(SVG_PAINTTYPE_RGBCOLOR, color, emptyString()); }
</ins><span class="cx">     float fillOpacity() const { return svgStyle().fillOpacity(); }
</span><span class="cx">     void setFillOpacity(float f) { accessSVGStyle().setFillOpacity(f); }
</span><span class="cx"> 
</span><span class="cx">     const SVGPaintType&amp; strokePaintType() const { return svgStyle().strokePaintType(); }
</span><span class="cx">     Color strokePaintColor() const { return svgStyle().strokePaintColor(); }
</span><del>-    void setStrokePaintColor(const Color&amp; c) { accessSVGStyle().setStrokePaint(SVG_PAINTTYPE_RGBCOLOR, c, &quot;&quot;); }
</del><ins>+    void setStrokePaintColor(const Color&amp; color) { accessSVGStyle().setStrokePaint(SVG_PAINTTYPE_RGBCOLOR, color, emptyString()); }
</ins><span class="cx">     float strokeOpacity() const { return svgStyle().strokeOpacity(); }
</span><span class="cx">     void setStrokeOpacity(float f) { accessSVGStyle().setStrokeOpacity(f); }
</span><span class="cx">     const Length&amp; strokeWidth() const { return svgStyle().strokeWidth(); }
</span><del>-    void setStrokeWidth(Length w) { accessSVGStyle().setStrokeWidth(w); }
</del><ins>+    void setStrokeWidth(Length&amp;&amp; w) { accessSVGStyle().setStrokeWidth(WTFMove(w)); }
</ins><span class="cx">     Vector&lt;SVGLengthValue&gt; strokeDashArray() const { return svgStyle().strokeDashArray(); }
</span><span class="cx">     void setStrokeDashArray(Vector&lt;SVGLengthValue&gt; array) { accessSVGStyle().setStrokeDashArray(array); }
</span><span class="cx">     const Length&amp; strokeDashOffset() const { return svgStyle().strokeDashOffset(); }
</span><del>-    void setStrokeDashOffset(Length d) { accessSVGStyle().setStrokeDashOffset(d); }
</del><ins>+    void setStrokeDashOffset(Length&amp;&amp; d) { accessSVGStyle().setStrokeDashOffset(WTFMove(d)); }
</ins><span class="cx">     float strokeMiterLimit() const { return svgStyle().strokeMiterLimit(); }
</span><span class="cx">     void setStrokeMiterLimit(float f) { accessSVGStyle().setStrokeMiterLimit(f); }
</span><span class="cx"> 
</span><span class="cx">     const Length&amp; cx() const { return svgStyle().cx(); }
</span><del>-    void setCx(Length cx) { accessSVGStyle().setCx(cx); }
</del><ins>+    void setCx(Length&amp;&amp; cx) { accessSVGStyle().setCx(WTFMove(cx)); }
</ins><span class="cx">     const Length&amp; cy() const { return svgStyle().cy(); }
</span><del>-    void setCy(Length cy) { accessSVGStyle().setCy(cy); }
</del><ins>+    void setCy(Length&amp;&amp; cy) { accessSVGStyle().setCy(WTFMove(cy)); }
</ins><span class="cx">     const Length&amp; r() const { return svgStyle().r(); }
</span><del>-    void setR(Length r) { accessSVGStyle().setR(r); }
</del><ins>+    void setR(Length&amp;&amp; r) { accessSVGStyle().setR(WTFMove(r)); }
</ins><span class="cx">     const Length&amp; rx() const { return svgStyle().rx(); }
</span><del>-    void setRx(Length rx) { accessSVGStyle().setRx(rx); }
</del><ins>+    void setRx(Length&amp;&amp; rx) { accessSVGStyle().setRx(WTFMove(rx)); }
</ins><span class="cx">     const Length&amp; ry() const { return svgStyle().ry(); }
</span><del>-    void setRy(Length ry) { accessSVGStyle().setRy(ry); }
</del><ins>+    void setRy(Length&amp;&amp; ry) { accessSVGStyle().setRy(WTFMove(ry)); }
</ins><span class="cx">     const Length&amp; x() const { return svgStyle().x(); }
</span><del>-    void setX(Length x) { accessSVGStyle().setX(x); }
</del><ins>+    void setX(Length&amp;&amp; x) { accessSVGStyle().setX(WTFMove(x)); }
</ins><span class="cx">     const Length&amp; y() const { return svgStyle().y(); }
</span><del>-    void setY(Length y) { accessSVGStyle().setY(y); }
</del><ins>+    void setY(Length&amp;&amp; y) { accessSVGStyle().setY(WTFMove(y)); }
</ins><span class="cx"> 
</span><span class="cx">     float floodOpacity() const { return svgStyle().floodOpacity(); }
</span><span class="cx">     void setFloodOpacity(float f) { accessSVGStyle().setFloodOpacity(f); }
</span><span class="lines">@@ -1807,40 +1295,25 @@
</span><span class="cx">     SVGLengthValue kerning() const { return svgStyle().kerning(); }
</span><span class="cx">     void setKerning(SVGLengthValue k) { accessSVGStyle().setKerning(k); }
</span><span class="cx"> 
</span><del>-    void setShapeOutside(RefPtr&lt;ShapeValue&gt;&amp;&amp; value)
-    {
-        if (rareNonInheritedData-&gt;m_shapeOutside == value)
-            return;
-        rareNonInheritedData.access()-&gt;m_shapeOutside = WTFMove(value);
-    }
-    ShapeValue* shapeOutside() const { return rareNonInheritedData-&gt;m_shapeOutside.get(); }
</del><ins>+    void setShapeOutside(RefPtr&lt;ShapeValue&gt;&amp;&amp;);
+    ShapeValue* shapeOutside() const { return m_rareNonInheritedData-&gt;shapeOutside.get(); }
+    static ShapeValue* initialShapeOutside() { return nullptr; }
</ins><span class="cx"> 
</span><del>-    static ShapeValue* initialShapeOutside() { return 0; }
-
-    const Length&amp; shapeMargin() const { return rareNonInheritedData-&gt;m_shapeMargin; }
-    void setShapeMargin(Length shapeMargin) { SET_VAR(rareNonInheritedData, m_shapeMargin, WTFMove(shapeMargin)); }
</del><ins>+    const Length&amp; shapeMargin() const { return m_rareNonInheritedData-&gt;shapeMargin; }
+    void setShapeMargin(Length&amp;&amp; shapeMargin) { SET_VAR(m_rareNonInheritedData, shapeMargin, WTFMove(shapeMargin)); }
</ins><span class="cx">     static Length initialShapeMargin() { return Length(0, Fixed); }
</span><span class="cx"> 
</span><del>-    float shapeImageThreshold() const { return rareNonInheritedData-&gt;m_shapeImageThreshold; }
-    void setShapeImageThreshold(float shapeImageThreshold) 
-    { 
-        float clampedShapeImageThreshold = clampTo&lt;float&gt;(shapeImageThreshold, 0, 1);
-        SET_VAR(rareNonInheritedData, m_shapeImageThreshold, clampedShapeImageThreshold); 
-    }
</del><ins>+    float shapeImageThreshold() const { return m_rareNonInheritedData-&gt;shapeImageThreshold; }
+    void setShapeImageThreshold(float);
</ins><span class="cx">     static float initialShapeImageThreshold() { return 0; }
</span><span class="cx"> 
</span><del>-    void setClipPath(RefPtr&lt;ClipPathOperation&gt;&amp;&amp; operation)
-    {
-        if (rareNonInheritedData-&gt;m_clipPath != operation)
-            rareNonInheritedData.access()-&gt;m_clipPath = WTFMove(operation);
-    }
-    ClipPathOperation* clipPath() const { return rareNonInheritedData-&gt;m_clipPath.get(); }
-
</del><ins>+    void setClipPath(RefPtr&lt;ClipPathOperation&gt;&amp;&amp;);
+    ClipPathOperation* clipPath() const { return m_rareNonInheritedData-&gt;clipPath.get(); }
</ins><span class="cx">     static ClipPathOperation* initialClipPath() { return nullptr; }
</span><span class="cx"> 
</span><span class="cx">     bool hasContent() const { return contentData(); }
</span><del>-    const ContentData* contentData() const { return rareNonInheritedData-&gt;m_content.get(); }
-    bool contentDataEquivalent(const RenderStyle* otherStyle) const { return const_cast&lt;RenderStyle*&gt;(this)-&gt;rareNonInheritedData-&gt;contentDataEquivalent(*const_cast&lt;RenderStyle*&gt;(otherStyle)-&gt;rareNonInheritedData); }
</del><ins>+    const ContentData* contentData() const { return m_rareNonInheritedData-&gt;content.get(); }
+    bool contentDataEquivalent(const RenderStyle* otherStyle) const { return const_cast&lt;RenderStyle*&gt;(this)-&gt;m_rareNonInheritedData-&gt;contentDataEquivalent(*const_cast&lt;RenderStyle*&gt;(otherStyle)-&gt;m_rareNonInheritedData); }
</ins><span class="cx">     void clearContent();
</span><span class="cx">     void setContent(const String&amp;, bool add = false);
</span><span class="cx">     void setContent(RefPtr&lt;StyleImage&gt;&amp;&amp;, bool add = false);
</span><span class="lines">@@ -1848,7 +1321,7 @@
</span><span class="cx">     void setContent(QuoteType, bool add = false);
</span><span class="cx">     void setContentAltText(const String&amp;);
</span><span class="cx">     const String&amp; contentAltText() const;
</span><del>-    bool hasAttrContent() const { return rareNonInheritedData-&gt;m_hasAttrContent; }
</del><ins>+    bool hasAttrContent() const { return m_rareNonInheritedData-&gt;hasAttrContent; }
</ins><span class="cx">     void setHasAttrContent();
</span><span class="cx"> 
</span><span class="cx">     const CounterDirectiveMap* counterDirectives() const;
</span><span class="lines">@@ -1855,19 +1328,13 @@
</span><span class="cx">     CounterDirectiveMap&amp; accessCounterDirectives();
</span><span class="cx">     const CounterDirectives getCounterDirectives(const AtomicString&amp; identifier) const;
</span><span class="cx"> 
</span><del>-    QuotesData* quotes() const { return rareInheritedData-&gt;quotes.get(); }
</del><ins>+    QuotesData* quotes() const { return m_rareInheritedData-&gt;quotes.get(); }
</ins><span class="cx">     void setQuotes(RefPtr&lt;QuotesData&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    WillChangeData* willChange() const { return rareNonInheritedData-&gt;m_willChange.get(); }
</del><ins>+    WillChangeData* willChange() const { return m_rareNonInheritedData-&gt;willChange.get(); }
</ins><span class="cx">     void setWillChange(RefPtr&lt;WillChangeData&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    bool willChangeCreatesStackingContext() const
-    {
-        if (!willChange())
-            return false;
-        
-        return willChange()-&gt;canCreateStackingContext();
-    }
</del><ins>+    bool willChangeCreatesStackingContext() const;
</ins><span class="cx"> 
</span><span class="cx">     const AtomicString&amp; hyphenString() const;
</span><span class="cx"> 
</span><span class="lines">@@ -1882,46 +1349,32 @@
</span><span class="cx">     StyleDifference diff(const RenderStyle&amp;, unsigned&amp; changedContextSensitiveProperties) const;
</span><span class="cx">     bool diffRequiresLayerRepaint(const RenderStyle&amp;, bool isComposited) const;
</span><span class="cx"> 
</span><del>-    bool isDisplayReplacedType() const { return isDisplayReplacedType(display()); }
</del><span class="cx">     bool isDisplayInlineType() const { return isDisplayInlineType(display()); }
</span><span class="cx">     bool isOriginalDisplayInlineType() const { return isDisplayInlineType(originalDisplay()); }
</span><span class="cx">     bool isDisplayFlexibleOrGridBox() const { return isDisplayFlexibleOrGridBox(display()); }
</span><del>-    bool isDisplayFlexibleBox() const { return isDisplayFlexibleBox(display()); }
-    bool isDisplayRegionType() const
-    {
-        return display() == BLOCK || display() == INLINE_BLOCK
-            || display() == TABLE_CELL || display() == TABLE_CAPTION
-            || display() == LIST_ITEM;
-    }
</del><ins>+    bool isDisplayRegionType() const;
</ins><span class="cx"> 
</span><del>-    bool setWritingMode(WritingMode v)
-    {
-        if (v == writingMode())
-            return false;
</del><ins>+    bool setWritingMode(WritingMode);
</ins><span class="cx"> 
</span><del>-        inherited_flags.m_writingMode = v;
-        return true;
-    }
</del><ins>+    bool hasExplicitlySetWritingMode() const { return m_nonInheritedFlags.hasExplicitlySetWritingMode(); }
+    void setHasExplicitlySetWritingMode(bool v) { m_nonInheritedFlags.setHasExplicitlySetWritingMode(v); }
</ins><span class="cx"> 
</span><del>-    bool hasExplicitlySetWritingMode() const { return noninherited_flags.hasExplicitlySetWritingMode(); }
-    void setHasExplicitlySetWritingMode(bool v) { noninherited_flags.setHasExplicitlySetWritingMode(v); }
-
</del><span class="cx">     // A unique style is one that has matches something that makes it impossible to share.
</span><del>-    bool unique() const { return noninherited_flags.isUnique(); }
-    void setUnique() { noninherited_flags.setIsUnique(); }
</del><ins>+    bool unique() const { return m_nonInheritedFlags.isUnique(); }
+    void setUnique() { m_nonInheritedFlags.setIsUnique(); }
</ins><span class="cx"> 
</span><del>-    bool emptyState() const { return noninherited_flags.emptyState(); }
-    void setEmptyState(bool b) { setUnique(); noninherited_flags.setEmptyState(b); }
-    bool firstChildState() const { return noninherited_flags.firstChildState(); }
-    void setFirstChildState() { setUnique(); noninherited_flags.setFirstChildState(true); }
-    bool lastChildState() const { return noninherited_flags.lastChildState(); }
-    void setLastChildState() { setUnique(); noninherited_flags.setLastChildState(true); }
</del><ins>+    bool emptyState() const { return m_nonInheritedFlags.emptyState(); }
+    void setEmptyState(bool b) { setUnique(); m_nonInheritedFlags.setEmptyState(b); }
+    bool firstChildState() const { return m_nonInheritedFlags.firstChildState(); }
+    void setFirstChildState() { setUnique(); m_nonInheritedFlags.setFirstChildState(true); }
+    bool lastChildState() const { return m_nonInheritedFlags.lastChildState(); }
+    void setLastChildState() { setUnique(); m_nonInheritedFlags.setLastChildState(true); }
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT Color visitedDependentColor(int colorProperty) const;
</span><span class="cx">     bool backgroundColorEqualsToColorIgnoringVisited(const Color&amp; color) const { return color == backgroundColor(); }
</span><span class="cx"> 
</span><del>-    void setHasExplicitlyInheritedProperties() { noninherited_flags.setHasExplicitlyInheritedProperties(true); }
-    bool hasExplicitlyInheritedProperties() const { return noninherited_flags.hasExplicitlyInheritedProperties(); }
</del><ins>+    void setHasExplicitlyInheritedProperties() { m_nonInheritedFlags.setHasExplicitlyInheritedProperties(true); }
+    bool hasExplicitlyInheritedProperties() const { return m_nonInheritedFlags.hasExplicitlyInheritedProperties(); }
</ins><span class="cx">     
</span><span class="cx">     // Initial values for all the properties
</span><span class="cx">     static EOverflow initialOverflowX() { return OVISIBLE; }
</span><span class="lines">@@ -1940,7 +1393,7 @@
</span><span class="cx">     static EBorderStyle initialBorderStyle() { return BNONE; }
</span><span class="cx">     static OutlineIsAuto initialOutlineStyleIsAuto() { return AUTO_OFF; }
</span><span class="cx">     static NinePieceImage initialNinePieceImage() { return NinePieceImage(); }
</span><del>-    static LengthSize initialBorderRadius() { return LengthSize(Length(0, Fixed), Length(0, Fixed)); }
</del><ins>+    static LengthSize initialBorderRadius() { return { { 0, Fixed }, { 0, Fixed } }; }
</ins><span class="cx">     static ECaptionSide initialCaptionSide() { return CAPTOP; }
</span><span class="cx">     static ColumnAxis initialColumnAxis() { return AutoColumnAxis; }
</span><span class="cx">     static ColumnProgression initialColumnProgression() { return NormalColumnProgression; }
</span><span class="lines">@@ -1947,8 +1400,7 @@
</span><span class="cx">     static TextDirection initialDirection() { return LTR; }
</span><span class="cx">     static WritingMode initialWritingMode() { return TopToBottomWritingMode; }
</span><span class="cx">     static TextCombine initialTextCombine() { return TextCombineNone; }
</span><del>-    static TextOrientation initialTextOrientation() { return TextOrientation::
-    Mixed; }
</del><ins>+    static TextOrientation initialTextOrientation() { return TextOrientation::Mixed; }
</ins><span class="cx">     static ObjectFit initialObjectFit() { return ObjectFitFill; }
</span><span class="cx">     static LengthPoint initialObjectPosition() { return LengthPoint(Length(50.0f, Percent), Length(50.0f, Percent)); }
</span><span class="cx">     static EEmptyCell initialEmptyCells() { return SHOW; }
</span><span class="lines">@@ -1960,9 +1412,6 @@
</span><span class="cx">     static float initialHorizontalBorderSpacing() { return 0; }
</span><span class="cx">     static float initialVerticalBorderSpacing() { return 0; }
</span><span class="cx">     static ECursor initialCursor() { return CursorAuto; }
</span><del>-#if ENABLE(CURSOR_VISIBILITY)
-    static CursorVisibility initialCursorVisibility() { return CursorVisibilityAuto; }
-#endif
</del><span class="cx">     static Color initialColor() { return Color::black; }
</span><span class="cx">     static StyleImage* initialListStyleImage() { return 0; }
</span><span class="cx">     static float initialBorderWidth() { return 3; }
</span><span class="lines">@@ -1979,22 +1428,11 @@
</span><span class="cx">     static Length initialTextIndent() { return Length(Fixed); }
</span><span class="cx">     static Length initialZeroLength() { return Length(Fixed); }
</span><span class="cx">     static Length initialOneLength() { return Length(1, Fixed); }
</span><del>-#if ENABLE(CSS3_TEXT)
-    static TextIndentLine initialTextIndentLine() { return TextIndentFirstLine; }
-    static TextIndentType initialTextIndentType() { return TextIndentNormal; }
-#endif
</del><span class="cx">     static short initialWidows() { return 2; }
</span><span class="cx">     static short initialOrphans() { return 2; }
</span><span class="cx">     static Length initialLineHeight() { return Length(-100.0f, Percent); }
</span><del>-#if ENABLE(TEXT_AUTOSIZING)
-    static Length initialSpecifiedLineHeight() { return Length(-100.0f, Percent); }
-#endif
</del><span class="cx">     static ETextAlign initialTextAlign() { return TASTART; }
</span><span class="cx">     static TextDecoration initialTextDecoration() { return TextDecorationNone; }
</span><del>-#if ENABLE(CSS3_TEXT)
-    static TextAlignLast initialTextAlignLast() { return TextAlignLastAuto; }
-    static TextJustify initialTextJustify() { return TextJustifyAuto; }
-#endif // CSS3_TEXT
</del><span class="cx">     static TextDecorationStyle initialTextDecorationStyle() { return TextDecorationStyleSolid; }
</span><span class="cx">     static TextDecorationSkip initialTextDecorationSkip() { return TextDecorationSkipAuto; }
</span><span class="cx">     static TextUnderlinePosition initialTextUnderlinePosition() { return TextUnderlinePositionAuto; }
</span><span class="lines">@@ -2009,8 +1447,8 @@
</span><span class="cx">     static EBoxOrient initialBoxOrient() { return HORIZONTAL; }
</span><span class="cx">     static EBoxPack initialBoxPack() { return Start; }
</span><span class="cx">     static float initialBoxFlex() { return 0.0f; }
</span><del>-    static unsigned int initialBoxFlexGroup() { return 1; }
-    static unsigned int initialBoxOrdinalGroup() { return 1; }
</del><ins>+    static unsigned initialBoxFlexGroup() { return 1; }
+    static unsigned initialBoxOrdinalGroup() { return 1; }
</ins><span class="cx">     static EBoxSizing initialBoxSizing() { return CONTENT_BOX; }
</span><span class="cx">     static StyleReflection* initialBoxReflect() { return 0; }
</span><span class="cx">     static float initialFlexGrow() { return 0; }
</span><span class="lines">@@ -2083,6 +1521,22 @@
</span><span class="cx">     static QuotesData* initialQuotes() { return nullptr; }
</span><span class="cx">     static const AtomicString&amp; initialContentAltText() { return emptyAtom; }
</span><span class="cx"> 
</span><ins>+#if ENABLE(CSS3_TEXT)
+    static TextIndentLine initialTextIndentLine() { return TextIndentFirstLine; }
+    static TextIndentType initialTextIndentType() { return TextIndentNormal; }
+    static TextAlignLast initialTextAlignLast() { return TextAlignLastAuto; }
+    static TextJustify initialTextJustify() { return TextJustifyAuto; }
+#endif
+
+#if ENABLE(CURSOR_VISIBILITY)
+    static CursorVisibility initialCursorVisibility() { return CursorVisibilityAuto; }
+#endif
+
+#if ENABLE(TEXT_AUTOSIZING)
+    static Length initialSpecifiedLineHeight() { return Length(-100.0f, Percent); }
+    static TextSizeAdjustment initialTextSizeAdjust() { return TextSizeAdjustment(); }
+#endif
+
</ins><span class="cx">     static bool isCSSGridLayoutEnabled();
</span><span class="cx"> 
</span><span class="cx">     static WillChangeData* initialWillChange() { return nullptr; }
</span><span class="lines">@@ -2138,7 +1592,7 @@
</span><span class="cx">     static GridPosition initialGridItemColumnEnd() { return GridPosition(); }
</span><span class="cx">     static GridPosition initialGridItemRowStart() { return GridPosition(); }
</span><span class="cx">     static GridPosition initialGridItemRowEnd() { return GridPosition(); }
</span><del>-#endif /* ENABLE(CSS_GRID_LAYOUT) */
</del><ins>+#endif // ENABLE(CSS_GRID_LAYOUT)
</ins><span class="cx"> 
</span><span class="cx">     static unsigned initialTabSize() { return 8; }
</span><span class="cx"> 
</span><span class="lines">@@ -2150,41 +1604,325 @@
</span><span class="cx">     static const AtomicString&amp; initialRegionThread() { return nullAtom; }
</span><span class="cx">     static RegionFragment initialRegionFragment() { return AutoRegionFragment; }
</span><span class="cx"> 
</span><del>-    // Keep these at the end.
</del><span class="cx">     static IntSize initialInitialLetter() { return IntSize(); }
</span><span class="cx">     static LineClampValue initialLineClamp() { return LineClampValue(); }
</span><span class="cx">     static ETextSecurity initialTextSecurity() { return TSNONE; }
</span><del>-#if ENABLE(TEXT_AUTOSIZING)
-    static TextSizeAdjustment initialTextSizeAdjust() { return TextSizeAdjustment(); }
-#endif
</del><ins>+
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     static bool initialTouchCalloutEnabled() { return true; }
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><span class="cx">     static Color initialTapHighlightColor();
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><span class="cx">     static bool initialUseTouchOverflowScrolling() { return false; }
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx">     static const Vector&lt;StyleDashboardRegion&gt;&amp; initialDashboardRegions();
</span><span class="cx">     static const Vector&lt;StyleDashboardRegion&gt;&amp; noneDashboardRegions();
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     static const FilterOperations&amp; initialFilter() { static NeverDestroyed&lt;FilterOperations&gt; ops; return ops; }
</span><ins>+
</ins><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><span class="cx">     static const FilterOperations&amp; initialBackdropFilter() { static NeverDestroyed&lt;FilterOperations&gt; ops; return ops; }
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><span class="cx">     static BlendMode initialBlendMode() { return BlendModeNormal; }
</span><span class="cx">     static Isolation initialIsolation() { return IsolationAuto; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool isPlaceholderStyle() const { return rareNonInheritedData-&gt;m_isPlaceholderStyle; }
-    void setIsPlaceholderStyle() { SET_VAR(rareNonInheritedData, m_isPlaceholderStyle, true); }
</del><ins>+    bool isPlaceholderStyle() const { return m_rareNonInheritedData-&gt;isPlaceholderStyle; }
+    void setIsPlaceholderStyle() { SET_VAR(m_rareNonInheritedData, isPlaceholderStyle, true); }
</ins><span class="cx"> 
</span><del>-    static ptrdiff_t noninheritedFlagsMemoryOffset() { return OBJECT_OFFSETOF(RenderStyle, noninherited_flags); }
</del><ins>+    void setVisitedLinkColor(const Color&amp;);
+    void setVisitedLinkBackgroundColor(const Color&amp; v) { SET_VAR(m_rareNonInheritedData, visitedLinkBackgroundColor, v); }
+    void setVisitedLinkBorderLeftColor(const Color&amp; v) { SET_VAR(m_rareNonInheritedData, visitedLinkBorderLeftColor, v); }
+    void setVisitedLinkBorderRightColor(const Color&amp; v) { SET_VAR(m_rareNonInheritedData, visitedLinkBorderRightColor, v); }
+    void setVisitedLinkBorderBottomColor(const Color&amp; v) { SET_VAR(m_rareNonInheritedData, visitedLinkBorderBottomColor, v); }
+    void setVisitedLinkBorderTopColor(const Color&amp; v) { SET_VAR(m_rareNonInheritedData, visitedLinkBorderTopColor, v); }
+    void setVisitedLinkOutlineColor(const Color&amp; v) { SET_VAR(m_rareNonInheritedData, visitedLinkOutlineColor, v); }
+    void setVisitedLinkColumnRuleColor(const Color&amp; v) { SET_NESTED_VAR(m_rareNonInheritedData, multiCol, visitedLinkColumnRuleColor, v); }
+    void setVisitedLinkTextDecorationColor(const Color&amp; v) { SET_VAR(m_rareNonInheritedData, visitedLinkTextDecorationColor, v); }
+    void setVisitedLinkTextEmphasisColor(const Color&amp; v) { SET_VAR(m_rareInheritedData, visitedLinkTextEmphasisColor, v); }
+    void setVisitedLinkTextFillColor(const Color&amp; v) { SET_VAR(m_rareInheritedData, visitedLinkTextFillColor, v); }
+    void setVisitedLinkTextStrokeColor(const Color&amp; v) { SET_VAR(m_rareInheritedData, visitedLinkTextStrokeColor, v); }
</ins><span class="cx"> 
</span><ins>+    void inheritUnicodeBidiFrom(const RenderStyle* parent) { m_nonInheritedFlags.setUnicodeBidi(parent-&gt;m_nonInheritedFlags.unicodeBidi()); }
+    void getShadowExtent(const ShadowData*, LayoutUnit&amp; top, LayoutUnit&amp; right, LayoutUnit&amp; bottom, LayoutUnit&amp; left) const;
+    void getShadowHorizontalExtent(const ShadowData*, LayoutUnit&amp; left, LayoutUnit&amp; right) const;
+    void getShadowVerticalExtent(const ShadowData*, LayoutUnit&amp; top, LayoutUnit&amp; bottom) const;
+    void getShadowInlineDirectionExtent(const ShadowData*, LayoutUnit&amp; logicalLeft, LayoutUnit&amp; logicalRight) const;
+    void getShadowBlockDirectionExtent(const ShadowData*, LayoutUnit&amp; logicalTop, LayoutUnit&amp; logicalBottom) const;
+
+    static Color invalidColor() { return Color(); }
+    const Color&amp; borderLeftColor() const { return m_surroundData-&gt;border.left().color(); }
+    const Color&amp; borderRightColor() const { return m_surroundData-&gt;border.right().color(); }
+    const Color&amp; borderTopColor() const { return m_surroundData-&gt;border.top().color(); }
+    const Color&amp; borderBottomColor() const { return m_surroundData-&gt;border.bottom().color(); }
+    const Color&amp; backgroundColor() const { return m_backgroundData-&gt;color; }
+    const Color&amp; color() const;
+    const Color&amp; columnRuleColor() const { return m_rareNonInheritedData-&gt;multiCol-&gt;rule.color(); }
+    const Color&amp; outlineColor() const { return m_backgroundData-&gt;outline.color(); }
+    const Color&amp; textEmphasisColor() const { return m_rareInheritedData-&gt;textEmphasisColor; }
+    const Color&amp; textFillColor() const { return m_rareInheritedData-&gt;textFillColor; }
+    const Color&amp; textStrokeColor() const { return m_rareInheritedData-&gt;textStrokeColor; }
+    const Color&amp; visitedLinkColor() const;
+    const Color&amp; visitedLinkBackgroundColor() const { return m_rareNonInheritedData-&gt;visitedLinkBackgroundColor; }
+    const Color&amp; visitedLinkBorderLeftColor() const { return m_rareNonInheritedData-&gt;visitedLinkBorderLeftColor; }
+    const Color&amp; visitedLinkBorderRightColor() const { return m_rareNonInheritedData-&gt;visitedLinkBorderRightColor; }
+    const Color&amp; visitedLinkBorderBottomColor() const { return m_rareNonInheritedData-&gt;visitedLinkBorderBottomColor; }
+    const Color&amp; visitedLinkBorderTopColor() const { return m_rareNonInheritedData-&gt;visitedLinkBorderTopColor; }
+    const Color&amp; visitedLinkOutlineColor() const { return m_rareNonInheritedData-&gt;visitedLinkOutlineColor; }
+    const Color&amp; visitedLinkColumnRuleColor() const { return m_rareNonInheritedData-&gt;multiCol-&gt;visitedLinkColumnRuleColor; }
+    const Color&amp; textDecorationColor() const { return m_rareNonInheritedData-&gt;textDecorationColor; }
+    const Color&amp; visitedLinkTextDecorationColor() const { return m_rareNonInheritedData-&gt;visitedLinkTextDecorationColor; }
+    const Color&amp; visitedLinkTextEmphasisColor() const { return m_rareInheritedData-&gt;visitedLinkTextEmphasisColor; }
+    const Color&amp; visitedLinkTextFillColor() const { return m_rareInheritedData-&gt;visitedLinkTextFillColor; }
+    const Color&amp; visitedLinkTextStrokeColor() const { return m_rareInheritedData-&gt;visitedLinkTextStrokeColor; }
+
+    const Color&amp; stopColor() const { return svgStyle().stopColor(); }
+    const Color&amp; floodColor() const { return svgStyle().floodColor(); }
+    const Color&amp; lightingColor() const { return svgStyle().lightingColor(); }
+
</ins><span class="cx"> private:
</span><ins>+    struct NonInheritedFlags {
+        NonInheritedFlags();
+
+        bool operator==(const NonInheritedFlags&amp; other) const { return m_flags == other.m_flags; }
+        bool operator!=(const NonInheritedFlags&amp; other) const { return m_flags != other.m_flags; }
+
+        void copyNonInheritedFrom(const NonInheritedFlags&amp;);
+
+        EOverflow overflowX() const { return static_cast&lt;EOverflow&gt;(getValue(overflowMask, overflowXOffset)); }
+        void setOverflowX(EOverflow overflowX) { updateValue(overflowX, overflowMask, overflowXOffset); }
+
+        EOverflow overflowY() const { return static_cast&lt;EOverflow&gt;(getValue(overflowMask, overflowYOffset)); }
+        void setOverflowY(EOverflow overflowY) { updateValue(overflowY, overflowMask, overflowYOffset); }
+
+        EClear clear() const { return static_cast&lt;EClear&gt;(getValue(clearMask, clearOffset)); }
+        void setClear(EClear clear) { updateValue(clear, clearMask, clearOffset); }
+
+        EDisplay effectiveDisplay() const { return static_cast&lt;EDisplay&gt;(getValue(displayMask, effectiveDisplayOffset)); }
+        void setEffectiveDisplay(EDisplay effectiveDisplay) { updateValue(effectiveDisplay, displayMask, effectiveDisplayOffset); }
+
+        EPosition position() const { return static_cast&lt;EPosition&gt;(getValue(positionMask, positionOffset)); }
+        void setPosition(EPosition position) { updateValue(position, positionMask, positionOffset); }
+
+        EDisplay originalDisplay() const { return static_cast&lt;EDisplay&gt;(getValue(displayMask, originalDisplayOffset)); }
+        void setOriginalDisplay(EDisplay originalDisplay) { updateValue(originalDisplay, displayMask, originalDisplayOffset); }
+
+        EUnicodeBidi unicodeBidi() const { return static_cast&lt;EUnicodeBidi&gt;(getValue(unicodeBidiMask, unicodeBidiOffset)); }
+        void setUnicodeBidi(EUnicodeBidi unicodeBidi) { updateValue(unicodeBidi, unicodeBidiMask, unicodeBidiOffset); }
+
+        bool hasViewportUnits() const { return getBoolean(hasViewportUnitsOffset); }
+        void setHasViewportUnits(bool value) { updateBoolean(value, hasViewportUnitsOffset); }
+
+        EVerticalAlign verticalAlign() const { return static_cast&lt;EVerticalAlign&gt;(getValue(verticalAlignMask, verticalAlignOffset)); }
+        void setVerticalAlign(EVerticalAlign verticalAlign) { updateValue(verticalAlign, verticalAlignMask, verticalAlignOffset); }
+
+        bool hasExplicitlyInheritedProperties() const { return getBoolean(explicitInheritanceOffset); }
+        void setHasExplicitlyInheritedProperties(bool value) { updateBoolean(value, explicitInheritanceOffset); }
+
+        bool isFloating() const { return floating() != NoFloat; }
+        EFloat floating() const { return static_cast&lt;EFloat&gt;(getValue(floatingMask, floatingOffset)); }
+        void setFloating(EFloat floating) { updateValue(floating, floatingMask, floatingOffset); }
+
+        bool hasAnyPublicPseudoStyles() const { return PUBLIC_PSEUDOID_MASK &amp; getValue(pseudoBitsMask, pseudoBitsOffset); }
+        bool hasPseudoStyle(PseudoId) const;
+        void setHasPseudoStyle(PseudoId);
+        void setHasPseudoStyles(PseudoIdSet);
+
+        ETableLayout tableLayout() const { return static_cast&lt;ETableLayout&gt;(getValue(tableLayoutBitMask, tableLayoutOffset)); }
+        void setTableLayout(ETableLayout tableLayout) { updateValue(tableLayout, tableLayoutBitMask, tableLayoutOffset); }
+
+        PseudoId styleType() const { return static_cast&lt;PseudoId&gt;(getValue(styleTypeMask, styleTypeOffset)); }
+        void setStyleType(PseudoId styleType) { updateValue(styleType, styleTypeMask, styleTypeOffset); }
+
+        bool isUnique() const { return getBoolean(isUniqueOffset); }
+        void setIsUnique() { updateBoolean(true, isUniqueOffset); }
+
+        bool emptyState() const { return getBoolean(emptyStateOffset);  }
+        void setEmptyState(bool value) { updateBoolean(value, emptyStateOffset); }
+
+        bool firstChildState() const { return getBoolean(firstChildStateOffset);  }
+        void setFirstChildState(bool value) { updateBoolean(value, firstChildStateOffset); }
+
+        bool lastChildState() const { return getBoolean(lastChildStateOffset);  }
+        void setLastChildState(bool value) { updateBoolean(value, lastChildStateOffset); }
+
+        bool affectedByHover() const { return getBoolean(affectedByHoverOffset); }
+        void setAffectedByHover(bool value) { updateBoolean(value, affectedByHoverOffset); }
+
+        bool affectedByActive() const { return getBoolean(affectedByActiveOffset); }
+        void setAffectedByActive(bool value) { updateBoolean(value, affectedByActiveOffset); }
+
+        bool affectedByDrag() const { return getBoolean(affectedByDragOffset); }
+        void setAffectedByDrag(bool value) { updateBoolean(value, affectedByDragOffset); }
+
+        bool isLink() const { return getBoolean(isLinkOffset); }
+        void setIsLink(bool value) { updateBoolean(value, isLinkOffset); }
+
+        bool hasExplicitlySetDirection() const { return getBoolean(hasExplicitlySetDirectionOffset); }
+        void setHasExplicitlySetDirection(bool value) { updateBoolean(value, hasExplicitlySetDirectionOffset); }
+
+        bool hasExplicitlySetWritingMode() const { return getBoolean(hasExplicitlySetWritingModeOffset); }
+        void setHasExplicitlySetWritingMode(bool value) { updateBoolean(value, hasExplicitlySetWritingModeOffset); }
+
+        static ptrdiff_t flagsMemoryOffset() { return OBJECT_OFFSETOF(NonInheritedFlags, m_flags); }
+        static uint64_t flagIsaffectedByActive() { return oneBitMask &lt;&lt; affectedByActiveOffset; }
+        static uint64_t flagIsaffectedByHover() { return oneBitMask &lt;&lt; affectedByHoverOffset; }
+        static uint64_t flagPseudoStyle(PseudoId pseudo) { return oneBitMask &lt;&lt; (pseudoBitsOffset - 1 + pseudo); }
+        static uint64_t setFirstChildStateFlags() { return flagFirstChildState() | flagIsUnique(); }
+        static uint64_t setLastChildStateFlags() { return flagLastChildState() | flagIsUnique(); }
+
+    private:
+        void updateBoolean(bool, uint64_t offset);
+        bool getBoolean(uint64_t offset) const;
+        void updateValue(uint8_t newValue, uint64_t positionIndependentMask, uint64_t offset);
+        unsigned getValue(uint64_t positionIndependentMask, uint64_t offset) const;
+
+        static uint64_t flagIsUnique() { return oneBitMask &lt;&lt; isUniqueOffset; }
+        static uint64_t flagFirstChildState() { return oneBitMask &lt;&lt; firstChildStateOffset; }
+        static uint64_t flagLastChildState() { return oneBitMask &lt;&lt; lastChildStateOffset; }
+
+        // To type the bit mask properly on 64bits.
+        static const uint64_t oneBitMask = 0x1;
+
+        // Byte 1.
+        static const unsigned overflowBitCount = 3;
+        static const uint64_t overflowMask = (oneBitMask &lt;&lt; overflowBitCount) - 1;
+        static const unsigned overflowXOffset = 0;
+        static const unsigned overflowYOffset = overflowXOffset + overflowBitCount;
+        static const unsigned clearBitCount = 2;
+        static const uint64_t clearMask = (oneBitMask &lt;&lt; clearBitCount) - 1;
+        static const unsigned clearOffset = overflowYOffset + overflowBitCount;
+
+        // Byte 2.
+        static const unsigned displayBitCount = 5;
+        static const uint64_t displayMask = (oneBitMask &lt;&lt; displayBitCount) - 1;
+        static const unsigned effectiveDisplayOffset = clearOffset + clearBitCount;
+        static const unsigned positionBitCount = 3;
+        static const uint64_t positionMask = (oneBitMask &lt;&lt; positionBitCount) - 1;
+        static const unsigned positionOffset = effectiveDisplayOffset + displayBitCount;
+
+        // Byte 3.
+        static const unsigned originalDisplayOffset = positionOffset + positionBitCount;
+        static const unsigned unicodeBidiBitCount = 3;
+        static const uint64_t unicodeBidiMask = (oneBitMask &lt;&lt; unicodeBidiBitCount) - 1;
+        static const unsigned unicodeBidiOffset = originalDisplayOffset + displayBitCount;
+
+        // Byte 4.
+        static const unsigned floatingBitCount = 2;
+        static const uint64_t floatingMask = (oneBitMask &lt;&lt; floatingBitCount) - 1;
+        static const unsigned floatingOffset = unicodeBidiOffset + unicodeBidiBitCount;
+        static const unsigned hasExplicitlySetDirectionBitcount = 1;
+        static const unsigned hasExplicitlySetDirectionOffset = floatingOffset + floatingBitCount;
+        static const unsigned hasExplicitlySetWritingModeBitcount = 1;
+        static const unsigned hasExplicitlySetWritingModeOffset = hasExplicitlySetDirectionOffset + hasExplicitlySetDirectionBitcount;
+
+        // Byte 5.
+        static const unsigned explicitInheritanceBitCount = 1;
+        static const unsigned explicitInheritanceOffset = hasExplicitlySetWritingModeOffset + hasExplicitlySetWritingModeBitcount;
+        static const unsigned tableLayoutBitCount = 1;
+        static const uint64_t tableLayoutBitMask = oneBitMask;
+        static const unsigned tableLayoutOffset = explicitInheritanceOffset + explicitInheritanceBitCount;
+        static const unsigned verticalAlignBitCount = 4;
+        static const unsigned verticalAlignPadding = 2;
+        static const unsigned verticalAlignAndPaddingBitCount = verticalAlignBitCount + verticalAlignPadding;
+        static const uint64_t verticalAlignMask = (oneBitMask &lt;&lt; verticalAlignBitCount) - 1;
+        static const unsigned verticalAlignOffset = tableLayoutOffset + tableLayoutBitCount;
+
+        // Byte 6.
+        static const unsigned pseudoBitsBitCount = 7;
+        static const uint64_t pseudoBitsMask = (oneBitMask &lt;&lt; pseudoBitsBitCount) - 1;
+        static const unsigned pseudoBitsOffset = verticalAlignOffset + verticalAlignBitCount;
+
+        static const unsigned hasViewportUnitsBitCount = 1;
+        static const uint64_t hasViewportUnitsBitMask = (oneBitMask &lt;&lt; hasViewportUnitsBitCount) - 1;
+        static const unsigned hasViewportUnitsOffset = pseudoBitsOffset + pseudoBitsBitCount;
+
+        // Byte 7.
+        static const unsigned styleTypeBitCount = 6;
+        static const unsigned styleTypePadding = 2;
+        static const unsigned styleTypeAndPaddingBitCount = styleTypeBitCount + styleTypePadding;
+        static const uint64_t styleTypeMask = (oneBitMask &lt;&lt; styleTypeAndPaddingBitCount) - 1;
+        static const unsigned styleTypeOffset = hasViewportUnitsBitCount + hasViewportUnitsOffset;
+
+        // Byte 8.
+        static const unsigned isUniqueOffset = styleTypeOffset + styleTypeAndPaddingBitCount;
+        static const unsigned emptyStateOffset = isUniqueOffset + 1;
+        static const unsigned firstChildStateOffset = emptyStateOffset + 1;
+        static const unsigned lastChildStateOffset = firstChildStateOffset + 1;
+        static const unsigned affectedByHoverOffset = lastChildStateOffset + 1;
+        static const unsigned affectedByActiveOffset = affectedByHoverOffset + 1;
+        static const unsigned affectedByDragOffset = affectedByActiveOffset + 1;
+        static const unsigned isLinkOffset = affectedByDragOffset + 1;
+
+        // 60 bits are assigned. There are 4 bits available currently used as padding to improve code generation.
+        // If you add more style bits here, you will also need to update RenderStyle::copyNonInheritedFrom().
+        uint64_t m_flags { 0 };
+    };
+
+    struct InheritedFlags {
+        bool operator==(const InheritedFlags&amp;) const;
+        bool operator!=(const InheritedFlags&amp; other) const { return !(*this == other); }
+
+        unsigned emptyCells : 1; // EEmptyCell
+        unsigned captionSide : 2; // ECaptionSide
+        unsigned listStyleType : 7; // EListStyleType
+        unsigned listStylePosition : 1; // EListStylePosition
+        unsigned visibility : 2; // EVisibility
+        unsigned textAlign : 4; // ETextAlign
+        unsigned textTransform : 2; // ETextTransform
+        unsigned textDecorations : TextDecorationBits;
+        unsigned cursor : 6; // ECursor
+#if ENABLE(CURSOR_VISIBILITY)
+        unsigned cursorVisibility : 1; // CursorVisibility
+#endif
+        unsigned direction : 1; // TextDirection
+        unsigned whiteSpace : 3; // EWhiteSpace
+        // 32 bits
+        unsigned borderCollapse : 1; // EBorderCollapse
+        unsigned boxDirection : 1; // EBoxDirection (CSS3 box_direction property, flexible box layout module)
+
+        // non CSS2 inherited
+        unsigned rtlOrdering : 1; // Order
+        unsigned printColorAdjust : PrintColorAdjustBits;
+        unsigned pointerEvents : 4; // EPointerEvents
+        unsigned insideLink : 2; // EInsideLink
+        unsigned insideDefaultButton : 1;
+        // 44 bits
+
+        // CSS Text Layout Module Level 3: Vertical writing support
+        unsigned writingMode : 2; // WritingMode
+        // 46 bits
+    };
+
+    // This constructor is used to implement the replace operation.
+    RenderStyle(RenderStyle&amp;, RenderStyle&amp;&amp;);
+
+    EDisplay originalDisplay() const { return m_nonInheritedFlags.originalDisplay(); }
+
+    bool hasAutoLeftAndRight() const { return left().isAuto() &amp;&amp; right().isAuto(); }
+    bool hasAutoTopAndBottom() const { return top().isAuto() &amp;&amp; bottom().isAuto(); }
+
+    void setContent(std::unique_ptr&lt;ContentData&gt;, bool add);
+
+    LayoutBoxExtent getShadowInsetExtent(const ShadowData*) const;
+
+    static bool isDisplayReplacedType(EDisplay);
+    static bool isDisplayInlineType(EDisplay);
+    static bool isDisplayFlexibleBox(EDisplay);
+    static bool isDisplayGridBox(EDisplay);
+    static bool isDisplayFlexibleOrGridBox(EDisplay);
+
+    Color colorIncludingFallback(int colorProperty, bool visitedLink) const;
+
</ins><span class="cx">     bool changeAffectsVisualOverflow(const RenderStyle&amp;) const;
</span><span class="cx">     bool changeRequiresLayout(const RenderStyle&amp;, unsigned&amp; changedContextSensitiveProperties) const;
</span><span class="cx">     bool changeRequiresPositionedLayoutOnly(const RenderStyle&amp;, unsigned&amp; changedContextSensitiveProperties) const;
</span><span class="lines">@@ -2193,103 +1931,144 @@
</span><span class="cx">     bool changeRequiresRepaintIfTextOrBorderOrOutline(const RenderStyle&amp;, unsigned&amp; changedContextSensitiveProperties) const;
</span><span class="cx">     bool changeRequiresRecompositeLayer(const RenderStyle&amp;, unsigned&amp; changedContextSensitiveProperties) const;
</span><span class="cx"> 
</span><del>-    void setVisitedLinkColor(const Color&amp;);
-    void setVisitedLinkBackgroundColor(const Color&amp; v) { SET_VAR(rareNonInheritedData, m_visitedLinkBackgroundColor, v); }
-    void setVisitedLinkBorderLeftColor(const Color&amp; v) { SET_VAR(rareNonInheritedData, m_visitedLinkBorderLeftColor, v); }
-    void setVisitedLinkBorderRightColor(const Color&amp; v) { SET_VAR(rareNonInheritedData, m_visitedLinkBorderRightColor, v); }
-    void setVisitedLinkBorderBottomColor(const Color&amp; v) { SET_VAR(rareNonInheritedData, m_visitedLinkBorderBottomColor, v); }
-    void setVisitedLinkBorderTopColor(const Color&amp; v) { SET_VAR(rareNonInheritedData, m_visitedLinkBorderTopColor, v); }
-    void setVisitedLinkOutlineColor(const Color&amp; v) { SET_VAR(rareNonInheritedData, m_visitedLinkOutlineColor, v); }
-    void setVisitedLinkColumnRuleColor(const Color&amp; v) { SET_NESTED_VAR(rareNonInheritedData, m_multiCol, m_visitedLinkColumnRuleColor, v); }
-    void setVisitedLinkTextDecorationColor(const Color&amp; v) { SET_VAR(rareNonInheritedData, m_visitedLinkTextDecorationColor, v); }
-    void setVisitedLinkTextEmphasisColor(const Color&amp; v) { SET_VAR(rareInheritedData, visitedLinkTextEmphasisColor, v); }
-    void setVisitedLinkTextFillColor(const Color&amp; v) { SET_VAR(rareInheritedData, visitedLinkTextFillColor, v); }
-    void setVisitedLinkTextStrokeColor(const Color&amp; v) { SET_VAR(rareInheritedData, visitedLinkTextStrokeColor, v); }
</del><ins>+    // non-inherited attributes
+    DataRef&lt;StyleBoxData&gt; m_boxData;
+    DataRef&lt;StyleVisualData&gt; m_visualData;
+    DataRef&lt;StyleBackgroundData&gt; m_backgroundData;
+    DataRef&lt;StyleSurroundData&gt; m_surroundData;
+    DataRef&lt;StyleRareNonInheritedData&gt; m_rareNonInheritedData;
+    NonInheritedFlags m_nonInheritedFlags;
</ins><span class="cx"> 
</span><del>-    void inheritUnicodeBidiFrom(const RenderStyle* parent) { noninherited_flags.setUnicodeBidi(parent-&gt;noninherited_flags.unicodeBidi()); }
-    void getShadowExtent(const ShadowData*, LayoutUnit&amp; top, LayoutUnit&amp; right, LayoutUnit&amp; bottom, LayoutUnit&amp; left) const;
-    LayoutBoxExtent getShadowInsetExtent(const ShadowData*) const;
-    void getShadowHorizontalExtent(const ShadowData*, LayoutUnit&amp; left, LayoutUnit&amp; right) const;
-    void getShadowVerticalExtent(const ShadowData*, LayoutUnit&amp; top, LayoutUnit&amp; bottom) const;
-    void getShadowInlineDirectionExtent(const ShadowData* shadow, LayoutUnit&amp; logicalLeft, LayoutUnit&amp; logicalRight) const
-    {
-        return isHorizontalWritingMode() ? getShadowHorizontalExtent(shadow, logicalLeft, logicalRight) : getShadowVerticalExtent(shadow, logicalLeft, logicalRight);
-    }
-    void getShadowBlockDirectionExtent(const ShadowData* shadow, LayoutUnit&amp; logicalTop, LayoutUnit&amp; logicalBottom) const
-    {
-        return isHorizontalWritingMode() ? getShadowVerticalExtent(shadow, logicalTop, logicalBottom) : getShadowHorizontalExtent(shadow, logicalTop, logicalBottom);
-    }
</del><ins>+    // inherited attributes
+    DataRef&lt;StyleRareInheritedData&gt; m_rareInheritedData;
+    DataRef&lt;StyleInheritedData&gt; m_inheritedData;
+    InheritedFlags m_inheritedFlags;
</ins><span class="cx"> 
</span><del>-    bool isDisplayReplacedType(EDisplay display) const
-    {
-        return display == INLINE_BLOCK || display == INLINE_BOX || display == INLINE_FLEX
-#if ENABLE(CSS_GRID_LAYOUT)
-            || display == INLINE_GRID
</del><ins>+    // list of associated pseudo styles
+    std::unique_ptr&lt;PseudoStyleCache&gt; m_cachedPseudoStyles;
+
+    DataRef&lt;SVGRenderStyle&gt; m_svgStyle;
+
+#if !ASSERT_DISABLED || ENABLE(SECURITY_ASSERTIONS)
+    bool m_deletionHasBegun { false };
</ins><span class="cx"> #endif
</span><del>-            || display == INLINE_TABLE;
-    }
</del><ins>+};
</ins><span class="cx"> 
</span><del>-    bool isDisplayInlineType(EDisplay display) const
-    {
-        return display == INLINE || isDisplayReplacedType(display);
-    }
</del><ins>+int adjustForAbsoluteZoom(int, const RenderStyle&amp;);
+float adjustFloatForAbsoluteZoom(float, const RenderStyle&amp;);
+LayoutUnit adjustLayoutUnitForAbsoluteZoom(LayoutUnit, const RenderStyle&amp;);
</ins><span class="cx"> 
</span><del>-    bool isDisplayFlexibleBox(EDisplay display) const
-    {
-        return display == FLEX || display == INLINE_FLEX;
-    }
</del><ins>+EBorderStyle collapsedBorderStyle(EBorderStyle);
</ins><span class="cx"> 
</span><del>-    bool isDisplayGridBox(EDisplay display) const
-    {
-#if ENABLE(CSS_GRID_LAYOUT)
-        return display == GRID || display == INLINE_GRID;
-#else
-        UNUSED_PARAM(display);
-        return false;
-#endif
-    }
</del><ins>+bool pseudoElementRendererIsNeeded(const RenderStyle*);
</ins><span class="cx"> 
</span><del>-    bool isDisplayFlexibleOrGridBox(EDisplay display) const
-    {
-        return isDisplayFlexibleBox(display) || isDisplayGridBox(display);
-    }
</del><ins>+inline RenderStyle::NonInheritedFlags::NonInheritedFlags()
+{
+    // All these initial values need to be zero so that zero-initializing m_flags is correct.
+    ASSERT(!initialOverflowX());
+    ASSERT(!initialOverflowY());
+    ASSERT(!initialClear());
+    ASSERT(!initialDisplay());
+    ASSERT(!initialUnicodeBidi());
+    ASSERT(!initialPosition());
+    ASSERT(!initialVerticalAlign());
+    ASSERT(!initialFloating());
+    ASSERT(!initialTableLayout());
+}
</ins><span class="cx"> 
</span><del>-    // Color accessors are all private to make sure callers use visitedDependentColor instead to access them.
-    static Color invalidColor() { return Color(); }
-    const Color&amp; borderLeftColor() const { return surround-&gt;border.left().color(); }
-    const Color&amp; borderRightColor() const { return surround-&gt;border.right().color(); }
-    const Color&amp; borderTopColor() const { return surround-&gt;border.top().color(); }
-    const Color&amp; borderBottomColor() const { return surround-&gt;border.bottom().color(); }
-    const Color&amp; backgroundColor() const { return m_background-&gt;color(); }
-    const Color&amp; color() const;
-    const Color&amp; columnRuleColor() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_rule.color(); }
-    const Color&amp; outlineColor() const { return m_background-&gt;outline().color(); }
-    const Color&amp; textEmphasisColor() const { return rareInheritedData-&gt;textEmphasisColor; }
-    const Color&amp; textFillColor() const { return rareInheritedData-&gt;textFillColor; }
-    const Color&amp; textStrokeColor() const { return rareInheritedData-&gt;textStrokeColor; }
-    const Color&amp; visitedLinkColor() const;
-    const Color&amp; visitedLinkBackgroundColor() const { return rareNonInheritedData-&gt;m_visitedLinkBackgroundColor; }
-    const Color&amp; visitedLinkBorderLeftColor() const { return rareNonInheritedData-&gt;m_visitedLinkBorderLeftColor; }
-    const Color&amp; visitedLinkBorderRightColor() const { return rareNonInheritedData-&gt;m_visitedLinkBorderRightColor; }
-    const Color&amp; visitedLinkBorderBottomColor() const { return rareNonInheritedData-&gt;m_visitedLinkBorderBottomColor; }
-    const Color&amp; visitedLinkBorderTopColor() const { return rareNonInheritedData-&gt;m_visitedLinkBorderTopColor; }
-    const Color&amp; visitedLinkOutlineColor() const { return rareNonInheritedData-&gt;m_visitedLinkOutlineColor; }
-    const Color&amp; visitedLinkColumnRuleColor() const { return rareNonInheritedData-&gt;m_multiCol-&gt;m_visitedLinkColumnRuleColor; }
-    const Color&amp; textDecorationColor() const { return rareNonInheritedData-&gt;m_textDecorationColor; }
-    const Color&amp; visitedLinkTextDecorationColor() const { return rareNonInheritedData-&gt;m_visitedLinkTextDecorationColor; }
-    const Color&amp; visitedLinkTextEmphasisColor() const { return rareInheritedData-&gt;visitedLinkTextEmphasisColor; }
-    const Color&amp; visitedLinkTextFillColor() const { return rareInheritedData-&gt;visitedLinkTextFillColor; }
-    const Color&amp; visitedLinkTextStrokeColor() const { return rareInheritedData-&gt;visitedLinkTextStrokeColor; }
</del><ins>+inline void RenderStyle::NonInheritedFlags::copyNonInheritedFrom(const NonInheritedFlags&amp; other)
+{
+    // Only a subset is copied because NonInheritedFlags contains a bunch of stuff other than real style data.
+    uint64_t nonInheritedMask = overflowMask &lt;&lt; overflowXOffset
+        | overflowMask &lt;&lt; overflowYOffset
+        | clearMask &lt;&lt; clearOffset
+        | displayMask &lt;&lt; effectiveDisplayOffset
+        | positionMask &lt;&lt; positionOffset
+        | displayMask &lt;&lt; originalDisplayOffset
+        | unicodeBidiMask &lt;&lt; unicodeBidiOffset
+        | verticalAlignMask &lt;&lt; verticalAlignOffset
+        | floatingMask &lt;&lt; floatingOffset
+        | oneBitMask &lt;&lt; explicitInheritanceOffset
+        | tableLayoutBitMask &lt;&lt; tableLayoutOffset
+        | hasViewportUnitsBitMask &lt;&lt; hasViewportUnitsOffset;
</ins><span class="cx"> 
</span><del>-    Color colorIncludingFallback(int colorProperty, bool visitedLink) const;
</del><ins>+    m_flags = (m_flags &amp; ~nonInheritedMask) | (other.m_flags &amp; nonInheritedMask);
+}
</ins><span class="cx"> 
</span><del>-    const Color&amp; stopColor() const { return svgStyle().stopColor(); }
-    const Color&amp; floodColor() const { return svgStyle().floodColor(); }
-    const Color&amp; lightingColor() const { return svgStyle().lightingColor(); }
</del><ins>+inline bool RenderStyle::NonInheritedFlags::hasPseudoStyle(PseudoId pseudo) const
+{
+    ASSERT(pseudo &gt; NOPSEUDO);
+    ASSERT(pseudo &lt; FIRST_INTERNAL_PSEUDOID);
+    return (oneBitMask &lt;&lt; (pseudoBitsOffset - 1 + pseudo)) &amp; m_flags;
+}
</ins><span class="cx"> 
</span><del>-    void appendContent(std::unique_ptr&lt;ContentData&gt;);
-};
</del><ins>+inline void RenderStyle::NonInheritedFlags::setHasPseudoStyle(PseudoId pseudo)
+{
+    ASSERT(pseudo &gt; NOPSEUDO);
+    ASSERT(pseudo &lt; FIRST_INTERNAL_PSEUDOID);
+    m_flags |= oneBitMask &lt;&lt; (pseudoBitsOffset - 1 + pseudo);
+}
</ins><span class="cx"> 
</span><ins>+inline void RenderStyle::NonInheritedFlags::setHasPseudoStyles(PseudoIdSet pseudoIdSet)
+{
+    ASSERT(pseudoIdSet);
+    uint64_t rawPseudoIdSet = pseudoIdSet.data();
+    ASSERT((rawPseudoIdSet &amp; PUBLIC_PSEUDOID_MASK) == rawPseudoIdSet);
+    static_assert(pseudoBitsOffset &gt;= 1, &quot;(pseudoBitsOffset - 1) should be valid.&quot;);
+    m_flags |= (static_cast&lt;uint64_t&gt;(rawPseudoIdSet) &lt;&lt; (pseudoBitsOffset - 1));
+}
+
+inline void RenderStyle::NonInheritedFlags::updateBoolean(bool isSet, uint64_t offset)
+{
+    if (isSet)
+        m_flags |= (oneBitMask &lt;&lt; offset);
+    else
+        m_flags &amp;= ~(oneBitMask &lt;&lt; offset);
+}
+
+inline bool RenderStyle::NonInheritedFlags::getBoolean(uint64_t offset) const
+{
+    return m_flags &amp; (oneBitMask &lt;&lt; offset);
+}
+
+inline void RenderStyle::NonInheritedFlags::updateValue(uint8_t newValue, uint64_t positionIndependentMask, uint64_t offset)
+{
+    ASSERT(!(newValue &amp; ~positionIndependentMask));
+    uint64_t positionDependentMask = positionIndependentMask &lt;&lt; offset;
+    m_flags = (m_flags &amp; ~positionDependentMask) | (static_cast&lt;uint64_t&gt;(newValue) &lt;&lt; offset);
+}
+
+inline bool RenderStyle::InheritedFlags::operator==(const InheritedFlags&amp; other) const
+{
+    return emptyCells == other.emptyCells
+        &amp;&amp; captionSide == other.captionSide
+        &amp;&amp; listStyleType == other.listStyleType
+        &amp;&amp; listStylePosition == other.listStylePosition
+        &amp;&amp; visibility == other.visibility
+        &amp;&amp; textAlign == other.textAlign
+        &amp;&amp; textTransform == other.textTransform
+        &amp;&amp; textDecorations == other.textDecorations
+        &amp;&amp; cursor == other.cursor
+#if ENABLE(CURSOR_VISIBILITY)
+        &amp;&amp; cursorVisibility == other.cursorVisibility
+#endif
+        &amp;&amp; direction == other.direction
+        &amp;&amp; whiteSpace == other.whiteSpace
+        &amp;&amp; borderCollapse == other.borderCollapse
+        &amp;&amp; boxDirection == other.boxDirection
+        &amp;&amp; rtlOrdering == other.rtlOrdering
+        &amp;&amp; printColorAdjust == other.printColorAdjust
+        &amp;&amp; pointerEvents == other.pointerEvents
+        &amp;&amp; insideLink == other.insideLink
+        &amp;&amp; insideDefaultButton == other.insideDefaultButton
+        &amp;&amp; writingMode == other.writingMode;
+}
+
+inline unsigned RenderStyle::NonInheritedFlags::getValue(uint64_t positionIndependentMask, uint64_t offset) const
+{
+    return static_cast&lt;unsigned&gt;((m_flags &gt;&gt; offset) &amp; positionIndependentMask);
+}
+
</ins><span class="cx"> inline int adjustForAbsoluteZoom(int value, const RenderStyle&amp; style)
</span><span class="cx"> {
</span><span class="cx">     double zoomFactor = style.effectiveZoom();
</span><span class="lines">@@ -2325,52 +2104,258 @@
</span><span class="cx">     return style;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline bool RenderStyle::setZoom(float f)
</del><ins>+inline bool RenderStyle::hasBackground() const
</ins><span class="cx"> {
</span><del>-    setEffectiveZoom(effectiveZoom() * f);
-    if (compareEqual(visual-&gt;m_zoom, f))
</del><ins>+    return visitedDependentColor(CSSPropertyBackgroundColor).isVisible() ||  hasBackgroundImage();
+}
+
+inline bool RenderStyle::autoWrap(EWhiteSpace whiteSpace)
+{
+    // Nowrap and pre don't automatically wrap.
+    return whiteSpace != NOWRAP &amp;&amp; whiteSpace != PRE;
+}
+
+inline bool RenderStyle::preserveNewline(EWhiteSpace whiteSpace)
+{
+    // Normal and nowrap do not preserve newlines.
+    return whiteSpace != NORMAL &amp;&amp; whiteSpace != NOWRAP;
+}
+
+inline bool RenderStyle::collapseWhiteSpace(EWhiteSpace ws)
+{
+    // Pre and prewrap do not collapse whitespace.
+    return ws != PRE &amp;&amp; ws != PRE_WRAP;
+}
+
+inline bool RenderStyle::isCollapsibleWhiteSpace(UChar character) const
+{
+    switch (character) {
+    case ' ':
+    case '\t':
+        return collapseWhiteSpace();
+    case '\n':
+        return !preserveNewline();
+    default:
</ins><span class="cx">         return false;
</span><del>-    visual.access()-&gt;m_zoom = f;
</del><ins>+    }
+}
+
+inline bool RenderStyle::breakOnlyAfterWhiteSpace() const
+{
+    return whiteSpace() == PRE_WRAP || lineBreak() == LineBreakAfterWhiteSpace;
+}
+
+inline bool RenderStyle::breakWords() const
+{
+    return wordBreak() == BreakWordBreak || overflowWrap() == BreakOverflowWrap;
+}
+
+inline bool RenderStyle::hasInlineColumnAxis() const
+{
+    auto axis = columnAxis();
+    return axis == AutoColumnAxis || isHorizontalWritingMode() == (axis == HorizontalColumnAxis);
+}
+
+inline ImageOrientationEnum RenderStyle::imageOrientation() const
+{
+#if ENABLE(CSS_IMAGE_ORIENTATION)
+    return static_cast&lt;ImageOrientationEnum&gt;(m_rareInheritedData-&gt;imageOrientation);
+#else
+    return DefaultImageOrientation;
+#endif
+}
+
+inline void RenderStyle::setLogicalWidth(Length&amp;&amp; logicalWidth)
+{
+    if (isHorizontalWritingMode())
+        setWidth(WTFMove(logicalWidth));
+    else
+        setHeight(WTFMove(logicalWidth));
+}
+
+inline void RenderStyle::setLogicalHeight(Length&amp;&amp; logicalHeight)
+{
+    if (isHorizontalWritingMode())
+        setHeight(WTFMove(logicalHeight));
+    else
+        setWidth(WTFMove(logicalHeight));
+}
+
+inline void RenderStyle::setBorderRadius(LengthSize&amp;&amp; size)
+{
+    auto topLeft = size;
+    setBorderTopLeftRadius(WTFMove(topLeft));
+    auto topRight = size;
+    setBorderTopRightRadius(WTFMove(topRight));
+    auto bottomLeft = size;
+    setBorderBottomLeftRadius(WTFMove(bottomLeft));
+    setBorderBottomRightRadius(WTFMove(size));
+}
+
+inline void RenderStyle::setBorderRadius(const IntSize&amp; size)
+{
+    setBorderRadius(LengthSize { { size.width(), Fixed }, { size.height(), Fixed } });
+}
+
+inline bool RenderStyle::setZoom(float zoomLevel)
+{
+    setEffectiveZoom(effectiveZoom() * zoomLevel);
+    if (compareEqual(m_visualData-&gt;zoom, zoomLevel))
+        return false;
+    m_visualData.access().zoom = zoomLevel;
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline bool RenderStyle::setEffectiveZoom(float f)
</del><ins>+inline bool RenderStyle::setEffectiveZoom(float zoomLevel)
</ins><span class="cx"> {
</span><del>-    if (compareEqual(rareInheritedData-&gt;m_effectiveZoom, f))
</del><ins>+    if (compareEqual(m_rareInheritedData-&gt;effectiveZoom, zoomLevel))
</ins><span class="cx">         return false;
</span><del>-    rareInheritedData.access()-&gt;m_effectiveZoom = f;
</del><ins>+    m_rareInheritedData.access().effectiveZoom = zoomLevel;
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline bool RenderStyle::setTextOrientation(TextOrientation textOrientation)
</span><span class="cx"> {
</span><del>-    if (compareEqual(rareInheritedData-&gt;m_textOrientation, static_cast&lt;unsigned&gt;(textOrientation)))
</del><ins>+    if (compareEqual(m_rareInheritedData-&gt;textOrientation, static_cast&lt;unsigned&gt;(textOrientation)))
</ins><span class="cx">         return false;
</span><ins>+    m_rareInheritedData.access().textOrientation = static_cast&lt;unsigned&gt;(textOrientation);
+    return true;
+}
</ins><span class="cx"> 
</span><del>-    rareInheritedData.access()-&gt;m_textOrientation = static_cast&lt;unsigned&gt;(textOrientation);
</del><ins>+inline void RenderStyle::adjustBackgroundLayers()
+{
+    if (backgroundLayers().next()) {
+        ensureBackgroundLayers().cullEmptyLayers();
+        ensureBackgroundLayers().fillUnsetProperties();
+    }
+}
+
+inline void RenderStyle::adjustMaskLayers()
+{
+    if (maskLayers().next()) {
+        ensureMaskLayers().cullEmptyLayers();
+        ensureMaskLayers().fillUnsetProperties();
+    }
+}
+
+inline void RenderStyle::clearAnimations()
+{
+    m_rareNonInheritedData.access().animations = nullptr;
+}
+
+inline void RenderStyle::clearTransitions()
+{
+    m_rareNonInheritedData.access().transitions = nullptr;
+}
+
+inline void RenderStyle::setShapeOutside(RefPtr&lt;ShapeValue&gt;&amp;&amp; value)
+{
+    if (m_rareNonInheritedData-&gt;shapeOutside == value)
+        return;
+    m_rareNonInheritedData.access().shapeOutside = WTFMove(value);
+}
+
+inline void RenderStyle::setShapeImageThreshold(float shapeImageThreshold)
+{
+    float clampedShapeImageThreshold = clampTo&lt;float&gt;(shapeImageThreshold, 0, 1);
+    SET_VAR(m_rareNonInheritedData, shapeImageThreshold, clampedShapeImageThreshold);
+}
+
+inline void RenderStyle::setClipPath(RefPtr&lt;ClipPathOperation&gt;&amp;&amp; operation)
+{
+    if (m_rareNonInheritedData-&gt;clipPath != operation)
+        m_rareNonInheritedData.access().clipPath = WTFMove(operation);
+}
+
+inline bool RenderStyle::willChangeCreatesStackingContext() const
+{
+    return willChange() &amp;&amp; willChange()-&gt;canCreateStackingContext();
+}
+
+inline bool RenderStyle::isDisplayRegionType() const
+{
+    return display() == BLOCK || display() == INLINE_BLOCK
+        || display() == TABLE_CELL || display() == TABLE_CAPTION
+        || display() == LIST_ITEM;
+}
+
+inline bool RenderStyle::setWritingMode(WritingMode v)
+{
+    if (v == writingMode())
+        return false;
+    m_inheritedFlags.writingMode = v;
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline void RenderStyle::getShadowInlineDirectionExtent(const ShadowData* shadow, LayoutUnit&amp; logicalLeft, LayoutUnit&amp; logicalRight) const
+{
+    return isHorizontalWritingMode() ? getShadowHorizontalExtent(shadow, logicalLeft, logicalRight) : getShadowVerticalExtent(shadow, logicalLeft, logicalRight);
+}
+
+inline void RenderStyle::getShadowBlockDirectionExtent(const ShadowData* shadow, LayoutUnit&amp; logicalTop, LayoutUnit&amp; logicalBottom) const
+{
+    return isHorizontalWritingMode() ? getShadowVerticalExtent(shadow, logicalTop, logicalBottom) : getShadowHorizontalExtent(shadow, logicalTop, logicalBottom);
+}
+
+inline bool RenderStyle::isDisplayReplacedType(EDisplay display)
+{
+    return display == INLINE_BLOCK || display == INLINE_BOX || display == INLINE_FLEX
+#if ENABLE(CSS_GRID_LAYOUT)
+        || display == INLINE_GRID
+#endif
+        || display == INLINE_TABLE;
+}
+
+inline bool RenderStyle::isDisplayInlineType(EDisplay display)
+{
+    return display == INLINE || isDisplayReplacedType(display);
+}
+
+inline bool RenderStyle::isDisplayFlexibleBox(EDisplay display)
+{
+    return display == FLEX || display == INLINE_FLEX;
+}
+
+inline bool RenderStyle::isDisplayGridBox(EDisplay display)
+{
+#if ENABLE(CSS_GRID_LAYOUT)
+    return display == GRID || display == INLINE_GRID;
+#else
+    UNUSED_PARAM(display);
+    return false;
+#endif
+}
+
+inline bool RenderStyle::isDisplayFlexibleOrGridBox(EDisplay display)
+{
+    return isDisplayFlexibleBox(display) || isDisplayGridBox(display);
+}
+
</ins><span class="cx"> inline bool RenderStyle::hasAnyPublicPseudoStyles() const
</span><span class="cx"> {
</span><del>-    return noninherited_flags.hasAnyPublicPseudoStyles();
</del><ins>+    return m_nonInheritedFlags.hasAnyPublicPseudoStyles();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline bool RenderStyle::hasPseudoStyle(PseudoId pseudo) const
</span><span class="cx"> {
</span><del>-    return noninherited_flags.hasPseudoStyle(pseudo);
</del><ins>+    return m_nonInheritedFlags.hasPseudoStyle(pseudo);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void RenderStyle::setHasPseudoStyle(PseudoId pseudo)
</span><span class="cx"> {
</span><del>-    noninherited_flags.setHasPseudoStyle(pseudo);
</del><ins>+    m_nonInheritedFlags.setHasPseudoStyle(pseudo);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void RenderStyle::setHasPseudoStyles(PseudoIdSet pseudoIdSet)
</span><span class="cx"> {
</span><del>-    noninherited_flags.setHasPseudoStyles(pseudoIdSet);
</del><ins>+    m_nonInheritedFlags.setHasPseudoStyles(pseudoIdSet);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline void RenderStyle::setBoxReflect(RefPtr&lt;StyleReflection&gt;&amp;&amp; reflect)
+{
+    SET_VAR(m_rareNonInheritedData, boxReflect, WTFMove(reflect));
+}
+
</ins><span class="cx"> inline bool pseudoElementRendererIsNeeded(const RenderStyle* style)
</span><span class="cx"> {
</span><span class="cx">     return style &amp;&amp; style-&gt;display() != NONE &amp;&amp; (style-&gt;contentData() || style-&gt;hasFlowFrom());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -49,29 +49,29 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SVGRenderStyle::SVGRenderStyle()
</span><del>-    : fill(defaultSVGStyle().fill)
-    , stroke(defaultSVGStyle().stroke)
-    , text(defaultSVGStyle().text)
-    , inheritedResources(defaultSVGStyle().inheritedResources)
-    , stops(defaultSVGStyle().stops)
-    , misc(defaultSVGStyle().misc)
-    , shadowSVG(defaultSVGStyle().shadowSVG)
-    , layout(defaultSVGStyle().layout)
-    , resources(defaultSVGStyle().resources)
</del><ins>+    : m_fillData(defaultSVGStyle().m_fillData)
+    , m_strokeData(defaultSVGStyle().m_strokeData)
+    , m_textData(defaultSVGStyle().m_textData)
+    , m_inheritedResourceData(defaultSVGStyle().m_inheritedResourceData)
+    , m_stopData(defaultSVGStyle().m_stopData)
+    , m_miscData(defaultSVGStyle().m_miscData)
+    , m_shadowData(defaultSVGStyle().m_shadowData)
+    , m_layoutData(defaultSVGStyle().m_layoutData)
+    , m_nonInheritedResourceData(defaultSVGStyle().m_nonInheritedResourceData)
</ins><span class="cx"> {
</span><span class="cx">     setBitDefaults();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SVGRenderStyle::SVGRenderStyle(CreateDefaultType)
</span><del>-    : fill(StyleFillData::create())
-    , stroke(StyleStrokeData::create())
-    , text(StyleTextData::create())
-    , inheritedResources(StyleInheritedResourceData::create())
-    , stops(StyleStopData::create())
-    , misc(StyleMiscData::create())
-    , shadowSVG(StyleShadowSVGData::create())
-    , layout(StyleLayoutData::create())
-    , resources(StyleResourceData::create())
</del><ins>+    : m_fillData(StyleFillData::create())
+    , m_strokeData(StyleStrokeData::create())
+    , m_textData(StyleTextData::create())
+    , m_inheritedResourceData(StyleInheritedResourceData::create())
+    , m_stopData(StyleStopData::create())
+    , m_miscData(StyleMiscData::create())
+    , m_shadowData(StyleShadowSVGData::create())
+    , m_layoutData(StyleLayoutData::create())
+    , m_nonInheritedResourceData(StyleResourceData::create())
</ins><span class="cx"> {
</span><span class="cx">     setBitDefaults();
</span><span class="cx"> }
</span><span class="lines">@@ -78,17 +78,17 @@
</span><span class="cx"> 
</span><span class="cx"> inline SVGRenderStyle::SVGRenderStyle(const SVGRenderStyle&amp; other)
</span><span class="cx">     : RefCounted&lt;SVGRenderStyle&gt;()
</span><del>-    , svg_inherited_flags(other.svg_inherited_flags)
-    , svg_noninherited_flags(other.svg_noninherited_flags)
-    , fill(other.fill)
-    , stroke(other.stroke)
-    , text(other.text)
-    , inheritedResources(other.inheritedResources)
-    , stops(other.stops)
-    , misc(other.misc)
-    , shadowSVG(other.shadowSVG)
-    , layout(other.layout)
-    , resources(other.resources)
</del><ins>+    , m_inheritedFlags(other.m_inheritedFlags)
+    , m_nonInheritedFlags(other.m_nonInheritedFlags)
+    , m_fillData(other.m_fillData)
+    , m_strokeData(other.m_strokeData)
+    , m_textData(other.m_textData)
+    , m_inheritedResourceData(other.m_inheritedResourceData)
+    , m_stopData(other.m_stopData)
+    , m_miscData(other.m_miscData)
+    , m_shadowData(other.m_shadowData)
+    , m_layoutData(other.m_layoutData)
+    , m_nonInheritedResourceData(other.m_nonInheritedResourceData)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -103,49 +103,46 @@
</span><span class="cx"> 
</span><span class="cx"> bool SVGRenderStyle::operator==(const SVGRenderStyle&amp; other) const
</span><span class="cx"> {
</span><del>-    return fill == other.fill
-        &amp;&amp; stroke == other.stroke
-        &amp;&amp; text == other.text
-        &amp;&amp; stops == other.stops
-        &amp;&amp; misc == other.misc
-        &amp;&amp; shadowSVG == other.shadowSVG
-        &amp;&amp; layout == other.layout
-        &amp;&amp; inheritedResources == other.inheritedResources
-        &amp;&amp; resources == other.resources
-        &amp;&amp; svg_inherited_flags == other.svg_inherited_flags
-        &amp;&amp; svg_noninherited_flags == other.svg_noninherited_flags;
</del><ins>+    return m_fillData == other.m_fillData
+        &amp;&amp; m_strokeData == other.m_strokeData
+        &amp;&amp; m_textData == other.m_textData
+        &amp;&amp; m_stopData == other.m_stopData
+        &amp;&amp; m_miscData == other.m_miscData
+        &amp;&amp; m_shadowData == other.m_shadowData
+        &amp;&amp; m_layoutData == other.m_layoutData
+        &amp;&amp; m_inheritedResourceData == other.m_inheritedResourceData
+        &amp;&amp; m_nonInheritedResourceData == other.m_nonInheritedResourceData
+        &amp;&amp; m_inheritedFlags == other.m_inheritedFlags
+        &amp;&amp; m_nonInheritedFlags == other.m_nonInheritedFlags;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool SVGRenderStyle::inheritedNotEqual(const SVGRenderStyle* other) const
</del><ins>+bool SVGRenderStyle::inheritedNotEqual(const SVGRenderStyle&amp; other) const
</ins><span class="cx"> {
</span><del>-    return fill != other-&gt;fill
-        || stroke != other-&gt;stroke
-        || text != other-&gt;text
-        || inheritedResources != other-&gt;inheritedResources
-        || svg_inherited_flags != other-&gt;svg_inherited_flags;
</del><ins>+    return m_fillData != other.m_fillData
+        || m_strokeData != other.m_strokeData
+        || m_textData != other.m_textData
+        || m_inheritedResourceData != other.m_inheritedResourceData
+        || m_inheritedFlags != other.m_inheritedFlags;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SVGRenderStyle::inheritFrom(const SVGRenderStyle* svgInheritParent)
</del><ins>+void SVGRenderStyle::inheritFrom(const SVGRenderStyle&amp; other)
</ins><span class="cx"> {
</span><del>-    if (!svgInheritParent)
-        return;
</del><ins>+    m_fillData = other.m_fillData;
+    m_strokeData = other.m_strokeData;
+    m_textData = other.m_textData;
+    m_inheritedResourceData = other.m_inheritedResourceData;
</ins><span class="cx"> 
</span><del>-    fill = svgInheritParent-&gt;fill;
-    stroke = svgInheritParent-&gt;stroke;
-    text = svgInheritParent-&gt;text;
-    inheritedResources = svgInheritParent-&gt;inheritedResources;
-
-    svg_inherited_flags = svgInheritParent-&gt;svg_inherited_flags;
</del><ins>+    m_inheritedFlags = other.m_inheritedFlags;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SVGRenderStyle::copyNonInheritedFrom(const SVGRenderStyle* other)
</del><ins>+void SVGRenderStyle::copyNonInheritedFrom(const SVGRenderStyle&amp; other)
</ins><span class="cx"> {
</span><del>-    svg_noninherited_flags = other-&gt;svg_noninherited_flags;
-    stops = other-&gt;stops;
-    misc = other-&gt;misc;
-    shadowSVG = other-&gt;shadowSVG;
-    layout = other-&gt;layout;
-    resources = other-&gt;resources;
</del><ins>+    m_nonInheritedFlags = other.m_nonInheritedFlags;
+    m_stopData = other.m_stopData;
+    m_miscData = other.m_miscData;
+    m_shadowData = other.m_shadowData;
+    m_layoutData = other.m_layoutData;
+    m_nonInheritedResourceData = other.m_nonInheritedResourceData;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Vector&lt;PaintType, 3&gt; SVGRenderStyle::paintTypesForPaintOrder() const
</span><span class="lines">@@ -188,70 +185,70 @@
</span><span class="cx">     return paintOrder;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-StyleDifference SVGRenderStyle::diff(const SVGRenderStyle* other) const
</del><ins>+StyleDifference SVGRenderStyle::diff(const SVGRenderStyle&amp; other) const
</ins><span class="cx"> {
</span><span class="cx">     // NOTE: All comparisions that may return StyleDifferenceLayout have to go before those who return StyleDifferenceRepaint
</span><span class="cx"> 
</span><span class="cx">     // If kerning changes, we need a relayout, to force SVGCharacterData to be recalculated in the SVGRootInlineBox.
</span><del>-    if (text != other-&gt;text)
</del><ins>+    if (m_textData != other.m_textData)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // If resources change, we need a relayout, as the presence of resources influences the repaint rect.
</span><del>-    if (resources != other-&gt;resources)
</del><ins>+    if (m_nonInheritedResourceData != other.m_nonInheritedResourceData)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // If markers change, we need a relayout, as marker boundaries are cached in RenderSVGPath.
</span><del>-    if (inheritedResources != other-&gt;inheritedResources)
</del><ins>+    if (m_inheritedResourceData != other.m_inheritedResourceData)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // All text related properties influence layout.
</span><del>-    if (svg_inherited_flags._textAnchor != other-&gt;svg_inherited_flags._textAnchor
-        || svg_inherited_flags._glyphOrientationHorizontal != other-&gt;svg_inherited_flags._glyphOrientationHorizontal
-        || svg_inherited_flags._glyphOrientationVertical != other-&gt;svg_inherited_flags._glyphOrientationVertical
-        || svg_noninherited_flags.f._alignmentBaseline != other-&gt;svg_noninherited_flags.f._alignmentBaseline
-        || svg_noninherited_flags.f._dominantBaseline != other-&gt;svg_noninherited_flags.f._dominantBaseline
-        || svg_noninherited_flags.f._baselineShift != other-&gt;svg_noninherited_flags.f._baselineShift)
</del><ins>+    if (m_inheritedFlags.textAnchor != other.m_inheritedFlags.textAnchor
+        || m_inheritedFlags.glyphOrientationHorizontal != other.m_inheritedFlags.glyphOrientationHorizontal
+        || m_inheritedFlags.glyphOrientationVertical != other.m_inheritedFlags.glyphOrientationVertical
+        || m_nonInheritedFlags.flagBits.alignmentBaseline != other.m_nonInheritedFlags.flagBits.alignmentBaseline
+        || m_nonInheritedFlags.flagBits.dominantBaseline != other.m_nonInheritedFlags.flagBits.dominantBaseline
+        || m_nonInheritedFlags.flagBits.baselineShift != other.m_nonInheritedFlags.flagBits.baselineShift)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // Text related properties influence layout.
</span><del>-    bool miscNotEqual = misc != other-&gt;misc;
-    if (miscNotEqual &amp;&amp; misc-&gt;baselineShiftValue != other-&gt;misc-&gt;baselineShiftValue)
</del><ins>+    bool miscNotEqual = m_miscData != other.m_miscData;
+    if (miscNotEqual &amp;&amp; m_miscData-&gt;baselineShiftValue != other.m_miscData-&gt;baselineShiftValue)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // These properties affect the cached stroke bounding box rects.
</span><del>-    if (svg_inherited_flags._capStyle != other-&gt;svg_inherited_flags._capStyle
-        || svg_inherited_flags._joinStyle != other-&gt;svg_inherited_flags._joinStyle)
</del><ins>+    if (m_inheritedFlags.capStyle != other.m_inheritedFlags.capStyle
+        || m_inheritedFlags.joinStyle != other.m_inheritedFlags.joinStyle)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // Shadow changes require relayouts, as they affect the repaint rects.
</span><del>-    if (shadowSVG != other-&gt;shadowSVG)
</del><ins>+    if (m_shadowData != other.m_shadowData)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // The x or y properties require relayout.
</span><del>-    if (layout != other-&gt;layout)
</del><ins>+    if (m_layoutData != other.m_layoutData)
</ins><span class="cx">         return StyleDifferenceLayout; 
</span><span class="cx"> 
</span><span class="cx">     // Some stroke properties, requires relayouts, as the cached stroke boundaries need to be recalculated.
</span><del>-    if (stroke != other-&gt;stroke) {
-        if (stroke-&gt;width != other-&gt;stroke-&gt;width
-            || stroke-&gt;paintType != other-&gt;stroke-&gt;paintType
-            || stroke-&gt;paintColor != other-&gt;stroke-&gt;paintColor
-            || stroke-&gt;paintUri != other-&gt;stroke-&gt;paintUri
-            || stroke-&gt;miterLimit != other-&gt;stroke-&gt;miterLimit
-            || stroke-&gt;dashArray != other-&gt;stroke-&gt;dashArray
-            || stroke-&gt;dashOffset != other-&gt;stroke-&gt;dashOffset
-            || stroke-&gt;visitedLinkPaintColor != other-&gt;stroke-&gt;visitedLinkPaintColor
-            || stroke-&gt;visitedLinkPaintUri != other-&gt;stroke-&gt;visitedLinkPaintUri
-            || stroke-&gt;visitedLinkPaintType != other-&gt;stroke-&gt;visitedLinkPaintType)
</del><ins>+    if (m_strokeData != other.m_strokeData) {
+        if (m_strokeData-&gt;width != other.m_strokeData-&gt;width
+            || m_strokeData-&gt;paintType != other.m_strokeData-&gt;paintType
+            || m_strokeData-&gt;paintColor != other.m_strokeData-&gt;paintColor
+            || m_strokeData-&gt;paintUri != other.m_strokeData-&gt;paintUri
+            || m_strokeData-&gt;miterLimit != other.m_strokeData-&gt;miterLimit
+            || m_strokeData-&gt;dashArray != other.m_strokeData-&gt;dashArray
+            || m_strokeData-&gt;dashOffset != other.m_strokeData-&gt;dashOffset
+            || m_strokeData-&gt;visitedLinkPaintColor != other.m_strokeData-&gt;visitedLinkPaintColor
+            || m_strokeData-&gt;visitedLinkPaintUri != other.m_strokeData-&gt;visitedLinkPaintUri
+            || m_strokeData-&gt;visitedLinkPaintType != other.m_strokeData-&gt;visitedLinkPaintType)
</ins><span class="cx">             return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">         // Only the stroke-opacity case remains, where we only need a repaint.
</span><del>-        ASSERT(stroke-&gt;opacity != other-&gt;stroke-&gt;opacity);
</del><ins>+        ASSERT(m_strokeData-&gt;opacity != other.m_strokeData-&gt;opacity);
</ins><span class="cx">         return StyleDifferenceRepaint;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // vector-effect changes require a re-layout.
</span><del>-    if (svg_noninherited_flags.f._vectorEffect != other-&gt;svg_noninherited_flags.f._vectorEffect)
</del><ins>+    if (m_nonInheritedFlags.flagBits.vectorEffect != other.m_nonInheritedFlags.flagBits.vectorEffect)
</ins><span class="cx">         return StyleDifferenceLayout;
</span><span class="cx"> 
</span><span class="cx">     // NOTE: All comparisions below may only return StyleDifferenceRepaint
</span><span class="lines">@@ -258,34 +255,34 @@
</span><span class="cx"> 
</span><span class="cx">     // Painting related properties only need repaints. 
</span><span class="cx">     if (miscNotEqual) {
</span><del>-        if (misc-&gt;floodColor != other-&gt;misc-&gt;floodColor
-            || misc-&gt;floodOpacity != other-&gt;misc-&gt;floodOpacity
-            || misc-&gt;lightingColor != other-&gt;misc-&gt;lightingColor)
</del><ins>+        if (m_miscData-&gt;floodColor != other.m_miscData-&gt;floodColor
+            || m_miscData-&gt;floodOpacity != other.m_miscData-&gt;floodOpacity
+            || m_miscData-&gt;lightingColor != other.m_miscData-&gt;lightingColor)
</ins><span class="cx">             return StyleDifferenceRepaint;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // If fill changes, we just need to repaint. Fill boundaries are not influenced by this, only by the Path, that RenderSVGPath contains.
-    if (fill-&gt;paintType != other-&gt;fill-&gt;paintType || fill-&gt;paintColor != other-&gt;fill-&gt;paintColor
-        || fill-&gt;paintUri != other-&gt;fill-&gt;paintUri || fill-&gt;opacity != other-&gt;fill-&gt;opacity)
</del><ins>+    // If fill data changes, we just need to repaint. Fill boundaries are not influenced by this, only by the Path, that RenderSVGPath contains.
+    if (m_fillData-&gt;paintType != other.m_fillData-&gt;paintType || m_fillData-&gt;paintColor != other.m_fillData-&gt;paintColor
+        || m_fillData-&gt;paintUri != other.m_fillData-&gt;paintUri || m_fillData-&gt;opacity != other.m_fillData-&gt;opacity)
</ins><span class="cx">         return StyleDifferenceRepaint;
</span><span class="cx"> 
</span><span class="cx">     // If gradient stops change, we just need to repaint. Style updates are already handled through RenderSVGGradientSTop.
</span><del>-    if (stops != other-&gt;stops)
</del><ins>+    if (m_stopData != other.m_stopData)
</ins><span class="cx">         return StyleDifferenceRepaint;
</span><span class="cx"> 
</span><span class="cx">     // Changes of these flags only cause repaints.
</span><del>-    if (svg_inherited_flags._colorRendering != other-&gt;svg_inherited_flags._colorRendering
-        || svg_inherited_flags._shapeRendering != other-&gt;svg_inherited_flags._shapeRendering
-        || svg_inherited_flags._clipRule != other-&gt;svg_inherited_flags._clipRule
-        || svg_inherited_flags._fillRule != other-&gt;svg_inherited_flags._fillRule
-        || svg_inherited_flags._colorInterpolation != other-&gt;svg_inherited_flags._colorInterpolation
-        || svg_inherited_flags._colorInterpolationFilters != other-&gt;svg_inherited_flags._colorInterpolationFilters)
</del><ins>+    if (m_inheritedFlags.colorRendering != other.m_inheritedFlags.colorRendering
+        || m_inheritedFlags.shapeRendering != other.m_inheritedFlags.shapeRendering
+        || m_inheritedFlags.clipRule != other.m_inheritedFlags.clipRule
+        || m_inheritedFlags.fillRule != other.m_inheritedFlags.fillRule
+        || m_inheritedFlags.colorInterpolation != other.m_inheritedFlags.colorInterpolation
+        || m_inheritedFlags.colorInterpolationFilters != other.m_inheritedFlags.colorInterpolationFilters)
</ins><span class="cx">         return StyleDifferenceRepaint;
</span><span class="cx"> 
</span><del>-    if (svg_noninherited_flags.f.bufferedRendering != other-&gt;svg_noninherited_flags.f.bufferedRendering)
</del><ins>+    if (m_nonInheritedFlags.flagBits.bufferedRendering != other.m_nonInheritedFlags.flagBits.bufferedRendering)
</ins><span class="cx">         return StyleDifferenceRepaint;
</span><span class="cx"> 
</span><del>-    if (svg_noninherited_flags.f.maskType != other-&gt;svg_noninherited_flags.f.maskType)
</del><ins>+    if (m_nonInheritedFlags.flagBits.maskType != other.m_nonInheritedFlags.flagBits.maskType)
</ins><span class="cx">         return StyleDifferenceRepaint;
</span><span class="cx"> 
</span><span class="cx">     return StyleDifferenceEqual;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> /*
</span><span class="cx">     Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann &lt;zimmermann@kde.org&gt;
</span><span class="cx">                   2004, 2005 Rob Buis &lt;buis@kde.org&gt;
</span><del>-    Copyright (C) 2005, 2006 Apple Inc.
</del><ins>+    Copyright (C) 2005-2017 Apple Inc. All rights reserved.
</ins><span class="cx">     Copyright (C) Research In Motion Limited 2010. All rights reserved.
</span><span class="cx">     Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved.
</span><span class="cx"> 
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> 
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><del>-#include &quot;CSSValueList.h&quot;
</del><span class="cx"> #include &quot;DataRef.h&quot;
</span><span class="cx"> #include &quot;GraphicsTypes.h&quot;
</span><span class="cx"> #include &quot;Path.h&quot;
</span><span class="lines">@@ -32,11 +31,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class FloatRect;
-class IntRect;
-class RenderObject;
-
-class SVGRenderStyle : public RefCounted&lt;SVGRenderStyle&gt; {    
</del><ins>+class SVGRenderStyle : public RefCounted&lt;SVGRenderStyle&gt; {
</ins><span class="cx"> public:
</span><span class="cx">     static Ref&lt;SVGRenderStyle&gt; createDefaultStyle();
</span><span class="cx">     static Ref&lt;SVGRenderStyle&gt; create() { return adoptRef(*new SVGRenderStyle); }
</span><span class="lines">@@ -43,14 +38,14 @@
</span><span class="cx">     Ref&lt;SVGRenderStyle&gt; copy() const;
</span><span class="cx">     ~SVGRenderStyle();
</span><span class="cx"> 
</span><del>-    bool inheritedNotEqual(const SVGRenderStyle*) const;
-    void inheritFrom(const SVGRenderStyle*);
-    void copyNonInheritedFrom(const SVGRenderStyle*);
</del><ins>+    bool inheritedNotEqual(const SVGRenderStyle&amp;) const;
+    void inheritFrom(const SVGRenderStyle&amp;);
+    void copyNonInheritedFrom(const SVGRenderStyle&amp;);
</ins><span class="cx"> 
</span><del>-    StyleDifference diff(const SVGRenderStyle*) const;
</del><ins>+    StyleDifference diff(const SVGRenderStyle&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     bool operator==(const SVGRenderStyle&amp;) const;
</span><del>-    bool operator!=(const SVGRenderStyle&amp; o) const { return !(*this == o); }
</del><ins>+    bool operator!=(const SVGRenderStyle&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><span class="cx">     // Initial values for all the properties
</span><span class="cx">     static EAlignmentBaseline initialAlignmentBaseline() { return AB_AUTO; }
</span><span class="lines">@@ -84,7 +79,7 @@
</span><span class="cx">     static float initialFloodOpacity() { return 1; }
</span><span class="cx">     static Color initialFloodColor() { return Color(0, 0, 0); }
</span><span class="cx">     static Color initialLightingColor() { return Color(255, 255, 255); }
</span><del>-    static ShadowData* initialShadow() { return 0; }
</del><ins>+    static ShadowData* initialShadow() { return nullptr; }
</ins><span class="cx">     static String initialClipperResource() { return String(); }
</span><span class="cx">     static String initialMaskerResource() { return String(); }
</span><span class="cx">     static String initialMarkerStartResource() { return String(); }
</span><span class="lines">@@ -92,287 +87,122 @@
</span><span class="cx">     static String initialMarkerEndResource() { return String(); }
</span><span class="cx">     static EMaskType initialMaskType() { return MT_LUMINANCE; }
</span><span class="cx">     static PaintOrder initialPaintOrder() { return PaintOrderNormal; }
</span><ins>+    static SVGLengthValue initialBaselineShiftValue();
+    static SVGLengthValue initialKerning();
</ins><span class="cx"> 
</span><del>-    static SVGLengthValue initialBaselineShiftValue()
-    {
-        SVGLengthValue length;
-        length.newValueSpecifiedUnits(LengthTypeNumber, 0);
-        return length;
-    }
-
-    static SVGLengthValue initialKerning()
-    {
-        SVGLengthValue length;
-        length.newValueSpecifiedUnits(LengthTypeNumber, 0);
-        return length;
-    }
-
</del><span class="cx">     // SVG CSS Property setters
</span><del>-    void setAlignmentBaseline(EAlignmentBaseline val) { svg_noninherited_flags.f._alignmentBaseline = val; }
-    void setDominantBaseline(EDominantBaseline val) { svg_noninherited_flags.f._dominantBaseline = val; }
-    void setBaselineShift(EBaselineShift val) { svg_noninherited_flags.f._baselineShift = val; }
-    void setVectorEffect(EVectorEffect val) { svg_noninherited_flags.f._vectorEffect = val; }
-    void setBufferedRendering(EBufferedRendering val) { svg_noninherited_flags.f.bufferedRendering = val; }
-    void setCapStyle(LineCap val) { svg_inherited_flags._capStyle = val; }
-    void setClipRule(WindRule val) { svg_inherited_flags._clipRule = val; }
-    void setColorInterpolation(EColorInterpolation val) { svg_inherited_flags._colorInterpolation = val; }
-    void setColorInterpolationFilters(EColorInterpolation val) { svg_inherited_flags._colorInterpolationFilters = val; }
-    void setColorRendering(EColorRendering val) { svg_inherited_flags._colorRendering = val; }
-    void setFillRule(WindRule val) { svg_inherited_flags._fillRule = val; }
-    void setJoinStyle(LineJoin val) { svg_inherited_flags._joinStyle = val; }
-    void setShapeRendering(EShapeRendering val) { svg_inherited_flags._shapeRendering = val; }
-    void setTextAnchor(ETextAnchor val) { svg_inherited_flags._textAnchor = val; }
-    void setGlyphOrientationHorizontal(EGlyphOrientation val) { svg_inherited_flags._glyphOrientationHorizontal = val; }
-    void setGlyphOrientationVertical(EGlyphOrientation val) { svg_inherited_flags._glyphOrientationVertical = val; }
-    void setMaskType(EMaskType val) { svg_noninherited_flags.f.maskType = val; }
-    void setPaintOrder(PaintOrder val) { svg_inherited_flags.paintOrder = val; }
-    void setCx(const Length&amp; obj)
-    {
-        if (!(layout-&gt;cx == obj))
-            layout.access()-&gt;cx = obj;
-    }
-    void setCy(const Length&amp; obj)
-    {
-        if (!(layout-&gt;cy == obj))
-            layout.access()-&gt;cy = obj;
-    }
-    void setR(const Length&amp; obj)
-    {
-        if (!(layout-&gt;r == obj))
-            layout.access()-&gt;r = obj;
-    }
-    void setRx(const Length&amp; obj)
-    {
-        if (!(layout-&gt;rx == obj))
-            layout.access()-&gt;rx = obj;
-    }
-    void setRy(const Length&amp; obj)
-    {
-        if (!(layout-&gt;ry == obj))
-            layout.access()-&gt;ry = obj;
-    }
-    void setX(const Length&amp; obj)
-    {
-        if (!(layout-&gt;x == obj))
-            layout.access()-&gt;x = obj;
-    }
-    void setY(const Length&amp; obj)
-    {
-        if (!(layout-&gt;y == obj))
-            layout.access()-&gt;y = obj;
-    }
</del><ins>+    void setAlignmentBaseline(EAlignmentBaseline val) { m_nonInheritedFlags.flagBits.alignmentBaseline = val; }
+    void setDominantBaseline(EDominantBaseline val) { m_nonInheritedFlags.flagBits.dominantBaseline = val; }
+    void setBaselineShift(EBaselineShift val) { m_nonInheritedFlags.flagBits.baselineShift = val; }
+    void setVectorEffect(EVectorEffect val) { m_nonInheritedFlags.flagBits.vectorEffect = val; }
+    void setBufferedRendering(EBufferedRendering val) { m_nonInheritedFlags.flagBits.bufferedRendering = val; }
+    void setCapStyle(LineCap val) { m_inheritedFlags.capStyle = val; }
+    void setClipRule(WindRule val) { m_inheritedFlags.clipRule = val; }
+    void setColorInterpolation(EColorInterpolation val) { m_inheritedFlags.colorInterpolation = val; }
+    void setColorInterpolationFilters(EColorInterpolation val) { m_inheritedFlags.colorInterpolationFilters = val; }
+    void setColorRendering(EColorRendering val) { m_inheritedFlags.colorRendering = val; }
+    void setFillRule(WindRule val) { m_inheritedFlags.fillRule = val; }
+    void setJoinStyle(LineJoin val) { m_inheritedFlags.joinStyle = val; }
+    void setShapeRendering(EShapeRendering val) { m_inheritedFlags.shapeRendering = val; }
+    void setTextAnchor(ETextAnchor val) { m_inheritedFlags.textAnchor = val; }
+    void setGlyphOrientationHorizontal(EGlyphOrientation val) { m_inheritedFlags.glyphOrientationHorizontal = val; }
+    void setGlyphOrientationVertical(EGlyphOrientation val) { m_inheritedFlags.glyphOrientationVertical = val; }
+    void setMaskType(EMaskType val) { m_nonInheritedFlags.flagBits.maskType = val; }
+    void setPaintOrder(PaintOrder val) { m_inheritedFlags.paintOrder = val; }
+    void setCx(const Length&amp;);
+    void setCy(const Length&amp;);
+    void setR(const Length&amp;);
+    void setRx(const Length&amp;);
+    void setRy(const Length&amp;);
+    void setX(const Length&amp;);
+    void setY(const Length&amp;);
+    void setFillOpacity(float);
+    void setFillPaint(SVGPaintType, const Color&amp;, const String&amp; uri, bool applyToRegularStyle = true, bool applyToVisitedLinkStyle = false);
+    void setStrokeOpacity(float);
+    void setStrokePaint(SVGPaintType, const Color&amp;, const String&amp; uri, bool applyToRegularStyle = true, bool applyToVisitedLinkStyle = false);
</ins><span class="cx"> 
</span><del>-    void setFillOpacity(float obj)
-    {
-        if (!(fill-&gt;opacity == obj))
-            fill.access()-&gt;opacity = obj;
-    }
</del><ins>+    void setStrokeDashArray(const Vector&lt;SVGLengthValue&gt;&amp;);
+    void setStrokeMiterLimit(float);
+    void setStrokeWidth(const Length&amp;);
+    void setStrokeDashOffset(const Length&amp;);
+    void setKerning(const SVGLengthValue&amp;);
+    void setStopOpacity(float);
+    void setStopColor(const Color&amp;);
+    void setFloodOpacity(float);
+    void setFloodColor(const Color&amp;);
+    void setLightingColor(const Color&amp;);
+    void setBaselineShiftValue(const SVGLengthValue&amp;);
</ins><span class="cx"> 
</span><del>-    void setFillPaint(SVGPaintType type, const Color&amp; color, const String&amp; uri, bool applyToRegularStyle = true, bool applyToVisitedLinkStyle = false)
-    {
-        if (applyToRegularStyle) {
-            if (!(fill-&gt;paintType == type))
-                fill.access()-&gt;paintType = type;
-            if (!(fill-&gt;paintColor == color))
-                fill.access()-&gt;paintColor = color;
-            if (!(fill-&gt;paintUri == uri))
-                fill.access()-&gt;paintUri = uri;
-        }
-        if (applyToVisitedLinkStyle) {
-            if (!(fill-&gt;visitedLinkPaintType == type))
-                fill.access()-&gt;visitedLinkPaintType = type;
-            if (!(fill-&gt;visitedLinkPaintColor == color))
-                fill.access()-&gt;visitedLinkPaintColor = color;
-            if (!(fill-&gt;visitedLinkPaintUri == uri))
-                fill.access()-&gt;visitedLinkPaintUri = uri;
-        }
-    }
</del><ins>+    void setShadow(std::unique_ptr&lt;ShadowData&gt;&amp;&amp; data) { m_shadowData.access().shadow = WTFMove(data); }
</ins><span class="cx"> 
</span><del>-    void setStrokeOpacity(float obj)
-    {
-        if (!(stroke-&gt;opacity == obj))
-            stroke.access()-&gt;opacity = obj;
-    }
-
-    void setStrokePaint(SVGPaintType type, const Color&amp; color, const String&amp; uri, bool applyToRegularStyle = true, bool applyToVisitedLinkStyle = false)
-    {
-        if (applyToRegularStyle) {
-            if (!(stroke-&gt;paintType == type))
-                stroke.access()-&gt;paintType = type;
-            if (!(stroke-&gt;paintColor == color))
-                stroke.access()-&gt;paintColor = color;
-            if (!(stroke-&gt;paintUri == uri))
-                stroke.access()-&gt;paintUri = uri;
-        }
-        if (applyToVisitedLinkStyle) {
-            if (!(stroke-&gt;visitedLinkPaintType == type))
-                stroke.access()-&gt;visitedLinkPaintType = type;
-            if (!(stroke-&gt;visitedLinkPaintColor == color))
-                stroke.access()-&gt;visitedLinkPaintColor = color;
-            if (!(stroke-&gt;visitedLinkPaintUri == uri))
-                stroke.access()-&gt;visitedLinkPaintUri = uri;
-        }
-    }
-
-    void setStrokeDashArray(const Vector&lt;SVGLengthValue&gt;&amp; obj)
-    {
-        if (!(stroke-&gt;dashArray == obj))
-            stroke.access()-&gt;dashArray = obj;
-    }
-
-    void setStrokeMiterLimit(float obj)
-    {
-        if (!(stroke-&gt;miterLimit == obj))
-            stroke.access()-&gt;miterLimit = obj;
-    }
-
-    void setStrokeWidth(const Length&amp; obj)
-    {
-        if (!(stroke-&gt;width == obj))
-            stroke.access()-&gt;width = obj;
-    }
-
-    void setStrokeDashOffset(const Length&amp; obj)
-    {
-        if (!(stroke-&gt;dashOffset == obj))
-            stroke.access()-&gt;dashOffset = obj;
-    }
-
-    void setKerning(const SVGLengthValue&amp; obj)
-    {
-        if (!(text-&gt;kerning == obj))
-            text.access()-&gt;kerning = obj;
-    }
-
-    void setStopOpacity(float obj)
-    {
-        if (!(stops-&gt;opacity == obj))
-            stops.access()-&gt;opacity = obj;
-    }
-
-    void setStopColor(const Color&amp; obj)
-    {
-        if (!(stops-&gt;color == obj))
-            stops.access()-&gt;color = obj;
-    }
-
-    void setFloodOpacity(float obj)
-    {
-        if (!(misc-&gt;floodOpacity == obj))
-            misc.access()-&gt;floodOpacity = obj;
-    }
-
-    void setFloodColor(const Color&amp; obj)
-    {
-        if (!(misc-&gt;floodColor == obj))
-            misc.access()-&gt;floodColor = obj;
-    }
-
-    void setLightingColor(const Color&amp; obj)
-    {
-        if (!(misc-&gt;lightingColor == obj))
-            misc.access()-&gt;lightingColor = obj;
-    }
-
-    void setBaselineShiftValue(const SVGLengthValue&amp; obj)
-    {
-        if (!(misc-&gt;baselineShiftValue == obj))
-            misc.access()-&gt;baselineShiftValue = obj;
-    }
-
-    void setShadow(std::unique_ptr&lt;ShadowData&gt; obj) { shadowSVG.access()-&gt;shadow = WTFMove(obj); }
-
</del><span class="cx">     // Setters for non-inherited resources
</span><del>-    void setClipperResource(const String&amp; obj)
-    {
-        if (!(resources-&gt;clipper == obj))
-            resources.access()-&gt;clipper = obj;
-    }
</del><ins>+    void setClipperResource(const String&amp;);
+    void setMaskerResource(const String&amp;);
</ins><span class="cx"> 
</span><del>-    void setMaskerResource(const String&amp; obj)
-    {
-        if (!(resources-&gt;masker == obj))
-            resources.access()-&gt;masker = obj;
-    }
-
</del><span class="cx">     // Setters for inherited resources
</span><del>-    void setMarkerStartResource(const String&amp; obj)
-    {
-        if (!(inheritedResources-&gt;markerStart == obj))
-            inheritedResources.access()-&gt;markerStart = obj;
-    }
</del><ins>+    void setMarkerStartResource(const String&amp;);
+    void setMarkerMidResource(const String&amp;);
+    void setMarkerEndResource(const String&amp;);
</ins><span class="cx"> 
</span><del>-    void setMarkerMidResource(const String&amp; obj)
-    {
-        if (!(inheritedResources-&gt;markerMid == obj))
-            inheritedResources.access()-&gt;markerMid = obj;
-    }
-
-    void setMarkerEndResource(const String&amp; obj)
-    {
-        if (!(inheritedResources-&gt;markerEnd == obj))
-            inheritedResources.access()-&gt;markerEnd = obj;
-    }
-
</del><span class="cx">     // Read accessors for all the properties
</span><del>-    EAlignmentBaseline alignmentBaseline() const { return (EAlignmentBaseline) svg_noninherited_flags.f._alignmentBaseline; }
-    EDominantBaseline dominantBaseline() const { return (EDominantBaseline) svg_noninherited_flags.f._dominantBaseline; }
-    EBaselineShift baselineShift() const { return (EBaselineShift) svg_noninherited_flags.f._baselineShift; }
-    EVectorEffect vectorEffect() const { return (EVectorEffect) svg_noninherited_flags.f._vectorEffect; }
-    EBufferedRendering bufferedRendering() const { return (EBufferedRendering) svg_noninherited_flags.f.bufferedRendering; }
-    LineCap capStyle() const { return (LineCap) svg_inherited_flags._capStyle; }
-    WindRule clipRule() const { return (WindRule) svg_inherited_flags._clipRule; }
-    EColorInterpolation colorInterpolation() const { return (EColorInterpolation) svg_inherited_flags._colorInterpolation; }
-    EColorInterpolation colorInterpolationFilters() const { return (EColorInterpolation) svg_inherited_flags._colorInterpolationFilters; }
-    EColorRendering colorRendering() const { return (EColorRendering) svg_inherited_flags._colorRendering; }
-    WindRule fillRule() const { return (WindRule) svg_inherited_flags._fillRule; }
-    LineJoin joinStyle() const { return (LineJoin) svg_inherited_flags._joinStyle; }
-    EShapeRendering shapeRendering() const { return (EShapeRendering) svg_inherited_flags._shapeRendering; }
-    ETextAnchor textAnchor() const { return (ETextAnchor) svg_inherited_flags._textAnchor; }
-    EGlyphOrientation glyphOrientationHorizontal() const { return (EGlyphOrientation) svg_inherited_flags._glyphOrientationHorizontal; }
-    EGlyphOrientation glyphOrientationVertical() const { return (EGlyphOrientation) svg_inherited_flags._glyphOrientationVertical; }
-    float fillOpacity() const { return fill-&gt;opacity; }
-    const SVGPaintType&amp; fillPaintType() const { return fill-&gt;paintType; }
-    const Color&amp; fillPaintColor() const { return fill-&gt;paintColor; }
-    const String&amp; fillPaintUri() const { return fill-&gt;paintUri; }    
-    float strokeOpacity() const { return stroke-&gt;opacity; }
-    const SVGPaintType&amp; strokePaintType() const { return stroke-&gt;paintType; }
-    const Color&amp; strokePaintColor() const { return stroke-&gt;paintColor; }
-    const String&amp; strokePaintUri() const { return stroke-&gt;paintUri; }
-    Vector&lt;SVGLengthValue&gt; strokeDashArray() const { return stroke-&gt;dashArray; }
-    float strokeMiterLimit() const { return stroke-&gt;miterLimit; }
-    const Length&amp; strokeWidth() const { return stroke-&gt;width; }
-    const Length&amp; strokeDashOffset() const { return stroke-&gt;dashOffset; }
-    SVGLengthValue kerning() const { return text-&gt;kerning; }
-    float stopOpacity() const { return stops-&gt;opacity; }
-    const Color&amp; stopColor() const { return stops-&gt;color; }
-    float floodOpacity() const { return misc-&gt;floodOpacity; }
-    const Color&amp; floodColor() const { return misc-&gt;floodColor; }
-    const Color&amp; lightingColor() const { return misc-&gt;lightingColor; }
-    SVGLengthValue baselineShiftValue() const { return misc-&gt;baselineShiftValue; }
-    ShadowData* shadow() const { return shadowSVG-&gt;shadow.get(); }
-    const Length&amp; cx() const { return layout-&gt;cx; }
-    const Length&amp; cy() const { return layout-&gt;cy; }
-    const Length&amp; r() const { return layout-&gt;r; }
-    const Length&amp; rx() const { return layout-&gt;rx; }
-    const Length&amp; ry() const { return layout-&gt;ry; }
-    const Length&amp; x() const { return layout-&gt;x; }
-    const Length&amp; y() const { return layout-&gt;y; }
-    String clipperResource() const { return resources-&gt;clipper; }
-    String maskerResource() const { return resources-&gt;masker; }
-    String markerStartResource() const { return inheritedResources-&gt;markerStart; }
-    String markerMidResource() const { return inheritedResources-&gt;markerMid; }
-    String markerEndResource() const { return inheritedResources-&gt;markerEnd; }
-    EMaskType maskType() const { return (EMaskType) svg_noninherited_flags.f.maskType; }
-    PaintOrder paintOrder() const { return (PaintOrder) svg_inherited_flags.paintOrder; }
</del><ins>+    EAlignmentBaseline alignmentBaseline() const { return (EAlignmentBaseline) m_nonInheritedFlags.flagBits.alignmentBaseline; }
+    EDominantBaseline dominantBaseline() const { return (EDominantBaseline) m_nonInheritedFlags.flagBits.dominantBaseline; }
+    EBaselineShift baselineShift() const { return (EBaselineShift) m_nonInheritedFlags.flagBits.baselineShift; }
+    EVectorEffect vectorEffect() const { return (EVectorEffect) m_nonInheritedFlags.flagBits.vectorEffect; }
+    EBufferedRendering bufferedRendering() const { return (EBufferedRendering) m_nonInheritedFlags.flagBits.bufferedRendering; }
+    LineCap capStyle() const { return (LineCap) m_inheritedFlags.capStyle; }
+    WindRule clipRule() const { return (WindRule) m_inheritedFlags.clipRule; }
+    EColorInterpolation colorInterpolation() const { return (EColorInterpolation) m_inheritedFlags.colorInterpolation; }
+    EColorInterpolation colorInterpolationFilters() const { return (EColorInterpolation) m_inheritedFlags.colorInterpolationFilters; }
+    EColorRendering colorRendering() const { return (EColorRendering) m_inheritedFlags.colorRendering; }
+    WindRule fillRule() const { return (WindRule) m_inheritedFlags.fillRule; }
+    LineJoin joinStyle() const { return (LineJoin) m_inheritedFlags.joinStyle; }
+    EShapeRendering shapeRendering() const { return (EShapeRendering) m_inheritedFlags.shapeRendering; }
+    ETextAnchor textAnchor() const { return (ETextAnchor) m_inheritedFlags.textAnchor; }
+    EGlyphOrientation glyphOrientationHorizontal() const { return (EGlyphOrientation) m_inheritedFlags.glyphOrientationHorizontal; }
+    EGlyphOrientation glyphOrientationVertical() const { return (EGlyphOrientation) m_inheritedFlags.glyphOrientationVertical; }
+    float fillOpacity() const { return m_fillData-&gt;opacity; }
+    const SVGPaintType&amp; fillPaintType() const { return m_fillData-&gt;paintType; }
+    const Color&amp; fillPaintColor() const { return m_fillData-&gt;paintColor; }
+    const String&amp; fillPaintUri() const { return m_fillData-&gt;paintUri; }    
+    float strokeOpacity() const { return m_strokeData-&gt;opacity; }
+    const SVGPaintType&amp; strokePaintType() const { return m_strokeData-&gt;paintType; }
+    const Color&amp; strokePaintColor() const { return m_strokeData-&gt;paintColor; }
+    const String&amp; strokePaintUri() const { return m_strokeData-&gt;paintUri; }
+    Vector&lt;SVGLengthValue&gt; strokeDashArray() const { return m_strokeData-&gt;dashArray; }
+    float strokeMiterLimit() const { return m_strokeData-&gt;miterLimit; }
+    const Length&amp; strokeWidth() const { return m_strokeData-&gt;width; }
+    const Length&amp; strokeDashOffset() const { return m_strokeData-&gt;dashOffset; }
+    SVGLengthValue kerning() const { return m_textData-&gt;kerning; }
+    float stopOpacity() const { return m_stopData-&gt;opacity; }
+    const Color&amp; stopColor() const { return m_stopData-&gt;color; }
+    float floodOpacity() const { return m_miscData-&gt;floodOpacity; }
+    const Color&amp; floodColor() const { return m_miscData-&gt;floodColor; }
+    const Color&amp; lightingColor() const { return m_miscData-&gt;lightingColor; }
+    SVGLengthValue baselineShiftValue() const { return m_miscData-&gt;baselineShiftValue; }
+    ShadowData* shadow() const { return m_shadowData-&gt;shadow.get(); }
+    const Length&amp; cx() const { return m_layoutData-&gt;cx; }
+    const Length&amp; cy() const { return m_layoutData-&gt;cy; }
+    const Length&amp; r() const { return m_layoutData-&gt;r; }
+    const Length&amp; rx() const { return m_layoutData-&gt;rx; }
+    const Length&amp; ry() const { return m_layoutData-&gt;ry; }
+    const Length&amp; x() const { return m_layoutData-&gt;x; }
+    const Length&amp; y() const { return m_layoutData-&gt;y; }
+    const String&amp; clipperResource() const { return m_nonInheritedResourceData-&gt;clipper; }
+    const String&amp; maskerResource() const { return m_nonInheritedResourceData-&gt;masker; }
+    const String&amp; markerStartResource() const { return m_inheritedResourceData-&gt;markerStart; }
+    const String&amp; markerMidResource() const { return m_inheritedResourceData-&gt;markerMid; }
+    const String&amp; markerEndResource() const { return m_inheritedResourceData-&gt;markerEnd; }
+    EMaskType maskType() const { return (EMaskType) m_nonInheritedFlags.flagBits.maskType; }
+    PaintOrder paintOrder() const { return (PaintOrder) m_inheritedFlags.paintOrder; }
</ins><span class="cx">     Vector&lt;PaintType, 3&gt; paintTypesForPaintOrder() const;
</span><span class="cx"> 
</span><del>-    const SVGPaintType&amp; visitedLinkFillPaintType() const { return fill-&gt;visitedLinkPaintType; }
-    const Color&amp; visitedLinkFillPaintColor() const { return fill-&gt;visitedLinkPaintColor; }
-    const String&amp; visitedLinkFillPaintUri() const { return fill-&gt;visitedLinkPaintUri; }
-    const SVGPaintType&amp; visitedLinkStrokePaintType() const { return stroke-&gt;visitedLinkPaintType; }
-    const Color&amp; visitedLinkStrokePaintColor() const { return stroke-&gt;visitedLinkPaintColor; }
-    const String&amp; visitedLinkStrokePaintUri() const { return stroke-&gt;visitedLinkPaintUri; }
</del><ins>+    const SVGPaintType&amp; visitedLinkFillPaintType() const { return m_fillData-&gt;visitedLinkPaintType; }
+    const Color&amp; visitedLinkFillPaintColor() const { return m_fillData-&gt;visitedLinkPaintColor; }
+    const String&amp; visitedLinkFillPaintUri() const { return m_fillData-&gt;visitedLinkPaintUri; }
+    const SVGPaintType&amp; visitedLinkStrokePaintType() const { return m_strokeData-&gt;visitedLinkPaintType; }
+    const Color&amp; visitedLinkStrokePaintColor() const { return m_strokeData-&gt;visitedLinkPaintColor; }
+    const String&amp; visitedLinkStrokePaintUri() const { return m_strokeData-&gt;visitedLinkPaintUri; }
</ins><span class="cx"> 
</span><span class="cx">     // convenience
</span><span class="cx">     bool hasClipper() const { return !clipperResource().isEmpty(); }
</span><span class="lines">@@ -383,107 +213,311 @@
</span><span class="cx">     bool hasFill() const { return fillPaintType() != SVG_PAINTTYPE_NONE; }
</span><span class="cx">     bool isolatesBlending() const { return hasMasker() || shadow(); }
</span><span class="cx"> 
</span><del>-protected:
-    // inherit
</del><ins>+private:
+    SVGRenderStyle();
+    SVGRenderStyle(const SVGRenderStyle&amp;);
+
+    enum CreateDefaultType { CreateDefault };
+    SVGRenderStyle(CreateDefaultType); // Used to create the default style.
+
+    void setBitDefaults();
+
</ins><span class="cx">     struct InheritedFlags {
</span><del>-        bool operator==(const InheritedFlags&amp; other) const
-        {
-            return (_colorRendering == other._colorRendering)
-                &amp;&amp; (_shapeRendering == other._shapeRendering)
-                &amp;&amp; (_clipRule == other._clipRule)
-                &amp;&amp; (_fillRule == other._fillRule)
-                &amp;&amp; (_capStyle == other._capStyle)
-                &amp;&amp; (_joinStyle == other._joinStyle)
-                &amp;&amp; (_textAnchor == other._textAnchor)
-                &amp;&amp; (_colorInterpolation == other._colorInterpolation)
-                &amp;&amp; (_colorInterpolationFilters == other._colorInterpolationFilters)
-                &amp;&amp; (_glyphOrientationHorizontal == other._glyphOrientationHorizontal)
-                &amp;&amp; (_glyphOrientationVertical == other._glyphOrientationVertical)
-                &amp;&amp; (paintOrder == other.paintOrder);
-        }
</del><ins>+        bool operator==(const InheritedFlags&amp;) const;
+        bool operator!=(const InheritedFlags&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><del>-        bool operator!=(const InheritedFlags&amp; other) const
-        {
-            return !(*this == other);
-        }
-
-        unsigned _colorRendering : 2; // EColorRendering
-        unsigned _shapeRendering : 2; // EShapeRendering 
-        unsigned _clipRule : 1; // WindRule
-        unsigned _fillRule : 1; // WindRule
-        unsigned _capStyle : 2; // LineCap
-        unsigned _joinStyle : 2; // LineJoin
-        unsigned _textAnchor : 2; // ETextAnchor
-        unsigned _colorInterpolation : 2; // EColorInterpolation
-        unsigned _colorInterpolationFilters : 2; // EColorInterpolation
-        unsigned _glyphOrientationHorizontal : 3; // EGlyphOrientation
-        unsigned _glyphOrientationVertical : 3; // EGlyphOrientation
</del><ins>+        unsigned colorRendering : 2; // EColorRendering
+        unsigned shapeRendering : 2; // EShapeRendering
+        unsigned clipRule : 1; // WindRule
+        unsigned fillRule : 1; // WindRule
+        unsigned capStyle : 2; // LineCap
+        unsigned joinStyle : 2; // LineJoin
+        unsigned textAnchor : 2; // ETextAnchor
+        unsigned colorInterpolation : 2; // EColorInterpolation
+        unsigned colorInterpolationFilters : 2; // EColorInterpolation
+        unsigned glyphOrientationHorizontal : 3; // EGlyphOrientation
+        unsigned glyphOrientationVertical : 3; // EGlyphOrientation
</ins><span class="cx">         unsigned paintOrder : 3; // PaintOrder
</span><del>-    } svg_inherited_flags;
</del><ins>+    };
</ins><span class="cx"> 
</span><del>-    // don't inherit
</del><span class="cx">     struct NonInheritedFlags {
</span><span class="cx">         // 32 bit non-inherited, don't add to the struct, or the operator will break.
</span><del>-        bool operator==(const NonInheritedFlags &amp;other) const { return _niflags == other._niflags; }
-        bool operator!=(const NonInheritedFlags &amp;other) const { return _niflags != other._niflags; }
</del><ins>+        bool operator==(const NonInheritedFlags&amp; other) const { return flags == other.flags; }
+        bool operator!=(const NonInheritedFlags&amp; other) const { return flags != other.flags; }
</ins><span class="cx"> 
</span><span class="cx">         union {
</span><span class="cx">             struct {
</span><del>-                unsigned _alignmentBaseline : 4; // EAlignmentBaseline 
-                unsigned _dominantBaseline : 4; // EDominantBaseline
-                unsigned _baselineShift : 2; // EBaselineShift
-                unsigned _vectorEffect: 1; // EVectorEffect
</del><ins>+                unsigned alignmentBaseline : 4; // EAlignmentBaseline
+                unsigned dominantBaseline : 4; // EDominantBaseline
+                unsigned baselineShift : 2; // EBaselineShift
+                unsigned vectorEffect: 1; // EVectorEffect
</ins><span class="cx">                 unsigned bufferedRendering: 2; // EBufferedRendering
</span><span class="cx">                 unsigned maskType: 1; // EMaskType
</span><span class="cx">                 // 18 bits unused
</span><del>-            } f;
-            uint32_t _niflags;
</del><ins>+            } flagBits;
+            uint32_t flags;
</ins><span class="cx">         };
</span><del>-    } svg_noninherited_flags;
</del><ins>+    };
</ins><span class="cx"> 
</span><ins>+    InheritedFlags m_inheritedFlags;
+    NonInheritedFlags m_nonInheritedFlags;
+
</ins><span class="cx">     // inherited attributes
</span><del>-    DataRef&lt;StyleFillData&gt; fill;
-    DataRef&lt;StyleStrokeData&gt; stroke;
-    DataRef&lt;StyleTextData&gt; text;
-    DataRef&lt;StyleInheritedResourceData&gt; inheritedResources;
</del><ins>+    DataRef&lt;StyleFillData&gt; m_fillData;
+    DataRef&lt;StyleStrokeData&gt; m_strokeData;
+    DataRef&lt;StyleTextData&gt; m_textData;
+    DataRef&lt;StyleInheritedResourceData&gt; m_inheritedResourceData;
</ins><span class="cx"> 
</span><span class="cx">     // non-inherited attributes
</span><del>-    DataRef&lt;StyleStopData&gt; stops;
-    DataRef&lt;StyleMiscData&gt; misc;
-    DataRef&lt;StyleShadowSVGData&gt; shadowSVG;
-    DataRef&lt;StyleLayoutData&gt; layout;
-    DataRef&lt;StyleResourceData&gt; resources;
</del><ins>+    DataRef&lt;StyleStopData&gt; m_stopData;
+    DataRef&lt;StyleMiscData&gt; m_miscData;
+    DataRef&lt;StyleShadowSVGData&gt; m_shadowData;
+    DataRef&lt;StyleLayoutData&gt; m_layoutData;
+    DataRef&lt;StyleResourceData&gt; m_nonInheritedResourceData;
+};
</ins><span class="cx"> 
</span><del>-private:
-    enum CreateDefaultType { CreateDefault };
-        
-    SVGRenderStyle();
-    SVGRenderStyle(const SVGRenderStyle&amp;);
-    SVGRenderStyle(CreateDefaultType); // Used to create the default style.
</del><ins>+inline SVGLengthValue SVGRenderStyle::initialBaselineShiftValue()
+{
+    SVGLengthValue length;
+    length.newValueSpecifiedUnits(LengthTypeNumber, 0);
+    return length;
+}
</ins><span class="cx"> 
</span><del>-    void setBitDefaults()
-    {
-        svg_inherited_flags._clipRule = initialClipRule();
-        svg_inherited_flags._colorRendering = initialColorRendering();
-        svg_inherited_flags._fillRule = initialFillRule();
-        svg_inherited_flags._shapeRendering = initialShapeRendering();
-        svg_inherited_flags._textAnchor = initialTextAnchor();
-        svg_inherited_flags._capStyle = initialCapStyle();
-        svg_inherited_flags._joinStyle = initialJoinStyle();
-        svg_inherited_flags._colorInterpolation = initialColorInterpolation();
-        svg_inherited_flags._colorInterpolationFilters = initialColorInterpolationFilters();
-        svg_inherited_flags._glyphOrientationHorizontal = initialGlyphOrientationHorizontal();
-        svg_inherited_flags._glyphOrientationVertical = initialGlyphOrientationVertical();
-        svg_inherited_flags.paintOrder = initialPaintOrder();
</del><ins>+inline SVGLengthValue SVGRenderStyle::initialKerning()
+{
+    SVGLengthValue length;
+    length.newValueSpecifiedUnits(LengthTypeNumber, 0);
+    return length;
+}
</ins><span class="cx"> 
</span><del>-        svg_noninherited_flags._niflags = 0;
-        svg_noninherited_flags.f._alignmentBaseline = initialAlignmentBaseline();
-        svg_noninherited_flags.f._dominantBaseline = initialDominantBaseline();
-        svg_noninherited_flags.f._baselineShift = initialBaselineShift();
-        svg_noninherited_flags.f._vectorEffect = initialVectorEffect();
-        svg_noninherited_flags.f.bufferedRendering = initialBufferedRendering();
-        svg_noninherited_flags.f.maskType = initialMaskType();
</del><ins>+inline void SVGRenderStyle::setCx(const Length&amp; length)
+{
+    if (!(m_layoutData-&gt;cx == length))
+        m_layoutData.access().cx = length;
+}
+
+inline void SVGRenderStyle::setCy(const Length&amp; length)
+{
+    if (!(m_layoutData-&gt;cy == length))
+        m_layoutData.access().cy = length;
+}
+
+inline void SVGRenderStyle::setR(const Length&amp; length)
+{
+    if (!(m_layoutData-&gt;r == length))
+        m_layoutData.access().r = length;
+}
+
+inline void SVGRenderStyle::setRx(const Length&amp; length)
+{
+    if (!(m_layoutData-&gt;rx == length))
+        m_layoutData.access().rx = length;
+}
+
+inline void SVGRenderStyle::setRy(const Length&amp; length)
+{
+    if (!(m_layoutData-&gt;ry == length))
+        m_layoutData.access().ry = length;
+}
+
+inline void SVGRenderStyle::setX(const Length&amp; length)
+{
+    if (!(m_layoutData-&gt;x == length))
+        m_layoutData.access().x = length;
+}
+
+inline void SVGRenderStyle::setY(const Length&amp; length)
+{
+    if (!(m_layoutData-&gt;y == length))
+        m_layoutData.access().y = length;
+}
+
+inline void SVGRenderStyle::setFillOpacity(float opacity)
+{
+    if (!(m_fillData-&gt;opacity == opacity))
+        m_fillData.access().opacity = opacity;
+}
+
+inline void SVGRenderStyle::setFillPaint(SVGPaintType type, const Color&amp; color, const String&amp; uri, bool applyToRegularStyle, bool applyToVisitedLinkStyle)
+{
+    if (applyToRegularStyle) {
+        if (!(m_fillData-&gt;paintType == type))
+            m_fillData.access().paintType = type;
+        if (!(m_fillData-&gt;paintColor == color))
+            m_fillData.access().paintColor = color;
+        if (!(m_fillData-&gt;paintUri == uri))
+            m_fillData.access().paintUri = uri;
</ins><span class="cx">     }
</span><del>-};
</del><ins>+    if (applyToVisitedLinkStyle) {
+        if (!(m_fillData-&gt;visitedLinkPaintType == type))
+            m_fillData.access().visitedLinkPaintType = type;
+        if (!(m_fillData-&gt;visitedLinkPaintColor == color))
+            m_fillData.access().visitedLinkPaintColor = color;
+        if (!(m_fillData-&gt;visitedLinkPaintUri == uri))
+            m_fillData.access().visitedLinkPaintUri = uri;
+    }
+}
</ins><span class="cx"> 
</span><ins>+inline void SVGRenderStyle::setStrokeOpacity(float opacity)
+{
+    if (!(m_strokeData-&gt;opacity == opacity))
+        m_strokeData.access().opacity = opacity;
+}
+
+inline void SVGRenderStyle::setStrokePaint(SVGPaintType type, const Color&amp; color, const String&amp; uri, bool applyToRegularStyle, bool applyToVisitedLinkStyle)
+{
+    if (applyToRegularStyle) {
+        if (!(m_strokeData-&gt;paintType == type))
+            m_strokeData.access().paintType = type;
+        if (!(m_strokeData-&gt;paintColor == color))
+            m_strokeData.access().paintColor = color;
+        if (!(m_strokeData-&gt;paintUri == uri))
+            m_strokeData.access().paintUri = uri;
+    }
+    if (applyToVisitedLinkStyle) {
+        if (!(m_strokeData-&gt;visitedLinkPaintType == type))
+            m_strokeData.access().visitedLinkPaintType = type;
+        if (!(m_strokeData-&gt;visitedLinkPaintColor == color))
+            m_strokeData.access().visitedLinkPaintColor = color;
+        if (!(m_strokeData-&gt;visitedLinkPaintUri == uri))
+            m_strokeData.access().visitedLinkPaintUri = uri;
+    }
+}
+
+inline void SVGRenderStyle::setStrokeDashArray(const Vector&lt;SVGLengthValue&gt;&amp; array)
+{
+    if (!(m_strokeData-&gt;dashArray == array))
+        m_strokeData.access().dashArray = array;
+}
+
+inline void SVGRenderStyle::setStrokeMiterLimit(float limit)
+{
+    if (!(m_strokeData-&gt;miterLimit == limit))
+        m_strokeData.access().miterLimit = limit;
+}
+
+inline void SVGRenderStyle::setStrokeWidth(const Length&amp; width)
+{
+    if (!(m_strokeData-&gt;width == width))
+        m_strokeData.access().width = width;
+}
+
+inline void SVGRenderStyle::setStrokeDashOffset(const Length&amp; offset)
+{
+    if (!(m_strokeData-&gt;dashOffset == offset))
+        m_strokeData.access().dashOffset = offset;
+}
+
+inline void SVGRenderStyle::setKerning(const SVGLengthValue&amp; kerning)
+{
+    if (!(m_textData-&gt;kerning == kerning))
+        m_textData.access().kerning = kerning;
+}
+
+inline void SVGRenderStyle::setStopOpacity(float opacity)
+{
+    if (!(m_stopData-&gt;opacity == opacity))
+        m_stopData.access().opacity = opacity;
+}
+
+inline void SVGRenderStyle::setStopColor(const Color&amp; color)
+{
+    if (!(m_stopData-&gt;color == color))
+        m_stopData.access().color = color;
+}
+
+inline void SVGRenderStyle::setFloodOpacity(float opacity)
+{
+    if (!(m_miscData-&gt;floodOpacity == opacity))
+        m_miscData.access().floodOpacity = opacity;
+}
+
+inline void SVGRenderStyle::setFloodColor(const Color&amp; color)
+{
+    if (!(m_miscData-&gt;floodColor == color))
+        m_miscData.access().floodColor = color;
+}
+
+inline void SVGRenderStyle::setLightingColor(const Color&amp; color)
+{
+    if (!(m_miscData-&gt;lightingColor == color))
+        m_miscData.access().lightingColor = color;
+}
+
+inline void SVGRenderStyle::setBaselineShiftValue(const SVGLengthValue&amp; shiftValue)
+{
+    if (!(m_miscData-&gt;baselineShiftValue == shiftValue))
+        m_miscData.access().baselineShiftValue = shiftValue;
+}
+
+inline void SVGRenderStyle::setClipperResource(const String&amp; resource)
+{
+    if (!(m_nonInheritedResourceData-&gt;clipper == resource))
+        m_nonInheritedResourceData.access().clipper = resource;
+}
+
+inline void SVGRenderStyle::setMaskerResource(const String&amp; resource)
+{
+    if (!(m_nonInheritedResourceData-&gt;masker == resource))
+        m_nonInheritedResourceData.access().masker = resource;
+}
+
+inline void SVGRenderStyle::setMarkerStartResource(const String&amp; resource)
+{
+    if (!(m_inheritedResourceData-&gt;markerStart == resource))
+        m_inheritedResourceData.access().markerStart = resource;
+}
+
+inline void SVGRenderStyle::setMarkerMidResource(const String&amp; resource)
+{
+    if (!(m_inheritedResourceData-&gt;markerMid == resource))
+        m_inheritedResourceData.access().markerMid = resource;
+}
+
+inline void SVGRenderStyle::setMarkerEndResource(const String&amp; resource)
+{
+    if (!(m_inheritedResourceData-&gt;markerEnd == resource))
+        m_inheritedResourceData.access().markerEnd = resource;
+}
+
+inline void SVGRenderStyle::setBitDefaults()
+{
+    m_inheritedFlags.clipRule = initialClipRule();
+    m_inheritedFlags.colorRendering = initialColorRendering();
+    m_inheritedFlags.fillRule = initialFillRule();
+    m_inheritedFlags.shapeRendering = initialShapeRendering();
+    m_inheritedFlags.textAnchor = initialTextAnchor();
+    m_inheritedFlags.capStyle = initialCapStyle();
+    m_inheritedFlags.joinStyle = initialJoinStyle();
+    m_inheritedFlags.colorInterpolation = initialColorInterpolation();
+    m_inheritedFlags.colorInterpolationFilters = initialColorInterpolationFilters();
+    m_inheritedFlags.glyphOrientationHorizontal = initialGlyphOrientationHorizontal();
+    m_inheritedFlags.glyphOrientationVertical = initialGlyphOrientationVertical();
+    m_inheritedFlags.paintOrder = initialPaintOrder();
+
+    m_nonInheritedFlags.flags = 0;
+    m_nonInheritedFlags.flagBits.alignmentBaseline = initialAlignmentBaseline();
+    m_nonInheritedFlags.flagBits.dominantBaseline = initialDominantBaseline();
+    m_nonInheritedFlags.flagBits.baselineShift = initialBaselineShift();
+    m_nonInheritedFlags.flagBits.vectorEffect = initialVectorEffect();
+    m_nonInheritedFlags.flagBits.bufferedRendering = initialBufferedRendering();
+    m_nonInheritedFlags.flagBits.maskType = initialMaskType();
+}
+
+inline bool SVGRenderStyle::InheritedFlags::operator==(const InheritedFlags&amp; other) const
+{
+    return colorRendering == other.colorRendering
+        &amp;&amp; shapeRendering == other.shapeRendering
+        &amp;&amp; clipRule == other.clipRule
+        &amp;&amp; fillRule == other.fillRule
+        &amp;&amp; capStyle == other.capStyle
+        &amp;&amp; joinStyle == other.joinStyle
+        &amp;&amp; textAnchor == other.textAnchor
+        &amp;&amp; colorInterpolation == other.colorInterpolation
+        &amp;&amp; colorInterpolationFilters == other.colorInterpolationFilters
+        &amp;&amp; glyphOrientationHorizontal == other.glyphOrientationHorizontal
+        &amp;&amp; glyphOrientationVertical == other.glyphOrientationVertical
+        &amp;&amp; paintOrder == other.paintOrder;
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleShapeValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/ShapeValue.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/ShapeValue.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/ShapeValue.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> 
</span><span class="cx"> class ShapeValue : public RefCounted&lt;ShapeValue&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;ShapeValue&gt; create(RefPtr&lt;BasicShape&gt;&amp;&amp; shape, CSSBoxType cssBox)
</del><ins>+    static Ref&lt;ShapeValue&gt; create(Ref&lt;BasicShape&gt;&amp;&amp; shape, CSSBoxType cssBox)
</ins><span class="cx">     {
</span><span class="cx">         return adoptRef(*new ShapeValue(WTFMove(shape), cssBox));
</span><span class="cx">     }
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">         return adoptRef(*new ShapeValue(boxShape));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static Ref&lt;ShapeValue&gt; create(RefPtr&lt;StyleImage&gt;&amp;&amp; image)
</del><ins>+    static Ref&lt;ShapeValue&gt; create(Ref&lt;StyleImage&gt;&amp;&amp; image)
</ins><span class="cx">     {
</span><span class="cx">         return adoptRef(*new ShapeValue(WTFMove(image)));
</span><span class="cx">     }
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    ShapeValue(RefPtr&lt;BasicShape&gt;&amp;&amp; shape, CSSBoxType cssBox)
</del><ins>+    ShapeValue(Ref&lt;BasicShape&gt;&amp;&amp; shape, CSSBoxType cssBox)
</ins><span class="cx">         : m_type(Type::Shape)
</span><span class="cx">         , m_shape(WTFMove(shape))
</span><span class="cx">         , m_cssBox(cssBox)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    explicit ShapeValue(RefPtr&lt;StyleImage&gt;&amp;&amp; image)
</del><ins>+    explicit ShapeValue(Ref&lt;StyleImage&gt;&amp;&amp; image)
</ins><span class="cx">         : m_type(Type::Image)
</span><span class="cx">         , m_image(WTFMove(image))
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleBackgroundDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleBackgroundData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleBackgroundData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleBackgroundData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -28,16 +28,16 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleBackgroundData::StyleBackgroundData()
</span><del>-    : m_background(BackgroundFillLayer)
-    , m_color(RenderStyle::initialBackgroundColor())
</del><ins>+    : background(BackgroundFillLayer)
+    , color(RenderStyle::initialBackgroundColor())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline StyleBackgroundData::StyleBackgroundData(const StyleBackgroundData&amp; o)
</del><ins>+inline StyleBackgroundData::StyleBackgroundData(const StyleBackgroundData&amp; other)
</ins><span class="cx">     : RefCounted&lt;StyleBackgroundData&gt;()
</span><del>-    , m_background(o.m_background)
-    , m_color(o.m_color)
-    , m_outline(o.m_outline)
</del><ins>+    , background(other.background)
+    , color(other.color)
+    , outline(other.outline)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -46,18 +46,18 @@
</span><span class="cx">     return adoptRef(*new StyleBackgroundData(*this));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool StyleBackgroundData::operator==(const StyleBackgroundData&amp; o) const
</del><ins>+bool StyleBackgroundData::operator==(const StyleBackgroundData&amp; other) const
</ins><span class="cx"> {
</span><del>-    return m_background == o.m_background &amp;&amp; m_color == o.m_color &amp;&amp; m_outline == o.m_outline;
</del><ins>+    return background == other.background &amp;&amp; color == other.color &amp;&amp; outline == other.outline;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleBackgroundData::isEquivalentForPainting(const StyleBackgroundData&amp; other) const
</span><span class="cx"> {
</span><del>-    if (m_background != other.m_background || m_color != other.m_color)
</del><ins>+    if (background != other.background || color != other.color)
</ins><span class="cx">         return false;
</span><del>-    if (!m_outline.isVisible() &amp;&amp; !other.m_outline.isVisible())
</del><ins>+    if (!outline.isVisible() &amp;&amp; !other.outline.isVisible())
</ins><span class="cx">         return true;
</span><del>-    return m_outline == other.m_outline;
</del><ins>+    return outline == other.outline;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleBackgroundDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleBackgroundData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleBackgroundData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleBackgroundData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 2000 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Dirk Mueller (mueller@kde.org)
</span><del>- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -36,29 +36,19 @@
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;StyleBackgroundData&gt; create() { return adoptRef(*new StyleBackgroundData); }
</span><span class="cx">     Ref&lt;StyleBackgroundData&gt; copy() const;
</span><del>-    ~StyleBackgroundData() { }
</del><span class="cx"> 
</span><del>-    bool operator==(const StyleBackgroundData&amp; o) const;
-    bool operator!=(const StyleBackgroundData&amp; o) const
-    {
-        return !(*this == o);
-    }
</del><ins>+    bool operator==(const StyleBackgroundData&amp;) const;
+    bool operator!=(const StyleBackgroundData&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><span class="cx">     bool isEquivalentForPainting(const StyleBackgroundData&amp;) const;
</span><span class="cx"> 
</span><del>-    const FillLayer&amp; background() const { return m_background; }
-    const Color&amp; color() const { return m_color; }
-    const OutlineValue&amp; outline() const { return m_outline; }
</del><ins>+    FillLayer background;
+    Color color;
+    OutlineValue outline;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    friend class RenderStyle;
-
</del><span class="cx">     StyleBackgroundData();
</span><del>-    StyleBackgroundData(const StyleBackgroundData&amp;); 
-
-    FillLayer m_background;
-    Color m_color;
-    OutlineValue m_outline;
</del><ins>+    StyleBackgroundData(const StyleBackgroundData&amp;);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleCachedImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;CSSValue&gt; StyleCachedImage::cssValue() const
</span><span class="cx"> {
</span><del>-    return const_cast&lt;CSSValue&amp;&gt;(m_cssValue.get());
</del><ins>+    return m_cssValue.copyRef();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleCachedImage::canRender(const RenderElement* renderer, float multiplier) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleCustomPropertyDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleCustomPropertyData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleCustomPropertyData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleCustomPropertyData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -35,50 +35,41 @@
</span><span class="cx">     static Ref&lt;StyleCustomPropertyData&gt; create() { return adoptRef(*new StyleCustomPropertyData); }
</span><span class="cx">     Ref&lt;StyleCustomPropertyData&gt; copy() const { return adoptRef(*new StyleCustomPropertyData(*this)); }
</span><span class="cx">     
</span><del>-    bool operator==(const StyleCustomPropertyData&amp; o) const
</del><ins>+    bool operator==(const StyleCustomPropertyData&amp; other) const
</ins><span class="cx">     {
</span><del>-        if (m_containsVariables != o.m_containsVariables)
</del><ins>+        if (containsVariables != other.containsVariables)
</ins><span class="cx">             return false;
</span><del>-        
-        if (m_values.size() != o.m_values.size())
</del><ins>+
+        if (values.size() != other.values.size())
</ins><span class="cx">             return false;
</span><del>-        
-        for (WTF::KeyValuePair&lt;AtomicString, RefPtr&lt;CSSCustomPropertyValue&gt;&gt; entry : m_values) {
-            RefPtr&lt;CSSCustomPropertyValue&gt; other = o.m_values.get(entry.key);
-            if (!other || !entry.value-&gt;equals(*other))
</del><ins>+
+        for (auto&amp; entry : values) {
+            auto otherEntry = other.values.find(entry.key);
+            if (otherEntry == other.values.end() || !entry.value-&gt;equals(*otherEntry-&gt;value))
</ins><span class="cx">                 return false;
</span><span class="cx">         }
</span><ins>+
</ins><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool operator!=(const StyleCustomPropertyData &amp;o) const { return !(*this == o); }
</del><ins>+    bool operator!=(const StyleCustomPropertyData&amp; other) const { return !(*this == other); }
</ins><span class="cx">     
</span><del>-    void setCustomPropertyValue(const AtomicString&amp; name, const RefPtr&lt;CSSCustomPropertyValue&gt;&amp; value)
</del><ins>+    void setCustomPropertyValue(const AtomicString&amp; name, Ref&lt;CSSCustomPropertyValue&gt;&amp;&amp; value)
</ins><span class="cx">     {
</span><del>-        m_values.set(name, value);
</del><span class="cx">         if (value-&gt;containsVariables())
</span><del>-            m_containsVariables = true;
</del><ins>+            containsVariables = true;
+        values.set(name, WTFMove(value));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CSSCustomPropertyValue&gt; getCustomPropertyValue(const AtomicString&amp; name) const { return m_values.get(name); }
-    CustomPropertyValueMap&amp; values() { return m_values; }
-    
-    bool hasCustomProperty(const AtomicString&amp; name) const { return m_values.contains(name); }
-    
-    bool containsVariables() const { return m_containsVariables; }
-    void setContainsVariables(bool containsVariables) { m_containsVariables = containsVariables; }
</del><ins>+    CustomPropertyValueMap values;
+    bool containsVariables { false };
</ins><span class="cx"> 
</span><del>-    CustomPropertyValueMap m_values;
-    bool m_containsVariables { false };
-
</del><span class="cx"> private:
</span><del>-    explicit StyleCustomPropertyData()
-        : RefCounted&lt;StyleCustomPropertyData&gt;()
-    { }
</del><ins>+    StyleCustomPropertyData() = default;
</ins><span class="cx">     StyleCustomPropertyData(const StyleCustomPropertyData&amp; other)
</span><span class="cx">         : RefCounted&lt;StyleCustomPropertyData&gt;()
</span><del>-        , m_values(CustomPropertyValueMap(other.m_values))
-        , m_containsVariables(other.m_containsVariables)
</del><ins>+        , values(other.values)
+        , containsVariables(other.containsVariables)
</ins><span class="cx">     { }
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleDeprecatedFlexibleBoxDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> 
</span><span class="cx"> StyleDeprecatedFlexibleBoxData::StyleDeprecatedFlexibleBoxData()
</span><span class="cx">     : flex(RenderStyle::initialBoxFlex())
</span><del>-    , flex_group(RenderStyle::initialBoxFlexGroup())
-    , ordinal_group(RenderStyle::initialBoxOrdinalGroup())
</del><ins>+    , flexGroup(RenderStyle::initialBoxFlexGroup())
+    , ordinalGroup(RenderStyle::initialBoxOrdinalGroup())
</ins><span class="cx">     , align(RenderStyle::initialBoxAlign())
</span><span class="cx">     , pack(RenderStyle::initialBoxPack())
</span><span class="cx">     , orient(RenderStyle::initialBoxOrient())
</span><span class="lines">@@ -37,15 +37,15 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline StyleDeprecatedFlexibleBoxData::StyleDeprecatedFlexibleBoxData(const StyleDeprecatedFlexibleBoxData&amp; o)
</del><ins>+inline StyleDeprecatedFlexibleBoxData::StyleDeprecatedFlexibleBoxData(const StyleDeprecatedFlexibleBoxData&amp; other)
</ins><span class="cx">     : RefCounted&lt;StyleDeprecatedFlexibleBoxData&gt;()
</span><del>-    , flex(o.flex)
-    , flex_group(o.flex_group)
-    , ordinal_group(o.ordinal_group)
-    , align(o.align)
-    , pack(o.pack)
-    , orient(o.orient)
-    , lines(o.lines)
</del><ins>+    , flex(other.flex)
+    , flexGroup(other.flexGroup)
+    , ordinalGroup(other.ordinalGroup)
+    , align(other.align)
+    , pack(other.pack)
+    , orient(other.orient)
+    , lines(other.lines)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -54,11 +54,11 @@
</span><span class="cx">     return adoptRef(*new StyleDeprecatedFlexibleBoxData(*this));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool StyleDeprecatedFlexibleBoxData::operator==(const StyleDeprecatedFlexibleBoxData&amp; o) const
</del><ins>+bool StyleDeprecatedFlexibleBoxData::operator==(const StyleDeprecatedFlexibleBoxData&amp; other) const
</ins><span class="cx"> {
</span><del>-    return flex == o.flex &amp;&amp; flex_group == o.flex_group &amp;&amp;
-           ordinal_group == o.ordinal_group &amp;&amp; align == o.align &amp;&amp;
-           pack == o.pack &amp;&amp; orient == o.orient &amp;&amp; lines == o.lines;
</del><ins>+    return flex == other.flex &amp;&amp; flexGroup == other.flexGroup
+        &amp;&amp; ordinalGroup == other.ordinalGroup &amp;&amp; align == other.align
+        &amp;&amp; pack == other.pack &amp;&amp; orient == other.orient &amp;&amp; lines == other.lines;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleDeprecatedFlexibleBoxDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleDeprecatedFlexibleBoxData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -35,14 +35,14 @@
</span><span class="cx">     Ref&lt;StyleDeprecatedFlexibleBoxData&gt; copy() const;
</span><span class="cx"> 
</span><span class="cx">     bool operator==(const StyleDeprecatedFlexibleBoxData&amp;) const;
</span><del>-    bool operator!=(const StyleDeprecatedFlexibleBoxData&amp; o) const
</del><ins>+    bool operator!=(const StyleDeprecatedFlexibleBoxData&amp; other) const
</ins><span class="cx">     {
</span><del>-        return !(*this == o);
</del><ins>+        return !(*this == other);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     float flex;
</span><del>-    unsigned int flex_group;
-    unsigned int ordinal_group;
</del><ins>+    unsigned flexGroup;
+    unsigned ordinalGroup;
</ins><span class="cx"> 
</span><span class="cx">     unsigned align : 3; // EBoxAlignment
</span><span class="cx">     unsigned pack: 2; // EBoxPack
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleFilterDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleFilterData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleFilterData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleFilterData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -26,19 +26,15 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;StyleFilterData.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;FEGaussianBlur.h&quot;
-#include &quot;RenderStyle.h&quot;
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleFilterData::StyleFilterData()
</span><del>-    : m_operations()
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline StyleFilterData::StyleFilterData(const StyleFilterData&amp; o)
</del><ins>+inline StyleFilterData::StyleFilterData(const StyleFilterData&amp; other)
</ins><span class="cx">     : RefCounted&lt;StyleFilterData&gt;()
</span><del>-    , m_operations(o.m_operations)
</del><ins>+    , operations(other.operations)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -47,9 +43,9 @@
</span><span class="cx">     return adoptRef(*new StyleFilterData(*this));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool StyleFilterData::operator==(const StyleFilterData&amp; o) const
</del><ins>+bool StyleFilterData::operator==(const StyleFilterData&amp; other) const
</ins><span class="cx"> {
</span><del>-    return m_operations == o.m_operations;
</del><ins>+    return operations == other.operations;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleFilterDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleFilterData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleFilterData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleFilterData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">         return !(*this == o);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    FilterOperations m_operations;
</del><ins>+    FilterOperations operations;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleFilterData();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleFlexibleBoxDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -31,21 +31,21 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleFlexibleBoxData::StyleFlexibleBoxData()
</span><del>-    : m_flexGrow(RenderStyle::initialFlexGrow())
-    , m_flexShrink(RenderStyle::initialFlexShrink())
-    , m_flexBasis(RenderStyle::initialFlexBasis())
-    , m_flexDirection(RenderStyle::initialFlexDirection())
-    , m_flexWrap(RenderStyle::initialFlexWrap())
</del><ins>+    : flexGrow(RenderStyle::initialFlexGrow())
+    , flexShrink(RenderStyle::initialFlexShrink())
+    , flexBasis(RenderStyle::initialFlexBasis())
+    , flexDirection(RenderStyle::initialFlexDirection())
+    , flexWrap(RenderStyle::initialFlexWrap())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline StyleFlexibleBoxData::StyleFlexibleBoxData(const StyleFlexibleBoxData&amp; o)
</del><ins>+inline StyleFlexibleBoxData::StyleFlexibleBoxData(const StyleFlexibleBoxData&amp; other)
</ins><span class="cx">     : RefCounted&lt;StyleFlexibleBoxData&gt;()
</span><del>-    , m_flexGrow(o.m_flexGrow)
-    , m_flexShrink(o.m_flexShrink)
-    , m_flexBasis(o.m_flexBasis)
-    , m_flexDirection(o.m_flexDirection)
-    , m_flexWrap(o.m_flexWrap)
</del><ins>+    , flexGrow(other.flexGrow)
+    , flexShrink(other.flexShrink)
+    , flexBasis(other.flexBasis)
+    , flexDirection(other.flexDirection)
+    , flexWrap(other.flexWrap)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -54,10 +54,10 @@
</span><span class="cx">     return adoptRef(*new StyleFlexibleBoxData(*this));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool StyleFlexibleBoxData::operator==(const StyleFlexibleBoxData&amp; o) const
</del><ins>+bool StyleFlexibleBoxData::operator==(const StyleFlexibleBoxData&amp; other) const
</ins><span class="cx"> {
</span><del>-    return m_flexGrow == o.m_flexGrow &amp;&amp; m_flexShrink == o.m_flexShrink &amp;&amp; m_flexBasis == o.m_flexBasis
-        &amp;&amp; m_flexDirection == o.m_flexDirection &amp;&amp; m_flexWrap == o.m_flexWrap;
</del><ins>+    return flexGrow == other.flexGrow &amp;&amp; flexShrink == other.flexShrink &amp;&amp; flexBasis == other.flexBasis
+        &amp;&amp; flexDirection == other.flexDirection &amp;&amp; flexWrap == other.flexWrap;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleFlexibleBoxDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -42,12 +42,12 @@
</span><span class="cx">         return !(*this == o);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    float m_flexGrow;
-    float m_flexShrink;
-    Length m_flexBasis;
</del><ins>+    float flexGrow;
+    float flexShrink;
+    Length flexBasis;
</ins><span class="cx"> 
</span><del>-    unsigned m_flexDirection : 2; // EFlexDirection
-    unsigned m_flexWrap : 2; // EFlexWrap
</del><ins>+    unsigned flexDirection : 2; // EFlexDirection
+    unsigned flexWrap : 2; // EFlexWrap
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleFlexibleBoxData();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleGeneratedImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;CSSValue&gt; StyleGeneratedImage::cssValue() const
</span><span class="cx"> {
</span><del>-    return const_cast&lt;CSSImageGeneratorValue&amp;&gt;(m_imageGeneratorValue.get());
</del><ins>+    return m_imageGeneratorValue.copyRef();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleGeneratedImage::isPending() const
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(renderer);
</span><span class="cx">     if (m_fixedSize) {
</span><del>-        FloatSize fixedSize = const_cast&lt;CSSImageGeneratorValue&amp;&gt;(m_imageGeneratorValue.get()).fixedSize(*renderer);
</del><ins>+        FloatSize fixedSize = m_imageGeneratorValue-&gt;fixedSize(*renderer);
</ins><span class="cx">         if (multiplier == 1.0f)
</span><span class="cx">             return fixedSize;
</span><span class="cx"> 
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> RefPtr&lt;Image&gt; StyleGeneratedImage::image(RenderElement* renderer, const FloatSize&amp; size) const
</span><span class="cx"> {
</span><span class="cx">     ASSERT(renderer);
</span><del>-    return const_cast&lt;CSSImageGeneratorValue&amp;&gt;(m_imageGeneratorValue.get()).image(*renderer, size);
</del><ins>+    return m_imageGeneratorValue-&gt;image(*renderer, size);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleGeneratedImage::knownToBeOpaque(const RenderElement* renderer) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleGridDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleGridData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleGridData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleGridData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -33,59 +33,59 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleGridData::StyleGridData()
</span><del>-    : m_gridColumns(RenderStyle::initialGridColumns())
-    , m_gridRows(RenderStyle::initialGridRows())
-    , m_namedGridColumnLines(RenderStyle::initialNamedGridColumnLines())
-    , m_namedGridRowLines(RenderStyle::initialNamedGridRowLines())
-    , m_orderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines())
-    , m_orderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines())
-    , m_autoRepeatNamedGridColumnLines(RenderStyle::initialNamedGridColumnLines())
-    , m_autoRepeatNamedGridRowLines(RenderStyle::initialNamedGridRowLines())
-    , m_autoRepeatOrderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines())
-    , m_autoRepeatOrderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines())
-    , m_gridAutoFlow(RenderStyle::initialGridAutoFlow())
-    , m_gridAutoRows(RenderStyle::initialGridAutoRows())
-    , m_gridAutoColumns(RenderStyle::initialGridAutoColumns())
-    , m_namedGridArea(RenderStyle::initialNamedGridArea())
-    , m_namedGridAreaRowCount(RenderStyle::initialNamedGridAreaCount())
-    , m_namedGridAreaColumnCount(RenderStyle::initialNamedGridAreaCount())
-    , m_gridColumnGap(RenderStyle::initialGridColumnGap())
-    , m_gridRowGap(RenderStyle::initialGridRowGap())
-    , m_gridAutoRepeatColumns(RenderStyle::initialGridAutoRepeatTracks())
-    , m_gridAutoRepeatRows(RenderStyle::initialGridAutoRepeatTracks())
-    , m_autoRepeatColumnsInsertionPoint(RenderStyle::initialGridAutoRepeatInsertionPoint())
-    , m_autoRepeatRowsInsertionPoint(RenderStyle::initialGridAutoRepeatInsertionPoint())
-    , m_autoRepeatColumnsType(RenderStyle::initialGridAutoRepeatType())
-    , m_autoRepeatRowsType(RenderStyle::initialGridAutoRepeatType())
</del><ins>+    : gridColumns(RenderStyle::initialGridColumns())
+    , gridRows(RenderStyle::initialGridRows())
+    , namedGridColumnLines(RenderStyle::initialNamedGridColumnLines())
+    , namedGridRowLines(RenderStyle::initialNamedGridRowLines())
+    , orderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines())
+    , orderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines())
+    , autoRepeatNamedGridColumnLines(RenderStyle::initialNamedGridColumnLines())
+    , autoRepeatNamedGridRowLines(RenderStyle::initialNamedGridRowLines())
+    , autoRepeatOrderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines())
+    , autoRepeatOrderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines())
+    , gridAutoFlow(RenderStyle::initialGridAutoFlow())
+    , gridAutoRows(RenderStyle::initialGridAutoRows())
+    , gridAutoColumns(RenderStyle::initialGridAutoColumns())
+    , namedGridArea(RenderStyle::initialNamedGridArea())
+    , namedGridAreaRowCount(RenderStyle::initialNamedGridAreaCount())
+    , namedGridAreaColumnCount(RenderStyle::initialNamedGridAreaCount())
+    , gridColumnGap(RenderStyle::initialGridColumnGap())
+    , gridRowGap(RenderStyle::initialGridRowGap())
+    , gridAutoRepeatColumns(RenderStyle::initialGridAutoRepeatTracks())
+    , gridAutoRepeatRows(RenderStyle::initialGridAutoRepeatTracks())
+    , autoRepeatColumnsInsertionPoint(RenderStyle::initialGridAutoRepeatInsertionPoint())
+    , autoRepeatRowsInsertionPoint(RenderStyle::initialGridAutoRepeatInsertionPoint())
+    , autoRepeatColumnsType(RenderStyle::initialGridAutoRepeatType())
+    , autoRepeatRowsType(RenderStyle::initialGridAutoRepeatType())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline StyleGridData::StyleGridData(const StyleGridData&amp; o)
</span><span class="cx">     : RefCounted&lt;StyleGridData&gt;()
</span><del>-    , m_gridColumns(o.m_gridColumns)
-    , m_gridRows(o.m_gridRows)
-    , m_namedGridColumnLines(o.m_namedGridColumnLines)
-    , m_namedGridRowLines(o.m_namedGridRowLines)
-    , m_orderedNamedGridColumnLines(o.m_orderedNamedGridColumnLines)
-    , m_orderedNamedGridRowLines(o.m_orderedNamedGridRowLines)
-    , m_autoRepeatNamedGridColumnLines(o.m_autoRepeatNamedGridColumnLines)
-    , m_autoRepeatNamedGridRowLines(o.m_autoRepeatNamedGridRowLines)
-    , m_autoRepeatOrderedNamedGridColumnLines(o.m_autoRepeatOrderedNamedGridColumnLines)
-    , m_autoRepeatOrderedNamedGridRowLines(o.m_autoRepeatOrderedNamedGridRowLines)
-    , m_gridAutoFlow(o.m_gridAutoFlow)
-    , m_gridAutoRows(o.m_gridAutoRows)
-    , m_gridAutoColumns(o.m_gridAutoColumns)
-    , m_namedGridArea(o.m_namedGridArea)
-    , m_namedGridAreaRowCount(o.m_namedGridAreaRowCount)
-    , m_namedGridAreaColumnCount(o.m_namedGridAreaColumnCount)
-    , m_gridColumnGap(o.m_gridColumnGap)
-    , m_gridRowGap(o.m_gridRowGap)
-    , m_gridAutoRepeatColumns(o.m_gridAutoRepeatColumns)
-    , m_gridAutoRepeatRows(o.m_gridAutoRepeatRows)
-    , m_autoRepeatColumnsInsertionPoint(o.m_autoRepeatColumnsInsertionPoint)
-    , m_autoRepeatRowsInsertionPoint(o.m_autoRepeatRowsInsertionPoint)
-    , m_autoRepeatColumnsType(o.m_autoRepeatColumnsType)
-    , m_autoRepeatRowsType(o.m_autoRepeatRowsType)
</del><ins>+    , gridColumns(o.gridColumns)
+    , gridRows(o.gridRows)
+    , namedGridColumnLines(o.namedGridColumnLines)
+    , namedGridRowLines(o.namedGridRowLines)
+    , orderedNamedGridColumnLines(o.orderedNamedGridColumnLines)
+    , orderedNamedGridRowLines(o.orderedNamedGridRowLines)
+    , autoRepeatNamedGridColumnLines(o.autoRepeatNamedGridColumnLines)
+    , autoRepeatNamedGridRowLines(o.autoRepeatNamedGridRowLines)
+    , autoRepeatOrderedNamedGridColumnLines(o.autoRepeatOrderedNamedGridColumnLines)
+    , autoRepeatOrderedNamedGridRowLines(o.autoRepeatOrderedNamedGridRowLines)
+    , gridAutoFlow(o.gridAutoFlow)
+    , gridAutoRows(o.gridAutoRows)
+    , gridAutoColumns(o.gridAutoColumns)
+    , namedGridArea(o.namedGridArea)
+    , namedGridAreaRowCount(o.namedGridAreaRowCount)
+    , namedGridAreaColumnCount(o.namedGridAreaColumnCount)
+    , gridColumnGap(o.gridColumnGap)
+    , gridRowGap(o.gridRowGap)
+    , gridAutoRepeatColumns(o.gridAutoRepeatColumns)
+    , gridAutoRepeatRows(o.gridAutoRepeatRows)
+    , autoRepeatColumnsInsertionPoint(o.autoRepeatColumnsInsertionPoint)
+    , autoRepeatRowsInsertionPoint(o.autoRepeatRowsInsertionPoint)
+    , autoRepeatColumnsType(o.autoRepeatColumnsType)
+    , autoRepeatRowsType(o.autoRepeatRowsType)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleGridDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleGridData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleGridData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleGridData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -48,18 +48,18 @@
</span><span class="cx">     bool operator==(const StyleGridData&amp; o) const
</span><span class="cx">     {
</span><span class="cx">         // FIXME: comparing two hashes doesn't look great for performance. Something to keep in mind going forward.
</span><del>-        return m_gridColumns == o.m_gridColumns &amp;&amp; m_gridRows == o.m_gridRows
-            &amp;&amp; m_gridAutoFlow == o.m_gridAutoFlow &amp;&amp; m_gridAutoRows == o.m_gridAutoRows &amp;&amp; m_gridAutoColumns == o.m_gridAutoColumns
-            &amp;&amp; m_namedGridColumnLines == o.m_namedGridColumnLines &amp;&amp; m_namedGridRowLines == o.m_namedGridRowLines
-            &amp;&amp; m_autoRepeatNamedGridColumnLines == o.m_autoRepeatNamedGridColumnLines &amp;&amp; m_autoRepeatNamedGridRowLines == o.m_autoRepeatNamedGridRowLines
-            &amp;&amp; m_autoRepeatOrderedNamedGridColumnLines == o.m_autoRepeatOrderedNamedGridColumnLines &amp;&amp; m_autoRepeatOrderedNamedGridRowLines == o.m_autoRepeatOrderedNamedGridRowLines
-            &amp;&amp; m_namedGridArea == o.m_namedGridArea &amp;&amp; m_namedGridArea == o.m_namedGridArea
-            &amp;&amp; m_namedGridAreaRowCount == o.m_namedGridAreaRowCount &amp;&amp; m_namedGridAreaColumnCount == o.m_namedGridAreaColumnCount
-            &amp;&amp; m_orderedNamedGridRowLines == o.m_orderedNamedGridRowLines &amp;&amp; m_orderedNamedGridColumnLines == o.m_orderedNamedGridColumnLines
-            &amp;&amp; m_gridColumnGap == o.m_gridColumnGap &amp;&amp; m_gridRowGap == o.m_gridRowGap
-            &amp;&amp; m_gridAutoRepeatColumns == o.m_gridAutoRepeatColumns &amp;&amp; m_gridAutoRepeatRows == o.m_gridAutoRepeatRows
-            &amp;&amp; m_autoRepeatColumnsInsertionPoint == o.m_autoRepeatColumnsInsertionPoint &amp;&amp; m_autoRepeatRowsInsertionPoint == o.m_autoRepeatRowsInsertionPoint
-            &amp;&amp; m_autoRepeatColumnsType == o.m_autoRepeatColumnsType &amp;&amp; m_autoRepeatRowsType == o.m_autoRepeatRowsType;
</del><ins>+        return gridColumns == o.gridColumns &amp;&amp; gridRows == o.gridRows
+            &amp;&amp; gridAutoFlow == o.gridAutoFlow &amp;&amp; gridAutoRows == o.gridAutoRows &amp;&amp; gridAutoColumns == o.gridAutoColumns
+            &amp;&amp; namedGridColumnLines == o.namedGridColumnLines &amp;&amp; namedGridRowLines == o.namedGridRowLines
+            &amp;&amp; autoRepeatNamedGridColumnLines == o.autoRepeatNamedGridColumnLines &amp;&amp; autoRepeatNamedGridRowLines == o.autoRepeatNamedGridRowLines
+            &amp;&amp; autoRepeatOrderedNamedGridColumnLines == o.autoRepeatOrderedNamedGridColumnLines &amp;&amp; autoRepeatOrderedNamedGridRowLines == o.autoRepeatOrderedNamedGridRowLines
+            &amp;&amp; namedGridArea == o.namedGridArea &amp;&amp; namedGridArea == o.namedGridArea
+            &amp;&amp; namedGridAreaRowCount == o.namedGridAreaRowCount &amp;&amp; namedGridAreaColumnCount == o.namedGridAreaColumnCount
+            &amp;&amp; orderedNamedGridRowLines == o.orderedNamedGridRowLines &amp;&amp; orderedNamedGridColumnLines == o.orderedNamedGridColumnLines
+            &amp;&amp; gridColumnGap == o.gridColumnGap &amp;&amp; gridRowGap == o.gridRowGap
+            &amp;&amp; gridAutoRepeatColumns == o.gridAutoRepeatColumns &amp;&amp; gridAutoRepeatRows == o.gridAutoRepeatRows
+            &amp;&amp; autoRepeatColumnsInsertionPoint == o.autoRepeatColumnsInsertionPoint &amp;&amp; autoRepeatRowsInsertionPoint == o.autoRepeatRowsInsertionPoint
+            &amp;&amp; autoRepeatColumnsType == o.autoRepeatColumnsType &amp;&amp; autoRepeatRowsType == o.autoRepeatRowsType;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool operator!=(const StyleGridData&amp; o) const
</span><span class="lines">@@ -67,43 +67,42 @@
</span><span class="cx">         return !(*this == o);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // FIXME: Update the naming of the following variables.
-    Vector&lt;GridTrackSize&gt; m_gridColumns;
-    Vector&lt;GridTrackSize&gt; m_gridRows;
</del><ins>+    Vector&lt;GridTrackSize&gt; gridColumns;
+    Vector&lt;GridTrackSize&gt; gridRows;
</ins><span class="cx"> 
</span><del>-    NamedGridLinesMap m_namedGridColumnLines;
-    NamedGridLinesMap m_namedGridRowLines;
</del><ins>+    NamedGridLinesMap namedGridColumnLines;
+    NamedGridLinesMap namedGridRowLines;
</ins><span class="cx"> 
</span><del>-    OrderedNamedGridLinesMap m_orderedNamedGridColumnLines;
-    OrderedNamedGridLinesMap m_orderedNamedGridRowLines;
</del><ins>+    OrderedNamedGridLinesMap orderedNamedGridColumnLines;
+    OrderedNamedGridLinesMap orderedNamedGridRowLines;
</ins><span class="cx"> 
</span><del>-    NamedGridLinesMap m_autoRepeatNamedGridColumnLines;
-    NamedGridLinesMap m_autoRepeatNamedGridRowLines;
-    OrderedNamedGridLinesMap m_autoRepeatOrderedNamedGridColumnLines;
-    OrderedNamedGridLinesMap m_autoRepeatOrderedNamedGridRowLines;
</del><ins>+    NamedGridLinesMap autoRepeatNamedGridColumnLines;
+    NamedGridLinesMap autoRepeatNamedGridRowLines;
+    OrderedNamedGridLinesMap autoRepeatOrderedNamedGridColumnLines;
+    OrderedNamedGridLinesMap autoRepeatOrderedNamedGridRowLines;
</ins><span class="cx"> 
</span><del>-    unsigned m_gridAutoFlow : GridAutoFlowBits;
</del><ins>+    unsigned gridAutoFlow : GridAutoFlowBits;
</ins><span class="cx"> 
</span><del>-    Vector&lt;GridTrackSize&gt; m_gridAutoRows;
-    Vector&lt;GridTrackSize&gt; m_gridAutoColumns;
</del><ins>+    Vector&lt;GridTrackSize&gt; gridAutoRows;
+    Vector&lt;GridTrackSize&gt; gridAutoColumns;
</ins><span class="cx"> 
</span><del>-    NamedGridAreaMap m_namedGridArea;
-    // Because m_namedGridArea doesn't store the unnamed grid areas, we need to keep track
</del><ins>+    NamedGridAreaMap namedGridArea;
+    // Because namedGridArea doesn't store the unnamed grid areas, we need to keep track
</ins><span class="cx">     // of the explicit grid size defined by both named and unnamed grid areas.
</span><del>-    unsigned m_namedGridAreaRowCount;
-    unsigned m_namedGridAreaColumnCount;
</del><ins>+    unsigned namedGridAreaRowCount;
+    unsigned namedGridAreaColumnCount;
</ins><span class="cx"> 
</span><del>-    Length m_gridColumnGap;
-    Length m_gridRowGap;
</del><ins>+    Length gridColumnGap;
+    Length gridRowGap;
</ins><span class="cx"> 
</span><del>-    Vector&lt;GridTrackSize&gt; m_gridAutoRepeatColumns;
-    Vector&lt;GridTrackSize&gt; m_gridAutoRepeatRows;
</del><ins>+    Vector&lt;GridTrackSize&gt; gridAutoRepeatColumns;
+    Vector&lt;GridTrackSize&gt; gridAutoRepeatRows;
</ins><span class="cx"> 
</span><del>-    unsigned m_autoRepeatColumnsInsertionPoint;
-    unsigned m_autoRepeatRowsInsertionPoint;
</del><ins>+    unsigned autoRepeatColumnsInsertionPoint;
+    unsigned autoRepeatRowsInsertionPoint;
</ins><span class="cx"> 
</span><del>-    AutoRepeatType m_autoRepeatColumnsType;
-    AutoRepeatType m_autoRepeatRowsType;
</del><ins>+    AutoRepeatType autoRepeatColumnsType;
+    AutoRepeatType autoRepeatRowsType;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleGridData();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleGridItemDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleGridItemData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleGridItemData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleGridItemData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx">  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><ins>+
</ins><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;StyleGridItemData.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -37,19 +38,19 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleGridItemData::StyleGridItemData()
</span><del>-    : m_gridColumnStart(RenderStyle::initialGridItemColumnStart())
-    , m_gridColumnEnd(RenderStyle::initialGridItemColumnEnd())
-    , m_gridRowStart(RenderStyle::initialGridItemRowStart())
-    , m_gridRowEnd(RenderStyle::initialGridItemRowEnd())
</del><ins>+    : gridColumnStart(RenderStyle::initialGridItemColumnStart())
+    , gridColumnEnd(RenderStyle::initialGridItemColumnEnd())
+    , gridRowStart(RenderStyle::initialGridItemRowStart())
+    , gridRowEnd(RenderStyle::initialGridItemRowEnd())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline StyleGridItemData::StyleGridItemData(const StyleGridItemData&amp; o)
</span><span class="cx">     : RefCounted&lt;StyleGridItemData&gt;()
</span><del>-    , m_gridColumnStart(o.m_gridColumnStart)
-    , m_gridColumnEnd(o.m_gridColumnEnd)
-    , m_gridRowStart(o.m_gridRowStart)
-    , m_gridRowEnd(o.m_gridRowEnd)
</del><ins>+    , gridColumnStart(o.gridColumnStart)
+    , gridColumnEnd(o.gridColumnEnd)
+    , gridRowStart(o.gridRowStart)
+    , gridRowEnd(o.gridRowEnd)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -60,4 +61,4 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-#endif /* ENABLE(CSS_GRID_LAYOUT) */
</del><ins>+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleGridItemDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleGridItemData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleGridItemData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleGridItemData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -45,8 +45,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool operator==(const StyleGridItemData&amp; o) const
</span><span class="cx">     {
</span><del>-        return m_gridColumnStart == o.m_gridColumnStart &amp;&amp; m_gridColumnEnd == o.m_gridColumnEnd
-            &amp;&amp; m_gridRowStart == o.m_gridRowStart &amp;&amp; m_gridRowEnd == o.m_gridRowEnd;
</del><ins>+        return gridColumnStart == o.gridColumnStart &amp;&amp; gridColumnEnd == o.gridColumnEnd
+            &amp;&amp; gridRowStart == o.gridRowStart &amp;&amp; gridRowEnd == o.gridRowEnd;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool operator!=(const StyleGridItemData&amp; o) const
</span><span class="lines">@@ -54,10 +54,10 @@
</span><span class="cx">         return !(*this == o);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    GridPosition m_gridColumnStart;
-    GridPosition m_gridColumnEnd;
-    GridPosition m_gridRowStart;
-    GridPosition m_gridRowEnd;
</del><ins>+    GridPosition gridColumnStart;
+    GridPosition gridColumnEnd;
+    GridPosition gridRowStart;
+    GridPosition gridRowEnd;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleGridItemData();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleInheritedDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleInheritedData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleInheritedData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleInheritedData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -27,9 +27,9 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleInheritedData::StyleInheritedData()
</span><del>-    : horizontal_border_spacing(RenderStyle::initialHorizontalBorderSpacing())
-    , vertical_border_spacing(RenderStyle::initialVerticalBorderSpacing())
-    , line_height(RenderStyle::initialLineHeight())
</del><ins>+    : horizontalBorderSpacing(RenderStyle::initialHorizontalBorderSpacing())
+    , verticalBorderSpacing(RenderStyle::initialVerticalBorderSpacing())
+    , lineHeight(RenderStyle::initialLineHeight())
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">     , specifiedLineHeight(RenderStyle::initialLineHeight())
</span><span class="cx"> #endif
</span><span class="lines">@@ -38,15 +38,11 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-StyleInheritedData::~StyleInheritedData()
-{
-}
-
</del><span class="cx"> inline StyleInheritedData::StyleInheritedData(const StyleInheritedData&amp; o)
</span><span class="cx">     : RefCounted&lt;StyleInheritedData&gt;()
</span><del>-    , horizontal_border_spacing(o.horizontal_border_spacing)
-    , vertical_border_spacing(o.vertical_border_spacing)
-    , line_height(o.line_height)
</del><ins>+    , horizontalBorderSpacing(o.horizontalBorderSpacing)
+    , verticalBorderSpacing(o.verticalBorderSpacing)
+    , lineHeight(o.lineHeight)
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">     , specifiedLineHeight(o.specifiedLineHeight)
</span><span class="cx"> #endif
</span><span class="lines">@@ -63,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool StyleInheritedData::operator==(const StyleInheritedData&amp; o) const
</span><span class="cx"> {
</span><del>-    return line_height == o.line_height
</del><ins>+    return lineHeight == o.lineHeight
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">         &amp;&amp; specifiedLineHeight == o.specifiedLineHeight
</span><span class="cx"> #endif
</span><span class="lines">@@ -70,8 +66,8 @@
</span><span class="cx">         &amp;&amp; fontCascade == o.fontCascade
</span><span class="cx">         &amp;&amp; color == o.color
</span><span class="cx">         &amp;&amp; visitedLinkColor == o.visitedLinkColor
</span><del>-        &amp;&amp; horizontal_border_spacing == o.horizontal_border_spacing
-        &amp;&amp; vertical_border_spacing == o.vertical_border_spacing;
</del><ins>+        &amp;&amp; horizontalBorderSpacing == o.horizontalBorderSpacing
+        &amp;&amp; verticalBorderSpacing == o.verticalBorderSpacing;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleInheritedDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleInheritedData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleInheritedData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleInheritedData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 2000 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Dirk Mueller (mueller@kde.org)
</span><del>- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -27,9 +27,6 @@
</span><span class="cx"> #include &quot;Color.h&quot;
</span><span class="cx"> #include &quot;FontCascade.h&quot;
</span><span class="cx"> #include &quot;Length.h&quot;
</span><del>-#include &lt;wtf/Ref.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -37,20 +34,14 @@
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;StyleInheritedData&gt; create() { return adoptRef(*new StyleInheritedData); }
</span><span class="cx">     Ref&lt;StyleInheritedData&gt; copy() const;
</span><del>-    ~StyleInheritedData();
</del><span class="cx"> 
</span><del>-    bool operator==(const StyleInheritedData&amp; o) const;
-    bool operator!=(const StyleInheritedData&amp; o) const
-    {
-        return !(*this == o);
-    }
</del><ins>+    bool operator==(const StyleInheritedData&amp;) const;
+    bool operator!=(const StyleInheritedData&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><del>-    float horizontal_border_spacing;
-    float vertical_border_spacing;
</del><ins>+    float horizontalBorderSpacing;
+    float verticalBorderSpacing;
</ins><span class="cx"> 
</span><del>-    // could be packed in a short but doesn't
-    // make a difference currently because of padding
-    Length line_height;
</del><ins>+    Length lineHeight;
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">     Length specifiedLineHeight;
</span><span class="cx"> #endif
</span><span class="lines">@@ -62,6 +53,7 @@
</span><span class="cx"> private:
</span><span class="cx">     StyleInheritedData();
</span><span class="cx">     StyleInheritedData(const StyleInheritedData&amp;);
</span><ins>+    void operator=(const StyleInheritedData&amp;) = delete;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleMultiColDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleMultiColData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleMultiColData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleMultiColData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004-2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -27,33 +27,31 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleMultiColData::StyleMultiColData()
</span><del>-    : m_width(0)
-    , m_count(RenderStyle::initialColumnCount())
-    , m_gap(0)
-    , m_autoWidth(true)
-    , m_autoCount(true)
-    , m_normalGap(true)
-    , m_fill(RenderStyle::initialColumnFill())
-    , m_columnSpan(false)
-    , m_axis(RenderStyle::initialColumnAxis())
-    , m_progression(RenderStyle::initialColumnProgression())
</del><ins>+    : count(RenderStyle::initialColumnCount())
+    , autoWidth(true)
+    , autoCount(true)
+    , normalGap(true)
+    , fill(RenderStyle::initialColumnFill())
+    , columnSpan(false)
+    , axis(RenderStyle::initialColumnAxis())
+    , progression(RenderStyle::initialColumnProgression())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline StyleMultiColData::StyleMultiColData(const StyleMultiColData&amp; o)
</del><ins>+inline StyleMultiColData::StyleMultiColData(const StyleMultiColData&amp; other)
</ins><span class="cx">     : RefCounted&lt;StyleMultiColData&gt;()
</span><del>-    , m_width(o.m_width)
-    , m_count(o.m_count)
-    , m_gap(o.m_gap)
-    , m_rule(o.m_rule)
-    , m_visitedLinkColumnRuleColor(o.m_visitedLinkColumnRuleColor)
-    , m_autoWidth(o.m_autoWidth)
-    , m_autoCount(o.m_autoCount)
-    , m_normalGap(o.m_normalGap)
-    , m_fill(o.m_fill)
-    , m_columnSpan(o.m_columnSpan)
-    , m_axis(o.m_axis)
-    , m_progression(o.m_progression)
</del><ins>+    , width(other.width)
+    , count(other.count)
+    , gap(other.gap)
+    , rule(other.rule)
+    , visitedLinkColumnRuleColor(other.visitedLinkColumnRuleColor)
+    , autoWidth(other.autoWidth)
+    , autoCount(other.autoCount)
+    , normalGap(other.normalGap)
+    , fill(other.fill)
+    , columnSpan(other.columnSpan)
+    , axis(other.axis)
+    , progression(other.progression)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -62,13 +60,13 @@
</span><span class="cx">     return adoptRef(*new StyleMultiColData(*this));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool StyleMultiColData::operator==(const StyleMultiColData&amp; o) const
</del><ins>+bool StyleMultiColData::operator==(const StyleMultiColData&amp; other) const
</ins><span class="cx"> {
</span><del>-    return m_width == o.m_width &amp;&amp; m_count == o.m_count &amp;&amp; m_gap == o.m_gap
-        &amp;&amp; m_rule == o.m_rule &amp;&amp; m_visitedLinkColumnRuleColor == o.m_visitedLinkColumnRuleColor
-        &amp;&amp; m_autoWidth == o.m_autoWidth &amp;&amp; m_autoCount == o.m_autoCount &amp;&amp; m_normalGap == o.m_normalGap
-        &amp;&amp; m_fill == o.m_fill &amp;&amp; m_columnSpan == o.m_columnSpan
-        &amp;&amp; m_axis == o.m_axis &amp;&amp; m_progression == o.m_progression;
</del><ins>+    return width == other.width &amp;&amp; count == other.count &amp;&amp; gap == other.gap
+        &amp;&amp; rule == other.rule &amp;&amp; visitedLinkColumnRuleColor == other.visitedLinkColumnRuleColor
+        &amp;&amp; autoWidth == other.autoWidth &amp;&amp; autoCount == other.autoCount &amp;&amp; normalGap == other.normalGap
+        &amp;&amp; fill == other.fill &amp;&amp; columnSpan == other.columnSpan
+        &amp;&amp; axis == other.axis &amp;&amp; progression == other.progression;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleMultiColDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleMultiColData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleMultiColData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleMultiColData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 2000 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Dirk Mueller (mueller@kde.org)
</span><del>- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -38,32 +38,29 @@
</span><span class="cx">     static Ref&lt;StyleMultiColData&gt; create() { return adoptRef(*new StyleMultiColData); }
</span><span class="cx">     Ref&lt;StyleMultiColData&gt; copy() const;
</span><span class="cx">     
</span><del>-    bool operator==(const StyleMultiColData&amp; o) const;
-    bool operator!=(const StyleMultiColData &amp;o) const
-    {
-        return !(*this == o);
-    }
</del><ins>+    bool operator==(const StyleMultiColData&amp;) const;
+    bool operator!=(const StyleMultiColData&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><span class="cx">     unsigned short ruleWidth() const
</span><span class="cx">     {
</span><del>-        if (m_rule.style() == BNONE || m_rule.style() == BHIDDEN)
</del><ins>+        if (rule.style() == BNONE || rule.style() == BHIDDEN)
</ins><span class="cx">             return 0; 
</span><del>-        return m_rule.width();
</del><ins>+        return rule.width();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    float m_width;
-    unsigned short m_count;
-    float m_gap;
-    BorderValue m_rule;
-    Color m_visitedLinkColumnRuleColor;
</del><ins>+    float width { 0 };
+    unsigned short count;
+    float gap { 0 };
+    BorderValue rule;
+    Color visitedLinkColumnRuleColor;
</ins><span class="cx"> 
</span><del>-    bool m_autoWidth : 1;
-    bool m_autoCount : 1;
-    bool m_normalGap : 1;
-    unsigned m_fill : 1; // ColumnFill
-    unsigned m_columnSpan : 1;
-    unsigned m_axis : 2; // ColumnAxis
-    unsigned m_progression : 2; // ColumnProgression
</del><ins>+    bool autoWidth : 1;
+    bool autoCount : 1;
+    bool normalGap : 1;
+    unsigned fill : 1; // ColumnFill
+    unsigned columnSpan : 1;
+    unsigned axis : 2; // ColumnAxis
+    unsigned progression : 2; // ColumnProgression
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleMultiColData();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareInheritedDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">     void* refPtrs[2];
</span><span class="cx">     Length lengths[2];
</span><span class="cx">     float secondFloat;
</span><del>-    unsigned m_bitfields[4];
</del><ins>+    unsigned bitfields[4];
</ins><span class="cx">     short pagedMediaShorts[2];
</span><span class="cx">     unsigned unsigneds[1];
</span><span class="cx">     short hyphenationShorts[3];
</span><span class="lines">@@ -73,12 +73,12 @@
</span><span class="cx">     : listStyleImage(RenderStyle::initialListStyleImage())
</span><span class="cx">     , textStrokeWidth(RenderStyle::initialTextStrokeWidth())
</span><span class="cx">     , indent(RenderStyle::initialTextIndent())
</span><del>-    , m_effectiveZoom(RenderStyle::initialZoom())
-    , m_customProperties(StyleCustomPropertyData::create())
</del><ins>+    , effectiveZoom(RenderStyle::initialZoom())
+    , customProperties(StyleCustomPropertyData::create())
</ins><span class="cx">     , widows(RenderStyle::initialWidows())
</span><span class="cx">     , orphans(RenderStyle::initialOrphans())
</span><del>-    , m_hasAutoWidows(true)
-    , m_hasAutoOrphans(true)
</del><ins>+    , hasAutoWidows(true)
+    , hasAutoOrphans(true)
</ins><span class="cx">     , textSecurity(RenderStyle::initialTextSecurity())
</span><span class="cx">     , userModify(READ_ONLY)
</span><span class="cx">     , wordBreak(RenderStyle::initialWordBreak())
</span><span class="lines">@@ -91,33 +91,33 @@
</span><span class="cx">     , textEmphasisFill(TextEmphasisFillFilled)
</span><span class="cx">     , textEmphasisMark(TextEmphasisMarkNone)
</span><span class="cx">     , textEmphasisPosition(TextEmphasisPositionOver | TextEmphasisPositionRight)
</span><del>-    , m_textOrientation(static_cast&lt;unsigned&gt;(TextOrientation::Mixed))
</del><ins>+    , textOrientation(static_cast&lt;unsigned&gt;(TextOrientation::Mixed))
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    , m_textIndentLine(RenderStyle::initialTextIndentLine())
-    , m_textIndentType(RenderStyle::initialTextIndentType())
</del><ins>+    , textIndentLine(RenderStyle::initialTextIndentLine())
+    , textIndentType(RenderStyle::initialTextIndentType())
</ins><span class="cx"> #endif
</span><del>-    , m_lineBoxContain(RenderStyle::initialLineBoxContain())
</del><ins>+    , lineBoxContain(RenderStyle::initialLineBoxContain())
</ins><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><del>-    , m_imageOrientation(RenderStyle::initialImageOrientation())
</del><ins>+    , imageOrientation(RenderStyle::initialImageOrientation())
</ins><span class="cx"> #endif
</span><del>-    , m_imageRendering(RenderStyle::initialImageRendering())
-    , m_lineSnap(RenderStyle::initialLineSnap())
-    , m_lineAlign(RenderStyle::initialLineAlign())
</del><ins>+    , imageRendering(RenderStyle::initialImageRendering())
+    , lineSnap(RenderStyle::initialLineSnap())
+    , lineAlign(RenderStyle::initialLineAlign())
</ins><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><span class="cx">     , useTouchOverflowScrolling(RenderStyle::initialUseTouchOverflowScrolling())
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    , m_imageResolutionSource(RenderStyle::initialImageResolutionSource())
-    , m_imageResolutionSnap(RenderStyle::initialImageResolutionSnap())
</del><ins>+    , imageResolutionSource(RenderStyle::initialImageResolutionSource())
+    , imageResolutionSnap(RenderStyle::initialImageResolutionSnap())
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    , m_textAlignLast(RenderStyle::initialTextAlignLast())
-    , m_textJustify(RenderStyle::initialTextJustify())
-#endif // CSS3_TEXT
-    , m_textDecorationSkip(RenderStyle::initialTextDecorationSkip())
-    , m_textUnderlinePosition(RenderStyle::initialTextUnderlinePosition())
-    , m_rubyPosition(RenderStyle::initialRubyPosition())
-    , m_textZoom(RenderStyle::initialTextZoom())
</del><ins>+    , textAlignLast(RenderStyle::initialTextAlignLast())
+    , textJustify(RenderStyle::initialTextJustify())
+#endif
+    , textDecorationSkip(RenderStyle::initialTextDecorationSkip())
+    , textUnderlinePosition(RenderStyle::initialTextUnderlinePosition())
+    , rubyPosition(RenderStyle::initialRubyPosition())
+    , textZoom(RenderStyle::initialTextZoom())
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     , touchCalloutEnabled(RenderStyle::initialTouchCalloutEnabled())
</span><span class="cx"> #endif
</span><span class="lines">@@ -124,17 +124,17 @@
</span><span class="cx"> #if ENABLE(CSS_TRAILING_WORD)
</span><span class="cx">     , trailingWord(static_cast&lt;unsigned&gt;(RenderStyle::initialTrailingWord()))
</span><span class="cx"> #endif
</span><del>-    , m_hangingPunctuation(RenderStyle::initialHangingPunctuation())
</del><ins>+    , hangingPunctuation(RenderStyle::initialHangingPunctuation())
</ins><span class="cx">     , hyphenationLimitBefore(-1)
</span><span class="cx">     , hyphenationLimitAfter(-1)
</span><span class="cx">     , hyphenationLimitLines(-1)
</span><del>-    , m_lineGrid(RenderStyle::initialLineGrid())
-    , m_tabSize(RenderStyle::initialTabSize())
</del><ins>+    , lineGrid(RenderStyle::initialLineGrid())
+    , tabSize(RenderStyle::initialTabSize())
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">     , textSizeAdjust(RenderStyle::initialTextSizeAdjust())
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    , m_imageResolution(RenderStyle::initialImageResolution())
</del><ins>+    , imageResolution(RenderStyle::initialImageResolution())
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><span class="cx">     , tapHighlightColor(RenderStyle::initialTapHighlightColor())
</span><span class="lines">@@ -155,12 +155,12 @@
</span><span class="cx">     , textShadow(o.textShadow ? std::make_unique&lt;ShadowData&gt;(*o.textShadow) : nullptr)
</span><span class="cx">     , cursorData(o.cursorData)
</span><span class="cx">     , indent(o.indent)
</span><del>-    , m_effectiveZoom(o.m_effectiveZoom)
-    , m_customProperties(o.m_customProperties)
</del><ins>+    , effectiveZoom(o.effectiveZoom)
+    , customProperties(o.customProperties)
</ins><span class="cx">     , widows(o.widows)
</span><span class="cx">     , orphans(o.orphans)
</span><del>-    , m_hasAutoWidows(o.m_hasAutoWidows)
-    , m_hasAutoOrphans(o.m_hasAutoOrphans)
</del><ins>+    , hasAutoWidows(o.hasAutoWidows)
+    , hasAutoOrphans(o.hasAutoOrphans)
</ins><span class="cx">     , textSecurity(o.textSecurity)
</span><span class="cx">     , userModify(o.userModify)
</span><span class="cx">     , wordBreak(o.wordBreak)
</span><span class="lines">@@ -173,33 +173,33 @@
</span><span class="cx">     , textEmphasisFill(o.textEmphasisFill)
</span><span class="cx">     , textEmphasisMark(o.textEmphasisMark)
</span><span class="cx">     , textEmphasisPosition(o.textEmphasisPosition)
</span><del>-    , m_textOrientation(o.m_textOrientation)
</del><ins>+    , textOrientation(o.textOrientation)
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    , m_textIndentLine(o.m_textIndentLine)
-    , m_textIndentType(o.m_textIndentType)
</del><ins>+    , textIndentLine(o.textIndentLine)
+    , textIndentType(o.textIndentType)
</ins><span class="cx"> #endif
</span><del>-    , m_lineBoxContain(o.m_lineBoxContain)
</del><ins>+    , lineBoxContain(o.lineBoxContain)
</ins><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><del>-    , m_imageOrientation(o.m_imageOrientation)
</del><ins>+    , imageOrientation(o.imageOrientation)
</ins><span class="cx"> #endif
</span><del>-    , m_imageRendering(o.m_imageRendering)
-    , m_lineSnap(o.m_lineSnap)
-    , m_lineAlign(o.m_lineAlign)
</del><ins>+    , imageRendering(o.imageRendering)
+    , lineSnap(o.lineSnap)
+    , lineAlign(o.lineAlign)
</ins><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><span class="cx">     , useTouchOverflowScrolling(o.useTouchOverflowScrolling)
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    , m_imageResolutionSource(o.m_imageResolutionSource)
-    , m_imageResolutionSnap(o.m_imageResolutionSnap)
</del><ins>+    , imageResolutionSource(o.imageResolutionSource)
+    , imageResolutionSnap(o.imageResolutionSnap)
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    , m_textAlignLast(o.m_textAlignLast)
-    , m_textJustify(o.m_textJustify)
-#endif // CSS3_TEXT
-    , m_textDecorationSkip(o.m_textDecorationSkip)
-    , m_textUnderlinePosition(o.m_textUnderlinePosition)
-    , m_rubyPosition(o.m_rubyPosition)
-    , m_textZoom(o.m_textZoom)
</del><ins>+    , textAlignLast(o.textAlignLast)
+    , textJustify(o.textJustify)
+#endif
+    , textDecorationSkip(o.textDecorationSkip)
+    , textUnderlinePosition(o.textUnderlinePosition)
+    , rubyPosition(o.rubyPosition)
+    , textZoom(o.textZoom)
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     , touchCalloutEnabled(o.touchCalloutEnabled)
</span><span class="cx"> #endif
</span><span class="lines">@@ -206,19 +206,19 @@
</span><span class="cx"> #if ENABLE(CSS_TRAILING_WORD)
</span><span class="cx">     , trailingWord(o.trailingWord)
</span><span class="cx"> #endif
</span><del>-    , m_hangingPunctuation(o.m_hangingPunctuation)
</del><ins>+    , hangingPunctuation(o.hangingPunctuation)
</ins><span class="cx">     , hyphenationString(o.hyphenationString)
</span><span class="cx">     , hyphenationLimitBefore(o.hyphenationLimitBefore)
</span><span class="cx">     , hyphenationLimitAfter(o.hyphenationLimitAfter)
</span><span class="cx">     , hyphenationLimitLines(o.hyphenationLimitLines)
</span><span class="cx">     , textEmphasisCustomMark(o.textEmphasisCustomMark)
</span><del>-    , m_lineGrid(o.m_lineGrid)
-    , m_tabSize(o.m_tabSize)
</del><ins>+    , lineGrid(o.lineGrid)
+    , tabSize(o.tabSize)
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">     , textSizeAdjust(o.textSizeAdjust)
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    , m_imageResolution(o.m_imageResolution)
</del><ins>+    , imageResolution(o.imageResolution)
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><span class="cx">     , tapHighlightColor(o.tapHighlightColor)
</span><span class="lines">@@ -250,11 +250,11 @@
</span><span class="cx">         &amp;&amp; arePointingToEqualData(textShadow, o.textShadow)
</span><span class="cx">         &amp;&amp; arePointingToEqualData(cursorData, o.cursorData)
</span><span class="cx">         &amp;&amp; indent == o.indent
</span><del>-        &amp;&amp; m_effectiveZoom == o.m_effectiveZoom
</del><ins>+        &amp;&amp; effectiveZoom == o.effectiveZoom
</ins><span class="cx">         &amp;&amp; widows == o.widows
</span><span class="cx">         &amp;&amp; orphans == o.orphans
</span><del>-        &amp;&amp; m_hasAutoWidows == o.m_hasAutoWidows
-        &amp;&amp; m_hasAutoOrphans == o.m_hasAutoOrphans
</del><ins>+        &amp;&amp; hasAutoWidows == o.hasAutoWidows
+        &amp;&amp; hasAutoOrphans == o.hasAutoOrphans
</ins><span class="cx">         &amp;&amp; textSecurity == o.textSecurity
</span><span class="cx">         &amp;&amp; userModify == o.userModify
</span><span class="cx">         &amp;&amp; wordBreak == o.wordBreak
</span><span class="lines">@@ -276,12 +276,12 @@
</span><span class="cx">         &amp;&amp; textEmphasisFill == o.textEmphasisFill
</span><span class="cx">         &amp;&amp; textEmphasisMark == o.textEmphasisMark
</span><span class="cx">         &amp;&amp; textEmphasisPosition == o.textEmphasisPosition
</span><del>-        &amp;&amp; m_textOrientation == o.m_textOrientation
</del><ins>+        &amp;&amp; textOrientation == o.textOrientation
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-        &amp;&amp; m_textIndentLine == o.m_textIndentLine
-        &amp;&amp; m_textIndentType == o.m_textIndentType
</del><ins>+        &amp;&amp; textIndentLine == o.textIndentLine
+        &amp;&amp; textIndentType == o.textIndentType
</ins><span class="cx"> #endif
</span><del>-        &amp;&amp; m_lineBoxContain == o.m_lineBoxContain
</del><ins>+        &amp;&amp; lineBoxContain == o.lineBoxContain
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">         &amp;&amp; touchCalloutEnabled == o.touchCalloutEnabled
</span><span class="cx"> #endif
</span><span class="lines">@@ -288,32 +288,32 @@
</span><span class="cx">         &amp;&amp; hyphenationString == o.hyphenationString
</span><span class="cx">         &amp;&amp; textEmphasisCustomMark == o.textEmphasisCustomMark
</span><span class="cx">         &amp;&amp; arePointingToEqualData(quotes, o.quotes)
</span><del>-        &amp;&amp; m_tabSize == o.m_tabSize
-        &amp;&amp; m_lineGrid == o.m_lineGrid
</del><ins>+        &amp;&amp; tabSize == o.tabSize
+        &amp;&amp; lineGrid == o.lineGrid
</ins><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><del>-        &amp;&amp; m_imageOrientation == o.m_imageOrientation
</del><ins>+        &amp;&amp; imageOrientation == o.imageOrientation
</ins><span class="cx"> #endif
</span><del>-        &amp;&amp; m_imageRendering == o.m_imageRendering
</del><ins>+        &amp;&amp; imageRendering == o.imageRendering
</ins><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-        &amp;&amp; m_imageResolutionSource == o.m_imageResolutionSource
-        &amp;&amp; m_imageResolutionSnap == o.m_imageResolutionSnap
-        &amp;&amp; m_imageResolution == o.m_imageResolution
</del><ins>+        &amp;&amp; imageResolutionSource == o.imageResolutionSource
+        &amp;&amp; imageResolutionSnap == o.imageResolutionSnap
+        &amp;&amp; imageResolution == o.imageResolution
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-        &amp;&amp; m_textAlignLast == o.m_textAlignLast
-        &amp;&amp; m_textJustify == o.m_textJustify
</del><ins>+        &amp;&amp; textAlignLast == o.textAlignLast
+        &amp;&amp; textJustify == o.textJustify
</ins><span class="cx"> #endif // CSS3_TEXT
</span><del>-        &amp;&amp; m_textDecorationSkip == o.m_textDecorationSkip
-        &amp;&amp; m_textUnderlinePosition == o.m_textUnderlinePosition
-        &amp;&amp; m_rubyPosition == o.m_rubyPosition
-        &amp;&amp; m_textZoom == o.m_textZoom
-        &amp;&amp; m_lineSnap == o.m_lineSnap
-        &amp;&amp; m_lineAlign == o.m_lineAlign
</del><ins>+        &amp;&amp; textDecorationSkip == o.textDecorationSkip
+        &amp;&amp; textUnderlinePosition == o.textUnderlinePosition
+        &amp;&amp; rubyPosition == o.rubyPosition
+        &amp;&amp; textZoom == o.textZoom
+        &amp;&amp; lineSnap == o.lineSnap
+        &amp;&amp; lineAlign == o.lineAlign
</ins><span class="cx"> #if ENABLE(CSS_TRAILING_WORD)
</span><span class="cx">         &amp;&amp; trailingWord == o.trailingWord
</span><span class="cx"> #endif
</span><del>-        &amp;&amp; m_hangingPunctuation == o.m_hangingPunctuation
-        &amp;&amp; m_customProperties == o.m_customProperties
</del><ins>+        &amp;&amp; hangingPunctuation == o.hangingPunctuation
+        &amp;&amp; customProperties == o.customProperties
</ins><span class="cx">         &amp;&amp; arePointingToEqualData(listStyleImage, o.listStyleImage);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareInheritedDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -72,17 +72,17 @@
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;CursorList&gt; cursorData;
</span><span class="cx">     Length indent;
</span><del>-    float m_effectiveZoom;
</del><ins>+    float effectiveZoom;
</ins><span class="cx">     
</span><span class="cx">     Length wordSpacing;
</span><span class="cx"> 
</span><del>-    DataRef&lt;StyleCustomPropertyData&gt; m_customProperties;
</del><ins>+    DataRef&lt;StyleCustomPropertyData&gt; customProperties;
</ins><span class="cx"> 
</span><span class="cx">     // Paged media properties.
</span><span class="cx">     short widows;
</span><span class="cx">     short orphans;
</span><del>-    unsigned m_hasAutoWidows : 1;
-    unsigned m_hasAutoOrphans : 1;
</del><ins>+    unsigned hasAutoWidows : 1;
+    unsigned hasAutoOrphans : 1;
</ins><span class="cx">     
</span><span class="cx">     unsigned textSecurity : 2; // ETextSecurity
</span><span class="cx">     unsigned userModify : 2; // EUserModify (editing)
</span><span class="lines">@@ -97,34 +97,34 @@
</span><span class="cx">     unsigned textEmphasisFill : 1; // TextEmphasisFill
</span><span class="cx">     unsigned textEmphasisMark : 3; // TextEmphasisMark
</span><span class="cx">     unsigned textEmphasisPosition : 4; // TextEmphasisPosition
</span><del>-    unsigned m_textOrientation : 2; // TextOrientation
</del><ins>+    unsigned textOrientation : 2; // TextOrientation
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    unsigned m_textIndentLine : 1; // TextIndentLine
-    unsigned m_textIndentType : 1; // TextIndentType
</del><ins>+    unsigned textIndentLine : 1; // TextIndentLine
+    unsigned textIndentType : 1; // TextIndentType
</ins><span class="cx"> #endif
</span><del>-    unsigned m_lineBoxContain: 7; // LineBoxContain
</del><ins>+    unsigned lineBoxContain: 7; // LineBoxContain
</ins><span class="cx">     // CSS Image Values Level 3
</span><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><del>-    unsigned m_imageOrientation : 4; // ImageOrientationEnum
</del><ins>+    unsigned imageOrientation : 4; // ImageOrientationEnum
</ins><span class="cx"> #endif
</span><del>-    unsigned m_imageRendering : 3; // EImageRendering
-    unsigned m_lineSnap : 2; // LineSnap
-    unsigned m_lineAlign : 1; // LineAlign
</del><ins>+    unsigned imageRendering : 3; // EImageRendering
+    unsigned lineSnap : 2; // LineSnap
+    unsigned lineAlign : 1; // LineAlign
</ins><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><span class="cx">     unsigned useTouchOverflowScrolling: 1;
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    unsigned m_imageResolutionSource : 1; // ImageResolutionSource
-    unsigned m_imageResolutionSnap : 1; // ImageResolutionSnap
</del><ins>+    unsigned imageResolutionSource : 1; // ImageResolutionSource
+    unsigned imageResolutionSnap : 1; // ImageResolutionSnap
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><del>-    unsigned m_textAlignLast : 3; // TextAlignLast
-    unsigned m_textJustify : 2; // TextJustify
-#endif // CSS3_TEXT
-    unsigned m_textDecorationSkip : 5; // TextDecorationSkip
-    unsigned m_textUnderlinePosition : 3; // TextUnderlinePosition
-    unsigned m_rubyPosition : 2; // RubyPosition
-    unsigned m_textZoom: 1; // TextZoom
</del><ins>+    unsigned textAlignLast : 3; // TextAlignLast
+    unsigned textJustify : 2; // TextJustify
+#endif
+    unsigned textDecorationSkip : 5; // TextDecorationSkip
+    unsigned textUnderlinePosition : 3; // TextUnderlinePosition
+    unsigned rubyPosition : 2; // RubyPosition
+    unsigned textZoom: 1; // TextZoom
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     unsigned touchCalloutEnabled : 1;
</span><span class="lines">@@ -134,7 +134,7 @@
</span><span class="cx">     unsigned trailingWord : 1;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    unsigned m_hangingPunctuation : 4;
</del><ins>+    unsigned hangingPunctuation : 4;
</ins><span class="cx"> 
</span><span class="cx">     AtomicString hyphenationString;
</span><span class="cx">     short hyphenationLimitBefore;
</span><span class="lines">@@ -144,8 +144,8 @@
</span><span class="cx">     AtomicString textEmphasisCustomMark;
</span><span class="cx">     RefPtr&lt;QuotesData&gt; quotes;
</span><span class="cx"> 
</span><del>-    AtomicString m_lineGrid;
-    unsigned m_tabSize;
</del><ins>+    AtomicString lineGrid;
+    unsigned tabSize;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><span class="cx">     TextSizeAdjustment textSizeAdjust;
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_IMAGE_RESOLUTION)
</span><del>-    float m_imageResolution;
</del><ins>+    float imageResolution;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -37,174 +37,174 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleRareNonInheritedData::StyleRareNonInheritedData()
</span><del>-    : m_opacity(RenderStyle::initialOpacity())
-    , m_aspectRatioDenominator(RenderStyle::initialAspectRatioDenominator())
-    , m_aspectRatioNumerator(RenderStyle::initialAspectRatioNumerator())
-    , m_perspective(RenderStyle::initialPerspective())
-    , m_perspectiveOriginX(RenderStyle::initialPerspectiveOriginX())
-    , m_perspectiveOriginY(RenderStyle::initialPerspectiveOriginY())
</del><ins>+    : opacity(RenderStyle::initialOpacity())
+    , aspectRatioDenominator(RenderStyle::initialAspectRatioDenominator())
+    , aspectRatioNumerator(RenderStyle::initialAspectRatioNumerator())
+    , perspective(RenderStyle::initialPerspective())
+    , perspectiveOriginX(RenderStyle::initialPerspectiveOriginX())
+    , perspectiveOriginY(RenderStyle::initialPerspectiveOriginY())
</ins><span class="cx">     , lineClamp(RenderStyle::initialLineClamp())
</span><del>-    , m_initialLetter(RenderStyle::initialInitialLetter())
-    , m_deprecatedFlexibleBox(StyleDeprecatedFlexibleBoxData::create())
-    , m_flexibleBox(StyleFlexibleBoxData::create())
-    , m_marquee(StyleMarqueeData::create())
-    , m_multiCol(StyleMultiColData::create())
-    , m_transform(StyleTransformData::create())
-    , m_filter(StyleFilterData::create())
</del><ins>+    , initialLetter(RenderStyle::initialInitialLetter())
+    , deprecatedFlexibleBox(StyleDeprecatedFlexibleBoxData::create())
+    , flexibleBox(StyleFlexibleBoxData::create())
+    , marquee(StyleMarqueeData::create())
+    , multiCol(StyleMultiColData::create())
+    , transform(StyleTransformData::create())
+    , filter(StyleFilterData::create())
</ins><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-    , m_backdropFilter(StyleFilterData::create())
</del><ins>+    , backdropFilter(StyleFilterData::create())
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-    , m_grid(StyleGridData::create())
-    , m_gridItem(StyleGridItemData::create())
</del><ins>+    , grid(StyleGridData::create())
+    , gridItem(StyleGridItemData::create())
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><del>-    , m_scrollSnapPort(StyleScrollSnapPort::create())
-    , m_scrollSnapArea(StyleScrollSnapArea::create())
</del><ins>+    , scrollSnapPort(StyleScrollSnapPort::create())
+    , scrollSnapArea(StyleScrollSnapArea::create())
</ins><span class="cx"> #endif
</span><del>-    , m_willChange(RenderStyle::initialWillChange())
-    , m_mask(FillLayer(MaskFillLayer))
-    , m_objectPosition(RenderStyle::initialObjectPosition())
-    , m_shapeOutside(RenderStyle::initialShapeOutside())
-    , m_shapeMargin(RenderStyle::initialShapeMargin())
-    , m_shapeImageThreshold(RenderStyle::initialShapeImageThreshold())
-    , m_clipPath(RenderStyle::initialClipPath())
-    , m_visitedLinkBackgroundColor(RenderStyle::initialBackgroundColor())
-    , m_order(RenderStyle::initialOrder())
-    , m_flowThread(RenderStyle::initialFlowThread())
-    , m_regionThread(RenderStyle::initialRegionThread())
-    , m_alignContent(RenderStyle::initialContentAlignment())
-    , m_alignItems(RenderStyle::initialDefaultAlignment())
-    , m_alignSelf(RenderStyle::initialSelfAlignment())
-    , m_justifyContent(RenderStyle::initialContentAlignment())
-    , m_justifyItems(RenderStyle::initialSelfAlignment())
-    , m_justifySelf(RenderStyle::initialSelfAlignment())
</del><ins>+    , willChange(RenderStyle::initialWillChange())
+    , mask(FillLayer(MaskFillLayer))
+    , objectPosition(RenderStyle::initialObjectPosition())
+    , shapeOutside(RenderStyle::initialShapeOutside())
+    , shapeMargin(RenderStyle::initialShapeMargin())
+    , shapeImageThreshold(RenderStyle::initialShapeImageThreshold())
+    , clipPath(RenderStyle::initialClipPath())
+    , visitedLinkBackgroundColor(RenderStyle::initialBackgroundColor())
+    , order(RenderStyle::initialOrder())
+    , flowThread(RenderStyle::initialFlowThread())
+    , regionThread(RenderStyle::initialRegionThread())
+    , alignContent(RenderStyle::initialContentAlignment())
+    , alignItems(RenderStyle::initialDefaultAlignment())
+    , alignSelf(RenderStyle::initialSelfAlignment())
+    , justifyContent(RenderStyle::initialContentAlignment())
+    , justifyItems(RenderStyle::initialSelfAlignment())
+    , justifySelf(RenderStyle::initialSelfAlignment())
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    , m_touchAction(static_cast&lt;unsigned&gt;(RenderStyle::initialTouchAction()))
</del><ins>+    , touchAction(static_cast&lt;unsigned&gt;(RenderStyle::initialTouchAction()))
</ins><span class="cx"> #endif
</span><del>-    , m_regionFragment(RenderStyle::initialRegionFragment())
-    , m_pageSizeType(PAGE_SIZE_AUTO)
-    , m_transformStyle3D(RenderStyle::initialTransformStyle3D())
-    , m_backfaceVisibility(RenderStyle::initialBackfaceVisibility())
</del><ins>+    , regionFragment(RenderStyle::initialRegionFragment())
+    , pageSizeType(PAGE_SIZE_AUTO)
+    , transformStyle3D(RenderStyle::initialTransformStyle3D())
+    , backfaceVisibility(RenderStyle::initialBackfaceVisibility())
</ins><span class="cx">     , userDrag(RenderStyle::initialUserDrag())
</span><span class="cx">     , textOverflow(RenderStyle::initialTextOverflow())
</span><span class="cx">     , marginBeforeCollapse(MCOLLAPSE)
</span><span class="cx">     , marginAfterCollapse(MCOLLAPSE)
</span><del>-    , m_appearance(RenderStyle::initialAppearance())
-    , m_borderFit(RenderStyle::initialBorderFit())
-    , m_textCombine(RenderStyle::initialTextCombine())
-    , m_textDecorationStyle(RenderStyle::initialTextDecorationStyle())
-    , m_aspectRatioType(RenderStyle::initialAspectRatioType())
</del><ins>+    , appearance(RenderStyle::initialAppearance())
+    , borderFit(RenderStyle::initialBorderFit())
+    , textCombine(RenderStyle::initialTextCombine())
+    , textDecorationStyle(RenderStyle::initialTextDecorationStyle())
+    , aspectRatioType(RenderStyle::initialAspectRatioType())
</ins><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    , m_effectiveBlendMode(RenderStyle::initialBlendMode())
-    , m_isolation(RenderStyle::initialIsolation())
</del><ins>+    , effectiveBlendMode(RenderStyle::initialBlendMode())
+    , isolation(RenderStyle::initialIsolation())
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(APPLE_PAY)
</span><del>-    , m_applePayButtonStyle(static_cast&lt;unsigned&gt;(RenderStyle::initialApplePayButtonStyle()))
-    , m_applePayButtonType(static_cast&lt;unsigned&gt;(RenderStyle::initialApplePayButtonType()))
</del><ins>+    , applePayButtonStyle(static_cast&lt;unsigned&gt;(RenderStyle::initialApplePayButtonStyle()))
+    , applePayButtonType(static_cast&lt;unsigned&gt;(RenderStyle::initialApplePayButtonType()))
</ins><span class="cx"> #endif
</span><del>-    , m_objectFit(RenderStyle::initialObjectFit())
-    , m_breakBefore(RenderStyle::initialBreakBetween())
-    , m_breakAfter(RenderStyle::initialBreakBetween())
-    , m_breakInside(RenderStyle::initialBreakInside())
-    , m_resize(RenderStyle::initialResize())
-    , m_hasAttrContent(false)
-    , m_isPlaceholderStyle(false)
</del><ins>+    , objectFit(RenderStyle::initialObjectFit())
+    , breakBefore(RenderStyle::initialBreakBetween())
+    , breakAfter(RenderStyle::initialBreakBetween())
+    , breakInside(RenderStyle::initialBreakInside())
+    , resize(RenderStyle::initialResize())
+    , hasAttrContent(false)
+    , isPlaceholderStyle(false)
</ins><span class="cx"> {
</span><del>-    m_maskBoxImage.setMaskDefaults();
</del><ins>+    maskBoxImage.setMaskDefaults();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline StyleRareNonInheritedData::StyleRareNonInheritedData(const StyleRareNonInheritedData&amp; o)
</span><span class="cx">     : RefCounted&lt;StyleRareNonInheritedData&gt;()
</span><del>-    , m_opacity(o.m_opacity)
-    , m_aspectRatioDenominator(o.m_aspectRatioDenominator)
-    , m_aspectRatioNumerator(o.m_aspectRatioNumerator)
-    , m_perspective(o.m_perspective)
-    , m_perspectiveOriginX(o.m_perspectiveOriginX)
-    , m_perspectiveOriginY(o.m_perspectiveOriginY)
</del><ins>+    , opacity(o.opacity)
+    , aspectRatioDenominator(o.aspectRatioDenominator)
+    , aspectRatioNumerator(o.aspectRatioNumerator)
+    , perspective(o.perspective)
+    , perspectiveOriginX(o.perspectiveOriginX)
+    , perspectiveOriginY(o.perspectiveOriginY)
</ins><span class="cx">     , lineClamp(o.lineClamp)
</span><del>-    , m_initialLetter(o.m_initialLetter)
-    , m_deprecatedFlexibleBox(o.m_deprecatedFlexibleBox)
-    , m_flexibleBox(o.m_flexibleBox)
-    , m_marquee(o.m_marquee)
-    , m_multiCol(o.m_multiCol)
-    , m_transform(o.m_transform)
-    , m_filter(o.m_filter)
</del><ins>+    , initialLetter(o.initialLetter)
+    , deprecatedFlexibleBox(o.deprecatedFlexibleBox)
+    , flexibleBox(o.flexibleBox)
+    , marquee(o.marquee)
+    , multiCol(o.multiCol)
+    , transform(o.transform)
+    , filter(o.filter)
</ins><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-    , m_backdropFilter(o.m_backdropFilter)
</del><ins>+    , backdropFilter(o.backdropFilter)
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-    , m_grid(o.m_grid)
-    , m_gridItem(o.m_gridItem)
</del><ins>+    , grid(o.grid)
+    , gridItem(o.gridItem)
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><del>-    , m_scrollSnapPort(o.m_scrollSnapPort)
-    , m_scrollSnapArea(o.m_scrollSnapArea)
</del><ins>+    , scrollSnapPort(o.scrollSnapPort)
+    , scrollSnapArea(o.scrollSnapArea)
</ins><span class="cx"> #endif
</span><del>-    , m_content(o.m_content ? o.m_content-&gt;clone() : nullptr)
-    , m_counterDirectives(o.m_counterDirectives ? clone(*o.m_counterDirectives) : nullptr)
-    , m_altText(o.m_altText)
-    , m_boxShadow(o.m_boxShadow ? std::make_unique&lt;ShadowData&gt;(*o.m_boxShadow) : nullptr)
-    , m_willChange(o.m_willChange)
-    , m_boxReflect(o.m_boxReflect)
-    , m_animations(o.m_animations ? std::make_unique&lt;AnimationList&gt;(*o.m_animations) : nullptr)
-    , m_transitions(o.m_transitions ? std::make_unique&lt;AnimationList&gt;(*o.m_transitions) : nullptr)
-    , m_mask(o.m_mask)
-    , m_maskBoxImage(o.m_maskBoxImage)
-    , m_pageSize(o.m_pageSize)
-    , m_objectPosition(o.m_objectPosition)
-    , m_shapeOutside(o.m_shapeOutside)
-    , m_shapeMargin(o.m_shapeMargin)
-    , m_shapeImageThreshold(o.m_shapeImageThreshold)
-    , m_clipPath(o.m_clipPath)
-    , m_textDecorationColor(o.m_textDecorationColor)
-    , m_visitedLinkTextDecorationColor(o.m_visitedLinkTextDecorationColor)
-    , m_visitedLinkBackgroundColor(o.m_visitedLinkBackgroundColor)
-    , m_visitedLinkOutlineColor(o.m_visitedLinkOutlineColor)
-    , m_visitedLinkBorderLeftColor(o.m_visitedLinkBorderLeftColor)
-    , m_visitedLinkBorderRightColor(o.m_visitedLinkBorderRightColor)
-    , m_visitedLinkBorderTopColor(o.m_visitedLinkBorderTopColor)
-    , m_visitedLinkBorderBottomColor(o.m_visitedLinkBorderBottomColor)
-    , m_order(o.m_order)
-    , m_flowThread(o.m_flowThread)
-    , m_regionThread(o.m_regionThread)
-    , m_alignContent(o.m_alignContent)
-    , m_alignItems(o.m_alignItems)
-    , m_alignSelf(o.m_alignSelf)
-    , m_justifyContent(o.m_justifyContent)
-    , m_justifyItems(o.m_justifyItems)
-    , m_justifySelf(o.m_justifySelf)
</del><ins>+    , content(o.content ? o.content-&gt;clone() : nullptr)
+    , counterDirectives(o.counterDirectives ? clone(*o.counterDirectives) : nullptr)
+    , altText(o.altText)
+    , boxShadow(o.boxShadow ? std::make_unique&lt;ShadowData&gt;(*o.boxShadow) : nullptr)
+    , willChange(o.willChange)
+    , boxReflect(o.boxReflect)
+    , animations(o.animations ? std::make_unique&lt;AnimationList&gt;(*o.animations) : nullptr)
+    , transitions(o.transitions ? std::make_unique&lt;AnimationList&gt;(*o.transitions) : nullptr)
+    , mask(o.mask)
+    , maskBoxImage(o.maskBoxImage)
+    , pageSize(o.pageSize)
+    , objectPosition(o.objectPosition)
+    , shapeOutside(o.shapeOutside)
+    , shapeMargin(o.shapeMargin)
+    , shapeImageThreshold(o.shapeImageThreshold)
+    , clipPath(o.clipPath)
+    , textDecorationColor(o.textDecorationColor)
+    , visitedLinkTextDecorationColor(o.visitedLinkTextDecorationColor)
+    , visitedLinkBackgroundColor(o.visitedLinkBackgroundColor)
+    , visitedLinkOutlineColor(o.visitedLinkOutlineColor)
+    , visitedLinkBorderLeftColor(o.visitedLinkBorderLeftColor)
+    , visitedLinkBorderRightColor(o.visitedLinkBorderRightColor)
+    , visitedLinkBorderTopColor(o.visitedLinkBorderTopColor)
+    , visitedLinkBorderBottomColor(o.visitedLinkBorderBottomColor)
+    , order(o.order)
+    , flowThread(o.flowThread)
+    , regionThread(o.regionThread)
+    , alignContent(o.alignContent)
+    , alignItems(o.alignItems)
+    , alignSelf(o.alignSelf)
+    , justifyContent(o.justifyContent)
+    , justifyItems(o.justifyItems)
+    , justifySelf(o.justifySelf)
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    , m_touchAction(o.m_touchAction)
</del><ins>+    , touchAction(o.touchAction)
</ins><span class="cx"> #endif
</span><del>-    , m_regionFragment(o.m_regionFragment)
-    , m_pageSizeType(o.m_pageSizeType)
-    , m_transformStyle3D(o.m_transformStyle3D)
-    , m_backfaceVisibility(o.m_backfaceVisibility)
</del><ins>+    , regionFragment(o.regionFragment)
+    , pageSizeType(o.pageSizeType)
+    , transformStyle3D(o.transformStyle3D)
+    , backfaceVisibility(o.backfaceVisibility)
</ins><span class="cx">     , userDrag(o.userDrag)
</span><span class="cx">     , textOverflow(o.textOverflow)
</span><span class="cx">     , marginBeforeCollapse(o.marginBeforeCollapse)
</span><span class="cx">     , marginAfterCollapse(o.marginAfterCollapse)
</span><del>-    , m_appearance(o.m_appearance)
-    , m_borderFit(o.m_borderFit)
-    , m_textCombine(o.m_textCombine)
-    , m_textDecorationStyle(o.m_textDecorationStyle)
-    , m_aspectRatioType(o.m_aspectRatioType)
</del><ins>+    , appearance(o.appearance)
+    , borderFit(o.borderFit)
+    , textCombine(o.textCombine)
+    , textDecorationStyle(o.textDecorationStyle)
+    , aspectRatioType(o.aspectRatioType)
</ins><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    , m_effectiveBlendMode(o.m_effectiveBlendMode)
-    , m_isolation(o.m_isolation)
</del><ins>+    , effectiveBlendMode(o.effectiveBlendMode)
+    , isolation(o.isolation)
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(APPLE_PAY)
</span><del>-    , m_applePayButtonStyle(o.m_applePayButtonStyle)
-    , m_applePayButtonType(o.m_applePayButtonType)
</del><ins>+    , applePayButtonStyle(o.applePayButtonStyle)
+    , applePayButtonType(o.applePayButtonType)
</ins><span class="cx"> #endif
</span><del>-    , m_objectFit(o.m_objectFit)
-    , m_breakBefore(o.m_breakBefore)
-    , m_breakAfter(o.m_breakAfter)
-    , m_breakInside(o.m_breakInside)
-    , m_resize(o.m_resize)
-    , m_hasAttrContent(o.m_hasAttrContent)
-    , m_isPlaceholderStyle(o.m_isPlaceholderStyle)
</del><ins>+    , objectFit(o.objectFit)
+    , breakBefore(o.breakBefore)
+    , breakAfter(o.breakAfter)
+    , breakInside(o.breakInside)
+    , resize(o.resize)
+    , hasAttrContent(o.hasAttrContent)
+    , isPlaceholderStyle(o.isPlaceholderStyle)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -219,123 +219,123 @@
</span><span class="cx"> 
</span><span class="cx"> bool StyleRareNonInheritedData::operator==(const StyleRareNonInheritedData&amp; o) const
</span><span class="cx"> {
</span><del>-    return m_opacity == o.m_opacity
-        &amp;&amp; m_aspectRatioDenominator == o.m_aspectRatioDenominator
-        &amp;&amp; m_aspectRatioNumerator == o.m_aspectRatioNumerator
-        &amp;&amp; m_perspective == o.m_perspective
-        &amp;&amp; m_perspectiveOriginX == o.m_perspectiveOriginX
-        &amp;&amp; m_perspectiveOriginY == o.m_perspectiveOriginY
</del><ins>+    return opacity == o.opacity
+        &amp;&amp; aspectRatioDenominator == o.aspectRatioDenominator
+        &amp;&amp; aspectRatioNumerator == o.aspectRatioNumerator
+        &amp;&amp; perspective == o.perspective
+        &amp;&amp; perspectiveOriginX == o.perspectiveOriginX
+        &amp;&amp; perspectiveOriginY == o.perspectiveOriginY
</ins><span class="cx">         &amp;&amp; lineClamp == o.lineClamp
</span><del>-        &amp;&amp; m_initialLetter == o.m_initialLetter
</del><ins>+        &amp;&amp; initialLetter == o.initialLetter
</ins><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><del>-        &amp;&amp; m_dashboardRegions == o.m_dashboardRegions
</del><ins>+        &amp;&amp; dashboardRegions == o.dashboardRegions
</ins><span class="cx"> #endif
</span><del>-        &amp;&amp; m_deprecatedFlexibleBox == o.m_deprecatedFlexibleBox
-        &amp;&amp; m_flexibleBox == o.m_flexibleBox
-        &amp;&amp; m_marquee == o.m_marquee
-        &amp;&amp; m_multiCol == o.m_multiCol
-        &amp;&amp; m_transform == o.m_transform
-        &amp;&amp; m_filter == o.m_filter
</del><ins>+        &amp;&amp; deprecatedFlexibleBox == o.deprecatedFlexibleBox
+        &amp;&amp; flexibleBox == o.flexibleBox
+        &amp;&amp; marquee == o.marquee
+        &amp;&amp; multiCol == o.multiCol
+        &amp;&amp; transform == o.transform
+        &amp;&amp; filter == o.filter
</ins><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-        &amp;&amp; m_backdropFilter == o.m_backdropFilter
</del><ins>+        &amp;&amp; backdropFilter == o.backdropFilter
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-        &amp;&amp; m_grid == o.m_grid
-        &amp;&amp; m_gridItem == o.m_gridItem
</del><ins>+        &amp;&amp; grid == o.grid
+        &amp;&amp; gridItem == o.gridItem
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><del>-        &amp;&amp; m_scrollSnapPort == o.m_scrollSnapPort
-        &amp;&amp; m_scrollSnapArea == o.m_scrollSnapArea
</del><ins>+        &amp;&amp; scrollSnapPort == o.scrollSnapPort
+        &amp;&amp; scrollSnapArea == o.scrollSnapArea
</ins><span class="cx"> #endif
</span><span class="cx">         &amp;&amp; contentDataEquivalent(o)
</span><del>-        &amp;&amp; arePointingToEqualData(m_counterDirectives, o.m_counterDirectives)
-        &amp;&amp; m_altText == o.m_altText
-        &amp;&amp; arePointingToEqualData(m_boxShadow, o.m_boxShadow)
-        &amp;&amp; arePointingToEqualData(m_willChange, o.m_willChange)
-        &amp;&amp; arePointingToEqualData(m_boxReflect, o.m_boxReflect)
-        &amp;&amp; arePointingToEqualData(m_animations, o.m_animations)
-        &amp;&amp; arePointingToEqualData(m_transitions, o.m_transitions)
-        &amp;&amp; m_mask == o.m_mask
-        &amp;&amp; m_maskBoxImage == o.m_maskBoxImage
-        &amp;&amp; m_pageSize == o.m_pageSize
-        &amp;&amp; m_objectPosition == o.m_objectPosition
-        &amp;&amp; arePointingToEqualData(m_shapeOutside, o.m_shapeOutside)
-        &amp;&amp; m_shapeMargin == o.m_shapeMargin
-        &amp;&amp; m_shapeImageThreshold == o.m_shapeImageThreshold
-        &amp;&amp; arePointingToEqualData(m_clipPath, o.m_clipPath)
-        &amp;&amp; m_textDecorationColor == o.m_textDecorationColor
-        &amp;&amp; m_visitedLinkTextDecorationColor == o.m_visitedLinkTextDecorationColor
-        &amp;&amp; m_visitedLinkBackgroundColor == o.m_visitedLinkBackgroundColor
-        &amp;&amp; m_visitedLinkOutlineColor == o.m_visitedLinkOutlineColor
-        &amp;&amp; m_visitedLinkBorderLeftColor == o.m_visitedLinkBorderLeftColor
-        &amp;&amp; m_visitedLinkBorderRightColor == o.m_visitedLinkBorderRightColor
-        &amp;&amp; m_visitedLinkBorderTopColor == o.m_visitedLinkBorderTopColor
-        &amp;&amp; m_visitedLinkBorderBottomColor == o.m_visitedLinkBorderBottomColor
-        &amp;&amp; m_order == o.m_order
-        &amp;&amp; m_flowThread == o.m_flowThread
-        &amp;&amp; m_alignContent == o.m_alignContent
-        &amp;&amp; m_alignItems == o.m_alignItems
-        &amp;&amp; m_alignSelf == o.m_alignSelf
-        &amp;&amp; m_justifyContent == o.m_justifyContent
-        &amp;&amp; m_justifyItems == o.m_justifyItems
-        &amp;&amp; m_justifySelf == o.m_justifySelf
-        &amp;&amp; m_regionThread == o.m_regionThread
-        &amp;&amp; m_regionFragment == o.m_regionFragment
-        &amp;&amp; m_pageSizeType == o.m_pageSizeType
-        &amp;&amp; m_transformStyle3D == o.m_transformStyle3D
-        &amp;&amp; m_backfaceVisibility == o.m_backfaceVisibility
</del><ins>+        &amp;&amp; arePointingToEqualData(counterDirectives, o.counterDirectives)
+        &amp;&amp; altText == o.altText
+        &amp;&amp; arePointingToEqualData(boxShadow, o.boxShadow)
+        &amp;&amp; arePointingToEqualData(willChange, o.willChange)
+        &amp;&amp; arePointingToEqualData(boxReflect, o.boxReflect)
+        &amp;&amp; arePointingToEqualData(animations, o.animations)
+        &amp;&amp; arePointingToEqualData(transitions, o.transitions)
+        &amp;&amp; mask == o.mask
+        &amp;&amp; maskBoxImage == o.maskBoxImage
+        &amp;&amp; pageSize == o.pageSize
+        &amp;&amp; objectPosition == o.objectPosition
+        &amp;&amp; arePointingToEqualData(shapeOutside, o.shapeOutside)
+        &amp;&amp; shapeMargin == o.shapeMargin
+        &amp;&amp; shapeImageThreshold == o.shapeImageThreshold
+        &amp;&amp; arePointingToEqualData(clipPath, o.clipPath)
+        &amp;&amp; textDecorationColor == o.textDecorationColor
+        &amp;&amp; visitedLinkTextDecorationColor == o.visitedLinkTextDecorationColor
+        &amp;&amp; visitedLinkBackgroundColor == o.visitedLinkBackgroundColor
+        &amp;&amp; visitedLinkOutlineColor == o.visitedLinkOutlineColor
+        &amp;&amp; visitedLinkBorderLeftColor == o.visitedLinkBorderLeftColor
+        &amp;&amp; visitedLinkBorderRightColor == o.visitedLinkBorderRightColor
+        &amp;&amp; visitedLinkBorderTopColor == o.visitedLinkBorderTopColor
+        &amp;&amp; visitedLinkBorderBottomColor == o.visitedLinkBorderBottomColor
+        &amp;&amp; order == o.order
+        &amp;&amp; flowThread == o.flowThread
+        &amp;&amp; alignContent == o.alignContent
+        &amp;&amp; alignItems == o.alignItems
+        &amp;&amp; alignSelf == o.alignSelf
+        &amp;&amp; justifyContent == o.justifyContent
+        &amp;&amp; justifyItems == o.justifyItems
+        &amp;&amp; justifySelf == o.justifySelf
+        &amp;&amp; regionThread == o.regionThread
+        &amp;&amp; regionFragment == o.regionFragment
+        &amp;&amp; pageSizeType == o.pageSizeType
+        &amp;&amp; transformStyle3D == o.transformStyle3D
+        &amp;&amp; backfaceVisibility == o.backfaceVisibility
</ins><span class="cx">         &amp;&amp; userDrag == o.userDrag
</span><span class="cx">         &amp;&amp; textOverflow == o.textOverflow
</span><span class="cx">         &amp;&amp; marginBeforeCollapse == o.marginBeforeCollapse
</span><span class="cx">         &amp;&amp; marginAfterCollapse == o.marginAfterCollapse
</span><del>-        &amp;&amp; m_appearance == o.m_appearance
-        &amp;&amp; m_borderFit == o.m_borderFit
-        &amp;&amp; m_textCombine == o.m_textCombine
-        &amp;&amp; m_textDecorationStyle == o.m_textDecorationStyle
</del><ins>+        &amp;&amp; appearance == o.appearance
+        &amp;&amp; borderFit == o.borderFit
+        &amp;&amp; textCombine == o.textCombine
+        &amp;&amp; textDecorationStyle == o.textDecorationStyle
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-        &amp;&amp; m_touchAction == o.m_touchAction
</del><ins>+        &amp;&amp; touchAction == o.touchAction
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-        &amp;&amp; m_effectiveBlendMode == o.m_effectiveBlendMode
-        &amp;&amp; m_isolation == o.m_isolation
</del><ins>+        &amp;&amp; effectiveBlendMode == o.effectiveBlendMode
+        &amp;&amp; isolation == o.isolation
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(APPLE_PAY)
</span><del>-        &amp;&amp; m_applePayButtonStyle == o.m_applePayButtonStyle
-        &amp;&amp; m_applePayButtonType == o.m_applePayButtonType
</del><ins>+        &amp;&amp; applePayButtonStyle == o.applePayButtonStyle
+        &amp;&amp; applePayButtonType == o.applePayButtonType
</ins><span class="cx"> #endif
</span><del>-        &amp;&amp; m_aspectRatioType == o.m_aspectRatioType
-        &amp;&amp; m_objectFit == o.m_objectFit
-        &amp;&amp; m_breakAfter == o.m_breakAfter
-        &amp;&amp; m_breakBefore == o.m_breakBefore
-        &amp;&amp; m_breakInside == o.m_breakInside
-        &amp;&amp; m_resize == o.m_resize
-        &amp;&amp; m_hasAttrContent == o.m_hasAttrContent
-        &amp;&amp; m_isPlaceholderStyle == o.m_isPlaceholderStyle;
</del><ins>+        &amp;&amp; aspectRatioType == o.aspectRatioType
+        &amp;&amp; objectFit == o.objectFit
+        &amp;&amp; breakAfter == o.breakAfter
+        &amp;&amp; breakBefore == o.breakBefore
+        &amp;&amp; breakInside == o.breakInside
+        &amp;&amp; resize == o.resize
+        &amp;&amp; hasAttrContent == o.hasAttrContent
+        &amp;&amp; isPlaceholderStyle == o.isPlaceholderStyle;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool StyleRareNonInheritedData::contentDataEquivalent(const StyleRareNonInheritedData&amp; o) const
</del><ins>+bool StyleRareNonInheritedData::contentDataEquivalent(const StyleRareNonInheritedData&amp; other) const
</ins><span class="cx"> {
</span><del>-    ContentData* a = m_content.get();
-    ContentData* b = o.m_content.get();
-
</del><ins>+    auto* a = content.get();
+    auto* b = other.content.get();
</ins><span class="cx">     while (a &amp;&amp; b &amp;&amp; *a == *b) {
</span><span class="cx">         a = a-&gt;next();
</span><span class="cx">         b = b-&gt;next();
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     return !a &amp;&amp; !b;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool StyleRareNonInheritedData::hasFilters() const
</span><span class="cx"> {
</span><del>-    return m_filter.get() &amp;&amp; !m_filter-&gt;m_operations.isEmpty();
</del><ins>+    return !filter-&gt;operations.isEmpty();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><ins>+
</ins><span class="cx"> bool StyleRareNonInheritedData::hasBackdropFilters() const
</span><span class="cx"> {
</span><del>-    return m_backdropFilter.get() &amp;&amp; !m_backdropFilter-&gt;m_operations.isEmpty();
</del><ins>+    return !backdropFilter-&gt;operations.isEmpty();
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareNonInheritedDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 2000 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Dirk Mueller (mueller@kde.org)
</span><del>- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -44,34 +44,27 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AnimationList;
</span><ins>+class ContentData;
</ins><span class="cx"> class ShadowData;
</span><span class="cx"> class StyleDeprecatedFlexibleBoxData;
</span><span class="cx"> class StyleFilterData;
</span><span class="cx"> class StyleFlexibleBoxData;
</span><del>-#if ENABLE(CSS_GRID_LAYOUT)
</del><span class="cx"> class StyleGridData;
</span><span class="cx"> class StyleGridItemData;
</span><del>-#endif
</del><span class="cx"> class StyleMarqueeData;
</span><span class="cx"> class StyleMultiColData;
</span><span class="cx"> class StyleReflection;
</span><span class="cx"> class StyleResolver;
</span><ins>+class StyleScrollSnapArea;
+class StyleScrollSnapPort;
</ins><span class="cx"> class StyleTransformData;
</span><del>-#if ENABLE(CSS_SCROLL_SNAP)
-class StyleScrollSnapPort;
-class StyleScrollSnapArea;
-#endif
</del><span class="cx"> 
</span><del>-class ContentData;
</del><span class="cx"> struct LengthSize;
</span><del>-
-#if ENABLE(DASHBOARD_SUPPORT)
</del><span class="cx"> struct StyleDashboardRegion;
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> // Page size type.
</span><del>-// StyleRareNonInheritedData::m_pageSize is meaningful only when 
-// StyleRareNonInheritedData::m_pageSizeType is PAGE_SIZE_RESOLVED.
</del><ins>+// StyleRareNonInheritedData::pageSize is meaningful only when
+// StyleRareNonInheritedData::pageSizeType is PAGE_SIZE_RESOLVED.
</ins><span class="cx"> enum PageSizeType {
</span><span class="cx">     PAGE_SIZE_AUTO, // size: auto
</span><span class="cx">     PAGE_SIZE_AUTO_LANDSCAPE, // size: landscape
</span><span class="lines">@@ -89,110 +82,113 @@
</span><span class="cx">     ~StyleRareNonInheritedData();
</span><span class="cx">     
</span><span class="cx">     bool operator==(const StyleRareNonInheritedData&amp;) const;
</span><del>-    bool operator!=(const StyleRareNonInheritedData&amp; o) const { return !(*this == o); }
</del><ins>+    bool operator!=(const StyleRareNonInheritedData&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><span class="cx">     bool contentDataEquivalent(const StyleRareNonInheritedData&amp;) const;
</span><span class="cx"> 
</span><span class="cx">     bool hasFilters() const;
</span><ins>+
</ins><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><span class="cx">     bool hasBackdropFilters() const;
</span><span class="cx"> #endif
</span><del>-    bool hasOpacity() const { return m_opacity &lt; 1; }
</del><span class="cx"> 
</span><del>-    bool hasAnimationsOrTransitions() const { return m_animations || m_transitions; }
</del><ins>+    bool hasOpacity() const { return opacity &lt; 1; }
</ins><span class="cx"> 
</span><del>-    float m_opacity;
</del><ins>+    bool hasAnimationsOrTransitions() const { return animations || transitions; }
</ins><span class="cx"> 
</span><del>-    float m_aspectRatioDenominator;
-    float m_aspectRatioNumerator;
</del><ins>+    float opacity;
</ins><span class="cx"> 
</span><del>-    float m_perspective;
-    Length m_perspectiveOriginX;
-    Length m_perspectiveOriginY;
</del><ins>+    float aspectRatioDenominator;
+    float aspectRatioNumerator;
</ins><span class="cx"> 
</span><ins>+    float perspective;
+    Length perspectiveOriginX;
+    Length perspectiveOriginY;
+
</ins><span class="cx">     LineClampValue lineClamp; // An Apple extension.
</span><span class="cx">     
</span><del>-    IntSize m_initialLetter;
</del><ins>+    IntSize initialLetter;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><del>-    Vector&lt;StyleDashboardRegion&gt; m_dashboardRegions;
</del><ins>+    Vector&lt;StyleDashboardRegion&gt; dashboardRegions;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    DataRef&lt;StyleDeprecatedFlexibleBoxData&gt; m_deprecatedFlexibleBox; // Flexible box properties
-    DataRef&lt;StyleFlexibleBoxData&gt; m_flexibleBox;
-    DataRef&lt;StyleMarqueeData&gt; m_marquee; // Marquee properties
-    DataRef&lt;StyleMultiColData&gt; m_multiCol; //  CSS3 multicol properties
-    DataRef&lt;StyleTransformData&gt; m_transform; // Transform properties (rotate, scale, skew, etc.)
-    DataRef&lt;StyleFilterData&gt; m_filter; // Filter operations (url, sepia, blur, etc.)
</del><ins>+    DataRef&lt;StyleDeprecatedFlexibleBoxData&gt; deprecatedFlexibleBox; // Flexible box properties
+    DataRef&lt;StyleFlexibleBoxData&gt; flexibleBox;
+    DataRef&lt;StyleMarqueeData&gt; marquee; // Marquee properties
+    DataRef&lt;StyleMultiColData&gt; multiCol; //  CSS3 multicol properties
+    DataRef&lt;StyleTransformData&gt; transform; // Transform properties (rotate, scale, skew, etc.)
+    DataRef&lt;StyleFilterData&gt; filter; // Filter operations (url, sepia, blur, etc.)
+
</ins><span class="cx"> #if ENABLE(FILTERS_LEVEL_2)
</span><del>-    DataRef&lt;StyleFilterData&gt; m_backdropFilter; // Filter operations (url, sepia, blur, etc.)
</del><ins>+    DataRef&lt;StyleFilterData&gt; backdropFilter; // Filter operations (url, sepia, blur, etc.)
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><del>-    DataRef&lt;StyleGridData&gt; m_grid;
-    DataRef&lt;StyleGridItemData&gt; m_gridItem;
</del><ins>+    DataRef&lt;StyleGridData&gt; grid;
+    DataRef&lt;StyleGridItemData&gt; gridItem;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><del>-    DataRef&lt;StyleScrollSnapPort&gt; m_scrollSnapPort;
-    DataRef&lt;StyleScrollSnapArea&gt; m_scrollSnapArea;
</del><ins>+    DataRef&lt;StyleScrollSnapPort&gt; scrollSnapPort;
+    DataRef&lt;StyleScrollSnapArea&gt; scrollSnapArea;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    std::unique_ptr&lt;ContentData&gt; m_content;
-    std::unique_ptr&lt;CounterDirectiveMap&gt; m_counterDirectives;
-    String m_altText;
</del><ins>+    std::unique_ptr&lt;ContentData&gt; content;
+    std::unique_ptr&lt;CounterDirectiveMap&gt; counterDirectives;
+    String altText;
</ins><span class="cx"> 
</span><del>-    std::unique_ptr&lt;ShadowData&gt; m_boxShadow; // For box-shadow decorations.
</del><ins>+    std::unique_ptr&lt;ShadowData&gt; boxShadow; // For box-shadow decorations.
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;WillChangeData&gt; m_willChange; // Null indicates 'auto'.
</del><ins>+    RefPtr&lt;WillChangeData&gt; willChange; // Null indicates 'auto'.
</ins><span class="cx">     
</span><del>-    RefPtr&lt;StyleReflection&gt; m_boxReflect;
</del><ins>+    RefPtr&lt;StyleReflection&gt; boxReflect;
</ins><span class="cx"> 
</span><del>-    std::unique_ptr&lt;AnimationList&gt; m_animations;
-    std::unique_ptr&lt;AnimationList&gt; m_transitions;
</del><ins>+    std::unique_ptr&lt;AnimationList&gt; animations;
+    std::unique_ptr&lt;AnimationList&gt; transitions;
</ins><span class="cx"> 
</span><del>-    FillLayer m_mask;
-    NinePieceImage m_maskBoxImage;
</del><ins>+    FillLayer mask;
+    NinePieceImage maskBoxImage;
</ins><span class="cx"> 
</span><del>-    LengthSize m_pageSize;
-    LengthPoint m_objectPosition;
</del><ins>+    LengthSize pageSize;
+    LengthPoint objectPosition;
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;ShapeValue&gt; m_shapeOutside;
-    Length m_shapeMargin;
-    float m_shapeImageThreshold;
</del><ins>+    RefPtr&lt;ShapeValue&gt; shapeOutside;
+    Length shapeMargin;
+    float shapeImageThreshold;
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;ClipPathOperation&gt; m_clipPath;
</del><ins>+    RefPtr&lt;ClipPathOperation&gt; clipPath;
</ins><span class="cx"> 
</span><del>-    Color m_textDecorationColor;
-    Color m_visitedLinkTextDecorationColor;
-    Color m_visitedLinkBackgroundColor;
-    Color m_visitedLinkOutlineColor;
-    Color m_visitedLinkBorderLeftColor;
-    Color m_visitedLinkBorderRightColor;
-    Color m_visitedLinkBorderTopColor;
-    Color m_visitedLinkBorderBottomColor;
</del><ins>+    Color textDecorationColor;
+    Color visitedLinkTextDecorationColor;
+    Color visitedLinkBackgroundColor;
+    Color visitedLinkOutlineColor;
+    Color visitedLinkBorderLeftColor;
+    Color visitedLinkBorderRightColor;
+    Color visitedLinkBorderTopColor;
+    Color visitedLinkBorderBottomColor;
</ins><span class="cx"> 
</span><del>-    int m_order;
</del><ins>+    int order;
</ins><span class="cx"> 
</span><del>-    AtomicString m_flowThread;
-    AtomicString m_regionThread;
</del><ins>+    AtomicString flowThread;
+    AtomicString regionThread;
</ins><span class="cx"> 
</span><del>-    StyleContentAlignmentData m_alignContent;
-    StyleSelfAlignmentData m_alignItems;
-    StyleSelfAlignmentData m_alignSelf;
-    StyleContentAlignmentData m_justifyContent;
-    StyleSelfAlignmentData m_justifyItems;
-    StyleSelfAlignmentData m_justifySelf;
</del><ins>+    StyleContentAlignmentData alignContent;
+    StyleSelfAlignmentData alignItems;
+    StyleSelfAlignmentData alignSelf;
+    StyleContentAlignmentData justifyContent;
+    StyleSelfAlignmentData justifyItems;
+    StyleSelfAlignmentData justifySelf;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    unsigned m_touchAction : 1; // TouchAction
</del><ins>+    unsigned touchAction : 1; // TouchAction
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    unsigned m_regionFragment : 1; // RegionFragment
</del><ins>+    unsigned regionFragment : 1; // RegionFragment
</ins><span class="cx"> 
</span><del>-    unsigned m_pageSizeType : 2; // PageSizeType
-    unsigned m_transformStyle3D : 1; // ETransformStyle3D
-    unsigned m_backfaceVisibility : 1; // EBackfaceVisibility
</del><ins>+    unsigned pageSizeType : 2; // PageSizeType
+    unsigned transformStyle3D : 1; // ETransformStyle3D
+    unsigned backfaceVisibility : 1; // EBackfaceVisibility
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     unsigned userDrag : 2; // EUserDrag
</span><span class="lines">@@ -199,34 +195,34 @@
</span><span class="cx">     unsigned textOverflow : 1; // Whether or not lines that spill out should be truncated with &quot;...&quot;
</span><span class="cx">     unsigned marginBeforeCollapse : 2; // EMarginCollapse
</span><span class="cx">     unsigned marginAfterCollapse : 2; // EMarginCollapse
</span><del>-    unsigned m_appearance : 6; // EAppearance
-    unsigned m_borderFit : 1; // EBorderFit
-    unsigned m_textCombine : 1; // CSS3 text-combine properties
</del><ins>+    unsigned appearance : 6; // EAppearance
+    unsigned borderFit : 1; // EBorderFit
+    unsigned textCombine : 1; // CSS3 text-combine properties
</ins><span class="cx"> 
</span><del>-    unsigned m_textDecorationStyle : 3; // TextDecorationStyle
</del><ins>+    unsigned textDecorationStyle : 3; // TextDecorationStyle
</ins><span class="cx"> 
</span><del>-    unsigned m_aspectRatioType : 2;
</del><ins>+    unsigned aspectRatioType : 2;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    unsigned m_effectiveBlendMode: 5; // EBlendMode
-    unsigned m_isolation : 1; // Isolation
</del><ins>+    unsigned effectiveBlendMode: 5; // EBlendMode
+    unsigned isolation : 1; // Isolation
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(APPLE_PAY)
</span><del>-    unsigned m_applePayButtonStyle : 2;
-    unsigned m_applePayButtonType : 3;
</del><ins>+    unsigned applePayButtonStyle : 2;
+    unsigned applePayButtonType : 3;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    unsigned m_objectFit : 3; // ObjectFit
</del><ins>+    unsigned objectFit : 3; // ObjectFit
</ins><span class="cx">     
</span><del>-    unsigned m_breakBefore : 4; // BreakBetween
-    unsigned m_breakAfter : 4;
-    unsigned m_breakInside : 3; // BreakInside
-    unsigned m_resize : 2; // EResize
</del><ins>+    unsigned breakBefore : 4; // BreakBetween
+    unsigned breakAfter : 4;
+    unsigned breakInside : 3; // BreakInside
+    unsigned resize : 2; // EResize
</ins><span class="cx"> 
</span><del>-    unsigned m_hasAttrContent : 1;
</del><ins>+    unsigned hasAttrContent : 1;
</ins><span class="cx"> 
</span><del>-    unsigned m_isPlaceholderStyle : 1;
</del><ins>+    unsigned isPlaceholderStyle : 1;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleRareNonInheritedData();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleTransformDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleTransformData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleTransformData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleTransformData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -27,19 +27,19 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> StyleTransformData::StyleTransformData()
</span><del>-    : m_operations(RenderStyle::initialTransform())
-    , m_x(RenderStyle::initialTransformOriginX())
-    , m_y(RenderStyle::initialTransformOriginY())
-    , m_z(RenderStyle::initialTransformOriginZ())
</del><ins>+    : operations(RenderStyle::initialTransform())
+    , x(RenderStyle::initialTransformOriginX())
+    , y(RenderStyle::initialTransformOriginY())
+    , z(RenderStyle::initialTransformOriginZ())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline StyleTransformData::StyleTransformData(const StyleTransformData&amp; o)
</del><ins>+inline StyleTransformData::StyleTransformData(const StyleTransformData&amp; other)
</ins><span class="cx">     : RefCounted&lt;StyleTransformData&gt;()
</span><del>-    , m_operations(o.m_operations)
-    , m_x(o.m_x)
-    , m_y(o.m_y)
-    , m_z(o.m_z)
</del><ins>+    , operations(other.operations)
+    , x(other.x)
+    , y(other.y)
+    , z(other.z)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -48,9 +48,9 @@
</span><span class="cx">     return adoptRef(*new StyleTransformData(*this));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool StyleTransformData::operator==(const StyleTransformData&amp; o) const
</del><ins>+bool StyleTransformData::operator==(const StyleTransformData&amp; other) const
</ins><span class="cx"> {
</span><del>-    return m_x == o.m_x &amp;&amp; m_y == o.m_y &amp;&amp; m_z == o.m_z &amp;&amp; m_operations == o.m_operations;
</del><ins>+    return x == other.x &amp;&amp; y == other.y &amp;&amp; z == other.z &amp;&amp; operations == other.operations;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleTransformDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleTransformData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleTransformData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleTransformData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -36,18 +36,18 @@
</span><span class="cx">     static Ref&lt;StyleTransformData&gt; create() { return adoptRef(*new StyleTransformData); }
</span><span class="cx">     Ref&lt;StyleTransformData&gt; copy() const;
</span><span class="cx"> 
</span><del>-    bool operator==(const StyleTransformData&amp; o) const;
-    bool operator!=(const StyleTransformData&amp; o) const
</del><ins>+    bool operator==(const StyleTransformData&amp;) const;
+    bool operator!=(const StyleTransformData&amp; other) const
</ins><span class="cx">     {
</span><del>-        return !(*this == o);
</del><ins>+        return !(*this == other);
</ins><span class="cx">     }
</span><span class="cx">     
</span><del>-    bool hasTransform() const { return m_operations.size(); }
</del><ins>+    bool hasTransform() const { return operations.size(); }
</ins><span class="cx"> 
</span><del>-    TransformOperations m_operations;
-    Length m_x;
-    Length m_y;
-    float m_z;
</del><ins>+    TransformOperations operations;
+    Length x;
+    Length y;
+    float z;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleTransformData();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleVisualDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleVisualData.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleVisualData.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleVisualData.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> StyleVisualData::StyleVisualData()
</span><span class="cx">     : hasClip(false)
</span><span class="cx">     , textDecoration(RenderStyle::initialTextDecoration())
</span><del>-    , m_zoom(RenderStyle::initialZoom())
</del><ins>+    , zoom(RenderStyle::initialZoom())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -37,12 +37,12 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline StyleVisualData::StyleVisualData(const StyleVisualData&amp; o)
</del><ins>+inline StyleVisualData::StyleVisualData(const StyleVisualData&amp; other)
</ins><span class="cx">     : RefCounted&lt;StyleVisualData&gt;()
</span><del>-    , clip(o.clip)
-    , hasClip(o.hasClip)
-    , textDecoration(o.textDecoration)
-    , m_zoom(RenderStyle::initialZoom())
</del><ins>+    , clip(other.clip)
+    , hasClip(other.hasClip)
+    , textDecoration(other.textDecoration)
+    , zoom(RenderStyle::initialZoom())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleVisualDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleVisualData.h (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleVisualData.h        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/rendering/style/StyleVisualData.h        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -37,19 +37,19 @@
</span><span class="cx">     Ref&lt;StyleVisualData&gt; copy() const;
</span><span class="cx">     ~StyleVisualData();
</span><span class="cx"> 
</span><del>-    bool operator==(const StyleVisualData&amp; o) const
</del><ins>+    bool operator==(const StyleVisualData&amp; other) const
</ins><span class="cx">     {
</span><del>-        return clip == o.clip
-            &amp;&amp; hasClip == o.hasClip
-            &amp;&amp; textDecoration == o.textDecoration
-            &amp;&amp; m_zoom == o.m_zoom;
</del><ins>+        return clip == other.clip
+            &amp;&amp; hasClip == other.hasClip
+            &amp;&amp; textDecoration == other.textDecoration
+            &amp;&amp; zoom == other.zoom;
</ins><span class="cx">     }
</span><del>-    bool operator!=(const StyleVisualData&amp; o) const { return !(*this == o); }
</del><ins>+    bool operator!=(const StyleVisualData&amp; other) const { return !(*this == other); }
</ins><span class="cx"> 
</span><span class="cx">     LengthBox clip;
</span><span class="cx">     bool hasClip : 1;
</span><span class="cx">     unsigned textDecoration : TextDecorationBits; // Text decorations defined *only* by this element.
</span><del>-    float m_zoom;
</del><ins>+    float zoom;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     StyleVisualData();
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStylePendingResourcescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StylePendingResources.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StylePendingResources.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebCore/style/StylePendingResources.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> 
</span><span class="cx"> void loadPendingResources(RenderStyle&amp; style, Document&amp; document, const Element* element)
</span><span class="cx"> {
</span><del>-    for (auto* backgroundLayer = style.backgroundLayers(); backgroundLayer; backgroundLayer = backgroundLayer-&gt;next())
</del><ins>+    for (auto* backgroundLayer = &amp;style.backgroundLayers(); backgroundLayer; backgroundLayer = backgroundLayer-&gt;next())
</ins><span class="cx">         loadPendingImage(document, backgroundLayer-&gt;image(), element);
</span><span class="cx"> 
</span><span class="cx">     for (auto* contentData = style.contentData(); contentData; contentData = contentData-&gt;next()) {
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">     if (auto* reflection = style.boxReflect())
</span><span class="cx">         loadPendingImage(document, reflection-&gt;mask().image(), element);
</span><span class="cx"> 
</span><del>-    for (auto* maskLayer = style.maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next())
</del><ins>+    for (auto* maskLayer = &amp;style.maskLayers(); maskLayer; maskLayer = maskLayer-&gt;next())
</ins><span class="cx">         loadPendingImage(document, maskLayer-&gt;image(), element);
</span><span class="cx"> 
</span><span class="cx">     if (style.shapeOutside())
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebKit/mac/ChangeLog        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2017-01-11  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from more of &quot;platform&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=166809
+
+        Reviewed by Sam Weinig.
+
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+        (NetscapePluginWidget::handleEvent): Pass a reference.
+        * WebView/WebView.mm:
+        (-[WebView _addScrollerDashboardRegionsForFrameView:dashboardRegions:]):
+        Updated since the children set now contains Ref instead of RefPtr.
+
</ins><span class="cx"> 2017-01-13  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         [WebIDL] Remove custom bindings for DeviceMotionEvent and DeviceOrientationEvent
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1849,7 +1849,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void handleEvent(Event* event)
</span><span class="cx">     {
</span><del>-        Frame* frame = Frame::frameForWidget(this);
</del><ins>+        Frame* frame = Frame::frameForWidget(*this);
</ins><span class="cx">         if (!frame)
</span><span class="cx">             return;
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -3470,8 +3470,8 @@
</span><span class="cx">     NSView *documentView = [[kit(&amp;frameView-&gt;frame()) frameView] documentView];
</span><span class="cx"> 
</span><span class="cx">     for (const auto&amp; widget: frameView-&gt;children()) {
</span><del>-        if (is&lt;FrameView&gt;(*widget)) {
-            [self _addScrollerDashboardRegionsForFrameView:downcast&lt;FrameView&gt;(widget.get()) dashboardRegions:regions];
</del><ins>+        if (is&lt;FrameView&gt;(widget)) {
+            [self _addScrollerDashboardRegionsForFrameView:&amp;downcast&lt;FrameView&gt;(widget.get()) dashboardRegions:regions];
</ins><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebKit2/ChangeLog        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2017-01-11  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from more of &quot;platform&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=166809
+
+        Reviewed by Sam Weinig.
+
+        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
+        (IPC::ArgumentCoder&lt;TextureMapperAnimation&gt;::encode): Updated since timing function
+        returns a raw pointer.
+        (IPC::ArgumentCoder&lt;TextureMapperAnimation&gt;::decode): Updated since timing function
+        setters now takes an rvalue reference.
+
+        * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
+        (WebKit::PDFPlugin::createScrollbar): Updated since addChild now takes a reference.
+
</ins><span class="cx"> 2017-01-13  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [WK2] Add diagnostic logging to measure WebGL usage
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCoordinatedGraphicsCoordinatedGraphicsArgumentCoderscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -457,7 +457,7 @@
</span><span class="cx">     encoder &lt;&lt; static_cast&lt;uint32_t&gt;(animationObject-&gt;fillMode());
</span><span class="cx">     encoder &lt;&lt; animationObject-&gt;duration();
</span><span class="cx">     encoder &lt;&lt; animationObject-&gt;iterationCount();
</span><del>-    encodeTimingFunction(encoder, animationObject-&gt;timingFunction().get());
</del><ins>+    encodeTimingFunction(encoder, animationObject-&gt;timingFunction());
</ins><span class="cx"> 
</span><span class="cx">     const KeyframeValueList&amp; keyframes = animation.keyframes();
</span><span class="cx">     encoder.encodeEnum(keyframes.property());
</span><span class="lines">@@ -527,7 +527,7 @@
</span><span class="cx">     animationObject-&gt;setDuration(duration);
</span><span class="cx">     animationObject-&gt;setIterationCount(iterationCount);
</span><span class="cx">     if (timingFunction)
</span><del>-        animationObject-&gt;setTimingFunction(timingFunction);
</del><ins>+        animationObject-&gt;setTimingFunction(WTFMove(timingFunction));
</ins><span class="cx"> 
</span><span class="cx">     AnimatedPropertyID property;
</span><span class="cx">     if (!decoder.decodeEnum(property))
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm (210757 => 210758)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2017-01-14 03:17:54 UTC (rev 210757)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2017-01-14 03:35:54 UTC (rev 210758)
</span><span class="lines">@@ -666,7 +666,7 @@
</span><span class="cx">                 scrollAnimator().setWheelEventTestTrigger(page-&gt;testTrigger());
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-    pluginView()-&gt;frame()-&gt;view()-&gt;addChild(widget.ptr());
</del><ins>+    pluginView()-&gt;frame()-&gt;view()-&gt;addChild(widget);
</ins><span class="cx">     return widget;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>