ArkWeb 项目

概述

ArkWeb 项目旨在将 Chromium Web 引擎集成到 OpenHarmony操作系统中,它对 Chromium 源代码进行了扩展和增强,以使其适应OpenHarmony架构和 API。ArkWeb在Chromium原有功能的基础上,基于OpenHarmony平台扩展了很多新特性,如广告拦截,网络加速,输入框填充等。它作为系统 Web 组件的基础,为OpenHarmony应用程序提供强大的 Web 渲染能力。

架构

项目遵循分层架构,图中黄色Chromium模块即本仓内容:

image.png

架构图中CEFchromium_arkweb和当前Chromium仓联合编译出Web内核,编译产物为NWeb.hap,通过二进制集成在OpenHarmony系统中。

使用说明

  1. 下载代码:以 master 分支为例,要下载其他分支代码请替换-b 后带的manifest分支参数,参数列表详见7。

    repo init -u https://gitcode.com/openharmony-tpc/manifest -b master -m developer.xml --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    
  2. 编译

    编译同时构建未签名Hap包:

    形态:rk3568

    ./build.sh  -t w -A rk3568
    

    仅编译so库:

    ./build.sh -A rk3568
    

    形态:rk3568_64

    ./build.sh  -t w -A rk3568_64
    

    仅编译so库:

    ./build.sh -A rk3568_64
    
  3. 签名

    形态:rk3568

    ./sign.sh rk3568
    

    形态:rk3568_64

    ./sign.sh rk3568_64
    
  4. 调试方法

    方法一:替换so库

    编译完成后,在out目录下找到对应so库产物,将它们推送到设备中

    hdc shell "mount -o remount,rw /"
    hdc file send libnweb_render.so /data/app/el1/bundle/public/com.ohos.nweb/libs/arm
    hdc file send libweb_engine.so /data/app/el1/bundle/public/com.ohos.nweb/libs/arm
    pause
    hdc shell reboot
    pause
    

    方法二:替换hap包

    编译完成后,在out目录下找到NWeb-rk3568.hap或者NWeb-rk3568_64.hap, 将它推送到设备中。

    hdc shell "mount -o remount,rw /"
    hdc file send NWeb-rk3568.hap /system/app/com.ohos.nweb/NWeb.hap
    hdc shell "rm /data/* -rf"
    hdc shell reboot
    
  5. 所有Chromium仓对应目录映射关系

    https://gitcode.com/openharmony-tpc/manifest/blob/chromium/chromium.xml

其他相关代码仓地址:

架构图中的Webview ArkTS仓

架构图中的Webview NDK仓

架构图中的Web Component仓

架构图中的web_webview仓

架构图中的chromium_arkweb仓

架构图中的CEF仓


Chromium docs

以下为来自 docs/README.md 的 Chromium 原始文档,供开发者参考。内容涵盖源码获取、构建、测试、设计文档及开发指南等。

本目录包含 Chromium 项目 的文档,使用 Gitiles-flavored Markdown 格式编写,由 Gitiles 自动渲染

如果您添加了新文档,也请在下方的文档索引中添加相应的链接。

[TOC]

创建文档

指南

预览更改

使用 md_browser 进行本地预览

# 在 Chromium 检出目录中
./tools/md_browser/md_browser.py

这只是一个近似预览。实际的 gitiles 视图可能有所不同。

通过 Gerrit 的 Gitiles 链接在线预览

  1. 上传补丁到 Gerrit,或收到代码审查请求。 例如 https://chromium-review.googlesource.com/c/3362532
  2. 查看特定的 .md 文件。 例如 https://chromium-review.googlesource.com/c/3362532/2/docs/README.md
  3. 您会看到类似以下内容
    Base 预览 -> Patchset 3 预览 | DOWNLOAD
    显示在页面左上角。点击第二个 "预览" 链接即可打开当前补丁集的预览。

gitiles 视图是权威视图,与提交后的效果完全一致。

文档索引

注意:此处并非所有文档的完整列表。

代码检出与构建

设计文档

集成开发环境 (IDE) 配置指南

Git

Clang

通用开发

测试

配置文档

GPU 相关文档

其他 Linux 专属文档

其他 MacOS 专属文档

其他 Windows 专属文档

其他 Android 专属文档

其他 iOS 专属文档

其他 Chrome OS 专属文档

其他 WebUI 专属文档

媒体

无障碍

内存

内存基础设施时间线分析 (MemoryInfra)

指标

其他

Mojo 与服务

安全

  • 二选一规则 - 处理不可信内容(如从网络下载的任何内容)时的重要安全规则。

速度

UI

"What's Up With That" 文字稿

这些是 What's Up With That 的文字稿,该系列视频是对 Chromium 软件工程师的访谈。

可能已过时