Skip to content

Commit eb3aa59

Browse files
committed
Reimplement WebCore::isInWebProcess() family as cross-platform by using AuxiliaryProcessInitializationParameters.processType
https://bugs.webkit.org/show_bug.cgi?id=220529 Reviewed by Alex Christensen. Source/WebCore: isInWebProcess(), isInGPUProcess() and isInNetworkProcess() can be implemented as cross-platform. * platform/RuntimeApplicationChecks.cpp: (WebCore::auxiliaryProcessType): Added. (WebCore::setAuxiliaryProcessType): Added. (WebCore::checkAuxiliaryProcessType): Added. * platform/RuntimeApplicationChecks.h: (WebCore::isInWebProcess): (WebCore::isInNetworkProcess): (WebCore::isInGPUProcess): * platform/SourcesGLib.txt: * platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::isInWebProcess): Deleted. (WebCore::isInGPUProcess): Deleted. (WebCore::isInNetworkProcess): Deleted. * platform/glib/RuntimeApplicationChecksGLib.cpp: Removed. Source/WebKit: Replaced AuxiliaryProcess::ProcessType with WebCore::AuxiliaryProcessType. * GPUProcess/GPUProcess.h: * NetworkProcess/NetworkProcess.h: * PluginProcess/PluginProcess.h: * Shared/AuxiliaryProcess.cpp: (WebKit::AuxiliaryProcess::initialize): * Shared/AuxiliaryProcess.h: Removed ProcessType. * Shared/AuxiliaryProcessMain.h: (WebKit::AuxiliaryProcessMainBase::AuxiliaryProcessMainBase): (WebKit::AuxiliaryProcessMain): (WebKit::AuxiliaryProcessMainBase::takeInitializationParameters): Deleted. * Shared/mac/AuxiliaryProcessMac.mm: (WebKit::SandboxInfo::SandboxInfo): (WebKit::processStorageClass): (WebKit::sandboxDirectory): (WebKit::applySandbox): * WebAuthnProcess/WebAuthnProcess.h: * WebProcess/WebProcess.h: Canonical link: https://commits.webkit.org/233012@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 3100735 commit eb3aa59

16 files changed

Lines changed: 117 additions & 122 deletions

Source/WebCore/ChangeLog

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
2021-01-13 Fujii Hironori <[email protected]>
2+
3+
Reimplement WebCore::isInWebProcess() family as cross-platform by using AuxiliaryProcessInitializationParameters.processType
4+
https://bugs.webkit.org/show_bug.cgi?id=220529
5+
6+
Reviewed by Alex Christensen.
7+
8+
isInWebProcess(), isInGPUProcess() and isInNetworkProcess() can be
9+
implemented as cross-platform.
10+
11+
* platform/RuntimeApplicationChecks.cpp:
12+
(WebCore::auxiliaryProcessType): Added.
13+
(WebCore::setAuxiliaryProcessType): Added.
14+
(WebCore::checkAuxiliaryProcessType): Added.
15+
* platform/RuntimeApplicationChecks.h:
16+
(WebCore::isInWebProcess):
17+
(WebCore::isInNetworkProcess):
18+
(WebCore::isInGPUProcess):
19+
* platform/SourcesGLib.txt:
20+
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
21+
(WebCore::isInWebProcess): Deleted.
22+
(WebCore::isInGPUProcess): Deleted.
23+
(WebCore::isInNetworkProcess): Deleted.
24+
* platform/glib/RuntimeApplicationChecksGLib.cpp: Removed.
25+
126
2021-01-13 Rob Buis <[email protected]>
227

328
Null check selector.argumentList()

Source/WebCore/platform/RuntimeApplicationChecks.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,23 @@ void setPresentingApplicationPID(int pid)
6060
presentingApplicationPIDOverride() = pid;
6161
}
6262

63+
static Optional<AuxiliaryProcessType>& auxiliaryProcessType()
64+
{
65+
static Optional<AuxiliaryProcessType> auxiliaryProcessType;
66+
return auxiliaryProcessType;
67+
}
68+
69+
void setAuxiliaryProcessType(AuxiliaryProcessType type)
70+
{
71+
auxiliaryProcessType() = type;
72+
}
73+
74+
bool checkAuxiliaryProcessType(AuxiliaryProcessType type)
75+
{
76+
auto currentType = auxiliaryProcessType();
77+
if (!currentType)
78+
return false;
79+
return *currentType == type;
80+
}
81+
6382
} // namespace WebCore

Source/WebCore/platform/RuntimeApplicationChecks.h

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,25 @@ namespace WebCore {
3232
WEBCORE_EXPORT void setPresentingApplicationPID(int);
3333
WEBCORE_EXPORT int presentingApplicationPID();
3434

35-
#if PLATFORM(COCOA) || USE(GLIB)
36-
bool isInWebProcess();
37-
bool isInGPUProcess();
38-
bool isInNetworkProcess();
39-
#else
40-
inline bool isInWebProcess() { return false; }
41-
inline bool isInGPUProcess() { return false; }
42-
inline bool isInNetworkProcess() { return false; }
35+
enum class AuxiliaryProcessType : uint8_t {
36+
WebContent,
37+
Network,
38+
Plugin,
39+
#if ENABLE(GPU_PROCESS)
40+
GPU,
41+
#endif
42+
#if ENABLE(WEB_AUTHN)
43+
WebAuthn,
44+
#endif
45+
};
46+
47+
WEBCORE_EXPORT void setAuxiliaryProcessType(AuxiliaryProcessType);
48+
WEBCORE_EXPORT bool checkAuxiliaryProcessType(AuxiliaryProcessType);
49+
50+
inline bool isInWebProcess() { return checkAuxiliaryProcessType(AuxiliaryProcessType::WebContent); }
51+
inline bool isInNetworkProcess() { return checkAuxiliaryProcessType(AuxiliaryProcessType::Network); }
52+
#if ENABLE(GPU_PROCESS)
53+
inline bool isInGPUProcess() { return checkAuxiliaryProcessType(AuxiliaryProcessType::GPU); }
4354
#endif
4455

4556
#if PLATFORM(COCOA)

Source/WebCore/platform/SourcesGLib.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ platform/glib/FileMonitorGLib.cpp
2727
platform/glib/KeyedDecoderGlib.cpp
2828
platform/glib/KeyedEncoderGlib.cpp
2929
platform/glib/LowPowerModeNotifierGLib.cpp
30-
platform/glib/RuntimeApplicationChecksGLib.cpp
3130
platform/glib/SharedBufferGlib.cpp
3231
platform/glib/UserAgentGLib.cpp
3332

Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -90,24 +90,6 @@ void clearApplicationBundleIdentifierTestingOverride()
9090
#endif
9191
}
9292

