flashapache-flexrsl

Why are some users getting rsl error in flash app?


When some of my users try to access my flash application, they receive an error

RSL Error 1 of 1

That is it, there is no error code or anything. This page works for them in Internet Explorer, but they primarily use Chrome. It also works fine for me and another coworker in Chrome. We are on the same network.

Here is my .actionScriptProperties file

  <?xml version="1.0" encoding="UTF-8"?>
    <actionScriptProperties mainApplicationPath="Works.mxml" version="3">
      <compiler additionalCompilerArguments="-locale en_US -strict=true -debug=true -optimize=true -link-report output.xml -use-network=false" copyDependentFiles="false" enableModuleDebug="true" flexSDK="Flex 3.2" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersion="9.0.124" htmlPlayerVersionCheck="true" outputFolderPath="bin-debug" sourceFolderPath="src" strict="true" useApolloConfig="false" verifyDigests="true" warn="true">
        <compilerSourcePath/>
        <libraryPath defaultLinkType="1">
          <libraryPathEntry kind="4" path="">
            <modifiedEntries>
              <libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/flex.swc" useDefaultLinkType="true">
                <crossDomainRsls>
                  <crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="flex.swf"/>
                </crossDomainRsls>
              </libraryPathEntry>
              <libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/framework.swc" useDefaultLinkType="false">
                <crossDomainRsls>
                  <crossDomainRslEntry autoExtract="false" policyFileUrl="" rslUrl="https://example.com/rsl/framework_3.2.0.3958.swz"/>
                  <crossDomainRslEntry autoExtract="false" policyFileUrl="" rslUrl="https://example.com/rsl/framework_3.2.0.3958.swf"/>
                </crossDomainRsls>
              </libraryPathEntry>
              <libraryPathEntry kind="3" linkType="4" path="${PROJECT_FRAMEWORKS}/libs/utilities.swc" useDefaultLinkType="true">
                <crossDomainRsls>
                  <crossDomainRslEntry autoExtract="true" policyFileUrl="" rslUrl="/rsl/utilities.swf"/>
                </crossDomainRsls>
              </libraryPathEntry>
            </modifiedEntries>
          </libraryPathEntry>
          <libraryPathEntry kind="1" linkType="1" path="libs"/>
        </libraryPath>
        <sourceAttachmentPath/>
      </compiler>
      <applications>
        <application path="Calendar.mxml"/>
        <application path="testImage.mxml"/>
        <application path="XMLCreate.mxml"/>
        <application path="book.mxml"/>
        <application path="Works.mxml"/>
        <application path="cpapp.mxml"/>
        <application path="books.mxml"/>
        <application path="flashup.mxml"/>
        <application path="Eyeballs.mxml"/>
        <application path="albums.mxml"/>
        <application path="DragDrop.mxml"/>
        <application path="flexpaint.mxml"/>
        <application path="testdrop.mxml"/>
        <application path="TextTicker.mxml"/>
        <application path="slideshow.mxml"/>
        <application path="test.mxml"/>
        <application path="bifedit.mxml"/>
        <application path="test_canvas.mxml"/>
        <application path="canvas.mxml"/>
        <application path="LayoutBuilder.mxml"/>
        <application path="ComponentBuilder.mxml"/>
        <application path="BIF.mxml"/>
      </applications>
      <modules/>
      <buildCSSFiles>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/grey.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/timeless3.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/letter_photography.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/bobday.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/wdt.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/sigart.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/save_on_crafts.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/creativehabitat.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/acmoore.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/kamans.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/ipi.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/bachphoto.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/tfstyle.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/front_slide.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/fonts.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/abm.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/appo.css"/>
        <buildCSSFileEntry destPath="bin-debug" sourcePath="src/CSS/benfranklin.css"/>
      </buildCSSFiles>
    </actionScriptProperties>

EDIT: Ok, the user didn't send me the full page, which contained an error number The full error is:

RSL Error 1 of 1
Error #2048

