diff --git a/autobuild.xml b/autobuild.xml index 6087c92586..7fc1bc47b3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -833,26 +833,14 @@ name darwin64 - linux - - archive - - hash - bd0f62a03d846332adf07997e307cde6 - url - http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-linux-180871715.tar.bz2 - - name - linux - linux64 archive hash - 48d316c0ceb898f7577015df75b6d303 + 9fad2e6e1fb3c698afa2b9094deb8422 url - http://downloads.phoenixviewer.com/dullahan-1.1.1320_3.3626.1895.g7001d56-linux64-191221910.tar.bz2 + http://downloads.phoenixviewer.com/dullahan-1.6.4.202005232231_81.3.3_g072a5f5_chromium-81.0.4044.147-linux64-201442030.tar.bz2 name linux64 @@ -1032,11 +1020,11 @@ archive hash - aed9fbd15995e71f9b600eb2ed2b73b1 + 88b1ac40d0b2cc1cf862260bb1297a54 hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-2.00.08-linux64-201031328.tar.bz2 + file:///opt/firestorm/fmodstudio-2.01.01-linux64-201412258.tar.bz2 name linux64 @@ -1046,11 +1034,11 @@ archive hash - 670b2dc83403cc9024bc68728d851a4d + 5c182fe2303511c35480d00d9b6832dc hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-2.00.08-windows-200921513.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-2.01.01-windows-201411851.tar.bz2 name windows @@ -1060,18 +1048,18 @@ archive hash - b97c88e262d37dd1514c0e580a8cc775 + 10fcd058ec0da77273c61aca78081ede hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-2.00.08-windows64-200921514.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-2.01.01-windows64-201412005.tar.bz2 name windows64 version - 2.00.08 + 2.01.01 fontconfig diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index a4f7e1e0e5..9fee605021 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -61,7 +61,7 @@ if (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) set(INSTALL_PROPRIETARY ON CACHE BOOL "Install proprietary binaries") endif (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) set(TEMPLATE_VERIFIER_OPTIONS "" CACHE STRING "Options for scripts/template_verifier.py") -set(TEMPLATE_VERIFIER_MASTER_URL "http://bitbucket.org/lindenlab/master-message-template/raw/tip/message_template.msg" CACHE STRING "Location of the master message template") +set(TEMPLATE_VERIFIER_MASTER_URL "https://bitbucket.org/lindenlab/master-message-template-git/raw/HEAD/message_template.msg" CACHE STRING "Location of the master message template") if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING diff --git a/indra/llcommon/llprocess.h b/indra/llcommon/llprocess.h index ae98e6e37e..e3386ad88e 100644 --- a/indra/llcommon/llprocess.h +++ b/indra/llcommon/llprocess.h @@ -250,15 +250,6 @@ public: * executable name. */ Optional desc; - - /** - HACK! libcef.so bleeds that intrusive tcmalloc hacks all over the process. - This then causes awesome effects like crashes and memory corruption when the so is loaded dynamically. - We uses this argument to force libcef.so be preloaded, which fixes this. - The other solution would be to recompile CEF twice (x86/x64) for each CEF update. Which I really would like to avoid. - */ - Optional preload; - }; typedef LLSDParamAdapter LLSDOrParams; diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index f75d57bf91..3738341bae 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -41,6 +41,7 @@ #include #include "dullahan.h" +#include "dullahan_version.h" //////////////////////////////////////////////////////////////////////////////// // @@ -509,7 +510,9 @@ void MediaPluginCEF::receiveMessage(const char* message_string) settings.background_color = 0xffffffff; settings.cache_enabled = true; settings.cache_path = mCachePath; +#if (DULLAHAN_VERSION_MAJOR*100+DULLAHAN_VERSION_MINOR) < 106 settings.cookie_store_path = mCookiePath; +#endif settings.cookies_enabled = mCookiesEnabled; settings.disable_gpu = mDisableGPU; settings.flash_enabled = mPluginsEnabled; @@ -664,8 +667,10 @@ void MediaPluginCEF::receiveMessage(const char* message_string) else if (message_name == "scroll_event") { // Mouse coordinates for cef to be able to scroll 'containers' - //S32 x = message_in.getValueS32("x"); - //S32 y = message_in.getValueS32("y"); +#if (DULLAHAN_VERSION_MAJOR*100+DULLAHAN_VERSION_MINOR) >= 106 + S32 x = message_in.getValueS32("x"); + S32 y = message_in.getValueS32("y"); +#endif // Wheel's clicks S32 delta_x = message_in.getValueS32("clicks_x"); S32 delta_y = message_in.getValueS32("clicks_y"); @@ -673,8 +678,11 @@ void MediaPluginCEF::receiveMessage(const char* message_string) delta_x *= -scaling_factor; delta_y *= -scaling_factor; - // mCEFLib->mouseWheel(x, y, delta_x, delta_y); +#if (DULLAHAN_VERSION_MAJOR*100+DULLAHAN_VERSION_MINOR) >= 106 + mCEFLib->mouseWheel(x, y, delta_x, delta_y); +#else mCEFLib->mouseWheel(delta_x, delta_y); +#endif } else if (message_name == "text_event") { diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index e59cbd4829..17302218ef 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -53,7 +53,7 @@ include(TemplateCheck) include(UI) include(UnixInstall) include(ViewerMiscLibs) -include(ViewerManager) +#include(ViewerManager) # Remove VMP include(VisualLeakDetector) include(URIPARSER) include(Growl) diff --git a/indra/newview/fsfloaterim.cpp b/indra/newview/fsfloaterim.cpp index 8da302378a..01681486d2 100644 --- a/indra/newview/fsfloaterim.cpp +++ b/indra/newview/fsfloaterim.cpp @@ -450,12 +450,17 @@ void FSFloaterIM::sendMsgFromInputEditor(EChatType type) size_t insert_pos = is_irc_me_prefix(utf8_text) ? 4 : 0; //For testing/beta groups, we display the build version since it doesn't speed by and this might change often - if(chat_prefix_testing && FSData::getInstance()->isTestingGroup(mSessionID)) - utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); - + if(FSData::getInstance()->isTestingGroup(mSessionID)) + { + if(chat_prefix_testing) + utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + } //For release support groups, only display the short version(Major.Minor.Patch) since chat can speed by. This makes it easier on Support's eyes. - else if(chat_prefix_support && FSData::getInstance()->isSupportGroup(mSessionID)) - utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + else if(FSData::getInstance()->isSupportGroup(mSessionID)) + { + if(chat_prefix_support) + utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + } } // Allow user to send system info. diff --git a/indra/newview/fslslpreproc.cpp b/indra/newview/fslslpreproc.cpp index a774b17877..5ac6c6dcd9 100644 --- a/indra/newview/fslslpreproc.cpp +++ b/indra/newview/fslslpreproc.cpp @@ -43,6 +43,7 @@ #include "llvfile.h" #include "llviewercontrol.h" #include "llcompilequeue.h" +#include "llnotificationsutil.h" #ifdef __GNUC__ // There is a sprintf( ... "%d", size_t_value) buried inside boost::wave. In order to not mess with system header, I rather disable that warning here. @@ -980,7 +981,7 @@ static std::string minimalize_whitespace(std::string in) } */ -static std::string reformat_switch_statements(std::string script) +static std::string reformat_switch_statements(std::string script, bool &lackDefault) { std::string buffer = script; { @@ -1017,7 +1018,7 @@ static std::string reformat_switch_statements(std::string script) S32 cutlen = slen + arg.length() + rstate.length(); // Call recursively to process nested switch statements (FIRE-10517) - rstate = reformat_switch_statements(rstate); + rstate = reformat_switch_statements(rstate, lackDefault); //rip off the scope edges S32 slicestart = rstate.find("{") + 1; @@ -1075,7 +1076,7 @@ static std::string reformat_switch_statements(std::string script) } std::string deflt = quicklabel(); - bool isdflt = false; + bool hasdflt = false; std::string defstate; defstate = boost::regex_replace(rstate, boost::regex(rDOT_MATCHES_NEWLINE rCMNT_OR_STR "|" rSPC "++" @@ -1083,7 +1084,7 @@ static std::string reformat_switch_statements(std::string script) , boost::regex::perl), "?1@" + deflt + ";$2:$&", boost::format_all); if (defstate != rstate) { - isdflt = true; + hasdflt = true; rstate = defstate; } std::string argl; @@ -1094,19 +1095,22 @@ static std::string reformat_switch_statements(std::string script) { jumptable += "if(" + arg + " == (" + ifs_it->first + "))jump " + ifs_it->second + ";\n"; } - if (isdflt) + std::string brk = quicklabel(); + if (!hasdflt) { - jumptable += "jump " + deflt + ";\n"; + // Add jump to break position if there's no default (FIRE-17710) + deflt = brk; + lackDefault = true; } + jumptable += "jump " + deflt + ";\n"; rstate = jumptable + rstate + "\n"; - std::string brk = quicklabel(); defstate = boost::regex_replace(rstate, boost::regex(rDOT_MATCHES_NEWLINE rCMNT_OR_STR "|" "(?doSaveComplete((void*)mCore, mClose, mSync); } } + if (lackDefault) + { + LLNotificationsUtil::add("DefaultLabelMissing"); + } mWaving = false; } diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh index 8363736f8e..57da1b18ae 100755 --- a/indra/newview/linux_tools/wrapper.sh +++ b/indra/newview/linux_tools/wrapper.sh @@ -148,8 +148,6 @@ then export LD_PRELOAD="${LD_PRELOAD}:${FSJEMALLOC}" fi -export FS_CEF_PRELOAD="libcef.so" - # Copy "$@" to ARGS array specifically to delete the --skip-gridargs switch. # The gridargs.dat file is no more, but we still want to avoid breaking # scripts that invoke this one with --skip-gridargs. diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 7333dfe7b4..2cd654e9e9 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -145,6 +145,7 @@ #include "llexception.h" //#if !LL_LINUX #include "cef/dullahan.h" +#include "cef/dullahan_version.h" #include "vlc/libvlc_version.h" //#endif // LL_LINUX diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp index 9c5510a739..fc80404865 100644 --- a/indra/newview/llappviewerlinux.cpp +++ b/indra/newview/llappviewerlinux.cpp @@ -156,6 +156,7 @@ int main( int argc, char **argv ) // install crash handlers viewer_app_ptr->setErrorHandler(LLAppViewer::handleViewerCrash); + unsetenv( "LD_PRELOAD" ); // Get rid of any preloading, we do not want this to happen during startup of plugins. exportFlashVars(); // Try to autodetect installed pepper flash. bool ok = viewer_app_ptr->init(); diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 481aecedc4..d3470351c5 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -391,7 +391,7 @@ void LLToastAlertPanel::setVisible( BOOL visible ) // FIRE-4322: The "bing" system sound missing // if( visible && !LLToastPanel::getVisible() ) LLToastPanel::setVisible( visible ); - if( visible ) + if (visible && !LLApp::isExiting()) // { make_ui_sound("UISndAlert"); diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index 4a62b2ec25..a0e555720f 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -131,7 +131,7 @@ - + diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index aa12171502..98ce1a0652 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -249,7 +249,7 @@ Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut. - Das Starten mehrerer Second Life Viewer wird nicht unterstützt. Dies kann zu Kollisionen des Textur-Caches, Fehlern sowie verschlechterter Grafik und Leistung führen. + Das Starten mehrerer [APP_NAME] Viewer wird nicht unterstützt. Dies kann zu Kollisionen des Textur-Caches, Fehlern sowie verschlechterter Grafik und Leistung führen. @@ -4998,24 +4998,30 @@ Aktueller Wert: [CURRENT_VALUE] - -Teleportieren zum Avatar nicht möglich, da die exakte Position unbekannt ist. - + + + Das Verhalten der switch-Anweisung ohne einen „default“-Fall war bislang inkorrekt und wurde korrigiert. +Siehe FIRE-17710 für Details. + - -Zoomen auf Avatar nicht möglich, da er sich außerhalb der Reichweite befindet. - + + Teleportieren zum Avatar nicht möglich, da die exakte Position unbekannt ist. + - -Verfolgen des Avatars nicht möglich, da er sich außerhalb der Radar-Reichweite befindet. - - - -Der Viewercache ist momentan leer. Während des Downloads von neuen Inhalten kann es daher zu niedrigeren Frameraten und langsamerem Laden des Inventars kommen. - + + Zoomen auf Avatar nicht möglich, da er sich außerhalb der Reichweite befindet. + + + + Verfolgen des Avatars nicht möglich, da er sich außerhalb der Radar-Reichweite befindet. + + + + Der Viewercache ist momentan leer. Während des Downloads von neuen Inhalten kann es daher zu niedrigeren Frameraten und langsamerem Laden des Inventars kommen. + -Das Abspielen von Medien oder Musik kann deine Identität an Webseiten außerhalb von Second Life verraten. Durch das Einschalten des Filters kann ausgewählt werden, welche Webseiten Medien abspielen dürfen, wodurch eine bessere Kontrolle über die Privatspähre ermöglicht wird. +Das Abspielen von Medien oder Musik kann deine Identität an Webseiten außerhalb von [CURRENT_GRID] verraten. Durch das Einschalten des Filters kann ausgewählt werden, welche Webseiten Medien abspielen dürfen, wodurch eine bessere Kontrolle über die Privatspähre ermöglicht wird. Medienfilter aktivieren? (Diese Einstellung kann später unter Einstellungen > Sound & Medien geändert werden.) diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 323454116e..1581cee980 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1277,7 +1277,7 @@ parameter="fs_avatar_render_settings" /> - Running multiple Second Life viewers is not supported. It can lead to texture cache collisions, corruption and degraded visuals and performance. + Running multiple [APP_NAME] viewers is not supported. It can lead to texture cache collisions, corruption and degraded visuals and performance. @@ -6816,7 +6816,7 @@ The string [STRING_NAME] is missing from strings.xml. icon="alert.tga" name="EnableMediaFilter" type="alert"> -Playing media or music can expose your identity to sites outside Second Life. You can enable a filter that will allow you to select which sites will receive media requests, and give you better control over your privacy. +Playing media or music can expose your identity to sites outside [CURRENT_GRID]. You can enable a filter that will allow you to select which sites will receive media requests, and give you better control over your privacy. Enable the media filter? (You can change this option later under Preferences > Sound & Media.) @@ -10671,6 +10671,19 @@ Current setting: [CURRENT_VALUE] + + + +The behavior for switch() statements without a default case was previously incorrect and has been fixed. +See FIRE-17710 for details. + + + diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index f17a133bd2..d1e3f32ad2 100644 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -182,7 +182,7 @@ Wybierz pojedynczy obiekt i spróbuj jeszcze raz. Pamiętaj: kiedy włączysz tą opcję to każdy kto używa tego komputera będzie mógł zobaczyć Twoją listę ulubionych miejsc. - Uruchamianie kilku przeglądarek Second Life nie podlega wsparciu. Może prowadzić do kolizji pamięci podręcznej tekstur, jej uszkodzeń, pogorszenia efektów wizualnych oraz wydajności. + Uruchamianie kilku przeglądarek [APP_NAME] nie podlega wsparciu. Może prowadzić do kolizji pamięci podręcznej tekstur, jej uszkodzeń, pogorszenia efektów wizualnych oraz wydajności. Udzielenie praw modyfikacji innemu Rezydentowi umożliwia modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów. Używaj tej opcji z rozwagą! @@ -2504,7 +2504,7 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t Ciąg [STRING_NAME] nie został znaleziony w strings.xml - Odtwarzanie mediów lub muzyki może pozwolić na zidentyfikowanie Twojej tożsamości witrynom poza Second Life. Możesz włączyć filtr, który pozwoli określić które strony będą mogły odtwarzać media, da Ci lepszą kontrolę nad swoją prywatnością. + Odtwarzanie mediów lub muzyki może pozwolić na zidentyfikowanie Twojej tożsamości witrynom poza [CURRENT_GRID]. Możesz włączyć filtr, który pozwoli określić które strony będą mogły odtwarzać media, da Ci lepszą kontrolę nad swoją prywatnością. Włączyć filtr mediów? (Możesz zmienić potem tą opcję w Ustawienia > Dźwięk i Media.) @@ -3979,6 +3979,11 @@ Obecne ustawienie: [CURRENT_VALUE] + + +Zachowanie instrukcji switch() bez domyślnej etykiety było wcześniej niepoprawne i zostało naprawione. +Zobacz FIRE-17710 aby dowiedzieć się więcej. + Teleportacja do tego awatara nie jest możliwa, ponieważ dokładna pozycja nie jest znana. diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 682097c626..8df8055e6a 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1872,14 +1872,21 @@ class LinuxManifest(ViewerManifest): # CEF files with self.prefix(src=os.path.join(pkgdir, 'lib', 'release'), dst="lib"): self.path( "libcef.so" ) + self.fs_try_path( "libminigbm.so" ) with self.prefix(src=os.path.join(pkgdir, 'lib', 'release', 'swiftshader'), dst=os.path.join("bin", "swiftshader") ): self.path( "*.so" ) + with self.prefix(src=os.path.join(pkgdir, 'lib', 'release', 'swiftshader'), dst=os.path.join("lib", "swiftshader") ): + self.path( "*.so" ) with self.prefix(src=os.path.join(pkgdir, 'bin', 'release'), dst="bin"): self.path( "chrome-sandbox" ) self.path( "dullahan_host" ) - self.path( "natives_blob.bin" ) + self.fs_try_path( "natives_blob.bin" ) + self.path( "snapshot_blob.bin" ) + self.path( "v8_context_snapshot.bin" ) + with self.prefix(src=os.path.join(pkgdir, 'bin', 'release'), dst="lib"): + self.fs_try_path( "natives_blob.bin" ) self.path( "snapshot_blob.bin" ) self.path( "v8_context_snapshot.bin" ) @@ -1890,6 +1897,13 @@ class LinuxManifest(ViewerManifest): self.path( "cef_200_percent.pak" ) self.path( "devtools_resources.pak" ) self.path( "icudtl.dat" ) + with self.prefix(src=os.path.join(pkgdir, 'resources'), dst="lib"): + self.path( "cef.pak" ) + self.path( "cef_extensions.pak" ) + self.path( "cef_100_percent.pak" ) + self.path( "cef_200_percent.pak" ) + self.path( "devtools_resources.pak" ) + self.path( "icudtl.dat" ) with self.prefix(src=os.path.join(pkgdir, 'resources', 'locales'), dst=os.path.join('bin', 'locales')): self.path("am.pak") diff --git a/scripts/template_verifier.py b/scripts/template_verifier.py index b44410cdd8..8767904eac 100755 --- a/scripts/template_verifier.py +++ b/scripts/template_verifier.py @@ -229,7 +229,7 @@ http://wiki.secondlife.com/wiki/Template_verifier.py """) parser.add_option( '-u', '--master_url', type='string', dest='master_url', - default='http://bitbucket.org/lindenlab/master-message-template/raw/tip/message_template.msg', + default='https://bitbucket.org/lindenlab/master-message-template-git/raw/HEAD/message_template.msg', help="""The url of the master message template.""") parser.add_option( '-c', '--cache_master', action='store_true', dest='cache_master',