示例#1
0
static void
swfdec_load_object_load (SwfdecPlayer *player, gboolean allow, gpointer obj)
{
  SwfdecLoadObject *load = SWFDEC_LOAD_OBJECT (obj);

  if (!allow) {
    SWFDEC_WARNING ("SECURITY: no access to %s from %s",
	load->url, swfdec_url_get_url (load->sandbox->url));

    /* call finish */
    swfdec_sandbox_use (load->sandbox);
    load->finish (load->target, NULL);
    swfdec_sandbox_unuse (load->sandbox);

    /* unroot */
    swfdec_player_unroot (player, load);
    return;
  }

  load->loader = swfdec_player_load_with_headers (player, load->url,
      load->buffer, load->header_count, (const char **)load->header_names,
      (const char **)load->header_values);

  swfdec_stream_set_target (SWFDEC_STREAM (load->loader), SWFDEC_STREAM_TARGET (load));
  swfdec_loader_set_data_type (load->loader, SWFDEC_LOADER_DATA_TEXT);
}
static void
swfdec_window_player_initialized (SwfdecPlayer *player, GParamSpec *pspec, SwfdecWindow *window)
{
  static const char *mime[2] = { "swfdec-player", NULL };
  GtkRecentData data = { NULL, NULL, (char *) "application/x-shockwave-flash",
    (char *) g_get_application_name (), g_strjoin (" ", g_get_prgname (), "%u", NULL), 
    (char **) mime, FALSE };

  if (swfdec_player_is_initialized (player)) {
    gtk_recent_manager_add_full (gtk_recent_manager_get_default (),
	swfdec_url_get_url (swfdec_loader_get_url (window->loader)),
	&data);
    g_signal_handlers_disconnect_by_func (player, swfdec_window_player_next_event, window);
  }
  g_free (data.app_exec);
}