Movatterモバイル変換


[0]ホーム

URL:


Bước tới nội dung
WikipediaBách khoa toàn thư mở
Tìm kiếm

WebKit

Bách khoa toàn thư mở Wikipedia
WebKit
Nhà phát triểnApple,Google,KDE,Nokia,Samsung,Torch Mobile, và một số khác
Phiên bản thử nghiệm
Kho mã nguồn
Viết bằngC++
Hệ điều hànhĐa nền tảng
Thể loạiKhung ứng dụng
Giấy phépLGPLv2/BSD-style
Websitehttp://webkit.org/

WebKit là mộtengine trình duyệt nguồn mở cung cấp các thành phần cần thiết để xây dựng mộttrình duyệt web. WebKit đượcApple Inc. chính thức nhận từthư viện phần mềmKHTML của trình duyệtKonqueror để sử dụng như là một engine cho trình duyệt của hệ điều hànhMac OS XSafari và được tiếp tục phát triển bởidự án KDE,Apple,Nokia,Google,Torch Mobile và một số khác.[1] Nó đã được chuyển thể sang rất nhiều nền tảng khác và bây giờ được dùng như là engine kết xuất của rất nhiều phần mềm khác nhau. WebKit lànguồn mở; các thành phần WebCore và JavaScriptCore được sử dụng và được bảo hộ bởi giấy phépGNU Lesser General Public License, và cả bộ WebKit có thể sử dụng với giấy phépkiểu BSD.[2]

Lịch sử

[sửa |sửa mã nguồn]

Nguồn gốc

[sửa |sửa mã nguồn]

WebKit bắt đầu khởi công từ năm2002 khi Apple Inc. tạo một dự án phần mềmfork từ dự án của KDE làcỗ máy bố cụcHTML KHTML vàCỗ máy JavaScript của KDE (KJS). Các nhà phát triển Apple giải thích trong một e-mail gửi tới các nhà phát triển KDE[3] rằng các bộ máy này cho phép phát triển dễ hơn các công nghệ khác vì tính nhỏ gọn (ít hơn 140,000dòng mã nguồn), thiết kế sáng sủa và hợp chuẩn. KHTML và KJS đã được chuyển thể sang Mac OS X với sự giúp đỡ của thư viện chuyển đổi và đổi tên thành WebCore và JavaScriptCore[3]. JavaScriptCore được thông báo đến danh sách thư của KDE vào tháng 6 năm 2002, cùng với bản ra mắt đầu tiên với những thay đổi của Apple.[4] WebCore được thông báo tạiMacworld Expo vào tháng 1 năm 2003 bởi AppleCEOSteve Jobs với đợt phát hành của trình duyệt Safari. JavaScriptCore lần đầu tiên được phát hành kèm vớiMac OS X v10.2 để sử dụng như là một bộ khung riêng để chạy ứng dụngSherlock, trong khi WebCore lần đầu đi kèm với bản beta đầu tiên của Safari.Mac OS X v10.3 là hệ điều hành đầu tiên của Apple có WebKit, mặc dù nó đã xuất hiện trước đó ở một số ít bản 10.2.

Tuy vậy, việc trao đổi các bản vá mã nguồn giữa hai phiên bản KHTML đã trở nên khó khăn do hai bên có cách viết mã khác nhau.[5] Một lý do nữa là vì Apple làm việc với phiên bản KHTML của họ một năm trước khi đưa fork cho công chúng.

Khó chịu về điều đó, dự án KDE đã có thể kết hợp các thay đổi đó để củng cố tốc độ kết xuất của KHTML và thêm vào các chức năng, bao gồm việc vượt qua bài kiểm tra Acid2. Konqueror 3.5 đã vượt qua bài kiểm tra Acid2, phiên bản được ra mắt sau khi Apple mở hệ thốngCVS và Cơ sở dữ liệu lỗi phần mềm cho WebKit.

Theo Apple, một số thay đổi gặp rắc rối với các tính năng đặc trưng của Mac OS X (vd.,Objective-C, KWQ, các hàm gọiMac OS X) không có trong KHTML của KDE, cần có một chiến lược phát triển khác.[6]

Tranh cãi

[sửa |sửa mã nguồn]

