Merge branch 'master' into DRTVWR-539

master
Mnikolenko Productengine 2021-08-10 13:53:58 +03:00
commit fa57d7a39b
8 changed files with 86 additions and 69 deletions

View File

@ -580,9 +580,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>856ba0e5b7be4bf683cf2849bce845e0</string>
<string>49fff41e17e06cdf9eb0c737d20df52f</string>
<key>url</key>
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/72458/699860/dullahan-1.7.0.202011160759_81.3.10_gb223419_chromium-81.0.4044.138-darwin64-552313.tar.bz2</string>
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/83411/779825/dullahan-1.12.2.202106220202_91.1.21_g9dd45fe_chromium-91.0.4472.114-darwin64-560751.tar.bz2</string>
</map>
<key>name</key>
<string>darwin64</string>
@ -592,9 +592,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>515950c911a53ff910b18c7c417ea984</string>
<string>f51f324d50a2461cda273e84fa65e0ad</string>
<key>url</key>
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/72460/699870/dullahan-1.7.0.202011161603_81.3.10_gb223419_chromium-81.0.4044.138-windows-552313.tar.bz2</string>
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/83413/779836/dullahan-1.12.2.202106220213_91.1.21_g9dd45fe_chromium-91.0.4472.114-windows-560751.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@ -604,16 +604,16 @@
<key>archive</key>
<map>
<key>hash</key>
<string>f1dccbdfe0603f488eeee4c8f518c959</string>
<string>d3df46f6592715c75df2bf520c1ad68b</string>
<key>url</key>
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/72459/699874/dullahan-1.7.0.202011161603_81.3.10_gb223419_chromium-81.0.4044.138-windows64-552313.tar.bz2</string>
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/83412/779840/dullahan-1.12.2.202106220213_91.1.21_g9dd45fe_chromium-91.0.4472.114-windows64-560751.tar.bz2</string>
</map>
<key>name</key>
<string>windows64</string>
</map>
</map>
<key>version</key>
<string>1.7.0.202011161603_81.3.10_gb223419_chromium-81.0.4044.138</string>
<string>1.12.2.202106220213_91.1.21_g9dd45fe_chromium-91.0.4472.114</string>
</map>
<key>elfio</key>
<map>

View File

@ -73,6 +73,7 @@ private:
void onCursorChangedCallback(dullahan::ECursorType type);
const std::vector<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);
bool onJSDialogCallback(const std::string origin_url, const std::string message_text, const std::string default_prompt_text);
bool onJSBeforeUnloadCallback();
void postDebugMessage(const std::string& msg);
void authResponse(LLPluginMessage &message);
@ -375,6 +376,14 @@ bool MediaPluginCEF::onJSDialogCallback(const std::string origin_url, const std:
return true;
}
////////////////////////////////////////////////////////////////////////////////
//
bool MediaPluginCEF::onJSBeforeUnloadCallback()
{
// return true indicates we suppress the JavaScript UI entirely
return true;
}
////////////////////////////////////////////////////////////////////////////////
//
void MediaPluginCEF::onCursorChangedCallback(dullahan::ECursorType type)
@ -523,10 +532,26 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
mCEFLib->setOnCursorChangedCallback(std::bind(&MediaPluginCEF::onCursorChangedCallback, this, std::placeholders::_1));
mCEFLib->setOnRequestExitCallback(std::bind(&MediaPluginCEF::onRequestExitCallback, this));
mCEFLib->setOnJSDialogCallback(std::bind(&MediaPluginCEF::onJSDialogCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
mCEFLib->setOnJSBeforeUnloadCallback(std::bind(&MediaPluginCEF::onJSBeforeUnloadCallback, this));
dullahan::dullahan_settings settings;
#if LL_WINDOWS
// As of CEF version 83+, for Windows versions, we need to tell CEF
// where the host helper process is since this DLL is not in the same
// dir as the executable that loaded it (SLPlugin.exe). The code in
// Dullahan that tried to figure out the location automatically uses
// the location of the exe which isn't helpful so we tell it explicitly.
char cur_dir_str[MAX_PATH];
GetCurrentDirectoryA(MAX_PATH, cur_dir_str);
settings.host_process_path = std::string(cur_dir_str);
#endif
settings.accept_language_list = mHostLanguage;
settings.background_color = 0xffffffff;
// SL-15560: Product team overruled my change to set the default
// embedded background color to match the floater background
// and set it to white
settings.background_color = 0xffffffff; // white
settings.cache_enabled = true;
settings.root_cache_path = mRootCachePath;
settings.cache_path = mCachePath;
@ -537,7 +562,19 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
settings.disable_network_service = mDisableNetworkService;
settings.use_mock_keychain = mUseMockKeyChain;
#endif
settings.flash_enabled = mPluginsEnabled;
// This setting applies to all plugins, not just Flash
// Regarding, SL-15559 PDF files do not load in CEF v91,
// it turns out that on Windows, PDF support is treated
// as a plugin on Windows only so turning all plugins
// off, disabled built in PDF support. (Works okay in
// macOS surprisingly). To mitigrate this, we set the global
// media enabled flag to whatever the consumer wants and
// explicitly disable Flash with a different setting (below)
settings.plugins_enabled = mPluginsEnabled;
// SL-14897 Disable Flash support in the embedded browser
settings.flash_enabled = false;
settings.flip_mouse_y = false;
settings.flip_pixels_y = true;
settings.frame_rate = 60;
@ -546,8 +583,8 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
settings.initial_width = 1024;
settings.java_enabled = false;
settings.javascript_enabled = mJavascriptEnabled;
settings.media_stream_enabled = false; // MAINT-6060 - WebRTC media removed until we can add granualrity/query UI
settings.plugins_enabled = mPluginsEnabled;
settings.media_stream_enabled = false; // MAINT-6060 - WebRTC media removed until we can add granularity/query UI
settings.user_agent_substring = mCEFLib->makeCompatibleUserAgentString(mUserAgentSubtring);
settings.webgl_enabled = true;
settings.log_file = mCefLogFile;
@ -558,10 +595,10 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
mCEFLib->setCustomSchemes(custom_schemes);
bool result = mCEFLib->init(settings);
if (!result)
{
// if this fails, the media system in viewer will put up a message
}
if (!result)
{
// if this fails, the media system in viewer will put up a message
}
// now we can set page zoom factor
F32 factor = (F32)message_in.getValueReal("factor");

View File

@ -1 +1 @@
6.4.22
6.4.23

View File

@ -2076,17 +2076,6 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>BrowserPluginsEnabled</key>
<map>
<key>Comment</key>
<string>Enable Web plugins in the built-in Web browser?</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>ChatBarCustomWidth</key>
<map>
<key>Comment</key>

View File

@ -915,11 +915,19 @@ void _validateCert(int validation_policy,
}
if (validation_policy & VALIDATION_POLICY_SSL_KU)
{
// This stanza of code was changed 2021-06-09 as per details in SL-15370.
// Brief summary: a renewed certificate from Akamai only contains the
// 'Digital Signature' field and not the 'Key Encipherment' one. This code
// used to look for both and throw an exception at startup (ignored) and
// (for example) when buying L$ in the Viewer (fails with a UI message
// and an entry in the Viewer log). This modified code removes the second
// check for the 'Key Encipherment' field. If Akamai can provide a
// replacement certificate that has both fields, then this modified code
// will not be required.
if (current_cert_info.has(CERT_KEY_USAGE) && current_cert_info[CERT_KEY_USAGE].isArray() &&
(!(_LLSDArrayIncludesValue(current_cert_info[CERT_KEY_USAGE],
LLSD((std::string)CERT_KU_DIGITAL_SIGNATURE))) ||
!(_LLSDArrayIncludesValue(current_cert_info[CERT_KEY_USAGE],
LLSD((std::string)CERT_KU_KEY_ENCIPHERMENT)))))
LLSD((std::string)CERT_KU_DIGITAL_SIGNATURE)))
)
{
LLTHROW(LLCertKeyUsageValidationException(current_cert_info));
}

