| Index: media/mojo/services/mojo_media_application.h
|
| diff --git a/media/mojo/services/mojo_media_application.h b/media/mojo/services/mojo_media_application.h
|
| index 71b1e06527bf350fac2da53d0d0a28756a8324e7..c1e24dffa1dafc7ee41d105764dfd742304ac753 100644
|
| --- a/media/mojo/services/mojo_media_application.h
|
| +++ b/media/mojo/services/mojo_media_application.h
|
| @@ -2,6 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/callback.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "media/mojo/interfaces/service_factory.mojom.h"
|
| #include "mojo/shell/public/cpp/interface_factory_impl.h"
|
| @@ -17,12 +18,22 @@
|
| : public mojo::ShellClient,
|
| public mojo::InterfaceFactory<interfaces::ServiceFactory> {
|
| public:
|
| + // Callback to create a MojoMediaClient.
|
| + using CreateMojoMediaClientCB = base::Callback<scoped_ptr<MojoMediaClient>()>;
|
| +
|
| + // Creates MojoMediaApplication using the default MojoMediaClient.
|
| static scoped_ptr<mojo::ShellClient> CreateApp();
|
|
|
| - explicit MojoMediaApplication(scoped_ptr<MojoMediaClient> mojo_media_client);
|
| + // Creates MojoMediaApplication using the MojoMediaClient provided by
|
| + // |create_mojo_media_client_cb|.
|
| + static scoped_ptr<mojo::ShellClient> CreateAppWithClient(
|
| + const CreateMojoMediaClientCB& create_mojo_media_client_cb);
|
| +
|
| ~MojoMediaApplication() final;
|
|
|
| private:
|
| + explicit MojoMediaApplication(scoped_ptr<MojoMediaClient> mojo_media_client);
|
| +
|
| // mojo::ShellClient implementation.
|
| void Initialize(mojo::Shell* shell,
|
| const std::string& url,
|
| @@ -33,7 +44,11 @@
|
| void Create(mojo::Connection* connection,
|
| mojo::InterfaceRequest<interfaces::ServiceFactory> request) final;
|
|
|
| + // Note: Since each instance runs on a different thread, do not share a common
|
| + // MojoMediaClient with other instances to avoid threading issues. Hence using
|
| + // a scoped_ptr here.
|
| scoped_ptr<MojoMediaClient> mojo_media_client_;
|
| +
|
| mojo::Shell* shell_;
|
| scoped_refptr<MediaLog> media_log_;
|
| };
|
|
|