Changeset 143124 in webkit
- Timestamp:
- Feb 16, 2013, 10:01:39 PM (13 years ago)
- Location:
- trunk/Source
- Files:
-
- 6 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/plugins/PluginData.h (modified) (2 diffs)
-
WebKit2/ChangeLog (modified) (1 diff)
-
WebKit2/Shared/Plugins/PluginModuleInfo.h (modified) (1 diff)
-
WebKit2/UIProcess/Plugins/PluginInfoStore.cpp (modified) (6 diffs)
-
WebKit2/UIProcess/Plugins/PluginInfoStore.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r143123 r143124 1 2013-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 1 14 2013-02-16 Alexey Proskuryakov <ap@apple.com> 2 15 -
trunk/Source/WebCore/plugins/PluginData.h
r134083 r143124 34 34 String desc; 35 35 Vector<String> extensions; 36 37 MimeClassInfo isolatedCopy() const38 {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 }46 36 }; 47 37 … … 56 46 String desc; 57 47 Vector<MimeClassInfo> mimes; 58 59 PluginInfo isolatedCopy() const60 {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 }69 48 }; 70 49 -
trunk/Source/WebKit2/ChangeLog
r143117 r143124 1 2013-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 1 23 2013-02-16 Sam Weinig <sam@webkit.org> 2 24 -
trunk/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h
r139023 r143124 56 56 String versionString; 57 57 #endif 58 59 PluginModuleInfo isolatedCopy() const60 {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 #endif69 return clone;70 }71 58 }; 72 59 -
trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp
r133371 r143124 72 72 #endif 73 73 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 84 74 void PluginInfoStore::loadPluginsIfNecessary() 85 75 { … … 101 91 addFromVector(uniquePluginPaths, individualPluginPaths()); 102 92 103 Vector<PluginModuleInfo> plugins;104 105 93 PathHashSet::const_iterator end = uniquePluginPaths.end(); 106 94 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); 110 96 111 97 m_pluginListIsUpToDate = true; … … 127 113 Vector<PluginModuleInfo> PluginInfoStore::plugins() 128 114 { 129 MutexLocker locker(m_pluginsLock);130 115 loadPluginsIfNecessary(); 131 return deepIsolatedCopyPluginInfoVector(m_plugins);116 return m_plugins; 132 117 } 133 118 134 119 PluginModuleInfo PluginInfoStore::findPluginForMIMEType(const String& mimeType) const 135 120 { 136 MutexLocker locker(m_pluginsLock);137 138 121 ASSERT(!mimeType.isNull()); 139 122 … … 153 136 PluginModuleInfo PluginInfoStore::findPluginForExtension(const String& extension, String& mimeType) const 154 137 { 155 MutexLocker locker(m_pluginsLock);156 157 138 ASSERT(!extension.isNull()); 158 139 … … 208 189 PluginModuleInfo PluginInfoStore::findPlugin(String& mimeType, const KURL& url) 209 190 { 210 { 211 MutexLocker locker(m_pluginsLock); 212 loadPluginsIfNecessary(); 213 } 191 loadPluginsIfNecessary(); 214 192 215 193 // First, check if we can get the plug-in based on its MIME type. … … 243 221 PluginModuleInfo PluginInfoStore::infoForPluginWithPath(const String& pluginPath) const 244 222 { 245 MutexLocker locker(m_pluginsLock);246 247 223 for (size_t i = 0; i < m_plugins.size(); ++i) { 248 224 if (m_plugins[i].path == pluginPath) -
trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h
r133371 r143124 30 30 31 31 #include "PluginModuleInfo.h" 32 #include <wtf/ThreadingPrimitives.h>33 32 34 33 namespace WebCore { … … 90 89 Vector<PluginModuleInfo> m_plugins; 91 90 bool m_pluginListIsUpToDate; 92 93 mutable Mutex m_pluginsLock;94 91 }; 95 92
Note:
See TracChangeset
for help on using the changeset viewer.