Index: components/view_manager/display_manager.cc |
diff --git a/components/view_manager/display_manager.cc b/components/view_manager/display_manager.cc |
index f82d549a38dd0c32b8171e7dd877ed2da85b0f2d..df6b60bc47c85859113c1862be77bff6b9fc14b6 100644 |
--- a/components/view_manager/display_manager.cc |
+++ b/components/view_manager/display_manager.cc |
@@ -119,6 +119,10 @@ void DefaultDisplayManager::Init(DisplayManagerDelegate* delegate) { |
mojo::URLRequestPtr request(mojo::URLRequest::New()); |
request->url = mojo::String::From("mojo:surfaces_service"); |
app_impl_->ConnectToService(request.Pass(), &display_factory); |
+ // TODO(fsamuel): We should indicate to the delegate that this object failed |
+ // to initialize. |
+ if (!display_factory) |
+ return; |
display_factory->Create(context_provider.Pass(), |
nullptr, // returner - we never submit resources. |
GetProxy(&display_)); |
@@ -167,9 +171,11 @@ void DefaultDisplayManager::Draw() { |
frame->passes.push_back(pass.Pass()); |
frame->resources.resize(0u); |
frame_pending_ = true; |
- display_->SubmitFrame( |
- frame.Pass(), |
- base::Bind(&DefaultDisplayManager::DidDraw, base::Unretained(this))); |
+ if (display_) { |
+ display_->SubmitFrame( |
+ frame.Pass(), |
+ base::Bind(&DefaultDisplayManager::DidDraw, base::Unretained(this))); |
+ } |
dirty_rect_ = gfx::Rect(); |
} |