<!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>[211964] trunk/Source/WebCore</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/211964">211964</a></dd>
<dt>Author</dt> <dd>akling@apple.com</dd>
<dt>Date</dt> <dd>2017-02-09 09:47:33 -0800 (Thu, 09 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Document should always have a Settings.
&lt;https://webkit.org/b/120172&gt;

Reviewed by Antti Koivisto.

Since a Document can't move between Frames, and it's either frameless
or partnered with a Frame provided at construction time, we know that
it will never need to switch between different Settings objects either.

Give Document a Ref&lt;Settings&gt; that contains either the Frame's Settings
or a default-constructed Settings object if frameless.
Document::settings() is promoted to a reference getter.

The bulk of this patch is removing now-unnecessary null checks.

* Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
(WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory):
* Modules/plugins/PluginReplacement.h:
(WebCore::ReplacementPlugin::isEnabledBySettings):
* Modules/plugins/QuickTimePluginReplacement.h:
* Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::isEnabledBySettings):
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::isEnabledBySettings):
* Modules/plugins/YouTubePluginReplacement.h:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::constructCommon):
* bindings/js/CachedScriptFetcher.cpp:
(WebCore::CachedScriptFetcher::requestScriptWithCache):
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::webFontsShouldAlwaysFallBack):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertResize):
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueFontFamily):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::checkForGenericFamilyChange):
(WebCore::StyleResolver::initializeFontStyle):
* css/StyleResolver.h:
(WebCore::StyleResolver::settings):
(WebCore::StyleResolver::documentSettings): Deleted.
* css/parser/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::setReadyState):
(WebCore::Document::setVisualUpdatesAllowed):
(WebCore::Document::defaultCharsetForLegacyBindings):
(WebCore::Document::recalcStyle):
(WebCore::Document::implicitClose):
(WebCore::Document::minimumLayoutDelay):
(WebCore::Document::setDomain):
(WebCore::Document::audioPlaybackRequiresUserGesture):
(WebCore::Document::videoPlaybackRequiresUserGesture):
(WebCore::Document::storageBlockingStateDidChange):
(WebCore::Document::isTelephoneNumberParsingEnabled):
(WebCore::Document::initSecurityContext):
(WebCore::Document::initDNSPrefetch):
(WebCore::Document::getCachedLocale):
(WebCore::Document::shouldEnforceContentDispositionAttachmentSandbox):
(WebCore::Document::settings): Deleted.
* dom/Document.h:
(WebCore::Document::settings):
* dom/Element.cpp:
(WebCore::subpixelMetricsEnabled):
* dom/ExtensionStyleSheets.cpp:
(WebCore::ExtensionStyleSheets::pageUserSheet):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::dispatchErrorEvent):
* dom/ScriptableDocumentParser.cpp:
(WebCore::ScriptableDocumentParser::ScriptableDocumentParser):
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::requestAnimationFrameEnabled):
* dom/make_names.pl:
(printConstructorInterior):
* editing/Editor.cpp:
* editing/markup.cpp:
(WebCore::createMarkupInternal):
* html/FTPDirectoryDocument.cpp:
(WebCore::createTemplateDocumentData):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setActive):
(WebCore::HTMLAnchorElement::sendPings):
(WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType):
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::canEmbedJava):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext2d):
(WebCore::shouldEnableWebGL):
(WebCore::HTMLCanvasElement::shouldAccelerate):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submitImplicitly):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::setLocation):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::updateImageControls):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::sourceURI):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory):
(WebCore::HTMLMediaElement::mediaPlayerAcceleratedCompositingEnabled):
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::mediaPlayerNeedsSiteSpecificHacks):
(WebCore::HTMLMediaElement::mediaPlayerNetworkInterfaceName):
(WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor):
(WebCore::HTMLMediaElement::doesHaveAttribute):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::HTMLVideoElement):
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading):
(WebCore::MediaElementSession::allowsPictureInPicture):
(WebCore::MediaElementSession::maximumMediaSourceBufferSize):
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLink):
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtocol):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::toggleSimpleLineLayout):
* style/StyleFontSizeFunctions.cpp:
(WebCore::Style::computedFontSizeFromSpecifiedSize):
(WebCore::Style::fontSizeForKeyword):
(WebCore::Style::legacyFontSizeForPixelSize):
* style/StyleScope.cpp:
(WebCore::Style::Scope::collectActiveStyleSheets):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::usesDashboardBackwardCompatibilityMode):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmedialegacyWebKitMediaKeySessioncpp">trunk/Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsPluginReplacementh">trunk/Source/WebCore/Modules/plugins/PluginReplacement.h</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsQuickTimePluginReplacementh">trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsQuickTimePluginReplacementmm">trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp">trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsYouTubePluginReplacementh">trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsCachedScriptFetchercpp">trunk/Source/WebCore/bindings/js/CachedScriptFetcher.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFacecpp">trunk/Source/WebCore/css/CSSFontFace.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontSelectorcpp">trunk/Source/WebCore/css/CSSFontSelector.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="#trunkSourceWebCorecssStyleResolverh">trunk/Source/WebCore/css/StyleResolver.h</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParsercpp">trunk/Source/WebCore/css/parser/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomExtensionStyleSheetscpp">trunk/Source/WebCore/dom/ExtensionStyleSheets.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContextcpp">trunk/Source/WebCore/dom/ScriptExecutionContext.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptableDocumentParsercpp">trunk/Source/WebCore/dom/ScriptableDocumentParser.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptedAnimationControllercpp">trunk/Source/WebCore/dom/ScriptedAnimationController.cpp</a></li>
<li><a href="#trunkSourceWebCoredommake_namespl">trunk/Source/WebCore/dom/make_names.pl</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorcpp">trunk/Source/WebCore/editing/Editor.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkupcpp">trunk/Source/WebCore/editing/markup.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFTPDirectoryDocumentcpp">trunk/Source/WebCore/html/FTPDirectoryDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAppletElementcpp">trunk/Source/WebCore/html/HTMLAppletElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCanvasElementcpp">trunk/Source/WebCore/html/HTMLCanvasElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormElementcpp">trunk/Source/WebCore/html/HTMLFormElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFrameElementBasecpp">trunk/Source/WebCore/html/HTMLFrameElementBase.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageLoadercpp">trunk/Source/WebCore/html/HTMLImageLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLLinkElementcpp">trunk/Source/WebCore/html/HTMLLinkElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaElementSessioncpp">trunk/Source/WebCore/html/MediaElementSession.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserOptionscpp">trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderLinkLoadercpp">trunk/Source/WebCore/loader/LinkLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorepagecspContentSecurityPolicycpp">trunk/Source/WebCore/page/csp/ContentSecurityPolicy.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingSimpleLineLayoutcpp">trunk/Source/WebCore/rendering/SimpleLineLayout.cpp</a></li>
<li><a href="#trunkSourceWebCorestyleStyleFontSizeFunctionscpp">trunk/Source/WebCore/style/StyleFontSizeFunctions.cpp</a></li>
<li><a href="#trunkSourceWebCorestyleStyleScopecpp">trunk/Source/WebCore/style/StyleScope.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/ChangeLog        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -1,3 +1,151 @@
</span><ins>+2017-02-09  Andreas Kling  &lt;akling@apple.com&gt;
+
+        Document should always have a Settings.
+        &lt;https://webkit.org/b/120172&gt;
+
+        Reviewed by Antti Koivisto.
+
+        Since a Document can't move between Frames, and it's either frameless
+        or partnered with a Frame provided at construction time, we know that
+        it will never need to switch between different Settings objects either.
+
+        Give Document a Ref&lt;Settings&gt; that contains either the Frame's Settings
+        or a default-constructed Settings object if frameless.
+        Document::settings() is promoted to a reference getter.
+
+        The bulk of this patch is removing now-unnecessary null checks.
+
+        * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
+        (WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory):
+        * Modules/plugins/PluginReplacement.h:
+        (WebCore::ReplacementPlugin::isEnabledBySettings):
+        * Modules/plugins/QuickTimePluginReplacement.h:
+        * Modules/plugins/QuickTimePluginReplacement.mm:
+        (WebCore::QuickTimePluginReplacement::isEnabledBySettings):
+        * Modules/plugins/YouTubePluginReplacement.cpp:
+        (WebCore::YouTubePluginReplacement::isEnabledBySettings):
+        * Modules/plugins/YouTubePluginReplacement.h:
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::constructCommon):
+        * bindings/js/CachedScriptFetcher.cpp:
+        (WebCore::CachedScriptFetcher::requestScriptWithCache):
+        * css/CSSFontFace.cpp:
+        (WebCore::CSSFontFace::appendSources):
+        (WebCore::CSSFontFace::webFontsShouldAlwaysFallBack):
+        * css/CSSFontSelector.cpp:
+        (WebCore::CSSFontSelector::fallbackFontCount):
+        (WebCore::CSSFontSelector::fallbackFontAt):
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertResize):
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyValueFontFamily):
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::StyleResolver):
+        (WebCore::StyleResolver::defaultStyleForElement):
+        (WebCore::StyleResolver::adjustRenderStyle):
+        (WebCore::StyleResolver::checkForGenericFamilyChange):
+        (WebCore::StyleResolver::initializeFontStyle):
+        * css/StyleResolver.h:
+        (WebCore::StyleResolver::settings):
+        (WebCore::StyleResolver::documentSettings): Deleted.
+        * css/parser/CSSParser.cpp:
+        (WebCore::CSSParserContext::CSSParserContext):
+        * dom/Document.cpp:
+        (WebCore::Document::Document):
+        (WebCore::Document::setReadyState):
+        (WebCore::Document::setVisualUpdatesAllowed):
+        (WebCore::Document::defaultCharsetForLegacyBindings):
+        (WebCore::Document::recalcStyle):
+        (WebCore::Document::implicitClose):
+        (WebCore::Document::minimumLayoutDelay):
+        (WebCore::Document::setDomain):
+        (WebCore::Document::audioPlaybackRequiresUserGesture):
+        (WebCore::Document::videoPlaybackRequiresUserGesture):
+        (WebCore::Document::storageBlockingStateDidChange):
+        (WebCore::Document::isTelephoneNumberParsingEnabled):
+        (WebCore::Document::initSecurityContext):
+        (WebCore::Document::initDNSPrefetch):
+        (WebCore::Document::getCachedLocale):
+        (WebCore::Document::shouldEnforceContentDispositionAttachmentSandbox):
+        (WebCore::Document::settings): Deleted.
+        * dom/Document.h:
+        (WebCore::Document::settings):
+        * dom/Element.cpp:
+        (WebCore::subpixelMetricsEnabled):
+        * dom/ExtensionStyleSheets.cpp:
+        (WebCore::ExtensionStyleSheets::pageUserSheet):
+        * dom/ScriptExecutionContext.cpp:
+        (WebCore::ScriptExecutionContext::dispatchErrorEvent):
+        * dom/ScriptableDocumentParser.cpp:
+        (WebCore::ScriptableDocumentParser::ScriptableDocumentParser):
+        * dom/ScriptedAnimationController.cpp:
+        (WebCore::ScriptedAnimationController::requestAnimationFrameEnabled):
+        * dom/make_names.pl:
+        (printConstructorInterior):
+        * editing/Editor.cpp:
+        * editing/markup.cpp:
+        (WebCore::createMarkupInternal):
+        * html/FTPDirectoryDocument.cpp:
+        (WebCore::createTemplateDocumentData):
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::setActive):
+        (WebCore::HTMLAnchorElement::sendPings):
+        (WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType):
+        * html/HTMLAppletElement.cpp:
+        (WebCore::HTMLAppletElement::canEmbedJava):
+        * html/HTMLCanvasElement.cpp:
+        (WebCore::HTMLCanvasElement::getContext2d):
+        (WebCore::shouldEnableWebGL):
+        (WebCore::HTMLCanvasElement::shouldAccelerate):
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::submitImplicitly):
+        * html/HTMLFrameElementBase.cpp:
+        (WebCore::HTMLFrameElementBase::setLocation):
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::updateImageControls):
+        * html/HTMLImageLoader.cpp:
+        (WebCore::HTMLImageLoader::sourceURI):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::HTMLMediaElement):
+        (WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory):
+        (WebCore::HTMLMediaElement::mediaPlayerAcceleratedCompositingEnabled):
+        (WebCore::HTMLMediaElement::enterFullscreen):
+        (WebCore::HTMLMediaElement::exitFullscreen):
+        (WebCore::HTMLMediaElement::mediaPlayerNeedsSiteSpecificHacks):
+        (WebCore::HTMLMediaElement::mediaPlayerNetworkInterfaceName):
+        (WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor):
+        (WebCore::HTMLMediaElement::doesHaveAttribute):
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::HTMLVideoElement):
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
+        (WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
+        (WebCore::MediaElementSession::allowsAutomaticMediaDataLoading):
+        (WebCore::MediaElementSession::allowsPictureInPicture):
+        (WebCore::MediaElementSession::maximumMediaSourceBufferSize):
+        * html/parser/HTMLParserOptions.cpp:
+        (WebCore::HTMLParserOptions::HTMLParserOptions):
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::loadLink):
+        * page/csp/ContentSecurityPolicy.cpp:
+        (WebCore::ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtocol):
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::toggleSimpleLineLayout):
+        * style/StyleFontSizeFunctions.cpp:
+        (WebCore::Style::computedFontSizeFromSpecifiedSize):
+        (WebCore::Style::fontSizeForKeyword):
+        (WebCore::Style::legacyFontSizeForPixelSize):
+        * style/StyleScope.cpp:
+        (WebCore::Style::Scope::collectActiveStyleSheets):
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::usesDashboardBackwardCompatibilityMode):
+
</ins><span class="cx"> 2017-02-09  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use all cacheable speculatively loaded responses
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmedialegacyWebKitMediaKeySessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -223,11 +223,7 @@
</span><span class="cx">     if (!document)
</span><span class="cx">         return emptyString();
</span><span class="cx"> 
</span><del>-    auto* settings = document-&gt;settings();
-    if (!settings)
-        return emptyString();
-
-    auto storageDirectory = settings-&gt;mediaKeysStorageDirectory();
</del><ins>+    auto storageDirectory = document-&gt;settings().mediaKeysStorageDirectory();
</ins><span class="cx">     if (storageDirectory.isEmpty())
</span><span class="cx">         return emptyString();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsPluginReplacementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/PluginReplacement.h (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/PluginReplacement.h        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/Modules/plugins/PluginReplacement.h        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> typedef bool (*PluginReplacementSupportsType)(const String&amp;);
</span><span class="cx"> typedef bool (*PluginReplacementSupportsFileExtension)(const String&amp;);
</span><span class="cx"> typedef bool (*PluginReplacementSupportsURL)(const URL&amp;);
</span><del>-typedef bool (*PluginReplacementEnabledForSettings)(const Settings*);
</del><ins>+typedef bool (*PluginReplacementEnabledForSettings)(const Settings&amp;);
</ins><span class="cx"> 
</span><span class="cx"> class ReplacementPlugin {
</span><span class="cx"> public:
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     bool supportsType(const String&amp; mimeType) const { return m_supportsType(mimeType); }
</span><span class="cx">     bool supportsFileExtension(const String&amp; extension) const { return m_supportsFileExtension(extension); }
</span><span class="cx">     bool supportsURL(const URL&amp; url) const { return m_supportsURL(url); }
</span><del>-    bool isEnabledBySettings(const Settings* settings) const { return m_isEnabledBySettings(settings); };
</del><ins>+    bool isEnabledBySettings(const Settings&amp; settings) const { return m_isEnabledBySettings(settings); };
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CreatePluginReplacement m_constructor;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsQuickTimePluginReplacementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     static bool supportsMimeType(const String&amp;);
</span><span class="cx">     static bool supportsFileExtension(const String&amp;);
</span><span class="cx">     static bool supportsURL(const URL&amp;) { return true; }
</span><del>-    static bool isEnabledBySettings(const Settings*);
</del><ins>+    static bool isEnabledBySettings(const Settings&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool installReplacement(ShadowRoot&amp;) final;
</span><span class="cx">     JSC::JSObject* scriptObject() final { return m_scriptObject; }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsQuickTimePluginReplacementmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -115,9 +115,9 @@
</span><span class="cx">     return extensionSet.get().contains(extension);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool QuickTimePluginReplacement::isEnabledBySettings(const Settings* settings)
</del><ins>+bool QuickTimePluginReplacement::isEnabledBySettings(const Settings&amp; settings)
</ins><span class="cx"> {
</span><del>-    return settings-&gt;quickTimePluginReplacementEnabled();
</del><ins>+    return settings.quickTimePluginReplacementEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> QuickTimePluginReplacement::QuickTimePluginReplacement(HTMLPlugInElement&amp; plugin, const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -346,9 +346,9 @@
</span><span class="cx">     return isYouTubeURL(url);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool YouTubePluginReplacement::isEnabledBySettings(const Settings* settings)
</del><ins>+bool YouTubePluginReplacement::isEnabledBySettings(const Settings&amp; settings)
</ins><span class="cx"> {
</span><del>-    return settings-&gt;youTubeFlashPluginReplacementEnabled();
</del><ins>+    return settings.youTubeFlashPluginReplacementEnabled();
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsYouTubePluginReplacementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">     static bool supportsMimeType(const String&amp;);
</span><span class="cx">     static bool supportsFileExtension(const String&amp;);
</span><span class="cx">     static bool supportsURL(const URL&amp;);
</span><del>-    static bool isEnabledBySettings(const Settings*);
</del><ins>+    static bool isEnabledBySettings(const Settings&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool installReplacement(ShadowRoot&amp;) final;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx">     m_listener = AudioListener::create();
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    if (!document()-&gt;settings() || document()-&gt;settings()-&gt;audioPlaybackRequiresUserGesture())
</del><ins>+    if (document()-&gt;settings().audioPlaybackRequiresUserGesture())
</ins><span class="cx">         addBehaviorRestriction(RequireUserGestureForAudioStartRestriction);
</span><span class="cx">     else
</span><span class="cx">         m_restrictions = NoRestrictions;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsCachedScriptFetchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/CachedScriptFetcher.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/CachedScriptFetcher.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/bindings/js/CachedScriptFetcher.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -46,8 +46,7 @@
</span><span class="cx"> 
</span><span class="cx"> CachedResourceHandle&lt;CachedScript&gt; CachedScriptFetcher::requestScriptWithCache(Document&amp; document, const URL&amp; sourceURL, const String&amp; crossOriginMode) const
</span><span class="cx"> {
</span><del>-    auto* settings = document.settings();
-    if (settings &amp;&amp; !settings-&gt;isScriptEnabled())
</del><ins>+    if (!document.settings().isScriptEnabled())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     ASSERT(document.contentSecurityPolicy());
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFace.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFace.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/css/CSSFontFace.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx">         fontFaceElement = item.svgFontFaceElement();
</span><span class="cx"> #endif
</span><span class="cx">         if (!item.isLocal()) {
</span><del>-            Settings* settings = document ? document-&gt;settings() : nullptr;
</del><ins>+            Settings* settings = document ? &amp;document-&gt;settings() : nullptr;
</ins><span class="cx">             bool allowDownloading = foundSVGFont || (settings &amp;&amp; settings-&gt;downloadableBinaryFontsEnabled());
</span><span class="cx">             if (allowDownloading &amp;&amp; item.isSupportedFormat() &amp;&amp; document) {
</span><span class="cx">                 if (CachedFont* cachedFont = item.cachedFont(document, foundSVGFont, isInitiatingElementInUserAgentShadowTree))
</span><span class="lines">@@ -517,7 +517,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool CSSFontFace::webFontsShouldAlwaysFallBack() const
</span><span class="cx"> {
</span><del>-    return m_fontSelector &amp;&amp; m_fontSelector-&gt;document() &amp;&amp; m_fontSelector-&gt;document()-&gt;settings() &amp;&amp; m_fontSelector-&gt;document()-&gt;settings()-&gt;webFontsAlwaysFallBack();
</del><ins>+    return m_fontSelector &amp;&amp; m_fontSelector-&gt;document() &amp;&amp; m_fontSelector-&gt;document()-&gt;settings().webFontsAlwaysFallBack();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> size_t CSSFontFace::pump()
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontSelectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontSelector.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontSelector.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/css/CSSFontSelector.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -369,10 +369,7 @@
</span><span class="cx">     if (!m_document)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    if (Settings* settings = m_document-&gt;settings())
-        return settings-&gt;fontFallbackPrefersPictographs() ? 1 : 0;
-
-    return 0;
</del><ins>+    return m_document-&gt;settings().fontFallbackPrefersPictographs() ? 1 : 0;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;Font&gt; CSSFontSelector::fallbackFontAt(const FontDescription&amp; fontDescription, size_t index)
</span><span class="lines">@@ -382,11 +379,10 @@
</span><span class="cx">     if (!m_document)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    Settings* settings = m_document-&gt;settings();
-    if (!settings || !settings-&gt;fontFallbackPrefersPictographs())
</del><ins>+    if (!m_document-&gt;settings().fontFallbackPrefersPictographs())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    return FontCache::singleton().fontForFamily(fontDescription, settings-&gt;pictographFontFamily());
</del><ins>+    return FontCache::singleton().fontForFamily(fontDescription, m_document-&gt;settings().pictographFontFamily());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -558,10 +558,9 @@
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><span class="cx"> 
</span><span class="cx">     EResize resize = RESIZE_NONE;
</span><del>-    if (primitiveValue.valueID() == CSSValueAuto) {
-        if (Settings* settings = styleResolver.document().settings())
-            resize = settings-&gt;textAreasAreResizable() ? RESIZE_BOTH : RESIZE_NONE;
-    } else
</del><ins>+    if (primitiveValue.valueID() == CSSValueAuto)
+        resize = styleResolver.settings().textAreasAreResizable() ? RESIZE_BOTH : RESIZE_NONE;
+    else
</ins><span class="cx">         resize = primitiveValue;
</span><span class="cx"> 
</span><span class="cx">     return resize;
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderCustom.h (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderCustom.h        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/css/StyleBuilderCustom.h        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -878,8 +878,7 @@
</span><span class="cx">         } else {
</span><span class="cx">             switch (contentValue.valueID()) {
</span><span class="cx">             case CSSValueWebkitBody:
</span><del>-                if (Settings* settings = styleResolver.document().settings())
-                    family = settings-&gt;standardFontFamily();
</del><ins>+                family = styleResolver.settings().standardFontFamily();
</ins><span class="cx">                 break;
</span><span class="cx">             case CSSValueSerif:
</span><span class="cx">                 family = serifFamily;
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx">     : m_matchedPropertiesCacheAdditionsSinceLastSweep(0)
</span><span class="cx">     , m_matchedPropertiesCacheSweepTimer(*this, &amp;StyleResolver::sweepMatchedPropertiesCache)
</span><span class="cx">     , m_document(document)
</span><del>-    , m_matchAuthorAndUserStyles(m_document.settings() ? m_document.settings()-&gt;authorAndUserStylesEnabled() : true)
</del><ins>+    , m_matchAuthorAndUserStyles(m_document.settings().authorAndUserStylesEnabled())
</ins><span class="cx"> #if ENABLE(CSS_DEVICE_ADAPTATION)
</span><span class="cx">     , m_viewportStyleResolver(ViewportStyleResolver::create(&amp;document))
</span><span class="cx"> #endif
</span><span class="lines">@@ -682,12 +682,8 @@
</span><span class="cx"> {
</span><span class="cx">     m_state.setStyle(RenderStyle::createPtr());
</span><span class="cx">     // Make sure our fonts are initialized if we don't inherit them from our parent style.
</span><del>-    initializeFontStyle(documentSettings());
-    if (documentSettings())
-        m_state.style()-&gt;fontCascade().update(&amp;document().fontSelector());
-    else
-        m_state.style()-&gt;fontCascade().update(nullptr);
-
</del><ins>+    initializeFontStyle();
+    m_state.style()-&gt;fontCascade().update(&amp;document().fontSelector());
</ins><span class="cx">     return m_state.takeStyle();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -921,7 +917,7 @@
</span><span class="cx">             || style.hasBlendMode()
</span><span class="cx">             || style.hasIsolation()
</span><span class="cx">             || style.position() == StickyPosition
</span><del>-            || (style.position() == FixedPosition &amp;&amp; documentSettings() &amp;&amp; documentSettings()-&gt;fixedPositionCreatesStackingContext())
</del><ins>+            || (style.position() == FixedPosition &amp;&amp; settings().fixedPositionCreatesStackingContext())
</ins><span class="cx">             || style.hasFlowFrom()
</span><span class="cx">             || style.willChangeCreatesStackingContext())
</span><span class="cx">             style.setZIndex(0);
</span><span class="lines">@@ -1742,9 +1738,8 @@
</span><span class="cx">     if (CSSValueID sizeIdentifier = childFont.keywordSizeAsIdentifier())
</span><span class="cx">         size = Style::fontSizeForKeyword(sizeIdentifier, childFont.useFixedDefaultSize(), document());
</span><span class="cx">     else {
</span><del>-        Settings* settings = documentSettings();
-        float fixedScaleFactor = (settings &amp;&amp; settings-&gt;defaultFixedFontSize() &amp;&amp; settings-&gt;defaultFontSize())
-            ? static_cast&lt;float&gt;(settings-&gt;defaultFixedFontSize()) / settings-&gt;defaultFontSize()
</del><ins>+        float fixedScaleFactor = (settings().defaultFixedFontSize() &amp;&amp; settings().defaultFontSize())
+            ? static_cast&lt;float&gt;(settings().defaultFixedFontSize()) / settings().defaultFontSize()
</ins><span class="cx">             : 1;
</span><span class="cx">         size = parentFont.useFixedDefaultSize() ?
</span><span class="cx">                 childFont.specifiedSize() / fixedScaleFactor :
</span><span class="lines">@@ -1756,11 +1751,10 @@
</span><span class="cx">     style-&gt;setFontDescription(newFontDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void StyleResolver::initializeFontStyle(Settings* settings)
</del><ins>+void StyleResolver::initializeFontStyle()
</ins><span class="cx"> {
</span><span class="cx">     FontCascadeDescription fontDescription;
</span><del>-    if (settings)
-        fontDescription.setRenderingMode(settings-&gt;fontRenderingMode());
</del><ins>+    fontDescription.setRenderingMode(settings().fontRenderingMode());
</ins><span class="cx">     fontDescription.setOneFamily(standardFamily);
</span><span class="cx">     fontDescription.setKeywordSizeFromIdentifier(CSSValueMedium);
</span><span class="cx">     setFontSize(fontDescription, Style::fontSizeForKeyword(CSSValueMedium, false, document()));
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.h (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.h        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/css/StyleResolver.h        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">     const Element* element() { return m_state.element(); }
</span><span class="cx">     Document&amp; document() { return m_document; }
</span><span class="cx">     const Document&amp; document() const { return m_document; }
</span><del>-    Settings* documentSettings() { return m_document.settings(); }
</del><ins>+    Settings&amp; settings() { return m_document.settings(); }
</ins><span class="cx"> 
</span><span class="cx">     void appendAuthorStyleSheets(const Vector&lt;RefPtr&lt;CSSStyleSheet&gt;&gt;&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx">     void applyPropertyToCurrentStyle(CSSPropertyID, CSSValue*);
</span><span class="cx"> 
</span><span class="cx">     void updateFont();
</span><del>-    void initializeFontStyle(Settings*);
</del><ins>+    void initializeFontStyle();
</ins><span class="cx"> 
</span><span class="cx">     void setFontSize(FontCascadeDescription&amp;, float size);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/css/parser/CSSParser.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -84,16 +84,14 @@
</span><span class="cx">     , cssGridLayoutEnabled(document.isCSSGridLayoutEnabled())
</span><span class="cx"> #endif
</span><span class="cx"> {
</span><del>-    if (Settings* settings = document.settings()) {
-        needsSiteSpecificQuirks = settings-&gt;needsSiteSpecificQuirks();
-        enforcesCSSMIMETypeInNoQuirksMode = settings-&gt;enforceCSSMIMETypeInNoQuirksMode();
-        useLegacyBackgroundSizeShorthandBehavior = settings-&gt;useLegacyBackgroundSizeShorthandBehavior();
</del><ins>+    needsSiteSpecificQuirks = document.settings().needsSiteSpecificQuirks();
+    enforcesCSSMIMETypeInNoQuirksMode = document.settings().enforceCSSMIMETypeInNoQuirksMode();
+    useLegacyBackgroundSizeShorthandBehavior = document.settings().useLegacyBackgroundSizeShorthandBehavior();
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-        textAutosizingEnabled = settings-&gt;textAutosizingEnabled();
</del><ins>+    textAutosizingEnabled = document.settings().textAutosizingEnabled();
</ins><span class="cx"> #endif
</span><del>-        springTimingFunctionEnabled = settings-&gt;springTimingFunctionEnabled();
-        deferredCSSParserEnabled = settings-&gt;deferredCSSParserEnabled();
-    }
</del><ins>+    springTimingFunctionEnabled = document.settings().springTimingFunctionEnabled();
+    deferredCSSParserEnabled = document.settings().deferredCSSParserEnabled();
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     // FIXME: Force the site specific quirk below to work on iOS. Investigating other site specific quirks
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/Document.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -440,6 +440,7 @@
</span><span class="cx">     , m_touchEventsChangedTimer(*this, &amp;Document::touchEventsChangedTimerFired)
</span><span class="cx"> #endif
</span><span class="cx">     , m_referencingNodeCount(0)
</span><ins>+    , m_settings(frame ? Ref&lt;Settings&gt;(frame-&gt;settings()) : Settings::create(nullptr))
</ins><span class="cx">     , m_hasNodesWithPlaceholderStyle(false)
</span><span class="cx">     , m_needsNotifyRemoveAllPendingStylesheet(false)
</span><span class="cx">     , m_ignorePendingStylesheets(false)
</span><span class="lines">@@ -1235,13 +1236,13 @@
</span><span class="cx">     m_readyState = readyState;
</span><span class="cx">     dispatchEvent(Event::create(eventNames().readystatechangeEvent, false, false));
</span><span class="cx">     
</span><del>-    if (settings() &amp;&amp; settings()-&gt;suppressesIncrementalRendering())
</del><ins>+    if (settings().suppressesIncrementalRendering())
</ins><span class="cx">         setVisualUpdatesAllowed(readyState);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Document::setVisualUpdatesAllowed(ReadyState readyState)
</span><span class="cx"> {
</span><del>-    ASSERT(settings() &amp;&amp; settings()-&gt;suppressesIncrementalRendering());
</del><ins>+    ASSERT(settings().suppressesIncrementalRendering());
</ins><span class="cx">     switch (readyState) {
</span><span class="cx">     case Loading:
</span><span class="cx">         ASSERT(!m_visualUpdatesSuppressionTimer.isActive());
</span><span class="lines">@@ -1275,7 +1276,7 @@
</span><span class="cx">     if (visualUpdatesAllowed)
</span><span class="cx">         m_visualUpdatesSuppressionTimer.stop();
</span><span class="cx">     else
</span><del>-        m_visualUpdatesSuppressionTimer.startOneShot(settings()-&gt;incrementalRenderingSuppressionTimeoutInSeconds());
</del><ins>+        m_visualUpdatesSuppressionTimer.startOneShot(settings().incrementalRenderingSuppressionTimeoutInSeconds());
</ins><span class="cx"> 
</span><span class="cx">     if (!visualUpdatesAllowed)
</span><span class="cx">         return;
</span><span class="lines">@@ -1334,9 +1335,9 @@
</span><span class="cx"> 
</span><span class="cx"> String Document::defaultCharsetForLegacyBindings() const
</span><span class="cx"> {
</span><del>-    if (Settings* settings = this-&gt;settings())
-        return settings-&gt;defaultTextEncodingName();
-    return UTF8Encoding().domName();
</del><ins>+    if (!frame())
+        UTF8Encoding().domName();
+    return settings().defaultTextEncodingName();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Document::setCharset(const String&amp; charset)
</span><span class="lines">@@ -1699,11 +1700,6 @@
</span><span class="cx">     return m_frame ? m_frame-&gt;page() : nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Settings* Document::settings() const
-{
-    return m_frame ? &amp;m_frame-&gt;settings() : nullptr;
-}
-
</del><span class="cx"> Ref&lt;Range&gt; Document::createRange()
</span><span class="cx"> {
</span><span class="cx">     return Range::create(*this);
</span><span class="lines">@@ -1811,10 +1807,8 @@
</span><span class="cx"> 
</span><span class="cx">             // Inserting the pictograph font at the end of the font fallback list is done by the
</span><span class="cx">             // font selector, so set a font selector if needed.
</span><del>-            if (Settings* settings = this-&gt;settings()) {
-                if (settings-&gt;fontFallbackPrefersPictographs())
-                    documentStyle.fontCascade().update(&amp;fontSelector());
-            }
</del><ins>+            if (settings().fontFallbackPrefersPictographs())
+                documentStyle.fontCascade().update(&amp;fontSelector());
</ins><span class="cx"> 
</span><span class="cx">             auto documentChange = Style::determineChange(documentStyle, m_renderView-&gt;style());
</span><span class="cx">             if (documentChange != Style::NoChange)
</span><span class="lines">@@ -2704,7 +2698,7 @@
</span><span class="cx">     // fires. This will improve onload scores, and other browsers do it.
</span><span class="cx">     // If they wanna cheat, we can too. -dwh
</span><span class="cx"> 
</span><del>-    if (frame()-&gt;navigationScheduler().locationChangePending() &amp;&amp; timeSinceDocumentCreation() &lt; settings()-&gt;layoutInterval()) {
</del><ins>+    if (frame()-&gt;navigationScheduler().locationChangePending() &amp;&amp; timeSinceDocumentCreation() &lt; settings().layoutInterval()) {
</ins><span class="cx">         // Just bail out. Before or during the onload we were shifted to another page.
</span><span class="cx">         // The old i-Bench suite does this. When this happens don't bother painting or laying out.        
</span><span class="cx">         m_processingLoadEvent = false;
</span><span class="lines">@@ -2787,10 +2781,10 @@
</span><span class="cx">         return 0_s;
</span><span class="cx">     
</span><span class="cx">     auto elapsed = timeSinceDocumentCreation();
</span><del>-    m_overMinimumLayoutThreshold = elapsed &gt; settings()-&gt;layoutInterval();
</del><ins>+    m_overMinimumLayoutThreshold = elapsed &gt; settings().layoutInterval();
</ins><span class="cx"> 
</span><span class="cx">     // We'll want to schedule the timer to fire at the minimum layout threshold.
</span><del>-    return std::max(0_s, settings()-&gt;layoutInterval() - elapsed);
</del><ins>+    return std::max(0_s, settings().layoutInterval() - elapsed);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Seconds Document::timeSinceDocumentCreation() const
</span><span class="lines">@@ -4332,7 +4326,7 @@
</span><span class="cx">     if (newLength &gt;= oldLength)
</span><span class="cx">         return Exception { SECURITY_ERR };
</span><span class="cx"> 
</span><del>-    auto ipAddressSetting = settings() &amp;&amp; settings()-&gt;treatIPAddressAsDomain() ? OriginAccessEntry::TreatIPAddressAsDomain : OriginAccessEntry::TreatIPAddressAsIPAddress;
</del><ins>+    auto ipAddressSetting = settings().treatIPAddressAsDomain() ? OriginAccessEntry::TreatIPAddressAsDomain : OriginAccessEntry::TreatIPAddressAsIPAddress;
</ins><span class="cx">     OriginAccessEntry accessEntry { securityOrigin().protocol(), newDomain, OriginAccessEntry::AllowSubdomains, ipAddressSetting };
</span><span class="cx">     if (!accessEntry.matchesOrigin(securityOrigin()))
</span><span class="cx">         return Exception { SECURITY_ERR };
</span><span class="lines">@@ -4674,8 +4668,7 @@
</span><span class="cx">             return policy == AutoplayPolicy::AllowWithoutSound || policy == AutoplayPolicy::Deny;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Settings* settings = this-&gt;settings();
-    return settings &amp;&amp; settings-&gt;audioPlaybackRequiresUserGesture();
</del><ins>+    return settings().audioPlaybackRequiresUserGesture();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Document::videoPlaybackRequiresUserGesture() const
</span><span class="lines">@@ -4687,14 +4680,12 @@
</span><span class="cx">             return policy == AutoplayPolicy::Deny;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Settings* settings = this-&gt;settings();
-    return settings &amp;&amp; settings-&gt;videoPlaybackRequiresUserGesture();
</del><ins>+    return settings().videoPlaybackRequiresUserGesture();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Document::storageBlockingStateDidChange()
</span><span class="cx"> {
</span><del>-    if (Settings* settings = this-&gt;settings())
-        securityOrigin().setStorageBlockingPolicy(settings-&gt;storageBlockingPolicy());
</del><ins>+    securityOrigin().setStorageBlockingPolicy(settings().storageBlockingPolicy());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Document::privateBrowsingStateDidChange() 
</span><span class="lines">@@ -5078,8 +5069,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool Document::isTelephoneNumberParsingEnabled() const
</span><span class="cx"> {
</span><del>-    Settings* settings = this-&gt;settings();
-    return settings &amp;&amp; settings-&gt;telephoneNumberParsingEnabled() &amp;&amp; m_isTelephoneNumberParsingAllowed;
</del><ins>+    return settings().telephoneNumberParsingEnabled() &amp;&amp; m_isTelephoneNumberParsingAllowed;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Document::setIsTelephoneNumberParsingAllowed(bool isTelephoneNumberParsingAllowed)
</span><span class="lines">@@ -5171,26 +5161,24 @@
</span><span class="cx">         enforceSandboxFlags(SandboxScripts | SandboxPlugins);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (Settings* settings = this-&gt;settings()) {
-        if (settings-&gt;needsStorageAccessFromFileURLsQuirk())
-            securityOrigin().grantStorageAccessFromFileURLsQuirk();
-        if (!settings-&gt;webSecurityEnabled()) {
-            // Web security is turned off. We should let this document access every other document. This is used primary by testing
-            // harnesses for web sites.
</del><ins>+    if (settings().needsStorageAccessFromFileURLsQuirk())
+        securityOrigin().grantStorageAccessFromFileURLsQuirk();
+    if (!settings().webSecurityEnabled()) {
+        // Web security is turned off. We should let this document access every other document. This is used primary by testing
+        // harnesses for web sites.
+        securityOrigin().grantUniversalAccess();
+    } else if (securityOrigin().isLocal()) {
+        if (settings().allowUniversalAccessFromFileURLs() || m_frame-&gt;loader().client().shouldForceUniversalAccessFromLocalURL(m_url)) {
+            // Some clients want local URLs to have universal access, but that setting is dangerous for other clients.
</ins><span class="cx">             securityOrigin().grantUniversalAccess();
</span><del>-        } else if (securityOrigin().isLocal()) {
-            if (settings-&gt;allowUniversalAccessFromFileURLs() || m_frame-&gt;loader().client().shouldForceUniversalAccessFromLocalURL(m_url)) {
-                // Some clients want local URLs to have universal access, but that setting is dangerous for other clients.
-                securityOrigin().grantUniversalAccess();
-            } else if (!settings-&gt;allowFileAccessFromFileURLs()) {
-                // Some clients want local URLs to have even tighter restrictions by default, and not be able to access other local files.
-                // FIXME 81578: The naming of this is confusing. Files with restricted access to other local files
-                // still can have other privileges that can be remembered, thereby not making them unique origins.
-                securityOrigin().enforceFilePathSeparation();
-            }
</del><ins>+        } else if (!settings().allowFileAccessFromFileURLs()) {
+            // Some clients want local URLs to have even tighter restrictions by default, and not be able to access other local files.
+            // FIXME 81578: The naming of this is confusing. Files with restricted access to other local files
+            // still can have other privileges that can be remembered, thereby not making them unique origins.
+            securityOrigin().enforceFilePathSeparation();
</ins><span class="cx">         }
</span><del>-        securityOrigin().setStorageBlockingPolicy(settings-&gt;storageBlockingPolicy());
</del><span class="cx">     }
</span><ins>+    securityOrigin().setStorageBlockingPolicy(settings().storageBlockingPolicy());
</ins><span class="cx"> 
</span><span class="cx">     Document* parentDocument = ownerElement() ? &amp;ownerElement()-&gt;document() : nullptr;
</span><span class="cx">     if (parentDocument &amp;&amp; m_frame-&gt;loader().shouldTreatURLAsSrcdocDocument(url())) {
</span><span class="lines">@@ -5369,10 +5357,8 @@
</span><span class="cx"> 
</span><span class="cx"> void Document::initDNSPrefetch()
</span><span class="cx"> {
</span><del>-    Settings* settings = this-&gt;settings();
-
</del><span class="cx">     m_haveExplicitlyDisabledDNSPrefetch = false;
</span><del>-    m_isDNSPrefetchEnabled = settings &amp;&amp; settings-&gt;dnsPrefetchingEnabled() &amp;&amp; securityOrigin().protocol() == &quot;http&quot;;
</del><ins>+    m_isDNSPrefetchEnabled = settings().dnsPrefetchingEnabled() &amp;&amp; securityOrigin().protocol() == &quot;http&quot;;
</ins><span class="cx"> 
</span><span class="cx">     // Inherit DNS prefetch opt-out from parent frame    
</span><span class="cx">     if (Document* parent = parentDocument()) {
</span><span class="lines">@@ -6623,7 +6609,7 @@
</span><span class="cx"> Locale&amp; Document::getCachedLocale(const AtomicString&amp; locale)
</span><span class="cx"> {
</span><span class="cx">     AtomicString localeKey = locale;
</span><del>-    if (locale.isEmpty() || !settings() || !settings()-&gt;langAttributeAwareFormControlUIEnabled())
</del><ins>+    if (locale.isEmpty() || !settings().langAttributeAwareFormControlUIEnabled())
</ins><span class="cx">         localeKey = defaultLanguage();
</span><span class="cx">     LocaleIdentifierToLocaleMap::AddResult result = m_localeCache.add(localeKey, nullptr);
</span><span class="cx">     if (result.isNewEntry)
</span><span class="lines">@@ -6917,7 +6903,7 @@
</span><span class="cx">     if (m_isSynthesized)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    bool contentDispositionAttachmentSandboxEnabled = settings() &amp;&amp; settings()-&gt;contentDispositionAttachmentSandboxEnabled();
</del><ins>+    bool contentDispositionAttachmentSandboxEnabled = settings().contentDispositionAttachmentSandboxEnabled();
</ins><span class="cx">     bool responseIsAttachment = false;
</span><span class="cx">     if (DocumentLoader* documentLoader = m_frame ? m_frame-&gt;loader().activeDocumentLoader() : nullptr)
</span><span class="cx">         responseIsAttachment = documentLoader-&gt;response().isAttachment();
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/Document.h        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -510,7 +510,7 @@
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT FrameView* view() const; // can be NULL
</span><span class="cx">     WEBCORE_EXPORT Page* page() const; // can be NULL
</span><del>-    WEBCORE_EXPORT Settings* settings() const; // can be NULL
</del><ins>+    Settings&amp; settings() const { return m_settings.get(); }
</ins><span class="cx"> 
</span><span class="cx">     float deviceScaleFactor() const;
</span><span class="cx"> 
</span><span class="lines">@@ -1383,6 +1383,8 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned m_referencingNodeCount;
</span><span class="cx"> 
</span><ins>+    const Ref&lt;Settings&gt; m_settings;
+
</ins><span class="cx">     std::unique_ptr&lt;StyleResolver&gt; m_userAgentShadowTreeStyleResolver;
</span><span class="cx">     bool m_hasNodesWithPlaceholderStyle;
</span><span class="cx">     bool m_needsNotifyRemoveAllPendingStylesheet;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/Element.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -795,7 +795,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool subpixelMetricsEnabled(const Document&amp; document)
</span><span class="cx"> {
</span><del>-    return document.settings() &amp;&amp; document.settings()-&gt;subpixelCSSOMElementMetricsEnabled();
</del><ins>+    return document.settings().subpixelCSSOMElementMetricsEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static double convertToNonSubpixelValueIfNeeded(double value, const Document&amp; document, LegacyCSSOMElementMetricsRoundingStrategy roundStrategy = Round)
</span></span></pre></div>
<a id="trunkSourceWebCoredomExtensionStyleSheetscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ExtensionStyleSheets.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ExtensionStyleSheets.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/ExtensionStyleSheets.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     if (userSheetText.isEmpty())
</span><span class="cx">         return 0;
</span><span class="cx">     
</span><del>-    m_pageUserSheet = createExtensionsStyleSheet(m_document, m_document.settings()-&gt;userStyleSheetLocation(), userSheetText, UserStyleUserLevel);
</del><ins>+    m_pageUserSheet = createExtensionsStyleSheet(m_document, m_document.settings().userStyleSheetLocation(), userSheetText, UserStyleUserLevel);
</ins><span class="cx"> 
</span><span class="cx">     return m_pageUserSheet.get();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -392,8 +392,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     if (target-&gt;toDOMWindow() &amp;&amp; is&lt;Document&gt;(*this)) {
</span><del>-        Settings* settings = downcast&lt;Document&gt;(*this).settings();
-        if (settings &amp;&amp; !settings-&gt;shouldDispatchJavaScriptWindowOnErrorEvents())
</del><ins>+        if (!downcast&lt;Document&gt;(*this).settings().shouldDispatchJavaScriptWindowOnErrorEvents())
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptableDocumentParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptableDocumentParser.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptableDocumentParser.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/ScriptableDocumentParser.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">     if (!pluginContentIsAllowed(m_parserContentPolicy))
</span><span class="cx">         m_parserContentPolicy = allowPluginContent(m_parserContentPolicy);
</span><span class="cx"> 
</span><del>-    if (scriptingContentIsAllowed(m_parserContentPolicy) &amp;&amp; (document.settings() &amp;&amp; !document.settings()-&gt;scriptMarkupEnabled()))
</del><ins>+    if (scriptingContentIsAllowed(m_parserContentPolicy) &amp;&amp; !document.settings().scriptMarkupEnabled())
</ins><span class="cx">         m_parserContentPolicy = disallowScriptingContent(m_parserContentPolicy);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptedAnimationControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptedAnimationController.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptedAnimationController.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/ScriptedAnimationController.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool ScriptedAnimationController::requestAnimationFrameEnabled() const
</span><span class="cx"> {
</span><del>-    return m_document &amp;&amp; (!m_document-&gt;settings() || m_document-&gt;settings()-&gt;requestAnimationFrameEnabled());
</del><ins>+    return m_document &amp;&amp; m_document-&gt;settings().requestAnimationFrameEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScriptedAnimationController::suspend()
</span></span></pre></div>
<a id="trunkSourceWebCoredommake_namespl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/make_names.pl (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/make_names.pl        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/dom/make_names.pl        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -415,8 +415,7 @@
</span><span class="cx">     # instead of having all the support for this here in this script?
</span><span class="cx">     if ($enabledTags{$tagName}{wrapperOnlyIfMediaIsAvailable}) {
</span><span class="cx">         print F &lt;&lt;END
</span><del>-    Settings* settings = document.settings();
-    if (!MediaPlayer::isAvailable() || (settings &amp;&amp; !settings-&gt;mediaEnabled()))
</del><ins>+    if (!MediaPlayer::isAvailable() || !document.settings().mediaEnabled())
</ins><span class="cx">         return $parameters{fallbackInterfaceName}::create($constructorTagName, document);
</span><span class="cx">     
</span><span class="cx"> END
</span><span class="lines">@@ -435,8 +434,7 @@
</span><span class="cx">     my $settingsConditional = $enabledTags{$tagName}{settingsConditional};
</span><span class="cx">     if ($settingsConditional) {
</span><span class="cx">         print F &lt;&lt;END
</span><del>-    Settings* settings = document.settings();
-    if (!settings || !settings-&gt;${settingsConditional}())
</del><ins>+    if (!document.settings().${settingsConditional}())
</ins><span class="cx">         return $parameters{fallbackInterfaceName}::create($constructorTagName, document);
</span><span class="cx"> END
</span><span class="cx"> ;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/editing/Editor.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -107,8 +107,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool dispatchBeforeInputEvent(Element&amp; element, const AtomicString&amp; inputType, const String&amp; data = { }, RefPtr&lt;DataTransfer&gt;&amp;&amp; dataTransfer = nullptr, const Vector&lt;RefPtr&lt;StaticRange&gt;&gt;&amp; targetRanges = { }, bool cancelable = true)
</span><span class="cx"> {
</span><del>-    auto* settings = element.document().settings();
-    if (!settings || !settings-&gt;inputEventsEnabled())
</del><ins>+    if (!element.document().settings().inputEventsEnabled())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     return element.dispatchEvent(InputEvent::create(eventNames().beforeinputEvent, inputType, true, cancelable, element.document().defaultView(), data, WTFMove(dataTransfer), targetRanges, 0));
</span><span class="lines">@@ -116,8 +115,7 @@
</span><span class="cx"> 
</span><span class="cx"> static void dispatchInputEvent(Element&amp; element, const AtomicString&amp; inputType, const String&amp; data = { }, RefPtr&lt;DataTransfer&gt;&amp;&amp; dataTransfer = nullptr, const Vector&lt;RefPtr&lt;StaticRange&gt;&gt;&amp; targetRanges = { })
</span><span class="cx"> {
</span><del>-    auto* settings = element.document().settings();
-    if (settings &amp;&amp; settings-&gt;inputEventsEnabled()) {
</del><ins>+    if (element.document().settings().inputEventsEnabled()) {
</ins><span class="cx">         // FIXME: We should not be dispatching to the scoped queue here. Normally, input events are dispatched in CompositeEditCommand::apply after the end of the scope,
</span><span class="cx">         // but TypingCommands are special in that existing TypingCommands that are applied again fire input events *from within* the scope by calling typingAddedToOpenCommand.
</span><span class="cx">         // Instead, TypingCommands should always dispatch events synchronously after the end of the scoped queue in CompositeEditCommand::apply. To work around this for the
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/editing/markup.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -598,7 +598,7 @@
</span><span class="cx">     Node* specialCommonAncestor = highestAncestorToWrapMarkup(&amp;range, shouldAnnotate);
</span><span class="cx"> 
</span><span class="cx">     bool needsPositionStyleConversion = body &amp;&amp; fullySelectedRoot == body
</span><del>-        &amp;&amp; document.settings() &amp;&amp; document.settings()-&gt;shouldConvertPositionStyleOnCopy();
</del><ins>+        &amp;&amp; document.settings().shouldConvertPositionStyleOnCopy();
</ins><span class="cx">     StyledMarkupAccumulator accumulator(nodes, shouldResolveURLs, shouldAnnotate, &amp;range, needsPositionStyleConversion, specialCommonAncestor);
</span><span class="cx">     Node* pastEnd = range.pastLastNode();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFTPDirectoryDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FTPDirectoryDocument.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -276,11 +276,9 @@
</span><span class="cx">     appendEntry(filename, processFilesizeString(result.fileSize, result.type == FTPDirectoryEntry), processFileDateString(result.modifiedTime), result.type == FTPDirectoryEntry);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline RefPtr&lt;SharedBuffer&gt; createTemplateDocumentData(Settings* settings)
</del><ins>+static inline RefPtr&lt;SharedBuffer&gt; createTemplateDocumentData(Settings&amp; settings)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;SharedBuffer&gt; buffer;
-    if (settings)
-        buffer = SharedBuffer::createWithContentsOfFile(settings-&gt;ftpDirectoryTemplatePath());
</del><ins>+    RefPtr&lt;SharedBuffer&gt; buffer = SharedBuffer::createWithContentsOfFile(settings.ftpDirectoryTemplatePath());
</ins><span class="cx">     if (buffer)
</span><span class="cx">         LOG(FTP, &quot;Loaded FTPDirectoryTemplate of length %i\n&quot;, buffer-&gt;size());
</span><span class="cx">     return buffer;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -201,9 +201,7 @@
</span><span class="cx"> void HTMLAnchorElement::setActive(bool down, bool pause)
</span><span class="cx"> {
</span><span class="cx">     if (hasEditableStyle()) {
</span><del>-        EditableLinkBehavior editableLinkBehavior = EditableLinkDefaultBehavior;
-        if (Settings* settings = document().settings())
-            editableLinkBehavior = settings-&gt;editableLinkBehavior();
</del><ins>+        EditableLinkBehavior editableLinkBehavior = document().settings().editableLinkBehavior();
</ins><span class="cx">             
</span><span class="cx">         switch (editableLinkBehavior) {
</span><span class="cx">             default:
</span><span class="lines">@@ -353,9 +351,12 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLAnchorElement::sendPings(const URL&amp; destinationURL)
</span><span class="cx"> {
</span><del>-    if (!hasAttributeWithoutSynchronization(pingAttr) || !document().settings() || !document().settings()-&gt;hyperlinkAuditingEnabled())
</del><ins>+    if (!document().frame())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+    if (!hasAttributeWithoutSynchronization(pingAttr) || !document().settings().hyperlinkAuditingEnabled())
+        return;
+
</ins><span class="cx">     SpaceSplitString pingURLs(attributeWithoutSynchronization(pingAttr), false);
</span><span class="cx">     for (unsigned i = 0; i &lt; pingURLs.size(); i++)
</span><span class="cx">         PingLoader::sendPing(*document().frame(), document().completeURL(pingURLs[i]), destinationURL);
</span><span class="lines">@@ -405,11 +406,7 @@
</span><span class="cx">     if (!hasEditableStyle())
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    Settings* settings = document().settings();
-    if (!settings)
-        return true;
-
-    switch (settings-&gt;editableLinkBehavior()) {
</del><ins>+    switch (document().settings().editableLinkBehavior()) {
</ins><span class="cx">     case EditableLinkDefaultBehavior:
</span><span class="cx">     case EditableLinkAlwaysLive:
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAppletElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAppletElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAppletElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLAppletElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -181,16 +181,12 @@
</span><span class="cx">     if (document().isSandboxed(SandboxPlugins))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Settings* settings = document().settings();
-    if (!settings)
</del><ins>+    if (!document().settings().isJavaEnabled())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!settings-&gt;isJavaEnabled())
</del><ins>+    if (document().securityOrigin().isLocal() &amp;&amp; !document().settings().isJavaEnabledForLocalFiles())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (document().securityOrigin().isLocal() &amp;&amp; !settings-&gt;isJavaEnabledForLocalFiles())
-        return false;
-
</del><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCanvasElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -204,8 +204,7 @@
</span><span class="cx">     if (!m_context) {
</span><span class="cx">         bool usesDashboardCompatibilityMode = false;
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><del>-        if (Settings* settings = document().settings())
-            usesDashboardCompatibilityMode = settings-&gt;usesDashboardBackwardCompatibilityMode();
</del><ins>+        usesDashboardCompatibilityMode = document().settings().usesDashboardBackwardCompatibilityMode();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">         // Make sure we don't use more pixel memory than the system can support.
</span><span class="lines">@@ -243,18 +242,15 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> }
</span><del>-static bool shouldEnableWebGL(Settings* settings)
</del><ins>+static bool shouldEnableWebGL(Settings&amp; settings)
</ins><span class="cx"> {
</span><del>-    if (!settings)
</del><ins>+    if (!settings.webGLEnabled())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!settings-&gt;webGLEnabled())
-        return false;
-
</del><span class="cx">     if (!requiresAcceleratedCompositingForWebGL())
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    return settings-&gt;acceleratedCompositingEnabled();
</del><ins>+    return settings.acceleratedCompositingEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLCanvasElement::is3dType(const String&amp; type)
</span><span class="lines">@@ -540,9 +536,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLCanvasElement::shouldAccelerate(const IntSize&amp; size) const
</span><span class="cx"> {
</span><del>-    if (!document().settings())
-        return false;
-    auto&amp; settings = *document().settings();
</del><ins>+    auto&amp; settings = document().settings();
</ins><span class="cx"> 
</span><span class="cx">     auto area = size.area&lt;RecordOverflow&gt;();
</span><span class="cx">     if (area.hasOverflowed())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -214,8 +214,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Older iOS apps using WebViews expect the behavior of auto submitting multi-input forms.
</span><del>-    Settings* settings = document().settings();
-    if (fromImplicitSubmissionTrigger &amp;&amp; (submissionTriggerCount == 1 || (settings &amp;&amp; settings-&gt;allowMultiElementImplicitSubmission())))
</del><ins>+    if (fromImplicitSubmissionTrigger &amp;&amp; (submissionTriggerCount == 1 || document().settings().allowMultiElementImplicitSubmission()))
</ins><span class="cx">         prepareForSubmission(event);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameElementBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameElementBase.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLFrameElementBase.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -174,8 +174,7 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLFrameElementBase::setLocation(const String&amp; str)
</span><span class="cx"> {
</span><del>-    Settings* settings = document().settings();
-    if (settings &amp;&amp; settings-&gt;needsAcrobatFrameReloadingQuirk() &amp;&amp; m_URL == str)
</del><ins>+    if (document().settings().needsAcrobatFrameReloadingQuirk() &amp;&amp; m_URL == str)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_URL = AtomicString(str);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -582,8 +582,7 @@
</span><span class="cx">     if (isInShadowTree())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Settings* settings = document().settings();
-    if (!settings || !settings-&gt;imageControlsEnabled())
</del><ins>+    if (!document().settings().imageControlsEnabled())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     bool hasControls = hasImageControls();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageLoader.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageLoader.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLImageLoader.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -66,8 +66,7 @@
</span><span class="cx"> String HTMLImageLoader::sourceURI(const AtomicString&amp; attr) const
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><del>-    Settings* settings = element().document().settings();
-    if (settings &amp;&amp; settings-&gt;usesDashboardBackwardCompatibilityMode() &amp;&amp; attr.length() &gt; 7 &amp;&amp; attr.startsWith(&quot;url(\&quot;&quot;) &amp;&amp; attr.endsWith(&quot;\&quot;)&quot;))
</del><ins>+    if (element().document().settings().usesDashboardBackwardCompatibilityMode() &amp;&amp; attr.length() &gt; 7 &amp;&amp; attr.startsWith(&quot;url(\&quot;&quot;) &amp;&amp; attr.endsWith(&quot;\&quot;)&quot;))
</ins><span class="cx">         return attr.string().substring(5, attr.length() - 7);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -2035,8 +2035,7 @@
</span><span class="cx">     parameters.maximum = maximum();
</span><span class="cx">     parameters.required = isRequired();
</span><span class="cx"> 
</span><del>-    Settings* settings = document().settings();
-    if (!settings || !settings-&gt;langAttributeAwareFormControlUIEnabled())
</del><ins>+    if (!document().settings().langAttributeAwareFormControlUIEnabled())
</ins><span class="cx">         parameters.locale = defaultLanguage();
</span><span class="cx">     else {
</span><span class="cx">         AtomicString computedLocale = computeInheritedLanguage();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLLinkElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLLinkElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLLinkElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLLinkElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     bool treatAsStyleSheet = m_relAttribute.isStyleSheet
</span><del>-        || (document().settings() &amp;&amp; document().settings()-&gt;treatsAnyTextCSSLinkAsStylesheet() &amp;&amp; m_type.containsIgnoringASCIICase(&quot;text/css&quot;));
</del><ins>+        || (document().settings().treatsAnyTextCSSLinkAsStylesheet() &amp;&amp; m_type.containsIgnoringASCIICase(&quot;text/css&quot;));
</ins><span class="cx"> 
</span><span class="cx">     if (m_disabledState != Disabled &amp;&amp; treatAsStyleSheet &amp;&amp; document().frame() &amp;&amp; url.isValid()) {
</span><span class="cx">         String charset = attributeWithoutSynchronization(charsetAttr);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -452,12 +452,11 @@
</span><span class="cx">     m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::RequireUserGestureToControlControlsManager);
</span><span class="cx">     m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::RequirePlaybackToControlControlsManager);
</span><span class="cx"> 
</span><del>-    Settings* settings = document.settings();
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     m_sendProgressEvents = false;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (settings &amp;&amp; settings-&gt;invisibleAutoplayNotPermitted())
</del><ins>+    if (document.settings().invisibleAutoplayNotPermitted())
</ins><span class="cx">         m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::InvisibleAutoplayNotPermitted);
</span><span class="cx"> 
</span><span class="cx">     if (document.ownerElement() || !document.isMediaDocument()) {
</span><span class="lines">@@ -466,7 +465,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (shouldVideoPlaybackRequireUserGesture) {
</span><span class="cx">             m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::RequireUserGestureForVideoRateChange);
</span><del>-            if (settings &amp;&amp; settings-&gt;requiresUserGestureToLoadVideo())
</del><ins>+            if (document.settings().requiresUserGestureToLoadVideo())
</ins><span class="cx">                 m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::RequireUserGestureForLoad);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -478,15 +477,15 @@
</span><span class="cx">             m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::RequireUserGestureToShowPlaybackTargetPicker);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-        if (!settings || !settings-&gt;mediaDataLoadsAutomatically())
</del><ins>+        if (!document.settings().mediaDataLoadsAutomatically())
</ins><span class="cx">             m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::AutoPreloadingNotPermitted);
</span><span class="cx"> 
</span><del>-        if (settings &amp;&amp; settings-&gt;mainContentUserGestureOverrideEnabled())
</del><ins>+        if (document.settings().mainContentUserGestureOverrideEnabled())
</ins><span class="cx">             m_mediaSession-&gt;addBehaviorRestriction(MediaElementSession::OverrideUserGestureRequirementForMainContent);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    if (settings &amp;&amp; !settings-&gt;videoPlaybackRequiresUserGesture() &amp;&amp; !settings-&gt;audioPlaybackRequiresUserGesture()) {
</del><ins>+    if (!document.settings().videoPlaybackRequiresUserGesture() &amp;&amp; !document.settings().audioPlaybackRequiresUserGesture()) {
</ins><span class="cx">         // Relax RequireUserGestureForFullscreen when videoPlaybackRequiresUserGesture and audioPlaybackRequiresUserGesture is not set:
</span><span class="cx">         m_mediaSession-&gt;removeBehaviorRestriction(MediaElementSession::RequireUserGestureForFullscreen);
</span><span class="cx">     }
</span><span class="lines">@@ -2438,11 +2437,7 @@
</span><span class="cx"> 
</span><span class="cx"> String HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory() const
</span><span class="cx"> {
</span><del>-    Settings* settings = document().settings();
-    if (!settings)
-        return emptyString();
-
-    String storageDirectory = settings-&gt;mediaKeysStorageDirectory();
</del><ins>+    String storageDirectory = document().settings().mediaKeysStorageDirectory();
</ins><span class="cx">     if (storageDirectory.isEmpty())
</span><span class="cx">         return emptyString();
</span><span class="cx"> 
</span><span class="lines">@@ -4578,7 +4573,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLMediaElement::mediaPlayerAcceleratedCompositingEnabled()
</span><span class="cx"> {
</span><del>-    return document().settings() &amp;&amp; document().settings()-&gt;acceleratedCompositingEnabled();
</del><ins>+    return document().settings().acceleratedCompositingEnabled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(WIN) &amp;&amp; USE(AVFOUNDATION)
</span><span class="lines">@@ -5431,7 +5426,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    if (document().settings()-&gt;fullScreenEnabled()) {
</del><ins>+    if (document().settings().fullScreenEnabled()) {
</ins><span class="cx">         if (mode == VideoFullscreenModeStandard) {
</span><span class="cx">             document().requestFullScreenForElement(this, Document::ExemptIFrameAllowFullScreenRequirement);
</span><span class="cx">             return;
</span><span class="lines">@@ -5470,7 +5465,7 @@
</span><span class="cx">     LOG(Media, &quot;HTMLMediaElement::exitFullscreen(%p)&quot;, this);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    if (document().settings() &amp;&amp; document().settings()-&gt;fullScreenEnabled() &amp;&amp; document().webkitCurrentFullScreenElement() == this) {
</del><ins>+    if (document().settings().fullScreenEnabled() &amp;&amp; document().webkitCurrentFullScreenElement() == this) {
</ins><span class="cx">         if (document().webkitIsFullScreen())
</span><span class="cx">             document().webkitCancelFullScreen();
</span><span class="cx">         return;
</span><span class="lines">@@ -5490,7 +5485,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!paused() &amp;&amp; m_mediaSession-&gt;requiresFullscreenForVideoPlayback(*this)) {
</span><del>-        if (!document().settings() || !document().settings()-&gt;allowsInlineMediaPlaybackAfterFullscreen() || isVideoTooSmallForInlinePlayback())
</del><ins>+        if (!document().settings().allowsInlineMediaPlaybackAfterFullscreen() || isVideoTooSmallForInlinePlayback())
</ins><span class="cx">             pauseInternal();
</span><span class="cx">         else {
</span><span class="cx">             // Allow inline playback, but set 'playsinline' so pausing and starting again (e.g. when scrubbing) won't go back to fullscreen.
</span><span class="lines">@@ -6310,8 +6305,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLMediaElement::mediaPlayerNeedsSiteSpecificHacks() const
</span><span class="cx"> {
</span><del>-    Settings* settings = document().settings();
-    return settings &amp;&amp; settings-&gt;needsSiteSpecificQuirks();
</del><ins>+    return document().settings().needsSiteSpecificQuirks();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String HTMLMediaElement::mediaPlayerDocumentHost() const
</span><span class="lines">@@ -6453,11 +6447,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> String HTMLMediaElement::mediaPlayerNetworkInterfaceName() const
</span><span class="cx"> {
</span><del>-    Settings* settings = document().settings();
-    if (!settings)
-        return emptyString();
-
-    return settings-&gt;networkInterfaceName();
</del><ins>+    return document().settings().networkInterfaceName();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLMediaElement::mediaPlayerGetRawCookies(const URL&amp; url, Vector&lt;Cookie&gt;&amp; cookies) const
</span><span class="lines">@@ -6702,8 +6692,7 @@
</span><span class="cx"> {
</span><span class="cx">     LOG(Media, &quot;MediaElement::setMediaControlsDependPageScaleFactor(%p) = %s&quot;, this, boolString(dependsOnPageScale));
</span><span class="cx"> 
</span><del>-    Settings* settings = document().settings();
-    if (settings &amp;&amp; settings-&gt;mediaControlsScaleWithPageZoom()) {
</del><ins>+    if (document().settings().mediaControlsScaleWithPageZoom()) {
</ins><span class="cx">         LOG(Media, &quot;MediaElement::setMediaControlsDependPageScaleFactor(%p) forced to false by Settings value&quot;, this);
</span><span class="cx">         m_mediaControlsDependOnPageScaleFactor = false;
</span><span class="cx">         return;
</span><span class="lines">@@ -7055,10 +7044,8 @@
</span><span class="cx">     if (elementValue.isNull())
</span><span class="cx">         return false;
</span><span class="cx">     
</span><del>-    if (Settings* settings = document().settings()) {
-        if (attributeName == HTMLNames::x_itunes_inherit_uri_query_componentAttr &amp;&amp; !settings-&gt;enableInheritURIQueryComponent())
-            return false;
-    }
</del><ins>+    if (attributeName == HTMLNames::x_itunes_inherit_uri_query_componentAttr &amp;&amp; !document().settings().enableInheritURIQueryComponent())
+        return false;
</ins><span class="cx"> 
</span><span class="cx">     if (value)
</span><span class="cx">         *value = elementValue;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -60,8 +60,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(hasTagName(videoTag));
</span><span class="cx">     setHasCustomStyleResolveCallbacks();
</span><del>-    if (document.settings())
-        m_defaultPosterURL = document.settings()-&gt;defaultVideoPosterURL();
</del><ins>+    m_defaultPosterURL = document.settings().defaultVideoPosterURL();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;HTMLVideoElement&gt; HTMLVideoElement::create(const QualifiedName&amp; tagName, Document&amp; document, bool createdByParser)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaElementSessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaElementSession.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaElementSession.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/MediaElementSession.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -398,8 +398,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool MediaElementSession::wirelessVideoPlaybackDisabled(const HTMLMediaElement&amp; element) const
</span><span class="cx"> {
</span><del>-    Settings* settings = element.document().settings();
-    if (!settings || !settings-&gt;allowsAirPlayForMediaPlayback()) {
</del><ins>+    if (!element.document().settings().allowsAirPlayForMediaPlayback()) {
</ins><span class="cx">         LOG(Media, &quot;MediaElementSession::wirelessVideoPlaybackDisabled - returning TRUE because of settings&quot;);
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="lines">@@ -541,11 +540,10 @@
</span><span class="cx">     if (is&lt;HTMLAudioElement&gt;(element))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Settings* settings = element.document().settings();
-    if (!settings || !settings-&gt;allowsInlineMediaPlayback())
</del><ins>+    if (!element.document().settings().allowsInlineMediaPlayback())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (!settings-&gt;inlineMediaPlaybackRequiresPlaysInlineAttribute())
</del><ins>+    if (!element.document().settings().inlineMediaPlaybackRequiresPlaysInlineAttribute())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -562,8 +560,7 @@
</span><span class="cx">     if (pageExplicitlyAllowsElementToAutoplayInline(element))
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    Settings* settings = element.document().settings();
-    if (settings &amp;&amp; settings-&gt;mediaDataLoadsAutomatically())
</del><ins>+    if (element.document().settings().mediaDataLoadsAutomatically())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     return false;
</span><span class="lines">@@ -594,8 +591,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool MediaElementSession::allowsPictureInPicture(const HTMLMediaElement&amp; element) const
</span><span class="cx"> {
</span><del>-    Settings* settings = element.document().settings();
-    return settings &amp;&amp; settings-&gt;allowsPictureInPictureMediaPlayback() &amp;&amp; !element.webkitCurrentPlaybackTargetIsWireless();
</del><ins>+    return element.document().settings().allowsPictureInPictureMediaPlayback() &amp;&amp; !element.webkitCurrentPlaybackTargetIsWireless();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -606,9 +602,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><del>-const unsigned fiveMinutesOf1080PVideo = 290 * 1024 * 1024; // 290 MB is approximately 5 minutes of 8Mbps (1080p) content.
-const unsigned fiveMinutesStereoAudio = 14 * 1024 * 1024; // 14 MB is approximately 5 minutes of 384kbps content.
-
</del><span class="cx"> size_t MediaElementSession::maximumMediaSourceBufferSize(const SourceBuffer&amp; buffer) const
</span><span class="cx"> {
</span><span class="cx">     // A good quality 1080p video uses 8,000 kbps and stereo audio uses 384 kbps, so assume 95% for video and 5% for audio.
</span><span class="lines">@@ -615,12 +608,7 @@
</span><span class="cx">     const float bufferBudgetPercentageForVideo = .95;
</span><span class="cx">     const float bufferBudgetPercentageForAudio = .05;
</span><span class="cx"> 
</span><del>-    size_t maximum;
-    Settings* settings = buffer.document().settings();
-    if (settings)
-        maximum = settings-&gt;maximumSourceBufferSize();
-    else
-        maximum = fiveMinutesOf1080PVideo + fiveMinutesStereoAudio;
</del><ins>+    size_t maximum = buffer.document().settings().maximumSourceBufferSize();
</ins><span class="cx"> 
</span><span class="cx">     // Allow a SourceBuffer to buffer as though it is audio-only even if it doesn't have any active tracks (yet).
</span><span class="cx">     size_t bufferSize = static_cast&lt;size_t&gt;(maximum * bufferBudgetPercentageForAudio);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserOptionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -49,9 +49,8 @@
</span><span class="cx">     scriptEnabled = frame &amp;&amp; frame-&gt;script().canExecuteScripts(NotAboutToExecuteScript);
</span><span class="cx">     pluginsEnabled = frame &amp;&amp; frame-&gt;loader().subframeLoader().allowPlugins();
</span><span class="cx"> 
</span><del>-    Settings* settings = document.settings();
-    usePreHTML5ParserQuirks = settings &amp;&amp; settings-&gt;usePreHTML5ParserQuirks();
-    maximumDOMTreeDepth = settings ? settings-&gt;maximumHTMLParserDOMTreeDepth() : Settings::defaultMaximumHTMLParserDOMTreeDepth;
</del><ins>+    usePreHTML5ParserQuirks = document.settings().usePreHTML5ParserQuirks();
+    maximumDOMTreeDepth = document.settings().maximumHTMLParserDOMTreeDepth();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -953,7 +953,7 @@
</span><span class="cx">         // allows apps which embed a WebView to retain the existing full screen
</span><span class="cx">         // video implementation without requiring them to implement their own full
</span><span class="cx">         // screen behavior.
</span><del>-        if (document().settings() &amp;&amp; document().settings()-&gt;fullScreenEnabled()) {
</del><ins>+        if (document().settings().fullScreenEnabled()) {
</ins><span class="cx">             if (document().webkitIsFullScreen() &amp;&amp; document().webkitCurrentFullScreenElement() == parentMediaElement(this))
</span><span class="cx">                 document().webkitCancelFullScreen();
</span><span class="cx">             else
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderLinkLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/LinkLoader.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/LinkLoader.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/loader/LinkLoader.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -199,10 +199,9 @@
</span><span class="cx"> bool LinkLoader::loadLink(const LinkRelAttribute&amp; relAttribute, const URL&amp; href, const String&amp; as, const String&amp; crossOrigin, Document&amp; document)
</span><span class="cx"> {
</span><span class="cx">     if (relAttribute.isDNSPrefetch) {
</span><del>-        Settings* settings = document.settings();
</del><span class="cx">         // FIXME: The href attribute of the link element can be in &quot;//hostname&quot; form, and we shouldn't attempt
</span><span class="cx">         // to complete that as URL &lt;https://bugs.webkit.org/show_bug.cgi?id=48857&gt;.
</span><del>-        if (settings &amp;&amp; settings-&gt;dnsPrefetchingEnabled() &amp;&amp; href.isValid() &amp;&amp; !href.isEmpty() &amp;&amp; document.frame())
</del><ins>+        if (document.settings().dnsPrefetchingEnabled() &amp;&amp; href.isValid() &amp;&amp; !href.isEmpty() &amp;&amp; document.frame())
</ins><span class="cx">             document.frame()-&gt;loader().client().prefetchDNS(href.host());
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagecspContentSecurityPolicycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/csp/ContentSecurityPolicy.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/csp/ContentSecurityPolicy.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/page/csp/ContentSecurityPolicy.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -256,7 +256,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtocol() const
</span><span class="cx"> {
</span><del>-    if (Settings* settings = is&lt;Document&gt;(m_scriptExecutionContext) ? downcast&lt;Document&gt;(*m_scriptExecutionContext).settings() : nullptr)
</del><ins>+    if (Settings* settings = is&lt;Document&gt;(m_scriptExecutionContext) ? &amp;downcast&lt;Document&gt;(*m_scriptExecutionContext).settings() : nullptr)
</ins><span class="cx">         return settings-&gt;allowContentSecurityPolicySourceStarToMatchAnyProtocol();
</span><span class="cx">     return false;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingSimpleLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/SimpleLineLayout.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -1179,10 +1179,8 @@
</span><span class="cx"> void toggleSimpleLineLayout()
</span><span class="cx"> {
</span><span class="cx">     for (const auto* document : Document::allDocuments()) {
</span><del>-        auto* settings = document-&gt;settings();
-        if (!settings)
-            continue;
-        settings-&gt;setSimpleLineLayoutEnabled(!settings-&gt;simpleLineLayoutEnabled());
</del><ins>+        auto&amp; settings = document-&gt;settings();
+        settings.setSimpleLineLayoutEnabled(!settings.simpleLineLayoutEnabled());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleFontSizeFunctionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleFontSizeFunctions.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleFontSizeFunctions.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/style/StyleFontSizeFunctions.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     UseSmartMinimumForFontFize
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static float computedFontSizeFromSpecifiedSize(float specifiedSize, bool isAbsoluteSize, float zoomFactor, MinimumFontSizeRule minimumSizeRule, const Settings* settings)
</del><ins>+static float computedFontSizeFromSpecifiedSize(float specifiedSize, bool isAbsoluteSize, float zoomFactor, MinimumFontSizeRule minimumSizeRule, const Settings&amp; settings)
</ins><span class="cx"> {
</span><span class="cx">     // Text with a 0px font size should not be visible and therefore needs to be
</span><span class="cx">     // exempt from minimum font size rules. Acid3 relies on this for pixel-perfect
</span><span class="lines">@@ -64,14 +64,11 @@
</span><span class="cx">     // However we always allow the page to set an explicit pixel size that is smaller,
</span><span class="cx">     // since sites will mis-render otherwise (e.g., http://www.gamespot.com with a 9px minimum).
</span><span class="cx"> 
</span><del>-    if (!settings)
-        return 1.0f;
-
</del><span class="cx">     if (minimumSizeRule == DoNotApplyMinimumFontSize)
</span><span class="cx">         return specifiedSize;
</span><span class="cx"> 
</span><del>-    int minSize = settings-&gt;minimumFontSize();
-    int minLogicalSize = settings-&gt;minimumLogicalFontSize();
</del><ins>+    int minSize = settings.minimumFontSize();
+    int minLogicalSize = settings.minimumLogicalFontSize();
</ins><span class="cx">     float zoomedSize = specifiedSize * zoomFactor;
</span><span class="cx"> 
</span><span class="cx">     // Apply the hard minimum first. We only apply the hard minimum if after zooming we're still too small.
</span><span class="lines">@@ -151,12 +148,8 @@
</span><span class="cx"> 
</span><span class="cx"> float fontSizeForKeyword(unsigned keywordID, bool shouldUseFixedDefaultSize, const Document&amp; document)
</span><span class="cx"> {
</span><del>-    Settings* settings = document.settings();
-    if (!settings)
-        return 1.0f;
-
</del><span class="cx">     bool quirksMode = document.inQuirksMode();
</span><del>-    int mediumSize = shouldUseFixedDefaultSize ? settings-&gt;defaultFixedFontSize() : settings-&gt;defaultFontSize();
</del><ins>+    int mediumSize = shouldUseFixedDefaultSize ? document.settings().defaultFixedFontSize() : document.settings().defaultFontSize();
</ins><span class="cx">     if (mediumSize &gt;= fontSizeTableMin &amp;&amp; mediumSize &lt;= fontSizeTableMax) {
</span><span class="cx">         // Look up the entry in the table.
</span><span class="cx">         int row = mediumSize - fontSizeTableMin;
</span><span class="lines">@@ -165,7 +158,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Value is outside the range of the table. Apply the scale factor instead.
</span><del>-    float minLogicalSize = std::max(settings-&gt;minimumLogicalFontSize(), 1);
</del><ins>+    float minLogicalSize = std::max(document.settings().minimumLogicalFontSize(), 1);
</ins><span class="cx">     return std::max(fontSizeFactors[keywordID - CSSValueXxSmall] * mediumSize, minLogicalSize);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -182,12 +175,8 @@
</span><span class="cx"> 
</span><span class="cx"> int legacyFontSizeForPixelSize(int pixelFontSize, bool shouldUseFixedDefaultSize, const Document&amp; document)
</span><span class="cx"> {
</span><del>-    Settings* settings = document.settings();
-    if (!settings)
-        return 1;
-
</del><span class="cx">     bool quirksMode = document.inQuirksMode();
</span><del>-    int mediumSize = shouldUseFixedDefaultSize ? settings-&gt;defaultFixedFontSize() : settings-&gt;defaultFontSize();
</del><ins>+    int mediumSize = shouldUseFixedDefaultSize ? document.settings().defaultFixedFontSize() : document.settings().defaultFontSize();
</ins><span class="cx">     if (mediumSize &gt;= fontSizeTableMin &amp;&amp; mediumSize &lt;= fontSizeTableMax) {
</span><span class="cx">         int row = mediumSize - fontSizeTableMin;
</span><span class="cx">         return findNearestLegacyFontSize&lt;int&gt;(pixelFontSize, quirksMode ? quirksFontSizeTable[row] : strictFontSizeTable[row], 1);
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleScope.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleScope.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/style/StyleScope.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Scope::collectActiveStyleSheets(Vector&lt;RefPtr&lt;StyleSheet&gt;&gt;&amp; sheets)
</span><span class="cx"> {
</span><del>-    if (m_document.settings() &amp;&amp; !m_document.settings()-&gt;authorAndUserStylesEnabled())
</del><ins>+    if (!m_document.settings().authorAndUserStylesEnabled())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; node : m_styleSheetCandidateNodes) {
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (211963 => 211964)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2017-02-09 17:36:58 UTC (rev 211963)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2017-02-09 17:47:33 UTC (rev 211964)
</span><span class="lines">@@ -145,8 +145,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (scriptExecutionContext()-&gt;isWorkerGlobalScope())
</span><span class="cx">         return false;
</span><del>-    Settings* settings = document()-&gt;settings();
-    return settings &amp;&amp; settings-&gt;usesDashboardBackwardCompatibilityMode();
</del><ins>+    return document()-&gt;settings().usesDashboardBackwardCompatibilityMode();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span></span></pre>
</div>
</div>

</body>
</html>