OLD | NEW |
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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
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 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 // FIXME: We should not fire events for nodes that are no longer in the
tree. | 132 // FIXME: We should not fire events for nodes that are no longer in the
tree. |
133 if (LocalDOMWindow* window = eventTarget->toDOMWindow()) | 133 if (LocalDOMWindow* window = eventTarget->toDOMWindow()) |
134 window->dispatchEvent(events[i], nullptr); | 134 window->dispatchEvent(events[i], nullptr); |
135 else | 135 else |
136 eventTarget->dispatchEvent(events[i]); | 136 eventTarget->dispatchEvent(events[i]); |
137 | 137 |
138 InspectorInstrumentation::didRemoveEvent(eventTarget, events[i].get()); | 138 InspectorInstrumentation::didRemoveEvent(eventTarget, events[i].get()); |
139 } | 139 } |
140 } | 140 } |
141 | 141 |
142 void ScriptedAnimationController::executeCallbacks(double monotonicTimeNow) | 142 void ScriptedAnimationController::executeCallbacks(blink::WebFrameTime frameTime
) |
143 { | 143 { |
144 // dispatchEvents() runs script which can cause the document to be destroyed
. | 144 // dispatchEvents() runs script which can cause the document to be destroyed
. |
145 if (!m_document) | 145 if (!m_document) |
146 return; | 146 return; |
147 | 147 |
148 double highResNowMs = 1000.0 * m_document->loader()->timing()->monotonicTime
ToZeroBasedDocumentTime(monotonicTimeNow); | 148 double highResNowMs = 1000.0 * m_document->loader()->timing()->monotonicTime
ToZeroBasedDocumentTime(frameTime.lastFrameTime); |
149 double legacyHighResNowMs = 1000.0 * m_document->loader()->timing()->monoton
icTimeToPseudoWallTime(monotonicTimeNow); | 149 double legacyHighResNowMs = 1000.0 * m_document->loader()->timing()->monoton
icTimeToPseudoWallTime(frameTime.lastFrameTime); |
150 | 150 |
151 // First, generate a list of callbacks to consider. Callbacks registered fr
om this point | 151 // First, generate a list of callbacks to consider. Callbacks registered fr
om this point |
152 // on are considered only for the "next" frame, not this one. | 152 // on are considered only for the "next" frame, not this one. |
153 ASSERT(m_callbacksToInvoke.isEmpty()); | 153 ASSERT(m_callbacksToInvoke.isEmpty()); |
154 m_callbacksToInvoke.swap(m_callbacks); | 154 m_callbacksToInvoke.swap(m_callbacks); |
155 | 155 |
156 for (size_t i = 0; i < m_callbacksToInvoke.size(); ++i) { | 156 for (size_t i = 0; i < m_callbacksToInvoke.size(); ++i) { |
157 RequestAnimationFrameCallback* callback = m_callbacksToInvoke[i].get(); | 157 RequestAnimationFrameCallback* callback = m_callbacksToInvoke[i].get(); |
158 if (!callback->m_cancelled) { | 158 if (!callback->m_cancelled) { |
159 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "FireAn
imationFrame", "data", InspectorAnimationFrameEvent::data(m_document, callback->
m_id)); | 159 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "FireAn
imationFrame", "data", InspectorAnimationFrameEvent::data(m_document, callback->
m_id)); |
(...skipping 15 matching lines...) Expand all Loading... |
175 { | 175 { |
176 MediaQueryListListeners listeners; | 176 MediaQueryListListeners listeners; |
177 listeners.swap(m_mediaQueryListListeners); | 177 listeners.swap(m_mediaQueryListListeners); |
178 | 178 |
179 for (MediaQueryListListeners::const_iterator it = listeners.begin(), end = l
isteners.end(); | 179 for (MediaQueryListListeners::const_iterator it = listeners.begin(), end = l
isteners.end(); |
180 it != end; ++it) { | 180 it != end; ++it) { |
181 (*it)->call(); | 181 (*it)->call(); |
182 } | 182 } |
183 } | 183 } |
184 | 184 |
185 void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTime
Now) | 185 void ScriptedAnimationController::serviceScriptedAnimations(blink::WebFrameTime
frameTime) |
186 { | 186 { |
187 if (!m_callbacks.size() && !m_eventQueue.size() && !m_mediaQueryListListener
s.size()) | 187 if (!m_callbacks.size() && !m_eventQueue.size() && !m_mediaQueryListListener
s.size()) |
188 return; | 188 return; |
189 | 189 |
190 if (m_suspendCount) | 190 if (m_suspendCount) |
191 return; | 191 return; |
192 | 192 |
193 RefPtrWillBeRawPtr<ScriptedAnimationController> protect(this); | 193 RefPtrWillBeRawPtr<ScriptedAnimationController> protect(this); |
194 | 194 |
195 callMediaQueryListListeners(); | 195 callMediaQueryListListeners(); |
196 dispatchEvents(); | 196 dispatchEvents(); |
197 executeCallbacks(monotonicTimeNow); | 197 executeCallbacks(frameTime); |
198 | 198 |
199 scheduleAnimationIfNeeded(); | 199 scheduleAnimationIfNeeded(); |
200 } | 200 } |
201 | 201 |
202 void ScriptedAnimationController::enqueueEvent(PassRefPtrWillBeRawPtr<Event> eve
nt) | 202 void ScriptedAnimationController::enqueueEvent(PassRefPtrWillBeRawPtr<Event> eve
nt) |
203 { | 203 { |
204 InspectorInstrumentation::didEnqueueEvent(event->target(), event.get()); | 204 InspectorInstrumentation::didEnqueueEvent(event->target(), event.get()); |
205 m_eventQueue.append(event); | 205 m_eventQueue.append(event); |
206 scheduleAnimationIfNeeded(); | 206 scheduleAnimationIfNeeded(); |
207 } | 207 } |
(...skipping 22 matching lines...) Expand all Loading... |
230 return; | 230 return; |
231 | 231 |
232 if (!m_callbacks.size() && !m_eventQueue.size() && !m_mediaQueryListListener
s.size()) | 232 if (!m_callbacks.size() && !m_eventQueue.size() && !m_mediaQueryListListener
s.size()) |
233 return; | 233 return; |
234 | 234 |
235 if (FrameView* frameView = m_document->view()) | 235 if (FrameView* frameView = m_document->view()) |
236 frameView->scheduleAnimation(); | 236 frameView->scheduleAnimation(); |
237 } | 237 } |
238 | 238 |
239 } | 239 } |
OLD | NEW |