Quire
Zrzut ekranu strony Wikipedii wyświetlonej za pomocą przeglądarki Konqueror opartej na KHTML.
Zrzut ekranu strony Wikipedii wyświetlonej za pomocą przeglądarki Konqueror opartej na KHTML. Image: source and license

KHTML – zarchiwizowany w 2023 roku[1] silnik wyświetlania (renderowania) stron internetowych rozwijany przez społeczność programistów KDE[2][3]. Udostępniony na licencji wolnego i otwartego oprogramowania[4].

Wykorzystanie#edit

Silnik KHTML stworzony został dla przeglądarki Konqueror, ale był wykorzystywany także w przeglądarkach systemów takich jak AtheOS/Syllable (ABrowse), MorphOS (Sputnik) czy Symbian (MiniMap).

WebKit, silnik używany między innymi przez Apple w przeglądarce Safari, jest bezpośrednim forkiem KHTML[5][6], podobnie jak Blink[7]. Powszechną opinią jest jakoby KHTML był podwaliną powszechnie używanych przeglądarek, takich jak Google Chrome czy Microsoft Edge[3][8][9].

Architektura#edit

Silnik KHTML został napisany w języku C++ i był rozpowszechniany na warunkach licencji GNU LGPL. Obsługiwał HTML 4, HTML 5, XHTML, CSS 1, 2 i 3, DOM i JavaScript, oraz wtyczki Netscape/Mozilli (Flash, Java itp.)[10]. Do silnika KHTML wprowadzono także kilka niestandardowych elementów zwiększających zgodność z Internet Explorerem.

Zgodnie z zapisem dokumentacji technicznej[11], KHTML był zbudowany jako biblioteka, której podstawowym obiektem był KHTMLPart, odpowiedzialny za przetwarzanie dokumentu i współpracujący z widokiem KHTMLView. Dokumenty HTML były przetwarzane przez tokenizer i parser, które tworzyły drzewo zgodne z modelem DOM, natomiast dokumenty XML wykorzystywały mechanizmy parsowania XML biblioteki Qt. Na podstawie drzewa DOM oraz arkuszy stylów CSS, KHTML tworzył odrębne drzewo renderowania, zawierające obiekty odpowiedzialne za rozmieszczenie i wyświetlanie poszczególnych elementów. Drzewo renderowania mogło różnić się od DOM, m.in. ze względu na tworzenie anonimowych elementów wynikających z zasad formatowania CSS. Za dobór reguł CSS odpowiadał CSSStyleSelector, natomiast mechanizm layoutu obliczał rozmieszczenie elementów w dostępnej przestrzeni, po czym KHTMLView rysował wynik na ekranie. KHTML obsługiwał również ładowanie zewnętrznych zasobów, takich jak obrazy i arkusze stylów, za pomocą mechanizmu Loader pełniącego także funkcję pamięci podręcznej. Proces przetwarzania mógł odbywać się przyrostowo, dzięki czemu tokenizer, budowanie DOM i tworzenie drzewa renderowania częściowo zachodziły równolegle, umożliwiając rozpoczęcie wyświetlania dokumentu przed zakończeniem przetwarzania.

Istnieją głosy w społeczności programistów, jakoby powodem zawieszenia rozwijania KHTML była zbyt duża złożoność projektu[12][13].

Zobacz też#edit

Linki zewnętrzne#edit

Przypisy#edit

  1. ^ KDE/khtml, KDE GitHub Mirror, 27 sierpnia 2026 [dostęp 2026-09-08].
  2. ^ README.md
  3. ^ a b KDE at 30 [online], kde.org [dostęp 2026-09-08] (ang.).
  4. ^ COPYING.GPL3
  5. ^ WebKit - Glossary | MDN [online], MDN Web Docs, 28 października 2025 [dostęp 2026-09-08] (ang.).
  6. ^ WebKit2 4.1 (2.52.6) - WebKit2 4.1 [online], lazka.github.io [dostęp 2026-09-08].
  7. ^ Blink: A rendering engine for the Chromium project- Google Developers Blog [online], developers.googleblog.com [dostęp 2026-09-08] (ang.).
  8. ^ This Month in Ladybird – August 2026 | Hacker News [online], news.ycombinator.com [dostęp 2026-09-08] [zarchiwizowane z adresu 2026-09-08] (ang.).
  9. ^ Sanjay Prasad, Celebrating Innovation: KHTML, The Engine Behind Giants [online], 16 listopada 2025 [dostęp 2026-09-08] (ang.).
  10. ^ Development/Architecture/KDE3/KHTML - KDE TechBase [online], techbase.kde.org [dostęp 2026-09-08] [zarchiwizowane z adresu 2025-10-16] (ang.).
  11. ^ docs/DESIGN.html
  12. ^ Reddit [online], www.reddit.com [dostęp 2026-09-08].
  13. ^ KHTML [online], Browser Wars Wiki [dostęp 2026-09-08] (ang.).

This article is mirrored from “KHTML” on Polski Wikipedia, revision 80671598, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.

Synced with Wikipedia revision 80671598 · just now