SAP Knowledge Base Article - Public

2808684 - LMS: Content not communicating or loading with new Course Home.

Symptom

Content that works in the old UI, is not communicating or loading with new UI Course Home enabled.

Environment

SAP SuccessFactors Learning

Reproducing the Issue

Lauching content that contains window.top calls can lead to these issue's.

  1. Press F12 on your keyboard to open your developer tools.
  2. Launch the content with the issue.
  3. Navigate to the "Console Tab" on developer tools. If you see the error "Blocked a frame with origin "" from accessing a cross-origin frame."

Cause

The root cause for this defect is the same for all content types: a cross-domain violation caused by accessing the BizX common header window.

CourseHome windows top.PNG

In order to record the completion of a SCORM-type content, the LMS integrating the content (in this case, Learning) must make available a JavaScript SCORM API. As recommended by SCORM guidelines, Learning attaches this API to the parent window of the content (the "LMS" window in the image above).

To locate the LMS API, the SCORM content executes a search algorithm on the current window hierarchy. In the case of EON content, the search algorithm, which is implemented by content providers, attempts to check the BizX Common Header window before the LMS window.

Because the BizX Common Header is located on a different domain from both LMS and the SCORM content windows, browser cross-domain security restrictions are violated as soon as window access is attempted, and the search algorithm is immediately terminated before finding the LMS API. Without the LMS API, the content is unable to communicate with Learning, so no status changes can be recorded.

Why does this occur only on Course Home?

The issue is now being noticed by customers because Course Home embeds the content directly in the page, at the bottom of the window hierarchy, as opposed to the legacy item details page, which opens content in a new window. The usage of a separate window hierarchy on the legacy details page means that users will not see this issue there.

Resolution

Recommendations for Content Providers

Although the following is the root cause of the issue example, the cross-domain access violation, is the same, the implementations of the content differ. Therefore, recommendation example will be presented here but please note this will not cover every content type or file as they vary from content to content.

Example issue:

The content's API search algorithm does not follow SCORM guidelines. SCORM guidelines recommend that content check for the API on the first iteration of the search algorithm. Please see the SCORM API Discovery Guidelines. In addtion, this article may assist the content developer in writing their discovery algorithm. Instead of checking for the API on the first available window, the content recurses into the second parent window before making any API checks. See /static/core/library/course/course.js. The search algorithm begins by calling lookupScormApi. It then calls getScormApi with the first parent, which in turns calls getScormAPIRecursive on the next parent:// search API in parent:var scormAPI = this.getScormAPIRecursive( objRootWin.parent, version );

Instead, this could become:

// search API in parent:

var scormAPI = this.getScormAPIRecursive( objRootWin, version );  // Check the root window first. The LMS API will be located there.

Future Actions by Learning

We have been informed by Product Management that we have planned an enhancement for Course Home which will provide customers with the option to open content in a new window, rather than inline on the same page. Once this enhancement is implemented and turned on by affected customers, this issue will no longer occur, as the content will open in a separate window hierarchy. It would no longer able to unintentionally access the BizX Common Header window. At this time there is no timeline for implementing this enhancement. This will be commuincated through release notes by Product Management.

See Also

2560044 - Course Home view is not loading for all items

2692689 - Course Home - Unable to start content

2692574 - Course Home - SCORM content reloads when opening and closing content menu

Currently Raised Enhancanment Requests:

Influence Page.

Course Home details in the LMS Release notes:

Community Release notes page.

Keywords

learning, scorm 2004, course home, lms, add new content, object, package, navigation, Console Tab, Blocked a frame with origin, from accessing a cross-origin frame , KBA , LOD-SF-LMS-CNT , Content , Problem

Product

SAP SuccessFactors HCM Core 1902 ; SAP SuccessFactors Learning all versions