browser-plugin: Set windowless mode and don't claim to need XEmbed

NPAPI plugins are windowed by default, so we need to set
NPPVpluginWindowBool value to FALSE on startup. This way the browser
will not create a GtkSocket for a GtkPlug that we are not going to
create. It doesn't make sense to claim that we need XEmbed either.

https://bugzilla.gnome.org/show_bug.cgi?id=757940
This commit is contained in:
Carlos Garcia Campos 2015-11-11 12:30:24 +01:00 committed by Michael Catanzaro
parent a180dde01c
commit f4b7ab0cb6

View File

@ -162,6 +162,7 @@ NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
plugin->destroy = NPP_Destroy; plugin->destroy = NPP_Destroy;
plugin->getvalue = NPP_GetValue; plugin->getvalue = NPP_GetValue;
plugin->setwindow = NPP_SetWindow; plugin->setwindow = NPP_SetWindow;
plugin->event = NPP_HandleEvent;
return NPERR_NO_ERROR; return NPERR_NO_ERROR;
} }
@ -218,6 +219,9 @@ NPP_New(NPMIMEType mimetype,
data = g_slice_new (PluginData); data = g_slice_new (PluginData);
instance->pdata = data; instance->pdata = data;
/* set windowless mode */
funcs.setvalue(instance, NPPVpluginWindowBool, NULL);
data->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, data->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE, G_DBUS_PROXY_FLAGS_NONE,
NULL, /* interface info */ NULL, /* interface info */
@ -1034,10 +1038,6 @@ NPP_GetValue(NPP instance,
*(NPObject**)value = funcs.createobject (instance, &plugin_class); *(NPObject**)value = funcs.createobject (instance, &plugin_class);
break; break;
case NPPVpluginNeedsXEmbed:
*(bool *)value = TRUE;
break;
default: default:
; ;
} }
@ -1053,3 +1053,11 @@ NPP_SetWindow(NPP instance,
{ {
return NPERR_NO_ERROR; return NPERR_NO_ERROR;
} }
int16_t
NPP_HandleEvent(NPP instance,
void *event)
{
/* Ignore the event */
return FALSE;
}