Я боролся с этим в течение последнего дня, и в Интернете практически нет ресурсов для интеграции расширений Chrome и Mixpanel. Я бы хотел, чтобы эта тема была той, на которую люди ссылаются, когда имеют дело с интеграцией Mixpanel в расширение Chrome.
Целью моей интеграции с Mixpanel является возможность отслеживать события как с помощью моего сценария контента content.js
, так и с помощью моего popup.js
(по сути, во всем моем расширении)
У меня есть файл popup.html, который вызывает <script src="mixpanel.js"></script>
прямо перед тегом </head>
.
В моем файле mixpanel.js
есть:
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,
e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
mixpanel.init("MY_TOKEN");
Когда я нажимаю кнопку своего расширения и проверяю ее, консоль выводит следующую ошибку:
Refused to load the script 'http://cdn.mxpnl.com/libs/mixpanel-2.2.min.js' because it violates the following Content Security Policy directive: "script-src 'self' https://cdn.mxpnl.com".
Вот раздел разрешений моего файла manifest.json
:
"permissions": ["https://twitter.com/"],
"content_security_policy": "script-src 'self' https://cdn.mxpnl.com; object-src 'self'"
Расширение должно работать в Twitter.
Я прочитал документ о политике безопасности контента, написанный Google, но он мне не помог.
Любая идея, что я делаю неправильно здесь? Любая помощь будет очень признательна!