Title: [137420] trunk/Source/WebKit2
- Revision
- 137420
- Author
- [email protected]
- Date
- 2012-12-11 23:01:03 -0800 (Tue, 11 Dec 2012)
Log Message
Add API to set the maximum number of processes allowed in a WKContext
https://bugs.webkit.org/show_bug.cgi?id=104769
Reviewed by Dan Bernstein.
Switch from using NSUserDefaults to a WKContext API to set the maximum number of processes
for a context.
* UIProcess/API/C/WKContext.cpp:
(WKContextSetMaximumNumberOfProcesses):
(WKContextGetMaximumNumberOfProcesses):
* UIProcess/API/C/WKContext.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::setMaximumNumberOfProcesses):
(WebKit):
* UIProcess/WebContext.h:
(WebContext):
(WebKit::WebContext::maximumNumberOfProcesses):
* UIProcess/mac/WebContextMac.mm:
(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebContext::platformInitialize):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (137419 => 137420)
--- trunk/Source/WebKit2/ChangeLog 2012-12-12 06:37:00 UTC (rev 137419)
+++ trunk/Source/WebKit2/ChangeLog 2012-12-12 07:01:03 UTC (rev 137420)
@@ -1,3 +1,27 @@
+2012-12-11 Sam Weinig <[email protected]>
+
+ Add API to set the maximum number of processes allowed in a WKContext
+ https://bugs.webkit.org/show_bug.cgi?id=104769
+
+ Reviewed by Dan Bernstein.
+
+ Switch from using NSUserDefaults to a WKContext API to set the maximum number of processes
+ for a context.
+
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextSetMaximumNumberOfProcesses):
+ (WKContextGetMaximumNumberOfProcesses):
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::setMaximumNumberOfProcesses):
+ (WebKit):
+ * UIProcess/WebContext.h:
+ (WebContext):
+ (WebKit::WebContext::maximumNumberOfProcesses):
+ * UIProcess/mac/WebContextMac.mm:
+ (WebKit::registerUserDefaultsIfNeeded):
+ (WebKit::WebContext::platformInitialize):
+
2012-12-11 Kihong Kwon <[email protected]>
Vibration API: IDL type doesn't match implementation type
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (137419 => 137420)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2012-12-12 06:37:00 UTC (rev 137419)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2012-12-12 07:01:03 UTC (rev 137420)
@@ -131,6 +131,16 @@
return toAPI(toImpl(contextRef)->processModel());
}
+void WKContextSetMaximumNumberOfProcesses(WKContextRef contextRef, unsigned numberOfProcesses)
+{
+ toImpl(contextRef)->setMaximumNumberOfProcesses(numberOfProcesses);
+}
+
+unsigned WKContextGetMaximumNumberOfProcesses(WKContextRef contextRef)
+{
+ return toImpl(contextRef)->maximumNumberOfProcesses();
+}
+
void WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef contextRef, bool alwaysUseComplexTextCodePath)
{
toImpl(contextRef)->setAlwaysUsesComplexTextCodePath(alwaysUseComplexTextCodePath);
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.h (137419 => 137420)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.h 2012-12-12 06:37:00 UTC (rev 137419)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.h 2012-12-12 07:01:03 UTC (rev 137420)
@@ -152,6 +152,9 @@
WK_EXPORT void WKContextSetProcessModel(WKContextRef context, WKProcessModel processModel);
WK_EXPORT WKProcessModel WKContextGetProcessModel(WKContextRef context);
+WK_EXPORT void WKContextSetMaximumNumberOfProcesses(WKContextRef context, unsigned numberOfProcesses);
+WK_EXPORT unsigned WKContextGetMaximumNumberOfProcesses(WKContextRef context);
+
WK_EXPORT void WKContextStartMemorySampler(WKContextRef context, WKDoubleRef interval);
WK_EXPORT void WKContextStopMemorySampler(WKContextRef context);
Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (137419 => 137420)
--- trunk/Source/WebKit2/UIProcess/WebContext.cpp 2012-12-12 06:37:00 UTC (rev 137419)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp 2012-12-12 07:01:03 UTC (rev 137420)
@@ -299,6 +299,18 @@
m_processModel = processModel;
}
+void WebContext::setMaximumNumberOfProcesses(unsigned maximumNumberOfProcesses)
+{
+ // Guard against API misuse.
+ if (!m_processes.isEmpty())
+ CRASH();
+
+ if (maximumNumberOfProcesses == 0)
+ m_webProcessCountLimit = UINT_MAX;
+ else
+ m_webProcessCountLimit = maximumNumberOfProcesses;
+}
+
WebProcessProxy* WebContext::deprecatedSharedProcess()
{
ASSERT(m_processModel == ProcessModelSharedSecondaryProcess);
Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (137419 => 137420)
--- trunk/Source/WebKit2/UIProcess/WebContext.h 2012-12-12 06:37:00 UTC (rev 137419)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h 2012-12-12 07:01:03 UTC (rev 137420)
@@ -104,6 +104,9 @@
void setProcessModel(ProcessModel); // Can only be called when there are no processes running.
ProcessModel processModel() const { return m_processModel; }
+ void setMaximumNumberOfProcesses(unsigned); // Can only be called when there are no processes running.
+ unsigned maximumNumberOfProcesses() const { return m_webProcessCountLimit; }
+
// FIXME (Multi-WebProcess): Remove. No code should assume that there is a shared process.
WebProcessProxy* deprecatedSharedProcess();
Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm (137419 => 137420)
--- trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm 2012-12-12 06:37:00 UTC (rev 137419)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm 2012-12-12 07:01:03 UTC (rev 137420)
@@ -47,7 +47,6 @@
NSString *WebKitLocalCacheDefaultsKey = @"WebKitLocalCache";
NSString *WebStorageDirectoryDefaultsKey = @"WebKitLocalStorageDatabasePathPreferenceKey";
NSString *WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey = @"WebKitKerningAndLigaturesEnabledByDefault";
-NSString *WebKitWebProcessCountLimitDefaultsKey = @"WebKitWebProcessCountLimit";
static NSString *WebKitApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification = @"NSApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification";
@@ -70,7 +69,6 @@
didRegister = true;
NSMutableDictionary *registrationDictionary = [NSMutableDictionary dictionary];
- [registrationDictionary setObject:[NSNumber numberWithInteger:INT_MAX] forKey:WebKitWebProcessCountLimitDefaultsKey];
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
[registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey];
#endif
@@ -81,10 +79,6 @@
void WebContext::platformInitialize()
{
registerUserDefaultsIfNeeded();
-
- m_webProcessCountLimit = [[NSUserDefaults standardUserDefaults] integerForKey:WebKitWebProcessCountLimitDefaultsKey];
- if (m_webProcessCountLimit <= 0)
- m_webProcessCountLimit = 1;
}
String WebContext::applicationCacheDirectory()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes