WebKit/WebKit

GitHub: WebKit/WebKit

WebKit是苹果Safari等应用使用的跨平台浏览器渲染引擎,支持macOS、iOS和Linux系统。

Stars: 9644 | Forks: 1861

# WebKit WebKit 是一个跨平台的网页浏览器引擎。在 iOS 和 macOS 上,它为 Safari、Mail、Apple Books 和许多其他应用程序提供支持。有关 WebKit 的更多信息,请参阅 [WebKit 项目网站](https://webkit.org/)。 ## 体验最新版本 在 macOS 上,[下载 Safari Technology Preview](https://webkit.org/downloads/) 以测试最新版本的 WebKit。在 Linux 上,下载 [Epiphany Technology Preview](https://webkitgtk.org/epiphany-tech-preview)。在 Windows 上,您需要自行构建。 ## 报告 Bug 1. [搜索 WebKit Bugzilla](https://bugs.webkit.org/query.cgi?format=specific&product=WebKit) 查看您遇到的 Bug 是否已有现有报告。 2. 如果您尚未注册,请[创建一个 Bugzilla 账户](https://bugs.webkit.org/createaccount.cgi) 以报告 Bug(并对其进行评论)。 3. 按照[我们的指南](https://webkit.org/bug-report-guidelines/)提交 Bug。 一旦您的 Bug 被提交,当它在 [Bug 生命周期](https://webkit.org/bug-life-cycle)的每个阶段更新时,您都会收到电子邮件。在 Bug 被视为已修复后,您可能会被要求下载[最新 nightly 版本](https://webkit.org/nightly)并确认该修复对您有效。 ## 获取代码 运行以下命令来克隆 WebKit 的 Git 仓库: ``` git clone https://github.com/WebKit/WebKit.git WebKit ``` 您可以启用 [git fsmonitor](https://git-scm.com/docs/git-config#Documentation/git-config.txt-corefsmonitor) 来加速许多 git 命令(例如 `git status`),命令为 `git config core.fsmonitor true` ## 构建 WebKit ### 为 Apple 平台构建 如果您尚未安装 Xcode 及其命令行工具,请先安装: 1. **安装 Xcode** 从 https://developer.apple.com/downloads 获取 Xcode。要为 OS X 构建 WebKit,需要 Xcode 5.1.1 或更高版本。要为 iOS Simulator 构建 WebKit,需要 Xcode 7 或更高版本。 2. **安装 Xcode Command Line Tools** 在终端中,运行命令:`xcode-select --install` 运行以下命令以构建带有调试符号和断言的 macOS debug 构建: ``` Tools/Scripts/build-webkit --debug ``` 对于性能测试和其他目的,请改用 `--release`。如果您还需要调试符号 (dSYMs),请运行: ``` Tools/Scripts/build-webkit --release DEBUG_INFORMATION_FORMAT=dwarf-with-dsym ``` #### 嵌入式构建 要为 iOS、tvOS 或 watchOS 等嵌入式平台构建,请向 `build-webkit` 传递一个平台参数。 例如,要为嵌入式模拟器构建带有调试符号和断言的 debug 构建: ``` Tools/Scripts/build-webkit --debug ---simulator ``` 或嵌入式设备: ``` Tools/Scripts/build-webkit --debug ---device ``` 其中 `platform` 为 `ios`、`tvos` 或 `watchos`。 #### 使用 Xcode 您可以打开 `WebKit.xcworkspace` 以在 Xcode 中构建和调试 WebKit。 选择 "Everything up to WebKit + Tools" scheme 以构建整个项目。 如果您在 Xcode 偏好设置中没有使用自定义构建位置,则必须 更新工作区设置以使用 `WebKitBuild` 目录。在菜单栏中, 选择 File > Workspace Settings,然后点击 Advanced 按钮,选择 "Custom"、"Relative to Workspace",并在 Products 和 Intermediates 中输入 `WebKitBuild`。 ### 构建 GTK Port 对于生产构建: ``` cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja ninja sudo ninja install ``` 对于开发构建: ``` Tools/gtk/install-dependencies Tools/Scripts/update-webkitgtk-libs Tools/Scripts/build-webkit --gtk --debug ``` 有关构建 WebKitGTK 的更多信息,请参阅 [wiki 页面](https://trac.webkit.org/wiki/BuildingGtk)。 ### 构建 WPE Port 对于生产构建: ``` cmake -DPORT=WPE -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja ninja sudo ninja install ``` 对于开发构建: ``` Tools/wpe/install-dependencies Tools/Scripts/update-webkitwpe-libs Tools/Scripts/build-webkit --wpe --debug ``` ### 构建 Windows Port 关于在 Windows 上构建 WebKit,请参阅 [WebKit on Windows 页面](https://docs.webkit.org/Ports/WindowsPort.html)。 ## 运行 WebKit ### 使用 Safari 和其他 macOS 应用程序 运行以下命令以使用您本地构建的 WebKit 启动 Safari: ``` Tools/Scripts/run-safari --debug ``` `run-safari` 脚本设置 `DYLD_FRAMEWORK_PATH` 环境变量以指向您的构建产品,然后启动 `/Applications/Safari.app`。`DYLD_FRAMEWORK_PATH` 告诉系统加载器优先使用您的构建产品,而不是安装在 `/System/Library/Frameworks` 中的框架。 要使用您本地构建的 WebKit 运行其他应用程序,请运行以下命令: ``` Tools/Scripts/run-webkit-app ``` ### iOS Simulator 运行以下命令以使用您本地构建的 WebKit 启动 iOS 模拟器: ``` run-safari --debug --ios-simulator ``` 在这两种情况下,如果您构建的是 release 版本,请使用 `--release` 代替 `--debug`。 要运行其他应用程序(例如 MobileMiniBrowser)并使用您本地构建的 WebKit,请运行以下命令: ``` Tools/Scripts/run-webkit-app --debug --iphone-simulator ``` #### 使用 Xcode 打开 `WebKit.xcworkspace`,选择预期的 scheme(例如 MobileMiniBrowser)和一个 iOS 模拟器作为目标,点击运行。 ### Linux Ports 如果您有一个开发构建,可以使用 `run-minibrowser` 脚本,例如: ``` run-minibrowser --debug --wpe ``` 传递 `--gtk`、`--jsc-only` 或 `--wpe` 之一以指示要使用的 port。 ## 贡献 恭喜!您已经启动并运行了。现在您可以开始在 WebKit 中编写代码,并向项目贡献您的修复和新功能。有关向项目提交代码的详细信息,请阅读 [Contributing Code](https://webkit.org/contributing-code/)。
标签:Apple, Bash脚本, C++, CSS解析, CVE监控, DNS解析, HTML5渲染, iOS, JavaScriptCore, KHTML, Safari, Syscall, WebKit, Web开发, Xcode, 内核开发, 应用开发, 开源项目, 数据可视化, 数据擦除, 浏览器引擎, 渲染引擎, 系统组件, 自定义脚本, 自定义脚本, 逆向工具