Tại một thời điểm các nhà phát triển KHTML nói rằng họ không thể chấp nhận được những thay đổi của Apple và cho rằng mối quan hệ hai bên là một "thất bại cay đắng".[7] Apple đã gửi các sửa đổi của họ trong một gói các bản vá lỗi lớn chứa rất nhiều sửa đổi lớn với tài liệu không tương xứng, thường dùng để thêm vào các chức năng trong tương lai. Dù vậy, các bản vá này đã gây khó khăn cho các nhà phát triểnKDE để tích hợp chúng vào KHTML. Đi xa hơn nữa, Apple còn đòi hỏi các nhà phát triển KDE ký vào bản cam kết không tiết lộ trước khi xem mã nguồn của Apple kể cả việc họ không truy cập được vào cơ sở dữ liệu lỗi của Apple.[8]

Trong khoảng thời gian ly khai được mọi người biết đến, nhà phát triển KDEpipitas gửi viết một bài cho rằng các nhà phát triển KHTML đã cố gắng thêm các sửa đổi tăng cường của Safari (nhưng không phải tất cả) từ WebCore về KHTML, và họ cũng luôn luôn ủng hộ các cải tiến của Apple và đến bây giờ vẫn thế. Bài viết cũng nói đến việc Apple đã bắt đầu liên hệ với các nhà phát triển KHTML để thảo luận về việc cải thiện mối quan hệ giữa hai bên và việc hợp tác trong tương lai.[9]

Từ khi tin tức về bản fork xuất hiện tren báo chí, Apple đã cung cấp bản chi tiết những thay đổi trong KHTML của họ ở một kho chứa CVS.[10] Bắt đầu từ lúc mã nguồn của Apple xuất hiện trên CVS, các nhà phát triển của cả hai bên đã tăng cường hợp tác. Rất nhiều nhà phát triển KHTML đã trở thành nhà phê bình và là người gửi bản Apple WebKit lên kho chứaSVN.

Đội phát triển WebKit cũng đã hồi sửa lại những sửa đổi đặc trưng của Apple về mã gốc của WebKit và củng cố khả năng tương thích đa nền tảng cho WebKit.[11]

Nguồn mở

[sửa |sửa mã nguồn]

Vào ngày7 tháng 6, 2005, nhà phát triển SafariDave Hyatt thông báo trênblog của anh rằng Apple đã mở mã nguồn WebKit (trước đó, chỉ có WebCore và JavaScriptCore là nguồn mở) và cho phép truy cập vào cây CVS của WebKit và công cụBugzilla.[10] Tin này cũng được thông báo trongHội nghị các nhà phát triển thế giới của Apple năm2005 bởi tổng chủ tịch kỹ sư phần mềm AppleBertrand Serlet.

Vào giữa tháng 12 năm2005 việc hỗ trợ cho định dạngSVG đã được cho vào bản chuẩn[12] vào gần tháng 1 năm 2006 mã nguồn đã được chuyển từ CVS thành Subversion. Tháng tiếp theo trang mạngArs Technica gửi một bài viết thông báo rằng đội ngũ phát triển KDE muốn chuyển từ KHTML sang WebKit.[13]

Phát triển sau này

[sửa |sửa mã nguồn]

Vào tháng 11 năm 2007, dự án thông báo rằng đã hoàn thành hỗ trợ cho các phương tiện chức năng củaHTML 5, cho phép các đoạn video nhúng được dựng hình và điều khiển trong WebKit.[14]

Vào ngày2 tháng 6, 2008, dự án WebKit thông báo rằng họ đã viết lại JavaScriptCore thành "SquirrelFish", một trình thông dịchbytecode.[15][16] Dự án tiếp tục phát triển nó thành SquirrelFish Extreme (viết tắt SFX), ra mắt vào ngày18 tháng 9, 2008, hoạt động bằng cáchbiên dịchJavaScript thànhmã máy, việc từ bỏ thông dịch bytecode đã giúp tăng tốc các đoạn mã JavaScript.[17] Trước đây SFX chỉ hỗ trợkiến trúc x86, nhưng vào cuối tháng 1 năm 2009 SFX đã có thể chạy trong Mac OS X với kiến trúcx86-64 và nó đã vượt qua tất cả các bài kiểm tra trên nền tảng này.[18]

Sử dụng

[sửa |sửa mã nguồn]

