Title: [143385] trunk/Source/WebKit2
Revision
143385
Author
[email protected]
Date
2013-02-19 14:38:35 -0800 (Tue, 19 Feb 2013)

Log Message

        <rdar://problem/13239119> NetworkProcess generates timeout spindump logs

        Reviewed by Mark Rowe.

        Don't keep a window server connection in processes that don't need it, and don't
        run an NSApplication run loop.

        * Shared/ChildProcess.h:
        * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::shutdownWindowServerConnection):
        Added a function to shut down connections, and to make sure we don't get one in the future.

        * NetworkProcess/mac/NetworkProcessMac.mm:
        (WebKit::NetworkProcess::initializeProcessName):
        * OfflineStorageProcess/mac/OfflineStorageProcessMac.mm:
        (WebKit::OfflineStorageProcess::initializeProcessName):
        * SharedWorkerProcess/mac/SharedWorkerProcessMac.mm:
        (WebKit::SharedWorkerProcess::platformInitializeSharedWorkerProcess): Also removed
        some unused includes and forward declarations.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (143384 => 143385)


--- trunk/Source/WebKit2/ChangeLog	2013-02-19 22:29:03 UTC (rev 143384)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-19 22:38:35 UTC (rev 143385)
@@ -1,3 +1,24 @@
+2013-02-19  Alexey Proskuryakov  <[email protected]>
+
+        <rdar://problem/13239119> NetworkProcess generates timeout spindump logs
+
+        Reviewed by Mark Rowe.
+
+        Don't keep a window server connection in processes that don't need it, and don't
+        run an NSApplication run loop.
+
+        * Shared/ChildProcess.h:
+        * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::shutdownWindowServerConnection):
+        Added a function to shut down connections, and to make sure we don't get one in the future.
+
+        * NetworkProcess/mac/NetworkProcessMac.mm:
+        (WebKit::NetworkProcess::initializeProcessName):
+        * OfflineStorageProcess/mac/OfflineStorageProcessMac.mm:
+        (WebKit::OfflineStorageProcess::initializeProcessName):
+        * SharedWorkerProcess/mac/SharedWorkerProcessMac.mm:
+        (WebKit::SharedWorkerProcess::platformInitializeSharedWorkerProcess): Also removed
+        some unused includes and forward declarations.
+
 2013-02-18  Alexey Proskuryakov  <[email protected]>
 
         [WK2] Cannot load documents with blob urls

Modified: trunk/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm (143384 => 143385)


--- trunk/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm	2013-02-19 22:29:03 UTC (rev 143384)
+++ trunk/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm	2013-02-19 22:38:35 UTC (rev 143385)
@@ -59,6 +59,9 @@
     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();
     }
 }
 

Modified: trunk/Source/WebKit2/OfflineStorageProcess/mac/OfflineStorageProcessMac.mm (143384 => 143385)


--- trunk/Source/WebKit2/OfflineStorageProcess/mac/OfflineStorageProcessMac.mm	2013-02-19 22:29:03 UTC (rev 143384)
+++ trunk/Source/WebKit2/OfflineStorageProcess/mac/OfflineStorageProcessMac.mm	2013-02-19 22:38:35 UTC (rev 143385)
@@ -36,6 +36,9 @@
 {
     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 (143384 => 143385)


--- trunk/Source/WebKit2/Shared/ChildProcess.h	2013-02-19 22:29:03 UTC (rev 143384)
+++ trunk/Source/WebKit2/Shared/ChildProcess.h	2013-02-19 22:38:35 UTC (rev 143385)
@@ -64,6 +64,8 @@
 #if PLATFORM(MAC)
     bool processSuppressionEnabled() const { return !m_processVisibleAssertion; }
     void setProcessSuppressionEnabled(bool);
+
+    void shutdownWindowServerConnection();
 #endif
 
     CoreIPC::Connection* parentProcessConnection() const { return m_connection.get(); }

Modified: trunk/Source/WebKit2/Shared/mac/ChildProcessMac.mm (143384 => 143385)


--- trunk/Source/WebKit2/Shared/mac/ChildProcessMac.mm	2013-02-19 22:29:03 UTC (rev 143384)
+++ trunk/Source/WebKit2/Shared/mac/ChildProcessMac.mm	2013-02-19 22:38:35 UTC (rev 143385)
@@ -41,6 +41,19 @@
 #define SANDBOX_NAMED_EXTERNAL 0x0003
 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
+
+extern "C" CGError CGSShutdownServerConnections();
+extern "C" OSStatus SetApplicationIsDaemon(Boolean isDaemon);
+
 using namespace WebCore;
 
 namespace WebKit {
@@ -70,6 +83,12 @@
 }
 #endif
 
+void ChildProcess::shutdownWindowServerConnection()
+{
+    CGSShutdownServerConnections();
+    SetApplicationIsDaemon(true);
+}
+
 void ChildProcess::platformInitialize()
 {
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090

Modified: trunk/Source/WebKit2/SharedWorkerProcess/mac/SharedWorkerProcessMac.mm (143384 => 143385)


--- trunk/Source/WebKit2/SharedWorkerProcess/mac/SharedWorkerProcessMac.mm	2013-02-19 22:29:03 UTC (rev 143384)
+++ trunk/Source/WebKit2/SharedWorkerProcess/mac/SharedWorkerProcessMac.mm	2013-02-19 22:38:35 UTC (rev 143385)
@@ -32,18 +32,8 @@
 #import "SharedWorkerProcessCreationParameters.h"
 #import <WebCore/LocalizedStrings.h>
 #import <WebKitSystemInterface.h>
-#import <dlfcn.h>
-#import <objc/runtime.h>
-#import <sysexits.h>
-#import <wtf/HashSet.h>
 
-// We have to #undef __APPLE_API_PRIVATE to prevent sandbox.h from looking for a header file that does not exist (<rdar://problem/9679211>). 
-#undef __APPLE_API_PRIVATE
-#import <sandbox.h>
 
-#define SANDBOX_NAMED_EXTERNAL 0x0003
-extern "C" int sandbox_init_with_parameters(const char *profile, uint64_t flags, const char *const parameters[], char **errorbuf);
-
 namespace WebKit {
 
 void SharedWorkerProcess::platformInitializeSharedWorkerProcess(const SharedWorkerProcessCreationParameters& parameters)
@@ -53,6 +43,9 @@
         (NSString *)parameters.parentProcessName];
     
     WKSetVisibleApplicationName((CFStringRef)applicationName);
+
+    // Having a window server connection in this process would result in spin logs (<rdar://problem/13239119>).
+    shutdownWindowServerConnection();
 }
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to