static bool plugin_object_invoke (NPObject *npobj, NPIdentifier name, const NPVariant *args, uint32_t argc, NPVariant *result) { PluginObject *obj; g_return_val_if_fail (plugin_object_has_method (npobj, name), FALSE); g_debug ("invoking plugin object method"); obj = (PluginObject*) npobj; VOID_TO_NPVARIANT (*result); if (name == list_extensions_id) return plugin_list_extensions (obj, result); else if (name == get_metadata_id) { g_return_val_if_fail (argc >= 1, FALSE); g_return_val_if_fail (NPVARIANT_IS_STRING(args[0]), FALSE); return plugin_get_metadata (obj, NPVARIANT_TO_STRING(args[0]), result); } else if (name == enable_extension_id) { g_return_val_if_fail (argc >= 2, FALSE); g_return_val_if_fail (NPVARIANT_IS_STRING(args[0]), FALSE); g_return_val_if_fail (NPVARIANT_IS_BOOLEAN(args[1]), FALSE); return plugin_enable_extension (obj, NPVARIANT_TO_STRING(args[0]), NPVARIANT_TO_BOOLEAN(args[1])); } else if (name == install_extension_id) { g_return_val_if_fail (argc >= 1, FALSE); g_return_val_if_fail (NPVARIANT_IS_STRING(args[0]), FALSE); return plugin_install_extension (obj, NPVARIANT_TO_STRING(args[0])); } return TRUE; }
static bool plugin_object_invoke (NPObject *npobj, NPIdentifier name, const NPVariant *args, uint32_t argc, NPVariant *result) { PluginObject *obj; g_debug ("invoking plugin object method"); obj = (PluginObject*) npobj; VOID_TO_NPVARIANT (*result); if (!plugin_object_has_method (npobj, name)) return FALSE; if (name == list_extensions_id) return plugin_list_extensions (obj, result); else if (name == get_info_id) { if (!NPVARIANT_IS_STRING(args[0])) return FALSE; return plugin_get_info (obj, NPVARIANT_TO_STRING(args[0]), result); } else if (name == enable_extension_id) { if (!NPVARIANT_IS_STRING(args[0])) return FALSE; if (!NPVARIANT_IS_BOOLEAN(args[1])) return FALSE; return plugin_enable_extension (obj, NPVARIANT_TO_STRING(args[0]), NPVARIANT_TO_BOOLEAN(args[1])); } else if (name == install_extension_id) { if (!NPVARIANT_IS_STRING(args[0])) return FALSE; if (!NPVARIANT_IS_STRING(args[1])) return FALSE; return plugin_install_extension (obj, NPVARIANT_TO_STRING(args[0]), NPVARIANT_TO_STRING(args[1])); } else if (name == uninstall_extension_id) { if (!NPVARIANT_IS_STRING(args[0])) return FALSE; return plugin_uninstall_extension (obj, NPVARIANT_TO_STRING(args[0]), result); } else if (name == get_errors_id) { if (!NPVARIANT_IS_STRING(args[0])) return FALSE; return plugin_get_errors (obj, NPVARIANT_TO_STRING(args[0]), result); } else if (name == launch_extension_prefs_id) { if (!NPVARIANT_IS_STRING(args[0])) return FALSE; return plugin_launch_extension_prefs (obj, NPVARIANT_TO_STRING(args[0]), result); } return TRUE; }