Diff
Modified: trunk/Source/WebKit/ChangeLog (271562 => 271563)
--- trunk/Source/WebKit/ChangeLog 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/ChangeLog 2021-01-17 19:55:10 UTC (rev 271563)
@@ -1,3 +1,64 @@
+2021-01-17 Fujii Hironori <[email protected]>
+
+ [non-Cocoa] Add a new AuxiliaryProcessMainBase class for auxiliary processes without singleton()
+ https://bugs.webkit.org/show_bug.cgi?id=220615
+
+ Reviewed by Don Olmstead.
+
+ non-Cocoa ports auxiliary processes are using AuxiliaryProcessMain
+ as the entry points. AuxiliaryProcessMain supports both kinds of
+ auxiliary processes with and without singleton() method by using
+ initializeAuxiliaryProcess template function. However, all
+ initializeAuxiliaryProcess look similar code. They can share more
+ code.
+
+ Added a AuxiliaryProcessMainBaseNoSingleton template class for
+ auxiliary processes without singleton().
+
+ Moved the code that was in AuxiliaryProcessMain to
+ AuxiliaryProcessMainBase::run() to remove
+ takeInitializationParameters().
+
+ * GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp:
+ (WebKit::GPUProcessMain):
+ (WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.
+ * GPUProcess/playstation/GPUProcessMainPlayStation.cpp:
+ (WebKit::GPUProcessMain):
+ (WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.
+ * GPUProcess/win/GPUProcessMainWin.cpp:
+ (WebKit::GPUProcessMain):
+ (WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.
+ * NetworkProcess/curl/NetworkProcessMainCurl.cpp:
+ (WebKit::NetworkProcessMain):
+ (WebKit::initializeAuxiliaryProcess<NetworkProcess>): Deleted.
+ * NetworkProcess/soup/NetworkProcessMainSoup.cpp:
+ (WebKit::NetworkProcessMain):
+ (WebKit::initializeAuxiliaryProcess<NetworkProcess>): Deleted.
+ * Shared/AuxiliaryProcessMain.h:
+ (WebKit::AuxiliaryProcessMainBase::platformInitialize):
+ (WebKit::AuxiliaryProcessMainBase::platformFinalize):
+ (WebKit::AuxiliaryProcessMainBase::initializeAuxiliaryProcess):
+ (WebKit::AuxiliaryProcessMainBase::run):
+ (WebKit::AuxiliaryProcessMainBaseNoSingleton::process):
+ (WebKit::AuxiliaryProcessMain):
+ (WebKit::AuxiliaryProcessMainBase::initializationParameters): Deleted.
+ (WebKit::AuxiliaryProcessMainBase::takeInitializationParameters): Deleted.
+ (WebKit::initializeAuxiliaryProcess): Deleted.
+ * Shared/unix/AuxiliaryProcessMain.cpp:
+ (WebKit::AuxiliaryProcessMainCommon::parseCommandLine):
+ (WebKit::AuxiliaryProcessMainBase::parseCommandLine): Deleted.
+ * Shared/win/AuxiliaryProcessMainWin.cpp:
+ (WebKit::AuxiliaryProcessMainCommon::parseCommandLine):
+ (WebKit::AuxiliaryProcessMainBase::parseCommandLine): Deleted.
+ * WebProcess/gtk/WebProcessMainGtk.cpp:
+ (WebKit::WebProcessMain):
+ * WebProcess/playstation/WebProcessMainPlayStation.cpp:
+ (WebKit::WebProcessMain):
+ * WebProcess/win/WebProcessMainWin.cpp:
+ (WebKit::WebProcessMain):
+ * WebProcess/wpe/WebProcessMainWPE.cpp:
+ (WebKit::WebProcessMain):
+
2021-01-17 Youenn Fablet <[email protected]>
Add CoreMedia aavds entitlement to WebContent and GPU processes
Modified: trunk/Source/WebKit/GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp (271562 => 271563)
--- trunk/Source/WebKit/GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -33,26 +33,12 @@
namespace WebKit {
-static RefPtr<GPUProcess> globalGPUProcess;
-
-class GPUProcessMainGStreamer final: public AuxiliaryProcessMainBase {
-public:
- bool platformInitialize() override
- {
- return true;
- }
+class GPUProcessMainGStreamer final: public AuxiliaryProcessMainBaseNoSingleton<GPUProcess> {
};
-template<>
-void initializeAuxiliaryProcess<GPUProcess>(AuxiliaryProcessInitializationParameters&& parameters)
-{
- static NeverDestroyed<GPUProcess> gpuProcess(WTFMove(parameters));
- globalGPUProcess = &gpuProcess.get();
-}
-
int GPUProcessMain(int argc, char** argv)
{
- return AuxiliaryProcessMain<GPUProcess, GPUProcessMainGStreamer>(argc, argv);
+ return AuxiliaryProcessMain<GPUProcessMainGStreamer>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/GPUProcess/playstation/GPUProcessMainPlayStation.cpp (271562 => 271563)
--- trunk/Source/WebKit/GPUProcess/playstation/GPUProcessMainPlayStation.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/GPUProcess/playstation/GPUProcessMainPlayStation.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -33,26 +33,12 @@
namespace WebKit {
-static RefPtr<GPUProcess> globalGPUProcess;
-
-class GPUProcessMainPlayStation final: public AuxiliaryProcessMainBase {
-public:
- bool platformInitialize() override
- {
- return true;
- }
+class GPUProcessMainPlayStation final: public AuxiliaryProcessMainBaseNoSingleton<GPUProcess> {
};
-template<>
-void initializeAuxiliaryProcess<GPUProcess>(AuxiliaryProcessInitializationParameters&& parameters)
-{
- static NeverDestroyed<GPUProcess> gpuProcess(WTFMove(parameters));
- globalGPUProcess = &gpuProcess.get();
-}
-
int GPUProcessMain(int argc, char** argv)
{
- return AuxiliaryProcessMain<GPUProcess, GPUProcessMainPlayStation>(argc, argv);
+ return AuxiliaryProcessMain<GPUProcessMainPlayStation>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/GPUProcess/win/GPUProcessMainWin.cpp (271562 => 271563)
--- trunk/Source/WebKit/GPUProcess/win/GPUProcessMainWin.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/GPUProcess/win/GPUProcessMainWin.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -33,26 +33,12 @@
namespace WebKit {
-static RefPtr<GPUProcess> globalGPUProcess;
-
-class GPUProcessMainPlayStation final: public AuxiliaryProcessMainBase {
-public:
- bool platformInitialize() override
- {
- return true;
- }
+class GPUProcessMainWin final: public AuxiliaryProcessMainBaseNoSingleton<GPUProcess> {
};
-template<>
-void initializeAuxiliaryProcess<GPUProcess>(AuxiliaryProcessInitializationParameters&& parameters)
-{
- static NeverDestroyed<GPUProcess> gpuProcess(WTFMove(parameters));
- globalGPUProcess = &gpuProcess.get();
-}
-
int GPUProcessMain(int argc, char** argv)
{
- return AuxiliaryProcessMain<GPUProcess, GPUProcessMainPlayStation>(argc, argv);
+ return AuxiliaryProcessMain<GPUProcessMainWin>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/curl/NetworkProcessMainCurl.cpp (271562 => 271563)
--- trunk/Source/WebKit/NetworkProcess/curl/NetworkProcessMainCurl.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/NetworkProcess/curl/NetworkProcessMainCurl.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -31,26 +31,17 @@
namespace WebKit {
-static RefPtr<NetworkProcess> globalNetworkProcess;
-
-class NetworkProcessMainCurl final: public AuxiliaryProcessMainBase {
+class NetworkProcessMainCurl final: public AuxiliaryProcessMainBaseNoSingleton<NetworkProcess> {
public:
void platformFinalize() override
{
- globalNetworkProcess->destroySession(PAL::SessionID::defaultSessionID());
+ process().destroySession(PAL::SessionID::defaultSessionID());
}
};
-template<>
-void initializeAuxiliaryProcess<NetworkProcess>(AuxiliaryProcessInitializationParameters&& parameters)
-{
- static NeverDestroyed<NetworkProcess> networkProcess(WTFMove(parameters));
- globalNetworkProcess = &networkProcess.get();
-}
-
int NetworkProcessMain(int argc, char** argv)
{
- return AuxiliaryProcessMain<NetworkProcess, NetworkProcessMainCurl>(argc, argv);
+ return AuxiliaryProcessMain<NetworkProcessMainCurl>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp (271562 => 271563)
--- trunk/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -37,9 +37,7 @@
namespace WebKit {
-static RefPtr<NetworkProcess> globalNetworkProcess;
-
-class NetworkProcessMainSoup final: public AuxiliaryProcessMainBase {
+class NetworkProcessMainSoup final: public AuxiliaryProcessMainBaseNoSingleton<NetworkProcess> {
public:
bool platformInitialize() override
{
@@ -54,20 +52,13 @@
// FIXME: Is this still needed? We should probably destroy all existing sessions at this point instead.
// Needed to destroy the SoupSession and SoupCookieJar, e.g. to avoid
// leaking SQLite temporary journaling files.
- globalNetworkProcess->destroySession(PAL::SessionID::defaultSessionID());
+ process().destroySession(PAL::SessionID::defaultSessionID());
}
};
-template<>
-void initializeAuxiliaryProcess<NetworkProcess>(AuxiliaryProcessInitializationParameters&& parameters)
-{
- static NeverDestroyed<NetworkProcess> networkProcess(WTFMove(parameters));
- globalNetworkProcess = &networkProcess.get();
-}
-
int NetworkProcessMain(int argc, char** argv)
{
- return AuxiliaryProcessMain<NetworkProcess, NetworkProcessMainSoup>(argc, argv);
+ return AuxiliaryProcessMain<NetworkProcessMainSoup>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/Shared/AuxiliaryProcessMain.h (271562 => 271563)
--- trunk/Source/WebKit/Shared/AuxiliaryProcessMain.h 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/Shared/AuxiliaryProcessMain.h 2021-01-17 19:55:10 UTC (rev 271563)
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2014 Igalia S.L.
+ * Copyright (C) 2021 Sony Interactive Entertainment Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -33,45 +34,66 @@
namespace WebKit {
-class AuxiliaryProcessMainBase {
+class AuxiliaryProcessMainCommon {
public:
- virtual bool platformInitialize() { return true; }
- virtual bool parseCommandLine(int argc, char** argv);
- virtual void platformFinalize() { }
+ bool parseCommandLine(int argc, char** argv);
- AuxiliaryProcessInitializationParameters& initializationParameters() { return m_parameters; }
- AuxiliaryProcessInitializationParameters&& takeInitializationParameters() { return WTFMove(m_parameters); }
-
protected:
AuxiliaryProcessInitializationParameters m_parameters;
};
-template<typename AuxiliaryProcessType>
-void initializeAuxiliaryProcess(AuxiliaryProcessInitializationParameters&& parameters)
-{
- AuxiliaryProcessType::singleton().initialize(WTFMove(parameters));
-}
+template<typename AuxiliaryProcessType, bool HasSingleton = true>
+class AuxiliaryProcessMainBase : public AuxiliaryProcessMainCommon {
+public:
+ virtual bool platformInitialize() { return true; }
+ virtual void platformFinalize() { }
-template<typename AuxiliaryProcessType, typename AuxiliaryProcessMainType>
-int AuxiliaryProcessMain(int argc, char** argv)
-{
- AuxiliaryProcessMainType auxiliaryMain;
+ virtual void initializeAuxiliaryProcess(AuxiliaryProcessInitializationParameters&& parameters)
+ {
+ if constexpr (HasSingleton)
+ AuxiliaryProcessType::singleton().initialize(WTFMove(parameters));
+ }
- auxiliaryMain.initializationParameters().processType = AuxiliaryProcessType::processType;
+ int run(int argc, char** argv)
+ {
+ m_parameters.processType = AuxiliaryProcessType::processType;
- if (!auxiliaryMain.platformInitialize())
- return EXIT_FAILURE;
+ if (!platformInitialize())
+ return EXIT_FAILURE;
- if (!auxiliaryMain.parseCommandLine(argc, argv))
- return EXIT_FAILURE;
+ if (!parseCommandLine(argc, argv))
+ return EXIT_FAILURE;
- InitializeWebKit2();
+ InitializeWebKit2();
- initializeAuxiliaryProcess<AuxiliaryProcessType>(auxiliaryMain.takeInitializationParameters());
- RunLoop::run();
- auxiliaryMain.platformFinalize();
+ initializeAuxiliaryProcess(WTFMove(m_parameters));
+ RunLoop::run();
+ platformFinalize();
- return EXIT_SUCCESS;
+ return EXIT_SUCCESS;
+ }
+};
+
+template<typename AuxiliaryProcessType>
+class AuxiliaryProcessMainBaseNoSingleton : public AuxiliaryProcessMainBase<AuxiliaryProcessType, false> {
+public:
+ AuxiliaryProcessType& process() { return *m_process; };
+
+ void initializeAuxiliaryProcess(AuxiliaryProcessInitializationParameters&& parameters) override
+ {
+ m_process = adoptRef(new AuxiliaryProcessType(WTFMove(parameters)));
+ }
+
+protected:
+ RefPtr<AuxiliaryProcessType> m_process;
+};
+
+template<typename AuxiliaryProcessMainType>
+int AuxiliaryProcessMain(int argc, char** argv)
+{
+ NeverDestroyed<AuxiliaryProcessMainType> auxiliaryMain;
+
+ return auxiliaryMain->run(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp (271562 => 271563)
--- trunk/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -33,7 +33,7 @@
namespace WebKit {
-bool AuxiliaryProcessMainBase::parseCommandLine(int argc, char** argv)
+bool AuxiliaryProcessMainCommon::parseCommandLine(int argc, char** argv)
{
ASSERT(argc >= 3);
if (argc < 3)
Modified: trunk/Source/WebKit/Shared/win/AuxiliaryProcessMainWin.cpp (271562 => 271563)
--- trunk/Source/WebKit/Shared/win/AuxiliaryProcessMainWin.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/Shared/win/AuxiliaryProcessMainWin.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -32,7 +32,7 @@
namespace WebKit {
-bool AuxiliaryProcessMainBase::parseCommandLine(int argc, char** argv)
+bool AuxiliaryProcessMainCommon::parseCommandLine(int argc, char** argv)
{
for (int i = 0; i < argc; i++) {
if (!strcmp(argv[i], "-clientIdentifier") && i + 1 < argc) {
Modified: trunk/Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp (271562 => 271563)
--- trunk/Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -43,7 +43,7 @@
namespace WebKit {
using namespace WebCore;
-class WebProcessMainGtk final: public AuxiliaryProcessMainBase {
+class WebProcessMainGtk final: public AuxiliaryProcessMainBase<WebProcess> {
public:
bool platformInitialize() override
{
@@ -75,7 +75,7 @@
// This call needs to happen before any threads begin execution
unsetenv("GTK_THEME");
- return AuxiliaryProcessMain<WebProcess, WebProcessMainGtk>(argc, argv);
+ return AuxiliaryProcessMain<WebProcessMainGtk>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/WebProcess/playstation/WebProcessMainPlayStation.cpp (271562 => 271563)
--- trunk/Source/WebKit/WebProcess/playstation/WebProcessMainPlayStation.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/WebProcess/playstation/WebProcessMainPlayStation.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -32,17 +32,12 @@
namespace WebKit {
using namespace WebCore;
-class WebProcessMainPlayStation final: public AuxiliaryProcessMainBase {
-public:
- bool platformInitialize() override
- {
- return true;
- }
+class WebProcessMainPlayStation final: public AuxiliaryProcessMainBase<WebProcess> {
};
int WebProcessMain(int argc, char** argv)
{
- return AuxiliaryProcessMain<WebProcess, WebProcessMainPlayStation>(argc, argv);
+ return AuxiliaryProcessMain<WebProcessMainPlayStation>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/WebProcess/win/WebProcessMainWin.cpp (271562 => 271563)
--- trunk/Source/WebKit/WebProcess/win/WebProcessMainWin.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/WebProcess/win/WebProcessMainWin.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -37,7 +37,7 @@
namespace WebKit {
using namespace WebCore;
-class WebProcessMainWin final : public AuxiliaryProcessMainBase {
+class WebProcessMainWin final : public AuxiliaryProcessMainBase<WebProcess> {
public:
bool platformInitialize() override
{
@@ -54,7 +54,7 @@
// WebProcess uses DirectX
HRESULT hr = ::CoInitializeEx(nullptr, COINIT_MULTITHREADED);
RELEASE_ASSERT(SUCCEEDED(hr));
- return AuxiliaryProcessMain<WebProcess, WebProcessMainWin>(argc, argv);
+ return AuxiliaryProcessMain<WebProcessMainWin>(argc, argv);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp (271562 => 271563)
--- trunk/Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp 2021-01-17 14:44:37 UTC (rev 271562)
+++ trunk/Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp 2021-01-17 19:55:10 UTC (rev 271563)
@@ -76,7 +76,7 @@
}
#endif
-class WebProcessMainWPE final : public AuxiliaryProcessMainBase {
+class WebProcessMainWPE final : public AuxiliaryProcessMainBase<WebProcess> {
public:
bool platformInitialize() override
{
@@ -103,7 +103,7 @@
int WebProcessMain(int argc, char** argv)
{
- return AuxiliaryProcessMain<WebProcess, WebProcessMainWPE>(argc, argv);
+ return AuxiliaryProcessMain<WebProcessMainWPE>(argc, argv);
}
} // namespace WebKit