Я нахожусь в процессе создания расширения chrome, которое должно использовать внутреннюю систему единого входа моей компании. Я использую фоновый скрипт, потому что мне нужно сделать CORS-вызов службы, которая может вернуть токен авторизации. Я разработал библиотеку, которая может справиться с этим для меня, но, исходя из прочитанного, нет способа внедрить ее в фоновый скрипт. Я мог бы смягчить Политику в отношении контента, чтобы разрешить это, но в документации говорится, что они настоятельно рекомендуют не делать этого из-за уязвимостей XSS. У меня вопрос: есть ли способ внедрить мою библиотеку в фоновый скрипт без изменения политики содержимого?
//manifest.json
{
"name": "Travelers Learning",
"version": "1.0",
"description": "Chrome extension to enable xAPI",
"background": {
"scripts": ["tx.js", "tx-auth.js", "main.js"],
"persistent": true
},
"permissions": [
"activeTab",
"tabs"
],
"content_scripts": [
{
"run_at": "document_end",
"matches": ["http://*/*", "https://*/*"],
"js": ["interactionProfile.js", "tx.js", "all.js"]
},
{
"run_at": "document_end",
"matches": ["*://*.youtube.com/*"],
"js": ["interactionProfile.js", "tx.js", "youtube.js"]
}
],
"browser_action": {
"default_popup": "main.html"
},
"manifest_version": 2
}
// all.js
console.log('all')
const iframe = document.createElement('iframe');
iframe.setAttribute('src', "http://xapi-router-service-auth.dvllb.travp.net/identification");
iframe.style.display = "none";
document.body.appendChild(iframe);
chrome.runtime.sendMessage({contentScriptQuery: '', create: tx.default.create}, (tx) => {
console.log(tx)
})
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
request.create({
endpoint: '*****',
username: '*****',
password: '*****',
allowfail: false,
env: "sandbox",
xapiEndpoint: '******'
}).then((tx) => sendResponse(tx));
return true;
});