Skip to content

Continuing Documentation

Project attribution

This documentation project is curated, generated, and maintained by Ernest Tech House and is hosted on Cloudflare Pages by Ernest Tech House.

It is not yet the official documentation for the CEF project — it is a community-driven, source-derived remade documentation website. Ernest Tech House is an independent organization, separate from the official CEF maintainers, and is actively striving to make this the official documentation in the future.

The Tech House is owned by Pease Ernest.

This site is generated from a set of standalone markdown files — one per CEF header. New pages can be added or existing pages updated by writing a single markdown file. You do not need to regenerate the whole site.

The Continuing Documentation Contract

Every documentation file on this site begins with a single-line HTML comment that records its target path:

markdown
<!-- FILE: docs/versions/v151/utilities/cef_task.md -->
# CefTask & CefTaskRunner
...

When an AI assistant (or human contributor) is asked to add or update a page, they emit only that single file, with that path marker as the first line. The maintainer pastes the file's contents into the matching location on disk. No merge logic, no full-site regeneration, no rebuild step required other than npm run dev / npm run build to refresh VitePress.

Adding a new page

  1. Decide which category the page belongs in:
    • core/ — process bootstrap, browser, frame, client, data objects
    • handlers/ — any *Handler interface returned from CefClient or CefBrowserHost
    • views/ — anything in include/views/
    • v8_js/ — V8, Values, ProcessMessage, SharedMemory
    • utilities/ — everything else (tasks, parsers, streams, cookies, etc.)
  2. Pick the filename — it should match the source header: cef_<name>.hcef_<name>.md.
  3. Write the file with the <!-- FILE: ... --> marker as the first line.
  4. Save it under docs/versions/v151/<group>/<filename>.md.
  5. If the sidebar should show it, add an entry to .vitepress/config.ts under the matching group's items array (or rely on auto-discovery if you enable it).

Updating an existing page

Open the file, edit, save. That's it. VitePress hot-reloads in dev mode.

Adding a new CEF version

  1. Copy the entire docs/versions/v151/ directory to docs/versions/v152/.
  2. Update the version-specific landing page (docs/versions/v152/index.md) with the new CEF build number and API version.
  3. Update .vitepress/config.ts to add a v152 entry in the version dropdown.
  4. Update or replace individual pages as the API changes between versions.

Page template

markdown
<!-- FILE: docs/versions/v151/<group>/<name>.md -->
# <Primary Interface Name>

**Header:** `include/<name>.h`
**Category:** <Core APIs | Browser Handlers | Views Framework | V8 & Process Messaging | System Utilities>

## Overview

<One-paragraph summary of what this header provides.>

## <InterfaceName>

**Source File:** `include/<name>.h`
**Process / Thread Context:** <e.g., Browser Process / UI Thread>
**Purpose:** <1-2 sentence purpose from header comments.>

::: warning <optional note>
<If the interface fires in a non-UI thread, call it out here.>
:::

### Methods

#### `<method signature>`

**Parameters:**
- `<param1>`: <description>
- `<param2>`: <description>

**Return Value:** <what true/false or specific return values mean>

**Usage Instruction:** <how and when to use>

**Threading Constraint:** <e.g., Must be called on the TID_UI thread.>
<Or: Threading constraint not specified in source.>

### Usage Example

```cpp
// Brief but accurate C++ snippet grounded in header signatures.

See Also


## Rules to follow

1. **No hallucinations.** If the header is silent on a detail, write
   *"Threading constraint not specified in source."* (or the equivalent for
   the missing field). Do not invent.
2. **Every file starts with the `<!-- FILE: path -->` marker.**
3. **Cross-references use relative paths** so they remain valid if a `v152`
   folder is created with the same internal structure.
4. **Code blocks use `cpp` syntax** for C++ snippets.
5. **Use VitePress containers sparingly**: `::: tip`, `::: warning`, `::: danger`
   only when they add real signal.

Derived from the CEF C++ headers — © Marshall A. Greenblatt, Google Inc. & contributors (BSD-style license). Not an official CEF project.