First, what is CEF
CEF, the chromium embeded Framework, is extended by Google's Open source browser project chromium, and can be easily embedded in other programs to get browser functionality.
CEF includes two versions of CEF1 and CEF3, and CEF1 has stopped updating. Because CEF supports only C and C + +, many third-party projects appear to provide support in other languages.
The. NET wrapper class library has CHROMIUMFX, Cefglue, Cefsharp, and other languages see https://bitbucket.org/chromiumembedded/cef# Markdown-header-external-projects.
CEF Version Number Description: 3.2357.1281.gd660177, CEF version number. Branch.Patch.Hash
Second, why to compile CEF
In the use of the CHROMIUMFX+CEF process found that does not support the mainstream MP3, MP4 format, after the search found that because these formats are not open format, for copyright considerations in the Chromium compilation configuration to remove the support for these formats. To add support you must modify the compiled configuration parameters. The online spread by copying the chrome directory under the Ffmpeg.dll replacement method has not been successful, so decided to build.
Third, compile prerequisites
1. Fast and stable VPN (not only FQ but also stable. Download WebKit Single file 4g+, once failed, need to download again
2.64-bit operating system, win7+
3. Hard disk space 40g+, memory 4g+
4. A lot of time (download five or six hours, compile two or three hours
5.vs2013 update4, win8.1 SDK (Express No, update5+ not tested
Iv. compilation process
1. Upgrade VS13 to Update4, install Microsoft Foundation Classes for C + + (MFC library, run vs Install package installation), install win8.1 SDK.
2. Set the system area to English (United States). (Control Panel-zone-manage-change system locale-English (United States)
3. Add Environment variables
Depot_tools_win_toolchain=0
Gyp_generators=ninja,msvs-ninja
gyp_msvs_version=2013
4. Create working directory, as simple as possible, without spaces special characters. Example: E:\ws
5. Download the unzip kit to the working directory and add it to the system environment variable path end. Example: E:\ws\depot_tools
Download: Depot_tools (Original page
6. Download the compilation script to the working directory
Download: automate-git.py
7. Create the source directory under the working directory. Example: E:\ws\source
8. run cmd as Administrator, switch to working directory, run Gclient
1 e: 2 CD E:\ws 3 gclient
Wait to install Python and git for about five or six minutes.
9. Continuation of the implementation
Python automate-git.py
Follow the prompts to select the appropriate configuration parameters
--download-dir Source Download Directory
--DEPOT-TOOLS-DIR Toolkit Catalog
--branch Source Branch (default trunk Main Branch
--CHECKOUT Specifies the patch version (the default most recent submission how to determine checkout is described below
--no-build download does not start the compilation automatically (we need to modify the compilation configuration
--no-update determine that the source code is downloaded and only used when recompiling
--force-build forced compilation (found that compilation does not execute when it is successfully compiled, you can add this
--no-debug-build compile only release version
--no-release-build Compiling Debug versions only
Python automate-git.py--download-dir=e:\ws\source--depot-tools-dir=e:\ws\depot_tools--branch= 2357
10. Wait for the download to complete. Have a sleep or stare at the screen for six hours.
Five, how to determine the--checkout value
If you are sure you want the latest version under the branch, skip this section.
1. Check the hash value of the target version from http://cefbuilds.com/. Example: gd660177 in 3.2357.1281.gd660177
2. Enter the target branch from the https://bitbucket.org/chromiumembedded/cef/branches/. Example: 2357
3. In the commits to retrieve the target hash, note that the version number of the hash is 8 bits, commits 7-bit, you can ignore the first search. Example: gd660177->d660177
4. Click on the corresponding commit to get the checkout value in the Address bar. Example: d66017718b0f0d44da42b706c3c2aa5c0c103852
Vi. Modifying the compilation configuration
1. Open the E:\ws\source\chromium\src\cef\cef.gypi,variables section and add the following to support MP3.
' Proprietary_codecs ': 1, ' ffmpeg_branding ': ' Chrome ',
You can also refer to http://blog.csdn.net/chromium_webkit/article/details/8575629 to add more format support .
2. Open the same directory under CEF.GYP, replace according to the following (--to be replaced, + + is replaced, actually this is a patch file, do not know how to manually replace the new version may already contain this patch)
@@ -7,7 +7,7 @@
‘pkg-config‘: ‘pkg-config‘,
‘chromium_code‘: 1,
‘grit_out_dir‘: ‘<(SHARED_INTERMEDIATE_DIR)/cef‘,
- ‘about_credits_file‘: ‘<(SHARED_INTERMEDIATE_DIR)/about_credits.html‘,
+ ‘cef_about_credits_file‘: ‘<(SHARED_INTERMEDIATE_DIR)/cef_about_credits.html‘,
‘framework_name‘: ‘Chromium Embedded Framework‘,
‘revision‘: ‘<!(python tools/revision.py)‘,
‘chrome_version‘: ‘<!(python ../build/util/version.py -f ../chrome/VERSION -t "@[email protected]@[email protected]@[email protected]@[email protected]")‘,
@@ -659,26 +659,26 @@
],
},
{
- ‘target_name‘: ‘about_credits‘,
+ ‘target_name‘: ‘cef_about_credits‘,
‘type‘: ‘none‘,
‘actions‘: [
{
‘variables‘: {
‘generator_path‘: ‘../tools/licenses.py‘,
},
- ‘action_name‘: ‘generate_about_credits‘,
+ ‘action_name‘: ‘cef_generate_about_credits‘,
‘inputs‘: [
# TODO(phajdan.jr): make licenses.py print inputs too.
‘<(generator_path)‘,
],
‘outputs‘: [
- ‘<(about_credits_file)‘,
+ ‘<(cef_about_credits_file)‘,
],
‘hard_dependency‘: 1,
‘action‘: [‘python‘,
‘<(generator_path)‘,
‘credits‘,
- ‘<(about_credits_file)‘,
+ ‘<(cef_about_credits_file)‘,
],
‘message‘: ‘Generating about:credits.‘,
},
@@ -689,7 +689,7 @@
‘target_name‘: ‘cef_resources‘,
‘type‘: ‘none‘,
‘dependencies‘: [
- ‘about_credits‘,
+ ‘cef_about_credits‘,
],
‘actions‘: [
{
@@ -697,7 +697,7 @@
‘variables‘: {
‘grit_grd_file‘: ‘libcef/resources/cef_resources.grd‘,
‘grit_additional_defines‘: [
- ‘-E‘, ‘about_credits_file=<(about_credits_file)‘,
+ ‘-E‘, ‘about_credits_file=<(cef_about_credits_file)‘,
],
},
‘includes‘: [ ‘../build/grit_action.gypi‘ ],
VII. Start compilation Build
Python automate-git.py--download-dir=e:\ws\source--depot-tools-dir=e:\ws\depot_tools--branch= 2357 --checkout=d66017718b0f0d44da42b706c3c2aa5c0c103852--no-debug-build--force-build
Wait two or three hours for compilation to complete, accidental error exits are joined--no-update re-execution, will continue the last generation.
Viii. references
Https://bitbucket.org/chromiumfx/chromiumfx/overview
Https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md#markdown-header-automated-method
Https://github.com/cefsharp/cef-binary/wiki/Building-Cef-from-source
http://cefbuilds.com/
http://blog.csdn.net/chromium_webkit/article/details/8575629
How to compile chromium (CEF3) from source on Windows to join MP3 support