Diff
Modified: trunk/Source/WebKit2/ChangeLog (149412 => 149413)
--- trunk/Source/WebKit2/ChangeLog 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/ChangeLog 2013-04-30 23:58:20 UTC (rev 149413)
@@ -1,3 +1,43 @@
+2013-04-30 Alexey Proskuryakov <[email protected]>
+
+ [Mac] Don't open window server connection in network process
+ https://bugs.webkit.org/show_bug.cgi?id=115446
+
+ Reviewed by Anders Carlsson.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::initializeProcess):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/mac/NetworkProcessMac.mm:
+ (WebKit::NetworkProcess::initializeProcess):
+ (WebKit::NetworkProcess::initializeProcessName):
+ Instead of shutting down a connection after setting process name, just prevent
+ it from being created.
+
+ * Shared/ChildProcess.h:
+ * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::setApplicationIsDaemon):
+ Expose a function for client processes to call if they don't run an NSApplication
+ run loop.
+
+ * OfflineStorageProcess/OfflineStorageProcess.cpp:
+ (WebKit::OfflineStorageProcess::initializeProcess):
+ * OfflineStorageProcess/OfflineStorageProcess.h:
+ * OfflineStorageProcess/mac/OfflineStorageProcessMac.mm:
+ (WebKit::OfflineStorageProcess::initializeProcess):
+ (WebKit::OfflineStorageProcess::initializeProcessName):
+ * SharedWorkerProcess/SharedWorkerProcess.cpp:
+ (WebKit::SharedWorkerProcess::initializeProcess):
+ (WebKit::SharedWorkerProcess::initializeProcessName):
+ * SharedWorkerProcess/SharedWorkerProcess.h:
+ * SharedWorkerProcess/mac/SharedWorkerProcessMac.mm:
+ (WebKit::SharedWorkerProcess::initializeProcess):
+ (WebKit::SharedWorkerProcess::initializeProcessName):
+ Match NetworkProcess for consistency.
+
+ * WebProcess/mac/WebProcessMac.mm: (WebKit::WebProcess::initializeProcessName):
+ Don't null check UI process name. First, it can't be null, and second, some other
+ processes already don't have this check.
+
2013-04-30 Tim Horton <[email protected]>
Disable deprecation warnings around some NSProcessInfo API.
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp (149412 => 149413)
--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp 2013-04-30 23:58:20 UTC (rev 149413)
@@ -253,6 +253,10 @@
}
#if !PLATFORM(MAC)
+void NetworkProcess::initializeProcess(const ChildProcessInitializationParameters&)
+{
+}
+
void NetworkProcess::initializeProcessName(const ChildProcessInitializationParameters&)
{
}
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h (149412 => 149413)
--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h 2013-04-30 23:58:20 UTC (rev 149413)
@@ -81,6 +81,7 @@
void platformTerminate();
// ChildProcess
+ virtual void initializeProcess(const ChildProcessInitializationParameters&) OVERRIDE;
virtual void initializeProcessName(const ChildProcessInitializationParameters&) OVERRIDE;
virtual void initializeSandbox(const ChildProcessInitializationParameters&, SandboxInitializationParameters&) OVERRIDE;
virtual void initializeConnection(CoreIPC::Connection*) OVERRIDE;
Modified: trunk/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm (149412 => 149413)
--- trunk/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm 2013-04-30 23:58:20 UTC (rev 149413)
@@ -62,15 +62,16 @@
namespace WebKit {
+void NetworkProcess::initializeProcess(const ChildProcessInitializationParameters&)
+{
+ // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
+ setApplicationIsDaemon();
+}
+
void NetworkProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
{
- if (!parameters.uiProcessName.isNull()) {
- NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Networking", "visible name of the network process. The argument is the application name."), (NSString *)parameters.uiProcessName];
- WKSetVisibleApplicationName((CFStringRef)applicationName);
-
- // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
- shutdownWindowServerConnection();
- }
+ NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Networking", "visible name of the network process. The argument is the application name."), (NSString *)parameters.uiProcessName];
+ WKSetVisibleApplicationName((CFStringRef)applicationName);
}
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
Modified: trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp (149412 => 149413)
--- trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.cpp 2013-04-30 23:58:20 UTC (rev 149413)
@@ -82,6 +82,10 @@
}
#if !PLATFORM(MAC)
+void OfflineStorageProcess::initializeProcess(const ChildProcessInitializationParameters&)
+{
+}
+
void OfflineStorageProcess::initializeProcessName(const ChildProcessInitializationParameters&)
{
}
Modified: trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.h (149412 => 149413)
--- trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.h 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/OfflineStorageProcess/OfflineStorageProcess.h 2013-04-30 23:58:20 UTC (rev 149413)
@@ -42,6 +42,7 @@
~OfflineStorageProcess();
// ChildProcess
+ virtual void initializeProcess(const ChildProcessInitializationParameters&) OVERRIDE;
virtual void initializeProcessName(const ChildProcessInitializationParameters&) OVERRIDE;
virtual void initializeSandbox(const ChildProcessInitializationParameters&, SandboxInitializationParameters&) OVERRIDE;
virtual bool shouldTerminate() OVERRIDE;
Modified: trunk/Source/WebKit2/OfflineStorageProcess/mac/OfflineStorageProcessMac.mm (149412 => 149413)
--- trunk/Source/WebKit2/OfflineStorageProcess/mac/OfflineStorageProcessMac.mm 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/OfflineStorageProcess/mac/OfflineStorageProcessMac.mm 2013-04-30 23:58:20 UTC (rev 149413)
@@ -32,13 +32,16 @@
namespace WebKit {
+void OfflineStorageProcess::initializeProcess(const ChildProcessInitializationParameters&)
+{
+ // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
+ setApplicationIsDaemon();
+}
+
void OfflineStorageProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
{
NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Offline Storage", "visible name of the offline storage process. The argument is the application name."), (NSString *)parameters.uiProcessName];
WKSetVisibleApplicationName((CFStringRef)applicationName);
-
- // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
- shutdownWindowServerConnection();
}
void OfflineStorageProcess::initializeSandbox(const ChildProcessInitializationParameters& parameters, SandboxInitializationParameters& sandboxParameters)
Modified: trunk/Source/WebKit2/Shared/ChildProcess.h (149412 => 149413)
--- trunk/Source/WebKit2/Shared/ChildProcess.h 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/Shared/ChildProcess.h 2013-04-30 23:58:20 UTC (rev 149413)
@@ -65,7 +65,7 @@
bool processSuppressionEnabled() const { return !m_processSuppressionAssertion; }
void setProcessSuppressionEnabled(bool);
- void shutdownWindowServerConnection();
+ void setApplicationIsDaemon();
#endif
CoreIPC::Connection* parentProcessConnection() const { return m_connection.get(); }
Modified: trunk/Source/WebKit2/Shared/mac/ChildProcessMac.mm (149412 => 149413)
--- trunk/Source/WebKit2/Shared/mac/ChildProcessMac.mm 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/Shared/mac/ChildProcessMac.mm 2013-04-30 23:58:20 UTC (rev 149413)
@@ -42,19 +42,11 @@
extern "C" int sandbox_init_with_parameters(const char *profile, uint64_t flags, const char *const parameters[], char **errorbuf);
#ifdef __has_include
-#if __has_include(<CoreGraphics/CGSConnection.h>)
-#include <CoreGraphics/CGSConnection.h>
-#endif
-
#if __has_include(<HIServices/ProcessesPriv.h>)
#include <HIServices/ProcessesPriv.h>
#endif
#endif
-#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1080 // Temporary workaround for <rdar://problem/13564588>. We should have the forward declaration on all OS X versions again eventually.
-extern "C" CGError CGSShutdownServerConnections();
-#endif
-
extern "C" OSStatus SetApplicationIsDaemon(Boolean isDaemon);
using namespace WebCore;
@@ -89,10 +81,10 @@
}
#endif
-void ChildProcess::shutdownWindowServerConnection()
+void ChildProcess::setApplicationIsDaemon()
{
- CGSShutdownServerConnections();
- SetApplicationIsDaemon(true);
+ OSStatus error = SetApplicationIsDaemon(true);
+ ASSERT_UNUSED(error, error == noErr);
}
void ChildProcess::platformInitialize()
Modified: trunk/Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.cpp (149412 => 149413)
--- trunk/Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.cpp 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.cpp 2013-04-30 23:58:20 UTC (rev 149413)
@@ -182,6 +182,16 @@
enableTermination();
}
+#if !PLATFORM(MAC)
+void SharedWorkerProcess::initializeProcess(const ChildProcessInitializationParameters&)
+{
+}
+
+void SharedWorkerProcess::initializeProcessName(const ChildProcessInitializationParameters&)
+{
+}
+#endif
+
} // namespace WebKit
#endif // ENABLE(SHARED_WORKER_PROCESS)
Modified: trunk/Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h (149412 => 149413)
--- trunk/Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/SharedWorkerProcess/SharedWorkerProcess.h 2013-04-30 23:58:20 UTC (rev 149413)
@@ -48,6 +48,7 @@
~SharedWorkerProcess();
// ChildProcess
+ virtual void initializeProcess(const ChildProcessInitializationParameters&) OVERRIDE;
virtual void initializeProcessName(const ChildProcessInitializationParameters&) OVERRIDE;
virtual bool shouldTerminate() OVERRIDE;
Modified: trunk/Source/WebKit2/SharedWorkerProcess/mac/SharedWorkerProcessMac.mm (149412 => 149413)
--- trunk/Source/WebKit2/SharedWorkerProcess/mac/SharedWorkerProcessMac.mm 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/SharedWorkerProcess/mac/SharedWorkerProcessMac.mm 2013-04-30 23:58:20 UTC (rev 149413)
@@ -33,13 +33,16 @@
namespace WebKit {
+void SharedWorkerProcess::initializeProcess(const ChildProcessInitializationParameters&)
+{
+ // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
+ setApplicationIsDaemon();
+}
+
void SharedWorkerProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
{
NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Shared Worker", "Visible name of the shared worker process. The argument is the application name."), (NSString *)parameters.uiProcessName];
WKSetVisibleApplicationName((CFStringRef)applicationName);
-
- // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
- shutdownWindowServerConnection();
}
} // namespace WebKit
Modified: trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm (149412 => 149413)
--- trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm 2013-04-30 23:40:25 UTC (rev 149412)
+++ trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm 2013-04-30 23:58:20 UTC (rev 149413)
@@ -189,10 +189,8 @@
void WebProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
{
- if (!parameters.uiProcessName.isNull()) {
- NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Web Content", "Visible name of the web process. The argument is the application name."), (NSString *)parameters.uiProcessName];
- WKSetVisibleApplicationName((CFStringRef)applicationName);
- }
+ NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Web Content", "Visible name of the web process. The argument is the application name."), (NSString *)parameters.uiProcessName];
+ WKSetVisibleApplicationName((CFStringRef)applicationName);
}
void WebProcess::platformInitializeProcess(const ChildProcessInitializationParameters&)