push_messaging_message_filter.cc revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/browser/push_messaging_message_filter.h" 6 7#include <string> 8 9#include "content/common/push_messaging_messages.h" 10#include "content/public/browser/browser_thread.h" 11 12namespace content { 13 14PushMessagingMessageFilter::PushMessagingMessageFilter() 15 : BrowserMessageFilter(PushMessagingMsgStart) {} 16 17PushMessagingMessageFilter::~PushMessagingMessageFilter() {} 18 19bool PushMessagingMessageFilter::OnMessageReceived(const IPC::Message& message, 20 bool* message_was_ok) { 21 bool handled = true; 22 IPC_BEGIN_MESSAGE_MAP_EX(PushMessagingMessageFilter, message, *message_was_ok) 23 IPC_MESSAGE_HANDLER(PushMessagingHostMsg_Register, OnRegister) 24 IPC_MESSAGE_UNHANDLED(handled = false) 25 IPC_END_MESSAGE_MAP() 26 return handled; 27} 28 29void PushMessagingMessageFilter::OnRegister(int routing_id, 30 int callbacks_id, 31 const std::string& sender_id) { 32 // TODO(mvanouwerkerk): Really implement, the below simply returns an error. 33 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 34 GURL endpoint = GURL("https://android.googleapis.com/gcm/send"); 35 BrowserThread::PostTask(BrowserThread::UI, 36 FROM_HERE, 37 base::Bind(&PushMessagingMessageFilter::DidRegister, 38 this, 39 routing_id, 40 callbacks_id, 41 endpoint, 42 "", 43 true)); 44 45} 46 47void PushMessagingMessageFilter::DidRegister(int routing_id, 48 int callbacks_id, 49 const GURL& endpoint, 50 const std::string& registration_id, 51 bool error) { 52 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 53 if (!error) { 54 Send(new PushMessagingMsg_RegisterSuccess(routing_id, 55 callbacks_id, 56 endpoint, 57 registration_id)); 58 } else { 59 Send(new PushMessagingMsg_RegisterError(routing_id, callbacks_id)); 60 } 61} 62 63} // namespace content 64