From 05eba5d7b82e5b5d9c959415b36125b801266231 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Mon, 20 Nov 2017 16:08:15 -0800 Subject: Pull in CEF 3203 (Dullanan 1.1.888) Chrome 62 build and re-enable WebGL --- indra/media_plugins/cef/media_plugin_cef.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index f3d7762a08..963c69aeb9 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -115,7 +115,7 @@ MediaPluginBase(host_send_func, host_user_data) mCookiesEnabled = true; mPluginsEnabled = false; mJavascriptEnabled = true; - mDisableGPU = true; + mDisableGPU = false; mUserAgentSubtring = ""; mAuthUsername = ""; mAuthPassword = ""; -- cgit v1.2.3 From 0b97c76dbb238fab079d10433ecf37045f6134ae Mon Sep 17 00:00:00 2001 From: callum_linden Date: Wed, 13 Dec 2017 13:55:33 -0800 Subject: Pull in Dullahan 1.1.925 with fix for onFileDialogCallback(..) handling that fixes MAINT-8083 --- indra/media_plugins/cef/media_plugin_cef.cpp | 47 +++++++++++++++++----------- 1 file changed, 28 insertions(+), 19 deletions(-) (limited to 'indra') diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 963c69aeb9..dbd33a736b 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -68,8 +68,7 @@ private: void onNavigateURLCallback(std::string url, std::string target); bool onHTTPAuthCallback(const std::string host, const std::string realm, std::string& username, std::string& password); void onCursorChangedCallback(dullahan::ECursorType type); - void onFileDownloadCallback(std::string filename); - const std::string onFileDialogCallback(); + const std::string onFileDialog(dullahan::EFileDialogType dialog_type, const std::string dialog_title, const std::string default_file, const std::string dialog_accept_filter, bool& use_default); void postDebugMessage(const std::string& msg); void authResponse(LLPluginMessage &message); @@ -285,30 +284,39 @@ bool MediaPluginCEF::onHTTPAuthCallback(const std::string host, const std::strin //////////////////////////////////////////////////////////////////////////////// // -void MediaPluginCEF::onFileDownloadCallback(const std::string filename) +const std::string MediaPluginCEF::onFileDialog(dullahan::EFileDialogType dialog_type, const std::string dialog_title, const std::string default_file, std::string dialog_accept_filter, bool& use_default) { - mAuthOK = false; + // do not use the default CEF file picker + use_default = false; - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "file_download"); - message.setValue("filename", filename); + if (dialog_type == dullahan::FD_OPEN_FILE) + { + mPickedFile.clear(); - sendMessage(message); -} + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file"); + message.setValueBoolean("blocking_request", true); -//////////////////////////////////////////////////////////////////////////////// -// -const std::string MediaPluginCEF::onFileDialogCallback() -{ - mPickedFile.clear(); + sendMessage(message); - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file"); - message.setValueBoolean("blocking_request", true); + return mPickedFile; + } + else if (dialog_type == dullahan::FD_SAVE_FILE) + { + mAuthOK = false; - sendMessage(message); + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "file_download"); + message.setValue("filename", default_file); + + sendMessage(message); + + return std::string(); + } - return mPickedFile; + return std::string(); } +//////////////////////////////////////////////////////////////////////////////// +// void MediaPluginCEF::onCursorChangedCallback(dullahan::ECursorType type) { std::string name = ""; @@ -341,6 +349,8 @@ void MediaPluginCEF::onCursorChangedCallback(dullahan::ECursorType type) sendMessage(message); } +//////////////////////////////////////////////////////////////////////////////// +// void MediaPluginCEF::authResponse(LLPluginMessage &message) { mAuthOK = message.getValueBoolean("ok"); @@ -442,8 +452,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) mCEFLib->setOnAddressChangeCallback(std::bind(&MediaPluginCEF::onAddressChangeCallback, this, std::placeholders::_1)); mCEFLib->setOnNavigateURLCallback(std::bind(&MediaPluginCEF::onNavigateURLCallback, this, std::placeholders::_1, std::placeholders::_2)); mCEFLib->setOnHTTPAuthCallback(std::bind(&MediaPluginCEF::onHTTPAuthCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); - mCEFLib->setOnFileDownloadCallback(std::bind(&MediaPluginCEF::onFileDownloadCallback, this, std::placeholders::_1)); - mCEFLib->setOnFileDialogCallback(std::bind(&MediaPluginCEF::onFileDialogCallback, this)); + mCEFLib->setOnFileDialogCallback(std::bind(&MediaPluginCEF::onFileDialog, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5)); mCEFLib->setOnCursorChangedCallback(std::bind(&MediaPluginCEF::onCursorChangedCallback, this, std::placeholders::_1)); mCEFLib->setOnRequestExitCallback(std::bind(&MediaPluginCEF::onRequestExitCallback, this)); -- cgit v1.2.3 From 6166ab28dd43304085b23c0d35698be9d90bb8a9 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Thu, 14 Dec 2017 14:27:49 -0800 Subject: Pull in Dullahan 1.1.929 (multiple file picking support) and update plugin code accordingly --- indra/llplugin/llpluginclassmedia.cpp | 12 +++++++-- indra/llplugin/llpluginclassmedia.h | 6 ++++- indra/media_plugins/cef/media_plugin_cef.cpp | 38 +++++++++++++++++++++------- indra/newview/llviewermedia.cpp | 34 +++++++++++++++++++------ 4 files changed, 70 insertions(+), 20 deletions(-) (limited to 'indra') diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 680017204c..e6a9787da9 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -792,15 +792,22 @@ F64 LLPluginClassMedia::getCPUUsage() return result; } -void LLPluginClassMedia::sendPickFileResponse(const std::string &file) +void LLPluginClassMedia::sendPickFileResponse(const std::vector files) { LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file_response"); - message.setValue("file", file); if(mPlugin && mPlugin->isBlocked()) { // If the plugin sent a blocking pick-file request, the response should unblock it. message.setValueBoolean("blocking_response", true); } + + LLSD file_list = LLSD::emptyArray(); + for (std::vector::const_iterator in_iter = files.begin(); in_iter != files.end(); ++in_iter) + { + file_list.append(LLSD::String(*in_iter)); + } + message.setValueLLSD("file_list", file_list); + sendMessage(message); } @@ -1090,6 +1097,7 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) } else if(message_name == "pick_file") { + mIsMultipleFilePick = message.getValueBoolean("multiple_files"); mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PICK_FILE_REQUEST); } else if(message_name == "auth_request") diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index 3b0739d044..98c48cd987 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -176,7 +176,7 @@ public: F64 getCPUUsage(); - void sendPickFileResponse(const std::string &file); + void sendPickFileResponse(const std::vector files); void sendAuthResponse(bool ok, const std::string &username, const std::string &password); @@ -277,6 +277,9 @@ public: std::string getAuthURL() const { return mAuthURL; }; std::string getAuthRealm() const { return mAuthRealm; }; + // These are valid during MEDIA_EVENT_PICK_FILE_REQUEST + bool getIsMultipleFilePick() const { return mIsMultipleFilePick; } + // These are valid during MEDIA_EVENT_LINK_HOVERED std::string getHoverText() const { return mHoverText; }; std::string getHoverLink() const { return mHoverLink; }; @@ -435,6 +438,7 @@ protected: std::string mHoverText; std::string mHoverLink; std::string mFileDownloadFilename; + bool mIsMultipleFilePick; ///////////////////////////////////////// // media_time class diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index dbd33a736b..558ae75c3c 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -68,7 +68,7 @@ private: void onNavigateURLCallback(std::string url, std::string target); bool onHTTPAuthCallback(const std::string host, const std::string realm, std::string& username, std::string& password); void onCursorChangedCallback(dullahan::ECursorType type); - const std::string onFileDialog(dullahan::EFileDialogType dialog_type, const std::string dialog_title, const std::string default_file, const std::string dialog_accept_filter, bool& use_default); + const std::vector onFileDialog(dullahan::EFileDialogType dialog_type, const std::string dialog_title, const std::string default_file, const std::string dialog_accept_filter, bool& use_default); void postDebugMessage(const std::string& msg); void authResponse(LLPluginMessage &message); @@ -94,7 +94,7 @@ private: bool mCanPaste; std::string mCachePath; std::string mCookiePath; - std::string mPickedFile; + std::vector mPickedFiles; VolumeCatcher mVolumeCatcher; F32 mCurVolume; dullahan* mCEFLib; @@ -124,7 +124,7 @@ MediaPluginBase(host_send_func, host_user_data) mCanPaste = false; mCachePath = ""; mCookiePath = ""; - mPickedFile = ""; + mPickedFiles.clear(); mCurVolume = 0.0; mCEFLib = new dullahan(); @@ -284,21 +284,34 @@ bool MediaPluginCEF::onHTTPAuthCallback(const std::string host, const std::strin //////////////////////////////////////////////////////////////////////////////// // -const std::string MediaPluginCEF::onFileDialog(dullahan::EFileDialogType dialog_type, const std::string dialog_title, const std::string default_file, std::string dialog_accept_filter, bool& use_default) +const std::vector MediaPluginCEF::onFileDialog(dullahan::EFileDialogType dialog_type, const std::string dialog_title, const std::string default_file, std::string dialog_accept_filter, bool& use_default) { // do not use the default CEF file picker use_default = false; if (dialog_type == dullahan::FD_OPEN_FILE) { - mPickedFile.clear(); + mPickedFiles.clear(); LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file"); message.setValueBoolean("blocking_request", true); + message.setValueBoolean("multiple_files", false); sendMessage(message); - return mPickedFile; + return mPickedFiles; + } + else if (dialog_type == dullahan::FD_OPEN_MULTIPLE_FILES) + { + mPickedFiles.clear(); + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file"); + message.setValueBoolean("blocking_request", true); + message.setValueBoolean("multiple_files", true); + + sendMessage(message); + + return mPickedFiles; } else if (dialog_type == dullahan::FD_SAVE_FILE) { @@ -309,10 +322,10 @@ const std::string MediaPluginCEF::onFileDialog(dullahan::EFileDialogType dialog_ sendMessage(message); - return std::string(); + return std::vector(); } - return std::string(); + return std::vector(); } //////////////////////////////////////////////////////////////////////////////// @@ -659,7 +672,14 @@ void MediaPluginCEF::receiveMessage(const char* message_string) } if (message_name == "pick_file_response") { - mPickedFile = message_in.getValue("file"); + LLSD file_list_llsd = message_in.getValueLLSD("file_list"); + + LLSD::array_const_iterator iter = file_list_llsd.beginArray(); + LLSD::array_const_iterator end = file_list_llsd.endArray(); + for (; iter != end; ++iter) + { + mPickedFiles.push_back(((*iter).asString())); + } } if (message_name == "auth_response") { diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 114f1d327b..9dd8b00ef6 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -3480,22 +3480,40 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla case LLViewerMediaObserver::MEDIA_EVENT_PICK_FILE_REQUEST: { - // Display a file picker - std::string response; - LLFilePicker& picker = LLFilePicker::instance(); - if (!picker.getOpenFile(LLFilePicker::FFLOAD_ALL)) + std::vector responses; + + bool pick_multiple_files = plugin->getIsMultipleFilePick(); + if (pick_multiple_files == false) { - // The user didn't pick a file -- the empty response string will indicate this. + picker.getOpenFile(LLFilePicker::FFLOAD_ALL); + + std::string filename = picker.getFirstFile(); + responses.push_back(filename); } + else + { + if (picker.getMultipleOpenFiles()) + { + std::string filename = picker.getFirstFile(); - response = picker.getFirstFile(); + responses.push_back(filename); - plugin->sendPickFileResponse(response); + while (!filename.empty()) + { + filename = picker.getNextFile(); + + if (!filename.empty()) + { + responses.push_back(filename); + } + } + } + } + plugin->sendPickFileResponse(responses); } break; - case LLViewerMediaObserver::MEDIA_EVENT_AUTH_REQUEST: { LLNotification::Params auth_request_params; -- cgit v1.2.3 From 6ced87c0275ec20fca994f8d2f61947d5ac62082 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Fri, 15 Dec 2017 16:11:29 -0800 Subject: Pull in Dullahan 1.1.930 with improved fix for maint-8095 (target='_blank' links) as well as an improvement for maint-8100 (no error message for invalid hostname / url) --- indra/llplugin/llpluginclassmedia.cpp | 7 ++++++- indra/media_plugins/cef/media_plugin_cef.cpp | 19 ++++++++++++++++++- indra/newview/llmediactrl.cpp | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) (limited to 'indra') diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index e6a9787da9..9d275c5eeb 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -1159,7 +1159,12 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) { mClickURL = message.getValue("uri"); mClickTarget = message.getValue("target"); - mClickUUID = message.getValue("uuid"); + + // need a link to have a UUID that identifies it to a system further + // upstream - plugin could make it but we have access to LLUUID here + // so why don't we use it + mClickUUID = LLUUID::generateNewID().asString(); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF); } else if(message_name == "click_nofollow") diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 558ae75c3c..a8d37a1d0a 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -38,6 +38,7 @@ #include "media_plugin_base.h" #include +#include #include "dullahan.h" @@ -64,6 +65,7 @@ private: void onLoadStartCallback(); void onRequestExitCallback(); void onLoadEndCallback(int httpStatusCode); + void onLoadError(int status, const std::string error_text); void onAddressChangeCallback(std::string url); void onNavigateURLCallback(std::string url, std::string target); bool onHTTPAuthCallback(const std::string host, const std::string realm, std::string& username, std::string& password); @@ -207,6 +209,21 @@ void MediaPluginCEF::onLoadStartCallback() sendMessage(message); } +///////////////////////////////////////////////////////////////////////////////// +// +void MediaPluginCEF::onLoadError(int status, const std::string error_text) +{ + std::stringstream msg; + + msg << "Loading error!"; + msg << "

"; + msg << "Message: " << error_text; + msg << "
"; + msg << "Code: " << status; + + mCEFLib->showBrowserMessage(msg.str()); +} + //////////////////////////////////////////////////////////////////////////////// // void MediaPluginCEF::onRequestExitCallback() @@ -245,7 +262,6 @@ void MediaPluginCEF::onNavigateURLCallback(std::string url, std::string target) LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "click_href"); message.setValue("uri", url); message.setValue("target", target); - message.setValue("uuid", ""); // not used right now sendMessage(message); } @@ -462,6 +478,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) mCEFLib->setOnTitleChangeCallback(std::bind(&MediaPluginCEF::onTitleChangeCallback, this, std::placeholders::_1)); mCEFLib->setOnLoadStartCallback(std::bind(&MediaPluginCEF::onLoadStartCallback, this)); mCEFLib->setOnLoadEndCallback(std::bind(&MediaPluginCEF::onLoadEndCallback, this, std::placeholders::_1)); + mCEFLib->setOnLoadErrorCallback(std::bind(&MediaPluginCEF::onLoadError, this, std::placeholders::_1, std::placeholders::_2)); mCEFLib->setOnAddressChangeCallback(std::bind(&MediaPluginCEF::onAddressChangeCallback, this, std::placeholders::_1)); mCEFLib->setOnNavigateURLCallback(std::bind(&MediaPluginCEF::onNavigateURLCallback, this, std::placeholders::_1, std::placeholders::_2)); mCEFLib->setOnHTTPAuthCallback(std::bind(&MediaPluginCEF::onHTTPAuthCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index a8025906c7..7f6955d08c 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -1022,7 +1022,7 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) // try as slurl first if (!LLURLDispatcher::dispatch(url, "clicked", NULL, mTrusted)) { - LLWeb::loadURL(url, target, std::string()); + LLWeb::loadURL(url, target, uuid); } // CP: removing this code because we no longer support popups so this breaks the flow. -- cgit v1.2.3 From 5989dd1673768660587552fbab0d7fa2851359c2 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Mon, 8 Jan 2018 11:22:02 -0800 Subject: Bump CEF Plugin version so it can be identified as different --- indra/media_plugins/cef/media_plugin_cef.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index a8d37a1d0a..1dfa9c1d0b 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -412,7 +412,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) versions[LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER] = LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER_VERSION; message.setValueLLSD("versions", versions); - std::string plugin_version = "CEF plugin 1.1.3"; + std::string plugin_version = "CEF plugin 1.2.0"; message.setValue("plugin_version", plugin_version); sendMessage(message); } -- cgit v1.2.3 From 8f214ad00b4444e9ed876f92da56bda15310a374 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Mon, 8 Jan 2018 14:51:32 -0800 Subject: Fix for MAINT-7886 Resizing internal web browser window causes video playback to stop --- indra/media_plugins/cef/media_plugin_cef.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'indra') diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 1dfa9c1d0b..b8901e4d5c 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -167,6 +167,10 @@ void MediaPluginCEF::onPageChangedCallback(const unsigned char* pixels, int x, i { memcpy(mPixels, pixels, mWidth * mHeight * mDepth); } + else + { + mCEFLib->setSize(mWidth, mHeight); + } setDirty(0, 0, mWidth, mHeight); } } @@ -412,7 +416,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) versions[LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER] = LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER_VERSION; message.setValueLLSD("versions", versions); - std::string plugin_version = "CEF plugin 1.2.0"; + std::string plugin_version = "CEF plugin 1.1.3"; message.setValue("plugin_version", plugin_version); sendMessage(message); } @@ -559,11 +563,11 @@ void MediaPluginCEF::receiveMessage(const char* message_string) mTextureWidth = texture_width; mTextureHeight = texture_height; + + mCEFLib->setSize(mWidth, mHeight); }; }; - mCEFLib->setSize(mWidth, mHeight); - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "size_change_response"); message.setValue("name", name); message.setValueS32("width", width); -- cgit v1.2.3 From e84e4a1adf29b3a807c9d0c0e4841b5f12ea9756 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Thu, 11 Jan 2018 10:32:23 -0800 Subject: Fix for MAINT-8177 Expose the full version of the matching Chromium/Chrome build for CEF in the About box --- indra/newview/llappviewer.cpp | 8 +++++++- indra/newview/skins/default/xui/en/floater_about.xml | 12 ++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) (limited to 'indra') diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index b33b3a6410..e827a728ae 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3178,8 +3178,14 @@ LLSD LLAppViewer::getViewerInfo() const cef_ver_codec << " / CEF: "; cef_ver_codec << CEF_VERSION; - cef_ver_codec << " / Chrome: "; + cef_ver_codec << " / Chromium: "; cef_ver_codec << CHROME_VERSION_MAJOR; + cef_ver_codec << "."; + cef_ver_codec << CHROME_VERSION_MINOR; + cef_ver_codec << "."; + cef_ver_codec << CHROME_VERSION_BUILD; + cef_ver_codec << "."; + cef_ver_codec << CHROME_VERSION_PATCH; info["LIBCEF_VERSION"] = cef_ver_codec.str(); #else diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index 60f36770bb..71f4d81195 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -8,14 +8,14 @@ help_topic="floater_about" save_rect="true" title="ABOUT [CAPITALIZED_APP_NAME]" - width="470"> + width="500"> - - - - - - Web: - - - - - Date: Mon, 22 Jan 2018 13:30:03 -0800 Subject: Bring in the very latest version of Dullahan (1.1.1024) that matches the most recent canonical Dullahan and also bump the CEF plugin version in preparation for the RC build --- indra/media_plugins/cef/media_plugin_cef.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 67164ca0af..88317655ab 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -416,7 +416,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) versions[LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER] = LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER_VERSION; message.setValueLLSD("versions", versions); - std::string plugin_version = "CEF plugin 1.1.3"; + std::string plugin_version = "CEF plugin 1.1.412"; message.setValue("plugin_version", plugin_version); sendMessage(message); } -- cgit v1.2.3 From 5fa704e4791c46ff94bdc3206c49d1640d251a1d Mon Sep 17 00:00:00 2001 From: callum_linden Date: Wed, 24 Jan 2018 13:16:07 -0800 Subject: MAINT-8232 Clear History button description should not include 'web' --- indra/newview/skins/default/xui/en/panel_preferences_privacy.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml index 284688d4d1..f0a059ddb2 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml @@ -19,7 +19,7 @@ follows="left|top" height="23" label="Clear History" - tool_tip="Clear login image, last location, teleport history, web, and texture cache" + tool_tip="Clear login image, last location, teleport history, and texture cache" layout="topleft" left="30" name="clear_cache" @@ -41,7 +41,7 @@ top_delta="3" text_color="LtGray_50" width="300"> - (Locations, images, web, search history) + (Locations, images, search history) Date: Thu, 25 Jan 2018 11:29:47 -0800 Subject: MAINT-8232 Clear History button description should not include 'web' - incorrect assertionm that web cache not cleared --- indra/newview/skins/default/xui/en/panel_preferences_privacy.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml index f0a059ddb2..2ec5cef640 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml @@ -19,7 +19,7 @@ follows="left|top" height="23" label="Clear History" - tool_tip="Clear login image, last location, teleport history, and texture cache" + tool_tip="Clear login image, last location, teleport history, web and texture cache" layout="topleft" left="30" name="clear_cache" @@ -41,7 +41,7 @@ top_delta="3" text_color="LtGray_50" width="300"> - (Locations, images, search history) + (Locations, images, web, search history) Date: Fri, 26 Jan 2018 11:54:52 -0800 Subject: Fix for: MAINT-8138 Generate new page of test URLs for Dullahan that are more complete and more robust (last stage was creation of S3 non-user specific URL) --- indra/newview/skins/default/xui/en/floater_web_content.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_web_content.xml b/indra/newview/skins/default/xui/en/floater_web_content.xml index 83118615f9..9a097d933b 100644 --- a/indra/newview/skins/default/xui/en/floater_web_content.xml +++ b/indra/newview/skins/default/xui/en/floater_web_content.xml @@ -178,7 +178,7 @@ width="22"> + parameter="https://sl-viewer-media-system.s3.amazonaws.com/index.html"/> Date: Fri, 26 Jan 2018 17:06:19 -0800 Subject: Fixes for: MAINT-8244 Text in CEF cannot be selected with the mouse. MAINT-8245 Expose CEF log file and logging severity to viewer and MAINT-8246 Expose the CEF remote debugging system to the viewer --- indra/llplugin/llpluginclassmedia.cpp | 11 ++++++++++- indra/llplugin/llpluginclassmedia.h | 2 +- indra/media_plugins/cef/media_plugin_cef.cpp | 9 +++++++++ indra/newview/app_settings/settings.xml | 11 +++++++++++ indra/newview/llviewermedia.cpp | 5 +++-- 5 files changed, 34 insertions(+), 4 deletions(-) (limited to 'indra') diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index a857ff0153..78eb6e75bb 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -31,6 +31,9 @@ #include "llpluginclassmedia.h" #include "llpluginmessageclasses.h" +#include "llcontrol.h" + +extern LLControlGroup gSavedSettings; static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256; @@ -843,11 +846,17 @@ void LLPluginClassMedia::paste() sendMessage(message); } -void LLPluginClassMedia::setUserDataPath(const std::string &user_data_path_cache, const std::string &user_data_path_cookies) +void LLPluginClassMedia::setUserDataPath(const std::string &user_data_path_cache, + const std::string &user_data_path_cookies, + const std::string &user_data_path_cef_log) { LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_user_data_path"); message.setValue("cache_path", user_data_path_cache); message.setValue("cookies_path", user_data_path_cookies); + message.setValue("cef_log_file", user_data_path_cef_log); + + bool cef_verbose_log = gSavedSettings.getBOOL("CefVerboseLog"); + message.setValueBoolean("cef_verbose_log", cef_verbose_log); sendMessage(message); } diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index dcd8af4e06..3b3075c6bd 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -195,7 +195,7 @@ public: bool canPaste() const { return mCanPaste; }; // These can be called before init(), and they will be queued and sent before the media init message. - void setUserDataPath(const std::string &user_data_path_cache, const std::string &user_data_path_cookies); + void setUserDataPath(const std::string &user_data_path_cache, const std::string &user_data_path_cookies, const std::string &user_data_path_cef_log); void setLanguageCode(const std::string &language_code); void setPluginsEnabled(const bool enabled); void setJavascriptEnabled(const bool enabled); diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 88317655ab..bdd394da4b 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -96,6 +96,8 @@ private: bool mCanPaste; std::string mCachePath; std::string mCookiePath; + std::string mCefLogFile; + bool mCefLogVerbose; std::vector mPickedFiles; VolumeCatcher mVolumeCatcher; F32 mCurVolume; @@ -126,6 +128,8 @@ MediaPluginBase(host_send_func, host_user_data) mCanPaste = false; mCachePath = ""; mCookiePath = ""; + mCefLogFile = ""; + mCefLogVerbose = false; mPickedFiles.clear(); mCurVolume = 0.0; @@ -511,6 +515,8 @@ void MediaPluginCEF::receiveMessage(const char* message_string) settings.plugins_enabled = mPluginsEnabled; settings.user_agent_substring = mCEFLib->makeCompatibleUserAgentString(mUserAgentSubtring); settings.webgl_enabled = true; + settings.log_file = mCefLogFile; + settings.log_verbose = mCefLogVerbose; std::vector custom_schemes(1, "secondlife"); mCEFLib->setCustomSchemes(custom_schemes); @@ -540,8 +546,11 @@ void MediaPluginCEF::receiveMessage(const char* message_string) { std::string user_data_path_cache = message_in.getValue("cache_path"); std::string user_data_path_cookies = message_in.getValue("cookies_path"); + mCachePath = user_data_path_cache + "cef_cache"; mCookiePath = user_data_path_cookies + "cef_cookies"; + mCefLogFile = message_in.getValue("cef_log_file"); + mCefLogVerbose = message_in.getValueBoolean("cef_verbose_log"); } else if (message_name == "size_change") { diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 4a4f4bfc61..11c34dacb5 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -16155,6 +16155,17 @@ Value 0 + CefVerboseLog + + Comment + Enable/disable CEF verbose loggingk + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 1d4079289a..c92de6ada5 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1686,6 +1686,8 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ std::string user_data_path_cookies = gDirUtilp->getOSUserAppDir(); user_data_path_cookies += gDirUtilp->getDirDelimiter(); + std::string user_data_path_cef_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "cef_log.txt"); + // Fix for EXT-5960 - make browser profile specific to user (cache, cookies etc.) // If the linden username returned is blank, that can only mean we are // at the login page displaying login Web page or Web browser test via Develop menu. @@ -1694,7 +1696,6 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ std::string linden_user_dir = gDirUtilp->getLindenUserDir(); if ( ! linden_user_dir.empty() ) { - // gDirUtilp->getLindenUserDir() is whole path, not just Linden name user_data_path_cookies = linden_user_dir; user_data_path_cookies += gDirUtilp->getDirDelimiter(); }; @@ -1715,7 +1716,7 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ { media_source = new LLPluginClassMedia(owner); media_source->setSize(default_width, default_height); - media_source->setUserDataPath(user_data_path_cache, user_data_path_cookies); + media_source->setUserDataPath(user_data_path_cache, user_data_path_cookies, user_data_path_cef_log); media_source->setLanguageCode(LLUI::getLanguage()); media_source->setZoomFactor(zoom_factor); -- cgit v1.2.3 From 278382abd72a02b5e190cb259d2b4806f3908902 Mon Sep 17 00:00:00 2001 From: callum_linden Date: Thu, 1 Mar 2018 09:34:25 -0800 Subject: Now CEF supports setting default page background if specifier missing from HTML, set default background color to the Linden default grey (#282828) --- indra/media_plugins/cef/media_plugin_cef.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index bdd394da4b..d6a6232221 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -496,7 +496,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) dullahan::dullahan_settings settings; settings.accept_language_list = mHostLanguage; - settings.background_color = 0xffffffff; + settings.background_color = 0xff282828; settings.cache_enabled = true; settings.cache_path = mCachePath; settings.cookie_store_path = mCookiePath; -- cgit v1.2.3 From f3e11510ddfb99a83f9f155f6957c2eca5dc2fba Mon Sep 17 00:00:00 2001 From: callum_linden Date: Fri, 2 Mar 2018 16:21:53 -0800 Subject: Replace start page for media browser with DuckDuckGo.com - Google page was offset at that window size and was irritating --- indra/newview/skins/default/xui/en/menu_login.xml | 2 +- indra/newview/skins/default/xui/en/menu_viewer.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 4e2f819023..07b3cc3bd8 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -245,7 +245,7 @@ name="Media Browser"> + parameter="http://duckduckgo.com"/>

+ parameter="http://duckduckgo.com"/> Date: Thu, 15 Mar 2018 16:12:52 -0700 Subject: Pull in latest version of Dullahan (1.1.1072) and tweak media plugin code to match change in API --- indra/media_plugins/cef/media_plugin_cef.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra') diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index d6a6232221..189beb75ba 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -67,7 +67,7 @@ private: void onLoadEndCallback(int httpStatusCode); void onLoadError(int status, const std::string error_text); void onAddressChangeCallback(std::string url); - void onNavigateURLCallback(std::string url, std::string target); + void onOpenPopupCallback(std::string url, std::string target); bool onHTTPAuthCallback(const std::string host, const std::string realm, std::string& username, std::string& password); void onCursorChangedCallback(dullahan::ECursorType type); const std::vector onFileDialog(dullahan::EFileDialogType dialog_type, const std::string dialog_title, const std::string default_file, const std::string dialog_accept_filter, bool& use_default); @@ -265,7 +265,7 @@ void MediaPluginCEF::onAddressChangeCallback(std::string url) //////////////////////////////////////////////////////////////////////////////// // -void MediaPluginCEF::onNavigateURLCallback(std::string url, std::string target) +void MediaPluginCEF::onOpenPopupCallback(std::string url, std::string target) { LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "click_href"); message.setValue("uri", url); @@ -488,7 +488,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string) mCEFLib->setOnLoadEndCallback(std::bind(&MediaPluginCEF::onLoadEndCallback, this, std::placeholders::_1)); mCEFLib->setOnLoadErrorCallback(std::bind(&MediaPluginCEF::onLoadError, this, std::placeholders::_1, std::placeholders::_2)); mCEFLib->setOnAddressChangeCallback(std::bind(&MediaPluginCEF::onAddressChangeCallback, this, std::placeholders::_1)); - mCEFLib->setOnNavigateURLCallback(std::bind(&MediaPluginCEF::onNavigateURLCallback, this, std::placeholders::_1, std::placeholders::_2)); + mCEFLib->setOnOpenPopupCallback(std::bind(&MediaPluginCEF::onOpenPopupCallback, this, std::placeholders::_1, std::placeholders::_2)); mCEFLib->setOnHTTPAuthCallback(std::bind(&MediaPluginCEF::onHTTPAuthCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); mCEFLib->setOnFileDialogCallback(std::bind(&MediaPluginCEF::onFileDialog, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5)); mCEFLib->setOnCursorChangedCallback(std::bind(&MediaPluginCEF::onCursorChangedCallback, this, std::placeholders::_1)); -- cgit v1.2.3 From f82548b931af69a08d53818ec7a96a967c05151c Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Sat, 31 Mar 2018 10:59:39 -0400 Subject: MAINT-8474: Xcode 9.3 insists that comparators use const operator(). --- indra/llui/llnotifications.h | 2 +- indra/newview/lltextureview.cpp | 2 +- indra/newview/llviewerregion.h | 2 +- indra/newview/llvocache.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'indra') diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h index ccdfb90054..1509446920 100644 --- a/indra/llui/llnotifications.h +++ b/indra/llui/llnotifications.h @@ -703,7 +703,7 @@ namespace LLNotificationComparators { struct orderByUUID { - bool operator()(LLNotificationPtr lhs, LLNotificationPtr rhs) + bool operator()(LLNotificationPtr lhs, LLNotificationPtr rhs) const { return lhs->id() < rhs->id(); } diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp index b7786bcdd7..6da13da58c 100644 --- a/indra/newview/lltextureview.cpp +++ b/indra/newview/lltextureview.cpp @@ -736,7 +736,7 @@ LLTextureView::~LLTextureView() typedef std::pair decode_pair_t; struct compare_decode_pair { - bool operator()(const decode_pair_t& a, const decode_pair_t& b) + bool operator()(const decode_pair_t& a, const decode_pair_t& b) const { return a.first > b.first; } diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index 69fb9c4d4e..302647215f 100644 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -440,7 +440,7 @@ public: struct CompareRegionByLastUpdate { - bool operator()(const LLViewerRegion* const& lhs, const LLViewerRegion* const& rhs) + bool operator()(const LLViewerRegion* const& lhs, const LLViewerRegion* const& rhs) const { S32 lpa = lhs->getLastUpdate(); S32 rpa = rhs->getLastUpdate(); diff --git a/indra/newview/llvocache.h b/indra/newview/llvocache.h index 7d450c5231..594d38249b 100644 --- a/indra/newview/llvocache.h +++ b/indra/newview/llvocache.h @@ -59,7 +59,7 @@ public: struct CompareVOCacheEntry { - bool operator()(const LLVOCacheEntry* const& lhs, const LLVOCacheEntry* const& rhs) + bool operator()(const LLVOCacheEntry* const& lhs, const LLVOCacheEntry* const& rhs) const { F32 lpa = lhs->getSceneContribution(); F32 rpa = rhs->getSceneContribution(); -- cgit v1.2.3 From ff6afbd376508b33111a5fe9362b5d71d7c759fd Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 12 Apr 2018 14:16:27 -0400 Subject: increment viewer version to 5.1.4 --- indra/newview/VIEWER_VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index cdb98d26e4..76e9e619d6 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -5.1.3 +5.1.4 -- cgit v1.2.3