Changeset 143124 in webkit


Ignore:
Timestamp:
Feb 16, 2013, 10:01:39 PM (13 years ago)
Author:
akling@apple.com
Message:

Source/WebCore: Remove multi-threading gunk from WebKit2's PluginInfoStore.
<http://webkit.org/b/110046>

Reviewed by Alexey Proskuryakov.

Remove now-unused code for making deep (isolated) copies of WebCore plugin structures.

  • plugins/PluginData.h:

(MimeClassInfo):
(PluginInfo):

Source/WebKit2: Remove multi-threading gunk from PluginInfoStore.
<http://webkit.org/b/110046>

Reviewed by Alexey Proskuryakov.

PluginInfoStore is never accessed from multiple threads anymore, so remove the Mutex locking
and stop making isolated copies of everything.

  • Shared/Plugins/PluginModuleInfo.h:

(PluginModuleInfo):

  • UIProcess/Plugins/PluginInfoStore.cpp:

(WebKit::PluginInfoStore::loadPluginsIfNecessary):
(WebKit::PluginInfoStore::plugins):
(WebKit::PluginInfoStore::findPluginForMIMEType):
(WebKit::PluginInfoStore::findPluginForExtension):
(WebKit::PluginInfoStore::findPlugin):
(WebKit::PluginInfoStore::infoForPluginWithPath):

  • UIProcess/Plugins/PluginInfoStore.h:

