Note: If you are upgrading from a version of Engine before 20.1, please see this Breaking Changes for 20.1 article. Everything in that article will apply as well.
Deprecation Notice
This is the last release in which the following are supported:
- V1 API
- Legacy player (has not been the default player since 2016.1)
- Internet Explorer -- all versions (version 8 and below and all versions for Media Content are already not supported)
You should evaluate your current usage of these deprecated features and start planning for how to migrate away from them before the next major Engine release.
Things Changed or Removed in Engine 21.1
Removed Support for IE 9 & 10 and PlayerInternetExplorerCompatibilityMode
In previous versions, the setting PlayerInternetExplorerCompatibilityMode could be used to force Internet Explorer into various compatibility modes when the player launched. With our drop of support for versions before IE 11, this is no longer useful, and so has been removed.
Removed Package Properties Editor
The Package Properties Editor is no longer available in this version of Engine. After upgrading to 21.1, configuration changes that would have been made through the Package Properties Editor should be made through either the configuration file or the configuration API.
Package Property Presets that would have been set through the Package Property Editor can no longer be set. The following integration method was also removed as it is no longer used:
GetPackagePropertyPresetOwner()
The following integration methods, which allowed the default values for each package property to be overridden, were removed. If you were using these methods to change the default to a constant value, you should modify your upgrade configuration file to have this default value before running the Upgrade tool. Otherwise, please reach out to support for advice on migrating more complicated logic.
DefaultShowFinishButton()
DefaultShowCloseItem()
DefaultShowHelp()
DefaultShowProgressBar()
DefaultUseMeasureProgressBar()
DefaultShowCourseStructure()
DefaultCourseStructureStartsOpen()
DefaultShowNavBar()
DefaultShowTitleBar()
DefaultEnableFlowNav()
DefaultEnableChoiceNav()
DefaultDesiredWidth()
DefaultDesiredHeight()
DefaultDesiredFullScreen()
DefaultCourseStructureWidth()
DefaultScoLaunchType()
DefaultPlayerLaunchType()
DefaultIntermediateScoSatisfiedNormalExitAction()
DefaultIntermediateScoSatisfiedSuspendExitAction()
DefaultIntermediateScoSatisfiedTimeoutExitAction()
DefaultIntermediateScoSatisfiedLogoutExitAction()
DefaultIntermediateScoNotSatisfiedNormalExitAction()
DefaultIntermediateScoNotSatisfiedSuspendExitAction()
DefaultIntermediateScoNotSatisfiedTimeoutExitAction()
DefaultIntermediateScoNotSatisfiedLogoutExitAction()
DefaultFinalScoCourseSatisfiedNormalExitAction()
DefaultFinalScoCourseSatisfiedSuspendExitAction()
DefaultFinalScoCourseSatisfiedTimeoutExitAction()
DefaultFinalScoCourseSatisfiedLogoutExitAction()
DefaultFinalScoCourseNotSatisfiedNormalExitAction()
DefaultFinalScoCourseNotSatisfiedSuspendExitAction()
DefaultFinalScoCourseNotSatisfiedTimeoutExitAction()
DefaultFinalScoCourseNotSatisfiedLogoutExitAction()
DefaultDisableRightClick()
DefaultPreventWindowResize()
DefaultStatusDisplay()
DefaultScoreRollupMode()
DefaultStatusRollupMode()
DefaultApplyRollupStatusToSuccess()
DefaultFirstScoIsPretest()
DefaultWrapScoWindowWithApi()
DefaultFinishCausesImmediateCommit()
DefaultInternetExplorerCompatibilityMode()
DefaultDebugToCapture()
DefaultCaptureHistory()
DefaultCaptureHistoryDetailed()
DefaultCommMaxFailedSubmissions()
DefaultCommCommitFrequency()
DefaultInvalidMenuItemAction()
DefaultAlwaysFlowToFirstSco()
DefaultLogoutCausesPlayerExit()
DefaultResetRunTimeData()
DefaultOfflineSynchMode()
DefaultValidateInteractionResponses()
DefaultLookaheadSequencerMode()
DefaultScoreOverridesStatus()
DefaultAllowCompleteStatusChange()
DefaultScaleRawScore()
DefaultRollupEmptySetToUnknown()
DefaultReturnToLmsAction()
DefaultUseQuickLookaheadSequencer()
DefaultForceDisableRootChoice()
DefaultRollupRuntimeAtScoUnload()
DefaultForceObjectiveCompletionSetByContent()
DefaultInvokeRollupAtSuspendAll()
DefaultCompletionStatOfFailedSuccessStat()
DefaultSatisfiedCausesCompletion()
DefaultMakeStudentPrefsGlobalToCourse()
DefaultLaunchCompletedRegsAsNoCredit()
DefaultIsCompletionTracked()
DefaultSatisfactionTracked()
DefaultIsScoreTracked()
DefaultIsIncompleteScoreMeaningful()
DefaultIsIncompleteSatisfactionMeaningful()
DefaultSuspendDataMaxLength()
DefaultTimeLimit()
DefaultIsAvailableOffline()
The following integration method related to the Package Properties Editor was also removed:
GetScormEngineUtilsUrl()
The V1 /{tenant}/courses/{courseId}/packagePropertiesLink
endpoint will now return a 404.
The following configuration settings related to the Package Properties Editor were also deleted:
RusticiEngineScriptsUrl
/ScormEngineScriptsUrl
UseCompressedJavascript
X_PackagePropertiesFirst
PackagePropertiesLocation
Removed Web Controls (.NET only)
The following .NET Web Controls were removed:
ActivityTreeControl
FilesystemImportControl
FromScratchImportControl
HttpImportControl
ImportControl
LaunchHistoryControl
LegacyImportControl
UploadImportControl
UploadImportControl2
The following integration methods, which were used by the Web Controls, were removed:
PerformPostUploadActions()
GetFilePathToContent()
Switched default error code for an expired token
Previously an expired token would return a 500
error code unless X_Use403ResponseForExpiredToken
was set to true
. Now, a 403 response will always be returned for expired tokens and X_Use403ResponseForExpiredToken
has been deleted.
Removed old Offline integration methods
The following integration methods were used by the offline extension in older versions, but are no longer used, and were removed in this release:
OfflineGetCatalog()
OfflineGetExternalPackageId()
OfflineGetExternalRegistrationId()
OfflineGetZippedPackageUrl()
Removed legacy integration methods
GetWebPathToContent()
Removed cache settings
ConfigurationCacheMaxEntries
and ConfigurationCacheSeconds
have been removed, as the configuration cache has been replaced with a more general cache. See "Caching" section in the setup and installation docs for available settings.
Require playerConfigurationUrl.json file for Remote Deliver deployments
For those using our RemoteDeliverPageUrl setting in order to configure Engine to launch the player page from a location other than its default in the Engine web application, there is a new requirement. In order to close a security vulnerability in how we pass the configuration url to the player, we now create the path to that relative to the player page itself.
This works fine for all normal deployments, but for those using RemoteDeliverPageUrl, where the player page is on a completely different domain/server from Engine, it will not work. To work around this, there is now a file, playerConfigurationUrl.json, in the /player folder that is deployed on the remote server. This will need to be modified to include the appropriate playerConfigurationUrl property value that points back to the page in Engine (eg, "https://mydomain.com/RusticiEngine/PlayerConfiguration.jsp"). At runtime, for these remote deployments, Engine will retrieve this JSON file to determine what url to use to retrieve the player configuration data.