| Index: content/browser/renderer_host/gamepad_browser_message_filter.cc
|
| diff --git a/content/browser/renderer_host/gamepad_browser_message_filter.cc b/content/browser/renderer_host/gamepad_browser_message_filter.cc
|
| index cd36e6ac5e8f6632bd57b8e106a5036e92894b52..d56a8865a0deda05d11784c4f107b11ce6b5435e 100644
|
| --- a/content/browser/renderer_host/gamepad_browser_message_filter.cc
|
| +++ b/content/browser/renderer_host/gamepad_browser_message_filter.cc
|
| @@ -9,15 +9,16 @@
|
|
|
| namespace content {
|
|
|
| -GamepadBrowserMessageFilter::GamepadBrowserMessageFilter()
|
| +GamepadBrowserMessageFilter::GamepadBrowserMessageFilter(IPC::Sender* sender)
|
| : BrowserMessageFilter(GamepadMsgStart),
|
| + sender_(sender),
|
| is_started_(false) {
|
| }
|
|
|
| GamepadBrowserMessageFilter::~GamepadBrowserMessageFilter() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| if (is_started_)
|
| - GamepadService::GetInstance()->RemoveConsumer();
|
| + GamepadService::GetInstance()->RemoveConsumer(this);
|
| }
|
|
|
| bool GamepadBrowserMessageFilter::OnMessageReceived(
|
| @@ -34,12 +35,26 @@ bool GamepadBrowserMessageFilter::OnMessageReceived(
|
| return handled;
|
| }
|
|
|
| +void GamepadBrowserMessageFilter::OnGamepadConnected(
|
| + unsigned index,
|
| + const blink::WebGamepad& web_gamepad) {
|
| + sender_->Send(new GamepadMsg_GamepadConnected(
|
| + GamepadConnectionEventMessageParams(index, web_gamepad)));
|
| +}
|
| +
|
| +void GamepadBrowserMessageFilter::OnGamepadDisconnected(
|
| + unsigned index,
|
| + const blink::WebGamepad& web_gamepad) {
|
| + sender_->Send(new GamepadMsg_GamepadDisconnected(
|
| + GamepadConnectionEventMessageParams(index, web_gamepad)));
|
| +}
|
| +
|
| void GamepadBrowserMessageFilter::OnGamepadStartPolling(
|
| base::SharedMemoryHandle* renderer_handle) {
|
| GamepadService* service = GamepadService::GetInstance();
|
| if (!is_started_) {
|
| is_started_ = true;
|
| - service->AddConsumer();
|
| + service->AddConsumer(this);
|
| *renderer_handle = service->GetSharedMemoryHandleForProcess(PeerHandle());
|
| } else {
|
| // Currently we only expect the renderer to tell us once to start.
|
| @@ -52,7 +67,7 @@ void GamepadBrowserMessageFilter::OnGamepadStopPolling() {
|
| // arrive anyway if the renderer crashes, etc.
|
| if (is_started_) {
|
| is_started_ = false;
|
| - GamepadService::GetInstance()->RemoveConsumer();
|
| + GamepadService::GetInstance()->RemoveConsumer(this);
|
| } else {
|
| NOTREACHED();
|
| }
|
|
|