Commit Graph

71 Commits (bdc94eac5cda3dd6700a1cd462178b7ac3c4cfec)

Author SHA1 Message Date
Ansariel cb10f3b149 Merge branch 'DRTVWR-570-maint-Q' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	doc/contributions.txt
#	indra/llcommon/threadsafeschedule.h
#	indra/llwindow/llwindowmacosx-objc.mm
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/llappdelegate-objc.mm
#	indra/newview/llfilepicker_mac.mm
#	indra/newview/llsettingsvo.cpp
#	indra/newview/llvosky.cpp
2022-11-11 12:15:54 +01:00
Rye Mutt d628a537f5 Fix leaks in mac IME 2022-10-28 18:51:11 -04:00
Kitty Barnett 95c852a2a1 [FIXED] Mac build with crashreporting enabled 2021-11-24 01:01:53 +01:00
Ansariel 9718a38e9a Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2021-07-21 03:07:48 +02:00
Andrey Lihatskiy 6c8e6f033b Merge branch 'master' into DRTVWR-521-maint
# Conflicts:
#	autobuild.xml
#	indra/llcommon/llerror.cpp
#	indra/llui/llnotifications.h
#	indra/newview/llappviewer.cpp
#	indra/newview/llappviewermacosx.cpp
2021-07-20 02:48:05 +03:00
Ansariel ec8bef8e9c Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
# Conflicts:
#	indra/cmake/bugsplat.cmake
#	indra/newview/llappdelegate-objc.mm
2021-07-06 10:32:52 +02:00
Nicky a45f1e35ee OSX; Bugsplat 2021-07-05 15:16:15 -04:00
Ansariel 826ee26272 Merge branch 'DRTVWR-521-maint' of https://bitbucket.org/lindenlab/viewer 2021-06-08 19:55:43 +02:00
Mnikolenko Productengine 74711a2cf2 SL-15196 Attach correct log file to Bugsplat report 2021-05-26 14:57:31 +03:00
Ansariel 9e415cdbb2 Merge branch 'DRTVWR-516-maint' of https://bitbucket.org/lindenlab/viewer 2021-05-25 11:03:48 +02:00
Nat Goodspeed fd1545197a SL-10297: Merge branch 'sl-10297-oz' into sl-10297.
Bring in Oz's tweaks to the way BugSplat is engaged and tested, plus a few
other miscellaneous goodies.
2021-05-12 13:56:19 -04:00
Ansariel 6c587d437d Merge branch 'DRTVWR-515-maint' of https://bitbucket.org/lindenlab/viewer 2020-12-02 08:17:58 +01:00
Mnikolenko ProductEngine 12d2bf4786 SL-14286 fixed crash when closing viewer while file picker is open 2020-11-18 21:09:57 +02:00
Ansariel 6afd505fa8 Merge branch 'DRTVWR-503-maint' of https://bitbucket.org/lindenlab/viewer 2020-05-05 15:24:10 +02:00
Mnikolenko Productengine 672fa8002d SL-1431 settings_per_account.xml file should be attached to crashreport 2020-03-24 19:25:48 +02:00
Ansariel 462d420ced No need to comment this out - this is default LL code now 2019-10-21 18:13:16 +02:00
Tonya Souther 00b2bb837a macOS build fixes. 2019-10-20 20:37:06 -05:00
Oz Linden 2961fea693 Rename uploaded log file to get Bugsplat to server as text/plain 2019-10-08 10:15:19 -04:00
Ansariel bed0ff96ba Merge viewer-neko 2019-06-22 21:01:07 +02:00
Mnikolenko ProductEngine b813814202 SL-11432 FIXED [OSX] Avatar is spinning when pressing Alt+D+Command and then releasing D key 2019-06-20 15:41:27 +03:00
Oz Linden e711376cc7 assorted cleanup 2019-06-05 14:27:48 -04:00
Ansariel ee34ea1f4b Merge viewer-bugsplat 2018-10-27 00:50:58 +02:00
Nat Goodspeed 9cdcef4d50 DRTVWR-447: Use new attachmentsForBugsplatStartupManager SDK method
to attach user settings file and static debug info file to Mac crash reports,
as well as SecondLife.log, just like Windows crash reports.
2018-10-16 16:53:06 -04:00
Ansariel 6bd724e65a Merge viewer-bugsplat 2018-08-31 09:17:34 +02:00
Nat Goodspeed e674f11757 DRTVWR-447: Add (some) metadata to Mac crash reports.
This required reordering certain operations during Mac viewer startup. Split
llappviewermacosx.cpp's initViewer() function into constructViewer() (which
instantiates LLAppViewerMacOSX) and initViewer() (which calls
LLAppViewerMacOSX::init()).

llappdelegate-objc.mm's applicationDidFinishLaunching override now calls
[BugsplatStartupManager start] between constructViewer() and initViewer(): we
want constructViewer() to have set up the logging subsystem so we can log the
actions of BugsplatStartupManagerDelegate override methods, but otherwise we
want BugsplatStartupManager in place as early as possible to catch any early
crashes. Besides, initViewer() ends up overwriting the static_debug_info.log
on which we depend for the *previous* run's crash metadata.

