Exemplo n.º 1
0
bool NetscapePluginModule::getPluginInfo(const String& pluginPath, PluginModuleInfo& plugin)
{
    RawPluginMetaData metaData;
    if (!PluginProcessProxy::scanPlugin(pluginPath, metaData))
        return false;

    plugin.path = pluginPath;
    plugin.info.file = pathGetFileName(pluginPath);
    plugin.info.name = metaData.name;
    plugin.info.desc = metaData.description;
    parseMIMEDescription(metaData.mimeDescription, plugin.info.mimes);
#if PLATFORM(GTK)
    plugin.requiresGtk2 = metaData.requiresGtk2;
#endif

    return true;
}
void NetscapePluginModule::determineQuirks()
{
    RawPluginMetaData metaData;
    if (!getPluginInfoForLoadedPlugin(metaData))
        return;

    Vector<MimeClassInfo> mimeTypes;
    parseMIMEDescription(metaData.mimeDescription, mimeTypes);
    for (size_t i = 0; i < mimeTypes.size(); ++i) {
        if (mimeTypes[i].type == "application/x-shockwave-flash") {
#if CPU(X86_64)
            m_pluginQuirks.add(PluginQuirks::IgnoreRightClickInWindowlessMode);
#endif
#if PLATFORM(EFL)
            m_pluginQuirks.add(PluginQuirks::ForceFlashWindowlessMode);
#endif
            break;
        }
    }
}