Index: sky/tools/debugger/debugger.cc |
diff --git a/sky/tools/debugger/debugger.cc b/sky/tools/debugger/debugger.cc |
index a764ae59571c80c91cabd70c5865ccbdc5109406..4fdbbe88474418948f5b98dd381a9b708e2c6095 100644 |
--- a/sky/tools/debugger/debugger.cc |
+++ b/sky/tools/debugger/debugger.cc |
@@ -66,13 +66,11 @@ void SkyDebugger::OnEmbed( |
} |
void SkyDebugger::OnViewManagerDisconnected(mojo::ViewManager* view_manager) { |
- CHECK(false); // FIXME: This is dead code, why? |
view_manager_ = nullptr; |
root_ = nullptr; |
} |
void SkyDebugger::OnViewDestroyed(mojo::View* view) { |
- CHECK(false); // FIXME: This is dead code, why? |
view->RemoveObserver(this); |
} |
@@ -101,6 +99,16 @@ void SkyDebugger::NavigateToURL(const mojo::String& url) { |
} |
} |
+void SkyDebugger::Shutdown() { |
+ // Make sure we shut down mojo before quitting the message loop or things |
+ // like blink::shutdown() may try to talk to the message loop and crash. |
+ window_manager_app_.reset(); |
+ |
+ // TODO(eseidel): This still hits an X11 error which I don't understand |
+ // "X Error of failed request: GLXBadDrawable", crbug.com/430581 |
+ mojo::ApplicationImpl::Terminate(); |
+} |
+ |
void SkyDebugger::InjectInspector() { |
InspectorServicePtr inspector_service; |
mojo::ConnectToService(viewer_services_.get(), &inspector_service); |