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