- function RegisterListener()
- {
- //Register all the correct functions to the listener
- var div_listener = GetiFrameDivEmbed();
- if (div_listener)
- {
- div_listener.addEventListener('loadstart', NaClModuleStartedLoad, true);
- div_listener.addEventListener('load', NaClModuleDidLoad, true);
- div_listener.addEventListener('error', NaClModuleError, true);
- div_listener.addEventListener('progress', NaClModuleLoadUpdate, true);
- div_listener.addEventListener('message', NaClModuleSentMessage, true);
- div_listener.addEventListener('crash', NaClModuleCrash, true);
- window.setTimeout("UpdateTextStatus(0.1)", 100);
- }
- else if (IsUsingNaCl())
- window.setTimeout("RegisterListener()", 200);
- }
-
- function NaClInitModuleVar()
- {
- InitModuleVar();
- if (g_embed_module)
- g_embed_module['SendMessage'] = function(message) { g_embed_module.postMessage(message); }
- }
-
- //-------------------------------------------------------------------------
- // MODULE LOADING FUNCTIONS
- //-------------------------------------------------------------------------
- //Indicate page has been loaded.
- function NaClLoadingInit()
- {
- HideProgressStatus(false);
- //Page did load before NaCl module
- if (!g_embed_module)
- AddTextStatus('Please wait for module loading');
- RegisterListener();
- }
-
- //Module starts load
- function NaClModuleStartedLoad()
- {
- AddTextStatus('Module Started Loading');
- NaClInitModuleVar();
- }
-
- //Module progress event
- function NaClModuleLoadUpdate(event)
- {
- if (event.lengthComputable)
- UpdateProgressBarValue('Please wait, loading', event.loaded, event.total);
- else
- UpdateProgressBarValue('Please wait, calculating load balance ...');
- }
-
- //Indicate module load success.
- function NaClModuleDidLoad()
- {
- if (!g_embed_module)
- NaClInitModuleVar();
-
- //Hide the progress div
- AddTextStatus('Module is live, thank you for your patience.');
- window.setTimeout('HideProgressStatus(true)', GetMaxStatusTime(0.5) * 1000);
- }
-
- //Module did crash
- function NaClModuleCrash(event)
- {
- NaClRestartModule();
- AddTextStatus("Module has crashed ! Restarting ...");
- }
-
- //Module had an error
- function NaClModuleError(event)
- {
- NaClRestartModule();
- AddTextStatus("Module Load/start Error ! Restarting ...");
- }
-
- //Used to restart module on crash/error/load fail ....
- function NaClRestartModule()
- {
- var id_frame_embed = GetFrameData();
- if (id_frame_embed)
- {
- HideProgressStatus(false);
- window.setTimeout('GetFrameData().contentDocument.location.reload(true)', 1000);
- }
- }
-
- //-------------------------------------------------------------------------
- // MODULE COMMUNICATION FUNCTIONS
- //-------------------------------------------------------------------------
-
- //Handle message from the NaCl module
- function NaClModuleSentMessage(message)
- {
- ModuleSentMessage(message);
- }
-
|