-
Notifications
You must be signed in to change notification settings - Fork 0
Cameo Prototype Based on Content API
This is a prototype of Cameo launcher which is based on Chromium's Content API. It is currently only tested on Windows.
The purpose to build the prototype is:
- To investigate project setup: what pieces of code should be in Cameo. What is the relationship with Chromium/Blink and Content API.
- As a base to start other investigations: how to extend the API, what's like the embedding API, HTML5 features, performance and packaging tools etc.,
This prototype uses content_shell as base. The content_shell is the canonical sample embedder.It only uses content's public API. So content_shell could be the perfect base of Cameo project. The idea is to fork the Chromium's content_shell, import it into cameo, then build the cameo's stuffs, say embedding API, JS API infrastructure, runtime model, security model and package/installer tools from that.
- Development mode (mini-browser):
cameo.exe <URL>
- App mode (chromeless):
cameo.exe --headless <URL>
For example, to launch Brackets as app by: cameo.exe --headless --allow-file-access-from-files <path-to-brackets>/src/index.html
Cameo is based on Content API, so it needs to build with Chromium/Blink code. And since we might need to keep some downstream patches, so a cameo-chromium and cameo-blink repositories might be needed.
Cameo uses gclient
to sync the code. Please make sure you are familiar with Get the Code. You should install depot_tools.
Create a .gclient with following content. Please note we use upstream blink repository in this prototype since there are no downstream patches in blink yet.
Content of .gclient:
solutions = [
{ "name" : "src",
"url" : "ssh://[email protected]/huningxin/chromium-cameo.git",
"deps_file" : ".DEPS.git",
"managed" : True,
"custom_deps" : {
"src/cameo": "ssh://[email protected]/huningxin/cameo.git",
"src/third_party/WebKit/LayoutTests": None,
"src/chrome_frame/tools/test/reference_build/chrome": None,
"src/chrome_frame/tools/test/reference_build/chrome_win": None,
"src/chrome/tools/test/reference_build/chrome": None,
"src/chrome/tools/test/reference_build/chrome_linux": None,
"src/chrome/tools/test/reference_build/chrome_mac": None,
"src/chrome/tools/test/reference_build/chrome_win": None,
},
"safesync_url": "",
},
]
At the same level of .gclient
file, execute
gclient sync
to fetch all codes.
Please setup the build environment as Build Instructions for Windows. Please note currently only the Windows build of this prototype is verified.
We prefer to use ninja
as build tool. Please refer to Ninja Build to setup the environment.
We use gyp
to generate projects. To generate cameo projects, go to src
directory, execute
python cameo\gyp_cameo
to generate the projects.
Then fire the build off:
ninja -C out\Release cameo.exe
The build takes an hour also on an i7+16GB+SSD machine.
- API infrastructure prototype.
- API implementation prototype for Brackets.
- Analyze the HTML5 feature gaps.
- Build infrastructure.
- Tooling and packaging prototype.