Stoppen Sie eine indizierte Quelle, die das Tab-Symbol in eine Black Box verwandelt

FixConversionService
Verschifft
6. September 2026 um 04:30 UTC
Autor
Kamo
Ausschuss
3f4c60b

Ein Tab-Symbol hochgeladen als transparente PNG-8 kam in der Registerkarte des Browsers als schwarz quadratisch mit einem zerklüfteten Logo darauf. Gemessen am Upload, der es exponierte: 9216 Pixel in favicon-96x96.png, die 5194, die transparent waren, kamen undurchsichtig heraus Schwarz, und die Marke, die überlebte, war von 237 verschiedenen Farben auf 46. Die Transparenz war bis zum Maßstab intakt. ImageIO dekodiert eine in indexiert PNG auf TYPE_BYTE_INDEXED mit einem IndexColorModel, dessen Transparenz ist ein Paletteneintrag - Pixel (0,0) liest 0047704C, alpha zero, korrekt. Thumbnailator bewahrt das Bild der Quelle TYPE, wenn es skaliert, so dass es eine frische indizierte Bild mit DEFAULT-Palette: der Alpha-Eintrag war weg, die erhaltenen Indizes adressierte Farben, die nichts mehr bedeuteten, und (0,0) kam zurück FF000. fitSquare Leinwand war ARGB die ganze Zeit und getreu kopiert Pixel, die schon schwarz - deshalb sieht der Käfer so aus, als würde er dort leben und nicht. rasterise normalisiert sich nun auf TYPE_INT_ARGB, bevor irgendetwas anderes das Bild berührt. Einmal konvertieren, wo die Quelle erzeugt wird, anstatt .imageType() bei jeder der sieben Call-Sites, macht "alles, was hinter diesem Punkt ist ARGB" halten für Die Verbraucher fügten später hinzu und kosten ein Exemplar statt sieben. Nicht neu, und nicht nur PNG-8: GIF ist immer indiziert, so dass jeder org, dessen img/logo.svg war wirklich ein GIF hat ein schwarzes Favicon gehabt, solange der Rasterpfad hat existierte. Es blieb unbemerkt, weil die einzige Quelle, die jemand fütterte, war ein SVG, die Batik als ARGB zurückgibt. Es wurde absichtlich erreichbar, wenn Tab-Symbole begann die Annahme von Raster-Uploads - PNG-8 ist genau das, was "Save for Web" gibt Ihnen für eine kleine flache Ikone. Vier Regressionstests decken es ab: die PNGs, die .ico-Rahmen (die durch eine verschiedene Straße, verpackt von IcoEncoder), ein GIF, und eine Behauptung der Marke hält seine eigene Farbe und nicht nur ihre Transparenz. Jeder bestehende Test in dieser Klasse fed TYPE_INT_ARGB, die eine Eingabeform, die nie das Problem hatte. Verifiziert gegen die real hochgeladene Datei: 5185/9216 Pixel transparent, passend das Verhältnis der Quelle und 237 verschiedene Farben, wo es 46 gewesen war. Organisationen mit einem Tab-Symbol bereits generiert benötigen eine erneute Auswahl, um die neue Bytes-up; die Thema-Revision ändert sich mit ihm, so Browser werden revalidate.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen