1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// found in the LICENSE file. 4c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#ifndef CONTENT_BROWSER_PUSH_MESSAGING_MESSAGE_FILTER_H_ 6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define CONTENT_BROWSER_PUSH_MESSAGING_MESSAGE_FILTER_H_ 7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 8c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include <string> 9c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/memory/weak_ptr.h" 11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "content/public/browser/browser_message_filter.h" 12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "url/gurl.h" 13c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace content { 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class PushMessagingService; 17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass PushMessagingMessageFilter : public BrowserMessageFilter { 19c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch public: 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) explicit PushMessagingMessageFilter(int render_process_id); 21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch private: 23c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual ~PushMessagingMessageFilter(); 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch // BrowserMessageFilter implementation. 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 27c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 28c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void OnRegister(int routing_id, 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch int callbacks_id, 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const std::string& sender_id); 31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void DoRegister(int routing_id, 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) int callbacks_id, 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& sender_id); 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void DidRegister(int routing_id, 37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch int callbacks_id, 38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const GURL& endpoint, 39c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const std::string& registration_id, 40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) bool success); 41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) PushMessagingService* service(); 43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) int render_process_id_; 45f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) PushMessagingService* service_; // Not owned. 46f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) base::WeakPtrFactory<PushMessagingMessageFilter> weak_factory_; 48c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 49c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch DISALLOW_COPY_AND_ASSIGN(PushMessagingMessageFilter); 50c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}; 51c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 52c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} // namespace content 53c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 54c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif // CONTENT_BROWSER_PUSH_MESSAGING_MESSAGE_FILTER_H_ 55