Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

217
Visualizações
Recibo el error "Las pestañas no se pueden editar en este momento (el usuario puede estar arrastrando una pestaña)" en el evento de actualización/activación/enfoque de pestaña en Chrome 91

Después de la actualización reciente de Chrome, mi extensión comenzó a activar "Unchecked runtime.lastError: las pestañas no se pueden editar en este momento (el usuario puede estar arrastrando una pestaña)" cuando intento usar la API de chrome.tabs. Todavía no hay mucha información sobre este problema, pero creo que se trata de un error del navegador. Mientras tanto, mi extensión hace que las pestañas de Chrome cambien notablemente más lento de lo que solía ser. Ahora toma un par de segundos cambiar la pestaña. Así que estoy buscando una solución.

Alguna idea de cómo solucionar este problema?

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

La única solución que he encontrado hasta ahora es poner a mis controladores en un tiempo de espera como este:

 chrome.tabs.onActivated.addListener((activeInfo) => { setTimeout(() => { // The old listener handler moves here }, 100); });

Pero debe haber una mejor manera, ¿verdad?

over 4 years ago · Santiago Trujillo Relatório

0

Seguirá recibiendo errores, pero al menos funcionará.

 chrome.tabs.onActivated.addListener(function(activeInfo) {getActivatedTab();}); function getActivatedTab(){ chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) { try{ if(tabs[0]!=undefined){ console.log(tabs[0].url); } } catch(err){ setTimeout(function() { getActivatedTab(); },100); } }) }
over 4 years ago · Santiago Trujillo Relatório

0

Este es un error en Chrome91, como lo señaló @wOxxOm.

Se sugiere este parche si está haciendo muchas llamadas a, por ejemplo xchrome.tabs.query

 const ChromeWrapper = { chromeTabsQuery: function (params, callback) { chrome.tabs.query(params, tabs => { if (chrome.runtime.lastError) { setTimeout(function () { //console.warn("Patch for xchrome.tabs.query (Chrome 91)."); ChromeWrapper.chromeTabsQuery(params, callback) }, 100); // arbitrary delay } else { callback(tabs) } }) } }

Y luego, simplemente reemplace las instancias de

 xchrome.tabs.query(...

con:

 ChromeWrapper.chromeTabsQuery(...
over 4 years ago · Santiago Trujillo Relatório

0

... Muy bien, no tengo una solución realmente mejor que setTimeout, ya que realmente no veo dónde se publican los mensajes/eventos después de que se completó la pestaña, así que lo que hago también es agregar un setTimeout para hacer algo " prueba y error".

Pero cómo lo hago es anular el chrome.tabs.get original para que podamos tener la misma experiencia mientras lo usamos de la manera esperada. (Y eliminar fácilmente este fragmento cuando finalmente lo arreglen algún día)

Aquí está mi código, saludos

 chrome.tabs.get = function () { const orig_get = chrome.tabs.get.bind(chrome.tabs); return async function (tabId) { return new Promise( resolve => { var tryGet = () => { orig_get(tabId) .then(resolve) .catch(() => { // console.log("retry get"); setTimeout(() => { tryGet(tabId); }, 50); }) }; tryGet(); } ) } }();
over 4 years ago · Santiago Trujillo Relatório

0

cree una función separada fuera de chrome.tabs.onActivated.addListener. de esta manera funciona para mí.

 function insertScript(tab) { chrome.tabs.get(tab.tabId, function (info) { console.log(info); }); } chrome.tabs.onActivated.addListener(function (tab) { setTimeout(function () { insertScript(tab); }, 500); });
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda