There is no reason for MediaPipelineBackendManager to be a singleton. It should be owned by either CastBrowserMainParts or CastContentBrowserClient. Also, there are no unittests for MediaPipelineBackendManager.
I can take this issue.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7f6a0145ae3deb8920771b2a2347af5f5c91aedd commit 7f6a0145ae3deb8920771b2a2347af5f5c91aedd Author: tianyuwang <tianyuwang@google.com> Date: Fri Apr 01 18:48:05 2016 [chromecast] Pass media task runner to MediaPipelineBackendManager. This required making MediaPipelineBackendManager non-singleton and passed around wherever required. BUG= 597450 Review URL: https://codereview.chromium.org/1845783002 Cr-Commit-Position: refs/heads/master@{#384643} [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/browser/cast_browser_main_parts.cc [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/browser/cast_browser_main_parts.h [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/browser/cast_content_browser_client.cc [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/browser/cast_content_browser_client.h [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/audio/cast_audio_manager.cc [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/audio/cast_audio_manager.h [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/audio/cast_audio_manager_factory.cc [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/audio/cast_audio_manager_factory.h [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/audio/cast_audio_output_stream_unittest.cc [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/cma/backend/media_pipeline_backend_manager.cc [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/cma/backend/media_pipeline_backend_manager.h [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/cma/backend/media_pipeline_backend_wrapper.cc [modify] https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd/chromecast/media/cma/backend/media_pipeline_backend_wrapper.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/256cb1b61f5f9658536b083ff2862152348cf0a3 commit 256cb1b61f5f9658536b083ff2862152348cf0a3 Author: tianyuwang <tianyuwang@google.com> Date: Sat Apr 02 00:34:53 2016 Revert of [chromecast] Pass media task runner to MediaPipelineBackendManager. (patchset #8 id:140001 of https://codereview.chromium.org/1845783002/ ) Reason for revert: Broke chromecast. Will reland it after that's fixed. Original issue's description: > [chromecast] Pass media task runner to MediaPipelineBackendManager. > > This required making MediaPipelineBackendManager non-singleton and > passed around wherever required. > > BUG= 597450 > > Committed: https://crrev.com/7f6a0145ae3deb8920771b2a2347af5f5c91aedd > Cr-Commit-Position: refs/heads/master@{#384643} TBR=alokp@chromium.org,halliwell@chromium.org,kmackay@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 597450 Review URL: https://codereview.chromium.org/1855633002 Cr-Commit-Position: refs/heads/master@{#384756} [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/browser/cast_browser_main_parts.cc [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/browser/cast_browser_main_parts.h [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/browser/cast_content_browser_client.cc [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/browser/cast_content_browser_client.h [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/audio/cast_audio_manager.cc [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/audio/cast_audio_manager.h [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/audio/cast_audio_manager_factory.cc [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/audio/cast_audio_manager_factory.h [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/audio/cast_audio_output_stream_unittest.cc [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/cma/backend/media_pipeline_backend_manager.cc [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/cma/backend/media_pipeline_backend_manager.h [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/cma/backend/media_pipeline_backend_wrapper.cc [modify] https://crrev.com/256cb1b61f5f9658536b083ff2862152348cf0a3/chromecast/media/cma/backend/media_pipeline_backend_wrapper.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31 commit c7e35d80cffa26c4ddc76ba6f71fd3127dccec31 Author: tianyuwang <tianyuwang@google.com> Date: Wed Apr 06 21:24:18 2016 [chromecast] Pass media task runner to MediaPipelineBackendManager. BUG= 597450 Review URL: https://codereview.chromium.org/1858803002 Cr-Commit-Position: refs/heads/master@{#385556} [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/browser/cast_browser_main_parts.cc [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/browser/cast_browser_main_parts.h [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/browser/cast_content_browser_client.cc [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/browser/cast_content_browser_client.h [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/audio/cast_audio_manager.cc [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/audio/cast_audio_manager.h [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/audio/cast_audio_manager_factory.cc [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/audio/cast_audio_manager_factory.h [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/audio/cast_audio_output_stream_unittest.cc [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/cma/backend/media_pipeline_backend_manager.cc [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/cma/backend/media_pipeline_backend_manager.h [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/cma/backend/media_pipeline_backend_wrapper.cc [modify] https://crrev.com/c7e35d80cffa26c4ddc76ba6f71fd3127dccec31/chromecast/media/cma/backend/media_pipeline_backend_wrapper.h
Comment 1 by tianyuwang@google.com
, Mar 24 2016