Diff
Modified: branches/safari-534.52-branch/Source/WebKit2/ChangeLog (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/ChangeLog 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/ChangeLog 2011-10-21 20:00:43 UTC (rev 98132)
@@ -1,5 +1,26 @@
2011-10-21 Lucas Forschler <[email protected]>
+ Merge 94454
+
+ 2011-09-02 Ada Chan <[email protected]>
+
+ Add WKContextGarbageCollectJavaScriptObjects() which does a garbage collection in the WebProcess
+ https://bugs.webkit.org/show_bug.cgi?id=67526
+
+ Reviewed by Darin Adler.
+
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextGarbageCollectJavaScriptObjects):
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::garbageCollectJavaScriptObjects): Send a message to WebProcess to garbage collect JS objects.
+ * UIProcess/WebContext.h:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::garbageCollectJavaScriptObjects): Call GCController::garbageCollectNow().
+ * WebProcess/WebProcess.h:
+ * WebProcess/WebProcess.messages.in: Add GarbageCollectJavaScriptObjects message.
+2011-10-21 Lucas Forschler <[email protected]>
+
Merge 94371
2011-09-01 Ada Chan <[email protected]>
Modified: branches/safari-534.52-branch/Source/WebKit2/UIProcess/API/C/WKContext.cpp (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2011-10-21 20:00:43 UTC (rev 98132)
@@ -243,3 +243,8 @@
toImpl(contextRef)->getWebCoreStatistics(DictionaryCallback::create(context, callback));
}
+void WKContextGarbageCollectJavaScriptObjects(WKContextRef contextRef)
+{
+ toImpl(contextRef)->garbageCollectJavaScriptObjects();
+}
+
Modified: branches/safari-534.52-branch/Source/WebKit2/UIProcess/API/C/WKContext.h (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/UIProcess/API/C/WKContext.h 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/UIProcess/API/C/WKContext.h 2011-10-21 20:00:43 UTC (rev 98132)
@@ -134,6 +134,8 @@
typedef void (*WKContextGetStatisticsFunction)(WKDictionaryRef statistics, WKErrorRef error, void* functionContext);
WK_EXPORT void WKContextGetStatistics(WKContextRef context, void* functionContext, WKContextGetStatisticsFunction function);
+
+WK_EXPORT void WKContextGarbageCollectJavaScriptObjects(WKContextRef context);
#ifdef __cplusplus
}
Modified: branches/safari-534.52-branch/Source/WebKit2/UIProcess/WebContext.cpp (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/UIProcess/WebContext.cpp 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/UIProcess/WebContext.cpp 2011-10-21 20:00:43 UTC (rev 98132)
@@ -824,4 +824,9 @@
callback->performCallbackWithReturnValue(statistics.get());
}
+void WebContext::garbageCollectJavaScriptObjects()
+{
+ process()->send(Messages::WebProcess::GarbageCollectJavaScriptObjects(), 0);
+}
+
} // namespace WebKit
Modified: branches/safari-534.52-branch/Source/WebKit2/UIProcess/WebContext.h (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/UIProcess/WebContext.h 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/UIProcess/WebContext.h 2011-10-21 20:00:43 UTC (rev 98132)
@@ -181,6 +181,7 @@
bool httpPipeliningEnabled();
void getWebCoreStatistics(PassRefPtr<DictionaryCallback>);
+ void garbageCollectJavaScriptObjects();
private:
WebContext(ProcessModel, const String& injectedBundlePath);
Modified: branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.cpp (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.cpp 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.cpp 2011-10-21 20:00:43 UTC (rev 98132)
@@ -926,6 +926,11 @@
m_connection->send(Messages::WebContext::DidGetWebCoreStatistics(data, callbackID), 0);
}
+void WebProcess::garbageCollectJavaScriptObjects()
+{
+ gcController().garbageCollectNow();
+}
+
#if ENABLE(PLUGIN_PROCESS)
void WebProcess::pluginProcessCrashed(const String& pluginPath)
{
Modified: branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.h (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.h 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.h 2011-10-21 20:00:43 UTC (rev 98132)
@@ -177,6 +177,7 @@
void setTextCheckerState(const TextCheckerState&);
void getWebCoreStatistics(uint64_t callbackID);
+ void garbageCollectJavaScriptObjects();
// ChildProcess
virtual bool shouldTerminate();
Modified: branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.messages.in (98131 => 98132)
--- branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.messages.in 2011-10-21 19:58:51 UTC (rev 98131)
+++ branches/safari-534.52-branch/Source/WebKit2/WebProcess/WebProcess.messages.in 2011-10-21 20:00:43 UTC (rev 98132)
@@ -69,4 +69,5 @@
SetEnhancedAccessibility(bool flag)
GetWebCoreStatistics(uint64_t callbackID)
+ GarbageCollectJavaScriptObjects()
}