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

Side by Side Diff: Source/core/frame/DOMTimer.cpp

Issue 847803002: Make ScriptStreamer and dependents Oilpan friendly. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: nullptr tidying Created 5 years, 11 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple 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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 // second at most. 59 // second at most.
60 return 1.0; 60 return 1.0;
61 } 61 }
62 62
63 double DOMTimer::visiblePageAlignmentInterval() 63 double DOMTimer::visiblePageAlignmentInterval()
64 { 64 {
65 // Alignment does not apply to timers on visible pages. 65 // Alignment does not apply to timers on visible pages.
66 return 0; 66 return 0;
67 } 67 }
68 68
69 int DOMTimer::install(ExecutionContext* context, PassOwnPtr<ScheduledAction> act ion, int timeout, bool singleShot) 69 int DOMTimer::install(ExecutionContext* context, PassOwnPtrWillBeRawPtr<Schedule dAction> action, int timeout, bool singleShot)
70 { 70 {
71 int timeoutID = context->timers()->installNewTimeout(context, action, timeou t, singleShot); 71 int timeoutID = context->timers()->installNewTimeout(context, action, timeou t, singleShot);
72 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "TimerI nstall", "data", InspectorTimerInstallEvent::data(context, timeoutID, timeout, s ingleShot)); 72 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "TimerI nstall", "data", InspectorTimerInstallEvent::data(context, timeoutID, timeout, s ingleShot));
73 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeli ne migrates to tracing. 73 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeli ne migrates to tracing.
74 InspectorInstrumentation::didInstallTimer(context, timeoutID, timeout, singl eShot); 74 InspectorInstrumentation::didInstallTimer(context, timeoutID, timeout, singl eShot);
75 WTF_LOG(Timers, "DOMTimer::install: timeoutID = %d, timeout = %d, singleShot = %d", timeoutID, timeout, singleShot ? 1 : 0); 75 WTF_LOG(Timers, "DOMTimer::install: timeoutID = %d, timeout = %d, singleShot = %d", timeoutID, timeout, singleShot ? 1 : 0);
76 return timeoutID; 76 return timeoutID;
77 } 77 }
78 78
79 void DOMTimer::removeByID(ExecutionContext* context, int timeoutID) 79 void DOMTimer::removeByID(ExecutionContext* context, int timeoutID)
80 { 80 {
81 WTF_LOG(Timers, "DOMTimer::removeByID: timeoutID = %d", timeoutID); 81 WTF_LOG(Timers, "DOMTimer::removeByID: timeoutID = %d", timeoutID);
82 context->timers()->removeTimeoutByID(timeoutID); 82 context->timers()->removeTimeoutByID(timeoutID);
83 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "TimerR emove", "data", InspectorTimerRemoveEvent::data(context, timeoutID)); 83 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "TimerR emove", "data", InspectorTimerRemoveEvent::data(context, timeoutID));
84 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeli ne migrates to tracing. 84 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeli ne migrates to tracing.
85 InspectorInstrumentation::didRemoveTimer(context, timeoutID); 85 InspectorInstrumentation::didRemoveTimer(context, timeoutID);
86 } 86 }
87 87
88 DOMTimer::DOMTimer(ExecutionContext* context, PassOwnPtr<ScheduledAction> action , int interval, bool singleShot, int timeoutID) 88 DOMTimer::DOMTimer(ExecutionContext* context, PassOwnPtrWillBeRawPtr<ScheduledAc tion> action, int interval, bool singleShot, int timeoutID)
89 : SuspendableTimer(context) 89 : SuspendableTimer(context)
90 , m_timeoutID(timeoutID) 90 , m_timeoutID(timeoutID)
91 , m_nestingLevel(context->timers()->timerNestingLevel() + 1) 91 , m_nestingLevel(context->timers()->timerNestingLevel() + 1)
92 , m_action(action) 92 , m_action(action)
93 { 93 {
94 ASSERT(timeoutID > 0); 94 ASSERT(timeoutID > 0);
95 if (shouldForwardUserGesture(interval, m_nestingLevel)) 95 if (shouldForwardUserGesture(interval, m_nestingLevel))
96 m_userGestureToken = UserGestureIndicator::currentToken(); 96 m_userGestureToken = UserGestureIndicator::currentToken();
97 97
98 double intervalMilliseconds = std::max(oneMillisecond, interval * oneMillise cond); 98 double intervalMilliseconds = std::max(oneMillisecond, interval * oneMillise cond);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 150
151 return; 151 return;
152 } 152 }
153 153
154 WTF_LOG(Timers, "DOMTimer::fired: m_timeoutID = %d, one-shot, m_action = %p" , m_timeoutID, m_action.get()); 154 WTF_LOG(Timers, "DOMTimer::fired: m_timeoutID = %d, one-shot, m_action = %p" , m_timeoutID, m_action.get());
155 155
156 RefPtrWillBeRawPtr<DOMTimer> protect(this); 156 RefPtrWillBeRawPtr<DOMTimer> protect(this);
157 157
158 // Unregister the timer from ExecutionContext before executing the action 158 // Unregister the timer from ExecutionContext before executing the action
159 // for one-shot timers. 159 // for one-shot timers.
160 OwnPtr<ScheduledAction> action = m_action.release(); 160 OwnPtrWillBeRawPtr<ScheduledAction> action = m_action.release();
161 context->timers()->removeTimeoutByID(m_timeoutID); 161 context->timers()->removeTimeoutByID(m_timeoutID);
162 162
163 action->execute(context); 163 action->execute(context);
164 164
165 InspectorInstrumentation::didFireTimer(cookie); 165 InspectorInstrumentation::didFireTimer(cookie);
166 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "Update Counters", "data", InspectorUpdateCountersEvent::data()); 166 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "Update Counters", "data", InspectorUpdateCountersEvent::data());
167 167
168 // ExecutionContext might be already gone when we executed action->execute() . 168 // ExecutionContext might be already gone when we executed action->execute() .
169 if (executionContext()) 169 if (executionContext())
170 executionContext()->timers()->setTimerNestingLevel(0); 170 executionContext()->timers()->setTimerNestingLevel(0);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 return alignedTimeRoundedDown; 210 return alignedTimeRoundedDown;
211 211
212 return alignedTimeRoundedUp; 212 return alignedTimeRoundedUp;
213 } 213 }
214 214
215 return fireTime; 215 return fireTime;
216 } 216 }
217 217
218 void DOMTimer::trace(Visitor* visitor) 218 void DOMTimer::trace(Visitor* visitor)
219 { 219 {
220 visitor->trace(m_action);
220 SuspendableTimer::trace(visitor); 221 SuspendableTimer::trace(visitor);
221 } 222 }
222 223
223 } // namespace blink 224 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698