Changeset 61591 in webkit


Ignore:
Timestamp:
Jun 21, 2010 5:00:29 PM (14 years ago)
Author:
andersca@apple.com
Message:

2010-06-21 Anders Carlsson <andersca@apple.com>

Reviewed by Sam Weinig.

Have PluginInfoStoreMac actually get plug-in info and populate the plug-in list
https://bugs.webkit.org/show_bug.cgi?id=40957

  • UIProcess/Plugins/PluginInfoStore.cpp: (WebKit::PluginInfoStore::loadPluginsIfNecessary): (WebKit::PluginInfoStore::loadPluginsInDirectory): (WebKit::PluginInfoStore::loadPlugin): (WebKit::PluginInfoStore::getPlugins):
  • UIProcess/Plugins/PluginInfoStore.h:
  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm: Added. (WebKit::PluginInfoStore::pluginDirectories): (WebKit::PluginInfoStore::pluginPathsInDirectory): (WebKit::getPluginArchitecture): (WebKit::getPluginInfoFromPropertyLists): (WebKit::PluginInfoStore::getPluginInfo): (WebKit::PluginInfoStore::shouldUsePlugin):
  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/WebKit2
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r61589 r61591  
     12010-06-21  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Have PluginInfoStoreMac actually get plug-in info and populate the plug-in list
     6        https://bugs.webkit.org/show_bug.cgi?id=40957
     7
     8        * UIProcess/Plugins/PluginInfoStore.cpp:
     9        (WebKit::PluginInfoStore::loadPluginsIfNecessary):
     10        (WebKit::PluginInfoStore::loadPluginsInDirectory):
     11        (WebKit::PluginInfoStore::loadPlugin):
     12        (WebKit::PluginInfoStore::getPlugins):
     13        * UIProcess/Plugins/PluginInfoStore.h:
     14        * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: Added.
     15        (WebKit::PluginInfoStore::pluginDirectories):
     16        (WebKit::PluginInfoStore::pluginPathsInDirectory):
     17        (WebKit::getPluginArchitecture):
     18        (WebKit::getPluginInfoFromPropertyLists):
     19        (WebKit::PluginInfoStore::getPluginInfo):
     20        (WebKit::PluginInfoStore::shouldUsePlugin):
     21        * WebKit2.xcodeproj/project.pbxproj:
     22
    1232010-06-21  Anders Carlsson  <andersca@apple.com>
    224
  • trunk/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp

    r61587 r61591  
    4848}
    4949
     50void PluginInfoStore::loadPluginsIfNecessary()
     51{
     52    if (m_pluginListIsUpToDate)
     53        return;
     54
     55    m_plugins.clear();
     56
     57    Vector<String> directories = pluginDirectories();
     58    for (size_t i = 0; i < directories.size(); ++i)
     59        loadPluginsInDirectory(directories[i]);
     60
     61    m_pluginListIsUpToDate = true;
     62}
     63
     64void PluginInfoStore::loadPluginsInDirectory(const String& directory)
     65{
     66    Vector<String> pluginPaths = pluginPathsInDirectory(directory);
     67    for (size_t i = 0; i < pluginPaths.size(); ++i)
     68        loadPlugin(pluginPaths[i]);
     69}
     70
     71void PluginInfoStore::loadPlugin(const String& pluginPath)
     72{
     73    Plugin plugin;
     74   
     75    if (!getPluginInfo(pluginPath, plugin))
     76        return;
     77
     78    if (!shouldUsePlugin(plugin, m_plugins))
     79        return;
     80   
     81    // Add the plug-in.
     82    m_plugins.append(plugin);
     83}
     84
    5085void PluginInfoStore::getPlugins(Vector<WebCore::PluginInfo>& plugins)
    5186{
    52     // FIXME: Implement.
     87    loadPluginsIfNecessary();
     88
     89    for (size_t i = 0; i < m_plugins.size(); ++i)
     90        plugins.append(m_plugins[i].info);
    5391}
    5492
  • trunk/WebKit2/UIProcess/Plugins/PluginInfoStore.h

    r61587 r61591  
    3939   
    4040private:
     41    PluginInfoStore();
     42
    4143    // Represents a single plug-in.
    4244    struct Plugin {
     
    4547#if PLATFORM(MAC)
    4648        cpu_type_t pluginArchitecture;
     49        unsigned versionNumber;
    4750#endif
    4851    };
     52
     53    void loadPluginsIfNecessary();
     54    void loadPluginsInDirectory(const WebCore::String& directory);
     55    void loadPlugin(const WebCore::String& pluginPath);
    4956   
    50     PluginInfoStore();
    51 
     57    // Platform specific member functions.
     58    static Vector<WebCore::String> pluginDirectories();
     59    static Vector<WebCore::String> pluginPathsInDirectory(const WebCore::String& directory);
     60    static bool getPluginInfo(const WebCore::String& pluginPath, Plugin& plugin);
     61    static bool shouldUsePlugin(const Plugin& plugin, const Vector<Plugin>& loadedPlugins);
     62   
    5263    Vector<Plugin> m_plugins;
    5364    bool m_pluginListIsUpToDate;
  • trunk/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r61589 r61591  
    4040                1AEFCC1211D01F96008219D3 /* PluginInfoStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AEFCC1011D01F96008219D3 /* PluginInfoStore.h */; };
    4141                1AEFCC1311D01F96008219D3 /* PluginInfoStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AEFCC1111D01F96008219D3 /* PluginInfoStore.cpp */; };
     42                1AEFCCBD11D02C5E008219D3 /* PluginInfoStoreMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AEFCCBC11D02C5E008219D3 /* PluginInfoStoreMac.mm */; };
    4243                1AF3060A111B599E00F96436 /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit2.framework */; };
    4344                5DAD729C116FF86200EE5396 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
     
    258259                1AEFCC1011D01F96008219D3 /* PluginInfoStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginInfoStore.h; sourceTree = "<group>"; };
    259260                1AEFCC1111D01F96008219D3 /* PluginInfoStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginInfoStore.cpp; sourceTree = "<group>"; };
     261                1AEFCCBC11D02C5E008219D3 /* PluginInfoStoreMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginInfoStoreMac.mm; sourceTree = "<group>"; };
    260262                32DBCF5E0370ADEE00C91783 /* WebKit2Prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKit2Prefix.h; sourceTree = "<group>"; };
    261263                5DAD7294116FF70B00EE5396 /* WebProcess.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = WebProcess.xcconfig; sourceTree = "<group>"; };
     
    589591                        isa = PBXGroup;
    590592                        children = (
     593                                1AEFCCBC11D02C5E008219D3 /* PluginInfoStoreMac.mm */,
    591594                        );
    592595                        path = mac;
     
    11971200                                1AEFCC1311D01F96008219D3 /* PluginInfoStore.cpp in Sources */,
    11981201                                BCDE059C11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.cpp in Sources */,
     1202                                1AEFCCBD11D02C5E008219D3 /* PluginInfoStoreMac.mm in Sources */,
    11991203                        );
    12001204                        runOnlyForDeploymentPostprocessing = 0;
Note: See TracChangeset for help on using the changeset viewer.