93-
bool isInWebProcess()
94-
{
95-
static bool mainBundleIsWebProcess = [[[NSBundle mainBundle] bundleIdentifier] hasPrefix:@"com.apple.WebKit.WebContent"];
96-
return mainBundleIsWebProcess;
97-
}
98-
99-
bool isInGPUProcess()
100-
{
101-
static bool mainBundleIsGPUProcess = [[[NSBundle mainBundle] bundleIdentifier] hasPrefix:@"com.apple.WebKit.GPU"];
102-
return mainBundleIsGPUProcess;
103-
}
104-
105-
bool isInNetworkProcess()
106-
{
107-
static bool mainBundleIsNetworkProcess = [[[NSBundle mainBundle] bundleIdentifier] hasPrefix:@"com.apple.WebKit.Networking"];
108-
return mainBundleIsNetworkProcess;
109-
}
110-
11193
static bool applicationBundleIsEqualTo(const String& bundleIdentifierString)
11294
{
11395
return applicationBundleIdentifier() == bundleIdentifierString;

Source/WebCore/platform/glib/RuntimeApplicationChecksGLib.cpp

Lines changed: 0 additions & 62 deletions
This file was deleted.

Source/WebKit/ChangeLog

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
1+
2021-01-13 Fujii Hironori <[email protected]>
2+
3+
Reimplement WebCore::isInWebProcess() family as cross-platform by using AuxiliaryProcessInitializationParameters.processType
4+
https://bugs.webkit.org/show_bug.cgi?id=220529
5+
6+
Reviewed by Alex Christensen.
7+
8+
Replaced AuxiliaryProcess::ProcessType with WebCore::AuxiliaryProcessType.
9+
10+
* GPUProcess/GPUProcess.h:
11+
* NetworkProcess/NetworkProcess.h:
12+
* PluginProcess/PluginProcess.h:
13+
* Shared/AuxiliaryProcess.cpp:
14+
(WebKit::AuxiliaryProcess::initialize):
15+
* Shared/AuxiliaryProcess.h: Removed ProcessType.
16+
* Shared/AuxiliaryProcessMain.h:
17+
(WebKit::AuxiliaryProcessMainBase::AuxiliaryProcessMainBase):
18+
(WebKit::AuxiliaryProcessMain):
19+
(WebKit::AuxiliaryProcessMainBase::takeInitializationParameters): Deleted.
20+
* Shared/mac/AuxiliaryProcessMac.mm:
21+
(WebKit::SandboxInfo::SandboxInfo):
22+
(WebKit::processStorageClass):
23+
(WebKit::sandboxDirectory):
24+
(WebKit::applySandbox):
25+
* WebAuthnProcess/WebAuthnProcess.h:
26+
* WebProcess/WebProcess.h:
27+
128
2021-01-13 John Wilander <[email protected]>
229

330
PCM: Experimental debug mode needs to be read from defaults differently on iOS

Source/WebKit/GPUProcess/GPUProcess.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class GPUProcess : public AuxiliaryProcess, public ThreadSafeRefCounted<GPUProce
5252
public:
5353
explicit GPUProcess(AuxiliaryProcessInitializationParameters&&);
5454
~GPUProcess();
55-
static constexpr ProcessType processType = ProcessType::GPU;
55+
static constexpr WebCore::AuxiliaryProcessType processType = WebCore::AuxiliaryProcessType::GPU;
5656

5757
void removeGPUConnectionToWebProcess(GPUConnectionToWebProcess&);
5858

Source/WebKit/NetworkProcess/NetworkProcess.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ class NetworkProcess : public AuxiliaryProcess, private DownloadManager::Client,
144144

145145
NetworkProcess(AuxiliaryProcessInitializationParameters&&);
146146
~NetworkProcess();
147-
static constexpr ProcessType processType = ProcessType::Network;
147+
static constexpr WebCore::AuxiliaryProcessType processType = WebCore::AuxiliaryProcessType::Network;
148148

149149
template <typename T>
150150
T* supplement()

Source/WebKit/PluginProcess/PluginProcess.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class PluginProcess : public AuxiliaryProcess
4949

5050
public:
5151
static PluginProcess& singleton();
52-
static constexpr ProcessType processType = ProcessType::Plugin;
52+
static constexpr WebCore::AuxiliaryProcessType processType = WebCore::AuxiliaryProcessType::Plugin;
5353

5454
void removeWebProcessConnection(WebProcessConnection*);
5555

0 commit comments

Comments
 (0)