Migrando a extensão do Chrome para a Web
Estou migrando minha extensão do chrome para a web. O link da extensão do chrome éaqui
Tudo funcionou, exceto que eu preciso de informações da guia dentro do meu aplicativo angular, lá estou recebendo um erro comoTypeError: "browser.tabs is undefined"
Posso acessar as informações da guia dentro do script em segundo plano e enviá-las para o script de conteúdo, mas não no aplicativo principal.
Meu aplicativo é aberto no iframe, o iframe aponta para o aplicativo angular.
browser.tabs.getCurrent(function (tabs) {
//these are tabs
});
Consegui obtê-lo na extensão chrome, não consigo encontrar uma maneira de enviá-lo de segundo plano ou conteúdo para o aplicativo principal.
Coloco em segundo plano e envio para o conteúdo
BACKGROUND.js
browser.tabs.query({ currentWindow: true, active: true }, function (tabs) {
tabs = tabs
chrome.tabs.sendMessage(tabs[0].id, { action: "tabs", tabs : tabs }, function(response) {
console.log(response);
});
});
Entrando no conteúdo como
CONTENT.JS
browser.runtime.onMessage.addListener(function (request, sender, sendResponse) {
if (request.action == 'tabs') {
tabs = request.tabs;
}
if (request.action == 'get_tabs') {
sendResponse(tabs);
}
});
Também tentando obtê-lo no aplicativo principal, enviando mensagem e resposta de volta, como emget_tabs
No aplicativo principal em algum lugar
browser.runtime.sendMessage({ 'action': 'get_tabs' }, function (tabs) {});
Se você já enfrentou isso, responda.