Changeset 149198 in webkit


Ignore:
Timestamp:
Apr 26, 2013 11:24:08 AM (11 years ago)
Author:
aestes@apple.com
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.

Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r149196 r149198  
     12013-04-26  Andy Estes  <aestes@apple.com>
     2
     3        [WebKit2] CustomProtocolManager's m_registeredSchemes HashSet can be accessed by multiple threads
     4        https://bugs.webkit.org/show_bug.cgi?id=115267
     5
     6        Reviewed by Alexey Proskuryakov.
     7
     8        * Shared/Network/CustomProtocols/CustomProtocolManager.h: Added a Mutex to protect m_registeredSchemes.
     9        * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
     10        (WebKit::CustomProtocolManager::registerScheme): Acquired the mutex before accessing m_registeredSchemes.
     11        (WebKit::CustomProtocolManager::unregisterScheme): Ditto.
     12        (WebKit::CustomProtocolManager::supportsScheme): Ditto.
     13
    1142013-04-26  Alexey Proskuryakov  <ap@apple.com>
    215
  • trunk/Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h

    r149194 r149198  
    9797
    9898    HashSet<String> m_registeredSchemes;
     99    Mutex m_registeredSchemesMutex;
    99100    ChildProcess* m_childProcess;
    100101    RefPtr<WorkQueue> m_messageQueue;
  • trunk/Source/WebKit2/Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm

    r149194 r149198  
    171171void CustomProtocolManager::registerScheme(const String& scheme)
    172172{
     173    MutexLocker locker(m_registeredSchemesMutex);
    173174    m_registeredSchemes.add(scheme);
    174175}
     
    176177void CustomProtocolManager::unregisterScheme(const String& scheme)
    177178{
     179    MutexLocker locker(m_registeredSchemesMutex);
    178180    m_registeredSchemes.remove(scheme);
    179181}
     
    181183bool CustomProtocolManager::supportsScheme(const String& scheme)
    182184{
     185    MutexLocker locker(m_registeredSchemesMutex);
    183186    return m_registeredSchemes.contains(scheme);
    184187}
Note: See TracChangeset for help on using the changeset viewer.