Commit Graph

246 Commits (bd008a170898e69beeb8bc0481b4bfd94de86c55)

Author SHA1 Message Date
callum ce613ce398 EXP-378 FIX Disable SSL cert errors in LLQtWebkit for testing purposes
(Monroe's code - I made a patch and copied it over from viewer-skylight branch)
2010-11-05 17:06:21 -07:00
Loren Shih 7687653871 Automated merge up from viewer-development 2010-10-20 12:18:33 -04:00
Oz Linden a5619d16f7 correct licenses (fix problem with license change merge) 2010-10-13 07:24:37 -04:00
Oz Linden 3f43a36d34 merge fixes for VWR-23296 2010-10-12 08:47:26 -04:00
Oz Linden bb74487c85 Merge fixes for VWR-23047, VWR-20911, and SNOW-748 2010-10-08 10:47:25 -04:00
Boroondas Gupte ccb734e26c merged SNOW-651: Added missing "if (LL_TESTS)" in indra/llplugin/slplugin/CMakeLists.txt 2010-10-04 23:46:27 +02:00
Boroondas Gupte (original fix by Techwolf Lupindo) 5bcfa063b4 SNOW-651: Added missing "if (LL_TESTS)"
Daggified version of http://svn.secondlife.com/trac/linden/changeset/3523
(or of the SNOW-651 part of https://bitbucket.org/Techwolf/viewer-development/changeset/5697874b390b )
2010-10-04 23:01:43 +02:00
Dave Parks 295de1a537 Put some errant tests under if (LL_TESTS) conditional. 2010-09-30 15:56:41 -05:00
Dave Parks 7c2b9221d6 merge 2010-09-27 15:20:27 -05:00
Aimee Linden ce84d6707a STORM-253 FIXED FrontWindow() API is deprecated 2010-09-27 12:33:36 +01:00
Brad Payne (Vir Linden) 90e3d83a5c Fix for build failures - disabling tcmalloc for now 2010-09-21 13:26:52 -04:00
Boroondas Gupte 970ce1e162 Merged VWR-23047 (SNOW-512, -fPIC for 64bit) and follow-ups (VWR-20911 & SNOW-748) 2010-09-16 13:51:15 +02:00
Boroondas Gupte (original patches by Aimee Linden) 64f0b9a7f8 SNOW-748 FIXED Building on OSX 10.6 fails with "warning: -mdynamic-no-pic overrides - fpic or -fPIC"
Originally commited at http://svn.secondlife.com/trac/linden/changeset/3499/projects/2010/snowglobe and http://svn.secondlife.com/trac/linden/changeset/3501

SVN changeset 3499 partially applied with --ignore-whitespace:

	Hunk #1 FAILED at 259.
	Hunk #2 FAILED at 265.
	2 out of 2 hunks FAILED -- saving rejects to file
	indra/llcommon/CMakeLists.txt.rej
	patching file indra/media_plugins/webkit/CMakeLists.txt
	Hunk #1 succeeded at 33 with fuzz 1 (offset -8 lines).
	patching file indra/media_plugins/base/CMakeLists.txt
	patching file indra/media_plugins/gstreamer010/CMakeLists.txt
	patching file indra/media_plugins/example/CMakeLists.txt
	patching file indra/llplugin/CMakeLists.txt

Manually applied to indra/llcommon/CMakeLists.txt (straight forward).

SVN changeset 3501 applied with fuzz 1:

	patching file indra/media_plugins/webkit/CMakeLists.txt
	Hunk #1 succeeded at 33 with fuzz 1 (offset -8 lines).
	Hunk #2 succeeded at 39 with fuzz 1 (offset -8 lines).

No further changes other than that.
2010-08-31 13:48:30 +02:00
Boroondas Gupte (daggyfied changeset by Techwolf Lupindo, original fix by Robin Cornelius) 88e7a631b3 SNOW-512/SNOW-287: Build of LLPlugin fails on 64bit linux due to non PIC code linking into the DSO
Formatting, cleanup, and one minor change by Techwolf Lupindo.
Minor change was a move of the hunk in
indra/media_plugins/webkit/CmakeLists.txt to same area as the other plugins CmakeLists.txt files.

daggyfied version of https://bitbucket.org/Techwolf/viewer-development/changeset/00bd21962052
2010-09-16 13:26:45 +02:00
Richard Linden 1911993cc7 merge 2010-09-16 19:45:57 -07:00
Monroe Linden 531b77a948 Enable web popups to specify size and position of the Media Browser window from javascript.
This includes a Mac build of llqtwebkit from the following sources:

revision aacdf69cbf5aa12d77c179296e31ef643ed1ef4a of http://qt.gitorious.org/+lindenqt/qt/lindenqt (currently head of the 'lindenqt' branch)
revision 81ab5ae326f0 of http://hg.secondlife.com/llqtwebkit (currently head of the default branch)

Reviewed by Callum.
2010-09-15 14:39:42 -07:00
callum 22172ce23d EXP-56 - viewer side of support for file picker dialog requirement. 2010-09-13 14:59:05 -07:00
Monroe Linden 24f308caae Added support for a media plugin message that asks the viewer to open a file picker on the plugin's behalf.
Reviewed by Callum.
2010-09-10 16:43:35 -07:00
Monroe Linden b62b10dd26 Post-convert merge by convert_monolith.py from ./viewer-experience 2010-08-27 16:58:33 -07:00
Aaron Terrell (Enus) 27e74d25a1 fixing test names for reporting purposes - removing ' test'. also, updated docs to remove that naming schema 2010-08-24 22:26:07 -07:00
Aimee Linden 2977cbb741 VWR-20770 (SNOW-649) FIXED Missing LL_TESTS condition around llplugin unit test 2010-08-18 17:56:58 +01:00
Monroe Linden a2657be578 Viewer side changes to support javascript window.close handling. 2010-08-17 17:56:54 -07:00
Oz Linden 06b0d72efa Change license from GPL to LGPL (version 2.1) 2010-08-13 07:24:57 -04:00
Dave Parks 13202e744c merge 2010-07-14 11:11:31 -05:00
Monroe Linden fd799ca57e Fix for EXT-8089 (Log spam from SLPlugin about "autoreleased with no pool in place - just leaking")
Added slplugin-objc.mm.

Made SLPlugin do the cocoa setup during initialization, and create/delete an
autorelease pool each time through its main loop.  This should make plugin code
that's using autorelease correctly not leak.

Fixed a bug in the version of setupCocoa() used in the viewer (it was never
setting its "inited" variable).
2010-06-25 14:18:22 -07:00
Tofu Linden f92d7f2829 merge from viewer-trunk 2010-05-01 06:47:55 +01:00
Xiaohong Bao 1b82707771 Automated merge with ssh://hg.lindenlab.com/q/viewer-trunk 2010-04-30 22:52:40 -06:00
Tofu Linden 6f339d5e9e merge from viewer-trunk 2010-04-30 10:10:16 +01:00
Tofu Linden d597a7e36a Looks like the linux apr version is a bit too old to build 5458d58b4cd0. Use this workaround for now. 2010-04-30 08:27:56 +01:00
Xiaohong Bao 34e29fe712 add debug code for EXT-7011: crash at LLPluginClassMedia::idle [secondlife-bin llpluginclassmedia.cpp:158] 2010-04-29 12:24:46 -06:00
Tofu Linden fee6f311d3 merge from viewer-trunk 2010-04-29 11:32:42 +01:00
Monroe Linden 77b13dc2df Incorporate suggestions from Richard's review of the LLPlugin changes.
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-29 17:33:37 -07:00
Monroe Linden b7bc6920c8 Fixed a silly error in the code that tries to avoid queueing up mouse move events to blocked plugins. 2010-04-27 17:43:09 -07:00
Monroe Linden dacc5afbf0 Architectural changes to LLPlugin message processing.
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-27 17:25:01 -07:00
Dave Parks c0a2a44a44 Fix for mac build. 2010-04-26 21:33:18 -05:00
Aimee Linden 0cdaca2b46 DEV-49389 (SNOW-571 / VWR-18279): Replacing another deprecated WaitNextEvent() for the OS X 10.6 SDK
Replaced the deprecated WaitNextEvent() call with ReceiveNextEvent() and SendEventToEventTarget() as a basic event loop in slplugin.cpp
2010-04-25 03:49:55 +01:00
Monroe Linden 57a2a2beff Add a way for plugins to send a message and block waiting for the response
This requires some cooperation between the plugin and the host, and will only work for specific messages.

The way it works is as follows:
* the plugin sends a message containing the key "blocking_request" (with any value)
* this will cause the "send message" function to block (continuing to pull incoming messages off the network socket and queue them) until it receives a message from the host containing the key "blocking_response"
** NOTE: if the plugin sends a blocking_request that isn't set up to cause the host to send back a blocking_response, it will block forever
* the blocking_response message will be handed to the plugin's "receive message" function _immediately_ (before the "send message" function returns)
** this means that the plugin can extract response data for use by the the code that sent the message (but is still blocked inside the "send message" call)
** NOTE: this BREAKS the invariant stating that the plugin's "receive message" function will never be called recursively, and the plugin MUST be prepared to deal with this
* after the plugin finishes processing the blocking_response message, the "send message" function that was called with the blocking_request message will return to the plugin
* any queued messages will be delivered after the outer invocation of the plugin's "receive message" function returns (as normal)

Inside the viewer, the code can tell when a plugin is in this blocked state by calling LLPluginProcessParent::isBlocked().  LLPluginClassMedia uses this to avoid sending mouse-move and size-change messages to blocked plugins.
2010-04-23 15:50:22 -07:00
Monroe Linden 144b8349b3 Fix for EXT-6287 (fullscreen flash video plays behind the viewer instead of in front)
Made SLPlugin into a bundled app on the Mac (this is apparently necessary for the plugin's window to be allowed to get focus).

Changed the Info.plist key SLPlugin uses to keep itself out of the dock from LSBackgroundOnly to LSUIElement (this allows it to get focus and display UI).

Added some Mac-specific code to slplugin.cpp to manipulate window layers and bring the plugin process to the foreground when something in the process opens a window, and to bring the viewer to the foreground when the last window in the process is closed.
2010-04-21 17:04:27 -07:00
Monroe Linden 2ba90ca871 Fix for EXT-6756: google apps auth doesn't work right with shared media cookies
Added "HttpOnly" to the allowed field names in LLPluginCookieStore::Cookie::parse().  (This was the actual cause of the failure -- cookies with this field in them were silently failing to parse.)

Added some LL_WARNS logging on this sort of cookie parse failure, which will make similar problems much easier to track down in future.

Also added tags to most of the logging in llplugincookiestore.cpp to make it easier to selectively enable it when debugging.

Added a cookie with all allowable field names to the unit test.

Reviewed by Sam at http://codereview.lindenlab.com/1247014
2010-04-07 18:15:56 -07:00
Monroe Linden 68870a1f59 Added copyright header to new unit test. 2010-03-31 18:53:50 -07:00
Monroe Linden e868159922 Added unit test for LLPluginCookieStore. 2010-03-31 18:51:09 -07:00
Monroe Linden 11b588c29c Fixed a problem with LLPluginCookieStore that would have caused problems when adding multiple cookies with setCookies(), setAllCookies(), and setCookiesFromHost(). 2010-03-31 18:50:20 -07:00
Monroe Linden 5c19099622 Enable OpenID auth in the embedded webkit browser.
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-31 13:53:40 -07:00
Monroe Linden 4e7838fb00 Implemented central storage mechanism for media plugin cookies.
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-03-26 15:39:21 -07:00
Callum Prentice cb7fbc8a20 EXT-6466 "Move "Enable Cookies" checkbox...", EXT-6402 "Add feature to 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-18 16:53:27 -07:00
Monroe Linden ce242821dc Added an "init" message in LLPLUGIN_MESSAGE_CLASS_MEDIA, and made 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-16 16:42:31 -07:00
Callum Prentice d5e685306c (for B5) Fix for EXT-5823 "Include language in user-agent string" (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-12 14:34:25 -08:00
Tofu Linden 2bc74a4e99 CID-52
Checker: FORWARD_NULL
Function: LLPluginMessagePipe::pump(double)
File: /indra/llplugin/llpluginmessagepipe.cpp
2010-02-10 18:25:54 +00:00
Tofu Linden 5206f0fe91 CID-53
Checker: FORWARD_NULL
Function: LLPluginProcessChild::idle()
File: /indra/llplugin/llpluginprocesschild.cpp
2010-02-10 18:23:12 +00:00
Tofu Linden c66e9199a5 Backed out changeset b1c241040751 2010-02-09 14:52:13 +00:00
Tofu Linden 5abb6dece7 HACK HACK HACK to unbreak linux build while I wait for access to the new llqtwebkit code.
only affects linux.  may harm webkit functionality temporarily.  to be backed-out.
2010-02-09 14:00:33 +00:00
Monroe Linden 3699be5c45 Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0 2010-02-05 18:38:16 -08:00
Tofu Linden f1606535e1 CID-262
Checker: UNINIT_CTOR
Function: LLPluginProcessParent::LLPluginProcessParent(LLPluginProcessParentOwner *)
File: /indra/llplugin/llpluginprocessparent.cpp
2010-02-03 20:52:06 +00:00
Tofu Linden d98df93ce2 CID-263
Checker: UNINIT_CTOR
Function: LLPluginClassMedia::LLPluginClassMedia(LLPluginClassMediaOwner *)
File: /indra/llplugin/llpluginclassmedia.cpp
2010-02-03 20:50:01 +00:00
Tofu Linden 81bc33f042 CID-264
Checker: UNINIT_CTOR
Function: LLPluginProcessChild::LLPluginProcessChild()
File: /indra/llplugin/llpluginprocesschild.cpp
2010-02-03 20:48:10 +00:00
Monroe Linden a4aed31ad9 Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0 2010-01-29 14:49:18 -08:00
Tofu Linden fa886566b6 CID-184
Checker: RESOURCE_LEAK
Function: LLPluginProcessChild::receiveMessageRaw(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
File: /indra/llplugin/llpluginprocesschild.cpp
2010-01-27 15:10:34 -08:00
Tofu Linden 73665e5ad6 CID-1
Checker: BAD_COMPARE
Function: checkExceptionHandler()
File: /indra/llplugin/slplugin/slplugin.cpp

(not a bug, but rearranged a little)
2010-01-27 11:59:55 -08:00
Monroe Linden 572b8fc518 Changes to llqtwebkit keyboard event api.
Reference to new mac build of llqtwebkit (from revision 5e61bf24915f in https://hg.lindenlab.com/monroe/llqtwebkit-4.6).
2010-01-19 21:55:51 -08:00
Monroe Linden fae9c8fe86 Added getNativeKeyData() function to LLWindow and LLWindowMacOSX.
Added an LLSD argument to LLPluginClassMedia::keyEvent() and LLPluginClassMedia::textInput() which contains the native key data.
Made LLViewerMediaImpl retrieve the native key data and pass it to keyEvent and textInput.
Added a native_key_data parameter to the text_event and key_event messages.
Made the webkit plugin extract the native_key_data parameter and pass it to the internal keyEvent() and unicodeInput() functions.
Fixed LLMediaPluginTest to match function signature change to LLPluginClassMedia::keyEvent().
2010-01-18 17:58:12 -08:00
Lynx Linden be8e6100a7 Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0 2010-01-14 18:42:29 +00:00
Callum Prentice 556d5b8d5f Quick tweak for missing color reference LLColor4::white;
Didn't want to introduce another linker dependency so I specified the color directly.
2010-01-14 09:54:28 -08:00
Lynx Linden 507ccd52a9 EXT-3624: Support "_blank" href target types.
Support href links in web views that have a target attribute set to
"_blank". This will open the link in the user's preferred browser
(internal or external, as defined in Prefs). This change relies on the
new llqtwebkit package that has just been pushed.

Also updated the hardcoded Qt version number in the About floater.
2010-01-14 11:57:03 +00:00
Monroe Linden 3b2697cb93 Fix for black/grey look at login screen and backspace going back in search/help windows. This should address EXT-4097.
Added a notion of "background color" to LLViewerMediaImpl and LLPluginClassMedia.
Added background color parameters to the size_change message.
Webkit plugin now sets the background color of the instance from the supplied background color, and navigates to a data: url with that background color instead of about:blank as its initial navigate.
Webkit plugin now no longer waits for the first onPageChanged event
LLViewerMediaImpl now clears the texture to the background color when initializing it.
Made LLMediaCtrl fill with its opaque background color when the media impl isn't set up yet.
Removed the initial data URL from the search and help floaters, since what it was doing is now handled internally by the new background color code.

Reviewed by callum and rick.
2010-01-11 17:54:05 -08:00
Callum Prentice fb99db68a0 Fix for EXT-3781 "installer on Vista: error opening file for writing ."
Reviewed by MW
2010-01-07 11:38:36 -08:00
Monroe Linden eb7bd0a214 Changed default launch timeout in LLPluginProcessParent to 60 seconds, and added an to LLPluginProcessParent that allows callers to adjust the launch and lockup timeouts. 2009-12-17 18:00:59 -08:00
callum 6cb3d25942 Merge with tip 2009-12-16 13:10:03 -08:00
brad kittenbrink cee8909ee4 Final merge of precompiled header dependency cleanup work. 2009-12-14 16:53:52 -08:00
brad kittenbrink cb9b874b17 Merge of my old precompiled headers dependency cleanup with tip of viewer-2-0. 2009-12-14 11:07:29 -08:00
Monroe Linden 5e4d7ec715 In LLPluginProcessParent, instead of killing the plugin process, terminate it by closing the sockets. This lets it do some cleanup before exiting, instead of just getting shot. 2009-12-11 17:50:59 -08:00
skolb f0da8a7420 Merge media back into viewer 2-0 2009-12-11 09:07:39 -08:00
Tofu Linden 197de032e1 DEV-43948 viewer2 is writing session data into the 'read-only' installation tree (mostly media stuff)
propagate the parent app's OSUserAppDir (i.e. ~/.secondlife/) all the way down to plugins, if they need persistant user data/settings (like the webkit plugin needs a place to put its cache).
2009-12-09 12:57:10 -08:00
bea@american.lindenlab.com 0bf7917ae8 Added Doxygen comments 2009-12-09 12:52:27 -08:00
brad kittenbrink 8e912657e8 Another merge of include dependency cleanup work with viewer-2-0. 2009-12-07 12:20:47 -08:00
bea@american.lindenlab.com 13eeba25d8 Fix some missing Doxygen comments 2009-12-04 14:37:50 -08:00
bea@american.lindenlab.com 67d051e78c Adding Doxygen comments 2009-12-04 13:28:39 -08:00
brad kittenbrink bf4f21ecf8 Merge of include dependency cleanup work with viewer-2-0 2009-12-03 10:41:31 -08:00
bea@american.lindenlab.com 1973cdc4e6 Add Doxygen comments 2009-12-03 08:47:59 -08:00
bea@american.lindenlab.com 199d42f274 doxygen: exclude licensing blurbs 2009-11-30 14:46:35 -08:00
callum cf8b851061 Fix for DEV-42324 (Default exception handler still called sometimes for SLPlugin)
Added some code from an online article to patch the CRT and disable all default
exception handling.
2009-11-25 14:52:22 -08:00
Monroe Linden a58dd26b20 Tweaks to media priority calculation.
Enabled CPU limit setting by default (set to 100% of 1 CPU).

Lowered default limits on plugin priorities: 2 normal+, 4 low, 8 total.

Limit on total number of instances now only applies to inworld media -- media instances in the UI (such as the help browser and search) don't count toward the limit.  UI media will still bump inworld media down from normal/low priority, though.

Several improvements to plugin manager debug code in the nearby media list.

Don't load unloaded instances that are at PRIORITY_SLIDESHOW or PRIORITY_HIDDEN (they don't get unloaded, they just won't be loaded unless they're at higher priority).

Added LLViewerMediaImpl::isPlayable(), which indicates whether an instance would be loaded if it were high enough in the priority list (taking into account autoplay and current load state).  Priority algorithm now takes this into account.

Fixed a couple of issues with approximate texture interest calculation and its use in setting priorities.

Adjusted sleep times on low and normal priorities to be more friendly.
2009-11-13 18:15:35 -08:00
brad kittenbrink 1ea60591a9 Refactoring of llviewerprecompiledheaders.h to hopefully increase stability
and reduce unnecessary dependencies and incredibuild wedging.  Hopefully in
the long run this will reduce build time.  Also cleaned up a lot of header
file usage to conform better to the coding standard.

reviewed by james and steve.
2009-11-13 20:33:59 -05:00
Monroe Linden 2fd31363f7 Added PluginAttachDebuggerToPlugins debug setting.
Added accessors to get platform-specific process ID from LLProcessLauncher.

Added an optional "debug" argument to LLPluginClassMedia::init() and LLPluginProcessParent::init() (defaults to false).

Mac only: made the state machine in LLPluginProcessParent::idle() open a new window in Terminal.app with a gdb session attached to the plugin process upon successful launch.
2009-11-10 15:57:26 -08:00
Monroe Linden f8f8b0502e Added an explicit copy constructor to LLPluginMessage. 2009-11-10 11:30:17 -08:00
Monroe Linden 8ae2f388b6 Fixes for DEV-41791 and DEV-41920.
Reworked some of the autoplay logic in LLViewerMediaImpl to try and make it more consistent when media is unloaded and reloaded by the performance manager.

LLViewerMediaImpl will now keep track of the media state and current time of media that it unloads for performance reasons, and attempt to restore playing or paused media to the same playhead time and state (playing or paused) when it reloads.

Added "done" status that time-based media plugins can use to indicate that they've reached the end of the media and stopped.

Added logging of priority transitions, for use in debugging issues with the peformance manager.
2009-10-28 17:34:03 -07:00
Monroe Linden 7f25433ccb Volume controls in the media HUD should now work -- this fixes DEV-41746, DEV-41748, and DEV-40782.
Added LLPluginClassMedia::getVolume().

Added setVolume/getVolumeupdateVolume methods to LLViewerMediaImpl.

LLViewerMedia::setVolume() now no longer overrides the volume settings on all media instances -- it now sets a "global volume" value which is multiplied by all instances' volumes to modulate them.

Cleaned up volume/mute handling in LLPanelMediaHUD (made it go through the LLViewerMediaImpl interface instead of directly through LLPluginClassMedia, and removed the mMediaVolume member variable, since the media impl now stores that state).
2009-10-26 17:13:38 -07:00
callum b7d446a3e9 Potential fix for https://jira.lindenlab.com/jira/browse/DEV-41702
and https://jira.lindenlab.com/jira/browse/DEV-38579. Both relate to
media not working properly and were likely caused by an uninitialized
heartbeat timeout.
2009-10-26 17:12:35 -07:00
Monroe Linden 376deff7a3 Changes to match new version of llqtwebkit -- passing modifier keys through to most user events and using new scroll wheel event. 2009-10-23 14:28:21 -07:00
callum 4347096803 https://jira.lindenlab.com/jira/browse/DEV-40711
Implement name fetching capabilities for Webkit and Quicktime plugins
Adds support for new PluginAPI message (MEDIA_EVENT_NAME_CHANGED) that updates the "title" of the media. In WebKit plugin this is the contents of the <title> tag. In The QuickTime plugin it is the "display name" from the movie meta data
2009-10-15 11:26:52 -07:00
Monroe Linden d02906b12e Added an optional "loaded_duration" parameter to the 'updated' message. This is the duration through which the time-based media has loaded, and should be between zero and the value of the "duration" parameter. If the parameter is not supplied, it will be implicitly set to the same value as the "duration" parameter, so the movie will appear fully loaded. This can be queried with LLPluginClassMedia::getLoadedDuration().
Made the "loaded_duration" parameter also implicitly set the progress percentage and send out MEDIA_EVENT_PROGRESS_UPDATED messages when it changes.

Made the quicktime plugin set the "loaded_duration" parameter in its update messages.
2009-10-12 17:21:26 -07:00
Monroe Linden bf82ec2264 Log the plugin version string when a plugin is loaded. 2009-10-08 18:42:16 -07:00
Monroe Linden 374deb8da1 Fixes for a different class of plugin failures (where loading the plugin dll fails) causing an error message loop:
Made LLPluginProcessParent differentiate between failures launching/loading the plugin and failures after the plugin has been loaded.  This allows us to handle launch failures differently, since retrying is unlikely to fix them.

Added new media event MEDIA_EVENT_PLUGIN_FAILED_LAUNCH to indicate a launch failure.

Added a case for the new event to LLViewerMediaImpl::handleMediaEvent() that sets the "failed init" flag to prevent retries.
2009-10-05 15:48:00 -07:00
Monroe Williams cf9239cabc svn merge -r 134922:134973 svn+ssh://svn.lindenlab.com/svn/linden/branches/media-on-a-prim/moap-7
Merging branches/media-on-a-prim/moap-7 down to viewer-2.0.
2009-10-01 02:35:53 +00:00
Adam Moss efd7e582bd DEV-40396 Error building pluginapi code on Linux 64bit standalone gcc 4.3.3.
rewritten the plugin address-splitting to make compilers grumble less and probably more readable.
code by merov, reviewed by moss.
2009-09-28 19:43:16 +00:00
Richard Nelson 58bce2d205 merge -r132032-132812 svn+ssh://svn.lindenlab.com/svn/linden/branches/gooey/gooey-1 2009-09-09 01:26:44 +00:00
Monroe Williams 745845f799 svn merge -r 129841:129910 svn+ssh://svn.lindenlab.com/svn/linden/branches/moss/pluginapi_05-merge@129910
svn merge -r 129913:131718 svn+ssh://svn.lindenlab.com/svn/linden/branches/pluginapi/pluginapi_05

Some branch shenannigans in the pluginapi_05 branch caused this to become a two-part merge.
2009-08-27 19:00:18 +00:00