Jak zgłosić błąd w przeglądarce

Informowanie dostawców przeglądarek o problemach, które znajdują się w ich przeglądarkach, to integralna część procesu udoskonalania platformy internetowej.

Zgłoszenie dobrego błędu nie jest trudne, ale wymaga trochę pracy. Chodzi o to, aby ułatwić znajdowanie i rozwiązywanie przyczyn problemów, a przede wszystkim znalezienie sposobu na ich wyeliminowanie. Błędy, które szybko się poprawiają, łatwo można odtworzyć i przejść w jasny sposób.

Potwierdź, że to błąd

Pierwszym krokiem jest ustalenie „prawidłowego” zachowania.

Co należy zrobić?

Zapoznaj się z odpowiednią dokumentacją API w MDN lub poszukaj powiązanych specyfikacji. Na podstawie tych informacji możesz określić, który interfejs API rzeczywiście jest uszkodzony, gdzie jest uszkodzony i jakie jest oczekiwane działanie.

Czy działa w innej przeglądarce?

Różnice w działaniu przeglądarek w przypadku różnych przeglądarek mają zwykle wyższy priorytet ze względu na problemy z interoperacyjnością, zwłaszcza gdy przeglądarka, w której występuje błąd, jest nieparzysta. Spróbuj wykonać test w najnowszych wersjach przeglądarek Chrome, Firefox, Safari i Edge. Prawdopodobnie użyj narzędzia takiego jak BrowserStack.

W miarę możliwości sprawdź, czy strona nie zachowuje się w sposób celowy związany z wykrywaniem klientów użytkownika. W Narzędziach deweloperskich w Chrome spróbuj ustawić ciąg znaków User-Agent dla innej przeglądarki.

Czy coś się popsuło w niedawnej wersji?

Czy w przeszłości wszystko działało zgodnie z oczekiwaniami, ale problem wystąpił w jednej z najnowszych wersji przeglądarki? Tego typu „regresje” można podjąć znacznie szybciej, zwłaszcza jeśli podasz numer wersji, która działała, i wersję, w której wystąpił błąd. Narzędzia takie jak BrowserStack mogą ułatwić sprawdzanie starszych wersji przeglądarek, a narzędzie do kompilacji dwusekwencyjnych (dla Chromium) – bardzo sprawne wyszukiwanie tej zmiany.

Jeśli problem występuje w przypadku regresji i można go odtworzyć, główną przyczynę problemu zwykle można szybko wykryć i rozwiązać.

Czy inni użytkownicy mają ten sam problem?

Jeśli występują problemy, prawdopodobnie inni deweloperzy też je mają. Najpierw spróbuj wyszukać błąd na Stack Overflow. Może to pomóc w przełożeniu problemu abstrakcyjnego na określony uszkodzony interfejs API oraz znalezienie krótkoterminowego sposobu obejścia tego problemu, dopóki błąd nie zostanie naprawiony.

Czy był już wcześniej zgłoszony?

Gdy już dowiesz się, co to za błąd, sprawdź, czy nie został on już zgłoszony. Aby to zrobić, przeszukaj bazę danych przeglądarki.

Jeśli znajdziesz błąd, który opisuje problem, daj nam znać, oznaczając go gwiazdkami, dodając do ulubionych lub komentując. Na wielu stronach można wpisać się do listy DW, by otrzymywać aktualne informacje o błędzie.

Jeśli zdecydujesz się zgłosić błąd, dołącz informacje o jego wpływie na Twoją witrynę. Unikaj dodawania komentarzy w stylu „+1”, ponieważ narzędzie do śledzenia błędów zwykle wysyła e-maile po każdym komentarzu.

Zgłoś błąd

Jeśli błąd nie został wcześniej zgłoszony, czas poinformować o nim dostawcę przeglądarki.

Tworzenie zminimalizowanego przypadku testowego

Zapoznaj się z ogromnym artykułem o tworzeniu zminimalizowanego przypadku testowego w serwisie Mozilla. Dobrym punktem wyjścia jest opis problemu, który powinien być krótszy od przesłania linku do demonstracji w błędzie, który pokazuje problem. Aby zwiększyć szanse na szybkie postępy, przykład powinien zawierać minimalny możliwy kod potrzebny do zademonstrowania problemu. Najważniejsza jest minimalna próbka kodu, która zwiększa szanse na naprawienie błędu.

