Я учусь писать расширение для Google. Я попробовал пример Google Charts и обнаружил ошибку:
Refused to load the script '
https://www.gstatic.com/charts/loader.js' because it violates the following Content Security Policy directive: "script-src 'self'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
<html>
<head>
<script type = "text/javascript" src = "https://www.gstatic.com/charts/loader.js"></script>
<script type = "text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]
]);
var options = {
title: 'Company Performance',
curveType: 'function',
legend: { position: 'bottom' }
};
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id = "curve_chart" style = "width: 900px; height: 500px"></div>
</body>
</html>
Вот manifest.json, который я использую
{
"name": "name",
"description": "description",
"icons": {
"16": "icon.png",
"32": "icon.png",
"48": "icon.png",
"128": "icon.png"
},
"action": {
"default_popup": "index.html"
},
"background": {
"service_worker": "./scripts/background.js",
"type": "module"
},
"manifest_version": 3,
"version": "1.0.1"
}
Я пробовал несколько решений для политики безопасности контента, но ни одно из них не работает для меня.
Вы не можете загружать внешние сценарии в расширение MV3. Загрузите скрипт loader.js
и включите его в свое расширение с помощью тега script. Кроме того, переместите встроенный скрипт в отдельный файл и загрузите его с тегом <script src = "yourscript.js"></script>
.
Пожалуйста, попробуйте это.
manifest.json
{
"name": "hoge",
"version": "1.0",
"manifest_version": 3,
"action": {
"default_popup": "index.html"
},
"sandbox": {
"pages": [
"index.html"
]
},
"content_security_policy": {
"sandbox": "sandbox allow-scripts; script-src 'unsafe-inline' 'self' https://www.gstatic.com"
}
}
Заголовок
Content-Security-Policy
вашего документа должен включатьscript-src 'self' *.gstatic.com
, чтобы разрешить загрузку скрипта.