WebKit được sử dụng như là một cỗ máy dựng hình cho Safari chạy trên Mac OS X, Windows vàiOS. Các ứng dụng khác trên Mac OS X cũng có thể sử dụng WebKit, như trình khách e-mail của AppleMailEntourage của Microsoft phiên bản 2008, cả hai dùng WebKit để dựng hình các nội dung HTML bên trong ứng dụng của mình.

Các trình duyệt web mới cũng sử dụng WebKit làShiiraChrome,[19][20] ngoài ra một số trình duyệt khác dùng WebKit để thay thế cỗ máy dựng hình mặc định của nó nhưOmniWeb,iCabEpiphany.[21] Epiphany hỗ trợ cảGecko và WebKit ở một số thời điểm, nhưng đội ngũ phát triển cho rằng vòng đời ra mắt của Gecko và việc lập kế hoạch phát triển cho nó có thể trở nên nặng nề, kém hiệu quả.

Chuyển hệ

[sửa |sửa mã nguồn]

Vài tuần sau khi Hyatt công bố việc mở mã nguồn WebKit, Nokia thông báo rằng đã chuyển hệ WebKit để chạy trênhệ điều hành Symbian và phát triển một trình duyệt dựa tren WebKit cho các điện thoại của họ, sau này được đặt tên làWeb Browser for S60. Apple cũng đã chuyển hệ WebKit để chạy trêniOS (Apple) dành choiPhoneiPod Touch, được dùng để hiển thị nội dung trong trình duyệt và trình kháchthư điện tử,[22]Android sử dụng WebKit là nền tảng cho trình duyệt web của nó,[23]Palm Pre, ra mắt tháng 6 năm 2009, có giao diện dựa trên WebKit.[24]

Vào tháng 6 năm2007, Apple thông báo rằng WebKit đã được chuyển hệ sang choMicrosoftWindows như là một phần của Safari. Việc chuyển hệ cũng đang được tiếp tục cho các hệ điều hành nguồn mở nhưSyllable,[25]Haiku[26]AROS.[27]

WebKit cũng đã được chuyển thể sang rất nhiều bộ công cụ khác nhau, như bộ công cụGTK+,[28],bộ công cụ QtAdobe Integrated Runtime.Qt Software đã đóng gói kèm WebKit trong phiên bản 4.4 củaQt. WebKit của Qt cũng được Konqueror sử dụng trongKDE 4.1.[13] Cũng có một dự án đồng bộ hoá với WebKit (tài trợ bởi Pleyo)[29] gọi làOrigyn Web Browser, cung cấp một nền tảng thống nhất của WebKit để nhúng vào các ứng dụng hệ thống nhanh và dễ dàng hơn.[30] Bản chuyển thể này được dùng trong cáchộp set-top, PMP và cảAmigaOSAROS.[31][32] Bản chuyển choMorphOS từ OWB đang được phát triển.

Các thành phần

[sửa |sửa mã nguồn]

WebCore

[sửa |sửa mã nguồn]

WebCore là thư viện bố cục, dựng hình, vàmẫu đối tượng văn bản (DOM) cho HTML vàSVG, phát triển bởi dự án WebKit. Toàn bộ mã nguồn của nó được bảo hộ dưới giấy phépLGPL. Khung WebKit bọc WebCore và JavaScriptCore, cung cấp API Objective-C trở thành dựa trênC++ của bộ máy WebCore và JavaScriptCore, cho phép kết nối đến các ứng dụng dựa trênCocoa API; các phiên bản sau này bao gồm các đa nền tảng trừu tượng, và rất nhiều các bản chuyển thể cung cấp sử dụng các API.

WebKit vượt qua bài kiểm traAcid2, vào tháng 9 năm 2008, các bản cập nhật hàng đêm (bao gồm Safari 4) vượt qua bài kiểm traAcid3 một cách dễ dàng, với cách dựng hình pixel-perfect và không có vấn đề không phụ thuộc vào phần cứng.[33]

JavaScriptCore

[sửa |sửa mã nguồn]

JavaScriptCore là một khung cung cấp mộtcỗ máy JavaScript để yểm trợ cho WebKit, và cung cấp sử dụng kiểu ngôn ngữ này bên trong Mac OS X.[34][35] JavaScriptCore có nguồn gốc chính thức từ cỗ máy JavaScript của KDE (KJS) (là một phần của dự án KDE) và thư việnbiểu thức chính quyPCRE. Từ khi khởi công từ KJS và PCRE, JavaScriptCore được bổ trợ rất nhiều cùng với hiệu năng vượt trội.[36]

