After upgrading from 2.7.16 to 3.1.2, SCORM content will no longer load when launched in a new window. Content continues to work normally when embedded in the current window. New window contains error message "A required parameter (scoid) was missing".
1. Create a new SCORM activity with SCORM package containing ismanifest.xml which includes an organization identifier containing a hashtag ("#") within the quotes.
2. Set the SCORM activity to launch in a new window and save the activity.
3. Enable developer level debugging.
4. Attempt to launch the SCORM activity and observe the new window.
5. Confirm that the newly launched window fails to load the SCORM content but contains the message "A required parameter (scoid) was missing" and Debug info contains "Error code: missingparam"
6. Verify that the URL of the newly launched window contains the "¤torg=" text with the hashtag included.
7. Copy URL from the newly launched window
8. Open a new tab from the same browser window that has the existing Moodle session.
9. Paste the URL into the new tab and manually edit the URL to remove the "¤torg=" information. Be sure to leave the "&scoid=" and "&sesskey=" information.
10. Press <Enter> to load the player and verify that the SCORM launches successfully.
In previous versions of Moodle, the launcher stripped out the organization identifier information when passing to the player.php URL of the new window. The URL passed now includes the hashtag ("#") which interferes with the scoid parameter being passed properly back to the application.
If the organization identifier is to be communicated, it must be scrubbed or encoded to ensure that no faulty URL parameters are used.