chromiumembedded / cef

Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.
https://bitbucket.org/chromiumembedded/cef/
Other
3.32k stars 463 forks source link

Refactor cefclient sample application #1500

Closed magreenblatt closed 9 years ago

magreenblatt commented 9 years ago

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:

Application structure:

Window creation/management:

magreenblatt commented 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.

magreenblatt commented 9 years ago

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.

magreenblatt commented 9 years ago

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).

magreenblatt commented 9 years ago

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.

magreenblatt commented 9 years ago

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.

magreenblatt commented 9 years ago

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.

magreenblatt commented 9 years ago

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.

magreenblatt commented 9 years ago

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.

magreenblatt commented 9 years ago

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.

magreenblatt commented 9 years ago

Comment 10. originally posted by magreenblatt on 2015-01-27T00:05:12.000Z:

Trunk revision 1999:

Trunk revision 2001:

magreenblatt commented 9 years ago

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:

magreenblatt commented 9 years ago

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:

magreenblatt commented 9 years ago

Comment 13. originally posted by magreenblatt on 2015-02-02T22:36:36.000Z:

Trunk revision 2017:

Trunk revision 2018:

magreenblatt commented 9 years ago