diff options
Diffstat (limited to 'components')
15 files changed, 22 insertions, 77 deletions
diff --git a/components/devtools_service/devtools_agent_host.cc b/components/devtools_service/devtools_agent_host.cc index d31811a..d344a59 100644 --- a/components/devtools_service/devtools_agent_host.cc +++ b/components/devtools_service/devtools_agent_host.cc @@ -14,7 +14,6 @@ DevToolsAgentHost::DevToolsAgentHost(DevToolsAgentPtr agent) agent_(agent.Pass()), binding_(this), delegate_(nullptr) { - agent_.set_error_handler(this); } DevToolsAgentHost::~DevToolsAgentHost() { @@ -47,8 +46,4 @@ void DevToolsAgentHost::DispatchProtocolMessage(const mojo::String& message) { delegate_->DispatchProtocolMessage(this, message); } -void DevToolsAgentHost::OnConnectionError() { - agent_connection_error_handler_.Run(); -} - } // namespace devtools_service diff --git a/components/devtools_service/devtools_agent_host.h b/components/devtools_service/devtools_agent_host.h index 7b5e759..84591c7 100644 --- a/components/devtools_service/devtools_agent_host.h +++ b/components/devtools_service/devtools_agent_host.h @@ -11,13 +11,11 @@ #include "components/devtools_service/public/interfaces/devtools_service.mojom.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/callback.h" -#include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h" namespace devtools_service { // DevToolsAgentHost represents a DevTools agent at the service side. -class DevToolsAgentHost : public DevToolsAgentClient, - public mojo::ErrorHandler { +class DevToolsAgentHost : public DevToolsAgentClient { public: class Delegate { public: @@ -35,7 +33,7 @@ class DevToolsAgentHost : public DevToolsAgentClient, ~DevToolsAgentHost() override; void set_agent_connection_error_handler(const mojo::Closure& handler) { - agent_connection_error_handler_ = handler; + agent_.set_connection_error_handler(handler); } std::string id() const { return id_; } @@ -53,13 +51,9 @@ class DevToolsAgentHost : public DevToolsAgentClient, // DevToolsAgentClient implementation. void DispatchProtocolMessage(const mojo::String& message) override; - // mojo::ErrorHandler implementation. - void OnConnectionError() override; - const std::string id_; DevToolsAgentPtr agent_; - mojo::Closure agent_connection_error_handler_; mojo::Binding<DevToolsAgentClient> binding_; diff --git a/components/devtools_service/devtools_http_server.cc b/components/devtools_service/devtools_http_server.cc index 372cd37..22d3258 100644 --- a/components/devtools_service/devtools_http_server.cc +++ b/components/devtools_service/devtools_http_server.cc @@ -115,8 +115,7 @@ mojo::HttpResponsePtr MakeJsonResponse(uint32_t status_code, } class WebSocketRelayer : public DevToolsAgentHost::Delegate, - public mojo::WebSocketClient, - public mojo::ErrorHandler { + public mojo::WebSocketClient { public: // Creates a WebSocketRelayer instance and sets it as the delegate of // |agent_host|. @@ -152,7 +151,7 @@ class WebSocketRelayer : public DevToolsAgentHost::Delegate, write_send_stream_(new mojo::WebSocketWriteQueue(send_stream_.get())), pending_send_count_(0), pending_receive_count_(0) { - web_socket_.set_error_handler(this); + web_socket_.set_connection_error_handler([this]() { OnConnectionError(); }); agent_host->SetDelegate(this); } @@ -227,8 +226,7 @@ class WebSocketRelayer : public DevToolsAgentHost::Delegate, uint16_t code, const mojo::String& reason) override {} - // mojo::ErrorHandler implementation. - void OnConnectionError() override { + void OnConnectionError() { web_socket_ = nullptr; binding_.Close(); @@ -281,8 +279,7 @@ class WebSocketRelayer : public DevToolsAgentHost::Delegate, } // namespace class DevToolsHttpServer::HttpConnectionDelegateImpl - : public mojo::HttpConnectionDelegate, - public mojo::ErrorHandler { + : public mojo::HttpConnectionDelegate { public: HttpConnectionDelegateImpl( DevToolsHttpServer* owner, @@ -295,8 +292,9 @@ class DevToolsHttpServer::HttpConnectionDelegateImpl DCHECK(connection_); DCHECK(binding_.is_bound()); - connection_.set_error_handler(this); - binding_.set_error_handler(this); + auto error_handler = [this]() { owner_->OnConnectionClosed(this); }; + connection_.set_connection_error_handler(error_handler); + binding_.set_connection_error_handler(error_handler); } mojo::HttpConnection* connection() { return connection_.get(); } @@ -314,9 +312,6 @@ class DevToolsHttpServer::HttpConnectionDelegateImpl owner_->OnReceivedWebSocketRequest(this, request.Pass(), callback); } - // mojo::ErrorHandler implementation. - void OnConnectionError() override { owner_->OnConnectionClosed(this); } - DevToolsHttpServer* const owner_; mojo::HttpConnectionPtr connection_; mojo::Binding<HttpConnectionDelegate> binding_; diff --git a/components/html_viewer/devtools_agent_impl.cc b/components/html_viewer/devtools_agent_impl.cc index 8430cfe..630b215 100644 --- a/components/html_viewer/devtools_agent_impl.cc +++ b/components/html_viewer/devtools_agent_impl.cc @@ -52,7 +52,7 @@ void DevToolsAgentImpl::SetClient( frame_->devToolsAgent()->detach(); client_ = client.Pass(); - client_.set_error_handler(this); + client_.set_connection_error_handler([this]() { OnConnectionError(); }); frame_->devToolsAgent()->attach(blink::WebString::fromUTF8(client_id)); } diff --git a/components/html_viewer/devtools_agent_impl.h b/components/html_viewer/devtools_agent_impl.h index 3182f5c..1998928 100644 --- a/components/html_viewer/devtools_agent_impl.h +++ b/components/html_viewer/devtools_agent_impl.h @@ -21,8 +21,7 @@ class Shell; namespace html_viewer { class DevToolsAgentImpl : public devtools_service::DevToolsAgent, - public blink::WebDevToolsAgentClient, - public mojo::ErrorHandler { + public blink::WebDevToolsAgentClient { public: // |frame| must outlive this object. DevToolsAgentImpl(blink::WebLocalFrame* frame, mojo::Shell* shell); @@ -46,8 +45,7 @@ class DevToolsAgentImpl : public devtools_service::DevToolsAgent, const blink::WebString& response, const blink::WebString& state); - // mojo::ErrorHandler implementation. - void OnConnectionError() override; + void OnConnectionError(); blink::WebLocalFrame* const frame_; mojo::Binding<DevToolsAgent> binding_; diff --git a/components/view_manager/client_connection.cc b/components/view_manager/client_connection.cc index 62aae04..113de0e 100644 --- a/components/view_manager/client_connection.cc +++ b/components/view_manager/client_connection.cc @@ -26,14 +26,11 @@ DefaultClientConnection::DefaultClientConnection( connection_manager_(connection_manager), binding_(service(), service_request.Pass()), client_(client.Pass()) { - binding_.set_error_handler(this); + binding_.set_connection_error_handler( + [this]() { connection_manager_->OnConnectionError(this); }); } DefaultClientConnection::~DefaultClientConnection() { } -void DefaultClientConnection::OnConnectionError() { - connection_manager_->OnConnectionError(this); -} - } // namespace view_manager diff --git a/components/view_manager/client_connection.h b/components/view_manager/client_connection.h index a43e0c8..f35adda 100644 --- a/components/view_manager/client_connection.h +++ b/components/view_manager/client_connection.h @@ -8,7 +8,6 @@ #include "base/memory/scoped_ptr.h" #include "components/view_manager/public/interfaces/view_manager.mojom.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" -#include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h" namespace view_manager { @@ -36,8 +35,7 @@ class ClientConnection { }; // Bindings implementation of ClientConnection. -class DefaultClientConnection : public ClientConnection, - public mojo::ErrorHandler { +class DefaultClientConnection : public ClientConnection { public: DefaultClientConnection( scoped_ptr<ViewManagerServiceImpl> service_impl, @@ -47,9 +45,6 @@ class DefaultClientConnection : public ClientConnection, ~DefaultClientConnection() override; private: - // ErrorHandler: - void OnConnectionError() override; - ConnectionManager* connection_manager_; mojo::Binding<mojo::ViewManagerService> binding_; mojo::ViewManagerClientPtr client_; diff --git a/components/view_manager/gles2/command_buffer_impl.cc b/components/view_manager/gles2/command_buffer_impl.cc index 059093e..9a2a97b 100644 --- a/components/view_manager/gles2/command_buffer_impl.cc +++ b/components/view_manager/gles2/command_buffer_impl.cc @@ -151,7 +151,7 @@ CommandBufferImpl::~CommandBufferImpl() { void CommandBufferImpl::BindToRequest( mojo::InterfaceRequest<mojo::CommandBuffer> request) { binding_.Bind(request.Pass()); - binding_.set_error_handler(this); + binding_.set_connection_error_handler([this]() { OnConnectionError(); }); } void CommandBufferImpl::OnConnectionError() { diff --git a/components/view_manager/gles2/command_buffer_impl.h b/components/view_manager/gles2/command_buffer_impl.h index ccfc467..2961d94 100644 --- a/components/view_manager/gles2/command_buffer_impl.h +++ b/components/view_manager/gles2/command_buffer_impl.h @@ -23,8 +23,7 @@ class CommandBufferImplObserver; // so that we can insert sync points without blocking on the GL driver. It // forwards most method calls to the CommandBufferDriver, which runs on the // same thread as the native viewport. -class CommandBufferImpl : public mojo::CommandBuffer, - public mojo::ErrorHandler { +class CommandBufferImpl : public mojo::CommandBuffer { public: CommandBufferImpl( mojo::InterfaceRequest<CommandBuffer> request, @@ -74,8 +73,7 @@ class CommandBufferImpl : public mojo::CommandBuffer, void UpdateVSyncParameters(base::TimeTicks timebase, base::TimeDelta interval); - // mojo::ErrorHandler: - void OnConnectionError() override; + void OnConnectionError(); scoped_refptr<gpu::SyncPointManager> sync_point_manager_; scoped_refptr<base::SingleThreadTaskRunner> driver_task_runner_; diff --git a/components/view_manager/public/cpp/lib/view_manager_client_impl.cc b/components/view_manager/public/cpp/lib/view_manager_client_impl.cc index a2fc4c8..f0e6a4c 100644 --- a/components/view_manager/public/cpp/lib/view_manager_client_impl.cc +++ b/components/view_manager/public/cpp/lib/view_manager_client_impl.cc @@ -254,7 +254,7 @@ void ViewManagerClientImpl::OnEmbed(ConnectionSpecificId connection_id, if (view_manager_service) { DCHECK(!service_); service_ = view_manager_service.Pass(); - service_.set_error_handler(this); + service_.set_connection_error_handler([this]() { delete this; }); } connection_id_ = connection_id; @@ -406,12 +406,6 @@ void ViewManagerClientImpl::OnViewFocused(Id focused_view_id) { } //////////////////////////////////////////////////////////////////////////////// -// OnConnectionError, private: -void ViewManagerClientImpl::OnConnectionError() { - delete this; -} - -//////////////////////////////////////////////////////////////////////////////// // ViewManagerClientImpl, private: void ViewManagerClientImpl::OnActionCompleted(bool success) { diff --git a/components/view_manager/public/cpp/lib/view_manager_client_impl.h b/components/view_manager/public/cpp/lib/view_manager_client_impl.h index db0bc373..0e76ef8 100644 --- a/components/view_manager/public/cpp/lib/view_manager_client_impl.h +++ b/components/view_manager/public/cpp/lib/view_manager_client_impl.h @@ -19,8 +19,7 @@ class ViewManagerTransaction; // Manages the connection with the View Manager service. class ViewManagerClientImpl : public ViewManager, - public ViewManagerClient, - public ErrorHandler { + public ViewManagerClient { public: ViewManagerClientImpl(ViewManagerDelegate* delegate, Shell* shell, @@ -123,9 +122,6 @@ class ViewManagerClientImpl : public ViewManager, const Callback<void()>& callback) override; void OnViewFocused(Id focused_view_id) override; - // ErrorHandler implementation. - void OnConnectionError() override; - void RootDestroyed(View* root); void OnActionCompleted(bool success); diff --git a/components/view_manager/view_manager_app.cc b/components/view_manager/view_manager_app.cc index 21827ed..6cbed25 100644 --- a/components/view_manager/view_manager_app.cc +++ b/components/view_manager/view_manager_app.cc @@ -125,8 +125,4 @@ void ViewManagerApp::Create( new gles2::GpuImpl(request.Pass(), gpu_state_); } -void ViewManagerApp::OnConnectionError() { - app_impl_->Terminate(); -} - } // namespace view_manager diff --git a/components/view_manager/view_manager_app.h b/components/view_manager/view_manager_app.h index afedb3b..672b1e6a 100644 --- a/components/view_manager/view_manager_app.h +++ b/components/view_manager/view_manager_app.h @@ -29,7 +29,6 @@ class ConnectionManager; class ViewManagerApp : public mojo::ApplicationDelegate, public ConnectionManagerDelegate, - public mojo::ErrorHandler, public mojo::InterfaceFactory<mojo::ViewManagerRoot>, public mojo::InterfaceFactory<mojo::Gpu> { public: @@ -65,9 +64,6 @@ class ViewManagerApp : public mojo::ApplicationDelegate, void Create(mojo::ApplicationConnection* connection, mojo::InterfaceRequest<mojo::Gpu> request) override; - // ErrorHandler (for |wm_internal_| and |wm_internal_client_binding_|). - void OnConnectionError() override; - mojo::ApplicationImpl* app_impl_; scoped_ptr<ConnectionManager> connection_manager_; mojo::TracingImpl tracing_; diff --git a/components/view_manager/view_manager_root_connection.cc b/components/view_manager/view_manager_root_connection.cc index 216e367..18e7f29 100644 --- a/components/view_manager/view_manager_root_connection.cc +++ b/components/view_manager/view_manager_root_connection.cc @@ -51,7 +51,7 @@ ViewManagerRootConnectionImpl::ViewManagerRootConnectionImpl( ConnectionManager* manager) : ViewManagerRootConnection(root.Pass(), manager), binding_(view_manager_root(), request.Pass()) { - binding_.set_error_handler(this); + binding_.set_connection_error_handler([this]() { CloseConnection(); }); connection_manager()->AddRoot(this); set_view_manager_service(connection_manager()->EmbedAtView( @@ -63,8 +63,4 @@ ViewManagerRootConnectionImpl::ViewManagerRootConnectionImpl( ViewManagerRootConnectionImpl::~ViewManagerRootConnectionImpl() { } -void ViewManagerRootConnectionImpl::OnConnectionError() { - CloseConnection(); -} - } // namespace view_manager diff --git a/components/view_manager/view_manager_root_connection.h b/components/view_manager/view_manager_root_connection.h index ce95624..4d1d8b3 100644 --- a/components/view_manager/view_manager_root_connection.h +++ b/components/view_manager/view_manager_root_connection.h @@ -10,7 +10,6 @@ #include "components/view_manager/view_manager_root_delegate.h" #include "components/view_manager/view_manager_root_impl.h" #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" -#include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h" namespace view_manager { @@ -61,8 +60,7 @@ class ViewManagerRootConnection : public ViewManagerRootDelegate { }; // Live implementation of ViewManagerRootConnection. -class ViewManagerRootConnectionImpl : public mojo::ErrorHandler, - public ViewManagerRootConnection { +class ViewManagerRootConnectionImpl : public ViewManagerRootConnection { public: ViewManagerRootConnectionImpl( mojo::InterfaceRequest<mojo::ViewManagerRoot> request, @@ -73,9 +71,6 @@ class ViewManagerRootConnectionImpl : public mojo::ErrorHandler, private: ~ViewManagerRootConnectionImpl() override; - // ErrorHandler: - void OnConnectionError() override; - mojo::Binding<mojo::ViewManagerRoot> binding_; DISALLOW_COPY_AND_ASSIGN(ViewManagerRootConnectionImpl); |