Link to home
Start Free TrialLog in
Avatar of mico20
mico20

asked on

How to add local flash file to trusted locations programmatically

Hi, Experts.

I will appreciate any help on the issue of installing a flash-based website locally.

I have written an elaborate website featuring multiple flash educational mini-games, with html-based framework wrapping the whole thing up. Flash files use ExternalInterface to call functions (mostly navigation) from underlying html files.
None of the functionality requires any server-side scripting.

It all works perfectly while deployed on the web. But, one of the required deployment modes is deploying on local computer (via CD-Rom or local installation). I've made sure all the functionality is preserved in this mode.

Now, the problem is with ExternalInterface calls. Flash player's security by default blocks ExternalInterface when running local SWFs embedded in local HTML. The solution (which works) is to manually open the global security settings and add the folder containing the flash files to locally trusted list.
(i am referring to this panel: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html or the likes)

The question is - how can I do it programmatically, via install script that comes with the CD-Rom, and without forcing end-users changing security settings manually.

Technical notes:

1) The flash is compiled using Flash SDK (mxmlc)

2) The flash is written in ActionScript 3 for flash 9-10 or later. Flash 9 can't run some of the resulting SWFs due to known bugs in Flash 9.

3) The flash applications use additional libraries (swf files) for resources, which they download from relative path (i.e. from local disk if installed locally). This part works fine.

4) Using Flash IDE for any part of the solution is unacceptable (I have hundreds of files, the only way to recompile them must be automated (now i rebuild them using script that runs mxmlc)
5) Solution that works on both Windows and MacOS is preferred (linux is a bonus)

Please note that the end users will be running this in browser, not on standalone flash player or any debug player.

Also, I've tried creating .cfg files in C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust - to no avail.

If the solution is via editing settings.sol, I will need a preferably free SDK or DLL to allow changing it programmatically.
Avatar of deepanjandas
deepanjandas
Flag of India image

You cannot set that settings programatically, that will require manual input atleast for the first time.

This is due to security imposed on Flash Player in accessing clients' machine.

Warm Regards
Deepanjan Das
Avatar of mico20
mico20

ASKER

Perhaps, you misunderstood the situation. I know I shouldn't be able to change this setting from neither flash nor html files or any other web entity - otherwise, it would be worthless security-wise.
In my case, however, I have a setup.exe (or the equivalent) that will be run by user (I can even require administrative permissions for this one), and that should be able to access any local setting...

It seems I have found at least a partial solution, though it is a bit convoluted. If no better solution is found here, I'll have to close the question on it. Here it is:

1)Installer runs a flash applet locally, to create a local shared object with some dummy settings
2)Installer locates that LSO in the filesystem
3)Installer copies system.sol into that folder and makes it writable for the flash applet
4)Installer runs the flash applet again, that this time, patches the system.sol with needed trusted folder
5)Installer replaces the original system.sol with the patched one.

This has been feasibility tested (but not yet completely implemented) on at least Windows XP.
I have not done anything which involves writing the settings.sol directly from the installer.
So will not be able to suggest on this.

Are you using MDM as installer.

Warm Reagrds
Deepanjan Das
ASKER CERTIFIED SOLUTION
Avatar of mico20
mico20

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of mico20

ASKER

No solution was given by the experts. I had to find, develop and use my own solution, with the help from haXe development team.