Changeset 240366 in webkit
- Timestamp:
- Jan 23, 2019, 4:29:48 PM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r240365 r240366 1 2019-01-23 Alex Christensen <achristensen@webkit.org> 2 3 Stop using NetworkProcess::singleton 4 https://bugs.webkit.org/show_bug.cgi?id=193700 5 6 Reviewed by Don Olmstead. 7 8 This replaces it with a NeverDestroyed<NetworkProcess> and paves the way for more interesting things. 9 10 * NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: 11 * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: 12 (WebKit::initializeChildProcess<WebKit::NetworkProcess>): 13 * NetworkProcess/NetworkProcess.cpp: 14 (WebKit::NetworkProcess::NetworkProcess): 15 (WebKit::NetworkProcess::singleton): Deleted. 16 * NetworkProcess/NetworkProcess.h: 17 * NetworkProcess/soup/NetworkProcessMainSoup.cpp: 18 (WebKit::initializeChildProcess<WebKit::NetworkProcess>): 19 * NetworkProcess/win/NetworkProcessMainWin.cpp: 20 (WebKit::initializeChildProcess<WebKit::NetworkProcess>): 21 * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: 22 (WebKit::initializeChildProcess): 23 (WebKit::XPCServiceInitializer): 24 1 25 2019-01-23 Ryan Haddad <ryanhaddad@apple.com> 2 26 -
trunk/Source/WebKit/NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp
r240340 r240366 75 75 { 76 76 WebKitSoupRequestGeneric* request = WEBKIT_SOUP_REQUEST_GENERIC(g_task_get_source_object(task.get())); 77 auto* customProtocolManager = NetworkProcess::singleton().supplement<LegacyCustomProtocolManager>();77 auto* customProtocolManager = lastCreatedNetworkProcess()->supplement<LegacyCustomProtocolManager>(); 78 78 if (!customProtocolManager) 79 79 return; -
trunk/Source/WebKit/NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm
r205420 r240366 41 41 }; 42 42 43 template<> 44 void initializeChildProcess<NetworkProcess>(ChildProcessInitializationParameters&& parameters) 45 { 46 static NeverDestroyed<NetworkProcess> networkProcess(WTFMove(parameters)); 47 } 48 43 49 } // namespace WebKit 44 50 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
r240360 r240366 125 125 } 126 126 127 NetworkProcess& NetworkProcess::singleton() 128 { 129 static NeverDestroyed<Ref<NetworkProcess>> networkProcess(adoptRef(*new NetworkProcess)); 130 return networkProcess.get(); 131 } 132 133 NetworkProcess::NetworkProcess() 134 : m_hasSetCacheModel(false) 135 , m_cacheModel(CacheModel::DocumentViewer) 136 , m_diskCacheIsDisabledForTesting(false) 137 , m_canHandleHTTPSServerTrustEvaluation(true) 138 , m_downloadManager(*this) 139 #if PLATFORM(COCOA) 140 , m_clearCacheDispatchGroup(0) 141 #endif 127 NetworkProcess::NetworkProcess(ChildProcessInitializationParameters&& parameters) 128 : m_downloadManager(*this) 142 129 #if ENABLE(CONTENT_EXTENSIONS) 143 130 , m_networkContentRuleListManager(*this) 144 #endif145 , m_storageTaskQueue(WorkQueue::create("com.apple.WebKit.StorageTask"))146 #if ENABLE(INDEXED_DATABASE)147 , m_idbPerOriginQuota(IDBServer::defaultPerOriginQuota)148 131 #endif 149 132 { … … 173 156 webProcessConnection->setOnLineState(isOnLine); 174 157 }); 158 159 initialize(WTFMove(parameters)); 175 160 } 176 161 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r240360 r240366 109 109 WTF_MAKE_NONCOPYABLE(NetworkProcess); 110 110 public: 111 NetworkProcess(ChildProcessInitializationParameters&&); 111 112 ~NetworkProcess(); 112 static NetworkProcess& singleton();113 113 static constexpr ProcessType processType = ProcessType::Network; 114 114 … … 289 289 290 290 private: 291 NetworkProcess();292 293 291 void platformInitializeNetworkProcess(const NetworkProcessCreationParameters&); 294 292 std::unique_ptr<WebCore::NetworkStorageSession> platformCreateDefaultStorageSession() const; … … 426 424 427 425 String m_diskCacheDirectory; 428 bool m_hasSetCacheModel ;429 CacheModel m_cacheModel ;426 bool m_hasSetCacheModel { false }; 427 CacheModel m_cacheModel { CacheModel::DocumentViewer }; 430 428 bool m_suppressMemoryPressureHandler { false }; 431 bool m_diskCacheIsDisabledForTesting ;432 bool m_canHandleHTTPSServerTrustEvaluation ;429 bool m_diskCacheIsDisabledForTesting { false }; 430 bool m_canHandleHTTPSServerTrustEvaluation { true }; 433 431 String m_uiProcessBundleIdentifier; 434 432 DownloadManager m_downloadManager; … … 454 452 // multiple requests to clear the cache can come in before previous requests complete, and we need to wait for all of them. 455 453 // In the future using WorkQueue and a counting semaphore would work, as would WorkQueue supporting the libdispatch concept of "work groups". 456 dispatch_group_t m_clearCacheDispatchGroup ;454 dispatch_group_t m_clearCacheDispatchGroup { nullptr }; 457 455 458 456 bool m_suppressesConnectionTerminationOnSystemChange { false }; … … 463 461 #endif 464 462 465 Ref<WorkQueue> m_storageTaskQueue ;463 Ref<WorkQueue> m_storageTaskQueue { WorkQueue::create("com.apple.WebKit.StorageTask") }; 466 464 467 465 #if ENABLE(INDEXED_DATABASE) 468 466 HashMap<PAL::SessionID, String> m_idbDatabasePaths; 469 467 HashMap<PAL::SessionID, RefPtr<WebCore::IDBServer::IDBServer>> m_idbServers; 470 uint64_t m_idbPerOriginQuota ;468 uint64_t m_idbPerOriginQuota { WebCore::IDBServer::defaultPerOriginQuota }; 471 469 #endif 472 470 -
trunk/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp
r240340 r240366 34 34 namespace WebKit { 35 35 36 static RefPtr<NetworkProcess> globalNetworkProcess; 37 36 38 class NetworkProcessMain final: public ChildProcessMainBase { 37 39 public: … … 40 42 // Needed to destroy the SoupSession and SoupCookieJar, e.g. to avoid 41 43 // leaking SQLite temporary journaling files. 42 NetworkProcess::singleton().defaultStorageSession().clearSoupNetworkSession();44 globalNetworkProcess->defaultStorageSession().clearSoupNetworkSession(); 43 45 } 44 46 }; 45 47 48 template<> 49 void initializeChildProcess<NetworkProcess>(ChildProcessInitializationParameters&& parameters) 50 { 51 static NeverDestroyed<NetworkProcess> networkProcess(WTFMove(parameters)); 52 globalNetworkProcess = &networkProcess.get(); 53 } 54 46 55 int NetworkProcessMainUnix(int argc, char** argv) 47 56 { -
trunk/Source/WebKit/NetworkProcess/win/NetworkProcessMainWin.cpp
r221625 r240366 32 32 namespace WebKit { 33 33 34 template<> 35 void initializeChildProcess<NetworkProcess>(ChildProcessInitializationParameters&& parameters) 36 { 37 static NeverDestroyed<NetworkProcess> networkProcess(WTFMove(parameters)); 38 } 39 34 40 int NetworkProcessMainWin(int argc, char** argv) 35 41 { -
trunk/Source/WebKit/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h
r238388 r240366 68 68 }; 69 69 70 template<typename XPCServiceType> 71 void initializeChildProcess(ChildProcessInitializationParameters&& parameters) 72 { 73 XPCServiceType::singleton().initialize(WTFMove(parameters)); 74 } 75 70 76 template<typename XPCServiceType, typename XPCServiceInitializerDelegateType> 71 77 void XPCServiceInitializer(OSObjectPtr<xpc_connection_t> connection, xpc_object_t initializerMessage, xpc_object_t priorityBoostMessage) … … 120 126 parameters.processType = XPCServiceType::processType; 121 127 122 XPCServiceType::singleton().initialize(parameters);128 initializeChildProcess<XPCServiceType>(WTFMove(parameters)); 123 129 } 124 130 -
trunk/Source/WebKit/Shared/unix/ChildProcessMain.h
r199711 r240366 24 24 */ 25 25 26 #ifndef ChildProcessMain_h 27 #define ChildProcessMain_h 26 #pragma once 28 27 29 28 #include "ChildProcess.h" … … 39 38 virtual void platformFinalize() { } 40 39 41 const ChildProcessInitializationParameters& initializationParameters() const { return m_parameters; }40 ChildProcessInitializationParameters&& takeInitializationParameters() { return WTFMove(m_parameters); } 42 41 43 42 protected: 44 43 ChildProcessInitializationParameters m_parameters; 45 44 }; 45 46 template<typename ChildProcessType> 47 void initializeChildProcess(ChildProcessInitializationParameters&& parameters) 48 { 49 ChildProcessType::singleton().initialize(WTFMove(parameters)); 50 } 46 51 47 52 template<typename ChildProcessType, typename ChildProcessMainType> … … 58 63 return EXIT_FAILURE; 59 64 60 ChildProcessType::singleton().initialize(childMain.initializationParameters());65 initializeChildProcess<ChildProcessType>(childMain.takeInitializationParameters()); 61 66 RunLoop::run(); 62 67 childMain.platformFinalize(); … … 66 71 67 72 } // namespace WebKit 68 69 #endif // ChildProcessMain_h
Note:
See TracChangeset
for help on using the changeset viewer.