EDIT2: Crossdomain.xml (located at https://example.com/crossdomain.xml)

<cross-domain-policy>
  <allow-access-from domain="*"/>
</cross-domain-policy>

EDIT 3: I took a look at the developer network information. It seems like on my machine it is not even trying to request the crossdomain file, while on my coworker's machine, it is requesting it on http and https.

Here is the code that embeds the flash:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Works" name="Works" width="990" height="670" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
    <param name="quality" value="high" />
    <param name="movie" value="/sites/all/misc/cfa_flex/canvas.swf" />
    <param name="wmode" value="transparent" />
    <param name="bgcolor" value="#ffffff" />
    <param name="allowScriptAccess" value="always" />
    <param name="allowFullScreen" value="true" />  
    <param name="flashVars" value="prodid=&amp;prjid=&amp;apptype=canvastransfer&amp;pid=elegance" />  
    <param name="apptype" value="canvastransfer" />  
    <param name="prodid" value="" />  
    <param name="prjid" value="" />  
    <param name="allowFullScreen" value="true" />  
    <param name="domain" value="https://example.com" />
    <script type="text/javascript" src="/sites/all/misc/js/AC_OETags.js"></script>
    <script type="text/javascript" src="/sites/all/misc/js/detectflash.js"></script>
    <script type="text/javascript" src="/sites/all/misc/js/miscscripts.js"></script>
    <script type="text/javascript" src="/misc/jquery.js"></script>
    <script type="text/javascript" src="/sites/all/misc/js/tl.js"></script>
    <script type="text/javascript" src="/sites/all/modules/contrib/thickbox/thickbox.js"></script>
    <script language="JavaScript" type="text/javascript">
      //<![CDATA[
        if (hasReqestedVersion) {var content = '<embed src="/sites/all/misc/cfa_flex/canvas.swf?k" quality="high" bgcolor="#ffffff"'
        + 'id="Works"'
        + 'allowFullScreen="true"'
        + 'width="990" height="670" name="Works" align="middle"'
        + 'wmode="transparent"'
        + 'play="true"'
        + 'loop="false"'
        + 'quality="high"'
        + 'allowFullScreen="true"'
        + 'flashVars="apptype=canvastransfer"'
        + 'allowScriptAccess="always"'
        + 'type="application/x-shockwave-flash"'
        + 'pluginspage="http://www.adobe.com/go/getflashplayer">'
        + '</embed>';
        document.write(content);

        } else {
        document.write('<h3 style="font-family:Arial, Helvetica, sans-serif; color:#999999;">You do not have the latest version of Macromedia Flash Player.</h3><a href="http://www.macromedia.com/go/getflashplayer" target="_blank"><img src="http://www.macromedia.com/images/shared/download_buttons/get_flash_player.gif" border="0" width="88" height="31" alt="Get Adobe Flash Player" /></a><a href="http://www.adobe.com/go/getflash/">The website requires 9 or higher version of flash to display the content.</a><p>To Download Flash Player on Android, see: <a href="http://forums.adobe.com/thread/1061194">http://forums.adobe.com/thread/1061194</a>.</p>');

        }
      //]]>
    </script>
  </object>

EDIT 4: Also, when the crossdomain is called from my coworkers computer it is called using our other domain

https://www.example2.com/crossdomain.xml
http://www.example2.com/crossdomain.xml

Whereas the request for the original page is

https://example.com/cfa/canvastransfer

The thing is these all need to work on all 3 of our domains the same.

EDIT 5: Updated allowScriptAccess to be always, instead of sameDomain on the code that embeds the flash. No change.

EDIT 6: In one of my mxml files, I am calling this (still having same issues):

Security.loadPolicyFile("https://example.com/crossdomain.xml");

Solution

  • Once I got the crossdomain.xml file to load, I was still having issues

    Security.loadPolicyFile(getRootDomain() + "crossdomain.xml");
    Security.loadPolicyFile(getRootDomain() + "policyFile.xml");
    
    public static function getRootDomain():String
    {
      return "https://" + ExternalInterface.call("getRoot") + "/";
    }
    

    Basically making sure all URLs were using https and not http seemed to fix the issue, along with the loadPolicyFile lines.