Index: sky/shell/ui/engine.cc |
diff --git a/sky/shell/ui/engine.cc b/sky/shell/ui/engine.cc |
index f82922b8fcdcdaa1c4c65982a34df8d65e45b5cc..944142cb4272027e7a0df2aabb0d54c2fd500d58 100644 |
--- a/sky/shell/ui/engine.cc |
+++ b/sky/shell/ui/engine.cc |
@@ -33,6 +33,8 @@ void ConfigureSettings(blink::WebSettings* settings) { |
settings->setLoadsImagesAutomatically(true); |
} |
+PlatformImpl* g_platform_impl = nullptr; |
+ |
} |
Engine::Engine(const Config& config) |
@@ -53,15 +55,17 @@ base::WeakPtr<Engine> Engine::GetWeakPtr() { |
return weak_factory_.GetWeakPtr(); |
} |
-void Engine::Init() { |
+void Engine::Init(ServiceProviderContext* service_provider_context) { |
TRACE_EVENT0("sky", "Engine::Init"); |
- service_provider_ = CreateServiceProvider(config_.service_provider_context); |
+ mojo::ServiceProviderPtr service_provider = |
+ CreateServiceProvider(service_provider_context); |
mojo::NetworkServicePtr network_service; |
- mojo::ConnectToService(service_provider_.get(), &network_service); |
- platform_impl_.reset(new PlatformImpl(network_service.Pass())); |
+ mojo::ConnectToService(service_provider.get(), &network_service); |
- blink::initialize(platform_impl_.get()); |
+ DCHECK(!g_platform_impl); |
+ g_platform_impl = new PlatformImpl(network_service.Pass()); |
+ blink::initialize(g_platform_impl); |
} |
void Engine::BeginFrame(base::TimeTicks frame_time) { |