«Начальная загрузка» удаленного SWF-файла в приложение SecurityDomain (actionscript3) - PullRequest
0 голосов
/ 22 октября 2008

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

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

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

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 02 сентября 2009

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

По замыслу, наверное.

1 голос
/ 23 октября 2008

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

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

...