diff --git a/browser-plugin/README.md b/browser-plugin/README.md deleted file mode 100644 index 8952e2bf3..000000000 --- a/browser-plugin/README.md +++ /dev/null @@ -1,17 +0,0 @@ -The GNOME Shell Browser Plugin provides integration with gnome-shell and the -corresponding extensions repository, codenamed "SweetTooth". The plugin allows -the extensions repository to provide good integration, letting the website -know which extensions are enabled and disabled, and allowing the website to -enable, disable and install them. - -Bugs should be reported to the GNOME [bug tracking system][bug-tracker]. - -## License -The GNOME Shell Browser Plugin, like GNOME Shell itself is distributed under -the GNU General Public License, version 2 or later. The plugin also contains -header files from the "NPAPI SDK" project, tri-licensed under MPL 1.1, GPL 2.0 -and LGPL 2.1. These headers are third-party sources and can be retrieved from: - - http://code.google.com/p/npapi-sdk/ - -[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell/issues diff --git a/browser-plugin/browser-plugin.c b/browser-plugin/browser-plugin.c deleted file mode 100644 index 35e15967e..000000000 --- a/browser-plugin/browser-plugin.c +++ /dev/null @@ -1,1058 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ -/* - * Copyright (C) 2011 Red Hat - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - * - * Authors: - * Jasper St. Pierre - * Giovanni Campagna - */ - -#include - -#define XP_UNIX 1 - -#include "npapi/npapi.h" -#include "npapi/npruntime.h" -#include "npapi/npfunctions.h" - -#include -#include -#include - -#define ORIGIN "extensions.gnome.org" -#define PLUGIN_NAME "GNOME Shell Integration" -#define PLUGIN_DESCRIPTION "This plugin provides integration with GNOME Shell " \ - "for live extension enabling and disabling. " \ - "It can be used only by extensions.gnome.org" -#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::GNOME Shell Integration Dummy Content-Type"; - -#define PLUGIN_API_VERSION 5 - -#define EXTENSION_DISABLE_VERSION_CHECK_KEY "disable-extension-version-validation" - -static NPNetscapeFuncs funcs; - -static inline gchar * -get_string_property (NPP instance, - NPObject *obj, - const char *name) -{ - NPVariant result = { NPVariantType_Void }; - NPString result_str; - gchar *result_copy; - - result_copy = NULL; - - if (!funcs.getproperty (instance, obj, - funcs.getstringidentifier (name), - &result)) - goto out; - - if (!NPVARIANT_IS_STRING (result)) - goto out; - - result_str = NPVARIANT_TO_STRING (result); - result_copy = g_strndup (result_str.UTF8Characters, result_str.UTF8Length); - - out: - funcs.releasevariantvalue (&result); - return result_copy; -} - -static gboolean -check_origin_and_protocol (NPP instance) -{ - gboolean ret = FALSE; - NPError error; - NPObject *window = NULL; - NPVariant document = { NPVariantType_Void }; - NPVariant location = { NPVariantType_Void }; - gchar *hostname = NULL; - gchar *protocol = NULL; - - error = funcs.getvalue (instance, NPNVWindowNPObject, &window); - if (error != NPERR_NO_ERROR) - goto out; - - if (!funcs.getproperty (instance, window, - funcs.getstringidentifier ("document"), - &document)) - goto out; - - if (!NPVARIANT_IS_OBJECT (document)) - goto out; - - if (!funcs.getproperty (instance, NPVARIANT_TO_OBJECT (document), - funcs.getstringidentifier ("location"), - &location)) - goto out; - - if (!NPVARIANT_IS_OBJECT (location)) - goto out; - - hostname = get_string_property (instance, - NPVARIANT_TO_OBJECT (location), - "hostname"); - - if (g_strcmp0 (hostname, ORIGIN)) - { - g_debug ("origin does not match, is %s", - hostname); - - goto out; - } - - protocol = get_string_property (instance, - NPVARIANT_TO_OBJECT (location), - "protocol"); - - if (g_strcmp0 (protocol, "https:") != 0) - { - g_debug ("protocol does not match, is %s", - protocol); - - goto out; - } - - ret = TRUE; - - out: - g_free (protocol); - g_free (hostname); - - funcs.releasevariantvalue (&location); - funcs.releasevariantvalue (&document); - - if (window != NULL) - funcs.releaseobject (window); - return ret; -} - -/* =================== scripting interface =================== */ - -typedef struct { - NPObject parent; - NPP instance; - GDBusProxy *proxy; - GSettings *settings; - NPObject *listener; - NPObject *restart_listener; - gint signal_id; - guint watch_name_id; -} PluginObject; - -static void -on_shell_signal (GDBusProxy *proxy, - gchar *sender_name, - gchar *signal_name, - GVariant *parameters, - gpointer user_data) -{ - PluginObject *obj = user_data; - - if (strcmp (signal_name, "ExtensionStatusChanged") == 0) - { - gchar *uuid; - gint32 status; - gchar *error; - NPVariant args[3]; - NPVariant result = { NPVariantType_Void }; - - g_variant_get (parameters, "(sis)", &uuid, &status, &error); - STRINGZ_TO_NPVARIANT (uuid, args[0]); - INT32_TO_NPVARIANT (status, args[1]); - STRINGZ_TO_NPVARIANT (error, args[2]); - - funcs.invokeDefault (obj->instance, obj->listener, - args, 3, &result); - - funcs.releasevariantvalue (&result); - g_free (uuid); - g_free (error); - } -} - -static void -on_shell_appeared (GDBusConnection *connection, - const gchar *name, - const gchar *name_owner, - gpointer user_data) -{ - PluginObject *obj = (PluginObject*) user_data; - - if (obj->restart_listener) - { - NPVariant result = { NPVariantType_Void }; - - funcs.invokeDefault (obj->instance, obj->restart_listener, - NULL, 0, &result); - - funcs.releasevariantvalue (&result); - } -} - -#define SHELL_SCHEMA "org.gnome.shell" -#define ENABLED_EXTENSIONS_KEY "enabled-extensions" - -static NPObject * -plugin_object_allocate (NPP instance, - NPClass *klass) -{ - PluginObject *obj = (PluginObject *) funcs.memalloc (sizeof (PluginObject)); - - memset (obj, 0, sizeof (PluginObject)); - obj->instance = instance; - - return (NPObject*) obj; -} - -static void -plugin_object_deallocate (NPObject *npobj) -{ - funcs.memfree (npobj); -} - -static inline gboolean -uuid_is_valid (NPString string) -{ - gsize i; - - for (i = 0; i < string.UTF8Length; i++) - { - gchar c = string.UTF8Characters[i]; - if (c < 32 || c >= 127) - return FALSE; - - switch (c) - { - case '&': - case '<': - case '>': - case '/': - case '\\': - return FALSE; - default: - break; - } - } - return TRUE; -} - -static gboolean -jsonify_variant (GVariant *variant, - NPVariant *result) -{ - gboolean ret; - GVariant *real_value; - JsonNode *root; - JsonGenerator *generator; - gsize json_length; - gchar *json; - gchar *buffer; - - ret = TRUE; - - /* DBus methods can return multiple values, - * but we're only interested in the first. */ - g_variant_get (variant, "(@*)", &real_value); - - root = json_gvariant_serialize (real_value); - - generator = json_generator_new (); - json_generator_set_root (generator, root); - json = json_generator_to_data (generator, &json_length); - - buffer = funcs.memalloc (json_length + 1); - if (!buffer) - { - ret = FALSE; - goto out; - } - - strcpy (buffer, json); - - STRINGN_TO_NPVARIANT (buffer, json_length, *result); - - out: - g_variant_unref (variant); - g_variant_unref (real_value); - json_node_free (root); - g_free (json); - - return ret; -} - -static gboolean -parse_args (const gchar *format_str, - uint32_t argc, - const NPVariant *argv, - ...) -{ - va_list args; - gsize i; - gboolean ret = FALSE; - - if (strlen (format_str) != argc) - return FALSE; - - va_start (args, argv); - - for (i = 0; format_str[i]; i++) - { - gpointer arg_location; - const NPVariant arg = argv[i]; - - arg_location = va_arg (args, gpointer); - - switch (format_str[i]) - { - case 'u': - { - NPString string; - - if (!NPVARIANT_IS_STRING (arg)) - goto out; - - string = NPVARIANT_TO_STRING (arg); - - if (!uuid_is_valid (string)) - goto out; - - *(gchar **) arg_location = g_strndup (string.UTF8Characters, string.UTF8Length); - } - break; - - case 'b': - if (!NPVARIANT_IS_BOOLEAN (arg)) - goto out; - - *(gboolean *) arg_location = NPVARIANT_TO_BOOLEAN (arg); - break; - - case 'o': - if (!NPVARIANT_IS_OBJECT (arg)) - goto out; - - *(NPObject **) arg_location = NPVARIANT_TO_OBJECT (arg); - } - } - - ret = TRUE; - - out: - va_end (args); - - return ret; -} - -static gboolean -plugin_list_extensions (PluginObject *obj, - uint32_t argc, - const NPVariant *args, - NPVariant *result) -{ - GError *error = NULL; - GVariant *res; - - res = g_dbus_proxy_call_sync (obj->proxy, - "ListExtensions", - NULL, /* parameters */ - G_DBUS_CALL_FLAGS_NONE, - -1, /* timeout */ - NULL, /* cancellable */ - &error); - - if (!res) - { - g_warning ("Failed to retrieve extension list: %s", error->message); - g_error_free (error); - return FALSE; - } - - return jsonify_variant (res, result); -} - -static gboolean -plugin_enable_extension (PluginObject *obj, - uint32_t argc, - const NPVariant *argv, - NPVariant *result) -{ - gboolean ret; - gchar *uuid; - gboolean enabled; - gsize length; - gchar **uuids; - const gchar **new_uuids; - - if (!parse_args ("ub", argc, argv, &uuid, &enabled)) - return FALSE; - - uuids = g_settings_get_strv (obj->settings, ENABLED_EXTENSIONS_KEY); - length = g_strv_length (uuids); - - if (enabled) - { - new_uuids = g_new (const gchar *, length + 2); /* New key, NULL */ - memcpy (new_uuids, uuids, length * sizeof (*new_uuids)); - new_uuids[length] = uuid; - new_uuids[length + 1] = NULL; - } - else - { - gsize i = 0, j = 0; - new_uuids = g_new (const gchar *, length); - for (i = 0; i < length; i ++) - { - if (g_str_equal (uuids[i], uuid)) - continue; - - new_uuids[j] = uuids[i]; - j++; - } - - new_uuids[j] = NULL; - } - - ret = g_settings_set_strv (obj->settings, - ENABLED_EXTENSIONS_KEY, - new_uuids); - - g_strfreev (uuids); - g_free (new_uuids); - g_free (uuid); - - return ret; -} - -typedef struct _AsyncClosure AsyncClosure; - -struct _AsyncClosure { - PluginObject *obj; - NPObject *callback; - NPObject *errback; -}; - -static void -install_extension_cb (GObject *proxy, - GAsyncResult *async_res, - gpointer user_data) -{ - AsyncClosure *async_closure = (AsyncClosure *) user_data; - GError *error = NULL; - GVariant *res; - NPVariant args[1]; - NPVariant result = { NPVariantType_Void }; - NPObject *callback; - - res = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), async_res, &error); - - if (res == NULL) - { - if (g_dbus_error_is_remote_error (error)) - g_dbus_error_strip_remote_error (error); - STRINGZ_TO_NPVARIANT (error->message, args[0]); - callback = async_closure->errback; - } - else - { - char *string_result; - g_variant_get (res, "(&s)", &string_result); - STRINGZ_TO_NPVARIANT (string_result, args[0]); - callback = async_closure->callback; - } - - funcs.invokeDefault (async_closure->obj->instance, - callback, args, 1, &result); - - funcs.releasevariantvalue (&result); - - funcs.releaseobject (async_closure->callback); - funcs.releaseobject (async_closure->errback); - g_slice_free (AsyncClosure, async_closure); -} - -static gboolean -plugin_install_extension (PluginObject *obj, - uint32_t argc, - const NPVariant *argv, - NPVariant *result) -{ - gchar *uuid; - NPObject *callback, *errback; - AsyncClosure *async_closure; - - if (!parse_args ("uoo", argc, argv, &uuid, &callback, &errback)) - return FALSE; - - async_closure = g_slice_new (AsyncClosure); - async_closure->obj = obj; - async_closure->callback = funcs.retainobject (callback); - async_closure->errback = funcs.retainobject (errback); - - g_dbus_proxy_call (obj->proxy, - "InstallRemoteExtension", - g_variant_new ("(s)", uuid), - G_DBUS_CALL_FLAGS_NONE, - -1, /* timeout */ - NULL, /* cancellable */ - install_extension_cb, - async_closure); - - g_free (uuid); - - return TRUE; -} - -static gboolean -plugin_uninstall_extension (PluginObject *obj, - uint32_t argc, - const NPVariant *argv, - NPVariant *result) -{ - GError *error = NULL; - GVariant *res; - gchar *uuid; - - if (!parse_args ("u", argc, argv, &uuid)) - return FALSE; - - res = g_dbus_proxy_call_sync (obj->proxy, - "UninstallExtension", - g_variant_new ("(s)", uuid), - G_DBUS_CALL_FLAGS_NONE, - -1, /* timeout */ - NULL, /* cancellable */ - &error); - - g_free (uuid); - - if (!res) - { - g_warning ("Failed to uninstall extension: %s", error->message); - g_error_free (error); - return FALSE; - } - - return jsonify_variant (res, result); -} - -static gboolean -plugin_get_info (PluginObject *obj, - uint32_t argc, - const NPVariant *argv, - NPVariant *result) -{ - GError *error = NULL; - GVariant *res; - gchar *uuid; - - if (!parse_args ("u", argc, argv, &uuid)) - return FALSE; - - res = g_dbus_proxy_call_sync (obj->proxy, - "GetExtensionInfo", - g_variant_new ("(s)", uuid), - G_DBUS_CALL_FLAGS_NONE, - -1, /* timeout */ - NULL, /* cancellable */ - &error); - - g_free (uuid); - - if (!res) - { - g_warning ("Failed to retrieve extension metadata: %s", error->message); - g_error_free (error); - return FALSE; - } - - return jsonify_variant (res, result); -} - -static gboolean -plugin_get_errors (PluginObject *obj, - uint32_t argc, - const NPVariant *argv, - NPVariant *result) -{ - GError *error = NULL; - GVariant *res; - gchar *uuid; - - if (!parse_args ("u", argc, argv, &uuid)) - return FALSE; - - res = g_dbus_proxy_call_sync (obj->proxy, - "GetExtensionErrors", - g_variant_new ("(s)", uuid), - G_DBUS_CALL_FLAGS_NONE, - -1, /* timeout */ - NULL, /* cancellable */ - &error); - - if (!res) - { - g_warning ("Failed to retrieve errors: %s", error->message); - g_error_free (error); - return FALSE; - } - - return jsonify_variant (res, result); -} - -static gboolean -plugin_launch_extension_prefs (PluginObject *obj, - uint32_t argc, - const NPVariant *argv, - NPVariant *result) -{ - gchar *uuid; - - if (!parse_args ("u", argc, argv, &uuid)) - return FALSE; - - g_dbus_proxy_call (obj->proxy, - "LaunchExtensionPrefs", - g_variant_new ("(s)", uuid), - G_DBUS_CALL_FLAGS_NONE, - -1, /* timeout */ - NULL, /* cancellable */ - NULL, /* callback */ - NULL /* user_data */); - - return TRUE; -} - -static int -plugin_get_api_version (PluginObject *obj, - NPVariant *result) -{ - INT32_TO_NPVARIANT (PLUGIN_API_VERSION, *result); - return TRUE; -} - -static gboolean -plugin_get_shell_version (PluginObject *obj, - NPVariant *result) -{ - GVariant *res; - const gchar *version; - gsize length; - gchar *buffer; - gboolean ret; - - ret = TRUE; - - res = g_dbus_proxy_get_cached_property (obj->proxy, - "ShellVersion"); - - if (res == NULL) - { - g_warning ("Failed to grab shell version."); - version = "-1"; - } - else - { - g_variant_get (res, "&s", &version); - } - - length = strlen (version); - buffer = funcs.memalloc (length + 1); - if (!buffer) - { - ret = FALSE; - goto out; - } - strcpy (buffer, version); - - STRINGN_TO_NPVARIANT (buffer, length, *result); - - out: - if (res) - g_variant_unref (res); - return ret; -} - -static gboolean -plugin_get_version_validation_enabled (PluginObject *obj, - NPVariant *result) -{ - gboolean is_enabled = !g_settings_get_boolean (obj->settings, EXTENSION_DISABLE_VERSION_CHECK_KEY); - BOOLEAN_TO_NPVARIANT(is_enabled, *result); - - return TRUE; -} - -#define METHODS \ - METHOD (list_extensions) \ - METHOD (get_info) \ - METHOD (enable_extension) \ - METHOD (install_extension) \ - METHOD (uninstall_extension) \ - METHOD (get_errors) \ - METHOD (launch_extension_prefs) \ - /* */ - -#define METHOD(x) \ - static NPIdentifier x##_id; -METHODS -#undef METHOD - -static NPIdentifier api_version_id; -static NPIdentifier shell_version_id; -static NPIdentifier onextension_changed_id; -static NPIdentifier onrestart_id; -static NPIdentifier version_validation_enabled_id; - - -static bool -plugin_object_has_method (NPObject *npobj, - NPIdentifier name) -{ -#define METHOD(x) (name == (x##_id)) || - /* expands to (name == list_extensions_id) || FALSE; */ - return METHODS FALSE; -#undef METHOD -} - -static bool -plugin_object_invoke (NPObject *npobj, - NPIdentifier name, - const NPVariant *argv, - uint32_t argc, - NPVariant *result) -{ - PluginObject *obj; - - g_debug ("invoking plugin object method"); - - obj = (PluginObject*) npobj; - - VOID_TO_NPVARIANT (*result); - -#define METHOD(x) \ - if (name == x##_id) \ - return plugin_##x (obj, argc, argv, result); -METHODS -#undef METHOD - - return FALSE; -} - -static bool -plugin_object_has_property (NPObject *npobj, - NPIdentifier name) -{ - return (name == onextension_changed_id || - name == onrestart_id || - name == api_version_id || - name == shell_version_id || - name == version_validation_enabled_id); -} - -static bool -plugin_object_get_property (NPObject *npobj, - NPIdentifier name, - NPVariant *result) -{ - PluginObject *obj; - - if (!plugin_object_has_property (npobj, name)) - return FALSE; - - obj = (PluginObject*) npobj; - if (name == api_version_id) - return plugin_get_api_version (obj, result); - else if (name == shell_version_id) - return plugin_get_shell_version (obj, result); - else if (name == version_validation_enabled_id) - return plugin_get_version_validation_enabled (obj, result); - else if (name == onextension_changed_id) - { - if (obj->listener) - OBJECT_TO_NPVARIANT (obj->listener, *result); - else - NULL_TO_NPVARIANT (*result); - } - else if (name == onrestart_id) - { - if (obj->restart_listener) - OBJECT_TO_NPVARIANT (obj->restart_listener, *result); - else - NULL_TO_NPVARIANT (*result); - } - - return TRUE; -} - -static bool -plugin_object_set_callback (NPObject **listener, - const NPVariant *value) -{ - if (!NPVARIANT_IS_OBJECT (*value) && !NPVARIANT_IS_NULL (*value)) - return FALSE; - - if (*listener) - funcs.releaseobject (*listener); - *listener = NULL; - - if (NPVARIANT_IS_OBJECT (*value)) - { - *listener = NPVARIANT_TO_OBJECT (*value); - funcs.retainobject (*listener); - } - - return TRUE; -} - -static bool -plugin_object_set_property (NPObject *npobj, - NPIdentifier name, - const NPVariant *value) -{ - PluginObject *obj; - - obj = (PluginObject *)npobj; - - if (name == onextension_changed_id) - return plugin_object_set_callback (&obj->listener, value); - - if (name == onrestart_id) - return plugin_object_set_callback (&obj->restart_listener, value); - - return FALSE; -} - -static NPClass plugin_class = { - NP_CLASS_STRUCT_VERSION, - plugin_object_allocate, - plugin_object_deallocate, - NULL, /* invalidate */ - plugin_object_has_method, - plugin_object_invoke, - NULL, /* invoke default */ - plugin_object_has_property, - plugin_object_get_property, - plugin_object_set_property, - NULL, /* remove property */ - NULL, /* enumerate */ - NULL, /* construct */ -}; - -static void -init_methods_and_properties (void) -{ - /* this is the JS public API; it is manipulated through NPIdentifiers for speed */ - api_version_id = funcs.getstringidentifier ("apiVersion"); - shell_version_id = funcs.getstringidentifier ("shellVersion"); - version_validation_enabled_id = funcs.getstringidentifier ("versionValidationEnabled"); - - get_info_id = funcs.getstringidentifier ("getExtensionInfo"); - list_extensions_id = funcs.getstringidentifier ("listExtensions"); - enable_extension_id = funcs.getstringidentifier ("setExtensionEnabled"); - install_extension_id = funcs.getstringidentifier ("installExtension"); - uninstall_extension_id = funcs.getstringidentifier ("uninstallExtension"); - get_errors_id = funcs.getstringidentifier ("getExtensionErrors"); - launch_extension_prefs_id = funcs.getstringidentifier ("launchExtensionPrefs"); - - onrestart_id = funcs.getstringidentifier ("onshellrestart"); - onextension_changed_id = funcs.getstringidentifier ("onchange"); -} - -/* =============== public entry points =================== */ - -NPError -NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin) -{ - /* global initialization routine, called once when plugin - is loaded */ - - g_debug ("plugin loaded"); - - memcpy (&funcs, pfuncs, sizeof (funcs)); - - plugin->size = sizeof(NPPluginFuncs); - plugin->newp = NPP_New; - plugin->destroy = NPP_Destroy; - plugin->getvalue = NPP_GetValue; - plugin->setwindow = NPP_SetWindow; - plugin->event = NPP_HandleEvent; - - return NPERR_NO_ERROR; -} - -NPError -NP_Shutdown(void) -{ - return NPERR_NO_ERROR; -} - -const char* -NP_GetMIMEDescription(void) -{ - return PLUGIN_MIME_STRING; -} - -NPError -NP_GetValue(void *instance, - NPPVariable variable, - void *value) -{ - switch (variable) { - case NPPVpluginNameString: - *(char**)value = PLUGIN_NAME; - break; - case NPPVpluginDescriptionString: - *(char**)value = PLUGIN_DESCRIPTION; - break; - default: - ; - } - - return NPERR_NO_ERROR; -} - -NPError -NPP_New(NPMIMEType mimetype, - NPP instance, - uint16_t mode, - int16_t argc, - char **argn, - char **argv, - NPSavedData *saved) -{ - /* instance initialization function */ - PluginObject *obj; - GError *error = NULL; - - g_debug ("plugin created"); - - if (!check_origin_and_protocol (instance)) - return NPERR_GENERIC_ERROR; - - /* set windowless mode */ - funcs.setvalue(instance, NPPVpluginWindowBool, NULL); - - g_debug ("creating scriptable object"); - init_methods_and_properties (); - obj = (PluginObject *) funcs.createobject (instance, &plugin_class); - instance->pdata = obj; - - obj->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, - G_DBUS_PROXY_FLAGS_NONE, - NULL, /* interface info */ - "org.gnome.Shell", - "/org/gnome/Shell", - "org.gnome.Shell.Extensions", - NULL, /* GCancellable */ - &error); - if (!obj->proxy) - { - /* ignore error if the shell is not running, otherwise warn */ - if (!g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER)) - { - g_warning ("Failed to set up Shell proxy: %s", error->message); - } - g_clear_error (&error); - return NPERR_GENERIC_ERROR; - } - - obj->settings = g_settings_new (SHELL_SCHEMA); - obj->signal_id = g_signal_connect (obj->proxy, "g-signal", - G_CALLBACK (on_shell_signal), obj); - obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION, - "org.gnome.Shell", - G_BUS_NAME_WATCHER_FLAGS_NONE, - on_shell_appeared, - NULL, - obj, - NULL); - - g_debug ("plugin created successfully"); - - return NPERR_NO_ERROR; -} - -NPError -NPP_Destroy(NPP instance, - NPSavedData **saved) -{ - /* instance finalization function */ - PluginObject *obj = (PluginObject *) instance->pdata; - - if (!obj) - return NPERR_INVALID_INSTANCE_ERROR; - - g_debug ("plugin destroyed"); - - g_signal_handler_disconnect (obj->proxy, obj->signal_id); - g_object_unref (obj->proxy); - - if (obj->listener) - funcs.releaseobject (obj->listener); - - if (obj->restart_listener) - funcs.releaseobject (obj->restart_listener); - - if (obj->watch_name_id) - g_bus_unwatch_name (obj->watch_name_id); - - funcs.releaseobject((NPObject *)obj); - - return NPERR_NO_ERROR; -} - -NPError -NPP_GetValue(NPP instance, - NPPVariable variable, - void *value) -{ - g_debug ("NPP_GetValue called"); - - switch (variable) { - case NPPVpluginScriptableNPObject: - g_debug ("creating scriptable object"); - if (!instance->pdata) - return NPERR_INVALID_INSTANCE_ERROR; - - funcs.retainobject (instance->pdata); - *(NPObject**)value = instance->pdata; - break; - - default: - ; - } - - return NPERR_NO_ERROR; -} - -/* Opera tries to call NPP_SetWindow without checking the - * NULL pointer beforehand. */ -NPError -NPP_SetWindow(NPP instance, - NPWindow *window) -{ - return NPERR_NO_ERROR; -} - -int16_t -NPP_HandleEvent(NPP instance, - void *event) -{ - /* Ignore the event */ - return FALSE; -} diff --git a/browser-plugin/meson.build b/browser-plugin/meson.build deleted file mode 100644 index d79188392..000000000 --- a/browser-plugin/meson.build +++ /dev/null @@ -1,19 +0,0 @@ -plugin_sources = [ - 'browser-plugin.c', - 'npapi/npapi.h', - 'npapi/npfunctions.h', - 'npapi/npruntime.h', - 'npapi/nptypes.h' -] - -shared_module('gnome-shell-browser-plugin', plugin_sources, - dependencies: [gio_dep, json_glib_dep], - c_args: ['-DG_LOG_DOMAIN="GnomeShellBrowserPlugin"'], - # Browsers can unload and reload the module while browsing, which is not - # supported by GObject. - # We pass -Wl,-z,nodelete to the linker to ensure the module is never - # unloaded. See https://bugzilla.gnome.org/show_bug.cgi?id=737932. - link_args: ['-Wl,-z,nodelete'], - install: true, - install_dir: plugindir -) diff --git a/browser-plugin/npapi/npapi.h b/browser-plugin/npapi/npapi.h deleted file mode 100644 index ccf41be7c..000000000 --- a/browser-plugin/npapi/npapi.h +++ /dev/null @@ -1,893 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef npapi_h_ -#define npapi_h_ - -#if defined(__OS2__) -#pragma pack(1) -#endif - -#include "nptypes.h" - -#if defined(__OS2__) || defined(OS2) -#ifndef XP_OS2 -#define XP_OS2 1 -#endif -#endif - -#if defined(_WIN32) && !defined(__SYMBIAN32__) -#include -#ifndef XP_WIN -#define XP_WIN 1 -#endif -#endif - -#if defined(__SYMBIAN32__) -#ifndef XP_SYMBIAN -#define XP_SYMBIAN 1 -#undef XP_WIN -#endif -#endif - -#if defined(__APPLE_CC__) && !defined(XP_UNIX) -#ifndef XP_MACOSX -#define XP_MACOSX 1 -#endif -#endif - -#if defined(XP_MACOSX) && defined(__LP64__) -#define NP_NO_QUICKDRAW -#define NP_NO_CARBON -#endif - -#if defined(XP_MACOSX) -#include -#include -#ifndef NP_NO_CARBON -#include -#endif -#endif - -#if defined(XP_UNIX) -#include -#if defined(MOZ_X11) -#include -#include -#endif -#endif - -#if defined(XP_SYMBIAN) -#include -#include -#endif - -/*----------------------------------------------------------------------*/ -/* Plugin Version Constants */ -/*----------------------------------------------------------------------*/ - -#define NP_VERSION_MAJOR 0 -#define NP_VERSION_MINOR 27 - - -/* The OS/2 version of Netscape uses RC_DATA to define the - mime types, file extensions, etc that are required. - Use a vertical bar to separate types, end types with \0. - FileVersion and ProductVersion are 32bit ints, all other - entries are strings that MUST be terminated with a \0. - -AN EXAMPLE: - -RCDATA NP_INFO_ProductVersion { 1,0,0,1,} - -RCDATA NP_INFO_MIMEType { "video/x-video|", - "video/x-flick\0" } -RCDATA NP_INFO_FileExtents { "avi|", - "flc\0" } -RCDATA NP_INFO_FileOpenName{ "MMOS2 video player(*.avi)|", - "MMOS2 Flc/Fli player(*.flc)\0" } - -RCDATA NP_INFO_FileVersion { 1,0,0,1 } -RCDATA NP_INFO_CompanyName { "Netscape Communications\0" } -RCDATA NP_INFO_FileDescription { "NPAVI32 Extension DLL\0" -RCDATA NP_INFO_InternalName { "NPAVI32\0" ) -RCDATA NP_INFO_LegalCopyright { "Copyright Netscape Communications \251 1996\0" -RCDATA NP_INFO_OriginalFilename { "NVAPI32.DLL" } -RCDATA NP_INFO_ProductName { "NPAVI32 Dynamic Link Library\0" } -*/ -/* RC_DATA types for version info - required */ -#define NP_INFO_ProductVersion 1 -#define NP_INFO_MIMEType 2 -#define NP_INFO_FileOpenName 3 -#define NP_INFO_FileExtents 4 -/* RC_DATA types for version info - used if found */ -#define NP_INFO_FileDescription 5 -#define NP_INFO_ProductName 6 -/* RC_DATA types for version info - optional */ -#define NP_INFO_CompanyName 7 -#define NP_INFO_FileVersion 8 -#define NP_INFO_InternalName 9 -#define NP_INFO_LegalCopyright 10 -#define NP_INFO_OriginalFilename 11 - -#ifndef RC_INVOKED - -/*----------------------------------------------------------------------*/ -/* Definition of Basic Types */ -/*----------------------------------------------------------------------*/ - -typedef unsigned char NPBool; -typedef int16_t NPError; -typedef int16_t NPReason; -typedef char* NPMIMEType; - -/*----------------------------------------------------------------------*/ -/* Structures and definitions */ -/*----------------------------------------------------------------------*/ - -#if !defined(__LP64__) -#if defined(XP_MACOSX) -#pragma options align=mac68k -#endif -#endif /* __LP64__ */ - -/* - * NPP is a plug-in's opaque instance handle - */ -typedef struct _NPP -{ - void* pdata; /* plug-in private data */ - void* ndata; /* netscape private data */ -} NPP_t; - -typedef NPP_t* NPP; - -typedef struct _NPStream -{ - void* pdata; /* plug-in private data */ - void* ndata; /* netscape private data */ - const char* url; - uint32_t end; - uint32_t lastmodified; - void* notifyData; - const char* headers; /* Response headers from host. - * Exists only for >= NPVERS_HAS_RESPONSE_HEADERS. - * Used for HTTP only; NULL for non-HTTP. - * Available from NPP_NewStream onwards. - * Plugin should copy this data before storing it. - * Includes HTTP status line and all headers, - * preferably verbatim as received from server, - * headers formatted as in HTTP ("Header: Value"), - * and newlines (\n, NOT \r\n) separating lines. - * Terminated by \n\0 (NOT \n\n\0). */ -} NPStream; - -typedef struct _NPByteRange -{ - int32_t offset; /* negative offset means from the end */ - uint32_t length; - struct _NPByteRange* next; -} NPByteRange; - -typedef struct _NPSavedData -{ - int32_t len; - void* buf; -} NPSavedData; - -typedef struct _NPRect -{ - uint16_t top; - uint16_t left; - uint16_t bottom; - uint16_t right; -} NPRect; - -typedef struct _NPSize -{ - int32_t width; - int32_t height; -} NPSize; - -typedef enum { - NPFocusNext = 0, - NPFocusPrevious = 1 -} NPFocusDirection; - -/* Return values for NPP_HandleEvent */ -#define kNPEventNotHandled 0 -#define kNPEventHandled 1 -/* Exact meaning must be spec'd in event model. */ -#define kNPEventStartIME 2 - -#if defined(XP_UNIX) -/* - * Unix specific structures and definitions - */ - -/* - * Callback Structures. - * - * These are used to pass additional platform specific information. - */ -enum { - NP_SETWINDOW = 1, - NP_PRINT -}; - -typedef struct -{ - int32_t type; -} NPAnyCallbackStruct; - -typedef struct -{ - int32_t type; -#if defined(MOZ_X11) - Display* display; - Visual* visual; - Colormap colormap; - unsigned int depth; -#endif -} NPSetWindowCallbackStruct; - -typedef struct -{ - int32_t type; - FILE* fp; -} NPPrintCallbackStruct; - -#endif /* XP_UNIX */ - -#if defined(XP_MACOSX) -typedef enum { -#ifndef NP_NO_QUICKDRAW - NPDrawingModelQuickDraw = 0, -#endif - NPDrawingModelCoreGraphics = 1, - NPDrawingModelOpenGL = 2, - NPDrawingModelCoreAnimation = 3, - NPDrawingModelInvalidatingCoreAnimation = 4 -} NPDrawingModel; - -typedef enum { -#ifndef NP_NO_CARBON - NPEventModelCarbon = 0, -#endif - NPEventModelCocoa = 1 -} NPEventModel; -#endif - -/* - * The following masks are applied on certain platforms to NPNV and - * NPPV selectors that pass around pointers to COM interfaces. Newer - * compilers on some platforms may generate vtables that are not - * compatible with older compilers. To prevent older plugins from - * not understanding a new browser's ABI, these masks change the - * values of those selectors on those platforms. To remain backwards - * compatible with different versions of the browser, plugins can - * use these masks to dynamically determine and use the correct C++ - * ABI that the browser is expecting. This does not apply to Windows - * as Microsoft's COM ABI will likely not change. - */ - -#define NP_ABI_GCC3_MASK 0x10000000 -/* - * gcc 3.x generated vtables on UNIX and OSX are incompatible with - * previous compilers. - */ -#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3)) -#define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK -#else -#define _NP_ABI_MIXIN_FOR_GCC3 0 -#endif - -#if defined(XP_MACOSX) -#define NP_ABI_MACHO_MASK 0x01000000 -#define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK -#else -#define _NP_ABI_MIXIN_FOR_MACHO 0 -#endif - -#define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO) - -/* - * List of variable names for which NPP_GetValue shall be implemented - */ -typedef enum { - NPPVpluginNameString = 1, - NPPVpluginDescriptionString, - NPPVpluginWindowBool, - NPPVpluginTransparentBool, - NPPVjavaClass, - NPPVpluginWindowSize, - NPPVpluginTimerInterval, - NPPVpluginScriptableInstance = (10 | NP_ABI_MASK), - NPPVpluginScriptableIID = 11, - NPPVjavascriptPushCallerBool = 12, - NPPVpluginKeepLibraryInMemory = 13, - NPPVpluginNeedsXEmbed = 14, - - /* Get the NPObject for scripting the plugin. Introduced in NPAPI minor version 14. - */ - NPPVpluginScriptableNPObject = 15, - - /* Get the plugin value (as \0-terminated UTF-8 string data) for - * form submission if the plugin is part of a form. Use - * NPN_MemAlloc() to allocate memory for the string data. Introduced - * in NPAPI minor version 15. - */ - NPPVformValue = 16, - - NPPVpluginUrlRequestsDisplayedBool = 17, - - /* Checks if the plugin is interested in receiving the http body of - * all http requests (including failed ones, http status != 200). - */ - NPPVpluginWantsAllNetworkStreams = 18, - - /* Browsers can retrieve a native ATK accessibility plug ID via this variable. */ - NPPVpluginNativeAccessibleAtkPlugId = 19, - - /* Checks to see if the plug-in would like the browser to load the "src" attribute. */ - NPPVpluginCancelSrcStream = 20, - - NPPVsupportsAdvancedKeyHandling = 21, - - NPPVpluginUsesDOMForCursorBool = 22 - -#if defined(XP_MACOSX) - /* Used for negotiating drawing models */ - , NPPVpluginDrawingModel = 1000 - /* Used for negotiating event models */ - , NPPVpluginEventModel = 1001 - /* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */ - , NPPVpluginCoreAnimationLayer = 1003 -#endif - -#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6) - , NPPVpluginWindowlessLocalBool = 2002 -#endif -} NPPVariable; - -/* - * List of variable names for which NPN_GetValue should be implemented. - */ -typedef enum { - NPNVxDisplay = 1, - NPNVxtAppContext, - NPNVnetscapeWindow, - NPNVjavascriptEnabledBool, - NPNVasdEnabledBool, - NPNVisOfflineBool, - - NPNVserviceManager = (10 | NP_ABI_MASK), - NPNVDOMElement = (11 | NP_ABI_MASK), - NPNVDOMWindow = (12 | NP_ABI_MASK), - NPNVToolkit = (13 | NP_ABI_MASK), - NPNVSupportsXEmbedBool = 14, - - /* Get the NPObject wrapper for the browser window. */ - NPNVWindowNPObject = 15, - - /* Get the NPObject wrapper for the plugins DOM element. */ - NPNVPluginElementNPObject = 16, - - NPNVSupportsWindowless = 17, - - NPNVprivateModeBool = 18, - - NPNVsupportsAdvancedKeyHandling = 21 - -#if defined(XP_MACOSX) - /* Used for negotiating drawing models */ - , NPNVpluginDrawingModel = 1000 -#ifndef NP_NO_QUICKDRAW - , NPNVsupportsQuickDrawBool = 2000 -#endif - , NPNVsupportsCoreGraphicsBool = 2001 - , NPNVsupportsOpenGLBool = 2002 - , NPNVsupportsCoreAnimationBool = 2003 - , NPNVsupportsInvalidatingCoreAnimationBool = 2004 -#ifndef NP_NO_CARBON - , NPNVsupportsCarbonBool = 3000 /* TRUE if the browser supports the Carbon event model */ -#endif - , NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */ - , NPNVsupportsUpdatedCocoaTextInputBool = 3002 /* TRUE if the browser supports the updated - Cocoa text input specification. */ - , NPNVsupportsCompositingCoreAnimationPluginsBool = 74656 /* TRUE if the browser supports - CA model compositing */ -#endif -#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6) - , NPNVSupportsWindowlessLocal = 2002 -#endif -} NPNVariable; - -typedef enum { - NPNURLVCookie = 501, - NPNURLVProxy -} NPNURLVariable; - -/* - * The type of Toolkit the widgets use - */ -typedef enum { - NPNVGtk12 = 1, - NPNVGtk2 -} NPNToolkitType; - -/* - * The type of a NPWindow - it specifies the type of the data structure - * returned in the window field. - */ -typedef enum { - NPWindowTypeWindow = 1, - NPWindowTypeDrawable -} NPWindowType; - -typedef struct _NPWindow -{ - void* window; /* Platform specific window handle */ - /* OS/2: x - Position of bottom left corner */ - /* OS/2: y - relative to visible netscape window */ - int32_t x; /* Position of top left corner relative */ - int32_t y; /* to a netscape page. */ - uint32_t width; /* Maximum window size */ - uint32_t height; - NPRect clipRect; /* Clipping rectangle in port coordinates */ -#if (defined(XP_UNIX) || defined(XP_SYMBIAN)) && !defined(XP_MACOSX) - void * ws_info; /* Platform-dependent additional data */ -#endif /* XP_UNIX */ - NPWindowType type; /* Is this a window or a drawable? */ -} NPWindow; - -typedef struct _NPImageExpose -{ - char* data; /* image pointer */ - int32_t stride; /* Stride of data image pointer */ - int32_t depth; /* Depth of image pointer */ - int32_t x; /* Expose x */ - int32_t y; /* Expose y */ - uint32_t width; /* Expose width */ - uint32_t height; /* Expose height */ - NPSize dataSize; /* Data buffer size */ - float translateX; /* translate X matrix value */ - float translateY; /* translate Y matrix value */ - float scaleX; /* scale X matrix value */ - float scaleY; /* scale Y matrix value */ -} NPImageExpose; - -typedef struct _NPFullPrint -{ - NPBool pluginPrinted;/* Set TRUE if plugin handled fullscreen printing */ - NPBool printOne; /* TRUE if plugin should print one copy to default - printer */ - void* platformPrint; /* Platform-specific printing info */ -} NPFullPrint; - -typedef struct _NPEmbedPrint -{ - NPWindow window; - void* platformPrint; /* Platform-specific printing info */ -} NPEmbedPrint; - -typedef struct _NPPrint -{ - uint16_t mode; /* NP_FULL or NP_EMBED */ - union - { - NPFullPrint fullPrint; /* if mode is NP_FULL */ - NPEmbedPrint embedPrint; /* if mode is NP_EMBED */ - } print; -} NPPrint; - -#if defined(XP_MACOSX) -#ifndef NP_NO_CARBON -typedef EventRecord NPEvent; -#endif -#elif defined(XP_SYMBIAN) -typedef QEvent NPEvent; -#elif defined(XP_WIN) -typedef struct _NPEvent -{ - uint16_t event; - uintptr_t wParam; - uintptr_t lParam; -} NPEvent; -#elif defined(XP_OS2) -typedef struct _NPEvent -{ - uint32_t event; - uint32_t wParam; - uint32_t lParam; -} NPEvent; -#elif defined(XP_UNIX) && defined(MOZ_X11) -typedef XEvent NPEvent; -#else -typedef void* NPEvent; -#endif - -#if defined(XP_MACOSX) -typedef void* NPRegion; -#ifndef NP_NO_QUICKDRAW -typedef RgnHandle NPQDRegion; -#endif -typedef CGPathRef NPCGRegion; -#elif defined(XP_WIN) -typedef HRGN NPRegion; -#elif defined(XP_UNIX) && defined(MOZ_X11) -typedef Region NPRegion; -#elif defined(XP_SYMBIAN) -typedef QRegion* NPRegion; -#else -typedef void *NPRegion; -#endif - -typedef struct _NPNSString NPNSString; -typedef struct _NPNSWindow NPNSWindow; -typedef struct _NPNSMenu NPNSMenu; - -#if defined(XP_MACOSX) -typedef NPNSMenu NPMenu; -#else -typedef void *NPMenu; -#endif - -typedef enum { - NPCoordinateSpacePlugin = 1, - NPCoordinateSpaceWindow, - NPCoordinateSpaceFlippedWindow, - NPCoordinateSpaceScreen, - NPCoordinateSpaceFlippedScreen -} NPCoordinateSpace; - -#if defined(XP_MACOSX) - -#ifndef NP_NO_QUICKDRAW -typedef struct NP_Port -{ - CGrafPtr port; - int32_t portx; /* position inside the topmost window */ - int32_t porty; -} NP_Port; -#endif /* NP_NO_QUICKDRAW */ - -/* - * NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics - * as its drawing model. - */ - -typedef struct NP_CGContext -{ - CGContextRef context; - void *window; /* A WindowRef under the Carbon event model. */ -} NP_CGContext; - -/* - * NP_GLContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelOpenGL as its - * drawing model. - */ - -typedef struct NP_GLContext -{ - CGLContextObj context; -#ifdef NP_NO_CARBON - NPNSWindow *window; -#else - void *window; /* Can be either an NSWindow or a WindowRef depending on the event model */ -#endif -} NP_GLContext; - -typedef enum { - NPCocoaEventDrawRect = 1, - NPCocoaEventMouseDown, - NPCocoaEventMouseUp, - NPCocoaEventMouseMoved, - NPCocoaEventMouseEntered, - NPCocoaEventMouseExited, - NPCocoaEventMouseDragged, - NPCocoaEventKeyDown, - NPCocoaEventKeyUp, - NPCocoaEventFlagsChanged, - NPCocoaEventFocusChanged, - NPCocoaEventWindowFocusChanged, - NPCocoaEventScrollWheel, - NPCocoaEventTextInput -} NPCocoaEventType; - -typedef struct _NPCocoaEvent { - NPCocoaEventType type; - uint32_t version; - union { - struct { - uint32_t modifierFlags; - double pluginX; - double pluginY; - int32_t buttonNumber; - int32_t clickCount; - double deltaX; - double deltaY; - double deltaZ; - } mouse; - struct { - uint32_t modifierFlags; - NPNSString *characters; - NPNSString *charactersIgnoringModifiers; - NPBool isARepeat; - uint16_t keyCode; - } key; - struct { - CGContextRef context; - double x; - double y; - double width; - double height; - } draw; - struct { - NPBool hasFocus; - } focus; - struct { - NPNSString *text; - } text; - } data; -} NPCocoaEvent; - -#ifndef NP_NO_CARBON -/* Non-standard event types that can be passed to HandleEvent */ -enum NPEventType { - NPEventType_GetFocusEvent = (osEvt + 16), - NPEventType_LoseFocusEvent, - NPEventType_AdjustCursorEvent, - NPEventType_MenuCommandEvent, - NPEventType_ClippingChangedEvent, - NPEventType_ScrollingBeginsEvent = 1000, - NPEventType_ScrollingEndsEvent -}; -#endif /* NP_NO_CARBON */ - -#endif /* XP_MACOSX */ - -/* - * Values for mode passed to NPP_New: - */ -#define NP_EMBED 1 -#define NP_FULL 2 - -/* - * Values for stream type passed to NPP_NewStream: - */ -#define NP_NORMAL 1 -#define NP_SEEK 2 -#define NP_ASFILE 3 -#define NP_ASFILEONLY 4 - -#define NP_MAXREADY (((unsigned)(~0)<<1)>>1) - -/* - * Flags for NPP_ClearSiteData. - */ -#define NP_CLEAR_ALL 0 -#define NP_CLEAR_CACHE (1 << 0) - -#if !defined(__LP64__) -#if defined(XP_MACOSX) -#pragma options align=reset -#endif -#endif /* __LP64__ */ - -/*----------------------------------------------------------------------*/ -/* Error and Reason Code definitions */ -/*----------------------------------------------------------------------*/ - -/* - * Values of type NPError: - */ -#define NPERR_BASE 0 -#define NPERR_NO_ERROR (NPERR_BASE + 0) -#define NPERR_GENERIC_ERROR (NPERR_BASE + 1) -#define NPERR_INVALID_INSTANCE_ERROR (NPERR_BASE + 2) -#define NPERR_INVALID_FUNCTABLE_ERROR (NPERR_BASE + 3) -#define NPERR_MODULE_LOAD_FAILED_ERROR (NPERR_BASE + 4) -#define NPERR_OUT_OF_MEMORY_ERROR (NPERR_BASE + 5) -#define NPERR_INVALID_PLUGIN_ERROR (NPERR_BASE + 6) -#define NPERR_INVALID_PLUGIN_DIR_ERROR (NPERR_BASE + 7) -#define NPERR_INCOMPATIBLE_VERSION_ERROR (NPERR_BASE + 8) -#define NPERR_INVALID_PARAM (NPERR_BASE + 9) -#define NPERR_INVALID_URL (NPERR_BASE + 10) -#define NPERR_FILE_NOT_FOUND (NPERR_BASE + 11) -#define NPERR_NO_DATA (NPERR_BASE + 12) -#define NPERR_STREAM_NOT_SEEKABLE (NPERR_BASE + 13) -#define NPERR_TIME_RANGE_NOT_SUPPORTED (NPERR_BASE + 14) -#define NPERR_MALFORMED_SITE (NPERR_BASE + 15) - -/* - * Values of type NPReason: - */ -#define NPRES_BASE 0 -#define NPRES_DONE (NPRES_BASE + 0) -#define NPRES_NETWORK_ERR (NPRES_BASE + 1) -#define NPRES_USER_BREAK (NPRES_BASE + 2) - -/* - * Don't use these obsolete error codes any more. - */ -#define NP_NOERR NP_NOERR_is_obsolete_use_NPERR_NO_ERROR -#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR -#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK - -/* - * Version feature information - */ -#define NPVERS_HAS_STREAMOUTPUT 8 -#define NPVERS_HAS_NOTIFICATION 9 -#define NPVERS_HAS_LIVECONNECT 9 -#define NPVERS_68K_HAS_LIVECONNECT 11 -#define NPVERS_HAS_WINDOWLESS 11 -#define NPVERS_HAS_XPCONNECT_SCRIPTING 13 -#define NPVERS_HAS_NPRUNTIME_SCRIPTING 14 -#define NPVERS_HAS_FORM_VALUES 15 -#define NPVERS_HAS_POPUPS_ENABLED_STATE 16 -#define NPVERS_HAS_RESPONSE_HEADERS 17 -#define NPVERS_HAS_NPOBJECT_ENUM 18 -#define NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL 19 -#define NPVERS_HAS_ALL_NETWORK_STREAMS 20 -#define NPVERS_HAS_URL_AND_AUTH_INFO 21 -#define NPVERS_HAS_PRIVATE_MODE 22 -#define NPVERS_MACOSX_HAS_COCOA_EVENTS 23 -#define NPVERS_HAS_ADVANCED_KEY_HANDLING 25 -#define NPVERS_HAS_URL_REDIRECT_HANDLING 26 -#define NPVERS_HAS_CLEAR_SITE_DATA 27 - -/*----------------------------------------------------------------------*/ -/* Function Prototypes */ -/*----------------------------------------------------------------------*/ - -#if defined(__OS2__) -#define NP_LOADDS _System -#else -#define NP_LOADDS -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* NPP_* functions are provided by the plugin and called by the navigator. */ - -#if defined(XP_UNIX) -const char* NPP_GetMIMEDescription(void); -#endif - -NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance, - uint16_t mode, int16_t argc, char* argn[], - char* argv[], NPSavedData* saved); -NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save); -NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window); -NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type, - NPStream* stream, NPBool seekable, - uint16_t* stype); -NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream, - NPReason reason); -int32_t NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream); -int32_t NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32_t offset, - int32_t len, void* buffer); -void NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream, - const char* fname); -void NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint); -int16_t NP_LOADDS NPP_HandleEvent(NPP instance, void* event); -void NP_LOADDS NPP_URLNotify(NPP instance, const char* url, - NPReason reason, void* notifyData); -NPError NP_LOADDS NPP_GetValue(NPP instance, NPPVariable variable, void *value); -NPError NP_LOADDS NPP_SetValue(NPP instance, NPNVariable variable, void *value); -NPBool NP_LOADDS NPP_GotFocus(NPP instance, NPFocusDirection direction); -void NP_LOADDS NPP_LostFocus(NPP instance); -void NP_LOADDS NPP_URLRedirectNotify(NPP instance, const char* url, int32_t status, void* notifyData); -NPError NP_LOADDS NPP_ClearSiteData(const char* site, uint64_t flags, uint64_t maxAge); -char** NP_LOADDS NPP_GetSitesWithData(void); - -/* NPN_* functions are provided by the navigator and called by the plugin. */ -void NP_LOADDS NPN_Version(int* plugin_major, int* plugin_minor, - int* netscape_major, int* netscape_minor); -NPError NP_LOADDS NPN_GetURLNotify(NPP instance, const char* url, - const char* target, void* notifyData); -NPError NP_LOADDS NPN_GetURL(NPP instance, const char* url, - const char* target); -NPError NP_LOADDS NPN_PostURLNotify(NPP instance, const char* url, - const char* target, uint32_t len, - const char* buf, NPBool file, - void* notifyData); -NPError NP_LOADDS NPN_PostURL(NPP instance, const char* url, - const char* target, uint32_t len, - const char* buf, NPBool file); -NPError NP_LOADDS NPN_RequestRead(NPStream* stream, NPByteRange* rangeList); -NPError NP_LOADDS NPN_NewStream(NPP instance, NPMIMEType type, - const char* target, NPStream** stream); -int32_t NP_LOADDS NPN_Write(NPP instance, NPStream* stream, int32_t len, - void* buffer); -NPError NP_LOADDS NPN_DestroyStream(NPP instance, NPStream* stream, - NPReason reason); -void NP_LOADDS NPN_Status(NPP instance, const char* message); -const char* NP_LOADDS NPN_UserAgent(NPP instance); -void* NP_LOADDS NPN_MemAlloc(uint32_t size); -void NP_LOADDS NPN_MemFree(void* ptr); -uint32_t NP_LOADDS NPN_MemFlush(uint32_t size); -void NP_LOADDS NPN_ReloadPlugins(NPBool reloadPages); -NPError NP_LOADDS NPN_GetValue(NPP instance, NPNVariable variable, - void *value); -NPError NP_LOADDS NPN_SetValue(NPP instance, NPPVariable variable, - void *value); -void NP_LOADDS NPN_InvalidateRect(NPP instance, NPRect *invalidRect); -void NP_LOADDS NPN_InvalidateRegion(NPP instance, - NPRegion invalidRegion); -void NP_LOADDS NPN_ForceRedraw(NPP instance); -void NP_LOADDS NPN_PushPopupsEnabledState(NPP instance, NPBool enabled); -void NP_LOADDS NPN_PopPopupsEnabledState(NPP instance); -void NP_LOADDS NPN_PluginThreadAsyncCall(NPP instance, - void (*func) (void *), - void *userData); -NPError NP_LOADDS NPN_GetValueForURL(NPP instance, NPNURLVariable variable, - const char *url, char **value, - uint32_t *len); -NPError NP_LOADDS NPN_SetValueForURL(NPP instance, NPNURLVariable variable, - const char *url, const char *value, - uint32_t len); -NPError NP_LOADDS NPN_GetAuthenticationInfo(NPP instance, - const char *protocol, - const char *host, int32_t port, - const char *scheme, - const char *realm, - char **username, uint32_t *ulen, - char **password, - uint32_t *plen); -uint32_t NP_LOADDS NPN_ScheduleTimer(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID)); -void NP_LOADDS NPN_UnscheduleTimer(NPP instance, uint32_t timerID); -NPError NP_LOADDS NPN_PopUpContextMenu(NPP instance, NPMenu* menu); -NPBool NP_LOADDS NPN_ConvertPoint(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace); -NPBool NP_LOADDS NPN_HandleEvent(NPP instance, void *event, NPBool handled); -NPBool NP_LOADDS NPN_UnfocusInstance(NPP instance, NPFocusDirection direction); -void NP_LOADDS NPN_URLRedirectResponse(NPP instance, void* notifyData, NPBool allow); - -#ifdef __cplusplus -} /* end extern "C" */ -#endif - -#endif /* RC_INVOKED */ -#if defined(__OS2__) -#pragma pack() -#endif - -#endif /* npapi_h_ */ diff --git a/browser-plugin/npapi/npfunctions.h b/browser-plugin/npapi/npfunctions.h deleted file mode 100644 index 3b70a3941..000000000 --- a/browser-plugin/npapi/npfunctions.h +++ /dev/null @@ -1,322 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef npfunctions_h_ -#define npfunctions_h_ - -#ifdef __OS2__ -#pragma pack(1) -#define NP_LOADDS _System -#else -#define NP_LOADDS -#endif - -#include "npapi.h" -#include "npruntime.h" - -typedef NPError (* NP_LOADDS NPP_NewProcPtr)(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved); -typedef NPError (* NP_LOADDS NPP_DestroyProcPtr)(NPP instance, NPSavedData** save); -typedef NPError (* NP_LOADDS NPP_SetWindowProcPtr)(NPP instance, NPWindow* window); -typedef NPError (* NP_LOADDS NPP_NewStreamProcPtr)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype); -typedef NPError (* NP_LOADDS NPP_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason); -typedef int32_t (* NP_LOADDS NPP_WriteReadyProcPtr)(NPP instance, NPStream* stream); -typedef int32_t (* NP_LOADDS NPP_WriteProcPtr)(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer); -typedef void (* NP_LOADDS NPP_StreamAsFileProcPtr)(NPP instance, NPStream* stream, const char* fname); -typedef void (* NP_LOADDS NPP_PrintProcPtr)(NPP instance, NPPrint* platformPrint); -typedef int16_t (* NP_LOADDS NPP_HandleEventProcPtr)(NPP instance, void* event); -typedef void (* NP_LOADDS NPP_URLNotifyProcPtr)(NPP instance, const char* url, NPReason reason, void* notifyData); -/* Any NPObjects returned to the browser via NPP_GetValue should be retained - by the plugin on the way out. The browser is responsible for releasing. */ -typedef NPError (* NP_LOADDS NPP_GetValueProcPtr)(NPP instance, NPPVariable variable, void *ret_value); -typedef NPError (* NP_LOADDS NPP_SetValueProcPtr)(NPP instance, NPNVariable variable, void *value); -typedef NPBool (* NP_LOADDS NPP_GotFocusPtr)(NPP instance, NPFocusDirection direction); -typedef void (* NP_LOADDS NPP_LostFocusPtr)(NPP instance); -typedef void (* NP_LOADDS NPP_URLRedirectNotifyPtr)(NPP instance, const char* url, int32_t status, void* notifyData); -typedef NPError (* NP_LOADDS NPP_ClearSiteDataPtr)(const char* site, uint64_t flags, uint64_t maxAge); -typedef char** (* NP_LOADDS NPP_GetSitesWithDataPtr)(void); - -typedef NPError (*NPN_GetValueProcPtr)(NPP instance, NPNVariable variable, void *ret_value); -typedef NPError (*NPN_SetValueProcPtr)(NPP instance, NPPVariable variable, void *value); -typedef NPError (*NPN_GetURLNotifyProcPtr)(NPP instance, const char* url, const char* window, void* notifyData); -typedef NPError (*NPN_PostURLNotifyProcPtr)(NPP instance, const char* url, const char* window, uint32_t len, const char* buf, NPBool file, void* notifyData); -typedef NPError (*NPN_GetURLProcPtr)(NPP instance, const char* url, const char* window); -typedef NPError (*NPN_PostURLProcPtr)(NPP instance, const char* url, const char* window, uint32_t len, const char* buf, NPBool file); -typedef NPError (*NPN_RequestReadProcPtr)(NPStream* stream, NPByteRange* rangeList); -typedef NPError (*NPN_NewStreamProcPtr)(NPP instance, NPMIMEType type, const char* window, NPStream** stream); -typedef int32_t (*NPN_WriteProcPtr)(NPP instance, NPStream* stream, int32_t len, void* buffer); -typedef NPError (*NPN_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason); -typedef void (*NPN_StatusProcPtr)(NPP instance, const char* message); -/* Browser manages the lifetime of the buffer returned by NPN_UserAgent, don't - depend on it sticking around and don't free it. */ -typedef const char* (*NPN_UserAgentProcPtr)(NPP instance); -typedef void* (*NPN_MemAllocProcPtr)(uint32_t size); -typedef void (*NPN_MemFreeProcPtr)(void* ptr); -typedef uint32_t (*NPN_MemFlushProcPtr)(uint32_t size); -typedef void (*NPN_ReloadPluginsProcPtr)(NPBool reloadPages); -typedef void* (*NPN_GetJavaEnvProcPtr)(void); -typedef void* (*NPN_GetJavaPeerProcPtr)(NPP instance); -typedef void (*NPN_InvalidateRectProcPtr)(NPP instance, NPRect *rect); -typedef void (*NPN_InvalidateRegionProcPtr)(NPP instance, NPRegion region); -typedef void (*NPN_ForceRedrawProcPtr)(NPP instance); -typedef NPIdentifier (*NPN_GetStringIdentifierProcPtr)(const NPUTF8* name); -typedef void (*NPN_GetStringIdentifiersProcPtr)(const NPUTF8** names, int32_t nameCount, NPIdentifier* identifiers); -typedef NPIdentifier (*NPN_GetIntIdentifierProcPtr)(int32_t intid); -typedef bool (*NPN_IdentifierIsStringProcPtr)(NPIdentifier identifier); -typedef NPUTF8* (*NPN_UTF8FromIdentifierProcPtr)(NPIdentifier identifier); -typedef int32_t (*NPN_IntFromIdentifierProcPtr)(NPIdentifier identifier); -typedef NPObject* (*NPN_CreateObjectProcPtr)(NPP npp, NPClass *aClass); -typedef NPObject* (*NPN_RetainObjectProcPtr)(NPObject *obj); -typedef void (*NPN_ReleaseObjectProcPtr)(NPObject *obj); -typedef bool (*NPN_InvokeProcPtr)(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result); -typedef bool (*NPN_InvokeDefaultProcPtr)(NPP npp, NPObject* obj, const NPVariant *args, uint32_t argCount, NPVariant *result); -typedef bool (*NPN_EvaluateProcPtr)(NPP npp, NPObject *obj, NPString *script, NPVariant *result); -typedef bool (*NPN_GetPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result); -typedef bool (*NPN_SetPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value); -typedef bool (*NPN_RemovePropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName); -typedef bool (*NPN_HasPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName); -typedef bool (*NPN_HasMethodProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName); -typedef void (*NPN_ReleaseVariantValueProcPtr)(NPVariant *variant); -typedef void (*NPN_SetExceptionProcPtr)(NPObject *obj, const NPUTF8 *message); -typedef void (*NPN_PushPopupsEnabledStateProcPtr)(NPP npp, NPBool enabled); -typedef void (*NPN_PopPopupsEnabledStateProcPtr)(NPP npp); -typedef bool (*NPN_EnumerateProcPtr)(NPP npp, NPObject *obj, NPIdentifier **identifier, uint32_t *count); -typedef void (*NPN_PluginThreadAsyncCallProcPtr)(NPP instance, void (*func)(void *), void *userData); -typedef bool (*NPN_ConstructProcPtr)(NPP npp, NPObject* obj, const NPVariant *args, uint32_t argCount, NPVariant *result); -typedef NPError (*NPN_GetValueForURLPtr)(NPP npp, NPNURLVariable variable, const char *url, char **value, uint32_t *len); -typedef NPError (*NPN_SetValueForURLPtr)(NPP npp, NPNURLVariable variable, const char *url, const char *value, uint32_t len); -typedef NPError (*NPN_GetAuthenticationInfoPtr)(NPP npp, const char *protocol, const char *host, int32_t port, const char *scheme, const char *realm, char **username, uint32_t *ulen, char **password, uint32_t *plen); -typedef uint32_t (*NPN_ScheduleTimerPtr)(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID)); -typedef void (*NPN_UnscheduleTimerPtr)(NPP instance, uint32_t timerID); -typedef NPError (*NPN_PopUpContextMenuPtr)(NPP instance, NPMenu* menu); -typedef NPBool (*NPN_ConvertPointPtr)(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace); -typedef NPBool (*NPN_HandleEventPtr)(NPP instance, void *event, NPBool handled); -typedef NPBool (*NPN_UnfocusInstancePtr)(NPP instance, NPFocusDirection direction); -typedef void (*NPN_URLRedirectResponsePtr)(NPP instance, void* notifyData, NPBool allow); - -typedef struct _NPPluginFuncs { - uint16_t size; - uint16_t version; - NPP_NewProcPtr newp; - NPP_DestroyProcPtr destroy; - NPP_SetWindowProcPtr setwindow; - NPP_NewStreamProcPtr newstream; - NPP_DestroyStreamProcPtr destroystream; - NPP_StreamAsFileProcPtr asfile; - NPP_WriteReadyProcPtr writeready; - NPP_WriteProcPtr write; - NPP_PrintProcPtr print; - NPP_HandleEventProcPtr event; - NPP_URLNotifyProcPtr urlnotify; - void* javaClass; - NPP_GetValueProcPtr getvalue; - NPP_SetValueProcPtr setvalue; - NPP_GotFocusPtr gotfocus; - NPP_LostFocusPtr lostfocus; - NPP_URLRedirectNotifyPtr urlredirectnotify; - NPP_ClearSiteDataPtr clearsitedata; - NPP_GetSitesWithDataPtr getsiteswithdata; -} NPPluginFuncs; - -typedef struct _NPNetscapeFuncs { - uint16_t size; - uint16_t version; - NPN_GetURLProcPtr geturl; - NPN_PostURLProcPtr posturl; - NPN_RequestReadProcPtr requestread; - NPN_NewStreamProcPtr newstream; - NPN_WriteProcPtr write; - NPN_DestroyStreamProcPtr destroystream; - NPN_StatusProcPtr status; - NPN_UserAgentProcPtr uagent; - NPN_MemAllocProcPtr memalloc; - NPN_MemFreeProcPtr memfree; - NPN_MemFlushProcPtr memflush; - NPN_ReloadPluginsProcPtr reloadplugins; - NPN_GetJavaEnvProcPtr getJavaEnv; - NPN_GetJavaPeerProcPtr getJavaPeer; - NPN_GetURLNotifyProcPtr geturlnotify; - NPN_PostURLNotifyProcPtr posturlnotify; - NPN_GetValueProcPtr getvalue; - NPN_SetValueProcPtr setvalue; - NPN_InvalidateRectProcPtr invalidaterect; - NPN_InvalidateRegionProcPtr invalidateregion; - NPN_ForceRedrawProcPtr forceredraw; - NPN_GetStringIdentifierProcPtr getstringidentifier; - NPN_GetStringIdentifiersProcPtr getstringidentifiers; - NPN_GetIntIdentifierProcPtr getintidentifier; - NPN_IdentifierIsStringProcPtr identifierisstring; - NPN_UTF8FromIdentifierProcPtr utf8fromidentifier; - NPN_IntFromIdentifierProcPtr intfromidentifier; - NPN_CreateObjectProcPtr createobject; - NPN_RetainObjectProcPtr retainobject; - NPN_ReleaseObjectProcPtr releaseobject; - NPN_InvokeProcPtr invoke; - NPN_InvokeDefaultProcPtr invokeDefault; - NPN_EvaluateProcPtr evaluate; - NPN_GetPropertyProcPtr getproperty; - NPN_SetPropertyProcPtr setproperty; - NPN_RemovePropertyProcPtr removeproperty; - NPN_HasPropertyProcPtr hasproperty; - NPN_HasMethodProcPtr hasmethod; - NPN_ReleaseVariantValueProcPtr releasevariantvalue; - NPN_SetExceptionProcPtr setexception; - NPN_PushPopupsEnabledStateProcPtr pushpopupsenabledstate; - NPN_PopPopupsEnabledStateProcPtr poppopupsenabledstate; - NPN_EnumerateProcPtr enumerate; - NPN_PluginThreadAsyncCallProcPtr pluginthreadasynccall; - NPN_ConstructProcPtr construct; - NPN_GetValueForURLPtr getvalueforurl; - NPN_SetValueForURLPtr setvalueforurl; - NPN_GetAuthenticationInfoPtr getauthenticationinfo; - NPN_ScheduleTimerPtr scheduletimer; - NPN_UnscheduleTimerPtr unscheduletimer; - NPN_PopUpContextMenuPtr popupcontextmenu; - NPN_ConvertPointPtr convertpoint; - NPN_HandleEventPtr handleevent; - NPN_UnfocusInstancePtr unfocusinstance; - NPN_URLRedirectResponsePtr urlredirectresponse; -} NPNetscapeFuncs; - -#ifdef XP_MACOSX -/* - * Mac OS X version(s) of NP_GetMIMEDescription(const char *) - * These can be called to retreive MIME information from the plugin dynamically - * - * Note: For compatibility with Quicktime, BPSupportedMIMEtypes is another way - * to get mime info from the plugin only on OSX and may not be supported - * in furture version -- use NP_GetMIMEDescription instead - */ -enum -{ - kBPSupportedMIMETypesStructVers_1 = 1 -}; -typedef struct _BPSupportedMIMETypes -{ - SInt32 structVersion; /* struct version */ - Handle typeStrings; /* STR# formated handle, allocated by plug-in */ - Handle infoStrings; /* STR# formated handle, allocated by plug-in */ -} BPSupportedMIMETypes; -OSErr BP_GetSupportedMIMETypes(BPSupportedMIMETypes *mimeInfo, UInt32 flags); -#define NP_GETMIMEDESCRIPTION_NAME "NP_GetMIMEDescription" -typedef const char* (*NP_GetMIMEDescriptionProcPtr)(void); -typedef OSErr (*BP_GetSupportedMIMETypesProcPtr)(BPSupportedMIMETypes*, UInt32); -#endif - -#if defined(_WIN32) -#define OSCALL WINAPI -#else -#if defined(__OS2__) -#define OSCALL _System -#else -#define OSCALL -#endif -#endif - -#if defined(XP_UNIX) -/* GCC 3.3 and later support the visibility attribute. */ -#if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) -#define NP_VISIBILITY_DEFAULT __attribute__((visibility("default"))) -#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) -#define NP_VISIBILITY_DEFAULT __global -#else -#define NP_VISIBILITY_DEFAULT -#endif -#define NP_EXPORT(__type) NP_VISIBILITY_DEFAULT __type -#endif - -#if defined(_WIN32) || defined (__OS2__) -#ifdef __cplusplus -extern "C" { -#endif -/* plugin meta member functions */ -#if defined(__OS2__) -typedef struct _NPPluginData { /* Alternate OS2 Plugin interface */ - char *pMimeTypes; - char *pFileExtents; - char *pFileOpenTemplate; - char *pProductName; - char *pProductDescription; - unsigned long dwProductVersionMS; - unsigned long dwProductVersionLS; -} NPPluginData; -typedef NPError (*NP_GetPluginDataFunc)(NPPluginData*); -NPError OSCALL NP_GetPluginData(NPPluginData * pPluginData); -#endif -typedef NPError (*NP_GetEntryPointsFunc)(NPPluginFuncs*); -NPError OSCALL NP_GetEntryPoints(NPPluginFuncs* pFuncs); -typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*); -NPError OSCALL NP_Initialize(NPNetscapeFuncs* bFuncs); -typedef NPError (*NP_ShutdownFunc)(void); -NPError OSCALL NP_Shutdown(void); -typedef const char* (*NP_GetMIMEDescriptionFunc)(void); -const char* NP_GetMIMEDescription(void); -#ifdef __cplusplus -} -#endif -#endif - -#if defined(__OS2__) -#pragma pack() -#endif - -#ifdef XP_UNIX -#ifdef __cplusplus -extern "C" { -#endif -typedef char* (*NP_GetPluginVersionFunc)(void); -NP_EXPORT(char*) NP_GetPluginVersion(void); -typedef const char* (*NP_GetMIMEDescriptionFunc)(void); -NP_EXPORT(const char*) NP_GetMIMEDescription(void); -#ifdef XP_MACOSX -typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*); -NP_EXPORT(NPError) NP_Initialize(NPNetscapeFuncs* bFuncs); -typedef NPError (*NP_GetEntryPointsFunc)(NPPluginFuncs*); -NP_EXPORT(NPError) NP_GetEntryPoints(NPPluginFuncs* pFuncs); -#else -typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*, NPPluginFuncs*); -NP_EXPORT(NPError) NP_Initialize(NPNetscapeFuncs* bFuncs, NPPluginFuncs* pFuncs); -#endif -typedef NPError (*NP_ShutdownFunc)(void); -NP_EXPORT(NPError) NP_Shutdown(void); -typedef NPError (*NP_GetValueFunc)(void *, NPPVariable, void *); -NP_EXPORT(NPError) NP_GetValue(void *future, NPPVariable aVariable, void *aValue); -#ifdef __cplusplus -} -#endif -#endif - -#endif /* npfunctions_h_ */ diff --git a/browser-plugin/npapi/npruntime.h b/browser-plugin/npapi/npruntime.h deleted file mode 100644 index 6e8916504..000000000 --- a/browser-plugin/npapi/npruntime.h +++ /dev/null @@ -1,393 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Copyright (c) 2004, Apple Computer, Inc. and The Mozilla Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the names of Apple Computer, Inc. ("Apple") or The Mozilla - * Foundation ("Mozilla") nor the names of their contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE, MOZILLA AND THEIR CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, MOZILLA OR - * THEIR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ -#ifndef _NP_RUNTIME_H_ -#define _NP_RUNTIME_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "nptypes.h" - -/* - This API is used to facilitate binding code written in C to script - objects. The API in this header does not assume the presence of a - user agent. That is, it can be used to bind C code to scripting - environments outside of the context of a user agent. - - However, the normal use of the this API is in the context of a - scripting environment running in a browser or other user agent. - In particular it is used to support the extended Netscape - script-ability API for plugins (NP-SAP). NP-SAP is an extension - of the Netscape plugin API. As such we have adopted the use of - the "NP" prefix for this API. - - The following NP{N|P}Variables were added to the Netscape plugin - API (in npapi.h): - - NPNVWindowNPObject - NPNVPluginElementNPObject - NPPVpluginScriptableNPObject - - These variables are exposed through NPN_GetValue() and - NPP_GetValue() (respectively) and are used to establish the - initial binding between the user agent and native code. The DOM - objects in the user agent can be examined and manipulated using - the NPN_ functions that operate on NPObjects described in this - header. - - To the extent possible the assumptions about the scripting - language used by the scripting environment have been minimized. -*/ - -#define NP_BEGIN_MACRO do { -#define NP_END_MACRO } while (0) - -/* - Objects (non-primitive data) passed between 'C' and script is - always wrapped in an NPObject. The 'interface' of an NPObject is - described by an NPClass. -*/ -typedef struct NPObject NPObject; -typedef struct NPClass NPClass; - -typedef char NPUTF8; -typedef struct _NPString { - const NPUTF8 *UTF8Characters; - uint32_t UTF8Length; -} NPString; - -typedef enum { - NPVariantType_Void, - NPVariantType_Null, - NPVariantType_Bool, - NPVariantType_Int32, - NPVariantType_Double, - NPVariantType_String, - NPVariantType_Object -} NPVariantType; - -typedef struct _NPVariant { - NPVariantType type; - union { - bool boolValue; - int32_t intValue; - double doubleValue; - NPString stringValue; - NPObject *objectValue; - } value; -} NPVariant; - -/* - NPN_ReleaseVariantValue is called on all 'out' parameters - references. Specifically it is to be called on variants that own - their value, as is the case with all non-const NPVariant* - arguments after a successful call to any methods (except this one) - in this API. - - After calling NPN_ReleaseVariantValue, the type of the variant - will be NPVariantType_Void. -*/ -void NPN_ReleaseVariantValue(NPVariant *variant); - -#define NPVARIANT_IS_VOID(_v) ((_v).type == NPVariantType_Void) -#define NPVARIANT_IS_NULL(_v) ((_v).type == NPVariantType_Null) -#define NPVARIANT_IS_BOOLEAN(_v) ((_v).type == NPVariantType_Bool) -#define NPVARIANT_IS_INT32(_v) ((_v).type == NPVariantType_Int32) -#define NPVARIANT_IS_DOUBLE(_v) ((_v).type == NPVariantType_Double) -#define NPVARIANT_IS_STRING(_v) ((_v).type == NPVariantType_String) -#define NPVARIANT_IS_OBJECT(_v) ((_v).type == NPVariantType_Object) - -#define NPVARIANT_TO_BOOLEAN(_v) ((_v).value.boolValue) -#define NPVARIANT_TO_INT32(_v) ((_v).value.intValue) -#define NPVARIANT_TO_DOUBLE(_v) ((_v).value.doubleValue) -#define NPVARIANT_TO_STRING(_v) ((_v).value.stringValue) -#define NPVARIANT_TO_OBJECT(_v) ((_v).value.objectValue) - -#define VOID_TO_NPVARIANT(_v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_Void; \ - (_v).value.objectValue = NULL; \ -NP_END_MACRO - -#define NULL_TO_NPVARIANT(_v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_Null; \ - (_v).value.objectValue = NULL; \ -NP_END_MACRO - -#define BOOLEAN_TO_NPVARIANT(_val, _v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_Bool; \ - (_v).value.boolValue = !!(_val); \ -NP_END_MACRO - -#define INT32_TO_NPVARIANT(_val, _v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_Int32; \ - (_v).value.intValue = _val; \ -NP_END_MACRO - -#define DOUBLE_TO_NPVARIANT(_val, _v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_Double; \ - (_v).value.doubleValue = _val; \ -NP_END_MACRO - -#define STRINGZ_TO_NPVARIANT(_val, _v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_String; \ - NPString str = { _val, (uint32_t)(strlen(_val)) }; \ - (_v).value.stringValue = str; \ -NP_END_MACRO - -#define STRINGN_TO_NPVARIANT(_val, _len, _v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_String; \ - NPString str = { _val, (uint32_t)(_len) }; \ - (_v).value.stringValue = str; \ -NP_END_MACRO - -#define OBJECT_TO_NPVARIANT(_val, _v) \ -NP_BEGIN_MACRO \ - (_v).type = NPVariantType_Object; \ - (_v).value.objectValue = _val; \ -NP_END_MACRO - - -/* - Type mappings (JavaScript types have been used for illustration - purposes): - - JavaScript to C (NPVariant with type:) - undefined NPVariantType_Void - null NPVariantType_Null - Boolean NPVariantType_Bool - Number NPVariantType_Double or NPVariantType_Int32 - String NPVariantType_String - Object NPVariantType_Object - - C (NPVariant with type:) to JavaScript - NPVariantType_Void undefined - NPVariantType_Null null - NPVariantType_Bool Boolean - NPVariantType_Int32 Number - NPVariantType_Double Number - NPVariantType_String String - NPVariantType_Object Object -*/ - -typedef void *NPIdentifier; - -/* - NPObjects have methods and properties. Methods and properties are - identified with NPIdentifiers. These identifiers may be reflected - in script. NPIdentifiers can be either strings or integers, IOW, - methods and properties can be identified by either strings or - integers (i.e. foo["bar"] vs foo[1]). NPIdentifiers can be - compared using ==. In case of any errors, the requested - NPIdentifier(s) will be NULL. NPIdentifier lifetime is controlled - by the browser. Plugins do not need to worry about memory management - with regards to NPIdentifiers. -*/ -NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name); -void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount, - NPIdentifier *identifiers); -NPIdentifier NPN_GetIntIdentifier(int32_t intid); -bool NPN_IdentifierIsString(NPIdentifier identifier); - -/* - The NPUTF8 returned from NPN_UTF8FromIdentifier SHOULD be freed. -*/ -NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier); - -/* - Get the integer represented by identifier. If identifier is not an - integer identifier, the behaviour is undefined. -*/ -int32_t NPN_IntFromIdentifier(NPIdentifier identifier); - -/* - NPObject behavior is implemented using the following set of - callback functions. - - The NPVariant *result argument of these functions (where - applicable) should be released using NPN_ReleaseVariantValue(). -*/ -typedef NPObject *(*NPAllocateFunctionPtr)(NPP npp, NPClass *aClass); -typedef void (*NPDeallocateFunctionPtr)(NPObject *npobj); -typedef void (*NPInvalidateFunctionPtr)(NPObject *npobj); -typedef bool (*NPHasMethodFunctionPtr)(NPObject *npobj, NPIdentifier name); -typedef bool (*NPInvokeFunctionPtr)(NPObject *npobj, NPIdentifier name, - const NPVariant *args, uint32_t argCount, - NPVariant *result); -typedef bool (*NPInvokeDefaultFunctionPtr)(NPObject *npobj, - const NPVariant *args, - uint32_t argCount, - NPVariant *result); -typedef bool (*NPHasPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name); -typedef bool (*NPGetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name, - NPVariant *result); -typedef bool (*NPSetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name, - const NPVariant *value); -typedef bool (*NPRemovePropertyFunctionPtr)(NPObject *npobj, - NPIdentifier name); -typedef bool (*NPEnumerationFunctionPtr)(NPObject *npobj, NPIdentifier **value, - uint32_t *count); -typedef bool (*NPConstructFunctionPtr)(NPObject *npobj, - const NPVariant *args, - uint32_t argCount, - NPVariant *result); - -/* - NPObjects returned by create, retain, invoke, and getProperty pass - a reference count to the caller. That is, the callee adds a - reference count which passes to the caller. It is the caller's - responsibility to release the returned object. - - NPInvokeFunctionPtr function may return 0 to indicate a void - result. - - NPInvalidateFunctionPtr is called by the scripting environment - when the native code is shutdown. Any attempt to message a - NPObject instance after the invalidate callback has been - called will result in undefined behavior, even if the native code - is still retaining those NPObject instances. (The runtime - will typically return immediately, with 0 or NULL, from an attempt - to dispatch to a NPObject, but this behavior should not be - depended upon.) - - The NPEnumerationFunctionPtr function may pass an array of - NPIdentifiers back to the caller. The callee allocs the memory of - the array using NPN_MemAlloc(), and it's the caller's responsibility - to release it using NPN_MemFree(). -*/ -struct NPClass -{ - uint32_t structVersion; - NPAllocateFunctionPtr allocate; - NPDeallocateFunctionPtr deallocate; - NPInvalidateFunctionPtr invalidate; - NPHasMethodFunctionPtr hasMethod; - NPInvokeFunctionPtr invoke; - NPInvokeDefaultFunctionPtr invokeDefault; - NPHasPropertyFunctionPtr hasProperty; - NPGetPropertyFunctionPtr getProperty; - NPSetPropertyFunctionPtr setProperty; - NPRemovePropertyFunctionPtr removeProperty; - NPEnumerationFunctionPtr enumerate; - NPConstructFunctionPtr construct; -}; - -#define NP_CLASS_STRUCT_VERSION 3 - -#define NP_CLASS_STRUCT_VERSION_ENUM 2 -#define NP_CLASS_STRUCT_VERSION_CTOR 3 - -#define NP_CLASS_STRUCT_VERSION_HAS_ENUM(npclass) \ - ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_ENUM) - -#define NP_CLASS_STRUCT_VERSION_HAS_CTOR(npclass) \ - ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_CTOR) - -struct NPObject { - NPClass *_class; - uint32_t referenceCount; - /* - * Additional space may be allocated here by types of NPObjects - */ -}; - -/* - If the class has an allocate function, NPN_CreateObject invokes - that function, otherwise a NPObject is allocated and - returned. This method will initialize the referenceCount member of - the NPObject to 1. -*/ -NPObject *NPN_CreateObject(NPP npp, NPClass *aClass); - -/* - Increment the NPObject's reference count. -*/ -NPObject *NPN_RetainObject(NPObject *npobj); - -/* - Decremented the NPObject's reference count. If the reference - count goes to zero, the class's destroy function is invoke if - specified, otherwise the object is freed directly. -*/ -void NPN_ReleaseObject(NPObject *npobj); - -/* - Functions to access script objects represented by NPObject. - - Calls to script objects are synchronous. If a function returns a - value, it will be supplied via the result NPVariant - argument. Successful calls will return true, false will be - returned in case of an error. - - Calls made from plugin code to script must be made from the thread - on which the plugin was initialized. -*/ - -bool NPN_Invoke(NPP npp, NPObject *npobj, NPIdentifier methodName, - const NPVariant *args, uint32_t argCount, NPVariant *result); -bool NPN_InvokeDefault(NPP npp, NPObject *npobj, const NPVariant *args, - uint32_t argCount, NPVariant *result); -bool NPN_Evaluate(NPP npp, NPObject *npobj, NPString *script, - NPVariant *result); -bool NPN_GetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName, - NPVariant *result); -bool NPN_SetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName, - const NPVariant *value); -bool NPN_RemoveProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName); -bool NPN_HasProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName); -bool NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName); -bool NPN_Enumerate(NPP npp, NPObject *npobj, NPIdentifier **identifier, - uint32_t *count); -bool NPN_Construct(NPP npp, NPObject *npobj, const NPVariant *args, - uint32_t argCount, NPVariant *result); - -/* - NPN_SetException may be called to trigger a script exception upon - return from entry points into NPObjects. Typical usage: - - NPN_SetException (npobj, message); -*/ -void NPN_SetException(NPObject *npobj, const NPUTF8 *message); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/browser-plugin/npapi/nptypes.h b/browser-plugin/npapi/nptypes.h deleted file mode 100644 index abcc96be0..000000000 --- a/browser-plugin/npapi/nptypes.h +++ /dev/null @@ -1,121 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * mozilla.org. - * Portions created by the Initial Developer are Copyright (C) 2004 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Johnny Stenback (Original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef nptypes_h_ -#define nptypes_h_ - -/* - * Header file for ensuring that C99 types ([u]int32_t, [u]int64_t and bool) and - * true/false macros are available. - */ - -#if defined(WIN32) || defined(OS2) - /* - * Win32 and OS/2 don't know C99, so define [u]int_16/32/64 here. The bool - * is predefined tho, both in C and C++. - */ - typedef short int16_t; - typedef unsigned short uint16_t; - typedef int int32_t; - typedef unsigned int uint32_t; - typedef long long int64_t; - typedef unsigned long long uint64_t; -#elif defined(_AIX) || defined(__sun) || defined(__osf__) || defined(IRIX) || defined(HPUX) - /* - * AIX and SunOS ship a inttypes.h header that defines [u]int32_t, - * but not bool for C. - */ - #include - - #ifndef __cplusplus - typedef int bool; - #define true 1 - #define false 0 - #endif -#elif defined(bsdi) || defined(FREEBSD) || defined(OPENBSD) - /* - * BSD/OS, FreeBSD, and OpenBSD ship sys/types.h that define int32_t and - * u_int32_t. - */ - #include - - /* - * BSD/OS ships no header that defines uint32_t, nor bool (for C) - */ - #if defined(bsdi) - typedef u_int32_t uint32_t; - typedef u_int64_t uint64_t; - - #if !defined(__cplusplus) - typedef int bool; - #define true 1 - #define false 0 - #endif - #else - /* - * FreeBSD and OpenBSD define uint32_t and bool. - */ - #include - #include - #endif -#elif defined(BEOS) - #include -#else - /* - * For those that ship a standard C99 stdint.h header file, include - * it. Can't do the same for stdbool.h tho, since some systems ship - * with a stdbool.h file that doesn't compile! - */ - #include - - #ifndef __cplusplus - #if !defined(__GNUC__) || (__GNUC__ > 2 || __GNUC_MINOR__ > 95) - #include - #else - /* - * GCC 2.91 can't deal with a typedef for bool, but a #define - * works. - */ - #define bool int - #define true 1 - #define false 0 - #endif - #endif -#endif - -#endif /* nptypes_h_ */ diff --git a/meson.build b/meson.build index 6c6321555..bb47235da 100644 --- a/meson.build +++ b/meson.build @@ -54,13 +54,10 @@ convertdir = join_paths(datadir, 'GConf', 'gsettings') desktopdir = join_paths(datadir, 'applications') ifacedir = join_paths(datadir, 'dbus-1', 'interfaces') localedir = join_paths(datadir, 'locale') -mozplugindir = join_paths(libdir, 'mozilla', 'plugins') portaldir = join_paths(datadir, 'xdg-desktop-portal', 'portals') schemadir = join_paths(datadir, 'glib-2.0', 'schemas') servicedir = join_paths(datadir, 'dbus-1', 'services') -plugindir = get_variable('BROWSER_PLUGIN_DIR', mozplugindir) - # XXX: Once https://github.com/systemd/systemd/issues/9595 is fixed and we can # depend on this version, replace with something like: # systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir', @@ -134,12 +131,6 @@ else have_systemd = false endif -if get_option('browser_plugin') - json_glib_dep = dependency('json-glib-1.0', version: json_glib_req) - - subdir('browser-plugin') -endif - if get_option('man') xsltproc = find_program('xsltproc') diff --git a/meson_options.txt b/meson_options.txt index 65188c7ff..853ca98dc 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,9 +1,3 @@ -option('browser_plugin', - type: 'boolean', - value: true, - description: 'Enable extensions.gnome.org browser plugin' -) - option('gtk_doc', type: 'boolean', value: false,