Articulate Updater is putting bad JS in Storyline 3 output

Hi Articulate Community,

I have a working course. If I run the Jan 11 Updater on it, I get JS code that causes an error in the browser, and the story doesn't work (loader image only).

The console error is:  ReferenceError: Media is not defined

The line it's angry about is in player_compiled.js (de-minified below):

if (Media.detectRestrictedMode(), player.isIOSFrame && (480 >= window.innerWidth || 480 >= window.innerHeight)) {
.
.
.
This code is being inserted by the Updateer.

Before and after versions of our course's player_compiled.js  are attached.

 If we don't run the updater, our courses don't load in Chrome, and if we do, we get this JS error.


Options?

 

Thanks,

Greg

 

12 Replies
Erin Flage

Following.  We're seeing the same issues with both the 4.3 and 4.4 updates to the Articulate Updater. 

For reference, the content we're updating was created with Articulate Quizmaker '13 (version: 4.0.1309.2720)

I had to use a file compare and back out all of the "Media" references while still leaving in the changes to let the HTML5 work properly.  

Is there a specific version of the Updater we should roll back to in the meantime?

Erin Flage

FYI, in case anyone else finds this, it appears that the bad JS was introduced in the version 4.2 of the updater.  (Thanks to me testing, because apparently support can't figure that out)

So if you happen to have an version 4.1 or earlier you should be safe, or Support was able to provide me previous versions.  

I'm really starting to question the quality of Support and the QA on the software.  Like many long time users it seems to be a steady decline, whether it be the lack of support for accessibility in Rise, or the length of time it took to get a true HTML5 product. 

Greg Bell

Thanks for chiming in Erin.

How were you able to back out the Media references? Our storyline_compiled.js's are pretty severely minified and obfuscated.

For the record, both Updater versions 4.4 and (pre-release) 4.5 corrupt the JS.

Also for the record, Articulate support jumped on this lickety-split, but my spam filter ate the responses, causing a delay.

In general, I'm uncomfortable running a tool that opaquely modifies the 735+ Storyline stories that make up our product. Could the transforms applied to the JS (and the reasons for them) be made public, and/or possibly be selectable by us Updater users, so that when one goes bad, we can exclude it?

Erin Flage

Greg - I have fortunate experience of being a software QA and software developer for web apps before entering the world of instructional design, so I feel more comfortable mucking with javascript than some might.  An additional caveat, I had lots of backups.

All I did is run a file compare using WinMerge between the backup file the Updater creates and the broken player_compiled.js.  For each change that referenced "Media.something" I reverted the change (which WinMerge makes easy) and then I tested by re-uploading.

When working with Support, they were able to provide the older versions so I started with Version 3 and kept upgrading until it was broken.

Greg Bell

Hi Ashley -

Thanks for the news.

That's different than what Victor is telling me. He reports that the team has been unable to reproduce my problem, but since the test I sent him was exported using Storyline 1.x, that's likely the problem - Updater 4.x doesn't support Storyline 1.x.

The practical problem is that we have 1000s of exported stories that make up our product, so re-exporting whenever there's a new major (and minor?) version of Storyline isn't practical.

Ashley Terwilliger

Hi Greg,

The issue with Erin's courses and the possible bug has to do with Quizmaker '13, and it looks like you're using Storyline (all versions)? 

Yes, the current iteration of the Updater tool does not support Storyline 1. 

If you have content created in Storyline 1 or 2, that needs to be used in Storyline 3 (or take advantage of features in Storyline 3) the original .story file would need to be opened in that tool and republished.

Storyline 1, 2 and 3 are all separate versions and major changes were made within each, so it's an entirely different Storyline version. The Updater tool only allows for updating published content to the latest update within a version (i.e. update Storyline 3 Build 3.3.15007.0 to Storyline 3 build 3.5.16548.0). 

Hope that helps clarify! 

Greg Bell

Thanks Ashley, that all makes sense.

None of that helps my problem though.

1) If Storyline had a command-line interface, I could batch the update to our 1000s of stories.

2) Or, the Updater could deal with 1.x and 2.x stories, as it did in years past.

3) Or, Articulate could make public what the Updater is actually doing, and I could write my own tools to deal with 1.x and 2.x story output.

4) We've run Updater every year, but this is the first year that it has b0rked our 1.x (and 2.x?) stories. A tick box to not run that particular change would be good.

Regardless, Updater should warn about my situation, not just go and corrupt my 1.x and 2.x stories.

I'm in a pickle with only these options under my control:

1) Re-export all stories when there's a major version change - 100s of hours of work (each year?)

2) Don't run Updater - some stories don't work with Chrome

3) Do run Updater - some stories don't work with Chrome

4) Reverse engineer Updater, reverse some of the changes to player_compiled.js, and hope that those weren't required for the stories to work in Chrome now or in the next year.

Please tell me which of the 4 above solutions Articulate is going to provide, or if "none", then which of the 4 bad solutions that I can do myself you recommend.