(PluginInfoStore):

Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r143123 r143124  
     12013-02-16  Andreas Kling  <akling@apple.com>
     2
     3        Remove multi-threading gunk from WebKit2's PluginInfoStore.
     4        <http://webkit.org/b/110046>
     5
     6        Reviewed by Alexey Proskuryakov.
     7
     8        Remove now-unused code for making deep (isolated) copies of WebCore plugin structures.
     9
     10        * plugins/PluginData.h:
     11        (MimeClassInfo):
     12        (PluginInfo):
     13
    1142013-02-16  Alexey Proskuryakov  <ap@apple.com>
    215
  • trunk/Source/WebCore/plugins/PluginData.h

    r134083 r143124  
    3434    String desc;
    3535    Vector<String> extensions;
    36 
    37     MimeClassInfo isolatedCopy() const
    38     {
    39         MimeClassInfo clone;
    40         clone.type = type.isolatedCopy();
    41         clone.desc = desc.isolatedCopy();
    42         for (unsigned i = 0; i < extensions.size(); ++i)
    43             clone.extensions.append(extensions[i].isolatedCopy());
    44         return clone;
    45     }
    4636};
    4737
     
    5646    String desc;
    5747    Vector<MimeClassInfo> mimes;
    58 
    59     PluginInfo isolatedCopy() const
    60     {
    61         PluginInfo clone;
    62         clone.name = name.isolatedCopy();
    63         clone.file = file.isolatedCopy();
    64         clone.desc = desc.isolatedCopy();
    65         for (unsigned i = 0; i < mimes.size(); ++i)
    66             clone.mimes.append(mimes[i].isolatedCopy());
    67         return clone;
    68     }
    6948};
    7049
  • trunk/Source/WebKit2/ChangeLog

    r143117 r143124  
     12013-02-16  Andreas Kling  <akling@apple.com>
     2
     3        Remove multi-threading gunk from PluginInfoStore.
     4        <http://webkit.org/b/110046>
     5
     6        Reviewed by Alexey Proskuryakov.
     7
     8        PluginInfoStore is never accessed from multiple threads anymore, so remove the Mutex locking
     9        and stop making isolated copies of everything.
     10
     11        * Shared/Plugins/PluginModuleInfo.h:
     12        (PluginModuleInfo):
     13        * UIProcess/Plugins/PluginInfoStore.cpp:
     14        (WebKit::PluginInfoStore::loadPluginsIfNecessary):
     15        (WebKit::PluginInfoStore::plugins):
     16        (WebKit::PluginInfoStore::findPluginForMIMEType):
     17        (WebKit::PluginInfoStore::findPluginForExtension):
     18        (WebKit::PluginInfoStore::findPlugin):
     19        (WebKit::PluginInfoStore::infoForPluginWithPath):
     20        * UIProcess/Plugins/PluginInfoStore.h:
     21        (PluginInfoStore):
     22
    1232013-02-16  Sam Weinig  <sam@webkit.org>
    224
  • trunk/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h

    r139023 r143124  
    5656    String versionString;
    5757#endif
    58 
    59     PluginModuleInfo isolatedCopy() const
    60     {
    61         PluginModuleInfo clone;
    62         clone.path = path.isolatedCopy();
    63         clone.info = info.isolatedCopy();
    64 #if PLATFORM(MAC)
    65         clone.pluginArchitecture = pluginArchitecture;
    66         clone.bundleIdentifier = bundleIdentifier.isolatedCopy();
    67         clone.versionString = versionString.isolatedCopy();
    68 #endif
    69         return clone;
    70     }
    7158};
    7259
  • trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp

    r133371 r143124  
    7272#endif
    7373
    74 static inline Vector<PluginModuleInfo> deepIsolatedCopyPluginInfoVector(const Vector<PluginModuleInfo>& vector)
    75 {
    76     // Let the copy begin!
    77     Vector<PluginModuleInfo> copy;
    78     copy.reserveCapacity(vector.size());
    79     for (unsigned i = 0; i < vector.size(); ++i)
    80         copy.append(vector[i].isolatedCopy());
    81     return copy;
    82 }
    83 
    8474void PluginInfoStore::loadPluginsIfNecessary()
    8575{
     
    10191    addFromVector(uniquePluginPaths, individualPluginPaths());
    10292
    103     Vector<PluginModuleInfo> plugins;
    104 
    10593    PathHashSet::const_iterator end = uniquePluginPaths.end();
    10694    for (PathHashSet::const_iterator it = uniquePluginPaths.begin(); it != end; ++it)
    107         loadPlugin(plugins, *it);
    108 
    109     m_plugins = deepIsolatedCopyPluginInfoVector(plugins);
     95        loadPlugin(m_plugins, *it);
    11096
    11197    m_pluginListIsUpToDate = true;
     
    127113Vector<PluginModuleInfo> PluginInfoStore::plugins()
    128114{
    129     MutexLocker locker(m_pluginsLock);
    130115    loadPluginsIfNecessary();
    131     return deepIsolatedCopyPluginInfoVector(m_plugins);
     116    return m_plugins;
    132117}
    133118
    134119PluginModuleInfo PluginInfoStore::findPluginForMIMEType(const String& mimeType) const
    135120{
    136     MutexLocker locker(m_pluginsLock);
    137 
    138121    ASSERT(!mimeType.isNull());
    139122   
     
    153136PluginModuleInfo PluginInfoStore::findPluginForExtension(const String& extension, String& mimeType) const
    154137{
    155     MutexLocker locker(m_pluginsLock);
    156 
    157138    ASSERT(!extension.isNull());
    158139   
     
    208189PluginModuleInfo PluginInfoStore::findPlugin(String& mimeType, const KURL& url)
    209190{
    210     {
    211         MutexLocker locker(m_pluginsLock);
    212         loadPluginsIfNecessary();
    213     }
     191    loadPluginsIfNecessary();
    214192   
    215193    // First, check if we can get the plug-in based on its MIME type.
     
    243221PluginModuleInfo PluginInfoStore::infoForPluginWithPath(const String& pluginPath) const
    244222{
    245     MutexLocker locker(m_pluginsLock);
    246 
    247223    for (size_t i = 0; i < m_plugins.size(); ++i) {
    248224        if (m_plugins[i].path == pluginPath)
  • trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h

    r133371 r143124  
    3030
    3131#include "PluginModuleInfo.h"
    32 #include <wtf/ThreadingPrimitives.h>
    3332
    3433namespace WebCore {
     
    9089    Vector<PluginModuleInfo> m_plugins;
    9190    bool m_pluginListIsUpToDate;
    92 
    93     mutable Mutex m_pluginsLock;
    9491};
    9592   
Note: See TracChangeset for help on using the changeset viewer.