WebKit的程式碼源自1998年所開發的KDE的HTML排版引擎KHTML及KDE的JavaScript引擎KJS的程式碼。Apple的Don Melton於2001年6月25日開始了WebKit這個專案,當時WebKit僅為KHTML及KJS的复刻,Melton在電子郵件中向KDE開發者解釋,KHTML及KJS比起其他技術有著更容易開發、更輕巧(少於140000行程式碼)、更加乾淨的設計,以及更與標準相容的優勢,KHTML及KJS將會透過連接器函式庫(adapter library)的幫忙被移植到OS X,並重新命名為WebCore及JavaScriptCore。JavaScriptCore在2002年6月,於KDE的郵件列表(mailing list)中首度發表,包含著蘋果電腦首次釋出的部分。WebCore在2003年1月,首度發佈於Macworld Expo中由蘋果電腦CEO Steve Jobs發表的Safari瀏覽器。當WebCore首次使用在第一個Safari的測試版本的同時,JavaScriptCore首次並以私有framework的方式包進Mac OS X v10.2,蘋果電腦將其使用在Sherlock軟體。Mac OS X v10.3是第一個Apple發佈內建WebKit的作業系統,儘管它已經被內建在10.2內了。
Apple表示,有些牽涉到OSX的特定功能(例如:Objective-C、KWQ及OS X特定函式)將會在KDE的KHTML中缺席,這行為被稱為不同的發展策略。
開發分裂编辑
由於這兩個分支(KHTML及WebCore)有著不同的目的而進行開發,所以他們程式碼互相補丁(patch)的難度越來越高。 KHTML的開發者認為,他們不喜歡接受蘋果電腦對於KHTML的改變,並宣稱兩個組織的關係有些不好(a bitter failure),蘋果提交他們相當大的補丁,其中包含相當大數目的改變,但是卻缺少相關文件,並且經常包含著未來的擴充,然而這些補丁對於KDE的開發者而言,要整合回KHTML是相當困難的,此外,蘋果電腦要求開發者閱覽Apple的程式碼之前必須簽署保密條款(non-disclosure agreements),甚至還不能存取蘋果電腦的臭蟲資料庫[來源請求]。
在公佈離婚的期間,KDE開發者Kurt Pfeifle(pipitas)貼出了一篇文章,宣稱KHTML開發者已經設法從WebCore移植許多(但非全部)Safari所改進的項目回KHTML,而他們一直都希望這些改進是來自於蘋果電腦。這篇文章讓Apple開始聯絡KHTML的開發者,並討論有關增進彼起關係的方法及未來的合作模式,事實上KDE專案確實有能力合併一些項目,來改進KHTML的渲染速度以及加入一些新的功能特色,包含Acid2渲染測試的改進。
自从新闻播报了fork事件之后,Apple在CVS发布了他們自己維護的WebKit版本,在他們发布代码後,Apple及KHTML開發者已經加深了合作關係,許多KHTML的開發者也成為了WebKitSVN代码库的審查(Reviewer)及提交者(Submitter)。
WebKit工作團隊同時也逆轉許多Webkit程式碼當中,專為蘋果特定的修正,並且實現了一個平台特定的抽象層,可使渲染的程式碼於其他平台可以更順利的運作。
在2007年7月,Ars Technica網站發佈一篇文章,指出KDE開發團隊將從KHTML轉移到WebKit,再經由多年的整合,KDE開發平台4.5於2010年8月釋出,它同時支援WebKit及KHTML,而KHTML的開發仍在繼續。
開源编辑
在2005年6月7日,Safari開發者戴夫·海厄特(Dave Hyatt)於他的blog宣布Apple將把Webkit開源(之前僅有WebCore及JavaScriptCore開源),並且開放了WebKit的CVS程式庫以及臭蟲資料庫工具。這項消息由蘋果電腦軟體工程的高階副總(Senior Vice President)Bertrand Serlet於蘋果電腦2005年的Worldwide Developers Conference公開。
在2005年12月中,可縮放向量圖形的支援被加入了標準版本,在2006年1月初,這項程式碼從CVS轉移至Subversion。
WebKit的JavaScriptCore及WebCore元件目前以GNU較寬鬆公共許可證方式授權,而其他的WebKit元件則是以BSD授權公開。
更進一步發展编辑
在2007年一開始,開發團隊開始實現层叠样式表(CSS)的擴充,包含動畫、轉換(transitions)以及2D和3D的轉場(transform),這樣的擴充在2009年W3C的標準中被列入草案。
在2007年11月,這項專案宣布,他們已經完成了HTML5媒體特色的支援,允許頁面中以原生的方式嵌入影片,並且可以被script所控制。
在2008年6月2日,WebKit專案宣布他們重寫了JavaScriptCore,被稱為'SquirrelFish',它是一個字节码直譯器(Bytecode Interpreter),這項專案驗後來變成SquirrelFish Extreme(SFX),它可將JavaScript編譯為机器语言而不再需要直譯器,這樣的做法加速了JavaScript的執行,這項專案於2008年9月18發布。一開始,SFX僅支援x86架構,於2009年1月底,SFX於OSX支援了x86-64架構,並且在該平台通過了所有的測試。
WebKit2编辑
WebKit2發佈於2010年4月8日,WebKit2的目標是將元件抽象化,並提供更乾淨的網頁渲染,它會利用從周圍的界面或是應用程式的殻,建立一個環境使網頁的內容(JavaScript、HTML、排版等等)將會在另外一個进程(Process)運行,比起WebKit,這個抽象化的做法打算令WebKit2可重覆使用一個更簡單的程序。因為WebKit2對比起WebKit有一個不相容的API,所以導致他的名字被改變為WebKit2。
目前WebKit2僅開放於Mac、Windows及MeeGo-Harmattan。