HybridOS Specification No. 01-C
Topic: hiWebKit
Author: Vincent Wei
Category: App Framework
Date: May 2019
Status: Proposal
Copyright Notice
Copyright (C) 2019 FMSoft Technologies
All Rights Reserved.
Introduction
hiWebKit
, a WebKit derivative, provides support for
HybridOS View Markup Language, as well as the popular Web standards
and specifications such as HTML 5.x and CSS 3.
The name hiWebKit
is an abbreviation for Hybrid-WebKit
.
As an extension of WebKit, hiWebKit will support HVML and HTML at the same time. Therefore, hiWebKit not only supports HVML, but also is a great web engine.
Main Development Work
- Support for some bulit-in view types. In hiWebKit, we will introduce
some general built-in view types for all HybridOS apps, including:
- Animation. A simple animation formed by a set of static images.
- WatchFace. A watch face with hour, minute, and/or second hands.
- StopWatch. A stopwatch.
- Support for some new complex widgets:
- ArcMeter. A circular meter with one or more hands.
- ArcProgress. A circular progress with one or more hands.
- WheelPicker. A picker (a variation of
select
element) with animated wheel effect.
- The MiniGUI port of WebKit. Indeed, FMSoft Technologies had developed
MiniGUI port for an old WebKit release; you can refer to
mDolphin Core.
This job consists of the following sub jobs:
- Support for DRM and Linux event device in MiniGUI 4.0.x.
- Support for DRM-based shadow engine.
- Support for EGL on MiniGUI (for OpenGL and OpenGL ES V2).
- MiniGUI backend of Cairo (for hardware accelerated 2D graphics).
- MiniGUI port of WebKit.
- The support for view types (window and activity) which will be rendered in separate processes.
- A view type customization interface. Like browser plugin, the developer can develop a view type for his/her own use by using the API of hiWebKit.
- Support for
datamap
anddatabind
of HVML. This work involves modifying the HTML parser (WebCore/html/
) and adding some new interfaces to DOM (WebCore/dom/
). - Support to open another activity and send intent data to it.
- Support for V8 JavaScript engine.
- Support for the new HTML tags and new CSS specifications according to W3C.
Development Documents
- Building the GTK+ Port
- How to Print Debug Info
- How to Add a New HTML Tag
- Libraries dependencies
- The Path from HTML to DOM
- WebKit Rendering and Drawing
References
- HTML 5.3: Read the spec to understand the basic concepts about HTML, and the parsing process of HTML documents.
- DOM Specification: Read this spec to understand DOM and the standard interfaces of DOM.
- WebIDL Specification: Read this spec to know the syntax of WebIDL, which is used to describe the interfaces of DOM.
- CSS 2.2: Read this spec to understand the basic concepts of CSS. Recommend that to read some specifications of CSS Level 3 to know the key features of CSS 3, for example, CSS Box Model Module Level 3. For all specifications or drafts of CSS, you can refer to https://drafts.csswg.org/.