Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(992)

Side by Side Diff: media/mojo/services/mojo_media_application.cc

Issue 1249643004: media: Quit MojoMediaApplication when no ServiceFactory service is bound. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/mojo/services/mojo_media_application.h" 5 #include "media/mojo/services/mojo_media_application.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "media/base/media_log.h" 8 #include "media/base/media_log.h"
9 #include "media/mojo/services/service_factory_impl.h" 9 #include "media/mojo/services/service_factory_impl.h"
10 #include "mojo/application/public/cpp/application_connection.h" 10 #include "mojo/application/public/cpp/application_connection.h"
11 #include "mojo/application/public/cpp/application_impl.h" 11 #include "mojo/application/public/cpp/application_impl.h"
12 12
13 namespace media { 13 namespace media {
14 14
15 const char kMojoMediaAppUrl[] = "mojo:media"; 15 const char kMojoMediaAppUrl[] = "mojo:media";
16 16
17 // static 17 // static
18 GURL MojoMediaApplication::AppUrl() { 18 GURL MojoMediaApplication::AppUrl() {
19 return GURL(kMojoMediaAppUrl); 19 return GURL(kMojoMediaAppUrl);
20 } 20 }
21 21
22 // static 22 // static
23 scoped_ptr<mojo::ApplicationDelegate> MojoMediaApplication::CreateApp() { 23 scoped_ptr<mojo::ApplicationDelegate> MojoMediaApplication::CreateApp() {
24 return scoped_ptr<mojo::ApplicationDelegate>(new MojoMediaApplication()); 24 return scoped_ptr<mojo::ApplicationDelegate>(new MojoMediaApplication());
25 } 25 }
26 26
27 // TODO(xhwang): Hook up MediaLog when possible. 27 // TODO(xhwang): Hook up MediaLog when possible.
28 MojoMediaApplication::MojoMediaApplication() : media_log_(new MediaLog()) { 28 MojoMediaApplication::MojoMediaApplication()
29 } 29 : app_impl_(nullptr), media_log_(new MediaLog()) {}
30 30
31 MojoMediaApplication::~MojoMediaApplication() { 31 MojoMediaApplication::~MojoMediaApplication() {
32 } 32 }
33 33
34 void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) { 34 void MojoMediaApplication::Initialize(mojo::ApplicationImpl* app) {
35 app_impl_ = app;
36
35 logging::LoggingSettings settings; 37 logging::LoggingSettings settings;
36 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; 38 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
37 logging::InitLogging(settings); 39 logging::InitLogging(settings);
38 // Display process ID, thread ID and timestamp in logs. 40 // Display process ID, thread ID and timestamp in logs.
39 logging::SetLogItems(true, true, true, false); 41 logging::SetLogItems(true, true, true, false);
40 } 42 }
41 43
42 bool MojoMediaApplication::ConfigureIncomingConnection( 44 bool MojoMediaApplication::ConfigureIncomingConnection(
43 mojo::ApplicationConnection* connection) { 45 mojo::ApplicationConnection* connection) {
44 connection->AddService<interfaces::ServiceFactory>(this); 46 connection->AddService<interfaces::ServiceFactory>(this);
45 return true; 47 return true;
46 } 48 }
47 49
48 void MojoMediaApplication::Create( 50 void MojoMediaApplication::Create(
49 mojo::ApplicationConnection* connection, 51 mojo::ApplicationConnection* connection,
50 mojo::InterfaceRequest<interfaces::ServiceFactory> request) { 52 mojo::InterfaceRequest<interfaces::ServiceFactory> request) {
51 // The created object is owned by the pipe. 53 // The created object is owned by the pipe.
52 new ServiceFactoryImpl(request.Pass(), connection->GetServiceProvider(), 54 new ServiceFactoryImpl(request.Pass(), connection->GetServiceProvider(),
53 media_log_); 55 media_log_,
56 app_impl_->app_lifetime_helper()->CreateAppRefCount());
54 } 57 }
55 58
56 } // namespace media 59 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698