Move the code that initializes the pathname of the static_debug_info.log file
from LLAppViewerMacOSX::init() to the LLAppViewerMacOSX() constructor, since
BugsplatStartupManagerDelegate override methods need to read (the previous
run's) file.

Add code to applicationLogForBugsplatStartupManager override to set new
BugsplatMac 1.0.6 properties userName and userEmail.

Don't log empty fields from static_debug_info.log if we couldn't read it.
2018-08-23 12:31:54 -04:00
Nat Goodspeed 787053ffeb DRTVWR-447: Add logging to BugsplatMac override methods. 2018-08-22 13:26:19 -04:00
Nat Goodspeed 7dc014474d DRTVWR-447: Attempt to post BugSplat metadata with Mac crash reports.
Introduce CrashMetadata, an LLSingleton in llappviewermacosx.cpp, declared in
llappviewermacosx-for-objc.h and accessed by the various
BugsplatStartupManagerDelegate override methods. CrashMetadata is populated by
reading the previous (presumably crashed) run's static_debug_info.log file.

This replaces the previous getOldLogFilePathname(), getFatalMessage() and
getAgentFullname() functions. To extend that suite for additional metadata,
not only would we have to keep adding new free functions, but we'd have to
keep rereading the static_debug_info.log file.

Override the new applicationKeyForBugsplatStartupManager,
defaultUserNameForBugsplatStartupManager,
defaultUserEmailForBugsplatStartupManager methods to extract relevant fields
from CrashMetadata. Change applicationLogForBugsplatStartupManager and
attachmentForBugsplatStartupManager to do the same.

Enhance llviewerregion.cpp to update the static_debug_info.log file every
time we enter a new region.
2018-08-22 10:48:29 -04:00
Ansariel 0f121d042d Merge viewer-bugsplat 2018-07-27 11:19:42 +02:00
Nat Goodspeed cd52724ef8 DRTVWR-447: Suppress BugSplat UI; auto-fill certain BugSplat data.
Direct BugSplat to send crash reports without prompting, on both Windows and
Mac.

Add a mechanism by which code called after LL_ERRS() can retrieve the fatal
log message string. (How did the crash logger extract that for Linden crash
logging?)

Add that fatal message to crash reports on Windows. But as BugsplatMac is
engaged only on the run _after_ the crash, we no longer have that message in
memory.

Also add user name and region location to Windows crash reports. On Mac, (a)
we don't have the information from the previous run and (b) BugsplatMac
doesn't provide an API to attach that information to the crash report.

Add Mac logging to indicate the success or failure of sending the crash
report. Add Windows logging to indicate we're about to send.
2018-06-28 21:49:07 -04:00
Nat Goodspeed d26c931ae2 SL-821: Send the SecondLife.log from the previous (crashed) run.
Also clean up log messages.
2018-06-19 15:08:56 -04:00
Nat Goodspeed 3376b2acfb SL-821: Another Objective-C++ magic incantation from BugSplat support. 2018-06-19 13:34:08 -04:00
Nat Goodspeed c9898f1b69 SL-821: Try again to override BugSplat Obj-C methods. 2018-06-19 09:37:28 -04:00
Nat Goodspeed 6e790fc27d SL-821: Add logging in the macOS BugSplat attachment override. 2018-06-18 16:38:49 -04:00
Nat Goodspeed b889c15cdd SL-821: Fix BugSplat attachment method override per BugSplat support.
The example code on the BugSplat documentation page
https://www.bugsplat.com/docs/platforms/os-x#configuration
omits certain essential Objective-C++ boilerplate incantations. Adding them
at least compiles successfully.
2018-06-18 12:57:12 -04:00
Nat Goodspeed 1d7687efb2 SL-821: Fix up Objective-C++ syntax errors. 2018-06-15 17:58:00 -04:00
Nat Goodspeed 448e82f39c SL-821: Try to add SecondLife.log file to Mac BugSplat crash report.
Introduce new header file llappviewermacosx-for-objc.h to publish for
llappdelegate-objc.mm and other Objective-C++ consumers the free functions in
llappviewermacosx.cpp they consume. These were never before declared in any
header file. Apparently, to date, we've been trusting to luck that
Objective-C++ will infer the correct signature from calls -- and that the
calls are correct with respect to the function definitions.  :-P

This gives us a place to introduce a new getLogFilePathname() function to
query LLDir. (We don't simply #include "lldir.h" because of the pervasive use
of BOOL in viewer headers; BOOL means something very different in Objective-C++.)
2018-06-15 16:48:20 -04:00
Nat Goodspeed 63fe7d802a SL-821, SL-826: Use BUGSPLAT_DB from environment on Windows and Mac.
On TeamCity, set BUGSPLAT_DB from build-secrets.

Use the presence of $BUGSPLAT_DB, rather than a new CMake BUGSPLAT option, to
control whether CMake searches for BugSplat -- and passes LL_BUGSPLAT into C++.

When BUGSPLAT_DB is present, make viewer_manifest.py set "BugSplat DB" in
build_data.json, and "BugsplatServerURL" in Mac Info.plist.

Make llappviewerwin32.cpp read "BugSplat DB" from build_data.json.

Add placeholders for Mac hooks to suppress BugSplat prompt and send
SecondLife.log.
2018-05-25 12:09:50 -04:00
Nat Goodspeed 3a885e9cb7 SL-821: Use @import, not #import. 2018-05-21 13:29:16 -04:00
Nat Goodspeed 881bdec4b3 SL-821: Introduce macOS BugSplat initialization. 2018-05-21 13:07:44 -04:00
Nicky 985730a52c Merge. 2017-05-18 17:40:24 +02:00
Nat Goodspeed ae0b3149ba DRTVWR-418: Fix a round of compile errors surfaced by -std=c++11.
These are mostly things that were in fact erroneous, but accepted by older
compilers.

This changeset has not yet been built with Visual Studio 2013 or Linux gcc,
even with -std=c++11.

This changeset has not been built *without* -std=c++11. It should be used in
conjunction with a corresponding change to LL_BUILD_DARWIN_BASE_SWITCHES in
viewer-build-variables/variables.

This is a work in progress. We do not assert that this changeset completes the
work needed to turn on -std=c++11, even on the Mac.
2017-02-23 16:49:49 -05:00
Ansariel c182741596 Merge viewer-lynx 2016-11-16 09:55:54 +01:00
Mnikolenko Productengine aaf935267d MAINT-6600 FIXED Mac Viewer Does Not Handle Bad Arguments Gracefully 2016-10-11 13:16:03 +03:00
Nicky d7a0835432 Merge. 2016-09-26 21:12:34 +02:00
Nat Goodspeed 464a0df4c1 DRTVWR-418: Unify control flow through LLAppViewer across platforms.
The LLApp API used to consist of init(), mainLoop(), cleanup() methods. This
makes sense -- but on Mac that structure was being subverted. The method
called mainLoop() was in fact being called once per frame. There was
initialization code in the method, which (on Mac) needed to be skipped with an
already-initialized bool. There was a 'while' loop which (on Mac) needed to be
turned into an 'if' instead so the method would return after every frame.

Rename LLApp::mainLoop() to frame(). Propagate through subclasses LLAppViewer
and LLCrashLogger. Document the fact that frame() returns true to mean "done."
(This was always the case, but had to be inferred from the code.)

Rename the Mac Objective-C function mainLoop to oneFrame. Rename the C++ free
function it calls from runMainLoop() to pumpMainLoop(). Add comments to
llappdelegate-objc.mm explaining (inferred) control flow.

Change the Linux viewer main() and the Windows viewer WINMAIN() from a single
LLAppViewer::mainLoop() call to repeatedly call frame() until it returns true.

Move initialization code from the top of LLAppViewer::frame() to the init()
method, where it more properly belongs. Remove corresponding
mMainLoopInitialized flag (and all references) from LLAppViewer.

Remove 'while (! LLApp::isExiting())' (or on Mac, 'if (! LLApp::isExiting())')
from LLAppViewer::frame() -- thus unindenting the whole body of the 'while'
and causing many lines of apparent change. (Apologies to reviewers.)

There are four LLApp states: APP_STATUS_RUNNING, APP_STATUS_QUITTING,
APP_STATUS_STOPPED and APP_STATUS_ERROR. Change LLAppViewer::frame() return
value from (isExiting()) (QUITTING or ERROR) to (! isRunning()). I do not know
under what circumstances the state might transition to STOPPED during a
frame() call, but I'm quite sure that if it does, we don't want to call
frame() again. We only want a subsequent call if the state is RUNNING.

Also rename mainLoop() method in LLCrashLogger subclasses
LLCrashLoggerWindows, LLCrashLoggerMac, LLCrashLoggerLinux. Of course it's
completely up to the frame() method whether to yield control; none of those in
fact do. Honor protocol by returning true (frame() is done), even though each
one's main() caller ignores the return value.

In fact LLCrashLoggerWindows::mainLoop() wasn't using the return protocol
correctly anyway, returning wParam or 0 or 1 -- possibly because the return
protocol was never explicitly documented. It should always return true: "I'm
done, don't call me again."
2016-06-30 16:51:50 -04:00
Tonya Souther cc4ef52b97 Build fixes for C++11 on OS X. Includes several rebuilt libraries. 2016-06-21 15:57:18 -05:00
Ansariel 3192fe832f Merge viewer-quickgraphics 2016-03-08 01:41:31 +01:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Brad Payne (Vir Linden) fe5ff3e74a merge 2014-12-01 16:21:52 -05:00
Ansariel e52d57cba2 Merge LL V3.7.23 2015-01-15 15:44:43 +01:00