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

Side by Side Diff: Source/core/dom/ScriptedIdleTaskController.cpp

Issue 1316323002: Remove redundant DocumentLoadTiming references. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: remove redundant doc-time baselining Created 5 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/dom/ScriptedIdleTaskController.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/dom/ScriptedIdleTaskController.h" 6 #include "core/dom/ScriptedIdleTaskController.h"
7 7
8 #include "core/dom/ExecutionContext.h" 8 #include "core/dom/ExecutionContext.h"
9 #include "core/dom/IdleRequestCallback.h" 9 #include "core/dom/IdleRequestCallback.h"
10 #include "core/loader/DocumentLoadTiming.h"
11 #include "platform/Logging.h" 10 #include "platform/Logging.h"
12 #include "platform/TraceEvent.h" 11 #include "platform/TraceEvent.h"
13 #include "public/platform/Platform.h" 12 #include "public/platform/Platform.h"
14 #include "public/platform/WebScheduler.h" 13 #include "public/platform/WebScheduler.h"
15 #include "public/platform/WebTraceLocation.h" 14 #include "public/platform/WebTraceLocation.h"
16 #include "wtf/CurrentTime.h" 15 #include "wtf/CurrentTime.h"
17 #include "wtf/Functional.h" 16 #include "wtf/Functional.h"
18 17
19 namespace blink { 18 namespace blink {
20 19
(...skipping 17 matching lines...) Expand all
38 37
39 static void timeoutFired(PassRefPtr<IdleRequestCallbackWrapper> callbackWrap per) 38 static void timeoutFired(PassRefPtr<IdleRequestCallbackWrapper> callbackWrap per)
40 { 39 {
41 callbackWrapper->controller()->callbackFired(callbackWrapper->id(), mono tonicallyIncreasingTime(), IdleCallbackDeadline::CallbackType::CalledByTimeout); 40 callbackWrapper->controller()->callbackFired(callbackWrapper->id(), mono tonicallyIncreasingTime(), IdleCallbackDeadline::CallbackType::CalledByTimeout);
42 } 41 }
43 42
44 ScriptedIdleTaskController::CallbackId id() const { return m_id; } 43 ScriptedIdleTaskController::CallbackId id() const { return m_id; }
45 PassRefPtrWillBeRawPtr<ScriptedIdleTaskController> controller() const { retu rn m_controller; } 44 PassRefPtrWillBeRawPtr<ScriptedIdleTaskController> controller() const { retu rn m_controller; }
46 45
47 private: 46 private:
48 explicit IdleRequestCallbackWrapper(ScriptedIdleTaskController::CallbackId i d, PassRefPtrWillBeRawPtr<ScriptedIdleTaskController> controller) 47 IdleRequestCallbackWrapper(ScriptedIdleTaskController::CallbackId id, PassRe fPtrWillBeRawPtr<ScriptedIdleTaskController> controller)
49 : m_id(id) 48 : m_id(id)
50 , m_controller(controller) 49 , m_controller(controller)
51 { 50 {
52 } 51 }
53 52
54 ScriptedIdleTaskController::CallbackId m_id; 53 ScriptedIdleTaskController::CallbackId m_id;
55 RefPtrWillBePersistent<ScriptedIdleTaskController> m_controller; 54 RefPtrWillBePersistent<ScriptedIdleTaskController> m_controller;
56 }; 55 };
57 56
58 } // namespace internal 57 } // namespace internal
59 58
60 ScriptedIdleTaskController::ScriptedIdleTaskController(ExecutionContext* context , const DocumentLoadTiming& timing) 59 ScriptedIdleTaskController::ScriptedIdleTaskController(ExecutionContext* context )
61 : ActiveDOMObject(context) 60 : ActiveDOMObject(context)
62 , m_timing(timing)
63 , m_scheduler(Platform::current()->currentThread()->scheduler()) 61 , m_scheduler(Platform::current()->currentThread()->scheduler())
64 , m_nextCallbackId(0) 62 , m_nextCallbackId(0)
65 , m_suspended(false) 63 , m_suspended(false)
66 { 64 {
67 suspendIfNeeded(); 65 suspendIfNeeded();
68 } 66 }
69 67
70 ScriptedIdleTaskController::~ScriptedIdleTaskController() 68 ScriptedIdleTaskController::~ScriptedIdleTaskController()
71 { 69 {
72 } 70 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 102
105 if (m_suspended) { 103 if (m_suspended) {
106 if (callbackType == IdleCallbackDeadline::CallbackType::CalledByTimeout) { 104 if (callbackType == IdleCallbackDeadline::CallbackType::CalledByTimeout) {
107 // Queue for execution when we are resumed. 105 // Queue for execution when we are resumed.
108 m_pendingTimeouts.append(id); 106 m_pendingTimeouts.append(id);
109 } 107 }
110 // Just drop callbacks called while suspended, these will be reposted on the idle task queue when we are resumed. 108 // Just drop callbacks called while suspended, these will be reposted on the idle task queue when we are resumed.
111 return; 109 return;
112 } 110 }
113 111
114 double deadlineMillis = 1000.0 * m_timing.monotonicTimeToZeroBasedDocumentTi me(deadlineSeconds); 112 runCallback(id, deadlineSeconds, callbackType);
115 runCallback(id, deadlineMillis, callbackType);
116 } 113 }
117 114
118 void ScriptedIdleTaskController::runCallback(CallbackId id, double deadlineMilli s, IdleCallbackDeadline::CallbackType callbackType) 115 void ScriptedIdleTaskController::runCallback(CallbackId id, double deadlineSecon ds, IdleCallbackDeadline::CallbackType callbackType)
119 { 116 {
120 ASSERT(!m_suspended); 117 ASSERT(!m_suspended);
121 auto callback = m_callbacks.take(id); 118 auto callback = m_callbacks.take(id);
122 if (!callback) 119 if (!callback)
123 return; 120 return;
124 121
125 // TODO(rmcilroy): Add devtools tracing. 122 // TODO(rmcilroy): Add devtools tracing.
126 callback->handleEvent(IdleCallbackDeadline::create(deadlineMillis, callbackT ype, m_timing)); 123 callback->handleEvent(IdleCallbackDeadline::create(deadlineSeconds, callback Type));
127 } 124 }
128 125
129 void ScriptedIdleTaskController::stop() 126 void ScriptedIdleTaskController::stop()
130 { 127 {
131 m_callbacks.clear(); 128 m_callbacks.clear();
132 } 129 }
133 130
134 void ScriptedIdleTaskController::suspend() 131 void ScriptedIdleTaskController::suspend()
135 { 132 {
136 m_suspended = true; 133 m_suspended = true;
(...skipping 16 matching lines...) Expand all
153 m_scheduler->postIdleTask(FROM_HERE, WTF::bind<double>(&internal::IdleRe questCallbackWrapper::idleTaskFired, callbackWrapper)); 150 m_scheduler->postIdleTask(FROM_HERE, WTF::bind<double>(&internal::IdleRe questCallbackWrapper::idleTaskFired, callbackWrapper));
154 } 151 }
155 } 152 }
156 153
157 bool ScriptedIdleTaskController::hasPendingActivity() const 154 bool ScriptedIdleTaskController::hasPendingActivity() const
158 { 155 {
159 return !m_callbacks.isEmpty(); 156 return !m_callbacks.isEmpty();
160 } 157 }
161 158
162 } // namespace blink 159 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/dom/ScriptedIdleTaskController.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698