summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermedia.cpp
AgeCommit message (Collapse)Author
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-03-13Large changes to the LLCurl::Responder API, as well as pulling in some ↵Don Kjer
changes to common libraries from the server codebase: * Additional error checking in http handlers. * Uniform log spam for http errors. * Switch to using constants for http heads and status codes. * Fixed bugs in incorrectly checking if parsing LLSD xml resulted in an error. * Reduced spam regarding LLSD parsing errors in the default completedRaw http handler. It should not longer be necessary to short-circuit completedRaw to avoid spam. * Ported over a few bug fixes from the server code. * Switch mode http status codes to use S32 instead of U32. * Ported LLSD::asStringRef from server code; avoids copying strings all over the place. * Ported server change to LLSD::asBinary; this always returns a reference now instead of copying the entire binary blob. * Ported server pretty notation format (and pretty binary format) to llsd serialization. * The new LLCurl::Responder API no longer has two error handlers to choose from. Overriding the following methods have been deprecated: ** error - use httpFailure ** errorWithContent - use httpFailure ** result - use httpSuccess ** completed - use httpCompleted ** completedHeader - no longer necessary; call getResponseHeaders() from a completion method to obtain these headers. * In order to 'catch' a completed http request, override one of these methods: ** httpSuccess - Called for any 2xx status code. ** httpFailure - Called for any non-2xx status code. ** httpComplete - Called for all status codes. Default implementation is to call either httpSuccess or httpFailure. * It is recommended to keep these methods protected/private in order to avoid triggering of these methods without using a 'push' method (see below). * Uniform error handling should followed whenever possible by calling a variant of this during httpFailure: ** llwarns << dumpResponse() << llendl; * Be sure to include LOG_CLASS(your_class_name) in your class in order for the log entry to give more context. * In order to 'push' a result into the responder, you should no longer call error, errorWithContent, result, or completed. * Nor should you directly call httpSuccess/Failure/Completed (unless passing a message up to a parent class). * Instead, you can set the internal content of a responder and trigger a corresponding method using the following methods: ** successResult - Sets results and calls httpSuccess ** failureResult - Sets results and calls httpFailure ** completedResult - Sets results and calls httpCompleted * To obtain information about a the response from a reponder method, use the following getters: ** getStatus - HTTP status code ** getReason - Reason string ** getContent - Content (Parsed body LLSD) ** getResponseHeaders - Response Headers (LLSD map) ** getHTTPMethod - HTTP method of the request ** getURL - URL of the request * It is still possible to override completeRaw if you want to manipulate data directly out of LLPumpIO. * See indra/llmessage/llcurl.h for more information.
2012-11-20Automated merge with https://bitbucket.org/lindenlab/viewer-developmentDave Parks
2012-10-25MAINT-1275 [SECURITY] Web session tokens saved in SecondLife.logKelly Washington
reviewed with Simon
2012-10-10Introduce new LLDir::findSkinnedFilenames() method. Use as needed.Nat Goodspeed
In a number of different places, for different reasons, the viewer wants to load a UI-related file that might be overridden by a non-default skin; and within that skin, might further be overridden by a non-default language. Apparently, for each of those use cases, every individual developer approached it as an entirely new problem, solving it idiosyncratically for that one case. Not only is this a maintenance problem, but it rubs one's nose in the fact that most such solutions consider only a subset of the relevant skin directories. Richard and I evolved an API intended to address all such cases: a central LLDir method returning a list of relevant pathnames, from most general to most localized, filtered to present only existing files; plus a couple of convenience methods to specifically obtain the most general and most localized available file. There were several load-skinned-file methods (LLFloater::buildFromFile(), LLPanel::buildFromFile() and LLUICtrlFactory::createFromFile() -- apparently cloned-and-modified from each other) that contained funky bolted-on logic to output the loaded data to an optional passed LLXMLNodePtr param. The trouble is that passing that param forced each of these methods to subvert its normal search: specifically for that case, it needed to find the baseline XML file instead of the localized one. Richard agreed that for the intended usage (reformatting XML files) we should use XML schema instead, and that the hacky functionality should be removed. Remove it. Also remove LLUICtrlFactory::getLocalizedXMLNode(), only used for those three special cases. Some callers explicitly passed the optional LLXMLNodePtr param as NULL. Remove that. Remove LLFloaterUIPreview::displayFloater(save) param, which relied on the optional output LLXMLNodePtr param. Make onClickSaveFloater() and onClickSaveAll() emit popupAndPrintWarning() about discontinued functionality. Recast LLFloater::buildFromFile(), LLPanel::buildFromFile(), LLUICtrlFactory::createFromFile(), LLNotifications::loadTemplates(), LLUI::locateSkin(), LLFontRegistry::parseFontInfo(), LLUIColorTable::loadFromSettings(), LLUICtrlFactory::loadWidgetTemplate(), LLUICtrlFactory::getLayeredXMLNode(), LLUIImageList::initFromFile(), LLAppViewer::launchUpdater() and LLMediaCtrl::navigateToLocalPage() to use findSkinnedFilenames(). (Is LLAppViewer::launchUpdater() ever called any more? Apparently so -- though the linux-updater.bin logic to process the relevant command-line switch has been disabled. Shrug.) (Is LLMediaCtrl::navigateToLocalPage() ever used?? If so, why?) Remove LLUI::setupPaths(), getXUIPaths(), getSkinPath() and getLocalizedSkinPath(). Remove the skins/paths.xml file read by setupPaths(). The only configuration it contained was the pair of partial paths "xui/en" and "xui/[LANGUAGE]" -- hardly likely to change. getSkinPath() specifically returned the first of these, while getLocalizedSkinPath() specifically returned the second. This knowledge is now embedded in findSkinnedFilenames(). Also remove paths.xml from viewer_manifest.py. Remove injected xui_paths from LLFontGL::initClass() and LLFontRegistry::LLFontRegistry(). These are no longer needed since LLFontRegistry can now directly consult LLDir for its path search. Stop passing LLUI::getXUIPaths() to LLFontGL::initClass() in LLViewerWindow's constructor and initFonts() method. Add LLDir::append() and add() methods for the simple task of combining two path components separated by getDirDelimiter() -- but only if they're both non-empty. Amazing how often that logic is replicated. Replace some existing concatenations with add() or append(). New LLDir::findSkinnedFilenames() method must know current language. Allow injecting current language by adding an LLDir::setSkinFolder(language) param, and pass it where LLAppViewer::init() and initConfiguration() currently call setSkinFolder(). Also add LLDir::getSkinFolder() and getLanguage() methods. Change LLFLoaterUIPreview's LLLocalizationResetForcer helper to "forcibly reset language" using LLDir::setSkinFolder() instead of LLUI::setupPaths(). Update LLDir stubs in lldir_stub.cpp and llupdaterservice_test.cpp. Add LLDir::getUserDefaultSkinDir() to obtain often-overlooked possible skin directory -- like getUserSkinDir() but with "default" in place of the current skin name as the last path component. (However, we hope findSkinnedFilenames() obviates most explicit use of such individual skin directory pathnames.) Add LLDir unit tests for new findSkinnedFilenames() and add() methods -- the latter exercises append() as well. Tweak indra/integration_tests/llui_libtest/llui_libtest.cpp for all the above. Notably, comment out its export_test_floaters() function, since the essential LLFloater::buildFromFile(optional LLXMLNodePtr) functionality has been removed. This may mean that llui_libtest.cpp has little remaining value, not sure.
2012-02-09fix for cached controls in media sortingRichard Linden
2012-02-09EXP-1880 WIP Update Media affects framerate even when Media is disabled.Richard Linden
2012-02-03EXP-1513 FIX Underscore ( _ ) fails to show in first chat entry in Local ChatRichard Linden
EXP-1854 FIX Text positioning in mini inspector a couple pixels too low
2011-12-12Merge with latest from viewer-experienceLeslie Linden
2011-12-09Automated merge with ssh://hg.lindenlab.com/richard/viewer-experienceRichard Linden
2011-12-08Automated merge with http://hg.secondlife.com/viewer-developmentRichard Linden
2011-12-07toned down spammy error message when slplugin isn't workingRichard Linden
2011-12-06Updated to trigger a 'get' to establish marketplace session cookie when ↵Leslie Linden
outbox panel created.
2011-12-06merge changes for storm-591Oz Linden
2011-12-05First pass at connecting to the new marketplace APILeslie Linden
2011-12-05Merge with viewer-experienceLeslie Linden
2011-12-02made slplugin less spammy when it fails to launchRichard Linden
2011-11-24merge changes for vmrg-193Oz Linden
2011-11-14Build fix from bad mergeLeslie Linden
2011-11-14MergeLeslie Linden
2011-11-10Automated merge with http://hg.secondlife.com/viewer-developmentRichard Linden
2011-11-08merge changes for vmrg-182Oz Linden
2011-11-08merge changes for vmrg-181Oz Linden
2011-11-07finished removing remnants of media browserRichard Linden
2011-11-04SH-2652 Don't allocate 6000+ strings every frameDave Parks
2011-11-02fix for SH-2559: [crashhunters] crash in LLPluginMessage::generate()Xiaohong Bao
discussed and reviewed by callum.
2011-11-02STORM-1580 WIP Initial commit for PO review.Vadim ProductEngine
2011-10-28STORM-591 Fix minor merge error regressionJonathan Yap
2011-10-28STORM-591 As a music fan, I want audio to fade in gently so my immersion is ↵Jonathan Yap
increased Co-written with Robin Cornelius
2011-10-28Merge with headcallum
2011-10-27moved zoom factor management to llviewermediaimplRichard Linden
2011-10-26Merge from dd repoLeslie Linden
2011-10-25EXP-1471 WIP Add support for zooming web pages by a scale facxtorcallum
2011-10-07* Updated to no longer perform user_status marketplace query for DD.Leslie Linden
* Fixed setting to always display the inbox inventory panel.
2011-09-16EXP-1169 FIX -- No synch error icon given on Outbox on Agni where API does ↵Leslie Linden
not exist * Moved marketplace URL related functions into a new file llmarketplacefunctions.cpp/h. This will the future home of more marketplace-related functions. * Disabled sync button when the marketplace API is unavailable.
2011-09-15* Re-enabling outboxLeslie Linden
2011-09-08Disable merchant outbox context menuLeslie Linden
2011-09-07Merge from viewer-experienceLeslie Linden
2011-09-06* Disabling outbox for now.Leslie Linden
2011-08-26EXP-1111 FIX LLQtWebKit (and related media system) should log events, ↵callum
progress etc. to make debugging problems easier
2011-08-19EXP-840 FIX -- Create outbox panels to help the user get started on the ↵Leslie Linden
marketplace and to indicate drag and drop targets. EXP-858 PROGRESS -- Outbox sync failure error handling EXP-908 FIX -- Hide outbox when appropriate EXP-1062 FIX -- Add modal dialog for outbox sync complete EXP-1096 FIX -- Extra space below Received Items panel for an account that does not have a Merchant Account setup, no outbox display EXP-1104 FIX -- User can activate Merchant Outbox synch button when outbox is empty * Added separate class for outbox view to support error tag rendering * Added confirmation for sync complete. * Added different outbox messages for empty outbox, non-merchant and error: merchant but no outbox * Progress on a bunch of other fronts.
2011-08-02* Fixed up outbox UI alignment to match inboxleslie@leslie-HPz600.lindenlab.com
* Added outbox item count to outbox button title * Updated sync loading indicator to keep moving until http request complete * Updated outbox panel display to use user_status http get response * Removed inbox/outbox folder name hack from LLInventoryPanel
2011-07-29attempting to do the outbox importLeyla Farazha
2011-07-19EXP-932 Implement system that fades from login page to (either) intro screen ↵Leyla Farazha
or loading screen instead of using a hard cut EXP-938 Turn off in-world audio until fade from intro/loading page complete EXP-939 Fade from intro/loading page to world, not to image of last login
2011-07-07EXP-985 FIX -- Always show Inbox panel if "Received Items" folder existsLeslie Linden
The presence of the inbox folder now forces the "Received Items" folder to be visible. The same logic applies to the outbox as well. Reviewed by Richard.
2011-06-29EXP-944 Add additional logging for troubleshooting EXP-930 - DD inbox not ↵Leyla Farazha
showing on linux viewer
2011-06-23Automated merge with ssh://hg.lindenlab.com/richard/viewer-experienceRichard Linden
2011-06-22making it so that inbox shows up quickerLeyla Farazha
2011-06-09EXP-676 FIX As a web developer, I want to access information about the ↵callum
current state of the SL client, such as avatar location
2011-05-25Automated merge with http://hg.secondlife.com/viewer-developmentRichard Linden