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

Side by Side Diff: Source/modules/gamepad/NavigatorGamepad.cpp

Issue 552733003: Oilpan: make DOMWindowProperty a GC mixin. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Pacify GC plugin wrt LocalDOMWindow::trace() Created 6 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011, Google Inc. All rights reserved. 2 * Copyright (C) 2011, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met: 5 * modification, are permitted provided that the following conditions are met:
6 * 6 *
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 } 121 }
122 return m_gamepads.get(); 122 return m_gamepads.get();
123 } 123 }
124 124
125 void NavigatorGamepad::trace(Visitor* visitor) 125 void NavigatorGamepad::trace(Visitor* visitor)
126 { 126 {
127 visitor->trace(m_gamepads); 127 visitor->trace(m_gamepads);
128 visitor->trace(m_webkitGamepads); 128 visitor->trace(m_webkitGamepads);
129 visitor->trace(m_pendingEvents); 129 visitor->trace(m_pendingEvents);
130 WillBeHeapSupplement<Navigator>::trace(visitor); 130 WillBeHeapSupplement<Navigator>::trace(visitor);
131 DOMWindowProperty::trace(visitor);
131 } 132 }
132 133
133 void NavigatorGamepad::didUpdateData() 134 void NavigatorGamepad::didUpdateData()
134 { 135 {
135 // We should stop listening once we detached. 136 // We should stop listening once we detached.
136 ASSERT(window()); 137 ASSERT(window());
137 138
138 // We register to the dispatcher before sampling gamepads so we need to chec k if we actually have an event listener. 139 // We register to the dispatcher before sampling gamepads so we need to chec k if we actually have an event listener.
139 if (!m_hasEventListener) 140 if (!m_hasEventListener)
140 return; 141 return;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 NavigatorGamepad::NavigatorGamepad(LocalFrame* frame) 174 NavigatorGamepad::NavigatorGamepad(LocalFrame* frame)
174 : DOMWindowProperty(frame) 175 : DOMWindowProperty(frame)
175 , PlatformEventController(frame ? frame->page() : 0) 176 , PlatformEventController(frame ? frame->page() : 0)
176 , DOMWindowLifecycleObserver(frame ? frame->domWindow() : 0) 177 , DOMWindowLifecycleObserver(frame ? frame->domWindow() : 0)
177 , m_dispatchOneEventRunner(this, &NavigatorGamepad::dispatchOneEvent) 178 , m_dispatchOneEventRunner(this, &NavigatorGamepad::dispatchOneEvent)
178 { 179 {
179 } 180 }
180 181
181 NavigatorGamepad::~NavigatorGamepad() 182 NavigatorGamepad::~NavigatorGamepad()
182 { 183 {
184 #if ENABLE(OILPAN)
185 stopUpdating();
haraken 2014/09/10 02:49:36 Why is this necessary only in oilpan?
sof 2014/09/10 05:49:40 Can't rely on willDestroyGlobalObjectInFrame() hav
186 #endif
183 } 187 }
184 188
185 const char* NavigatorGamepad::supplementName() 189 const char* NavigatorGamepad::supplementName()
186 { 190 {
187 return "NavigatorGamepad"; 191 return "NavigatorGamepad";
188 } 192 }
189 193
190 void NavigatorGamepad::willDestroyGlobalObjectInFrame() 194 void NavigatorGamepad::willDestroyGlobalObjectInFrame()
191 { 195 {
192 stopUpdating(); 196 stopUpdating();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 if (connectedGamepadChanged || (!oldWasConnected && newIsConnected)) { 288 if (connectedGamepadChanged || (!oldWasConnected && newIsConnected)) {
285 m_pendingEvents.append(newGamepad); 289 m_pendingEvents.append(newGamepad);
286 } 290 }
287 } 291 }
288 292
289 if (!m_pendingEvents.isEmpty()) 293 if (!m_pendingEvents.isEmpty())
290 m_dispatchOneEventRunner.runAsync(); 294 m_dispatchOneEventRunner.runAsync();
291 } 295 }
292 296
293 } // namespace blink 297 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698