Index: chrome/BUILD.gn |
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn |
index aa67e96e67f7843df67ccc4146b956a977d33312..2e44872514c002affc0f71ad7822b7ebac0c8126 100644 |
--- a/chrome/BUILD.gn |
+++ b/chrome/BUILD.gn |
@@ -14,6 +14,7 @@ import("//build/config/win/manifest.gni") |
import("//chrome/chrome_repack_locales.gni") |
import("//chrome/common/features.gni") |
import("//chrome/version.gni") |
+import("//third_party/widevine/cdm/widevine.gni") |
import("//ui/base/ui_features.gni") |
import("//v8/gni/v8.gni") |
@@ -844,21 +845,42 @@ if (is_win) { |
} |
} |
- if (is_chrome_branded) { |
+ _should_bundle_widevine = |
+ (is_chrome_branded || enable_widevine) && enable_pepper_cdms |
+ if (_should_bundle_widevine) { |
+ # The Widevine CDM and manifest are either the actual Widevine CDM and |
+ # manifest or stubs used for testing only. The choice is made within the |
+ # corresponding Widevine targets based on branding. |
bundle_data("widevine_cdm_library_binaries") { |
sources = [ |
- "$root_out_dir/$widevine_cdm_path/libwidevinecdm.dylib", |
+ "$root_out_dir/libwidevinecdm.dylib", |
"$root_out_dir/$widevine_cdm_path/widevinecdmadapter.plugin", |
] |
outputs = [ |
"{{bundle_root_dir}}/Libraries/$widevine_cdm_path/{{source_file_part}}", |
] |
public_deps = [ |
- "//third_party/widevine/cdm:widevinecdm", |
+ # Need this intermediate dependency because "widevinecdm" is a |
+ # shared_library if !is_chrome_branded, and then depending on |
+ # "widevinecdm" directly would cause it to be linked into the Chromium |
+ # Framework, which we don't want. |
+ ":widevine_cdm_library_copy", |
"//third_party/widevine/cdm:widevinecdmadapter", |
] |
} |
+ copy("widevine_cdm_library_copy") { |
+ sources = [ |
+ "$root_out_dir/$widevine_cdm_path/libwidevinecdm.dylib", |
+ ] |
+ outputs = [ |
+ "$root_out_dir/{{source_file_part}}", |
+ ] |
+ deps = [ |
+ "//third_party/widevine/cdm:widevinecdm", |
+ ] |
+ } |
+ |
bundle_data("widevine_cdm_library_manifest") { |
sources = [ |
"$root_out_dir/WidevineCdm/manifest.json", |
@@ -873,7 +895,7 @@ if (is_win) { |
} |
group("widevine_cdm_library") { |
- if (is_chrome_branded) { |
+ if (_should_bundle_widevine) { |
deps = [ |
":widevine_cdm_library_binaries", |
":widevine_cdm_library_manifest", |