2014-07-04 21 views
7

Piszę rozszerzenie do rejestrowania użycia Facebooka. Zauważyłem, że nawet jeśli zakładka na facebooku spowodowała awarię licznika, więc próbowałem to naprawić. Według the doc wydaje się, że nie ma takiego zdarzenia.Jak wykryć, czy karta Chrome jest uszkodzona?

Czy istnieje interfejs API do wykrywania, czy karta jest uszkodzona, czy zdarzenie awarii?

Odpowiedz

4

Zdarzenie chrome.processes.onExited jest wyzwalane, gdy mechanizm renderowania ulega awarii (co jest procesem, w którym znajduje się co najmniej jedna karta).

Ten interfejs API jest dostępny tylko dla użytkowników pod numerem developer channel, więc jeśli chcesz, aby rozszerzenie było powszechnie dostępne dla wszystkich, musisz użyć alternatywnej metody. Można utworzyć skrypt treści, który tworzy port komunikatów za pośrednictwem chrome.runtime.connect, a także w przypadku użycia lub , aby sprawdzić, czy zakładka nadal żyje: jeśli zakładka już nie istnieje, wówczas zostanie ustawiona chrome.runtime.lastError i wskazana zostanie komunikacja błąd.

+1

W moich eksperymentach, chrome.runtime.lastError nie jest ustawione po wywołaniu, jeśli karta się zawiesiła. Oddzwonienie również nie jest wywoływane. Jeśli identyfikator karty naprawdę nie istnieje, to chrome.runtime.lastError jest ustawione na wywołanie zwrotne, które zostanie wywołane. Tak więc jedyny (ale potencjalnie niedokładny) sposób wykrywania rozbitych kart wydaje się ustawić timer i czekać na timeout, gdy wywołanie zwrotne nie jest wywoływane. –

+1

@RolandPihlakas Otworzyłem bilet: https://crbug.com/439780 –

+0

Och, dzięki, dobry pomysł! To powinno stać się nawykiem ... –

Powiązane problemy