summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermedia.cpp
AgeCommit message (Collapse)Author
2010-04-29Incorporate suggestions from Richard's review of the LLPlugin changes.Monroe Linden
Use LLMutexLock (stack-based locker/unlocker) for the straightforward cases instead of explicit lock()/unlock(). There are still a couple of cases (one overlapping lock lifetime and two loops that unlock the mutex to call another function inside the loop) where I'm leaving explicit lock/unlock calls. Rename LLPluginProcessParent::sPollThread to sReadThread, for consistency. Made the LLPluginProcessParent destructor hold mIncomingQueueMutex while removing the instance from the global list -- this should prevent a possible race condition in LLPluginProcessParent::poll(). Removed a redundant check when calling LLPluginProcessParent::setUseReadThread().
2010-04-28Media sound attentuation first passLeyla Farazha
reviewed by Richard
2010-04-27Architectural changes to LLPlugin message processing.Monroe Linden
LLPluginProcessParent can now optionally use a separate thread for reading messages from plugin sockets. If this is enabled, it will spawn a single thread and use apr_pollset_poll to wake up the thread when incoming data arrives instead of polling all the descriptors round-robin every frame. This should be somewhat more efficient, and should also allow blocking requests from plugins to be serviced much more quickly (once we start using them). This is currently disabled by default, until it's had a bit more focused testing on multiple platforms. Hooked up the switch to use the message read thread to the PluginUseReadThread debug setting and an item in the Advanced menu in the viewer, and to a checkbox in the UI in llmediaplugintest. Updated some debug logging in the plugin system to have appropriate tags and not log dire-looking warnings during normal operation. LLPluginProcessParent now once again explicitly kills plugin processes (instead of just closing their sockets and waiting for them to exit). The problem we were attempting to solve by not doing the kill (letting the webkit plugin write its cookie file on exit) has been solved another way. LLPluginProcessParent::sendMessage() now attempts to write the outgoing message to the socket immediately instead of waiting for the next frame. This should reduce the latency of sending plugin messages. Added a separate fast timer for LLViewerMedia::updateMedia().
2010-04-20Fixed EXT-6542(normal) - [HARD CODED] - Land-Info, Medien: none/none needs ↵Dmitry Zaporozhan
to be localized Added "DefaultMimeType" string to strings.xml to make "none/none" mime type localizable. Replaced all occurrences of "none/none" string with call to static method. Reviewed by Vadim Savchuk - https://codereview.productengine.com/secondlife/r/265/ --HG-- branch : product-engine
2010-04-14Fix for incorrect handling of an OpenID url containing a port numberMonroe Linden
The code was using the "authority" part of the URL returned by LLURL when constructing the cookie's domain, which incorrectly included the port number. This change makes sure any port number and username/password that might be in the authority are stripped from the string before handing it to the cookie code. Reviewed by Gino at http://codereview.lindenlab.com/1297006
2010-04-14merge from viewer-hotfixTofu Linden
2010-04-13Fix for EXT-6750 (disabled attachment media still plays).Monroe Linden
LLViewerMediaImpl::shouldShowBasedOnClass() was always returning true for focused media. This was incorrect, since it made click-focusing on media override the class-based disable preferences. Reviewed by Callum at http://codereview.lindenlab.com/1178023
2010-04-02Automated merge with ssh://hg.lindenlab.com/q/viewer-trunkXiaohong Bao
2010-04-02add some debug code for EXT-5394: Crash in ↵Xiaohong Bao
LLViewerMediaImpl::calculateInterest()
2010-04-01EXT-3531 - Ctrl-p doesn't work reliably on loginRichard Linden
moved gEditMenuHandler handling to LLEditMenuHandler destructor
2010-04-01Checker: CHECKED_RETURNTofu Linden
Function: LLViewerMediaImpl::createMediaSource() File: /indra/newview/llviewermedia.cpp
2010-03-31Enable OpenID auth in the embedded webkit browser.Monroe Linden
Extract openid_url and openid_token tokens from the login response in process_login_success_response() and send them to LLViewerMedia if they're present. Added LLViewerMedia::openIDSetup() to receive openid_url and openid_token, and added code to LLViewerMedia to do a POST with LLHTTPClient, retrieve the resulting cookie, and push it into the central cookie store. Also made sure the OpenID cookie gets re-added when the cookie store is cleared. Added LLPluginCookieStore::setCookiesFromHost() to properly add a cookie that may not have a domain set. Made LLPluginCookieStore::Cookie::parse() add missing domain and path fields to cookies as necessary. Fixed an issue where carriage returns in the string passed to LLPluginCookieStore::setCookies() or LLPluginCookieStore::setCookiesFromHost() would cause a parse failure. Reviewed by gino and callum at http://codereview.lindenlab.com/1254001
2010-03-29MergeLoren Shih
2010-03-29EXT-6536 : Make LLVOAvatarSelf a singletonLoren Shih
Superficial cleanup to replace all instances of "gAgentAvatar" with "gAgentAvatarp".
2010-03-29EXT-6536 : Make LLVOAvatarSelf a singletonLoren Shih
Superficial cleanup to replace all instances of "LLVOAvatarSelf *avatarp = gAgent.getAvatarObject" with "gAgentAvatar".
2010-03-26Fix "clear cookies" not clearing cookies in some casesMonroe Linden
LLViewerMedia::clearAllCookies was sending "clear cookies" messages to all plugins and deleting cookie files, but it wasn't clearing the cookies in the central store. It now does all of the above.
2010-03-26Fix a couple of minor issues with the central cookie storage code.Monroe Linden
Made LLViewerMedia::clearAllCookies() delete the new per-user cookie file (userdir/plugin_cookies.txt) as well as the old one. Made LLViewerMedia::loadCookieFile() send the clear_cookies message to all loaded plugins.
2010-03-26Implemented central storage mechanism for media plugin cookies.Monroe Linden
Added LLPluginCookieStore, which manages the central list of cookies. New Mac and Windows versions of llqtwebkit, built from the tip of the cookie-api branch on http://bitbucket.org/lindenlab/llqtwebkit/ (currently revision f35a5eab8c2f). Added "set_cookies" and "cookie_set" messages to the media_browser message class in the plugin API, and made the webkit plugin use them appropriately. Added methods to LLViewerMedia to read/write the cookie file and add/remove individual cookies. Added hooks to read/write the cookie file (plugin_cookies.txt) in the same places as the location history (idle_startup() in llstartup.cpp and LLAppViewer::cleanup(), respectively). Reviewed by Richard at http://codereview.lindenlab.com/1006003
2010-04-02add some debug code for EXT-5394: Crash in ↵Xiaohong Bao
LLViewerMediaImpl::calculateInterest()
2010-03-19Merge with tipCallum Prentice
2010-03-18Fix for EXT-6304: Shared media cookies cannot be deleted via PreferencesMonroe Linden
Added static member functions to LLViewerMedia: clearAllCookies(), clearAllCaches(), setCookiesEnabled(), and setProxyConfig(). These iterate through all loaded instances and send appropriate messages. Also added a hack to clearAllCookies() to delete cookie files for all accounts, which should serve until we centralize cookie storage. Made LLViewerMedia set the proxy config properly when creating new instances. Callum is adding code to do something similar with the cookies enabled flag in a separate commit. Removed get_web_media from llfloaterpreference.cpp and reworked everything that used it to use the new LLViewerMedia functions instead. Reviewed by Callum at http://codereview.lindenlab.com/838003.
2010-03-18EXT-6466 "Move "Enable Cookies" checkbox...", EXT-6402 "Add feature to ↵Callum Prentice
disable Web plugins via prefs" and EXT-6401 "Add feature to disable Javascript via prefs" Apologies for the multiple commit of Jiras - these changes are closely related and impossible to commit deparately Reviewed by Monroe
2010-03-16Added an "init" message in LLPLUGIN_MESSAGE_CLASS_MEDIA, and made ↵Monroe Linden
LLPluginClassMedia queue it up before initializing its LLPluginProcessParent. Made all existing plugins send their texture_params message from this init message instead of the LLPLUGIN_MESSAGE_CLASS_BASE "init" message. (This ensures that they won't start to receive 'size_change' messages until after the init has happened.) Added "set_user_data_path" and "set_language_code" messages to LLPluginClassMedia. Made webkit plugin deal with the new messages, when they're sent before it receives the media "init". Removed the user_data_path and language_code arguments from the init function calls throughout the hierarchy. Made LLViewerMediaImpl queue up the language code and user data path messages before initializing the media. Reviewed by Callum at http://codereview.lindenlab.com/687006 .
2010-03-12(for B5) Fix for EXT-5823 "Include language in user-agent string" ↵Callum Prentice
(implemented via JavaScript - not in ua string) (for B5) Fix for EXT-5314 "Inworld Browser blanks out at credit card entry" Note: also includes an update to install.xml that points to a new version of LLQtWebKit that is required for these fixes
2010-03-08Local mergeskolb
2010-03-08https://jira.secondlife.com/browse/EXT-5884skolb
Added code to support SLAPPS for Media on a Prim Reviewed by Monroe and Callum via Code Collab (Review 143).
2010-03-04Merge with tipCallum Prentice
2010-03-04Fix for EXT-5960 (Store media cookies per user rather than per viewer)Callum Prentice
Reviewed by RN and MW
2010-03-03Potential fix for EXT-5850 (Crash in LLPluginClassMedia::idle)Monroe Linden
We don't actually have a repro for this bug, just a number of crash reports. This potential fix makes an iterator loop safer in the face of the iterator changing during the loop. See the jira for further details. Reviewed by Richard at http://codereview.lindenlab.com/331008
2010-03-01https://jira.secondlife.com/browse/EXT-5884skolb
Added code to support SLAPPS for Media on a Prim Reviewed by Monroe and Callum via Code Collab (Review 143).
2010-02-25EXT-5410 Streaming audio does ignores preference setting.angela
2010-02-23merg and resolve conflictsangela
2010-02-23revert some changed from EXT-5410 but keep the changes for disabling ↵angela
streaming audio when music or media is disabled. reviewed by rick
2010-02-22Follow-up from previous change based on code review #137Rick Pasetto
2010-02-22FIX (unposted bug): "hasMedia" and "hasAudio" no longer checks preferences: ↵Rick Pasetto
it's now up to callers to decide to do that Review #137
2010-02-22Fix (unposted bug): media "affordance" was not properly being disabled when ↵Rick Pasetto
media was disabled
2010-02-22EXT-5410 Streaming audio does ignores preference setting.angela
2010-02-18EXT-5363 webkit does not strip spaces off a typed-in URLCallum Prentice
Reviewed by CB
2010-02-16Automated merge with ssh://rick@hg.lindenlab.com/viewer/viewer-2-0Rick Pasetto
2010-02-16EXT-5270: Implement "dynamic" controls based on the selected item in Nearby ↵Rick Pasetto
Media Review #112 This change adds controls that change state based on the selection in the nearby media panel. There are basically 3 sets: - Time-based - Web-based ("Normal") - Disabled Again, these change based on what you've got selected in the panel
2010-02-16EXT-5394 [crashhunters] Crash in LLViewerMediaImpl::calculateInterest()Tofu Linden
2010-02-12EXT-5267 EXT-5268: Add Parcel Media and Parcel Audio items to nearby media panelRick Pasetto
Review #109 This (fairly major) change adds new "items" to the media list for Parcel Media and Parcel Audio. Since these items are special (before the items were always MoaP impls), they had to be treated special. Moreover, actions on all of "media" had to be centralized so that they would have similar behavior.
2010-02-10Code review feedback: add comments, move teleport hook to a callback in ↵Rick Pasetto
llviewermedia Review #100
2010-02-10EXT-5261 EXT-5263 EXT-5265 EXT-5266 EXT-5271 - Reformat NMF and enable ↵Rick Pasetto
behavior of media toggle in chrome Review #100 http://10.1.19.90:8080/go?page=ReviewDisplay&reviewid=100 This encompasses the first of the behavioral and structural changes for the Nearby Media Floater and the chrome button at the top of the UI. It includes: - Removal of the Parcel Media and Parcel Audio UI. Still not in the list yet. - New More/Less button, which doesn't quite work right (see below) - Changed icon for UI chrome - Enabled "turning on" and "turning off" media from the chrome and NMF - Added gear icon to bring up prefs - XUI changes to the structure of NMF - Implementation of the "tentative" autoplay flag This is basically a checkpoint so that Richard can help with the More/Less implementation
2010-02-09PARTIAL EXT-5261: add new "MediaTentativeAutoPlay" settingRick Pasetto
2010-02-09Automated merge with ssh://rick@hg.lindenlab.com/viewer/viewer-2-0Rick Pasetto
2010-02-08Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0Monroe Linden
2010-02-08Fixed major bug EXT-5022 (streaming media first use dialog should be removed)Eugene Mutavchi
--HG-- branch : product-engine
2010-02-05Media classes + A step toward restructuring Nearby Media floaterRick Pasetto
Several changes here: - Implemented support for "media classification": see http://docs.google.com/a/lindenlab.com/View?id=ddznhrqn_29vhnr2pg8 - Added settings for auto-playing of said classifications Nearby Media Floater: - On/Off buttons are now explicit...no more power buttons - Parcel Media and Parcel Audio are "lighter weight", with no more on/off - List now sorts with playing items at top, non-playing below - There is now a "Show" drop-down that filters the list by classification - Added checkboxes to the bottom to control auto-play settings More work is needed, so consider this a checkpoint
2010-01-29Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0Monroe Linden