Ограничения Manifest v2, как сказано выше, запрещают использовать Eval, новые функции и встроенные сценарии - даже при игре с политикой безопасности контента: нет способа ослабить эту политику безопасности в расширениях v2.
Большинство библиотек шаблонов в тот или иной момент используют evals.Одно из решений - переписать ваши расширения так, чтобы вся логика находилась в javascript, а не в шаблоне;решение, такое как google jstemplate , должно в этом случае быть пригодным для использования.
Тем не менее, есть возможность сделать Eval и новую функцию внутри изолированного iframe , напримерсо следующими строками в манифесте:
"sandbox": {
"pages": [
"page1.html",
"directory/page2.html"
]
},
Страница с песочницей не будет иметь доступа к API расширений или приложений или прямого доступа к страницам без песочницы (она может связываться с ними через postMessage ()).Вы можете дополнительно ограничить права на изолированную программную среду с помощью определенного CSP
Теперь полный пример от команды Google Chrome для github eval в iframe о том, как обойти проблему, общаясь с изолированной программной средойiframe, а также краткое руководство по аналитике
Надеемся, что некоторые библиотеки появятся при использовании этого механизма для обеспечения полной совместимости с использованием стандартных шаблонов, хотя я бы посоветовал удалить как можно больше логики изшаблоны, насколько это возможно по соображениям производительности ...
Благодаря Google, в линейке есть много переписанных расширений: (* 1024 *