Commit 546fff65 authored by Yuchen Liu's avatar Yuchen Liu Committed by Commit Bot

MediaDrmStorage available on all Android and Chromecast build

Chromecast will use MediaDrmStorage to support persistent usage record.

Bug: internal b/142677685
Test: Build
Change-Id: Ie0ac3c962662004e0af9440046ccf3905d2c286b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2006969Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Commit-Queue: Yuchen Liu <yucliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735706}
parent 288faf08
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include "base/threading/thread_checker.h" #include "base/threading/thread_checker.h"
#include "base/unguessable_token.h" #include "base/unguessable_token.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "media/base/android/media_drm_storage.h" #include "media/base/media_drm_storage.h"
class MediaDrmOriginIdManagerFactory; class MediaDrmOriginIdManagerFactory;
class PrefRegistrySimple; class PrefRegistrySimple;
......
...@@ -6,12 +6,17 @@ import("//build/config/jumbo.gni") ...@@ -6,12 +6,17 @@ import("//build/config/jumbo.gni")
jumbo_source_set("browser") { jumbo_source_set("browser") {
sources = [ sources = [
"cdm_message_filter_android.cc",
"cdm_message_filter_android.h",
"media_drm_storage_impl.cc", "media_drm_storage_impl.cc",
"media_drm_storage_impl.h", "media_drm_storage_impl.h",
] ]
if (is_android) {
sources += [
"cdm_message_filter_android.cc",
"cdm_message_filter_android.h",
]
}
public_deps = [ public_deps = [
"//base", "//base",
"//content/public/browser", "//content/public/browser",
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "components/prefs/scoped_user_pref_update.h" #include "components/prefs/scoped_user_pref_update.h"
#include "content/public/browser/navigation_handle.h" #include "content/public/browser/navigation_handle.h"
#include "media/base/android/media_drm_key_type.h" #include "media/base/media_drm_key_type.h"
#include "url/origin.h" #include "url/origin.h"
#include "url/url_constants.h" #include "url/url_constants.h"
......
...@@ -34,6 +34,7 @@ buildflag_header("media_buildflags") { ...@@ -34,6 +34,7 @@ buildflag_header("media_buildflags") {
"ENABLE_LIBRARY_CDMS=$enable_library_cdms", "ENABLE_LIBRARY_CDMS=$enable_library_cdms",
"ENABLE_LIBVPX=$media_use_libvpx", "ENABLE_LIBVPX=$media_use_libvpx",
"ENABLE_LOGGING_OVERRIDE=$enable_logging_override", "ENABLE_LOGGING_OVERRIDE=$enable_logging_override",
"ENABLE_MEDIA_DRM_STORAGE=$enable_media_drm_storage",
"ENABLE_MEDIA_REMOTING=$enable_media_remoting", "ENABLE_MEDIA_REMOTING=$enable_media_remoting",
"ENABLE_MEDIA_REMOTING_RPC=$enable_media_remoting_rpc", "ENABLE_MEDIA_REMOTING_RPC=$enable_media_remoting_rpc",
"ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio", "ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio",
......
...@@ -418,6 +418,14 @@ jumbo_source_set("base") { ...@@ -418,6 +418,14 @@ jumbo_source_set("base") {
} else { } else {
sources += [ "demuxer_memory_limit_default.cc" ] sources += [ "demuxer_memory_limit_default.cc" ]
} }
if (enable_media_drm_storage) {
sources += [
"media_drm_key_type.h",
"media_drm_storage.cc",
"media_drm_storage.h",
]
}
} }
source_set("video_facing") { source_set("video_facing") {
......
...@@ -47,9 +47,6 @@ if (is_android) { ...@@ -47,9 +47,6 @@ if (is_android) {
"media_drm_bridge_delegate.h", "media_drm_bridge_delegate.h",
"media_drm_bridge_factory.cc", "media_drm_bridge_factory.cc",
"media_drm_bridge_factory.h", "media_drm_bridge_factory.h",
"media_drm_key_type.h",
"media_drm_storage.cc",
"media_drm_storage.h",
"media_drm_storage_bridge.cc", "media_drm_storage_bridge.cc",
"media_drm_storage_bridge.h", "media_drm_storage_bridge.h",
"media_player_bridge.cc", "media_player_bridge.cc",
......
...@@ -30,9 +30,9 @@ ...@@ -30,9 +30,9 @@
#include "media/base/android/media_codec_util.h" #include "media/base/android/media_codec_util.h"
#include "media/base/android/media_drm_bridge_client.h" #include "media/base/android/media_drm_bridge_client.h"
#include "media/base/android/media_drm_bridge_delegate.h" #include "media/base/android/media_drm_bridge_delegate.h"
#include "media/base/android/media_drm_key_type.h"
#include "media/base/android/media_jni_headers/MediaDrmBridge_jni.h" #include "media/base/android/media_jni_headers/MediaDrmBridge_jni.h"
#include "media/base/cdm_key_information.h" #include "media/base/cdm_key_information.h"
#include "media/base/media_drm_key_type.h"
#include "media/base/media_switches.h" #include "media/base/media_switches.h"
#include "media/base/provision_fetcher.h" #include "media/base/provision_fetcher.h"
#include "third_party/widevine/cdm/widevine_cdm_common.h" #include "third_party/widevine/cdm/widevine_cdm_common.h"
......
...@@ -21,12 +21,12 @@ ...@@ -21,12 +21,12 @@
#include "media/base/android/android_util.h" #include "media/base/android/android_util.h"
#include "media/base/android/media_crypto_context.h" #include "media/base/android/media_crypto_context.h"
#include "media/base/android/media_crypto_context_impl.h" #include "media/base/android/media_crypto_context_impl.h"
#include "media/base/android/media_drm_storage.h"
#include "media/base/android/media_drm_storage_bridge.h" #include "media/base/android/media_drm_storage_bridge.h"
#include "media/base/cdm_context.h" #include "media/base/cdm_context.h"
#include "media/base/cdm_promise.h" #include "media/base/cdm_promise.h"
#include "media/base/cdm_promise_adapter.h" #include "media/base/cdm_promise_adapter.h"
#include "media/base/content_decryption_module.h" #include "media/base/content_decryption_module.h"
#include "media/base/media_drm_storage.h"
#include "media/base/media_export.h" #include "media/base/media_export.h"
#include "media/base/player_tracker.h" #include "media/base/player_tracker.h"
#include "media/base/provision_fetcher.h" #include "media/base/provision_fetcher.h"
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
#include "base/unguessable_token.h" #include "base/unguessable_token.h"
#include "media/base/android/android_util.h" #include "media/base/android/android_util.h"
#include "media/base/android/media_drm_bridge.h" #include "media/base/android/media_drm_bridge.h"
#include "media/base/android/media_drm_key_type.h"
#include "media/base/android/media_jni_headers/MediaDrmStorageBridge_jni.h" #include "media/base/android/media_jni_headers/MediaDrmStorageBridge_jni.h"
#include "media/base/media_drm_key_type.h"
using base::android::AttachCurrentThread; using base::android::AttachCurrentThread;
using base::android::ConvertUTF8ToJavaString; using base::android::ConvertUTF8ToJavaString;
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "media/base/android/android_util.h" #include "media/base/android/android_util.h"
#include "media/base/android/media_drm_storage.h" #include "media/base/media_drm_storage.h"
#include "url/origin.h" #include "url/origin.h"
namespace base { namespace base {
......
...@@ -43,9 +43,9 @@ ...@@ -43,9 +43,9 @@
#include "media/video/supported_video_decoder_config.h" #include "media/video/supported_video_decoder_config.h"
#include "ui/gfx/ipc/color/gfx_param_traits_macros.h" #include "ui/gfx/ipc/color/gfx_param_traits_macros.h"
#if defined(OS_ANDROID) #if BUILDFLAG(ENABLE_MEDIA_DRM_STORAGE)
#include "media/base/android/media_drm_key_type.h" #include "media/base/media_drm_key_type.h"
#endif // defined(OS_ANDROID) #endif // BUILDFLAG(ENABLE_MEDIA_DRM_STORAGE)
// Enum traits. // Enum traits.
...@@ -147,11 +147,11 @@ IPC_ENUM_TRAITS_MAX_VALUE(media::VideoRotation, media::VIDEO_ROTATION_MAX) ...@@ -147,11 +147,11 @@ IPC_ENUM_TRAITS_MAX_VALUE(media::VideoRotation, media::VIDEO_ROTATION_MAX)
IPC_ENUM_TRAITS_MAX_VALUE(media::container_names::MediaContainerName, IPC_ENUM_TRAITS_MAX_VALUE(media::container_names::MediaContainerName,
media::container_names::CONTAINER_MAX) media::container_names::CONTAINER_MAX)
#if defined(OS_ANDROID) #if BUILDFLAG(ENABLE_MEDIA_DRM_STORAGE)
IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::MediaDrmKeyType, IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::MediaDrmKeyType,
media::MediaDrmKeyType::MIN, media::MediaDrmKeyType::MIN,
media::MediaDrmKeyType::MAX) media::MediaDrmKeyType::MAX)
#endif // defined(OS_ANDROID) #endif // BUILDFLAG(ENABLE_MEDIA_DRM_STORAGE)
IPC_ENUM_TRAITS_VALIDATE( IPC_ENUM_TRAITS_VALIDATE(
media::VideoColorSpace::PrimaryID, media::VideoColorSpace::PrimaryID,
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef MEDIA_BASE_ANDROID_MEDIA_DRM_KEY_TYPE_H_ #ifndef MEDIA_BASE_MEDIA_DRM_KEY_TYPE_H_
#define MEDIA_BASE_ANDROID_MEDIA_DRM_KEY_TYPE_H_ #define MEDIA_BASE_MEDIA_DRM_KEY_TYPE_H_
#include <stdint.h> #include <stdint.h>
...@@ -22,4 +22,4 @@ enum class MediaDrmKeyType : uint32_t { ...@@ -22,4 +22,4 @@ enum class MediaDrmKeyType : uint32_t {
}; };
} // namespace media } // namespace media
#endif // MEDIA_BASE_ANDROID_MEDIA_DRM_KEY_TYPE_H_ #endif // MEDIA_BASE_MEDIA_DRM_KEY_TYPE_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "media/base/android/media_drm_storage.h" #include "media/base/media_drm_storage.h"
#include <utility> #include <utility>
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef MEDIA_BASE_ANDROID_MEDIA_DRM_STORAGE_H_ #ifndef MEDIA_BASE_MEDIA_DRM_STORAGE_H_
#define MEDIA_BASE_ANDROID_MEDIA_DRM_STORAGE_H_ #define MEDIA_BASE_MEDIA_DRM_STORAGE_H_
#include <stdint.h> #include <stdint.h>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/optional.h" #include "base/optional.h"
#include "media/base/android/media_drm_key_type.h" #include "media/base/media_drm_key_type.h"
#include "media/base/media_export.h" #include "media/base/media_export.h"
#include "url/origin.h" #include "url/origin.h"
...@@ -34,7 +34,7 @@ class MEDIA_EXPORT MediaDrmStorage ...@@ -34,7 +34,7 @@ class MEDIA_EXPORT MediaDrmStorage
// If not specified, the device specific origin ID is to be used. // If not specified, the device specific origin ID is to be used.
using MediaDrmOriginId = base::Optional<base::UnguessableToken>; using MediaDrmOriginId = base::Optional<base::UnguessableToken>;
struct SessionData { struct MEDIA_EXPORT SessionData {
SessionData(std::vector<uint8_t> key_set_id, SessionData(std::vector<uint8_t> key_set_id,
std::string mime_type, std::string mime_type,
MediaDrmKeyType key_type); MediaDrmKeyType key_type);
...@@ -103,4 +103,4 @@ using CreateStorageCB = base::Callback<std::unique_ptr<MediaDrmStorage>()>; ...@@ -103,4 +103,4 @@ using CreateStorageCB = base::Callback<std::unique_ptr<MediaDrmStorage>()>;
} // namespace media } // namespace media
#endif // MEDIA_BASE_ANDROID_MEDIA_DRM_STORAGE_H_ #endif // MEDIA_BASE_MEDIA_DRM_STORAGE_H_
...@@ -91,6 +91,10 @@ declare_args() { ...@@ -91,6 +91,10 @@ declare_args() {
enable_logging_override = !use_jumbo_build && (is_chromecast || is_fuchsia) enable_logging_override = !use_jumbo_build && (is_chromecast || is_fuchsia)
enable_dav1d_decoder = !is_android && !is_ios enable_dav1d_decoder = !is_android && !is_ios
# Enable browser managed persistent metadata storage for EME persistent
# session and persistent usage record session.
enable_media_drm_storage = is_android || is_chromecast
} }
declare_args() { declare_args() {
......
...@@ -42,11 +42,12 @@ mojom("mojom") { ...@@ -42,11 +42,12 @@ mojom("mojom") {
"watch_time_recorder.mojom", "watch_time_recorder.mojom",
] ]
if (enable_media_drm_storage) {
sources += [ "media_drm_storage.mojom" ]
}
if (is_android) { if (is_android) {
sources += [ sources += [ "android_overlay.mojom" ]
"android_overlay.mojom",
"media_drm_storage.mojom",
]
} }
if (is_chromecast) { if (is_chromecast) {
......
...@@ -4,14 +4,10 @@ ...@@ -4,14 +4,10 @@
mojom = "//media/mojo/mojom/media_drm_storage.mojom" mojom = "//media/mojo/mojom/media_drm_storage.mojom"
os_whitelist = [ "android" ] public_headers = [ "//media/base/media_drm_key_type.h" ]
public_headers = [ "//media/base/android/media_drm_key_type.h" ]
traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ] traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]
deps = [ deps = [ "//media" ]
"//media",
]
type_mappings = [ "media.mojom.SessionData.KeyType=::media::MediaDrmKeyType" ] type_mappings = [ "media.mojom.SessionData.KeyType=::media::MediaDrmKeyType" ]
...@@ -13,7 +13,6 @@ typemaps = [ ...@@ -13,7 +13,6 @@ typemaps = [
"//media/mojo/mojom/demuxer_stream.typemap", "//media/mojo/mojom/demuxer_stream.typemap",
"//media/mojo/mojom/encryption_pattern.typemap", "//media/mojo/mojom/encryption_pattern.typemap",
"//media/mojo/mojom/hdr_metadata.typemap", "//media/mojo/mojom/hdr_metadata.typemap",
"//media/mojo/mojom/media_drm_storage.typemap",
"//media/mojo/mojom/media_types.typemap", "//media/mojo/mojom/media_types.typemap",
"//media/mojo/mojom/pipeline_status.typemap", "//media/mojo/mojom/pipeline_status.typemap",
"//media/mojo/mojom/video_color_space.typemap", "//media/mojo/mojom/video_color_space.typemap",
...@@ -24,6 +23,10 @@ typemaps = [ ...@@ -24,6 +23,10 @@ typemaps = [
"//media/mojo/mojom/video_frame.typemap", "//media/mojo/mojom/video_frame.typemap",
] ]
if (enable_media_drm_storage) {
typemaps += [ "//media/mojo/mojom/media_drm_storage.typemap" ]
}
if (enable_cdm_proxy) { if (enable_cdm_proxy) {
typemaps += [ "//media/mojo/mojom/cdm_proxy.typemap" ] typemaps += [ "//media/mojo/mojom/cdm_proxy.typemap" ]
} }
...@@ -108,6 +108,11 @@ jumbo_component("services") { ...@@ -108,6 +108,11 @@ jumbo_component("services") {
"android_mojo_media_client.h", "android_mojo_media_client.h",
"android_mojo_util.cc", "android_mojo_util.cc",
"android_mojo_util.h", "android_mojo_util.h",
]
}
if (enable_media_drm_storage) {
sources += [
"mojo_media_drm_storage.cc", "mojo_media_drm_storage.cc",
"mojo_media_drm_storage.h", "mojo_media_drm_storage.h",
] ]
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "media/base/android/media_drm_storage.h" #include "media/base/media_drm_storage.h"
#include "media/mojo/mojom/media_drm_storage.mojom.h" #include "media/mojo/mojom/media_drm_storage.mojom.h"
#include "media/mojo/services/media_mojo_export.h" #include "media/mojo/services/media_mojo_export.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment