Added the necessary plumbing to get link_hovered events from the webkit plugin through to the viewer UI.
This requires a llqtwebkit library built from revision 1799a899e06d or later in http://hg.secondlife.com/llqtwebkit to function. The viewer source changes are backwards-compatible with earlier versions of llqtwebkit, it just won't see any link_hovered events with previous revisions.
Reviewed by Callum.
Added support to the webkit media plugin and llpluginclassmedia for passing through the auth request/response. We still need an updated build of llqtwebkit for all platforms, as well as some UI work in the viewer to actually display the auth dialog.
original commit log for acb451f83a9d was: "Temporary changes to allow the viewer to build against an older version of llqtwebkit.
NOTE: once updated builds of llqtwebkit are available on all platforms, this changeset should be backed out."
So, yes, I'm backing that out.
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.
Moved the processing of clicks on _external and _blank targeted links from LLMediaCtrl to LLViewerMediaImpl.
Removed LLMediaCtrl::setOpenInExternalBrowser() since that functionality is available through the use of the _external target attribute in web content.
Removed LLMediaCtrl:: setOpenInInternalBrowser() since it was unimplemented and not used.
Made the webkit media plugin set llqtwebkit's window open behavior to WOB_SIMULATE_BLANK_HREF_CLICK. This is #ifdefed out on Linux until we get a new Linux build of llqtwebkit.
Renamed LinuxVolumeCatcher class to VolumeCatcher. Everything in the header except the class name was already platform-agnostic, so I just renamed it to volume_catcher.h.
Moved the stub implementation from the end of linux_volume_catcher.cpp (previously only used if LL_PULSEAUDIO_ENABLED was not defined) to dummy_volume_catcher.cpp, and made CMakeList.txt file use the dummy impl on Linux if PULSEAUDIO is not defined.
Removed the ifdefs on the use of VolumeCatcher in MediaPluginWebkit, so it gets called on all platforms.
Added a setPan() function to VolumeCatcher (currently unimplemented, but we'd like to have this capability in the future).
The issue here is that initBrowserWindow() was doing the wrong thing if it got called after the set_user_agent message was received.
Made the handler for the set_user_agent message save the string in a member variable (mUserAgent).
Initialize mUserAgent to the default string in the MediaPluginWebKit constructor.
initBrowserWindow() now sets the user agent string from mUserAgent instead of from a literal.
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
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 .
Changed MediaPluginWebkit::deserializeKeyboardData() to use platform-specific names when extracting the key data. Also fixed a mac-specific issue where the arguments were reversed, which was causing flash apps to get bad keycode data.
Just pass 0 for the "native modifiers" param on windows, since it doesn't seem to actually have a native notion of a "modifier keys mask". The Qt (non-native) modifiers should be good enough.
factored out keyboard message deserialization for media_plugin_webkit
new version of llqtwebkit with Girish's changes to keyboard and cursor handling code
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().