summaryrefslogtreecommitdiff
path: root/indra/media_plugins/cef
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2015-11-13 16:39:51 -0800
committerRider Linden <rider@lindenlab.com>2015-11-13 16:39:51 -0800
commit0a47b491de48b03071aad3c074ab92064b334c71 (patch)
tree40041d049d34c1bfad98e46f0953661692b36fdf /indra/media_plugins/cef
parentdf29aab81ba962d29b541fb84ffe0a682abcfaf5 (diff)
parentec55f2cd10db838140b34b04717e9e50a6b736ce (diff)
Merged callum_linden/viewer-cef into default
Diffstat (limited to 'indra/media_plugins/cef')
-rw-r--r--indra/media_plugins/cef/CMakeLists.txt4
-rw-r--r--indra/media_plugins/cef/media_plugin_cef.cpp16
2 files changed, 15 insertions, 5 deletions
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index 16015be672..1f6163e41e 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -61,7 +61,7 @@ set (media_plugin_cef_LINK_LIBRARIES
if (LINUX)
message(FATAL_ERROR "CEF plugin has been enabled for a Linux compile.\n"
" Please create a volume_catcher implementation for this platform.")
-
+
elseif (DARWIN)
list(APPEND media_plugin_cef_SOURCE_FILES mac_volume_catcher.cpp)
find_library(CORESERVICES_LIBRARY CoreServices)
@@ -98,7 +98,7 @@ if (WINDOWS)
set_target_properties(
media_plugin_cef
PROPERTIES
- LINK_FLAGS "/MANIFEST:NO /SAFESEH:NO /NODEFAULTLIB:LIBCMT"
+ LINK_FLAGS "/MANIFEST:NO /SAFESEH:NO /LTCG /NODEFAULTLIB:LIBCMT"
LINK_FLAGS_DEBUG "/MANIFEST:NO /SAFESEH:NO /NODEFAULTLIB:LIBCMTD"
)
endif (WINDOWS)
diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp
index be69858d47..60f6264db4 100644
--- a/indra/media_plugins/cef/media_plugin_cef.cpp
+++ b/indra/media_plugins/cef/media_plugin_cef.cpp
@@ -62,6 +62,7 @@ private:
void onStatusMessageCallback(std::string value);
void onTitleChangeCallback(std::string title);
void onLoadStartCallback();
+ void onRequestExitCallback();
void onLoadEndCallback(int httpStatusCode);
void onAddressChangeCallback(std::string url);
void onNavigateURLCallback(std::string url, std::string target);
@@ -128,7 +129,6 @@ MediaPluginBase(host_send_func, host_user_data)
//
MediaPluginCEF::~MediaPluginCEF()
{
- mLLCEFLib->requestExit();
}
////////////////////////////////////////////////////////////////////////////////
@@ -201,6 +201,16 @@ void MediaPluginCEF::onLoadStartCallback()
////////////////////////////////////////////////////////////////////////////////
//
+void MediaPluginCEF::onRequestExitCallback()
+{
+ mLLCEFLib->shutdown();
+
+ LLPluginMessage message("base", "goodbye");
+ sendMessage(message);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//
void MediaPluginCEF::onLoadEndCallback(int httpStatusCode)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "navigate_complete");
@@ -344,8 +354,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
}
else if (message_name == "cleanup")
{
- LLPluginMessage message("base", "goodbye");
- sendMessage(message);
+ mLLCEFLib->requestExit();
}
else if (message_name == "shm_added")
{
@@ -401,6 +410,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
mLLCEFLib->setOnNavigateURLCallback(boost::bind(&MediaPluginCEF::onNavigateURLCallback, this, _1, _2));
mLLCEFLib->setOnHTTPAuthCallback(boost::bind(&MediaPluginCEF::onHTTPAuthCallback, this, _1, _2, _3, _4));
mLLCEFLib->setOnCursorChangedCallback(boost::bind(&MediaPluginCEF::onCursorChangedCallback, this, _1, _2));
+ mLLCEFLib->setOnRequestExitCallback(boost::bind(&MediaPluginCEF::onRequestExitCallback, this));
LLCEFLib::LLCEFLibSettings settings;
settings.initial_width = 1024;