Oto kilka wskazówek, jak zminimalizować liczbę przypadków testowych:

  • Pobierz stronę internetową, dodaj tag <base href="https://original.url"> i sprawdź, czy błąd występuje lokalnie. Może to wymagać aktywnego serwera HTTPS, jeśli adres URL korzysta z protokołu HTTPS.
  • Przetestuj lokalne pliki w najnowszych kompilacjach jak największej liczby przeglądarek.
  • Spróbuj spakować wszystko w 1 plik.
  • Usuń kod (zacznij od tych, o których wiesz, że niepotrzebne), dopóki błąd nie znikną.
  • Dzięki kontroli wersji możesz zapisywać wprowadzone pliki i cofać te, które okażą się niewłaściwe.

Hostowanie zminimalizowanego przypadku testowego

Jeśli szukasz dobrego miejsca na przechowywanie zminifikowanego przypadku testowego, jest dostępnych kilka dobrych miejsc:

Pamiętaj, że kilka z tych witryn wyświetla treści w elemencie iframe, co może powodować odmienne działanie funkcji lub błędów.

Zgłaszanie problemu

Po zminimalizowaniu zgłoszenia testowego możesz zgłosić błąd. Wejdź na odpowiednią stronę śledzenia błędów i utwórz nowy problem.

Podaj jasny opis i czynności, które musisz wykonać, aby odtworzyć problem.

Po pierwsze podaj jasny opis, który pomoże inżynierom szybko zrozumieć, na czym polega problem, i pomóc w jego rozwiązaniu.

When installing a PWA using the `beforeinstallprompt.prompt()`, the
`appinstalled` event fires before the call to `prompt()` resolves.

Następnie podaj szczegółowe instrukcje umożliwiające odtworzenie problemu. Właśnie tu przydaje się zminimalizowany przypadek testowy.

What steps will reproduce the problem?
1. Go to https://basic-pwa.glitch.me/, open DevTools and look at the
   console tab.
2. Click the Install button in the page, you might need to interact with
   the page a bit before it becomes enabled.
3. Click Install on the browser modal install confirmation.

Na koniec opisz oczekiwany i rzeczywisty wynik.

What is the expected result? In the console:
0. INSTALL: Available (logged when `beforeinstallprompt` event fired)
1. INSTALL_PROMPT_RESPONSE: {outcome: "accepted", platform: "web"}
   (logged when beforeinstallprompt.prompt()` resolves)
2. INSTALL: Success (logged when `appinstalled` event fired)

What is the actual result? In the console:
0. INSTALL: Available (logged when `beforeinstallprompt` event fired)
1. INSTALL: Success (logged when `appinstalled` event fired)
2. INSTALL_PROMPT_RESPONSE: {outcome: "accepted", platform: "web"}
   (logged when beforeinstallprompt.prompt()` resolves)

Więcej informacji znajdziesz w wytycznych dotyczących pisania raportów o błędach w MDN.

Dodatkowo: dodaj zrzut ekranu lub screencast ilustrujący problem.

Chociaż nie jest to wymagane, w niektórych przypadkach warto dodać zrzut ekranu lub screencast pokazujący problem. Jest to szczególnie przydatne w sytuacjach, gdy odtworzenie błędów wymaga wykonania jakichś nietypowych czynności. Często warto zobaczyć, co dzieje się na ekranie lub na zrzucie ekranu.

Podaj szczegóły środowiska

Niektóre błędy można odtworzyć tylko w określonych systemach operacyjnych lub tylko na konkretnych rodzajach wyświetlaczy (np. o niskiej lub wysokiej rozdzielczości dpi). Pamiętaj, aby podać szczegółowe informacje o używanych środowiskach testowych.

Zgłoś błąd

Na koniec zgłoś błąd. Następnie pamiętaj, aby sprawdzać pocztę e-mail, gdy pojawią się odpowiedzi na temat błędu. Zwykle podczas analizy i naprawiania błędu inżynierowie mogą mieć dodatkowe pytania, a w przypadku trudności z odtworzeniem błędu mogą się z Tobą skontaktować.