diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llappviewer.cpp | 28 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 4 | 
2 files changed, 27 insertions, 5 deletions
| diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 9f8584cd8b..d60c32755d 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1171,14 +1171,18 @@ bool LLAppViewer::init()  	// Because it's the updater, it MUST persist beyond the lifespan of the  	// viewer itself.  	updater.autokill = false; +	std::string updater_file;  #if LL_WINDOWS -	updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "SLVersionChecker.exe"); +	updater_file = "SLVersionChecker.exe"; +	updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, updater_file);  #elif LL_DARWIN  	// explicitly run the system Python interpreter on SLVersionChecker.py  	updater.executable = "python"; -	updater.args.add(gDirUtilp->add(gDirUtilp->getAppRODataDir(), "updater", "SLVersionChecker.py")); +	updater_file = "SLVersionChecker.py"; +	updater.args.add(gDirUtilp->add(gDirUtilp->getAppRODataDir(), "updater", updater_file));  #else -	updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "SLVersionChecker"); +	updater_file = "SLVersionChecker"; +	updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, updater_file);  #endif  	// add LEAP mode command-line argument to whichever of these we selected  	updater.args.add("leap"); @@ -1191,8 +1195,22 @@ bool LLAppViewer::init()  	// ForceAddressSize  	updater.args.add(stringize(gSavedSettings.getU32("ForceAddressSize"))); -		// Run the updater. An exception from launching the updater should bother us. -		LLLeap::create(updater, true); +        try +        { +            // Run the updater. An exception from launching the updater should bother us. +            LLLeap::create(updater, true); +        } +        catch (...) +        { +            LLUIString details = LLNotifications::instance().getGlobalString("LLLeapUpdaterFailure"); +            details.setArg("[UPDATER_APP]", updater_file); +            OSMessageBox( +                details.getString(), +                LLStringUtil::null, +                OSMB_OK); +            // pass this exception to crash handler +            throw; +        }  	}  	else  	{ diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 29d570de64..2f4da4f9b7 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -9595,6 +9595,10 @@ If you continue to have problems, please visit the [SUPPORT_SITE].    <global name="UnsupportedRAM">  - Your system memory does not meet the minimum requirements.    </global> +   +  <global name="LLLeapUpdaterFailure"> +Failed to launch updater service [UPDATER_APP]. Please verify the viewer is installed correctly and has the necessary permissions to run. If you continue to experience issues, please visit the [SUPPORT_SITE]. +  </global>  <!-- these are alert strings from server. the name needs to match entire the server string, and needs to be changed  	whenever the server string changes --> | 