Drosera

[sửa |sửa mã nguồn]

Drosera làtrình gỡ lỗi cho JavaScript đi kèm với các bản cập nhật hàng đêm của WebKit.[37][38] Nó được đặt tên theoDrosera, một họcây ăn thịt (v.d. cây ăn bọ). Drosera đã được thay thế bởi chức năng tương tự có trong Web Inspector.[39]

SunSpider

[sửa |sửa mã nguồn]
Hình chụp SunSpider
Hình chụp SunSpider

Một bộ ứng dụng dùng để kiểm tra hiệu năng của JavaScript trong các tác vụ khác có liên quan đến JavaScript ở thế giới thực, như vẽ màn hình, mã hoá và trộn chữ.[40] Bộ công cụ này tỏ ra cân đối và ổn định.[41] Nó được phát hành bởi đội ngũ phát triển Apple WebKit vào tháng 12 năm 2007.[42] Ứng dụng được đón nhận nồng nhiệt,[43] và các nhà phát triển trình duyệt khác dùng nó để so sánh hiệu năng JavaScript giữa các trình duyệt.[44]

Xem thêm

[sửa |sửa mã nguồn]

Tham khảo

[sửa |sửa mã nguồn]
  1. ^Maciej Stachowiak (ngày 9 tháng 11 năm 2008)."Companies and Organizations that have contributed to WebKit".WebKit Wiki. Truy cập ngày 17 tháng 11 năm 2008.
  2. ^"Open Source - WebKit". Apple.Bản gốc lưu trữ ngày 6 tháng 7 năm 2013. Truy cập ngày 5 tháng 3 năm 2009.
  3. ^abKDE KFM-Devel mailing list "(fwd) Greetings from the Safari team at Apple Computer", ngày 7 tháng 1 năm 2003.
  4. ^Maciej Stachowiak (ngày 13 tháng 6 năm 2002)."Subject: KDE-Darwin JavaScriptCore, Apple's JavaScript framework based on KJS".Bản gốc lưu trữ ngày 18 tháng 7 năm 2009. Truy cập ngày 21 tháng 8 năm 2008.
  5. ^"kdedevelopers.org". Truy cập ngày 8 tháng 10 năm 2015.
  6. ^"kdedevelopers.org". Truy cập ngày 8 tháng 10 năm 2015.
  7. ^The bitter failure named "safari and khtml"
  8. ^Open-source divorce for Apple's Safari?
  9. ^WebCore - KHTML - Firefox: Know your facts!
  10. ^abDaniel Molkentin (ngày 7 tháng 6 năm 2005)."Apple Opens WebKit CVS and Bug Database".KDE News. Truy cập ngày 16 tháng 1 năm 2007.
  11. ^Ars at WWDC: Interview with Lars Knoll, creator of KHTML
  12. ^"Next Generation KDE Technologies Ported to WebCore".Bản gốc lưu trữ ngày 13 tháng 10 năm 2007. Truy cập ngày 17 tháng 6 năm 2009.
  13. ^abUnrau, Troy (ngày 23 tháng 7 năm 2007)."The unforking of KDE's KHTML and WebKit". Ars Technica. Truy cập ngày 30 tháng 7 năm 2007.
  14. ^HTML5 Media Support by Antti Koivisto,Surfin' Safari blog, November 12th, 2007
  15. ^"Announcing SquirrelFish".Bản gốc lưu trữ ngày 12 tháng 5 năm 2020. Truy cập ngày 17 tháng 6 năm 2009.
  16. ^SquirrelFish project
  17. ^"Introducing SquirrelFish Extreme".Bản gốc lưu trữ ngày 26 tháng 4 năm 2022. Truy cập ngày 17 tháng 6 năm 2009.
  18. ^https://trac.webkit.org/changeset/40439
  19. ^1 tháng 9 năm 2008-n47.html Google Chrome, Google’s Browser Project[liên kết hỏng]
  20. ^Comic describing the Google Chrome Project
  21. ^Epiphany Mailing list -ANNOUNCEMENT: The Future of Epiphany
  22. ^Maciej Stachowiak (ngày 10 tháng 1 năm 2007)."The Obligatory iPhone Post".Surfin' Safari weblog. Truy cập ngày 24 tháng 1 năm 2008.
  23. ^"Android Uses WebKit".Bản gốc lưu trữ ngày 21 tháng 7 năm 2010. Truy cập ngày 17 tháng 6 năm 2009.
  24. ^Palm Pre in-depth impressions, video, and huge hands-on gallery
  25. ^Syllable WebKit Port, Syllable Server
  26. ^21 tháng 12 năm 2007/webkit_port_talking_to_andrea_xed_anzani Webkit port: talking to Andrea "xeD" Anzani | Haiku Project[liên kết hỏng]
  27. ^"Cow launched! | Robert Norris´ Blog on porting WebKit to ARsOS".Bản gốc lưu trữ ngày 1 tháng 12 năm 2008. Truy cập ngày 17 tháng 6 năm 2009.
  28. ^Alp Toker – WebKit/Gtk+ is coming
  29. ^"pleyo".Bản gốc lưu trữ ngày 25 tháng 3 năm 2008. Truy cập ngày 17 tháng 6 năm 2009.
  30. ^"See OWB forge".Bản gốc lưu trữ ngày 9 tháng 5 năm 2008. Truy cập ngày 17 tháng 6 năm 2009.
  31. ^AmigaOS OWB official page
  32. ^"AROS OWB developer page".Bản gốc lưu trữ ngày 4 tháng 3 năm 2009. Truy cập ngày 17 tháng 6 năm 2009.
  33. ^Maciej Stachowiak (ngày 25 tháng 9 năm 2008)."Full Pass Of Acid3".Surfin' Safari - The WebKit Blog. Truy cập ngày 29 tháng 9 năm 2008.
  34. ^"The WebKit Open Source Project – JavaScript".Bản gốc lưu trữ ngày 1 tháng 9 năm 2015. Truy cập ngày 17 tháng 6 năm 2009.
  35. ^KDE-Darwin mailing list, "JavaScriptCore, Apple’s JavaScript framework based on KJS",13 tháng 62002.
  36. ^"The Great Browser JavaScript Showdown". ngày 19 tháng 12 năm 2007.Bản gốc lưu trữ ngày 6 tháng 6 năm 2013. Truy cập ngày 17 tháng 6 năm 2009.
  37. ^WebKit.orgDroseraLưu trữ ngày 16 tháng 5 năm 2008 tạiWayback Machine wiki article
  38. ^"Introducing Drosera".Surfin’ Safari.Bản gốc lưu trữ ngày 28 tháng 10 năm 2007. Truy cập ngày 17 tháng 6 năm 2009.
  39. ^"Commit removing Drosera".Bản gốc lưu trữ ngày 30 tháng 6 năm 2012. Truy cập ngày 17 tháng 6 năm 2009.
  40. ^Muchmore, Michael (ngày 18 tháng 6 năm 2008)."Review: Firefox 3 Stays Ahead of Browser Pack". Truy cập ngày 6 tháng 9 năm 2008.
  41. ^"SunSpider JavaScript Benchmark".Bản gốc lưu trữ ngày 6 tháng 9 năm 2008. Truy cập ngày 6 tháng 9 năm 2008.
  42. ^"Announcing SunSpider 0.9". ngày 18 tháng 12 năm 2007. Truy cập ngày 6 tháng 9 năm 2008.
  43. ^Atwood, Jeff (ngày 19 tháng 12 năm 2007)."The Great Browser JavaScript Showdown".Bản gốc lưu trữ ngày 6 tháng 6 năm 2013. Truy cập ngày 6 tháng 9 năm 2008.
  44. ^Resig, John (ngày 3 tháng 9 năm 2008)."JavaScript Performance Rundown". Truy cập ngày 9 tháng 6 năm 2008.

Liên kết ngoài

[sửa |sửa mã nguồn]
iOS và các sản phẩm dựa trên nền iOS
Phần cứng
iPhone
iPod Touch
iPad
Khác
iOS logo
Phần mềm
OS
Có nguồn gốc
từ iOS
Đặc trưng
SDK & API
Ứng dụng đi kèm
Đã ngừng
Ứng dụngApple
Đã ngừng
Dịch vụ
Đã ngừng
Khác
Lấy từ “https://vi.wikipedia.org/w/index.php?title=WebKit&oldid=72017460
Thể loại:
Thể loại ẩn:

[8]ページ先頭

©2009-2025 Movatter.jp