View File

@ -1745,14 +1745,14 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
bool cookies_enabled = gSavedSettings.getBOOL( "CookiesEnabled" );
media_source->cookies_enabled( cookies_enabled || clean_browser);
// collect 'plugins enabled' setting from prefs and send to embedded browser
bool plugins_enabled = gSavedSettings.getBOOL( "BrowserPluginsEnabled" );
media_source->setPluginsEnabled( plugins_enabled || clean_browser);
// collect 'javascript enabled' setting from prefs and send to embedded browser
bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" );
media_source->setJavascriptEnabled( javascript_enabled || clean_browser);
// As of SL-15559 PDF files do not load in CEF v91 we enable plugins
// but explicitly disable Flash (PDF support in CEF is now treated as a plugin)
media_source->setPluginsEnabled(true);
bool media_plugin_debugging_enabled = gSavedSettings.getBOOL("MediaPluginDebugging");
media_source->enableMediaPluginDebugging( media_plugin_debugging_enabled || clean_browser);

View File

@ -147,20 +147,6 @@
width="480" />
</radio_group>
<check_box
top_delta="2"
enabled="true"
follows="left|top"
height="18"
initial_value="true"
control_name="BrowserPluginsEnabled"
label="Enable plugins"
left_delta="20"
mouse_opaque="true"
name="browser_plugins_enabled"
radio_style="false"
width="400"
top_pad="5"/>
<check_box
top_delta="4"
enabled="true"
@ -241,24 +227,23 @@
height="10"
layout="topleft"
left="30"
name="Proxy Settings:"
name="Proxy Settings 1"
mouse_opaque="false"
top_pad="10"
width="300">
Proxy Settings:
</text>
<text
type="string"
length="1"
follows="left|top"
height="10"
layout="topleft"
left="80"
name="Proxy Settings 2"
mouse_opaque="false"
top_pad="5"
width="300">
Proxy Settings:
Your system's existing proxy settings will be used
</text>
<button
label="Adjust proxy settings"
follows="left|top"
height="23"
width="140"
label_selected="Browse"
layout="topleft"
left_delta="50"
name="set_proxy"
top_pad="5"
>
<button.commit_callback
function="Pref.Proxy" />
</button>
</panel>

View File

@ -616,11 +616,9 @@ class WindowsManifest(ViewerManifest):
# CEF files common to all configurations
with self.prefix(src=os.path.join(pkgdir, 'resources')):
self.path("cef.pak")
self.path("cef_100_percent.pak")
self.path("cef_200_percent.pak")
self.path("cef_extensions.pak")
self.path("devtools_resources.pak")
self.path("chrome_100_percent.pak")
self.path("chrome_200_percent.pak")
self.path("resources.pak")
self.path("icudtl.dat")
with self.prefix(src=os.path.join(pkgdir, 'resources', 'locales'), dst='locales'):