<!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 <sam@webkit.org>
+
+ [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 <timothy_horton@apple.com>
</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& DatabaseProcess::shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(DatabaseProcess, databaseProcess, ());
</del><ins>+ static NeverDestroyed<DatabaseProcess> 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 "ChildProcess.h"
</span><span class="cx"> #include "UniqueIDBDatabaseIdentifier.h"
</span><ins>+#include <wtf/NeverDestroyed.h>
</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<DatabaseProcess>;
</ins><span class="cx"> public:
</span><span class="cx"> static DatabaseProcess& 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 "SandboxExtension.h"
</span><span class="cx"> #include <WebCore/BlobRegistryImpl.h>
</span><span class="cx"> #include <wtf/MainThread.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& NetworkBlobRegistry::shared()
</span><span class="cx"> {
</span><span class="cx"> ASSERT(isMainThread());
</span><del>- DEFINE_STATIC_LOCAL(NetworkBlobRegistry, registry, ());
</del><ins>+ static NeverDestroyed<NetworkBlobRegistry> 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& NetworkProcess::shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(NetworkProcess, networkProcess, ());
</del><ins>+ static NeverDestroyed<NetworkProcess> 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& NetworkProcess::downloadManager()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(DownloadManager, downloadManager, (this));
</del><ins>+ static NeverDestroyed<DownloadManager> 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 "MessageReceiverMap.h"
</span><span class="cx"> #include "NetworkResourceLoadScheduler.h"
</span><span class="cx"> #include <wtf/Forward.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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<NetworkProcess>;
+ friend NeverDestroyed<DownloadManager>;
</ins><span class="cx"> public:
</span><span class="cx"> static NetworkProcess& 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 "NetworkProcessPlatformStrategies.h"
</span><span class="cx">
</span><span class="cx"> #include <WebCore/BlobRegistryImpl.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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(&platformStrategies);
</del><ins>+ static NeverDestroyed<NetworkProcessPlatformStrategies> platformStrategies;
+ setPlatformStrategies(&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& privateBrowsingStorageSessionIdentifierBase()
</span><span class="cx"> {
</span><span class="cx"> ASSERT(isMainThread());
</span><del>- DEFINE_STATIC_LOCAL(String, base, ());
</del><ins>+ static NeverDestroyed<String> 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 <wtf/CurrentTime.h>
</span><span class="cx"> #include <wtf/HashSet.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/RunLoop.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx"> #include <wtf/threads/BinarySemaphore.h>
</span><span class="lines">@@ -63,13 +64,13 @@
</span><span class="cx"> typedef HashMap<RunLoop*, SyncMessageState*> SyncMessageStateMap;
</span><span class="cx"> static SyncMessageStateMap& syncMessageStateMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(SyncMessageStateMap, syncMessageStateMap, ());
</del><ins>+ static NeverDestroyed<SyncMessageStateMap> syncMessageStateMap;
</ins><span class="cx"> return syncMessageStateMap;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static Mutex& syncMessageStateMapMutex()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(Mutex, syncMessageStateMapMutex, ());
</del><ins>+ static NeverDestroyed<Mutex> 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& PluginProcess::shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(PluginProcess, pluginProcess, ());
</del><ins>+ static NeverDestroyed<PluginProcess> 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 "ChildProcess.h"
</span><span class="cx"> #include <wtf/Forward.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/text/WTFString.h>
</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<PluginProcess>;
</ins><span class="cx"> public:
</span><span class="cx"> static PluginProcess& 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 <objc/runtime.h>
</span><span class="cx"> #import <sysexits.h>
</span><span class="cx"> #import <wtf/HashSet.h>
</span><ins>+#import <wtf/NeverDestroyed.h>
</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& fullscreenWindowTracker()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(FullscreenWindowTracker, fullscreenWindowTracker, ());
</del><ins>+ static NeverDestroyed<FullscreenWindowTracker> 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 "config.h"
</span><span class="cx"> #include "ConnectionStack.h"
</span><span class="cx">
</span><ins>+#include <wtf/NeverDestroyed.h>
+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><span class="cx"> ConnectionStack& ConnectionStack::shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(ConnectionStack, connectionStack, ());
-
</del><ins>+ static NeverDestroyed<ConnectionStack> 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 "Module.h"
</span><span class="cx"> #include "NPRuntimeUtilities.h"
</span><span class="cx"> #include "NetscapeBrowserFuncs.h"
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><span class="cx"> static Vector<NetscapePluginModule*>& initializedNetscapePluginModules()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(Vector<NetscapePluginModule*>, initializedNetscapePluginModules, ());
</del><ins>+ static NeverDestroyed<Vector<NetscapePluginModule*>> 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 "APIArray.h"
</span><span class="cx"> #include <WebCore/ContextMenuItem.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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 "FontSmoothingLevel.h"
</span><span class="cx"> #include "WebCoreArgumentCoders.h"
</span><span class="cx"> #include <WebCore/Settings.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& KeyLower##Key() \
</span><span class="cx"> { \
</span><del>- DEFINE_STATIC_LOCAL(String, key, (ASCIILiteral(#KeyUpper))); \
</del><ins>+ static NeverDestroyed<String> 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& boolTestRunnerOverridesMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(BoolOverridesMap, map, ());
</del><ins>+ static NeverDestroyed<BoolOverridesMap> 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& CookieStorageShim::shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(CookieStorageShim, storage, ());
</del><ins>+ static NeverDestroyed<CookieStorageShim> 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 <wtf/Noncopyable.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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<CookieStorageShim>;
</ins><span class="cx"> public:
</span><span class="cx"> static CookieStorageShim& 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& PluginProcessManager::shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(PluginProcessManager, pluginProcessManager, ());
</del><ins>+ static NeverDestroyed<PluginProcessManager> 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 "WebProcessProxyMessages.h"
</span><span class="cx"> #include <wtf/Forward.h>
</span><span class="cx"> #include <wtf/HashSet.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/Noncopyable.h>
</span><span class="cx"> #include <wtf/Vector.h>
</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<PluginProcessManager>;
</ins><span class="cx"> public:
</span><span class="cx"> static PluginProcessManager& 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<WebContext*>& contexts()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(Vector<WebContext*>, contexts, ());
-
</del><ins>+ static NeverDestroyed<Vector<WebContext*>> 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 "WebDatabaseManagerMessages.h"
</span><span class="cx"> #include "WebDatabaseManagerProxyMessages.h"
</span><span class="cx"> #include "WebSecurityOrigin.h"
</span><ins>+#include <wtf/NeverDestroyed.h>
</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("WebDatabaseManagerOriginKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerOriginKey"));
</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("WebDatabaseManagerOriginQuotaKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerOriginQuotaKey"));
</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("WebDatabaseManagerOriginUsageKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerOriginUsageKey"));
</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("WebDatabaseManagerDatabaseDetailsKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerDatabaseDetailsKey"));
</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("WebDatabaseManagerDatabaseDetailsNameKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerDatabaseDetailsNameKey"));
</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("WebDatabaseManagerDatabaseDetailsDisplayNameKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerDatabaseDetailsDisplayNameKey"));
</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("WebDatabaseManagerDatabaseDetailsExpectedUsageKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerDatabaseDetailsExpectedUsageKey"));
</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("WebDatabaseManagerDatabaseDetailsCurrentUsageKey")));
</del><ins>+ static NeverDestroyed<String> key(ASCIILiteral("WebDatabaseManagerDatabaseDetailsCurrentUsageKey"));
</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 "WebPreferences.h"
</span><span class="cx"> #include "WebProcessProxy.h"
</span><span class="cx"> #include <WebCore/SchemeRegistry.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR_SERVER)
</span><span class="cx"> #include "WebInspectorServer.h"
</span><span class="lines">@@ -62,7 +63,7 @@
</span><span class="cx"> public:
</span><span class="cx"> static WebInspectorPageGroups& shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(WebInspectorPageGroups, instance, ());
</del><ins>+ static NeverDestroyed<WebInspectorPageGroups> 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 "WebPageProxy.h"
</span><span class="cx"> #include "WebPreferences.h"
</span><span class="cx"> #include <wtf/HashMap.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/text/StringConcatenate.h>
</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& webPageGroupMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(WebPageGroupMap, map, ());
</del><ins>+ static NeverDestroyed<WebPageGroupMap> 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 <WebCore/RenderEmbeddedObject.h>
</span><span class="cx"> #include <WebCore/TextCheckerClient.h>
</span><span class="cx"> #include <WebCore/WindowFeatures.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <stdio.h>
</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<ExceededDatabaseQuotaRecords>;
</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& ExceededDatabaseQuotaRecords::shared()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(ExceededDatabaseQuotaRecords, records, ());
</del><ins>+ static NeverDestroyed<ExceededDatabaseQuotaRecords> 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& commandName)
</span><span class="cx"> {
</span><ins>+ static NeverDestroyed<String> ignoreSpellingCommandName(ASCIILiteral("ignoreSpelling"));
+
</ins><span class="cx"> if (!isValid())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- DEFINE_STATIC_LOCAL(String, ignoreSpellingCommandName, (ASCIILiteral("ignoreSpelling")));
</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 <WebCore/SuddenTermination.h>
</span><span class="cx"> #include <WebCore/URL.h>
</span><span class="cx"> #include <stdio.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/RunLoop.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="lines">@@ -74,7 +75,7 @@
</span><span class="cx"> static WebProcessProxy::WebPageProxyMap& globalPageMap()
</span><span class="cx"> {
</span><span class="cx"> ASSERT(RunLoop::isMain());
</span><del>- DEFINE_STATIC_LOCAL(WebProcessProxy::WebPageProxyMap, pageMap, ());
</del><ins>+ static NeverDestroyed<WebProcessProxy::WebPageProxyMap> 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 "WebBackForwardList.h"
</span><span class="cx">
</span><span class="cx"> #include "Logging.h"
</span><ins>+#include <CoreFoundation/CoreFoundation.h>
+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/RetainPtr.h>
</span><del>-#include <CoreFoundation/CoreFoundation.h>
</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, &currentVersion)));
</del><ins>+static CFNumberRef sessionHistoryCurrentVersion()
+{
+ static CFIndex currentVersionAsCFIndex = 1;
+ return CFNumberCreate(0, kCFNumberCFIndexType, &currentVersionAsCFIndex);
+}
</ins><span class="cx">
</span><del>-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryVersionKey, (CFSTR("SessionHistoryVersion")));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryCurrentIndexKey, (CFSTR("SessionHistoryCurrentIndex")));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntriesKey, (CFSTR("SessionHistoryEntries")));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryTitleKey, (CFSTR("SessionHistoryEntryTitle")));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryURLKey, (CFSTR("SessionHistoryEntryURL")));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryOriginalURLKey, (CFSTR("SessionHistoryEntryOriginalURL")));
-DEFINE_STATIC_GETTER(CFStringRef, SessionHistoryEntryDataKey, (CFSTR("SessionHistoryEntryData")));
</del><ins>+static CFStringRef sessionHistoryVersionKey = CFSTR("SessionHistoryVersion");
+static CFStringRef sessionHistoryCurrentIndexKey = CFSTR("SessionHistoryCurrentIndex");
+static CFStringRef sessionHistoryEntriesKey = CFSTR("SessionHistoryEntries");
+static CFStringRef sessionHistoryEntryTitleKey = CFSTR("SessionHistoryEntryTitle");
+static CFStringRef sessionHistoryEntryURLKey = CFSTR("SessionHistoryEntryURL");
+static CFStringRef sessionHistoryEntryOriginalURLKey = CFSTR("SessionHistoryEntryOriginalURL");
+static CFStringRef sessionHistoryEntryDataKey = CFSTR("SessionHistoryEntryData");
</ins><span class="cx">
</span><span class="cx"> static bool extractBackForwardListEntriesFromArray(CFArrayRef, BackForwardListItemVector&);
</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, &kCFTypeDictionaryKeyCallBacks, &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<CFDataRef> entryData = adoptCF(CFDataCreate(kCFAllocatorDefault, m_entries[i]->backForwardData().data(), m_entries[i]->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<CFDictionaryRef> entryDictionary = adoptCF(CFDictionaryCreate(0, keys, values, 4, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
</span><span class="lines">@@ -130,8 +134,8 @@
</span><span class="cx">
</span><span class="cx"> if (hasCurrentIndex) {
</span><span class="cx"> RetainPtr<CFNumberRef> currentIndexNumber = adoptCF(CFNumberCreate(0, kCFNumberCFIndexType, &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, &kCFTypeDictionaryKeyCallBacks, &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, "WebBackForwardList dictionary representation does not have a valid current index");
</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, "WebBackForwardList dictionary representation does not have a valid list of entries");
</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, "WebBackForwardList dictionary representation does not have a valid list of entries");
</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, "WebBackForwardList entry at index %i does not have a valid URL", (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, "WebBackForwardList entry at index %i does not have a valid title", (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, "WebBackForwardList entry at index %i does not have a valid original URL", (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, "WebBackForwardList entry at index %i does not have back/forward data", (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("SessionHistory")));
-DEFINE_STATIC_GETTER(CFStringRef, ProvisionalURLKey, (CFSTR("ProvisionalURL")));
</del><ins>+static CFStringRef sessionHistoryKey = CFSTR("SessionHistory");
+static CFStringRef provisionalURLKey = CFSTR("ProvisionalURL");
</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<CFDictionaryRef> sessionHistoryDictionary = adoptCF(m_backForwardList->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->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<CFDictionaryRef>(propertyList.get()), SessionHistoryKey())) {
</del><ins>+ if (CFTypeRef value = CFDictionaryGetValue(static_cast<CFDictionaryRef>(propertyList.get()), sessionHistoryKey)) {
</ins><span class="cx"> if (CFGetTypeID(value) != CFDictionaryGetTypeID())
</span><span class="cx"> LOG(SessionState, "SessionState dictionary has a SessionHistory key, but the value is not a dictionary");
</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<CFDictionaryRef>(propertyList.get()), ProvisionalURLKey())) {
</del><ins>+ if (CFTypeRef value = CFDictionaryGetValue(static_cast<CFDictionaryRef>(propertyList.get()), provisionalURLKey)) {
</ins><span class="cx"> if (CFGetTypeID(value) != CFStringGetTypeID())
</span><span class="cx"> LOG(SessionState, "SessionState dictionary has a ProvisionalValue key, but the value is not a string");
</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 <WebCore/TextAlternativeWithRange.h>
</span><span class="cx"> #import <WebKitSystemInterface.h>
</span><span class="cx"> #import <mach-o/dyld.h>
</span><ins>+#import <wtf/NeverDestroyed.h>
</ins><span class="cx"> #import <wtf/text/StringConcatenate.h>
</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& applicationNameForUserAgent)
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(String, osVersion, (systemMarketingVersionForUserAgentString()));
- DEFINE_STATIC_LOCAL(String, webKitVersion, (userVisibleWebKitVersionString()));
</del><ins>+ static NeverDestroyed<String> osVersion(systemMarketingVersionForUserAgentString());
+ static NeverDestroyed<String> webKitVersion(userVisibleWebKitVersionString());
</ins><span class="cx">
</span><span class="cx"> if (applicationNameForUserAgent.isEmpty())
</span><del>- return makeString("Mozilla/5.0 (Macintosh; " PROCESSOR " Mac OS X ", osVersion, ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko)");
- return makeString("Mozilla/5.0 (Macintosh; " PROCESSOR " Mac OS X ", osVersion, ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko) ", applicationNameForUserAgent);
</del><ins>+ return makeString("Mozilla/5.0 (Macintosh; " PROCESSOR " Mac OS X ", osVersion.get(), ") AppleWebKit/", webKitVersion.get(), " (KHTML, like Gecko)");
+ return makeString("Mozilla/5.0 (Macintosh; " PROCESSOR " Mac OS X ", osVersion.get(), ") AppleWebKit/", webKitVersion.get(), " (KHTML, like Gecko) ", applicationNameForUserAgent);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::getIsSpeaking(bool& 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 <WebCore/NotImplemented.h>
</span><span class="cx"> #include <WebCore/SecurityOrigin.h>
</span><span class="cx"> #include <wtf/MainThread.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& sharedDatabaseBackendMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(IDBDatabaseBackendMap, databaseBackendMap, ());
</del><ins>+ static NeverDestroyed<IDBDatabaseBackendMap> 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 "SecurityOriginData.h"
</span><span class="cx"> #include "WebProcess.h"
</span><span class="cx"> #include "WebToDatabaseProcessConnection.h"
</span><del>-
</del><span class="cx"> #include <WebCore/IDBDatabaseMetadata.h>
</span><span class="cx"> #include <WebCore/SecurityOrigin.h>
</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 <WebCore/Node.h>
</span><span class="cx"> #import <WebCore/Range.h>
</span><span class="cx"> #import <WebCore/Text.h>
</span><ins>+#import <wtf/NeverDestroyed.h>
</ins><span class="cx">
</span><span class="cx"> // Classes to instantiate.
</span><span class="cx"> #import "WKDOMElement.h"
</span><span class="lines">@@ -48,15 +49,13 @@
</span><span class="cx">
</span><span class="cx"> DOMCache<WebCore::Node*, WKDOMNode *>& WKDOMNodeCache()
</span><span class="cx"> {
</span><del>- typedef DOMCache<WebCore::Node*, WKDOMNode *> Cache;
- DEFINE_STATIC_LOCAL(Cache, cache, ());
</del><ins>+ static NeverDestroyed<DOMCache<WebCore::Node*, WKDOMNode *>> cache;
</ins><span class="cx"> return cache;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DOMCache<WebCore::Range*, WKDOMRange *>& WKDOMRangeCache()
</span><span class="cx"> {
</span><del>- typedef DOMCache<WebCore::Range*, WKDOMRange *> Cache;
- DEFINE_STATIC_LOCAL(Cache, cache, ());
</del><ins>+ static NeverDestroyed<DOMCache<WebCore::Range*, WKDOMRange *>> 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 <WebCore/Page.h>
</span><span class="cx"> #include <WebCore/RenderObject.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/text/WTFString.h>
</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& domHandleCache()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(DOMHandleCache, cache, ());
</del><ins>+ static NeverDestroyed<DOMHandleCache> 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 <WebCore/JSRange.h>
</span><span class="cx"> #include <WebCore/Range.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& domHandleCache()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(DOMHandleCache, cache, ());
</del><ins>+ static NeverDestroyed<DOMHandleCache> 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 <WebCore/Frame.h>
</span><span class="cx"> #include <WebCore/FrameLoader.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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<WebCore::DOMWindowExtension*, InjectedBundleDOMWindowExtension*> ExtensionMap;
</span><span class="cx"> static ExtensionMap& allExtensions()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(ExtensionMap, map, ());
</del><ins>+ static NeverDestroyed<ExtensionMap> 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 <WebCore/DOMWrapperWorld.h>
</span><span class="cx"> #include <WebCore/ScriptController.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& allWorlds()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(WorldMap, map, ());
</del><ins>+ static NeverDestroyed<WorldMap> 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 <WebCore/Page.h>
</span><span class="cx"> #include <WebCore/PageThrottler.h>
</span><span class="cx"> #include <WebCore/ScriptController.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& globalExceptionString()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(String, exceptionString, ());
</del><ins>+ static NeverDestroyed<String> 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 <WebCore/GraphicsContext.h>
</span><span class="cx"> #import <WebCore/NotImplemented.h>
</span><span class="cx"> #import <WebKitSystemInterface.h>
</span><ins>+#import <wtf/NeverDestroyed.h>
</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& windowMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(WindowMap, windowMap, ());
-
</del><ins>+ static NeverDestroyed<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 <WebCore/PageGroup.h>
</span><span class="cx"> #include <WebCore/SecurityOrigin.h>
</span><span class="cx"> #include <WebCore/Settings.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& localStorageNamespaceMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(LocalStorageNamespaceMap, localStorageNamespaceMap, ());
</del><ins>+ static NeverDestroyed<LocalStorageNamespaceMap> 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 <WebCore/TextIterator.h>
</span><span class="cx"> #include <WebCore/UndoStep.h>
</span><span class="cx"> #include <WebCore/UserTypingGestureIndicator.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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("WebViewDidBeginEditingNotification")));
- m_page->injectedBundleEditorClient().didBeginEditing(m_page, WebViewDidBeginEditingNotification.impl());
</del><ins>+ static NeverDestroyed<String> WebViewDidBeginEditingNotification(ASCIILiteral("WebViewDidBeginEditingNotification"));
+ m_page->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("WebViewDidChangeNotification")));
- m_page->injectedBundleEditorClient().didChange(m_page, WebViewDidChangeNotification.impl());
</del><ins>+ static NeverDestroyed<String> WebViewDidChangeNotification(ASCIILiteral("WebViewDidChangeNotification"));
+ m_page->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("WebViewDidChangeSelectionNotification")));
- m_page->injectedBundleEditorClient().didChangeSelection(m_page, WebViewDidChangeSelectionNotification.impl());
</del><ins>+ static NeverDestroyed<String> WebViewDidChangeSelectionNotification(ASCIILiteral("WebViewDidChangeSelectionNotification"));
+ m_page->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("WebViewDidEndEditingNotification")));
- m_page->injectedBundleEditorClient().didEndEditing(m_page, WebViewDidEndEditingNotification.impl());
</del><ins>+ static NeverDestroyed<String> WebViewDidEndEditingNotification(ASCIILiteral("WebViewDidEndEditingNotification"));
+ m_page->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 <WebCore/UIEventWithKeyState.h>
</span><span class="cx"> #include <WebCore/Widget.h>
</span><span class="cx"> #include <WebCore/WindowFeatures.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& error)
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(const ResourceError, cancelledError, (this->cancelledError(ResourceRequest())));
- DEFINE_STATIC_LOCAL(const ResourceError, pluginWillHandleLoadError, (this->pluginWillHandleLoadError(ResourceResponse())));
</del><ins>+ static NeverDestroyed<const ResourceError> cancelledError(this->cancelledError(ResourceRequest()));
+ static NeverDestroyed<const ResourceError> pluginWillHandleLoadError(this->pluginWillHandleLoadError(ResourceResponse()));
</ins><span class="cx">
</span><del>- if (error.errorCode() == cancelledError.errorCode() && error.domain() == cancelledError.domain())
</del><ins>+ if (error.errorCode() == cancelledError.get().errorCode() && error.domain() == cancelledError.get().domain())
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (error.errorCode() == pluginWillHandleLoadError.errorCode() && error.domain() == pluginWillHandleLoadError.domain())
</del><ins>+ if (error.errorCode() == pluginWillHandleLoadError.get().errorCode() && 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(&platformStrategies);
</del><ins>+ static NeverDestroyed<WebPlatformStrategies> platformStrategies;
+ setPlatformStrategies(&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 <WebCore/SharedWorkerStrategy.h>
</span><span class="cx"> #include <WebCore/StorageStrategy.h>
</span><span class="cx"> #include <WebCore/VisitedLinkStrategy.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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<WebPlatformStrategies>;
</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 <WebCore/HistoryItem.h>
</span><span class="cx"> #include <WebCore/PageCache.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</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& idToHistoryItemMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(IDToHistoryItemMap, map, ());
</del><ins>+ static NeverDestroyed<IDToHistoryItemMap> map;;
</ins><span class="cx"> return map;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static HistoryItemToIDMap& historyItemToIDMap()
</span><span class="cx"> {
</span><del>- DEFINE_STATIC_LOCAL(HistoryItemToIDMap, map, ());
</del><ins>+ static NeverDestroyed<HistoryItemToIDMap> 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<DownloadManager> 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 <wtf/Forward.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/HashSet.h>
</span><ins>+#include <wtf/NeverDestroyed.h>
</ins><span class="cx"> #include <wtf/text/AtomicString.h>
</span><span class="cx"> #include <wtf/text/AtomicStringHash.h>
</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<DownloadManager>;
</ins><span class="cx"> public:
</span><span class="cx"> static WebProcess& 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& 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>