we got <span>
and <div>
!
See the Cobalt Subset specification for more details on which tags, properties, and Web APIs are supported in Cobalt.
More to come.
All source locations are specified relative to src/
(this directory).
base/
- Chromium's Base library. Contains common utilities, and a light platform abstraction, which has been superceded in Cobalt by Starboard.net/
- Chromium's Network library. Contains enough infrastructure to support the network needs of an HTTP User-Agent (like Chromium or Cobalt), an HTTP server, a DIAL server, and several abstractions for networking primitives. Also contains SPDY and QUIC implementations.media/
- Chromium's Media library. Contains all the code that parses, processes, and manages buffers of video and audio data. Media decoding is passed off to decoding hardware, wherever possible.cobalt/
- The home of all Cobalt application code. This includes the Web Implementation, Layout Engine, Renderer, and some other Cobalt-specific features.cobalt/build/
- The core build generation system, gyp_cobalt
, and configurations for supported platforms. (NOTE: This should eventually be mostly moved into starboard/
.)starboard/
- Cobalt‘s porting layer. Please see Starboard’s README.md
for more detailed information about porting Starboard (and Cobalt) to a new platform.third_party/
- Where all of Cobalt‘s third-party dependencies live. We don’t mean to be perjorative, we love our third-party libraries! This location is dictated by Google OSS release management rules...third_party/starboard/
- The location for third-party ports. This directory will be scanned automatically by gyp_cobalt for available Starboard ports.Here's a quick and dirty guide to get to build the code on Linux.
Install the provided depot_tools
archive into your favorite directory. It has been slightly modified from Chromium's depot_tools
.
Add that directory to the end of your $PATH
.
Ensure you have these packages installed: sudo apt-get install libgles2-mesa-dev libpulse-dev libavformat-dev libavresample-dev libasound2-dev libxrender-dev libxcomposite-dev
Ensure you have the standard C++ header files installed (e.g. libstdc++-4.8-dev
).
Remove bison-3 and install bison-2.7, or just make sure that bison-2.7 is before bison-3 on your $PATH
. (NOTE: We plan on moving to bison-3 in the future.)
$ sudo apt-get remove bison $ sudo apt-get install m4 $ wget http://ftp.gnu.org/gnu/bison/bison-2.7.1.tar.gz $ tar zxf bison-2.7.1.tar.gz $ cd bison-2.7.1 $ sh configure && make && sudo make install $ which bison /usr/local/bin/bison $ bison --version bison (GNU Bison) 2.7.12-4996
(From this directory) run GYP:
cobalt/build/gyp_cobalt -C debug linux-x64x11
If you get a “clang not found” error, add the path to Cobalt's clang to your $PATH
and rerun gyp_cobalt
as above. For example: /path/to/cobalt/src/third_party/llvm-build/Release+Asserts/bin
Run Ninja:
ninja -C out/linux-x64x11_debug cobalt
Run Cobalt:
out/linux-x64x11_debug/cobalt [--url=<url>]
http
instead of https
, you must pass the --allow_http
flag to the Cobalt command-line.https
host that doesn't have a globally-validatable certificate, you must pass the --ignore_certificate_errors
flag to the Cobalt command-line.cobalt/browser/switches.cc
for more command-line options.Cobalt has four build optimization levels, going from the slowest, least optimized, with the most debug information at the top (debug) to the fastest, most optimized, and with the least debug information at the bottom (gold):
Type | Optimizations | Logging | Asserts | Debug Info | Console |
---|---|---|---|---|---|
debug | None | Full | Full | Full | Enabled |
devel | Full | Full | Full | Full | Enabled |
qa | Full | Limited | None | None | Enabled |
gold | Full | None | None | None | Disabled |
When building for release, you should always use a gold build for the final product.
$ cobalt/build/gyp_cobalt -C gold linux-x64x11 $ ninja -C out/linux-x64x11_gold cobalt $ out/linux-x64x11_gold/cobalt