2

We have a flash button that launches an AIR application and is failing to properly detect that AIR is installed under the new pepper flash plugin for Chrome 21 (just released for Windows). Here is a code snippet of our action script:

internal var airSWFLoader:Loader = new Loader();
loaderContext.applicationDomain = ApplicationDomain.currentDomain;

airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, airSWF_init);
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"), loaderContext);

internal function airSWF_init(event:Event):void {
    try {
        airSWF = event.target.content;
        airSWF.getAIRStatus(); //fails to detect AIR here with value "available"
    } catch (e:Error) {
        Logger.error(e.message,e.errorID);
}

This call to getAIRStatus() returns "available" instead of "installed" as it does on other browsers on the same machine which are using the regular flash plugin directly from Adobe.

Wanted to see if anyone else has run into similar issues or if there is a better way to detect if AIR is installed? This prevents our application from working at all under Chrome 21 on Windows.

Arshia K
  • 21
  • 2

3 Answers3

1

Looks related to this bug report on google forums:

Chromium Bug Report

Doesn't look like there is a work-around yet.

Sconus
  • 11
  • 1
1

We lived with this problem for a long time and had a workaround users would download and install our Native Air application each time they used our service. This would launch our application once installed and use the clipboard for arguments -- alternatively we'd have users manually enable our domain in their settings -- clearly sub-optimal.

Then I found the following article: http://helpx.adobe.com/flash-player/kb/unsandbox-localconnection-chrome.html

This calls for using the flashfileattributes utility which can be found in a download from: https://support.influxis.com/hc/en-us/articles/203135797-ICS-Chrome-Screen-Share-Pepper-Flash-Fix

The article talks about enabling LocalConnections in Chrome. It doesn't mention Air, or the Air Browser API, but I had a hunch that LocalConnection is how it was all done.

Cribbing from the example, I was able to communicate with our Air application and get our application to launch.

I would, make one suggestion - do take a look at the Event passed to your download callback - I originally did not make enough room for the Flash Enabler download dialog, so I was getting a 2074 (not enough room on the stage) error. Once this was cleared up, it worked like a gem.

If I get the time to sanitize our code I'll post it. Otherwise - I hope this helps!

0

It's happening due to the new way that Chrome sandboxes Flash, which breaks the Air integration. I've filed a bug with Adobe about it here. Unfortunately all we can do is upvote it and hope. :/

paleozogt
  • 6,393
  • 11
  • 51
  • 94