"Начальная загрузка" удаленного SWF-файла в приложение SecurityDomain (actionscript3)

Приложение My Flash (AS3/AIR) в настоящее время использует немного необычную архитектуру (для приложения Flash) для предоставления определенных базовых классов для загруженного содержимого во время выполнения. Внешний контент публикуется с базовыми классами-заглушками, которые затмеваются реальными базовыми классами во время выполнения при его загрузке. Я слышал, что это называется самозагрузкой ( pdf), и до сих пор это работало очень хорошо для меня. Я полагаю, что это мало чем отличается от архитектуры DLL, хотя я не могу сказать наверняка.

До сих пор загружаемый мною внешний контент загружался из SecurityDomain (та же песочница), которая позволяет мне легко загружать контент у ребенка ApplicationDomain, К сожалению, насколько я могу судить, ApplicationDomainс этим промежутком SecurityDomains не могут быть связаны, то есть я не могу сделать AppDom одного SecurityDom дочерним для AppDom от другого SecurityDom.

Но теперь мне нужно загрузить этот внешний контент извне моей изолированной программной среды. Есть много способов добиться общения через SecurityDomainS - хотя большинство из них очень ограничены, AIR's sandboxBridge API, вероятно, самый мощный. К сожалению, ни один из этих способов коммуникации не позволяет мне достичь этой архитектуры начальной загрузки.

Я заметил, что LoaderContext объект имеет securityDomain свойство, но безопасность Flash запрещает "локальным swfs" прикасаться к нему (SecurityError или похожие).

Flex-х SWFLoader имеет trustContent свойство, которое выглядит многообещающим, но я склонен предположить, что оно имеет те же ограничения, что и установка SecurityDomain в Loader"s LoaderContext,

Я подозреваю, что мне придется изменить дизайн (что будет нелегко), но я подумал, что просто проверю здесь, что я ничего не пропустил в своем исследовании.

Итак... какие-нибудь идеи или жемчужины мудрости? Мне бы очень понравилось, если бы кто-то из Adobe, работающий над моделью безопасности, мог дать мне однозначное "да / нет, это может / не может быть сделано"...

Заранее спасибо!

Приложение: С тех пор я решил изменить архитектуру, чтобы начальная загрузка происходила во внешнем домене. Однако мой вопрос все еще стоит из любопытства.

2 ответа

Решение

На момент написания я решил, что вы не можете загрузить ApplicationDomain в свой SecurityDomain если это из другого домена, даже с AIR.

По дизайну, наверное.

С технической точки зрения, не может ли ваше приложение AIR просто сохранить внешние SWF-файлы в каталоге приложения и загрузить их оттуда, чтобы они находились в одной изолированной программной среде безопасности?

Однако есть несколько действительно очевидных причин, по которым это может быть "плохой кармой", поэтому кажется, что любое решение обязательно поднимает вопрос о том, является ли попытка поместить контент локального приложения и удаленный ненадежный контент в один домен приложения правильным подходом к архитектуре?

Другие вопросы по тегам