X-Git-Url: http://git.maemo.org/git/?p=browser-switch;a=blobdiff_plain;f=dbus-server-bindings.c;h=1660110973449c817fb09027356454be67dbdec4;hp=8224defbdc2d3ad447b7da945cc8eeabe1312560;hb=1cc34491c6852936c8cb5b0a06ae48a2f13600f1;hpb=ef66c102d916ea842c8ba15f010bf04326e3a590 diff --git a/dbus-server-bindings.c b/dbus-server-bindings.c index 8224def..1660110 100644 --- a/dbus-server-bindings.c +++ b/dbus-server-bindings.c @@ -29,6 +29,7 @@ #include "browser-switchboard.h" #include "launcher.h" #include "dbus-server-bindings.h" +#include "log.h" extern struct swb_context ctx; @@ -67,7 +68,7 @@ static void open_address(const char *uri) { /* Not much to do in this case ... */ return; - printf("open_address '%s'\n", uri); + log_msg("open_address '%s'\n", uri); if (uri[0] == '/') { /* URI begins with a '/' -- assume it points to a local file and prefix with "file://" */ @@ -106,6 +107,15 @@ gboolean osso_browser_load_url(OssoBrowser *obj, return TRUE; } +gboolean osso_browser_load_url_sb(OssoBrowser *obj, + const char *uri, gboolean fullscreen, GError **error) { + /* XXX don't ignore fullscreen requests */ + if (!ctx.continuous_mode) + ignore_reconfig_requests(); + open_address(uri); + return TRUE; +} + gboolean osso_browser_mime_open(OssoBrowser *obj, const char *uri, GError **error) { if (!ctx.continuous_mode) @@ -122,16 +132,25 @@ gboolean osso_browser_open_new_window(OssoBrowser *obj, return TRUE; } +gboolean osso_browser_open_new_window_sb(OssoBrowser *obj, + const char *uri, gboolean fullscreen, GError **error) { + /* XXX don't ignore fullscreen requests */ + if (!ctx.continuous_mode) + ignore_reconfig_requests(); + open_address(uri); + return TRUE; +} + gboolean osso_browser_top_application(OssoBrowser *obj, GError **error) { if (!ctx.continuous_mode) ignore_reconfig_requests(); - launch_microb(&ctx, "new_window"); + launch_browser(&ctx, "new_window"); return TRUE; } /* This is a "undocumented", non-standard extension to the API, ONLY - for use by /usr/bin/browser wrapper to implement --url */ + for use by /usr/bin/microb wrapper */ gboolean osso_browser_switchboard_launch_microb(OssoBrowser *obj, const char *uri, GError **error) { if (!ctx.continuous_mode) @@ -146,22 +165,39 @@ void dbus_request_osso_browser_name(struct swb_context *ctx) { GError *error = NULL; guint result; - if (!ctx || !ctx->dbus_proxy) + if (!ctx || !ctx->dbus_proxy || !ctx->dbus_system_proxy) return; + /* Acquire the com.nokia.osso_browser name on the session bus */ if (!dbus_g_proxy_call(ctx->dbus_proxy, "RequestName", &error, G_TYPE_STRING, "com.nokia.osso_browser", G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING|DBUS_NAME_FLAG_DO_NOT_QUEUE, G_TYPE_INVALID, G_TYPE_UINT, &result, G_TYPE_INVALID)) { - printf("Couldn't acquire name com.nokia.osso_browser\n"); + log_msg("Couldn't acquire name com.nokia.osso_browser\n"); exit(1); } - if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { - printf("Couldn't acquire name com.nokia.osso_browser\n"); + if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { + log_msg("Couldn't acquire name com.nokia.osso_browser\n"); exit(1); } + + /* Try to acquire the com.nokia.osso_browser name on the system bus + Treat a failure as non-fatal, which makes testing on desktop systems + easier */ + if (!dbus_g_proxy_call(ctx->dbus_system_proxy, "RequestName", &error, + G_TYPE_STRING, "com.nokia.osso_browser", + G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING|DBUS_NAME_FLAG_DO_NOT_QUEUE, + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID)) { + log_msg("Couldn't acquire name com.nokia.osso_browser on system bus\n"); + g_error_free(error); + } + if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { + log_msg("Couldn't acquire name com.nokia.osso_browser on system bus\n"); + } } /* Release the name com.nokia.osso_browser on the D-Bus session bus */ @@ -169,7 +205,7 @@ void dbus_release_osso_browser_name(struct swb_context *ctx) { GError *error = NULL; guint result; - if (!ctx || !ctx->dbus_proxy) + if (!ctx || !ctx->dbus_proxy || !ctx->dbus_system_proxy) return; dbus_g_proxy_call(ctx->dbus_proxy, "ReleaseName", &error, @@ -177,4 +213,9 @@ void dbus_release_osso_browser_name(struct swb_context *ctx) { G_TYPE_INVALID, G_TYPE_UINT, &result, G_TYPE_INVALID); + dbus_g_proxy_call(ctx->dbus_system_proxy, "ReleaseName", &error, + G_TYPE_STRING, "com.nokia.osso_browser", + G_TYPE_INVALID, + G_TYPE_UINT, &result, + G_TYPE_INVALID); }