SAP Knowledge Base Article - Public

2876002 - Changes to course tracking with Google Chrome 80,83 and Edge 83 release

Symptom

  • Per some reports on Google Chrome release (Chrome 80) on October 22nd there may impact to course tracking.
  • Courses which are authored to be marked complete on-exit or posting data to an external URL may no longer report as complete. Similarly, learners' progression through courses might also not be saved. Systems such as SuccessFactors Learning may fail to receive completions under Chrome.
  • There are some changes to Google Chrome release (Chrome 83) on May 19th that might impact course tracking. 
  • Specifically to changes in Chrome 83 are the commit calls for SCORM 1.2 and SCORM 2004 when the content window is closed.
  • The issue is also occurring in Edge 83 since it is build off the same chromium codebase.
  • 3 impact areas – Web, Cross Domain Proxlet and Offline Player.

Environment

SAP SuccessFactors Learning

Resolution

NOTE (Updated on September 8th): The patch applied the weekend of August 28th will resolve this in all Preview/Stage tenants. Production environments now have had the patch enabled (backend configuration change) as of September 7th (as it was a backend change there is no additional patch installation history on the environment).  If you are still facing issues post September 7th on any b2005 patch 20 environment, please make sure that the root cause of the completions not being passed are due to the browser and not the content by testing in another browser such as Firefox/Internet Explorer. This patch will not fix the issues if the users are using Offline Player or the Proxlet (Cross Domain Solution (CDS)).  We will update this KBA with more information as it is shared.

Please see below for more technical information. Near the bottom there is a temporary workaround that can be applied on a browser level. If possible, you can update the content to not use synchronous API calls as another workaround.

Chrome 80

Starting with version 80, Chrome will disallow synchronous API requests made on page dismissal. To clarify, this means two things:

  1. This change only affects synchronous requests.
  2. Chrome will only block synchronous requests made from an exiting browsing context. For example, synchronous requests issued during the "beforeunload", "unload", "pagehide", and "visibilitychange" browser events will be blocked.
  • For all SCORM content, the closing window issues no requests. Instead, to record content status changes, the content calls a local JavaScript API from the parent SuccessFactors Learning browser context. The SuccessFactors Learning browser context then issues a request to the server. The closing window never issues a request itself, and cannot be affected by the changes being made to Chrome.
  • For AICC content, two paths are available to content developers for recording status changes.
  • Similar to SCORM, the content calls a local JavaScript API from the Learning browser context. In this case, no API calls are issued from the closing window.
  • The content issues an HTTP request to the server. However, the AICC standard does not require that such requests be made synchronously.

It is possible that some content developer has chosen to implement their AICC content using synchronous HTTP requests. In such a case, the content developer must update their course to issue asynchronous requests.

Customers should be made aware that AICC content configured to issue synchronous requests may fail in Chrome 80. As iContent is self-managed (unless you have a PCM contract, customers are responsible to inspect their own AICC content to see if there are issues with synchronous requests. If any AICC content does rely on synchronous requests to SuccessFactors Learning, reach out to your respective content vendor.

Other content types such as browser, document, etc, will not be affected by Chrome 80 as they do not rely on synchronous behavior.

Chrome 83

This issue is the same around the update the started with version 80. This is a block on the browser that affect synchronous requests. You might see an error when closing the content window such as:

  • jslet-common-logging.js;mod=7770ee83:81 Fri May 22 2020 11:14:30 GMT-0600 (Mountain Daylight Time) [DEBUG]: PlateauSCORMAPI LMSCommit('')
  • jslet-common-logging.js;mod=7770ee83:106 (2) ["Fri May 22 2020 11:14:30 GMT-0600 (Mountain Daylig…RROR]:PlateauSCORMAPI Problem committing LMS data", "undefined"]
  • jslet-common-logging.js;mod=7770ee83:81 Fri May 22 2020 11:14:30 GMT-0600 (Mountain Daylight Time) [DEBUG]: PlateauSCORMAPI setError(101, diagnostic == 'undefined')
  • jslet-common-logging.js;mod=7770ee83:81 Fri May 22 2020 11:14:30 GMT-0600 (Mountain Daylight Time) [DEBUG]: PlateauSCORMAPI  returning 'false'

Please get with your IT team to update the Chrome setting "Allows synchronous XHR rquests in page dismissal" which will allow the calls to proceed.

Workaround: This can be done per browser by following these steps:

  1. Open Chrome browser
  2. Go to chrome://flags/#allow-sync-xhr-in-page-dismissal
  3. Change the drop-down selection from “Default” or “Disabled” to “Enabled”

 

Edge 83

This can be done per browser by following these steps:

  1. Open Edge browser
  2. Go to edge://flags/#allow-sync-xhr-in-page-dismissal
  3. Change the drop-down selection from “Default” or “Disabled” to “Enabled”

 This should be done from a Global Registry setting or Chrome Group Policy which your IT team can assist. SAP Support cannot provide guidance on making these changes.

See Also

LRN-69939

Keywords

Chrome 80, AICC Wrapper synchronous XHR, new, release, update, change, courses, api, standards, lms, 83, scorm, scorm2004, 1.2, Edge 83 , KBA , LOD-SF-LMS-CNT , Content , Problem

Product

SAP SuccessFactors Learning all versions