Title: [114958] trunk/Source/WebKit2
- Revision
- 114958
- Author
- kl...@webkit.org
- Date
- 2012-04-23 15:52:13 -0700 (Mon, 23 Apr 2012)
Log Message
[Mac] WebProcess should empty cache on a background thread/block.
<http://webkit.org/b/84619>
<rdar://problem/10668689>
Reviewed by Anders Carlsson.
Move the removeAllCachedResponses call to a dispatch queue and wait for it on exit.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
* WebProcess/WebProcess.h:
(WebProcess):
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformTerminate):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (114957 => 114958)
--- trunk/Source/WebKit2/ChangeLog 2012-04-23 22:41:01 UTC (rev 114957)
+++ trunk/Source/WebKit2/ChangeLog 2012-04-23 22:52:13 UTC (rev 114958)
@@ -1,3 +1,21 @@
+2012-04-23 Andreas Kling <kl...@webkit.org>
+
+ [Mac] WebProcess should empty cache on a background thread/block.
+ <http://webkit.org/b/84619>
+ <rdar://problem/10668689>
+
+ Reviewed by Anders Carlsson.
+
+ Move the removeAllCachedResponses call to a dispatch queue and wait for it on exit.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+ * WebProcess/WebProcess.h:
+ (WebProcess):
+ * WebProcess/mac/WebProcessMac.mm:
+ (WebKit::WebProcess::platformClearResourceCaches):
+ (WebKit::WebProcess::platformTerminate):
+
2012-04-23 Allan Sandfeld Jensen <allan.jen...@nokia.com>
[Qt][WK2] Convert touch-point area.
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (114957 => 114958)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2012-04-23 22:41:01 UTC (rev 114957)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2012-04-23 22:52:13 UTC (rev 114958)
@@ -135,6 +135,9 @@
#if USE(ACCELERATED_COMPOSITING) && PLATFORM(MAC)
, m_compositingRenderServerPort(MACH_PORT_NULL)
#endif
+#if PLATFORM(MAC)
+ , m_clearResourceCachesDispatchGroup(0)
+#endif
, m_fullKeyboardAccessEnabled(false)
#if PLATFORM(QT)
, m_networkAccessManager(0)
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (114957 => 114958)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2012-04-23 22:41:01 UTC (rev 114957)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2012-04-23 22:52:13 UTC (rev 114958)
@@ -48,6 +48,10 @@
class QNetworkAccessManager;
#endif
+#if PLATFORM(MAC)
+#include <dispatch/dispatch.h>
+#endif
+
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
#include "WebNotificationManager.h"
#endif
@@ -254,6 +258,7 @@
#endif
#if PLATFORM(MAC)
pid_t m_presenterApplicationPid;
+ dispatch_group_t m_clearResourceCachesDispatchGroup;
#endif
bool m_fullKeyboardAccessEnabled;
Modified: trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm (114957 => 114958)
--- trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm 2012-04-23 22:41:01 UTC (rev 114957)
+++ trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm 2012-04-23 22:52:13 UTC (rev 114958)
@@ -130,7 +130,13 @@
{
if (cachesToClear == InMemoryResourceCachesOnly)
return;
- [[NSURLCache sharedURLCache] removeAllCachedResponses];
+
+ if (!m_clearResourceCachesDispatchGroup)
+ m_clearResourceCachesDispatchGroup = dispatch_group_create();
+
+ dispatch_group_async(m_clearResourceCachesDispatchGroup, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+ [[NSURLCache sharedURLCache] removeAllCachedResponses];
+ });
}
#if ENABLE(WEB_PROCESS_SANDBOX)
@@ -284,6 +290,11 @@
void WebProcess::platformTerminate()
{
+ if (m_clearResourceCachesDispatchGroup) {
+ dispatch_group_wait(m_clearResourceCachesDispatchGroup, DISPATCH_TIME_FOREVER);
+ dispatch_release(m_clearResourceCachesDispatchGroup);
+ m_clearResourceCachesDispatchGroup = 0;
+ }
}
void WebProcess::secItemResponse(CoreIPC::Connection*, uint64_t requestID, const SecItemResponseData& response)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes