diff --git a/src/as/com/threerings/flash/MediaContainer.as b/src/as/com/threerings/flash/MediaContainer.as index b789455e..9c52eabc 100644 --- a/src/as/com/threerings/flash/MediaContainer.as +++ b/src/as/com/threerings/flash/MediaContainer.as @@ -49,6 +49,7 @@ import flash.text.TextFieldAutoSize; import flash.system.ApplicationDomain; import flash.system.LoaderContext; +import flash.system.Security; import flash.system.SecurityDomain; import flash.net.URLRequest; @@ -428,7 +429,7 @@ public class MediaContainer extends Sprite // load images into our domain so that we can view their pixels return new LoaderContext(true, new ApplicationDomain(ApplicationDomain.currentDomain), - SecurityDomain.currentDomain); + getSecurityDomain(url)); } else { // share nothing, trust nothing @@ -436,6 +437,22 @@ public class MediaContainer extends Sprite } } + /** + * Return the security domain to use for the specified image url. + */ + protected function getSecurityDomain (imageURL :String) :SecurityDomain + { + switch (Security.sandboxType) { + case Security.LOCAL_WITH_FILE: + case Security.LOCAL_WITH_NETWORK: + case Security.LOCAL_TRUSTED: + return null; + + default: + return SecurityDomain.currentDomain; + } + } + /** * Does the specified url represent an image? */