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#ifndef CONTENT_BROWSER_BATTERY_STATUS_BATTERY_STATUS_MESSAGE_FILTER_H_ 6#define CONTENT_BROWSER_BATTERY_STATUS_BATTERY_STATUS_MESSAGE_FILTER_H_ 7 8#include "content/browser/battery_status/battery_status_service.h" 9#include "content/public/browser/browser_message_filter.h" 10 11namespace content { 12 13class BatteryStatusMessageFilter : public BrowserMessageFilter { 14 public: 15 BatteryStatusMessageFilter(); 16 17 // BrowserMessageFilter implementation. 18 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 19 20 private: 21 virtual ~BatteryStatusMessageFilter(); 22 23 void OnBatteryStatusStart(); 24 void OnBatteryStatusStop(); 25 void SendBatteryChange(const blink::WebBatteryStatus& status); 26 27 BatteryStatusService::BatteryUpdateCallback callback_; 28 scoped_ptr<BatteryStatusService::BatteryUpdateSubscription> subscription_; 29 bool is_started_; 30 31 DISALLOW_COPY_AND_ASSIGN(BatteryStatusMessageFilter); 32}; 33 34} // namespace content 35 36#endif // CONTENT_BROWSER_BATTERY_STATUS_BATTERY_STATUS_MESSAGE_FILTER_H_ 37