mirror of
https://github.com/aphrody-labs/cef.git
synced 2026-10-13 21:07:07 +00:00
The owned menu window could be created before the main window was activated. When the main window became active later, the menu was dismissed (e.g. Wayland popups), so owned_window_ was null by the time CloseMainWindow ran. This happened reliably on repeat iterations, where cached loads make OnLoadEnd fire sooner. Forward CefWindowDelegate::OnWindowActivationChanged from TestWindowDelegate to a new TestHandler::OnWindowActivationChanged hook, and wait until the load has ended and the main window is active before creating the owned window.
CEF Test Applications
This directory contains sample applications and test suites demonstrating the Chromium Embedded Framework (CEF).
Sample Applications
cefsimple
Minimal C++ browser application - the recommended starting point for learning CEF.
- Purpose: Learning CEF basics
- Complexity: ~10 source files
- Best for: Understanding CEF architecture and fundamental APIs
- Tutorial: CEF Tutorial provides detailed walkthrough
cefsimple_capi
Pure C implementation of cefsimple using the CEF C API.
- Purpose: C API reference implementation
- Language: Pure C (C11), no C++
- Best for: Embedding CEF in C projects or when C++ is unavailable
- Documentation: Using the CAPI
cefclient
Comprehensive sample application demonstrating advanced CEF features.
- Purpose: Feature demonstration and manual testing
- Complexity: ~100+ source files
- Features: Full CEF API coverage, built-in test framework, multiple UI modes
- Best for: Reference implementation, exploring advanced features
Test Suite
ceftests
Automated unit test suite for CEF API validation.
- Purpose: Automated regression testing
- Framework: Google Test (gtest)
- Coverage: Comprehensive CEF API testing across all platforms
- Best for: CI/CD integration, validating CEF releases
Shared Code
shared
Common utilities and helpers used by cefclient and ceftests.
- Delegate pattern framework for application customization
- Message loop implementations (standard, external pump, multi-threaded)
- Cross-platform resource loading and file utilities
- Not used by cefsimple or cefsimple_capi (self-contained examples)
Learning Path
New to CEF? Follow this recommended path:
- Start with cefsimple and the CEF Tutorial to understand CEF architecture
- Explore cefclient to see advanced features and integration patterns
- Review ceftests to understand API usage and testing patterns
- Study shared code for reusable patterns and best practices
For C API development, substitute cefsimple_capi for cefsimple and consult Using the CAPI.
References
- CEF Project - Main repository
- CEF Tutorial - Detailed architecture walkthrough
- CEF General Usage - Complete API documentation
- CEF Forum - Community support and discussions