Title: [94454] trunk/Source/WebKit2
Revision
94454
Author
adac...@apple.com
Date
2011-09-02 15:21:07 -0700 (Fri, 02 Sep 2011)

Log Message

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.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (94453 => 94454)


--- trunk/Source/WebKit2/ChangeLog	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/ChangeLog	2011-09-02 22:21:07 UTC (rev 94454)
@@ -1,3 +1,21 @@
+2011-09-02  Ada Chan  <adac...@apple.com>
+
+        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-09-02  Anders Carlsson  <ander...@apple.com>
 
         Remove plug-in paths from web process sandbox

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (94453 => 94454)


--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp	2011-09-02 22:21:07 UTC (rev 94454)
@@ -237,3 +237,8 @@
     toImpl(contextRef)->getWebCoreStatistics(DictionaryCallback::create(context, callback));    
 }
 
+void WKContextGarbageCollectJavaScriptObjects(WKContextRef contextRef)
+{
+    toImpl(contextRef)->garbageCollectJavaScriptObjects();
+}
+

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.h (94453 => 94454)


--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.h	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.h	2011-09-02 22:21:07 UTC (rev 94454)
@@ -140,6 +140,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: trunk/Source/WebKit2/UIProcess/WebContext.cpp (94453 => 94454)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2011-09-02 22:21:07 UTC (rev 94454)
@@ -829,4 +829,9 @@
     callback->performCallbackWithReturnValue(statistics.get());
 }
     
+void WebContext::garbageCollectJavaScriptObjects()
+{
+    process()->send(Messages::WebProcess::GarbageCollectJavaScriptObjects(), 0);
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (94453 => 94454)


--- trunk/Source/WebKit2/UIProcess/WebContext.h	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h	2011-09-02 22:21:07 UTC (rev 94454)
@@ -181,6 +181,7 @@
     bool httpPipeliningEnabled();
     
     void getWebCoreStatistics(PassRefPtr<DictionaryCallback>);
+    void garbageCollectJavaScriptObjects();
 
 private:
     WebContext(ProcessModel, const String& injectedBundlePath);

Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (94453 => 94454)


--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2011-09-02 22:21:07 UTC (rev 94454)
@@ -934,6 +934,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: trunk/Source/WebKit2/WebProcess/WebProcess.h (94453 => 94454)


--- trunk/Source/WebKit2/WebProcess/WebProcess.h	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h	2011-09-02 22:21:07 UTC (rev 94454)
@@ -178,6 +178,7 @@
     void setTextCheckerState(const TextCheckerState&);
     
     void getWebCoreStatistics(uint64_t callbackID);
+    void garbageCollectJavaScriptObjects();
 
     // ChildProcess
     virtual bool shouldTerminate();

Modified: trunk/Source/WebKit2/WebProcess/WebProcess.messages.in (94453 => 94454)


--- trunk/Source/WebKit2/WebProcess/WebProcess.messages.in	2011-09-02 22:19:59 UTC (rev 94453)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.messages.in	2011-09-02 22:21:07 UTC (rev 94454)
@@ -69,4 +69,5 @@
     SetEnhancedAccessibility(bool flag)
 
     GetWebCoreStatistics(uint64_t callbackID)
+    GarbageCollectJavaScriptObjects()
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to