Разрешен запуск CEF3 с доступом к незашифрованному плагину? - PullRequest
0 голосов
/ 01 ноября 2018

Моя команда внедрила CEF3 (версия 66) и обошла диалоговое окно с предупреждением о песочнице.

Мы по-прежнему требуем, чтобы браузер " Просил ", чтобы пользователь разрешил " Доступ к незашифрованному плагину " или "Разрешить" по умолчанию вместо "Блокировка", которая это то, что он в настоящее время делает.

Обычно доступ к такой настройке осуществляется через страницу настроек сайта в таких браузерах, как Google Chrome:

[Image of Setting in Google Chrome]

Однако мы не можем упростить это в нашей среде и вместо этого должны были бы установить этот флаг при запуске или программно.

Обратите внимание, что ранее мы интегрировали различные версии CEF (CEF1 v27 -> CEF3 v39, v45 и т. Д.), Не сталкиваясь с этой проблемой. Кажется, что настройка разрешать незаштрихованные плагины по умолчанию отключена, несмотря на отключение общей изолированной программной среды для экземпляра браузера с помощью различных флагов и настроек в коде.

Любые предложения, по которым флаг (ы) использовать при запуске или как программным путем достичь этого, будут очень благодарны.

-AL.

ОБНОВЛЕНИЕ 1

Я написал расширение для Chrome, которое может устанавливать права с помощью фонового сценария js:

chrome.contentSettings.unsandboxedPlugins.set({
  'primaryPattern': "<all_urls>",
  'setting': "allow"
}); 

Plugin-driven Toggle

Однако я не уверен, к каким базовым вызовам в 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 может достичь этого, но мне определенно нужно подтверждение от кого-либо с некоторыми ноу-хау, прежде чем идти по этому пути.

...