summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2007-10-17 23:22:33 +0200
committerBenjamin Otte <otte@gnome.org>2007-10-17 23:22:33 +0200
commit6eaa4d583a246c55db75dbf84e7e0b5f35a7aa7a (patch)
treeb471fea555d784c7e998a7d1ccc96eca6f0d653b
parentd9a24da2aab39932a3eb75f5e8507176a61f99de (diff)
actually implement the use_network flag
-rw-r--r--libswfdec/swfdec_swf_instance.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/libswfdec/swfdec_swf_instance.c b/libswfdec/swfdec_swf_instance.c
index 4523f05d..97e8460f 100644
--- a/libswfdec/swfdec_swf_instance.c
+++ b/libswfdec/swfdec_swf_instance.c
@@ -29,6 +29,7 @@
#include "swfdec_character.h"
#include "swfdec_debug.h"
#include "swfdec_decoder.h"
+#include "swfdec_flash_security.h"
#include "swfdec_flv_decoder.h"
#include "swfdec_loader_internal.h"
#include "swfdec_loadertarget.h"
@@ -52,6 +53,21 @@ swfdec_swf_instance_loader_target_get_player (SwfdecLoaderTarget *target)
}
static void
+swfdec_swf_instance_allow_network (SwfdecPlayer *player)
+{
+ SwfdecFlashSecurity *sec;
+
+ g_print ("enabling network access for %s\n",
+ swfdec_url_get_url (swfdec_loader_get_url (player->loader)));
+ SWFDEC_INFO ("enabling network access for %s",
+ swfdec_url_get_url (swfdec_loader_get_url (player->loader)));
+
+ sec = SWFDEC_FLASH_SECURITY (player->security);
+ sec->allow_remote = TRUE;
+ sec->allow_local = FALSE;
+}
+
+static void
swfdec_swf_instance_loader_target_image (SwfdecSwfInstance *instance)
{
SwfdecSpriteMovie *movie = instance->movie;
@@ -60,9 +76,15 @@ swfdec_swf_instance_loader_target_image (SwfdecSwfInstance *instance)
return;
if (SWFDEC_IS_SWF_DECODER (instance->decoder)) {
- movie->sprite = SWFDEC_SWF_DECODER (instance->decoder)->main_sprite;
-
+ SwfdecPlayer *player = SWFDEC_PLAYER (SWFDEC_AS_OBJECT (movie)->context);
+ SwfdecSwfDecoder *dec = SWFDEC_SWF_DECODER (instance->decoder);
+ movie->sprite = dec->main_sprite;
swfdec_movie_invalidate (SWFDEC_MOVIE (movie));
+
+ /* if first instance */
+ if (player->loader == instance->loader && dec->use_network &&
+ swfdec_url_has_protocol (swfdec_loader_get_url (instance->loader), "file"))
+ swfdec_swf_instance_allow_network (player);
} else if (SWFDEC_IS_FLV_DECODER (instance->decoder)) {
/* nothing to do, please move along */
} else {