<!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>[161045] trunk/Source/WebKit2</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/161045">161045</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2013-12-23 19:28:01 -0800 (Mon, 23 Dec 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>[WK2] Replace usage of DEFINE_STATIC_LOCAL with NeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=126144

Reviewed by Anders Carlsson.

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::shared):
* DatabaseProcess/DatabaseProcess.h:
* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::shared):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::shared):
(WebKit::NetworkProcess::downloadManager):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::initialize):
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::privateBrowsingStorageSessionIdentifierBase):
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::SyncMessageState::syncMessageStateMap):
(CoreIPC::Connection::SyncMessageState::syncMessageStateMapMutex):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::shared):
* PluginProcess/PluginProcess.h:
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::fullscreenWindowTracker):
* Shared/ConnectionStack.cpp:
(WebKit::ConnectionStack::shared):
* Shared/Plugins/Netscape/NetscapePluginModule.cpp:
(WebKit::initializedNetscapePluginModules):
* Shared/WebContextMenuItem.cpp:
(WebKit::WebContextMenuItem::separatorItem):
* Shared/WebPreferencesStore.cpp:
(WebKit::boolTestRunnerOverridesMap):
* Shared/mac/CookieStorageShim.cpp:
(WebKit::CookieStorageShim::shared):
* Shared/mac/CookieStorageShim.h:
(WebKit::CookieStorageShim::CookieStorageShim):
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::shared):
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/WebContext.cpp:
(WebKit::contexts):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::originKey):
(WebKit::WebDatabaseManagerProxy::originQuotaKey):
(WebKit::WebDatabaseManagerProxy::originUsageKey):
(WebKit::WebDatabaseManagerProxy::databaseDetailsKey):
(WebKit::WebDatabaseManagerProxy::databaseDetailsNameKey):
(WebKit::WebDatabaseManagerProxy::databaseDetailsDisplayNameKey):
(WebKit::WebDatabaseManagerProxy::databaseDetailsExpectedUsageKey):
(WebKit::WebDatabaseManagerProxy::databaseDetailsCurrentUsageKey):
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorPageGroups::shared):
* UIProcess/WebPageGroup.cpp:
(WebKit::webPageGroupMap):
* UIProcess/WebPageProxy.cpp:
(WebKit::ExceededDatabaseQuotaRecords::shared):
(WebKit::WebPageProxy::executeEditCommand):
* UIProcess/WebProcessProxy.cpp:
(WebKit::globalPageMap):
* UIProcess/cf/WebBackForwardListCF.cpp:
(WebKit::SessionHistoryCurrentVersion):
(WebKit::createEmptySessionHistoryDictionary):
(WebKit::WebBackForwardList::createCFDictionaryRepresentation):
(WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
(WebKit::WebBackForwardList::restoreFromV0CFDictionaryRepresentation):
(WebKit::WebBackForwardList::restoreFromV1CFDictionaryRepresentation):
(WebKit::extractBackForwardListEntriesFromArray):
* UIProcess/cf/WebPageProxyCF.cpp:
(WebKit::WebPageProxy::sessionStateData):
(WebKit::WebPageProxy::restoreFromSessionStateData):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::standardUserAgent):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::sharedDatabaseBackendMap):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::generateServerConnectionIdentifier):
* WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
(WebKit::WKDOMNodeCache):
(WebKit::WKDOMRangeCache):
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::domHandleCache):
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::domHandleCache):
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
(WebKit::allExtensions):
* WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
(WebKit::allWorlds):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::globalExceptionString):
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
(WebKit::windowMap):
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::localStorageNamespaceMap):
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::didBeginEditing):
(WebKit::WebEditorClient::respondToChangedContents):
(WebKit::WebEditorClient::respondToChangedSelection):
(WebKit::WebEditorClient::didEndEditing):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::shouldFallBack):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::initialize):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::idToHistoryItemMap):
(WebKit::historyItemToIDMap):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::downloadManager):
* WebProcess/WebProcess.h:
* config.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessDatabaseProcesscpp">trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessDatabaseProcessh">trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessFileAPINetworkBlobRegistrycpp">trunk/Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkProcesscpp">trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkProcessh">trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkProcessPlatformStrategiescpp">trunk/Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessmacRemoteNetworkingContextmm">trunk/Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm</a></li>
<li><a href="#trunkSourceWebKit2PlatformCoreIPCConnectioncpp">trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp</a></li>
<li><a href="#trunkSourceWebKit2PluginProcessPluginProcesscpp">trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2PluginProcessPluginProcessh">trunk/Source/WebKit2/PluginProcess/PluginProcess.h</a></li>
<li><a href="#trunkSourceWebKit2PluginProcessmacPluginProcessMacmm">trunk/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedConnectionStackcpp">trunk/Source/WebKit2/Shared/ConnectionStack.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedPluginsNetscapeNetscapePluginModulecpp">trunk/Source/WebKit2/Shared/Plugins/Netscape/NetscapePluginModule.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedWebContextMenuItemcpp">trunk/Source/WebKit2/Shared/WebContextMenuItem.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedWebPreferencesStorecpp">trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedmacCookieStorageShimcpp">trunk/Source/WebKit2/Shared/mac/CookieStorageShim.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedmacCookieStorageShimh">trunk/Source/WebKit2/Shared/mac/CookieStorageShim.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsPluginProcessManagercpp">trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsPluginProcessManagerh">trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextcpp">trunk/Source/WebKit2/UIProcess/WebContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebDatabaseManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebInspectorProxycpp">trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageGroupcpp">trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessProxycpp">trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcesscfWebBackForwardListCFcpp">trunk/Source/WebKit2/UIProcess/cf/WebBackForwardListCF.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcesscfWebPageProxyCFcpp">trunk/Source/WebKit2/UIProcess/cf/WebPageProxyCF.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebPageProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendcpp">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMInternalsmm">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleDOMInjectedBundleNodeHandlecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleDOMInjectedBundleRangeHandlecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleInjectedBundleDOMWindowExtensioncpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleInjectedBundleScriptWorldcpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapeNPRuntimeObjectMapcpp">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapemacNetscapePluginMacmm">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessStorageStorageNamespaceImplcpp">trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebEditorClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiesh">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebBackForwardListProxycpp">trunk/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcesscpp">trunk/Source/WebKit2/WebProcess/WebProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcessh">trunk/Source/WebKit2/WebProcess/WebProcess.h</a></li>
<li><a href="#trunkSourceWebKit2configh">trunk/Source/WebKit2/config.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/ChangeLog        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -1,3 +1,118 @@
</span><ins>+2013-12-22  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        [WK2] Replace usage of DEFINE_STATIC_LOCAL with NeverDestroyed
+        https://bugs.webkit.org/show_bug.cgi?id=126144
+
+        Reviewed by Anders Carlsson.
+
+        * DatabaseProcess/DatabaseProcess.cpp:
+        (WebKit::DatabaseProcess::shared):
+        * DatabaseProcess/DatabaseProcess.h:
+        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
+        (WebKit::NetworkBlobRegistry::shared):
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::shared):
+        (WebKit::NetworkProcess::downloadManager):
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
+        (WebKit::NetworkProcessPlatformStrategies::initialize):
+        * NetworkProcess/mac/RemoteNetworkingContext.mm:
+        (WebKit::privateBrowsingStorageSessionIdentifierBase):
+        * Platform/CoreIPC/Connection.cpp:
+        (CoreIPC::Connection::SyncMessageState::syncMessageStateMap):
+        (CoreIPC::Connection::SyncMessageState::syncMessageStateMapMutex):
+        * PluginProcess/PluginProcess.cpp:
+        (WebKit::PluginProcess::shared):
+        * PluginProcess/PluginProcess.h:
+        * PluginProcess/mac/PluginProcessMac.mm:
+        (WebKit::fullscreenWindowTracker):
+        * Shared/ConnectionStack.cpp:
+        (WebKit::ConnectionStack::shared):
+        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
+        (WebKit::initializedNetscapePluginModules):
+        * Shared/WebContextMenuItem.cpp:
+        (WebKit::WebContextMenuItem::separatorItem):
+        * Shared/WebPreferencesStore.cpp:
+        (WebKit::boolTestRunnerOverridesMap):
+        * Shared/mac/CookieStorageShim.cpp:
+        (WebKit::CookieStorageShim::shared):
+        * Shared/mac/CookieStorageShim.h:
+        (WebKit::CookieStorageShim::CookieStorageShim):
+        * UIProcess/Plugins/PluginProcessManager.cpp:
+        (WebKit::PluginProcessManager::shared):
+        * UIProcess/Plugins/PluginProcessManager.h:
+        * UIProcess/WebContext.cpp:
+        (WebKit::contexts):
+        * UIProcess/WebDatabaseManagerProxy.cpp:
+        (WebKit::WebDatabaseManagerProxy::originKey):
+        (WebKit::WebDatabaseManagerProxy::originQuotaKey):
+        (WebKit::WebDatabaseManagerProxy::originUsageKey):
+        (WebKit::WebDatabaseManagerProxy::databaseDetailsKey):
+        (WebKit::WebDatabaseManagerProxy::databaseDetailsNameKey):
+        (WebKit::WebDatabaseManagerProxy::databaseDetailsDisplayNameKey):
+        (WebKit::WebDatabaseManagerProxy::databaseDetailsExpectedUsageKey):
+        (WebKit::WebDatabaseManagerProxy::databaseDetailsCurrentUsageKey):
+        * UIProcess/WebInspectorProxy.cpp:
+        (WebKit::WebInspectorPageGroups::shared):
+        * UIProcess/WebPageGroup.cpp:
+        (WebKit::webPageGroupMap):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::ExceededDatabaseQuotaRecords::shared):
+        (WebKit::WebPageProxy::executeEditCommand):
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::globalPageMap):
+        * UIProcess/cf/WebBackForwardListCF.cpp:
+        (WebKit::SessionHistoryCurrentVersion):
+        (WebKit::createEmptySessionHistoryDictionary):
+        (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
+        (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
+        (WebKit::WebBackForwardList::restoreFromV0CFDictionaryRepresentation):
+        (WebKit::WebBackForwardList::restoreFromV1CFDictionaryRepresentation):
+        (WebKit::extractBackForwardListEntriesFromArray):
+        * UIProcess/cf/WebPageProxyCF.cpp:
+        (WebKit::WebPageProxy::sessionStateData):
+        (WebKit::WebPageProxy::restoreFromSessionStateData):
+        * UIProcess/mac/WebPageProxyMac.mm:
+        (WebKit::WebPageProxy::standardUserAgent):
+        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
+        (WebKit::sharedDatabaseBackendMap):
+        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
+        (WebKit::generateServerConnectionIdentifier):
+        * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
+        (WebKit::WKDOMNodeCache):
+        (WebKit::WKDOMRangeCache):
+        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+        (WebKit::domHandleCache):
+        * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
+        (WebKit::domHandleCache):
+        * WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
+        (WebKit::allExtensions):
+        * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
+        (WebKit::allWorlds):
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+        (WebKit::globalExceptionString):
+        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
+        (WebKit::windowMap):
+        * WebProcess/Storage/StorageNamespaceImpl.cpp:
+        (WebKit::localStorageNamespaceMap):
+        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+        (WebKit::WebEditorClient::didBeginEditing):
+        (WebKit::WebEditorClient::respondToChangedContents):
+        (WebKit::WebEditorClient::respondToChangedSelection):
+        (WebKit::WebEditorClient::didEndEditing):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::shouldFallBack):
+        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
+        (WebKit::WebPlatformStrategies::initialize):
+        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
+        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+        (WebKit::idToHistoryItemMap):
+        (WebKit::historyItemToIDMap):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::downloadManager):
+        * WebProcess/WebProcess.h:
+        * config.h:
+
</ins><span class="cx"> 2013-12-23  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix the iOS build after r161013 and r160672.
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessDatabaseProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx"> DatabaseProcess&amp; DatabaseProcess::shared()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(DatabaseProcess, databaseProcess, ());
</del><ins>+    static NeverDestroyed&lt;DatabaseProcess&gt; databaseProcess;
</ins><span class="cx">     return databaseProcess;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessDatabaseProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ChildProcess.h&quot;
</span><span class="cx"> #include &quot;UniqueIDBDatabaseIdentifier.h&quot;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> class WorkQueue;
</span><span class="cx"> 
</span><span class="lines">@@ -43,6 +44,7 @@
</span><span class="cx"> 
</span><span class="cx"> class DatabaseProcess : public ChildProcess  {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(DatabaseProcess);
</span><ins>+    friend NeverDestroyed&lt;DatabaseProcess&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     static DatabaseProcess&amp; shared();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessFileAPINetworkBlobRegistrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/NetworkProcess/FileAPI/NetworkBlobRegistry.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #include &quot;SandboxExtension.h&quot;
</span><span class="cx"> #include &lt;WebCore/BlobRegistryImpl.h&gt;
</span><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -39,7 +40,7 @@
</span><span class="cx"> NetworkBlobRegistry&amp; NetworkBlobRegistry::shared()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    DEFINE_STATIC_LOCAL(NetworkBlobRegistry, registry, ());
</del><ins>+    static NeverDestroyed&lt;NetworkBlobRegistry&gt; registry;
</ins><span class="cx">     return registry;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> 
</span><span class="cx"> NetworkProcess&amp; NetworkProcess::shared()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(NetworkProcess, networkProcess, ());
</del><ins>+    static NeverDestroyed&lt;NetworkProcess&gt; networkProcess;
</ins><span class="cx">     return networkProcess;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> 
</span><span class="cx"> DownloadManager&amp; NetworkProcess::downloadManager()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(DownloadManager, downloadManager, (this));
</del><ins>+    static NeverDestroyed&lt;DownloadManager&gt; downloadManager(this);
</ins><span class="cx">     return downloadManager;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &quot;MessageReceiverMap.h&quot;
</span><span class="cx"> #include &quot;NetworkResourceLoadScheduler.h&quot;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> class CertificateInfo;
</span><span class="lines">@@ -47,6 +48,8 @@
</span><span class="cx"> 
</span><span class="cx"> class NetworkProcess : public ChildProcess, private DownloadManager::Client {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(NetworkProcess);
</span><ins>+    friend NeverDestroyed&lt;NetworkProcess&gt;;
+    friend NeverDestroyed&lt;DownloadManager&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     static NetworkProcess&amp; shared();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkProcessPlatformStrategiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #include &quot;NetworkProcessPlatformStrategies.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &lt;WebCore/BlobRegistryImpl.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -34,8 +35,8 @@
</span><span class="cx"> 
</span><span class="cx"> void NetworkProcessPlatformStrategies::initialize()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(NetworkProcessPlatformStrategies, platformStrategies, ());
-    setPlatformStrategies(&amp;platformStrategies);
</del><ins>+    static NeverDestroyed&lt;NetworkProcessPlatformStrategies&gt; platformStrategies;
+    setPlatformStrategies(&amp;platformStrategies.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> CookiesStrategy* NetworkProcessPlatformStrategies::createCookiesStrategy()
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessmacRemoteNetworkingContextmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> static String&amp; privateBrowsingStorageSessionIdentifierBase()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    DEFINE_STATIC_LOCAL(String, base, ());
</del><ins>+    static NeverDestroyed&lt;String&gt; base;
</ins><span class="cx">     return base;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformCoreIPCConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/RunLoop.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> #include &lt;wtf/threads/BinarySemaphore.h&gt;
</span><span class="lines">@@ -63,13 +64,13 @@
</span><span class="cx">     typedef HashMap&lt;RunLoop*, SyncMessageState*&gt; SyncMessageStateMap;
</span><span class="cx">     static SyncMessageStateMap&amp; syncMessageStateMap()
</span><span class="cx">     {
</span><del>-        DEFINE_STATIC_LOCAL(SyncMessageStateMap, syncMessageStateMap, ());
</del><ins>+        static NeverDestroyed&lt;SyncMessageStateMap&gt; syncMessageStateMap;
</ins><span class="cx">         return syncMessageStateMap;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     static Mutex&amp; syncMessageStateMapMutex()
</span><span class="cx">     {
</span><del>-        DEFINE_STATIC_LOCAL(Mutex, syncMessageStateMapMutex, ());
</del><ins>+        static NeverDestroyed&lt;Mutex&gt; syncMessageStateMapMutex;
</ins><span class="cx">         return syncMessageStateMapMutex;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PluginProcessPluginProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> 
</span><span class="cx"> PluginProcess&amp; PluginProcess::shared()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(PluginProcess, pluginProcess, ());
</del><ins>+    static NeverDestroyed&lt;PluginProcess&gt; pluginProcess;
</ins><span class="cx">     return pluginProcess;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PluginProcessPluginProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/PluginProcess/PluginProcess.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ChildProcess.h&quot;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -40,6 +41,7 @@
</span><span class="cx">         
</span><span class="cx"> class PluginProcess : public ChildProcess {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(PluginProcess);
</span><ins>+    friend NeverDestroyed&lt;PluginProcess&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     static PluginProcess&amp; shared();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PluginProcessmacPluginProcessMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx"> #import &lt;objc/runtime.h&gt;
</span><span class="cx"> #import &lt;sysexits.h&gt;
</span><span class="cx"> #import &lt;wtf/HashSet.h&gt;
</span><ins>+#import &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -127,7 +128,7 @@
</span><span class="cx"> 
</span><span class="cx"> static FullscreenWindowTracker&amp; fullscreenWindowTracker()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(FullscreenWindowTracker, fullscreenWindowTracker, ());
</del><ins>+    static NeverDestroyed&lt;FullscreenWindowTracker&gt; fullscreenWindowTracker;
</ins><span class="cx">     return fullscreenWindowTracker;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedConnectionStackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/ConnectionStack.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/ConnectionStack.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/Shared/ConnectionStack.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -26,12 +26,13 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;ConnectionStack.h&quot;
</span><span class="cx"> 
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> ConnectionStack&amp; ConnectionStack::shared()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(ConnectionStack, connectionStack, ());
-
</del><ins>+    static NeverDestroyed&lt;ConnectionStack&gt; connectionStack;
</ins><span class="cx">     return connectionStack;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedPluginsNetscapeNetscapePluginModulecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Plugins/Netscape/NetscapePluginModule.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Plugins/Netscape/NetscapePluginModule.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/Shared/Plugins/Netscape/NetscapePluginModule.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -31,13 +31,14 @@
</span><span class="cx"> #include &quot;Module.h&quot;
</span><span class="cx"> #include &quot;NPRuntimeUtilities.h&quot;
</span><span class="cx"> #include &quot;NetscapeBrowserFuncs.h&quot;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/CString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> static Vector&lt;NetscapePluginModule*&gt;&amp; initializedNetscapePluginModules()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(Vector&lt;NetscapePluginModule*&gt;, initializedNetscapePluginModules, ());
</del><ins>+    static NeverDestroyed&lt;Vector&lt;NetscapePluginModule*&gt;&gt; initializedNetscapePluginModules;
</ins><span class="cx">     return initializedNetscapePluginModules;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebContextMenuItemcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebContextMenuItem.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebContextMenuItem.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/Shared/WebContextMenuItem.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &lt;WebCore/ContextMenuItem.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="lines">@@ -57,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx"> WebContextMenuItem* WebContextMenuItem::separatorItem()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(WebContextMenuItem*, separatorItem, (adoptRef(new WebContextMenuItem(WebContextMenuItemData(WebCore::SeparatorType, WebCore::ContextMenuItemTagNoAction, String(), true, false))).leakRef()));
</del><ins>+    static WebContextMenuItem* separatorItem = new WebContextMenuItem(WebContextMenuItemData(WebCore::SeparatorType, WebCore::ContextMenuItemTagNoAction, String(), true, false));
</ins><span class="cx">     return separatorItem;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebPreferencesStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &quot;FontSmoothingLevel.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &lt;WebCore/Settings.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="lines">@@ -37,7 +38,7 @@
</span><span class="cx"> #define DEFINE_KEY_GETTERS(KeyUpper, KeyLower, TypeName, Type, DefaultValue) \
</span><span class="cx">         const String&amp; KeyLower##Key() \
</span><span class="cx">         { \
</span><del>-            DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(#KeyUpper))); \
</del><ins>+            static NeverDestroyed&lt;String&gt; key(ASCIILiteral(#KeyUpper)); \
</ins><span class="cx">             return key; \
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -51,7 +52,7 @@
</span><span class="cx"> 
</span><span class="cx"> static BoolOverridesMap&amp; boolTestRunnerOverridesMap()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(BoolOverridesMap, map, ());
</del><ins>+    static NeverDestroyed&lt;BoolOverridesMap&gt; map;
</ins><span class="cx">     return map;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacCookieStorageShimcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/CookieStorageShim.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/CookieStorageShim.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/Shared/mac/CookieStorageShim.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx"> CookieStorageShim&amp; CookieStorageShim::shared()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(CookieStorageShim, storage, ());
</del><ins>+    static NeverDestroyed&lt;CookieStorageShim&gt; storage;
</ins><span class="cx">     return storage;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacCookieStorageShimh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/CookieStorageShim.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/CookieStorageShim.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/Shared/mac/CookieStorageShim.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -29,18 +29,22 @@
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> class CookieStorageShim {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(CookieStorageShim);
</span><ins>+    friend NeverDestroyed&lt;CookieStorageShim&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     static CookieStorageShim&amp; shared();
</span><span class="cx"> 
</span><span class="cx">     void initialize();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    CookieStorageShim() { };
</del><ins>+    CookieStorageShim()
+    {
+    }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsPluginProcessManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> PluginProcessManager&amp; PluginProcessManager::shared()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(PluginProcessManager, pluginProcessManager, ());
</del><ins>+    static NeverDestroyed&lt;PluginProcessManager&gt; pluginProcessManager;
</ins><span class="cx">     return pluginProcessManager;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsPluginProcessManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &quot;WebProcessProxyMessages.h&quot;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -50,6 +51,7 @@
</span><span class="cx"> 
</span><span class="cx"> class PluginProcessManager {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(PluginProcessManager);
</span><ins>+    friend NeverDestroyed&lt;PluginProcessManager&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     static PluginProcessManager&amp; shared();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContext.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -114,8 +114,7 @@
</span><span class="cx"> 
</span><span class="cx"> static Vector&lt;WebContext*&gt;&amp; contexts()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(Vector&lt;WebContext*&gt;, contexts, ());
-
</del><ins>+    static NeverDestroyed&lt;Vector&lt;WebContext*&gt;&gt; contexts;
</ins><span class="cx">     return contexts;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebDatabaseManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &quot;WebDatabaseManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebDatabaseManagerProxyMessages.h&quot;
</span><span class="cx"> #include &quot;WebSecurityOrigin.h&quot;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -46,49 +47,49 @@
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::originKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerOriginKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerOriginKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::originQuotaKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerOriginQuotaKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerOriginQuotaKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::originUsageKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerOriginUsageKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerOriginUsageKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::databaseDetailsKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::databaseDetailsNameKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsNameKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsNameKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::databaseDetailsDisplayNameKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsDisplayNameKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsDisplayNameKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::databaseDetailsExpectedUsageKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsExpectedUsageKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsExpectedUsageKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebDatabaseManagerProxy::databaseDetailsCurrentUsageKey()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsCurrentUsageKey&quot;)));
</del><ins>+    static NeverDestroyed&lt;String&gt; key(ASCIILiteral(&quot;WebDatabaseManagerDatabaseDetailsCurrentUsageKey&quot;));
</ins><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebInspectorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> #include &quot;WebPreferences.h&quot;
</span><span class="cx"> #include &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #include &lt;WebCore/SchemeRegistry.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR_SERVER)
</span><span class="cx"> #include &quot;WebInspectorServer.h&quot;
</span><span class="lines">@@ -62,7 +63,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static WebInspectorPageGroups&amp; shared()
</span><span class="cx">     {
</span><del>-        DEFINE_STATIC_LOCAL(WebInspectorPageGroups, instance, ());
</del><ins>+        static NeverDestroyed&lt;WebInspectorPageGroups&gt; instance;
</ins><span class="cx">         return instance;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageGroupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><span class="cx"> #include &quot;WebPreferences.h&quot;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/StringConcatenate.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -45,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx"> static WebPageGroupMap&amp; webPageGroupMap()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(WebPageGroupMap, map, ());
</del><ins>+    static NeverDestroyed&lt;WebPageGroupMap&gt; map;
</ins><span class="cx">     return map;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -90,6 +90,7 @@
</span><span class="cx"> #include &lt;WebCore/RenderEmbeddedObject.h&gt;
</span><span class="cx"> #include &lt;WebCore/TextCheckerClient.h&gt;
</span><span class="cx"> #include &lt;WebCore/WindowFeatures.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;stdio.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if USE(COORDINATED_GRAPHICS)
</span><span class="lines">@@ -129,6 +130,7 @@
</span><span class="cx"> 
</span><span class="cx"> class ExceededDatabaseQuotaRecords {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(ExceededDatabaseQuotaRecords); WTF_MAKE_FAST_ALLOCATED;
</span><ins>+    friend NeverDestroyed&lt;ExceededDatabaseQuotaRecords&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     struct Record {
</span><span class="cx">         uint64_t frameID;
</span><span class="lines">@@ -163,7 +165,7 @@
</span><span class="cx"> 
</span><span class="cx"> ExceededDatabaseQuotaRecords&amp; ExceededDatabaseQuotaRecords::shared()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(ExceededDatabaseQuotaRecords, records, ());
</del><ins>+    static NeverDestroyed&lt;ExceededDatabaseQuotaRecords&gt; records;
</ins><span class="cx">     return records;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1058,10 +1060,11 @@
</span><span class="cx">     
</span><span class="cx"> void WebPageProxy::executeEditCommand(const String&amp; commandName)
</span><span class="cx"> {
</span><ins>+    static NeverDestroyed&lt;String&gt; ignoreSpellingCommandName(ASCIILiteral(&quot;ignoreSpelling&quot;));
+
</ins><span class="cx">     if (!isValid())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    DEFINE_STATIC_LOCAL(String, ignoreSpellingCommandName, (ASCIILiteral(&quot;ignoreSpelling&quot;)));
</del><span class="cx">     if (commandName == ignoreSpellingCommandName)
</span><span class="cx">         ++m_pendingLearnOrIgnoreWordMessageCount;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -46,6 +46,7 @@
</span><span class="cx"> #include &lt;WebCore/SuddenTermination.h&gt;
</span><span class="cx"> #include &lt;WebCore/URL.h&gt;
</span><span class="cx"> #include &lt;stdio.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/RunLoop.h&gt;
</span><span class="cx"> #include &lt;wtf/text/CString.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -74,7 +75,7 @@
</span><span class="cx"> static WebProcessProxy::WebPageProxyMap&amp; globalPageMap()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><del>-    DEFINE_STATIC_LOCAL(WebProcessProxy::WebPageProxyMap, pageMap, ());
</del><ins>+    static NeverDestroyed&lt;WebProcessProxy::WebPageProxyMap&gt; pageMap;
</ins><span class="cx">     return pageMap;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcesscfWebBackForwardListCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/cf/WebBackForwardListCF.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/cf/WebBackForwardListCF.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/cf/WebBackForwardListCF.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -27,8 +27,9 @@
</span><span class="cx"> #include &quot;WebBackForwardList.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Logging.h&quot;
</span><ins>+#include &lt;CoreFoundation/CoreFoundation.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><del>-#include &lt;CoreFoundation/CoreFoundation.h&gt;
</del><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -44,23 +45,26 @@
</span><span class="cx">     return uniqueHistoryItemID;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static CFIndex currentVersion = 1;
-DEFINE_STATIC_GETTER(CFNumberRef, SessionHistoryCurrentVersion, (CFNumberCreate(0, kCFNumberCFIndexType, &amp;currentVersion)));
</del><ins>+static CFNumberRef sessionHistoryCurrentVersion()
+{
+    static CFIndex currentVersionAsCFIndex = 1;
+    return CFNumberCreate(0, kCFNumberCFIndexType, &amp;currentVersionAsCFIndex);
+}
</ins><span class="cx"> 
</span><del>-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryVersionKey, (CFSTR(&quot;SessionHistoryVersion&quot;)));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryCurrentIndexKey, (CFSTR(&quot;SessionHistoryCurrentIndex&quot;)));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntriesKey, (CFSTR(&quot;SessionHistoryEntries&quot;)));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryTitleKey, (CFSTR(&quot;SessionHistoryEntryTitle&quot;)));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryURLKey, (CFSTR(&quot;SessionHistoryEntryURL&quot;)));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryOriginalURLKey, (CFSTR(&quot;SessionHistoryEntryOriginalURL&quot;)));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryDataKey, (CFSTR(&quot;SessionHistoryEntryData&quot;)));
</del><ins>+static CFStringRef sessionHistoryVersionKey = CFSTR(&quot;SessionHistoryVersion&quot;);
+static CFStringRef sessionHistoryCurrentIndexKey = CFSTR(&quot;SessionHistoryCurrentIndex&quot;);
+static CFStringRef sessionHistoryEntriesKey = CFSTR(&quot;SessionHistoryEntries&quot;);
+static CFStringRef sessionHistoryEntryTitleKey = CFSTR(&quot;SessionHistoryEntryTitle&quot;);
+static CFStringRef sessionHistoryEntryURLKey = CFSTR(&quot;SessionHistoryEntryURL&quot;);
+static CFStringRef sessionHistoryEntryOriginalURLKey = CFSTR(&quot;SessionHistoryEntryOriginalURL&quot;);
+static CFStringRef sessionHistoryEntryDataKey = CFSTR(&quot;SessionHistoryEntryData&quot;);
</ins><span class="cx"> 
</span><span class="cx"> static bool extractBackForwardListEntriesFromArray(CFArrayRef, BackForwardListItemVector&amp;);
</span><span class="cx"> 
</span><span class="cx"> static CFDictionaryRef createEmptySessionHistoryDictionary()
</span><span class="cx"> {
</span><del>-    static const void* keys[1] = { SessionHistoryVersionKey() };
-    static const void* values[1] = { SessionHistoryCurrentVersion() };
</del><ins>+    static const void* keys[1] = { sessionHistoryVersionKey };
+    static const void* values[1] = { sessionHistoryCurrentVersion() };
</ins><span class="cx"> 
</span><span class="cx">     return CFDictionaryCreate(0, keys, values, 1, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks);
</span><span class="cx"> }
</span><span class="lines">@@ -105,7 +109,7 @@
</span><span class="cx">         // constant in WebPageProxyCF.cpp. The CoreIPC data format is meant to be an implementation detail, and not something that should be written to disk.
</span><span class="cx">         RetainPtr&lt;CFDataRef&gt; entryData = adoptCF(CFDataCreate(kCFAllocatorDefault, m_entries[i]-&gt;backForwardData().data(), m_entries[i]-&gt;backForwardData().size()));
</span><span class="cx">         
</span><del>-        const void* keys[4] = { SessionHistoryEntryURLKey(), SessionHistoryEntryTitleKey(), SessionHistoryEntryOriginalURLKey(), SessionHistoryEntryDataKey() };
</del><ins>+        const void* keys[4] = { sessionHistoryEntryURLKey, sessionHistoryEntryTitleKey, sessionHistoryEntryOriginalURLKey, sessionHistoryEntryDataKey };
</ins><span class="cx">         const void* values[4] = { url.get(), title.get(), originalURL.get(), entryData.get() };
</span><span class="cx"> 
</span><span class="cx">         RetainPtr&lt;CFDictionaryRef&gt; entryDictionary = adoptCF(CFDictionaryCreate(0, keys, values, 4, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
</span><span class="lines">@@ -130,8 +134,8 @@
</span><span class="cx"> 
</span><span class="cx">     if (hasCurrentIndex) {
</span><span class="cx">         RetainPtr&lt;CFNumberRef&gt; currentIndexNumber = adoptCF(CFNumberCreate(0, kCFNumberCFIndexType, &amp;currentIndex));
</span><del>-        const void* keys[3] = { SessionHistoryVersionKey(), SessionHistoryCurrentIndexKey(), SessionHistoryEntriesKey() };
-        const void* values[3] = { SessionHistoryCurrentVersion(), currentIndexNumber.get(), entries.get() };
</del><ins>+        const void* keys[3] = { sessionHistoryVersionKey, sessionHistoryCurrentIndexKey, sessionHistoryEntriesKey };
+        const void* values[3] = { sessionHistoryCurrentVersion(), currentIndexNumber.get(), entries.get() };
</ins><span class="cx">  
</span><span class="cx">         return CFDictionaryCreate(0, keys, values, 3, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks);
</span><span class="cx">     }
</span><span class="lines">@@ -142,7 +146,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool WebBackForwardList::restoreFromCFDictionaryRepresentation(CFDictionaryRef dictionary)
</span><span class="cx"> {
</span><del>-    CFNumberRef cfVersion = (CFNumberRef)CFDictionaryGetValue(dictionary, SessionHistoryVersionKey());
</del><ins>+    CFNumberRef cfVersion = (CFNumberRef)CFDictionaryGetValue(dictionary, sessionHistoryVersionKey);
</ins><span class="cx">     if (!cfVersion) {
</span><span class="cx">         // v0 session history dictionaries did not contain versioning
</span><span class="cx">         return restoreFromV0CFDictionaryRepresentation(dictionary);
</span><span class="lines">@@ -168,7 +172,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool WebBackForwardList::restoreFromV0CFDictionaryRepresentation(CFDictionaryRef dictionary)
</span><span class="cx"> {
</span><del>-    CFNumberRef cfIndex = (CFNumberRef)CFDictionaryGetValue(dictionary, SessionHistoryCurrentIndexKey());
</del><ins>+    CFNumberRef cfIndex = (CFNumberRef)CFDictionaryGetValue(dictionary, sessionHistoryCurrentIndexKey);
</ins><span class="cx">     if (!cfIndex || CFGetTypeID(cfIndex) != CFNumberGetTypeID()) {
</span><span class="cx">         LOG(SessionState, &quot;WebBackForwardList dictionary representation does not have a valid current index&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -185,7 +189,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    CFArrayRef cfEntries = (CFArrayRef)CFDictionaryGetValue(dictionary, SessionHistoryEntriesKey());
</del><ins>+    CFArrayRef cfEntries = (CFArrayRef)CFDictionaryGetValue(dictionary, sessionHistoryEntriesKey);
</ins><span class="cx">     if (!cfEntries || CFGetTypeID(cfEntries) != CFArrayGetTypeID()) {
</span><span class="cx">         LOG(SessionState, &quot;WebBackForwardList dictionary representation does not have a valid list of entries&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -222,7 +226,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool WebBackForwardList::restoreFromV1CFDictionaryRepresentation(CFDictionaryRef dictionary)
</span><span class="cx"> {
</span><del>-    CFNumberRef cfIndex = (CFNumberRef)CFDictionaryGetValue(dictionary, SessionHistoryCurrentIndexKey());
</del><ins>+    CFNumberRef cfIndex = (CFNumberRef)CFDictionaryGetValue(dictionary, sessionHistoryCurrentIndexKey);
</ins><span class="cx">     if (!cfIndex) {
</span><span class="cx">         // No current index means the dictionary represents an empty session.
</span><span class="cx">         m_hasCurrentIndex = false;
</span><span class="lines">@@ -248,7 +252,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    CFArrayRef cfEntries = (CFArrayRef)CFDictionaryGetValue(dictionary, SessionHistoryEntriesKey());
</del><ins>+    CFArrayRef cfEntries = (CFArrayRef)CFDictionaryGetValue(dictionary, sessionHistoryEntriesKey);
</ins><span class="cx">     if (!cfEntries || CFGetTypeID(cfEntries) != CFArrayGetTypeID()) {
</span><span class="cx">         LOG(SessionState, &quot;WebBackForwardList dictionary representation does not have a valid list of entries&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -287,25 +291,25 @@
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx">         
</span><del>-        CFStringRef entryURL = (CFStringRef)CFDictionaryGetValue(entryDictionary, SessionHistoryEntryURLKey());
</del><ins>+        CFStringRef entryURL = (CFStringRef)CFDictionaryGetValue(entryDictionary, sessionHistoryEntryURLKey);
</ins><span class="cx">         if (!entryURL || CFGetTypeID(entryURL) != CFStringGetTypeID()) {
</span><span class="cx">             LOG(SessionState, &quot;WebBackForwardList entry at index %i does not have a valid URL&quot;, (int)i);
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        CFStringRef entryTitle = (CFStringRef)CFDictionaryGetValue(entryDictionary, SessionHistoryEntryTitleKey());
</del><ins>+        CFStringRef entryTitle = (CFStringRef)CFDictionaryGetValue(entryDictionary, sessionHistoryEntryTitleKey);
</ins><span class="cx">         if (!entryTitle || CFGetTypeID(entryTitle) != CFStringGetTypeID()) {
</span><span class="cx">             LOG(SessionState, &quot;WebBackForwardList entry at index %i does not have a valid title&quot;, (int)i);
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        CFStringRef originalURL = (CFStringRef)CFDictionaryGetValue(entryDictionary, SessionHistoryEntryOriginalURLKey());
</del><ins>+        CFStringRef originalURL = (CFStringRef)CFDictionaryGetValue(entryDictionary, sessionHistoryEntryOriginalURLKey);
</ins><span class="cx">         if (!originalURL || CFGetTypeID(originalURL) != CFStringGetTypeID()) {
</span><span class="cx">             LOG(SessionState, &quot;WebBackForwardList entry at index %i does not have a valid original URL&quot;, (int)i);
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        CFDataRef backForwardData = (CFDataRef)CFDictionaryGetValue(entryDictionary, SessionHistoryEntryDataKey());
</del><ins>+        CFDataRef backForwardData = (CFDataRef)CFDictionaryGetValue(entryDictionary, sessionHistoryEntryDataKey);
</ins><span class="cx">         if (!backForwardData || CFGetTypeID(backForwardData) != CFDataGetTypeID()) {
</span><span class="cx">             LOG(SessionState, &quot;WebBackForwardList entry at index %i does not have back/forward data&quot;, (int)i);
</span><span class="cx">             return false;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcesscfWebPageProxyCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/cf/WebPageProxyCF.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/cf/WebPageProxyCF.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/cf/WebPageProxyCF.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -41,8 +41,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryKey, (CFSTR(&quot;SessionHistory&quot;)));
-DEFINE_STATIC_GETTER(CFStringRef, ProvisionalURLKey, (CFSTR(&quot;ProvisionalURL&quot;)));
</del><ins>+static CFStringRef sessionHistoryKey = CFSTR(&quot;SessionHistory&quot;);
+static CFStringRef provisionalURLKey = CFSTR(&quot;ProvisionalURL&quot;);
</ins><span class="cx"> 
</span><span class="cx"> static const UInt32 CurrentSessionStateDataVersion = 2;
</span><span class="cx"> 
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> 
</span><span class="cx">     RetainPtr&lt;CFDictionaryRef&gt; sessionHistoryDictionary = adoptCF(m_backForwardList-&gt;createCFDictionaryRepresentation(filter, context));
</span><span class="cx">     if (sessionHistoryDictionary) {
</span><del>-        keys[numValues] = SessionHistoryKey();
</del><ins>+        keys[numValues] = sessionHistoryKey;
</ins><span class="cx">         values[numValues] = sessionHistoryDictionary.get();
</span><span class="cx">         ++numValues;
</span><span class="cx">     }
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">             provisionalURL = m_mainFrame-&gt;provisionalURL();
</span><span class="cx">         if (!provisionalURL.isEmpty()) {
</span><span class="cx">             provisionalURLString = provisionalURL.createCFString();
</span><del>-            keys[numValues] = ProvisionalURLKey();
</del><ins>+            keys[numValues] = provisionalURLKey;
</ins><span class="cx">             values[numValues] = provisionalURLString.get();
</span><span class="cx">             ++numValues;
</span><span class="cx">         }
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CFDictionaryRef backForwardListDictionary = 0;
</span><del>-    if (CFTypeRef value = CFDictionaryGetValue(static_cast&lt;CFDictionaryRef&gt;(propertyList.get()), SessionHistoryKey())) {
</del><ins>+    if (CFTypeRef value = CFDictionaryGetValue(static_cast&lt;CFDictionaryRef&gt;(propertyList.get()), sessionHistoryKey)) {
</ins><span class="cx">         if (CFGetTypeID(value) != CFDictionaryGetTypeID())
</span><span class="cx">             LOG(SessionState, &quot;SessionState dictionary has a SessionHistory key, but the value is not a dictionary&quot;);
</span><span class="cx">         else
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     CFStringRef provisionalURL = 0;
</span><del>-    if (CFTypeRef value = CFDictionaryGetValue(static_cast&lt;CFDictionaryRef&gt;(propertyList.get()), ProvisionalURLKey())) {
</del><ins>+    if (CFTypeRef value = CFDictionaryGetValue(static_cast&lt;CFDictionaryRef&gt;(propertyList.get()), provisionalURLKey)) {
</ins><span class="cx">         if (CFGetTypeID(value) != CFStringGetTypeID())
</span><span class="cx">             LOG(SessionState, &quot;SessionState dictionary has a ProvisionalValue key, but the value is not a string&quot;);
</span><span class="cx">         else
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebPageProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -47,6 +47,7 @@
</span><span class="cx"> #import &lt;WebCore/TextAlternativeWithRange.h&gt;
</span><span class="cx"> #import &lt;WebKitSystemInterface.h&gt;
</span><span class="cx"> #import &lt;mach-o/dyld.h&gt;
</span><ins>+#import &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #import &lt;wtf/text/StringConcatenate.h&gt;
</span><span class="cx"> 
</span><span class="cx"> @interface NSApplication (Details)
</span><span class="lines">@@ -105,12 +106,12 @@
</span><span class="cx"> 
</span><span class="cx"> String WebPageProxy::standardUserAgent(const String&amp; applicationNameForUserAgent)
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, osVersion, (systemMarketingVersionForUserAgentString()));
-    DEFINE_STATIC_LOCAL(String, webKitVersion, (userVisibleWebKitVersionString()));
</del><ins>+    static NeverDestroyed&lt;String&gt; osVersion(systemMarketingVersionForUserAgentString());
+    static NeverDestroyed&lt;String&gt; webKitVersion(userVisibleWebKitVersionString());
</ins><span class="cx"> 
</span><span class="cx">     if (applicationNameForUserAgent.isEmpty())
</span><del>-        return makeString(&quot;Mozilla/5.0 (Macintosh; &quot; PROCESSOR &quot; Mac OS X &quot;, osVersion, &quot;) AppleWebKit/&quot;, webKitVersion, &quot; (KHTML, like Gecko)&quot;);
-    return makeString(&quot;Mozilla/5.0 (Macintosh; &quot; PROCESSOR &quot; Mac OS X &quot;, osVersion, &quot;) AppleWebKit/&quot;, webKitVersion, &quot; (KHTML, like Gecko) &quot;, applicationNameForUserAgent);
</del><ins>+        return makeString(&quot;Mozilla/5.0 (Macintosh; &quot; PROCESSOR &quot; Mac OS X &quot;, osVersion.get(), &quot;) AppleWebKit/&quot;, webKitVersion.get(), &quot; (KHTML, like Gecko)&quot;);
+    return makeString(&quot;Mozilla/5.0 (Macintosh; &quot; PROCESSOR &quot; Mac OS X &quot;, osVersion.get(), &quot;) AppleWebKit/&quot;, webKitVersion.get(), &quot; (KHTML, like Gecko) &quot;, applicationNameForUserAgent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::getIsSpeaking(bool&amp; isSpeaking)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx"> #include &lt;WebCore/NotImplemented.h&gt;
</span><span class="cx"> #include &lt;WebCore/SecurityOrigin.h&gt;
</span><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> #if ENABLE(DATABASE_PROCESS)
</span><span class="lines">@@ -51,7 +52,7 @@
</span><span class="cx"> 
</span><span class="cx"> static IDBDatabaseBackendMap&amp; sharedDatabaseBackendMap()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(IDBDatabaseBackendMap, databaseBackendMap, ());
</del><ins>+    static NeverDestroyed&lt;IDBDatabaseBackendMap&gt; databaseBackendMap;
</ins><span class="cx">     return databaseBackendMap;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><span class="cx"> #include &quot;WebProcess.h&quot;
</span><span class="cx"> #include &quot;WebToDatabaseProcessConnection.h&quot;
</span><del>-
</del><span class="cx"> #include &lt;WebCore/IDBDatabaseMetadata.h&gt;
</span><span class="cx"> #include &lt;WebCore/SecurityOrigin.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -47,7 +46,7 @@
</span><span class="cx"> static uint64_t generateServerConnectionIdentifier()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    DEFINE_STATIC_LOCAL(uint64_t, identifier, (0));
</del><ins>+    static uint64_t identifier = 0;
</ins><span class="cx">     return ++identifier;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMInternalsmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx"> #import &lt;WebCore/Node.h&gt;
</span><span class="cx"> #import &lt;WebCore/Range.h&gt;
</span><span class="cx"> #import &lt;WebCore/Text.h&gt;
</span><ins>+#import &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> // Classes to instantiate.
</span><span class="cx"> #import &quot;WKDOMElement.h&quot;
</span><span class="lines">@@ -48,15 +49,13 @@
</span><span class="cx"> 
</span><span class="cx"> DOMCache&lt;WebCore::Node*, WKDOMNode *&gt;&amp; WKDOMNodeCache()
</span><span class="cx"> {
</span><del>-    typedef DOMCache&lt;WebCore::Node*, WKDOMNode *&gt; Cache;
-    DEFINE_STATIC_LOCAL(Cache, cache, ());
</del><ins>+    static NeverDestroyed&lt;DOMCache&lt;WebCore::Node*, WKDOMNode *&gt;&gt; cache;
</ins><span class="cx">     return cache;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> DOMCache&lt;WebCore::Range*, WKDOMRange *&gt;&amp; WKDOMRangeCache()
</span><span class="cx"> {
</span><del>-    typedef DOMCache&lt;WebCore::Range*, WKDOMRange *&gt; Cache;
-    DEFINE_STATIC_LOCAL(Cache, cache, ());
</del><ins>+    static NeverDestroyed&lt;DOMCache&lt;WebCore::Range*, WKDOMRange *&gt;&gt; cache;
</ins><span class="cx">     return cache;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleDOMInjectedBundleNodeHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx"> #include &lt;WebCore/Page.h&gt;
</span><span class="cx"> #include &lt;WebCore/RenderObject.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -59,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx"> static DOMHandleCache&amp; domHandleCache()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(DOMHandleCache, cache, ());
</del><ins>+    static NeverDestroyed&lt;DOMHandleCache&gt; cache;
</ins><span class="cx">     return cache;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleDOMInjectedBundleRangeHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #include &lt;WebCore/JSRange.h&gt;
</span><span class="cx"> #include &lt;WebCore/Range.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -39,7 +40,7 @@
</span><span class="cx"> 
</span><span class="cx"> static DOMHandleCache&amp; domHandleCache()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(DOMHandleCache, cache, ());
</del><ins>+    static NeverDestroyed&lt;DOMHandleCache&gt; cache;
</ins><span class="cx">     return cache;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleInjectedBundleDOMWindowExtensioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &lt;WebCore/Frame.h&gt;
</span><span class="cx"> #include &lt;WebCore/FrameLoader.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -42,7 +43,7 @@
</span><span class="cx"> typedef HashMap&lt;WebCore::DOMWindowExtension*, InjectedBundleDOMWindowExtension*&gt; ExtensionMap;
</span><span class="cx"> static ExtensionMap&amp; allExtensions()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(ExtensionMap, map, ());
</del><ins>+    static NeverDestroyed&lt;ExtensionMap&gt; map;
</ins><span class="cx">     return map;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleInjectedBundleScriptWorldcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &lt;WebCore/DOMWrapperWorld.h&gt;
</span><span class="cx"> #include &lt;WebCore/ScriptController.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -38,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> static WorldMap&amp; allWorlds()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(WorldMap, map, ());
</del><ins>+    static NeverDestroyed&lt;WorldMap&gt; map;
</ins><span class="cx">     return map;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeNPRuntimeObjectMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> #include &lt;WebCore/Page.h&gt;
</span><span class="cx"> #include &lt;WebCore/PageThrottler.h&gt;
</span><span class="cx"> #include &lt;WebCore/ScriptController.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -258,7 +259,7 @@
</span><span class="cx"> 
</span><span class="cx"> static String&amp; globalExceptionString()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, exceptionString, ());
</del><ins>+    static NeverDestroyed&lt;String&gt; exceptionString;
</ins><span class="cx">     return exceptionString;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapemacNetscapePluginMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -36,6 +36,7 @@
</span><span class="cx"> #import &lt;WebCore/GraphicsContext.h&gt;
</span><span class="cx"> #import &lt;WebCore/NotImplemented.h&gt;
</span><span class="cx"> #import &lt;WebKitSystemInterface.h&gt;
</span><ins>+#import &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -196,8 +197,7 @@
</span><span class="cx"> 
</span><span class="cx"> static WindowMap&amp; windowMap()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(WindowMap, windowMap, ());
-
</del><ins>+    static NeverDestroyed&lt;WindowMap windowMap;
</ins><span class="cx">     return windowMap;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessStorageStorageNamespaceImplcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> #include &lt;WebCore/PageGroup.h&gt;
</span><span class="cx"> #include &lt;WebCore/SecurityOrigin.h&gt;
</span><span class="cx"> #include &lt;WebCore/Settings.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -44,7 +45,7 @@
</span><span class="cx"> 
</span><span class="cx"> static LocalStorageNamespaceMap&amp; localStorageNamespaceMap()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(LocalStorageNamespaceMap, localStorageNamespaceMap, ());
</del><ins>+    static NeverDestroyed&lt;LocalStorageNamespaceMap&gt; localStorageNamespaceMap;
</ins><span class="cx">     return localStorageNamespaceMap;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebEditorClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -50,6 +50,7 @@
</span><span class="cx"> #include &lt;WebCore/TextIterator.h&gt;
</span><span class="cx"> #include &lt;WebCore/UndoStep.h&gt;
</span><span class="cx"> #include &lt;WebCore/UserTypingGestureIndicator.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> using namespace HTMLNames;
</span><span class="lines">@@ -170,22 +171,22 @@
</span><span class="cx"> void WebEditorClient::didBeginEditing()
</span><span class="cx"> {
</span><span class="cx">     // FIXME: What good is a notification name, if it's always the same?
</span><del>-    DEFINE_STATIC_LOCAL(String, WebViewDidBeginEditingNotification, (ASCIILiteral(&quot;WebViewDidBeginEditingNotification&quot;)));
-    m_page-&gt;injectedBundleEditorClient().didBeginEditing(m_page, WebViewDidBeginEditingNotification.impl());
</del><ins>+    static NeverDestroyed&lt;String&gt; WebViewDidBeginEditingNotification(ASCIILiteral(&quot;WebViewDidBeginEditingNotification&quot;));
+    m_page-&gt;injectedBundleEditorClient().didBeginEditing(m_page, WebViewDidBeginEditingNotification.get().impl());
</ins><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebEditorClient::respondToChangedContents()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, WebViewDidChangeNotification, (ASCIILiteral(&quot;WebViewDidChangeNotification&quot;)));
-    m_page-&gt;injectedBundleEditorClient().didChange(m_page, WebViewDidChangeNotification.impl());
</del><ins>+    static NeverDestroyed&lt;String&gt; WebViewDidChangeNotification(ASCIILiteral(&quot;WebViewDidChangeNotification&quot;));
+    m_page-&gt;injectedBundleEditorClient().didChange(m_page, WebViewDidChangeNotification.get().impl());
</ins><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebEditorClient::respondToChangedSelection(Frame* frame)
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, WebViewDidChangeSelectionNotification, (ASCIILiteral(&quot;WebViewDidChangeSelectionNotification&quot;)));
-    m_page-&gt;injectedBundleEditorClient().didChangeSelection(m_page, WebViewDidChangeSelectionNotification.impl());
</del><ins>+    static NeverDestroyed&lt;String&gt; WebViewDidChangeSelectionNotification(ASCIILiteral(&quot;WebViewDidChangeSelectionNotification&quot;));
+    m_page-&gt;injectedBundleEditorClient().didChangeSelection(m_page, WebViewDidChangeSelectionNotification.get().impl());
</ins><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -198,8 +199,8 @@
</span><span class="cx"> 
</span><span class="cx"> void WebEditorClient::didEndEditing()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(String, WebViewDidEndEditingNotification, (ASCIILiteral(&quot;WebViewDidEndEditingNotification&quot;)));
-    m_page-&gt;injectedBundleEditorClient().didEndEditing(m_page, WebViewDidEndEditingNotification.impl());
</del><ins>+    static NeverDestroyed&lt;String&gt; WebViewDidEndEditingNotification(ASCIILiteral(&quot;WebViewDidEndEditingNotification&quot;));
+    m_page-&gt;injectedBundleEditorClient().didEndEditing(m_page, WebViewDidEndEditingNotification.get().impl());
</ins><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -78,6 +78,7 @@
</span><span class="cx"> #include &lt;WebCore/UIEventWithKeyState.h&gt;
</span><span class="cx"> #include &lt;WebCore/Widget.h&gt;
</span><span class="cx"> #include &lt;WebCore/WindowFeatures.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -1073,13 +1074,13 @@
</span><span class="cx"> 
</span><span class="cx"> bool WebFrameLoaderClient::shouldFallBack(const ResourceError&amp; error)
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(const ResourceError, cancelledError, (this-&gt;cancelledError(ResourceRequest())));
-    DEFINE_STATIC_LOCAL(const ResourceError, pluginWillHandleLoadError, (this-&gt;pluginWillHandleLoadError(ResourceResponse())));
</del><ins>+    static NeverDestroyed&lt;const ResourceError&gt; cancelledError(this-&gt;cancelledError(ResourceRequest()));
+    static NeverDestroyed&lt;const ResourceError&gt; pluginWillHandleLoadError(this-&gt;pluginWillHandleLoadError(ResourceResponse()));
</ins><span class="cx"> 
</span><del>-    if (error.errorCode() == cancelledError.errorCode() &amp;&amp; error.domain() == cancelledError.domain())
</del><ins>+    if (error.errorCode() == cancelledError.get().errorCode() &amp;&amp; error.domain() == cancelledError.get().domain())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (error.errorCode() == pluginWillHandleLoadError.errorCode() &amp;&amp; error.domain() == pluginWillHandleLoadError.domain())
</del><ins>+    if (error.errorCode() == pluginWillHandleLoadError.get().errorCode() &amp;&amp; error.domain() == pluginWillHandleLoadError.get().domain())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -74,8 +74,8 @@
</span><span class="cx"> 
</span><span class="cx"> void WebPlatformStrategies::initialize()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(WebPlatformStrategies, platformStrategies, ());
-    setPlatformStrategies(&amp;platformStrategies);
</del><ins>+    static NeverDestroyed&lt;WebPlatformStrategies&gt; platformStrategies;
+    setPlatformStrategies(&amp;platformStrategies.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebPlatformStrategies::WebPlatformStrategies()
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -35,10 +35,12 @@
</span><span class="cx"> #include &lt;WebCore/SharedWorkerStrategy.h&gt;
</span><span class="cx"> #include &lt;WebCore/StorageStrategy.h&gt;
</span><span class="cx"> #include &lt;WebCore/VisitedLinkStrategy.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::DatabaseStrategy, private WebCore::LoaderStrategy, private WebCore::PasteboardStrategy, private WebCore::PluginStrategy, private WebCore::SharedWorkerStrategy, private WebCore::StorageStrategy, private WebCore::VisitedLinkStrategy {
</span><ins>+    friend NeverDestroyed&lt;WebPlatformStrategies&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     static void initialize();
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebBackForwardListProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -36,6 +36,7 @@
</span><span class="cx"> #include &lt;WebCore/HistoryItem.h&gt;
</span><span class="cx"> #include &lt;WebCore/PageCache.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -49,13 +50,13 @@
</span><span class="cx"> 
</span><span class="cx"> static IDToHistoryItemMap&amp; idToHistoryItemMap()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(IDToHistoryItemMap, map, ());
</del><ins>+    static NeverDestroyed&lt;IDToHistoryItemMap&gt; map;;
</ins><span class="cx">     return map;
</span><span class="cx"> } 
</span><span class="cx"> 
</span><span class="cx"> static HistoryItemToIDMap&amp; historyItemToIDMap()
</span><span class="cx"> {
</span><del>-    DEFINE_STATIC_LOCAL(HistoryItemToIDMap, map, ());
</del><ins>+    static NeverDestroyed&lt;HistoryItemToIDMap&gt; map;
</ins><span class="cx">     return map;
</span><span class="cx"> } 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -472,7 +472,7 @@
</span><span class="cx">     ASSERT(!m_usesNetworkProcess);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    DEFINE_STATIC_LOCAL(DownloadManager, downloadManager, (this));
</del><ins>+    static NeverDestroyed&lt;DownloadManager&gt; downloadManager(this);
</ins><span class="cx">     return downloadManager;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/AtomicString.h&gt;
</span><span class="cx"> #include &lt;wtf/text/AtomicStringHash.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -84,6 +85,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> class WebProcess : public ChildProcess, private DownloadManager::Client {
</span><ins>+    friend NeverDestroyed&lt;DownloadManager&gt;;
</ins><span class="cx"> public:
</span><span class="cx">     static WebProcess&amp; shared();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2configh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/config.h (161044 => 161045)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/config.h        2013-12-24 03:23:20 UTC (rev 161044)
+++ trunk/Source/WebKit2/config.h        2013-12-24 03:28:01 UTC (rev 161045)
</span><span class="lines">@@ -47,14 +47,6 @@
</span><span class="cx"> #define EXTERN_C_END
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-// For defining getters to a static value, where the getters have internal linkage
-#define DEFINE_STATIC_GETTER(type, name, arguments) \
-static const type&amp; name() \
-{ \
-    DEFINE_STATIC_LOCAL(type, name##Value, arguments); \
-    return name##Value; \
-}
-
</del><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> 
</span><span class="cx"> // These undefs match up with defines in WebKit2Prefix.h for Mac OS X.
</span></span></pre>
</div>
</div>

</body>
</html>