servo/ports/cef
Patrick Walton f9cdd05d58 layout: Implement ordered lists, CSS counters, and quotes per CSS 2.1
§ 12.3-12.5.

Only simple alphabetic and numeric counter styles are supported. (This
is most of them though.)

Although this PR adds a sequential pass to layout, I verified that on
pages that contain a reasonable number of ordered lists (Reddit
`/r/rust`), the time spent in generated content resolution is dwarfed by
the time spent in the parallelizable parts of layout. So I don't expect
this to negatively affect our parallelism expect perhaps in pathological
cases.
2015-03-09 17:13:45 -07:00
..
.cargo Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
interfaces Fix spelling mistakes in comments. 2014-12-11 23:56:29 -05:00
browser.rs Fix warnings in cef. 2015-02-13 14:57:52 +01:00
browser_host.rs Import msg as msg rather than servo_msg. 2015-02-10 11:40:36 +01:00
Cargo.lock layout: Implement ordered lists, CSS counters, and quotes per CSS 2.1 2015-03-09 17:13:45 -07:00
Cargo.toml Fix scrolling on OS X. 2015-03-06 16:37:29 -07:00
command_line.rs Fix warnings in cef. 2015-02-13 14:57:52 +01:00
cookie.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
core.rs Fix build warnings in CEF. 2015-02-22 22:33:15 +01:00
drag_data.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
eutil.rs Fix warnings in cef. 2015-02-13 14:57:52 +01:00
frame.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
lib.rs Remove the libc feature gate from cef. 2015-02-19 14:42:21 +01:00
macros.rs Fix various build warnings. 2015-01-28 20:42:39 +01:00
print_settings.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
process_message.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
README.md ports/cef: Use the CEF translator tool to generate the full set of CEF 2014-11-27 10:31:32 -06:00
render_handler.rs Update rustc to revision 3dcd2157403163789aaf21a9ab3c4d30a7c6494d. 2014-12-17 15:19:45 -05:00
request.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
request_context.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
response.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
stream.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
string.rs Fix warnings in cef. 2015-02-13 14:57:52 +01:00
string_list.rs ports/cef: Use the CEF translator tool to generate the full set of CEF 2014-11-27 10:31:32 -06:00
string_map.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
string_multimap.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
stubs.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
switches.rs embedding: add some commonly used string constants from chromium 2014-11-20 11:53:37 -05:00
task.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
types.rs Fix spelling mistakes in comments. 2014-12-11 23:56:29 -05:00
urlrequest.rs ports/cef: Use the CEF translator tool to generate the full set of CEF 2014-11-27 10:31:32 -06:00
v8.rs Fix various build warnings. 2015-01-28 20:42:39 +01:00
values.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
window.rs Only store the url inside a pipeline instead of the rest of the LoadData. 2015-03-03 16:25:40 -05:00
wrappers.rs Remove our copy of Utf16Encoder in favor of the built-in equivalent (fixes #4725). 2015-02-10 15:31:31 +01:00
xml_reader.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00
zip_reader.rs Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev. 2015-01-28 10:16:49 +10:00

How to test:

  1. Go to http://cefbuilds.com/ and download a binary for your OS/arch
  2. Unpack the (huge) archive
  3. Create both Debug and Release build types for CEF (./build.sh [Debug|Release])
  4. Build servo
  5. Run a CEF-based executable with the embedding crate preloaded:
    • Linux: LD_LIBRARY_PATH=/path/to/cef-bin-unpack-dir/out/$build_type LD_PRELOAD=/path/to/servo/build/libembedding-*.so [CEF EXE]
  6. Enjoy CEF-powered crashes

Notes:

  • Running with the Debug build in GDB is EXTREMELY slow on startup. Only use this if you are actively debugging an unimplemented CEF interaction.
  • The contents of interfaces/, with the exception of interfaces/mod.rs is autogenerated. To regenerate:
    • Check out the servo branch of the following repository: https://github.com/pcwalton/chromium-embedded-framework
    • Change to the tools directory and run ./translator.sh
    • Run the following command to copy in the Rust header files, replacing ${SERVO_SRC} with the path to your Servo checkout: $ cp ../libcef_dll/rust/*.rs ${SERVO_SRC}/ports/cef/interfaces/