[M120 Migration][MM] Ensure player is destroyed before IEMEDrmBridge 99/308499/3
authorzhishun.zhou <zhishun.zhou@samsung.com>
Tue, 26 Mar 2024 09:04:50 +0000 (17:04 +0800)
committerBot Blink <blinkbot@samsung.com>
Wed, 27 Mar 2024 19:12:24 +0000 (19:12 +0000)
commitecc660156cb3c32fb33e7c1ac15a6eb98712d4e1
tree86ee89362cdb52fcf1c74ac5622289fd0e634b3f
parentc735da9d196abf0737e3dc77fc9d1e26d551f009
[M120 Migration][MM] Ensure player is destroyed before IEMEDrmBridge

Issue:
when app use EME, chromium pass encrytped frame and key handle to MM,
and then MM decrypt frames.
When WebMediaPlayerImpl is destroyed, PipelineController::Stop will
destroy player by mojom IPC in browser process.
But IEMEDrmBridge is destroyed in render process.
If IEMEDrmBridge is destroyed before player, MM still use key handle to
decrypt, then it will crash.

Solution:
Use a sync IPC to ensure player is destroyed before IEMEDrmBridge

Patches from:
https://review.tizen.org/gerrit/#/c/299374/
https://review.tizen.org/gerrit/#/c/300392/
https://review.tizen.org/gerrit/#/c/302624/

Change-Id: I20b77e1c53d3dca685aaf0f355b3b8a149ccc056
Signed-off-by: wuxiaoliang <xliang.wu@samsung.com>
Signed-off-by: zhishun.zhou <zhishun.zhou@samsung.com>
21 files changed:
media/base/pipeline.h
media/base/pipeline_impl.cc
media/base/pipeline_impl.h
media/base/renderer.h
media/filters/pipeline_controller.cc
media/filters/pipeline_controller.h
media/mojo/clients/mojo_renderer.cc
media/mojo/clients/mojo_renderer.h
media/mojo/clients/mojo_renderer_wrapper.cc
media/mojo/clients/mojo_renderer_wrapper.h
media/mojo/mojom/renderer.mojom
media/mojo/services/mojo_renderer_service.cc
media/mojo/services/mojo_renderer_service.h
third_party/blink/renderer/platform/media/web_media_player_impl.cc
third_party/blink/renderer/platform/media/web_media_player_impl.h
tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc
tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h
tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc
tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h
tizen_src/chromium_impl/media/filters/media_player_esplusplayer_tv.cc
tizen_src/chromium_impl/media/filters/media_player_tizen.h