@@ -373,13 +373,59 @@ void MCNetworkEvalHTTPProxyForURLWithPAC(MCExecContext& ctxt, MCStringRef p_url,
373373// //////////////////////////////////////////////////////////////////////////////
374374
375375void MCNetworkExecLoadUrl (MCExecContext& ctxt, MCStringRef p_url, MCNameRef p_message)
376- {
377- MCS_loadurl (ctxt . GetObject (), p_url, p_message);
376+ // SJT-2014-09-11: [[ URLMessages ]] Send "loadURL" messages on all platforms.
377+ {
378+ // Send "loadURL" message.
379+ MCParameter p1;
380+ p1 . setvalueref_argument (p_url);
381+ MCParameter p2;
382+ p2 . setvalueref_argument (p_message);
383+ p1.setnext (&p2);
384+ // MW-2006-03-03: I've changed this from False, True to True, True to ensure 'target' is returned correctly for libURL.
385+ Exec_stat t_stat = ctxt . GetObject () -> message (MCM_load_url, &p1, True, True);
386+
387+ switch (t_stat)
388+ {
389+ case ES_NOT_HANDLED :
390+ case ES_PASS :
391+ // Either there was no message handler, or the handler passed the message,
392+ // so process the URL in the engine.
393+ MCS_loadurl (ctxt . GetObject (), p_url, p_message);
394+ break ;
395+
396+ case ES_ERROR :
397+ ctxt . Throw ();
398+ break ;
399+
400+ default :
401+ break ;
402+ }
378403}
379404
380405void MCNetworkExecUnloadUrl (MCExecContext& ctxt, MCStringRef p_url)
406+ // SJT-2014-09-11: [[ URLMessages ]] Send "unloadURL" messages on all platforms.
381407{
382- MCS_unloadurl (ctxt . GetObject (), p_url);
408+ // Send "unloadURL" message.
409+ MCParameter p1;
410+ p1 . setvalueref_argument (p_url);
411+ Exec_stat t_stat = ctxt . GetObject () -> message (MCM_unload_url, &p1, False, True);
412+
413+ switch (t_stat)
414+ {
415+ case ES_NOT_HANDLED :
416+ case ES_PASS :
417+ // Either there was no message handler, or the handler passed the message,
418+ // so process the URL in the engine.
419+ MCS_unloadurl (ctxt . GetObject (), p_url);
420+ break ;
421+
422+ case ES_ERROR :
423+ ctxt . Throw ();
424+ break ;
425+
426+ default :
427+ break ;
428+ }
383429}
384430
385431// //////////////////////////////////////////////////////////////////////////////
0 commit comments