Byl vydán Mozilla Firefox 159.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 159 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nasazení softwaru, který nyní používá ve svých autech pro čínský trh, zvažuje automobilový koncern Volkswagen také v Evropě, kde by se mohl používat v budoucích vozech značek Volkswagen, Škoda a Cupra. Základem pro budoucí evropské modely by se mohla stát takzvaná China Electronic Architecture, elektronická architektura vyvinutá pro čínské modely ve spolupráci s tamní automobilkou Xpeng.
Vedoucím brněnské pobočky Red Hatu se stal Radek Vokál [LinkedIn].
Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.
Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.
Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace
… více »Článek na blogu APNIC vysvětluje, jak správně vytvářet a používat ASPA záznamy — podepsané objekty v RPKI, které uvádějí, kteří poskytovatelé směrování jsou pro dané autonomní číslo (ASN) oprávněni. Síťoví operátoři je mohou využít k ověřování tras BGP a k odhalování úniků tras či podvržených tras.
Byla vydána (𝕏) verze 8.0.0 open source programu pro prolamování hesel hashcat (GitHub, Wikipedie). Přehled novinek v příspěvku v diskusním fóru a pdf.
Byla vydána (𝕏, Bluesky) nová verze 2026.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 6 nových nástrojů v oficiálním oznámení na blogu.
then(). Po provedení všech úkonů potřebuju provést ještě další funkci prostřednictvím metody finally(). Aby ta však přišla ke slovu, je nutné, aby všechny zřetězené sliby byly důsledně vypořádány čili zejména aby bylo ošetřeno jejích odmítnutí (rejection) - a na to právě směruje můj dotaz nebo vlastně dotazy dva.
Jak je z ukázky vidět, splnění slibu je vázáno na určité podmínky (přítomnost prvku v dokumentu a jeho momentální poloha vůči viewportu) a když ty nejsou splněny, slib je odmítnut. Odmítnutí bych mohl zapsat zástupnou funkcí reject(), jak mám v komentáři, a vše by bylo bez problémů, ale když chci "vyhodit" vlastní výjimku ("throw"), na řádku 10 mi způsobí, že se mi do konzole vypíše, že výjimka nebyla zachycena ("uncaught"), a navíc se pak nevykoná funkce v metodě finally(); na řádku 15 nicméně zapsání výjimky zachyceno je. Proč tedy výjimka na řádku 10 není zachycena, kdežto na řádku 15 je?
Druhý dotaz se týká způsobu konečného vypořádání odmítnutí slibu uvnitř metody catch(). Samozřejmě se nabízí console.log() nebo console.error(), ale já do konzole nic vypisovat nechci (proč by se tam mělo něco vypisovat, když byl slib odmítnut čistě proto, že v dokumentu není přítomen určitý prvek (element), jehož přítomnost je volitelná). Jak mám tedy prostřednictvím metody catch() vypořádat odmítnutí slibu tak, aby se nikde nic nevypisovalo?
Doufám, že mé dotazy nejsou napsány nesrozumitelně.
...).then((val) => {
classReplace(...val);
return new Promise(function(resolve, reject) {
if (element) {
setTimeout(() => {
if (element.classList.contains("class1")) {
if (element.getBoundingClientRect().top + 500 < screenHeight) {
resolve([element, "class1", "class2"])
} else {
(řádek 10) throw("element out of viewport") // nebo: reject("element out of viewport")
}
}
}, 800)
} else {
(řádek 15) throw("element absent") // nebo: reject("element absent")
}
})
}).then(...)
.catch(
error => {
console.log(error)
}).finally(...
() => {
if (element.classList.contains("class1")) {
if (element.getBoundingClientRect().top + 500 < screenHeight) {
resolve([element, "class1", "class2"])
} else {
(řádek 10) throw("element out of viewport") // nebo: reject("element out of viewport")
}
}
Takže jakákoliv výjimka vypadne z téhle funkce, tak vybublá na console, bo ji nikdo nechytá. V době, kdy se tahle funkce pustí, je původní funkce pro Promise už dávno ukončená.
Tiskni
Sdílej: