Моя команда внедрила CEF3 (версия 66) и обошла диалоговое окно с предупреждением о песочнице.
Мы по-прежнему требуем, чтобы браузер " Просил ", чтобы пользователь разрешил " Доступ к незашифрованному плагину " или "Разрешить" по умолчанию вместо "Блокировка", которая это то, что он в настоящее время делает.
Обычно доступ к такой настройке осуществляется через страницу настроек сайта в таких браузерах, как Google Chrome:
![[Image of Setting in Google Chrome]](https://i.stack.imgur.com/CmoI8.jpg)
Однако мы не можем упростить это в нашей среде и вместо этого должны были бы установить этот флаг при запуске или программно.
Обратите внимание, что ранее мы интегрировали различные версии CEF (CEF1 v27 -> CEF3 v39, v45 и т. Д.), Не сталкиваясь с этой проблемой. Кажется, что настройка разрешать незаштрихованные плагины по умолчанию отключена, несмотря на отключение общей изолированной программной среды для экземпляра браузера с помощью различных флагов и настроек в коде.
Любые предложения, по которым флаг (ы) использовать при запуске или как программным путем достичь этого, будут очень благодарны.
-AL.
ОБНОВЛЕНИЕ 1
Я написал расширение для Chrome, которое может устанавливать права с помощью фонового сценария js:
chrome.contentSettings.unsandboxedPlugins.set({
'primaryPattern': "<all_urls>",
'setting': "allow"
});
![Plugin-driven Toggle](https://i.stack.imgur.com/SRkaL.jpg)
Однако я не уверен, к каким базовым вызовам в CEF это разрешается, или я бы сделал вызов непосредственно в нашей собственной кодовой базе.
Я понимаю, что расширения Chrome в настоящее время не могут быть интегрированы с CEF.
Я надеялся, что создание расширения покажет что-то о базовом коде CEF. Увы ...
Я просмотрел _cef_browser_settings_t и, кроме настройки плагинов (которая либо включает, либо отключает все плагины), я не вижу ничего, имеющего отношение к разрешению unandboxed плагины.
ОБНОВЛЕНИЕ 2
После обхода источника CEF я заметил это в нашей собственной ветке, в content_settings.json :
"unsandboxedPlugins": {
"$ref": "ContentSetting",
"description": "Whether to allow sites to run plugins unsandboxed. One of <br><var>allow</var>: Allow sites to run plugins unsandboxed,<br><var>block</var>: Don't allow sites to run plugins unsandboxed,<br><var>ask</var>: Ask when a site wants to run a plugin unsandboxed. <br>Default is <var>ask</var>.<br>The primary URL is the URL of the top-level frame. The secondary URL is not used.",
"value": [
"ppapi-broker",
{"$ref":"PpapiBrokerContentSetting"}
]
},
где PpapiBrokerContentSetting определяется как:
{
"id": "PpapiBrokerContentSetting",
"type": "string",
"enum": ["allow", "block", "ask"]
},
Я хотел бы внести изменения в это и перестроить CEF, но перестройка - чрезвычайно трудоемкий процесс, который может занять много дней.
Если кто-нибудь мог бы посоветовать, как изменить это, чтобы принудительно установить «Разрешить», это может стоить пересобрать.
Мое инстинктивное чувство заключается в том, что удаление «блока» и «запроса» из определения PpapiBrokerContentSetting может достичь этого, но мне определенно нужно подтверждение от кого-либо с некоторыми ноу-хау, прежде чем идти по этому пути.