Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Side by Side Diff: Source/modules/battery/BatteryController.cpp

Issue 16298005: Remove Battery Status API support code from Blink (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/modules/battery/BatteryController.h ('k') | Source/modules/battery/BatteryManager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2012 Samsung Electronics
3 * Copyright (C) 2012 Google Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
14 *
15 * You should have received a copy of the GNU Library General Public License
16 * along with this library; see the file COPYING.LIB. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19 */
20
21 #include "config.h"
22 #include "modules/battery/BatteryController.h"
23
24 #if ENABLE(BATTERY_STATUS)
25
26 #include "core/dom/Event.h"
27 #include "modules/battery/BatteryClient.h"
28 #include "modules/battery/BatteryStatus.h"
29
30 namespace WebCore {
31
32 BatteryController::BatteryController(BatteryClient* client)
33 : m_client(client)
34 {
35 ASSERT(m_client);
36 }
37
38 BatteryController::~BatteryController()
39 {
40 for (ListenerVector::iterator it = m_listeners.begin(); it != m_listeners.en d(); ++it)
41 (*it)->batteryControllerDestroyed();
42 m_client->batteryControllerDestroyed();
43 }
44
45 PassOwnPtr<BatteryController> BatteryController::create(BatteryClient* client)
46 {
47 return adoptPtr(new BatteryController(client));
48 }
49
50 void BatteryController::addListener(BatteryManager* batteryManager)
51 {
52 m_listeners.append(batteryManager);
53 m_client->startUpdating();
54 }
55
56 void BatteryController::removeListener(BatteryManager* batteryManager)
57 {
58 size_t pos = m_listeners.find(batteryManager);
59 if (pos == WTF::notFound)
60 return;
61 m_listeners.remove(pos);
62 if (m_listeners.isEmpty())
63 m_client->stopUpdating();
64 }
65
66 void BatteryController::updateBatteryStatus(PassRefPtr<BatteryStatus> batterySta tus)
67 {
68 RefPtr<BatteryStatus> status = batteryStatus;
69 if (m_batteryStatus) {
70 if (m_batteryStatus->charging() != status->charging())
71 didChangeBatteryStatus(WebCore::eventNames().chargingchangeEvent, st atus);
72 else if (status->charging() && m_batteryStatus->chargingTime() != status ->chargingTime())
73 didChangeBatteryStatus(WebCore::eventNames().chargingtimechangeEvent , status);
74 else if (!status->charging() && m_batteryStatus->dischargingTime() != st atus->dischargingTime())
75 didChangeBatteryStatus(WebCore::eventNames().dischargingtimechangeEv ent, status);
76
77 if (m_batteryStatus->level() != status->level())
78 didChangeBatteryStatus(WebCore::eventNames().levelchangeEvent, statu s);
79 }
80
81 m_batteryStatus = status.release();
82 }
83
84 void BatteryController::didChangeBatteryStatus(const AtomicString& eventType, Pa ssRefPtr<BatteryStatus> batteryStatus)
85 {
86 RefPtr<Event> event = Event::create(eventType, false, false);
87 RefPtr<BatteryStatus> battery = batteryStatus;
88 for (ListenerVector::iterator it = m_listeners.begin(); it != m_listeners.en d(); ++it)
89 (*it)->didChangeBatteryStatus(event, battery);
90 }
91
92 const char* BatteryController::supplementName()
93 {
94 return "BatteryController";
95 }
96
97 bool BatteryController::isActive(Page* page)
98 {
99 return static_cast<bool>(BatteryController::from(page));
100 }
101
102 void provideBatteryTo(Page* page, BatteryClient* client)
103 {
104 Supplement<Page>::provideTo(page, BatteryController::supplementName(), Batte ryController::create(client));
105 }
106
107 }
108
109 #endif // BATTERY_STATUS
110
OLDNEW
« no previous file with comments | « Source/modules/battery/BatteryController.h ('k') | Source/modules/battery/BatteryManager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698