Add AV White list helper

Initial version, text may need cleaning up based on support experience
wiki page can be adjusted to use the new floater to better guide actions.
master
Beq 2024-05-26 01:37:30 +01:00
parent 29811637a4
commit a0367b968e
6 changed files with 182 additions and 0 deletions

View File

@ -184,6 +184,9 @@ set(viewer_SOURCE_FILES
vjfloaterlocalmesh.cpp
vjlocalmeshimportdae.cpp
# Whitelist helper
fsfloaterwhitelisthelper.cpp
llaccountingcostmanager.cpp
llaisapi.cpp
llagent.cpp
@ -978,6 +981,9 @@ set(viewer_HEADER_FILES
vjfloaterlocalmesh.h
vjlocalmeshimportdae.h
# whitelist helper
fsfloaterwhitelisthelper.h
llaccountingcostmanager.h
llaisapi.h
llagent.h

View File

@ -0,0 +1,75 @@
#include "fsfloaterwhitelisthelper.h"
#include "lltextbox.h"
#include "lltexteditor.h"
#include "lluictrlfactory.h"
#include "llviewercontrol.h"
#include "lldir.h"
FSFloaterWhiteListHelper::FSFloaterWhiteListHelper(const LLSD& key) : LLFloater(key)
{
}
FSFloaterWhiteListHelper::~FSFloaterWhiteListHelper()=default;
BOOL FSFloaterWhiteListHelper::postBuild()
{
LLTextEditor* text_editor = getChild<LLTextEditor>("whitelist_text");
if (text_editor)
{
populateWhitelistInfo();
}
return TRUE;
}
void FSFloaterWhiteListHelper::populateWhitelistInfo()
{
// Hopefully we can trash this bit soon in favor of webRTC
#if LL_WINDOWS
// On windows use exe (not work or RO) directory
std::string voiceexe_path = gDirUtilp->getExecutableDir();
gDirUtilp->append(voiceexe_path, "SLVoice.exe");
#elif LL_DARWIN
// On MAC use resource directory
std::string voiceexe_path = gDirUtilp->getAppRODataDir();
gDirUtilp->append(voiceexe_path, "SLVoice");
#else
std::string voiceexe_path = gDirUtilp->getExecutableDir();
bool usingWine = gSavedSettings.getBOOL("FSLinuxEnableWin64VoiceProxy");
if (!usingWine)
{
gDirUtilp->append(voiceexe_path, "SLVoice"); // native version
}
else
{
gDirUtilp->append(voiceexe_path, "win64/SLVoice.exe"); // use bundled win64 version
}
#endif
const std::string& slpluginexe_path = gDirUtilp->getLLPluginLauncher();
std::string whitelist_folder_info =
gDirUtilp->getExecutableDir() + "\n" // Executable Dir
+ gDirUtilp->getOSUserAppDir() + "\n" // Top-level User Data Dir
+ gDirUtilp->getCacheDir(); // "Cache Dir
std::string whitelist_exe_info =
gDirUtilp->getExecutableFilename() + "\n" // Viewer Binary
+ gDirUtilp->getExecutablePathAndName() + "\n" // Viewer Binary full path
+ gDirUtilp->getBaseFileName(voiceexe_path, false) + "\n" // " Voice Binary"
+ voiceexe_path + "\n" // slvoice full path
+ gDirUtilp->getBaseFileName(slpluginexe_path, false) + "\n" // SLPlugin Launcher Binary
+ slpluginexe_path + "\n"; // SLPlugin Launcher full path
LLTextEditor* text_editor = getChild<LLTextEditor>("whitelist_folders_editor");
if (text_editor)
{
text_editor->setText(whitelist_folder_info);
}
text_editor = getChild<LLTextEditor>("whitelist_exes_editor");
if (text_editor)
{
text_editor->setText(whitelist_exe_info);
}
}

View File

@ -0,0 +1,17 @@
#ifndef FSFLOATERWHITELISTHELPER_H
#define FSFLOATERWHITELISTHELPER_H
#include "llfloater.h"
class FSFloaterWhiteListHelper : public LLFloater
{
public:
explicit FSFloaterWhiteListHelper(const LLSD& key);
~FSFloaterWhiteListHelper() final;
public:
BOOL postBuild() final;
private:
void populateWhitelistInfo();
};
#endif // FSFLOATERWHITELISTHELPER_H

View File

@ -229,6 +229,7 @@
#include "particleeditor.h"
#include "quickprefs.h"
#include "vjfloaterlocalmesh.h" // local mesh
#include "fsfloaterwhitelisthelper.h" // fs whitelist helper
// handle secondlife:///app/openfloater/{NAME} URLs
@ -649,6 +650,8 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("sound_explorer", "floater_NACL_explore_sounds.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<NACLFloaterExploreSounds>);
LLFloaterReg::add("vram_usage", "floater_fs_vram_usage.xml", static_cast<LLFloaterBuildFunc>(&LLFloaterReg::build<FSFloaterVRAMUsage>));
LLFloaterReg::add("local_mesh_floater", "floater_vj_local_mesh.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLocalMesh>); // local mesh
LLFloaterReg::add("fs_whitelist_floater", "floater_whitelist.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterWhiteListHelper>); // white list advisor
LLFloaterReg::registerControlVariables(); // Make sure visibility and rect controls get preserved when saving
}

View File

@ -0,0 +1,74 @@
<floater name="whitelist_floater"
title="Whitelist Folders and Binaries"
width="700"
height="470"
can_minimize="true"
can_resize="false">
<text
follows="top|left|right"
font="SansSerif"
height="120"
layout="topleft"
left="11"
name="whitelist_intro"
top="16"
width="689"
wrap="true">
Anti-virus and Anti-malware are an essential part of safe internet use, but they can cause a variety of issues for the viewer.
To reduce interference and improve stability and performance, we strongly advise that all users ensure that there are exclusions (known as Whitelisting) for important folders and programs that the viewer uses.
For more detailed information, visit
https://wiki.firestormviewer.org/antivirus_whitelisting
</text>
<text
follows="top|left|right"
font="SansSerif"
height="35"
layout="topleft"
left="11"
name="whitelist_folder_instruction"
top_pad="10"
width="689"
wrap="true">
To help simpify the task the box below shows the folders the viewer is using.
Please add these to your AV folder exclusions as shown on the above wiki page.
</text>
<text_editor
parse_urls="true"
follows="top|left|right|bottom"
font="SansSerif"
height="100"
bg_readonly_color="Transparent"
left="5"
max_length="65536"
name="whitelist_folders_editor"
top_pad="5"
width="689"
word_wrap="true" />
<text
follows="top|left|right"
font="SansSerif"
height="35"
layout="topleft"
left="11"
name="whitelist_exe_instruction"
top_pad="5"
width="689"
wrap="true">
The following box is the name and full path of the viewer executables.
Add these to you AV executable exclusions as shown in the above wiki.
</text>
<text_editor
parse_urls="true"
follows="top|left|right|bottom"
font="SansSerif"
height="130"
bg_readonly_color="Transparent"
left="5"
max_length="65536"
name="whitelist_exes_editor"
top_pad="5"
width="689"
word_wrap="true" />
</floater>

View File

@ -2642,6 +2642,13 @@
parameter="http://community.secondlife.com/t5/Blogs/ct-p/Blogs"/>
</menu_item_call>-->
<menu_item_separator/>
<menu_item_call
name="whitelist_folders"
label="Whitelist adviser">
<menu_item_call.on_click
function="Floater.Show"
parameter="fs_whitelist_floater" />
</menu_item_call>
<menu_item_check
label="Check Grid status"
name="Grid Status">