WebKit 开源项目
WebKit 是一个用于浏览器和其他应用程序的开源网页内容引擎。
我们重视现实世界的网页兼容性、标准合规性、稳定性、性能、电池续航、安全性、隐私、可移植性、可用性以及相对易于理解和修改代码(可修改性)。
项目目标
网页内容引擎
该项目主要关注使用 HTML、CSS、JavaScript 和 DOM 等基于标准的技术部署在万维网上的内容。然而,我们也希望能够将 WebKit 嵌入其他应用程序中,并将其用作通用显示和交互引擎。
开源
WebKit 应保持对开源和专有应用程序的免费可用性。为此,我们使用 BSD 风格和 LGPL 许可证。具体来说,我们的目标是与 LGPL 2.1+ 兼容的许可。我们目前不打算转向 LGPL 3。此外,我们努力营造一个礼貌、热情、对新人友好的环境。WebKit 维护一个公共 IRC 聊天室和一个公共邮件列表,新老贡献者的想法都可以在其中被倾听和讨论,并获得同等重视。
兼容性
对于浏览网页的用户来说,与现有网站的兼容性至关重要。我们努力维护和改进与现有网页内容的兼容性,有时甚至不惜牺牲标准。我们使用回归测试来保持兼容性优势。
标准合规性
WebKit 旨在符合相关网页标准,并支持新标准。除了改进合规性,我们还参与网页标准社区,将新技术引入标准,并确保新标准在我们的引擎中切实可行。我们使用回归测试来保持标准合规性优势。
稳定性
WebKit 主代码库应始终保持高度稳定性。这意味着崩溃、卡顿和回归应及时处理,而不是任其堆积。
性能
维护和提高速度和内存使用是重要目标。我们从不认为性能“足够好”,而是努力不断改进。随着网页内容变得更丰富、更复杂,以及网页浏览器在更受限的设备上运行,即使正常浏览看起来足够快,性能提升仍然有价值。我们认为速度、内存使用、响应能力和帧率是性能的重要方面。
电池续航
除了传统的性能指标,我们还旨在最大限度地降低功耗,以最大限度地延长便携式设备的浏览电池续航时间。
安全性
保护用户免受安全侵犯至关重要。我们及时修复安全问题,以保护用户并维护他们的信任。
隐私
我们相信隐私是一项人权。WebKit 代码不会跟踪用户或以其他方式侵犯他们的隐私。我们将努力阻止网站和其他方这样做。
可移植性
WebKit 项目旨在满足各种需求。我们希望能够合理地将 WebKit 移植到各种桌面、移动、嵌入式和其他平台。我们将提供基础设施,通过紧密的平台集成来实现这一点,在适当情况下重用原生平台服务,并提供友好的嵌入式 API。
可用性
在 WebKit 功能影响用户体验的程度上,我们希望它们能符合良好的人机界面设计原则,并与平台原生的 HI 约定良好融合。此外,我们努力与平台辅助功能集成,以允许所有用户(包括残疾用户)进行访问。
可修改性
为了实现快速进展,我们努力使代码相对易于理解,即使网页技术通常很复杂。我们尽量在可能的情况下使用直接的算法和数据结构,我们努力编写清晰、可维护的代码,并不断改进名称和代码结构以帮助理解。当真正需要棘手的“火箭科学”代码来解决某些问题时,我们 कोशिश将其封装在清晰的接口后面。此外,我们大量使用自动化回归测试作为安全网,以允许激进的更改,降低回归风险。
WebKit 不是什么
我们认为有几个偶尔出现的问题超出了本项目的范围。
WebKit 是一个引擎,而不是浏览器。
我们不打算开发或托管基于 WebKit 的功能齐全的网页浏览器。当然,欢迎其他人这样做。
WebKit 是一个工程项目,而不是一个科学项目。
为了将新功能引入 WebKit,我们强烈倾向于该技术或至少其用例已被证明。
WebKit 不是一个最大限度通用和可重用代码的集合。
我们构建了一些通用部分,但仅限于成为一个优秀网页内容引擎所需的程度。
WebKit 并非所有问题的解决方案。
我们专注于网页内容,而不是所有可想象技术需求的完整解决方案。