diff --git .gn .gn
index 44a11ec90ec9b..4c35b35a97f28 100644
--- .gn
+++ .gn
@@ -158,6 +158,8 @@ exec_script_whitelist =
       "//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn",
       "//chrome/version.gni",
 
+      "//cef/BUILD.gn",
+
       # TODO(dgn): Layer violation but breaks the build otherwise, see
       # https://crbug.com/474506.
       "//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index 35e7fdec17819..c4734b7519f52 100644
--- BUILD.gn
+++ BUILD.gn
@@ -20,6 +20,7 @@ import("//build/config/sanitizers/sanitizers.gni")
 import("//build/config/ui.gni")
 import("//build/gn_logs.gni")
 import("//build/util/generate_wrapper.gni")
+import("//cef/libcef/features/features.gni")
 import("//chrome/enterprise_companion/buildflags.gni")
 import("//components/enterprise/buildflags/buildflags.gni")
 import("//components/nacl/features.gni")
@@ -279,6 +280,10 @@ group("gn_all") {
 
     deps += root_extra_deps
 
+    if (enable_cef) {
+      deps += [ "//cef" ]
+    }
+
     if (enable_printing || enable_printing_tests) {
       deps += [ "//printing:printing_unittests" ]
     }
diff --git build/config/win/visual_studio_version.gni build/config/win/visual_studio_version.gni
index 1da479dd5eebc..ff9c7e467997c 100644
--- build/config/win/visual_studio_version.gni
+++ build/config/win/visual_studio_version.gni
@@ -5,15 +5,14 @@
 declare_args() {
   # Path to Visual Studio. If empty, the default is used which is to use the
   # automatic toolchain in depot_tools. If set, you must also set the
-  # visual_studio_version, wdk_path and windows_sdk_version.
+  # visual_studio_version, visual_studio_runtime_dirs and windows_sdk_version.
   visual_studio_path = ""
 
   # Version of Visual Studio pointed to by the visual_studio_path.
   visual_studio_version = ""
 
-  # Directory of the Windows driver kit. If visual_studio_path is empty, this
-  # will be auto-filled.
-  wdk_path = ""
+  # Path to Visual Studio runtime libraries.
+  visual_studio_runtime_dirs = ""
 
   # Full path to the Windows SDK, not including a backslash at the end.
   # This value is the default location, override if you have a different
@@ -31,14 +30,13 @@ if (visual_studio_path == "") {
   windows_sdk_version = toolchain_data.sdk_version
   windows_sdk_path = toolchain_data.sdk_path
   visual_studio_version = toolchain_data.vs_version
-  wdk_path = toolchain_data.wdk_dir
   visual_studio_runtime_dirs = toolchain_data.runtime_dirs
 } else {
   assert(visual_studio_version != "",
          "You must set the visual_studio_version if you set the path")
+  assert(visual_studio_runtime_dirs != "",
+         "You must set the visual_studio_runtime_dirs if you set the visual " +
+         "studio path")
   assert(windows_sdk_version != "",
          "You must set the windows_sdk_version if you set the path")
-  assert(wdk_path != "",
-         "You must set the wdk_path if you set the visual studio path")
-  visual_studio_runtime_dirs = []
 }
diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni
index 274b4b40cbc2b..463d60597dda9 100644
--- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni
@@ -6,6 +6,7 @@ import("//ash/ambient/resources/resources.gni")
 import("//build/config/chrome_build.gni")
 import("//build/config/chromeos/ui_mode.gni")
 import("//build/config/locales.gni")
+import("//cef/libcef/features/features.gni")
 import("//chrome/browser/buildflags.gni")
 import("//chrome/common/features.gni")
 import("//components/compose/features.gni")
@@ -89,6 +90,10 @@ template("chrome_repack_percent") {
         ]
       }
     }
+    if (enable_cef) {
+      sources += [ "$root_gen_dir/cef/cef_resources.pak" ]
+      deps += [ "//cef:cef_resources" ]
+    }
     if (enable_extensions) {
       sources += [ "$root_gen_dir/extensions/extensions_browser_resources_${percent}_percent.pak" ]
       deps += [ "//extensions:extensions_browser_resources" ]
diff --git chrome/chrome_repack_locales.gni chrome/chrome_repack_locales.gni
index e8f61e2fbf6f2..5de226ad5a8f2 100644
--- chrome/chrome_repack_locales.gni
+++ chrome/chrome_repack_locales.gni
@@ -6,6 +6,7 @@ import("//build/config/chrome_build.gni")
 import("//build/config/chromeos/ui_mode.gni")
 import("//build/config/features.gni")
 import("//build/config/ui.gni")
+import("//cef/libcef/features/features.gni")
 import("//extensions/buildflags/buildflags.gni")
 import("//tools/grit/repack.gni")
 
@@ -105,6 +106,10 @@ template("chrome_repack_locales") {
       source_patterns += [ "${root_gen_dir}/components/strings/search_engine_descriptions_strings_" ]
       deps += [ "//components/strings:search_engine_descriptions_strings" ]
     }
+    if (enable_cef) {
+      source_patterns += [ "${root_gen_dir}/cef/cef_strings_" ]
+      deps += [ "//cef:cef_strings" ]
+    }
     if (enable_extensions) {
       source_patterns +=
           [ "${root_gen_dir}/extensions/strings/extensions_strings_" ]
diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn
index 17c3d731e269b..e2caaf2934cdd 100644
--- chrome/installer/mini_installer/BUILD.gn
+++ chrome/installer/mini_installer/BUILD.gn
@@ -7,6 +7,7 @@ import("//build/config/features.gni")
 import("//build/config/python.gni")
 import("//build/config/ui.gni")
 import("//build/timestamp.gni")
+import("//cef/libcef/features/features.gni")
 import("//chrome/process_version_rc_template.gni")
 import("//third_party/dawn/scripts/dawn_features.gni")
 import("//third_party/ffmpeg/ffmpeg_options.gni")
@@ -145,11 +146,13 @@ action("mini_installer_archive") {
   inputs = [
     "$root_out_dir/chrome.dll",
     "$root_out_dir/chrome.exe",
-    "$root_out_dir/locales/en-US.pak",
     "$root_out_dir/setup.exe",
     "//chrome/tools/build/win/makecab.py",
     release_file,
   ]
+  if (!enable_cef) {
+    inputs += [ "$root_out_dir/locales/en-US.pak" ]
+  }
 
   outputs = [
     "$root_out_dir/chrome.7z",
diff --git tools/grit/grit_args.gni tools/grit/grit_args.gni
index 79d613489bac2..869b682d453ee 100644
--- tools/grit/grit_args.gni
+++ tools/grit/grit_args.gni
@@ -5,7 +5,9 @@
 import("//build/config/chrome_build.gni")
 import("//build/config/chromeos/ui_mode.gni")
 import("//build/config/devtools.gni")
+import("//build/config/locales.gni")
 import("//build/config/ui.gni")
+import("//cef/libcef/features/features.gni")
 
 shared_intermediate_dir = rebase_path(root_gen_dir, root_build_dir)
 devtools_grd_path = "$shared_intermediate_dir/$devtools_grd_location"
@@ -36,6 +38,9 @@ _grit_defines = [
 
   # Mac and iOS want Title Case strings.
   "use_titlecase=${is_apple}",
+
+  "enable_cef=${enable_cef}",
+  "enable_pseudolocales=${enable_pseudolocales}",
 ]
 
 # Must match `enable_hidpi` in ui/base/ui_features.gni.