X-Git-Url: http://git.maemo.org/git/?p=browser-switch;a=blobdiff_plain;f=dbus-server-bindings.c;h=e3d2c4fb512a9fef09334aba236380c6361c726f;hp=4afaec835bc717497e62e0e683bafc8c4f95f613;hb=846e68b8ffa979d30ed331c43020212ffdee2bf2;hpb=d9eaacdb0796bfa089b4dea6fb5f1ad1d9835c44;ds=sidebyside diff --git a/dbus-server-bindings.c b/dbus-server-bindings.c index 4afaec8..e3d2c4f 100644 --- a/dbus-server-bindings.c +++ b/dbus-server-bindings.c @@ -1,7 +1,7 @@ /* * dbus-server-bindings.c -- osso_browser D-Bus interface implementation * - * Copyright (C) 2009 Steven Luo + * Copyright (C) 2009-2010 Steven Luo * Derived from a Python implementation by Jason Simpson and Steven Luo * * This program is free software; you can redistribute it and/or @@ -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://" */ @@ -81,6 +82,15 @@ static void open_address(const char *uri) { we need to clean up after ourselves */ free(new_uri); } else { +#ifdef FREMANTLE + if (!strcmp(uri, "http://link.ovi.mobi/n900ovistore")) { + /* Ovi Store webpage will not open correctly in + any browser other than MicroB, so force the + link in the provided bookmark to open in MicroB */ + launch_microb(&ctx, (char *)uri); + return; + } +#endif launch_browser(&ctx, (char *)uri); } } @@ -117,13 +127,23 @@ gboolean osso_browser_top_application(OssoBrowser *obj, GError **error) { if (!ctx.continuous_mode) ignore_reconfig_requests(); + launch_browser(&ctx, "new_window"); + return TRUE; +} + + +/* + * The org.maemo.garage.browser_switchboard D-Bus interface + */ +gboolean switchboard_top_application(OssoBrowser *obj, + GError **error) { + if (!ctx.continuous_mode) + ignore_reconfig_requests(); launch_microb(&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 */ -gboolean osso_browser_switchboard_launch_microb(OssoBrowser *obj, +gboolean switchboard_launch_microb(OssoBrowser *obj, const char *uri, GError **error) { if (!ctx.continuous_mode) ignore_reconfig_requests(); @@ -146,11 +166,11 @@ void dbus_request_osso_browser_name(struct swb_context *ctx) { 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"); + log_msg("Couldn't acquire name com.nokia.osso_browser\n"); exit(1); } }