diff --git a/mojo/common/tracing_impl.cc b/mojo/common/tracing_impl.cc
index ae30779..93f6e55 100644
--- a/mojo/common/tracing_impl.cc
+++ b/mojo/common/tracing_impl.cc
@@ -9,7 +9,6 @@
 #include "mojo/public/cpp/application/connect.h"
 #include "mojo/public/cpp/bindings/interface_handle.h"
 #include "mojo/public/cpp/bindings/interface_request.h"
-#include "mojo/public/interfaces/application/service_provider.mojom.h"
 #include "mojo/services/tracing/interfaces/trace_provider_registry.mojom.h"
 #include "mojo/services/tracing/interfaces/tracing.mojom.h"
 
diff --git a/mojo/common/tracing_impl.h b/mojo/common/tracing_impl.h
index e24dae0..d3f93c6 100644
--- a/mojo/common/tracing_impl.h
+++ b/mojo/common/tracing_impl.h
@@ -7,7 +7,6 @@
 
 #include "base/macros.h"
 #include "mojo/common/trace_provider_impl.h"
-#include "mojo/public/cpp/application/service_provider_impl.h"
 
 namespace mojo {
 
diff --git a/services/dart/dart_tracing.cc b/services/dart/dart_tracing.cc
index 2bee419..45104c6 100644
--- a/services/dart/dart_tracing.cc
+++ b/services/dart/dart_tracing.cc
@@ -8,9 +8,10 @@
 
 #include "dart/runtime/include/dart_tools_api.h"
 #include "mojo/public/cpp/application/application_impl.h"
+#include "mojo/public/cpp/application/connect.h"
 #include "mojo/public/cpp/bindings/interface_handle.h"
 #include "mojo/public/cpp/bindings/interface_request.h"
-#include "mojo/public/interfaces/application/service_provider.mojom.h"
+#include "mojo/services/tracing/interfaces/trace_provider_registry.mojom.h"
 
 namespace dart {
 
@@ -133,19 +134,12 @@
 }
 
 void DartTracingImpl::Initialize(mojo::ApplicationImpl* app) {
-  mojo::InterfaceHandle<mojo::ServiceProvider> outgoing_sp_handle;
-  mojo::InterfaceRequest<mojo::ServiceProvider> outgoing_sp_request =
-      GetProxy(&outgoing_sp_handle);
-  app->shell()->ConnectToApplication("mojo:tracing", nullptr,
-                                     outgoing_sp_handle.Pass());
-  outgoing_sp_for_tracing_service_.Bind(outgoing_sp_request.Pass());
-  outgoing_sp_for_tracing_service_.AddService(this);
-}
+  tracing::TraceProviderRegistryPtr registry;
+  ConnectToService(app->shell(), "mojo:tracing", GetProxy(&registry));
 
-void DartTracingImpl::Create(
-    mojo::ApplicationConnection* connection,
-    mojo::InterfaceRequest<tracing::TraceProvider> request) {
-  provider_impl_.Bind(request.Pass());
+  mojo::InterfaceHandle<tracing::TraceProvider> provider;
+  provider_impl_.Bind(GetProxy(&provider));
+  registry->RegisterTraceProvider(provider.Pass());
 }
 
 }  // namespace dart
diff --git a/services/dart/dart_tracing.h b/services/dart/dart_tracing.h
index 1b2135e..d9a669c 100644
--- a/services/dart/dart_tracing.h
+++ b/services/dart/dart_tracing.h
@@ -7,7 +7,6 @@
 
 #include "base/trace_event/trace_event.h"
 #include "mojo/common/tracing_impl.h"
-#include "mojo/public/cpp/application/service_provider_impl.h"
 #include "mojo/public/cpp/bindings/interface_request.h"
 #include "mojo/services/tracing/interfaces/tracing.mojom.h"
 
@@ -42,24 +41,16 @@
   DISALLOW_COPY_AND_ASSIGN(DartTraceProvider);
 };
 
-class DartTracingImpl :
-    public mojo::InterfaceFactory<tracing::TraceProvider> {
+class DartTracingImpl {
  public:
-   DartTracingImpl();
-   ~DartTracingImpl() override;
+  DartTracingImpl();
+  ~DartTracingImpl();
 
-   // This connects to the tracing service and registers ourselves to provide
-   // tracing data on demand.
-   void Initialize(mojo::ApplicationImpl* app);
+  // This connects to the tracing service and registers ourselves to provide
+  // tracing data on demand.
+  void Initialize(mojo::ApplicationImpl* app);
 
-  private:
-   // InterfaceFactory<tracing::TraceProvider> implementation.
-   void Create(mojo::ApplicationConnection* connection,
-               mojo::InterfaceRequest<tracing::TraceProvider> request) override;
  private:
-  // Used to provide services *to* mojo:tracing.
-  mojo::ServiceProviderImpl outgoing_sp_for_tracing_service_;
-
   DartTraceProvider provider_impl_;
 
   DISALLOW_COPY_AND_ASSIGN(DartTracingImpl);
diff --git a/services/gfx/compositor/compositor_app.h b/services/gfx/compositor/compositor_app.h
index c80c5d7..1faaf11 100644
--- a/services/gfx/compositor/compositor_app.h
+++ b/services/gfx/compositor/compositor_app.h
@@ -12,6 +12,7 @@
 #include "mojo/common/strong_binding_set.h"
 #include "mojo/common/tracing_impl.h"
 #include "mojo/public/cpp/application/application_delegate.h"
+#include "mojo/public/cpp/application/interface_factory.h"
 #include "mojo/services/gfx/composition/interfaces/compositor.mojom.h"
 #include "services/gfx/compositor/compositor_engine.h"
 
diff --git a/services/ui/input_manager/input_manager_app.h b/services/ui/input_manager/input_manager_app.h
index 70ac70d..e7c424a 100644
--- a/services/ui/input_manager/input_manager_app.h
+++ b/services/ui/input_manager/input_manager_app.h
@@ -11,6 +11,7 @@
 #include "mojo/common/strong_binding_set.h"
 #include "mojo/common/tracing_impl.h"
 #include "mojo/public/cpp/application/application_delegate.h"
+#include "mojo/public/cpp/application/interface_factory.h"
 #include "mojo/services/ui/views/interfaces/view_associates.mojom.h"
 
 namespace input_manager {
