Title: [149198] trunk/Source/WebKit2
Revision
149198
Author
aes...@apple.com
Date
2013-04-26 11:24:08 -0700 (Fri, 26 Apr 2013)

Log Message

[WebKit2] CustomProtocolManager's m_registeredSchemes HashSet can be accessed by multiple threads
https://bugs.webkit.org/show_bug.cgi?id=115267

Reviewed by Alexey Proskuryakov.

* Shared/Network/CustomProtocols/CustomProtocolManager.h: Added a Mutex to protect m_registeredSchemes.
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
(WebKit::CustomProtocolManager::registerScheme): Acquired the mutex before accessing m_registeredSchemes.
(WebKit::CustomProtocolManager::unregisterScheme): Ditto.
(WebKit::CustomProtocolManager::supportsScheme): Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (149197 => 149198)


--- trunk/Source/WebKit2/ChangeLog	2013-04-26 18:10:38 UTC (rev 149197)
+++ trunk/Source/WebKit2/ChangeLog	2013-04-26 18:24:08 UTC (rev 149198)
@@ -1,3 +1,16 @@
+2013-04-26  Andy Estes  <aes...@apple.com>
+
+        [WebKit2] CustomProtocolManager's m_registeredSchemes HashSet can be accessed by multiple threads
+        https://bugs.webkit.org/show_bug.cgi?id=115267
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Shared/Network/CustomProtocols/CustomProtocolManager.h: Added a Mutex to protect m_registeredSchemes.
+        * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
+        (WebKit::CustomProtocolManager::registerScheme): Acquired the mutex before accessing m_registeredSchemes.
+        (WebKit::CustomProtocolManager::unregisterScheme): Ditto.
+        (WebKit::CustomProtocolManager::supportsScheme): Ditto.
+
 2013-04-26  Alexey Proskuryakov  <a...@apple.com>
 
         Blobs are not associated with connection when there are no sandbox extensions

Modified: trunk/Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h (149197 => 149198)


--- trunk/Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h	2013-04-26 18:10:38 UTC (rev 149197)
+++ trunk/Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h	2013-04-26 18:24:08 UTC (rev 149198)
@@ -96,6 +96,7 @@
     void didFinishLoading(uint64_t customProtocolID);
 
     HashSet<String> m_registeredSchemes;
+    Mutex m_registeredSchemesMutex;
     ChildProcess* m_childProcess;
     RefPtr<WorkQueue> m_messageQueue;
 

Modified: trunk/Source/WebKit2/Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm (149197 => 149198)


--- trunk/Source/WebKit2/Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm	2013-04-26 18:10:38 UTC (rev 149197)
+++ trunk/Source/WebKit2/Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm	2013-04-26 18:24:08 UTC (rev 149198)
@@ -170,16 +170,19 @@
     
 void CustomProtocolManager::registerScheme(const String& scheme)
 {
+    MutexLocker locker(m_registeredSchemesMutex);
     m_registeredSchemes.add(scheme);
 }
     
 void CustomProtocolManager::unregisterScheme(const String& scheme)
 {
+    MutexLocker locker(m_registeredSchemesMutex);
     m_registeredSchemes.remove(scheme);
 }
 
 bool CustomProtocolManager::supportsScheme(const String& scheme)
 {
+    MutexLocker locker(m_registeredSchemesMutex);
     return m_registeredSchemes.contains(scheme);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to