Closed magreenblatt closed 9 years ago
Comment 1. originally posted by magreenblatt on 2015-01-22T01:57:06.000Z:
File extensions changed from .cpp to .cc in trunk revision 1981.
Comment 2. originally posted by magreenblatt on 2015-01-22T17:56:29.000Z:
An abstraction for message loop functionality has been added in trunk revision 1982.
Comment 3. originally posted by magreenblatt on 2015-01-22T19:54:31.000Z:
On Mac we should also remove the helper target build dependencies on code that does not actually run in that process (*_test, client_handler, etc).
Comment 4. originally posted by magreenblatt on 2015-01-22T20:21:51.000Z:
Add test_runner as the single entry point for running test-related code and move test implementations to the client namespace in trunk revision 1983.
Comment 5. originally posted by magreenblatt on 2015-01-22T21:40:04.000Z:
Use test_runner::Alert instead of platform-specific notifications in trunk revision 1984.
Comment 6. originally posted by magreenblatt on 2015-01-22T23:11:57.000Z:
Replace global App* functions with singleton MainContext instance in trunk revision 1985.
Comment 7. originally posted by magreenblatt on 2015-01-23T16:21:23.000Z:
Don't specify `virtual` in combination with `OVERRIDE` since it's redundant in trunk revision 1986 and revision 1987.
Comment 8. originally posted by magreenblatt on 2015-01-23T19:12:51.000Z:
All files moved to the `client` namespace in trunk revision 1988 and revision 1989.
Comment 9. originally posted by magreenblatt on 2015-01-23T20:07:08.000Z:
Additional `client` namespace changes in trunk revision 1990. Move Linux GTK dialog handlers from ClientHandler into a separate class in trunk revision 1991.
Comment 10. originally posted by magreenblatt on 2015-01-27T00:05:12.000Z:
Trunk revision 1999:
Trunk revision 2001:
Comment 11. originally posted by magreenblatt on 2015-01-30T19:11:21.000Z:
Trunk revision 2004:
Trunk revision 2006:
Trunk revision 2008:
Trunk revision 2009:
Comment 12. originally posted by magreenblatt on 2015-01-31T04:49:19.000Z:
Trunk revision 2010, revision 2011, revision 2012, revision 2013 and revision 2014:
Trunk revision 2015:
Comment 13. originally posted by magreenblatt on 2015-02-02T22:36:36.000Z:
Trunk revision 2017:
Trunk revision 2018:
Original report by me.
Original issue 1500 created by magreenblatt on 2015-01-22T00:57:21.000Z:
The cefclient sample application has evolved incrementally and haphazardly since the CEF project was first started. It's now time to refactor cefclient so that it better reflects good application design principles. This includes:
File/code organization:
General design principles:
-- Delegates are generally passed to the class constructor and guaranteed to outlive the class instance.
-- Multiple observers might be registered on the same class instance and should unregister themselves before destruction.
-- Document the thread on which delegate/observer methods will be called.
-- Class methods can internally post to the correct thread when setting members.
-- Use asynchronous callbacks for accessing members that may live on a different thread.
Application structure:
Window creation/management:
-- Optionally show/hide controls (url bar and back/forward/stop/reload buttons).
-- Optionally create as a top-level window or popup window.
-- Optionally create with a windowed browser (created/managed by CEF) or off-screen browser (native window with GL context + CefRenderHandler).
-- Create/manage root windows via the singleton global context class.