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

Side by Side Diff: Source/core/inspector/InspectorWorkerAgent.cpp

Issue 476153002: DevTools: Make the way inspectorFrontend is referenced in agents consistent in all of them. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 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/inspector/InspectorWorkerAgent.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 /* 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 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 namespace blink { 45 namespace blink {
46 46
47 namespace WorkerAgentState { 47 namespace WorkerAgentState {
48 static const char workerInspectionEnabled[] = "workerInspectionEnabled"; 48 static const char workerInspectionEnabled[] = "workerInspectionEnabled";
49 static const char autoconnectToWorkers[] = "autoconnectToWorkers"; 49 static const char autoconnectToWorkers[] = "autoconnectToWorkers";
50 }; 50 };
51 51
52 class InspectorWorkerAgent::WorkerFrontendChannel FINAL : public WorkerGlobalSco peProxy::PageInspector { 52 class InspectorWorkerAgent::WorkerFrontendChannel FINAL : public WorkerGlobalSco peProxy::PageInspector {
53 WTF_MAKE_FAST_ALLOCATED; 53 WTF_MAKE_FAST_ALLOCATED;
54 public: 54 public:
55 explicit WorkerFrontendChannel(InspectorFrontend* frontend, WorkerGlobalScop eProxy* proxy) 55 explicit WorkerFrontendChannel(InspectorFrontend::Worker* frontend, WorkerGl obalScopeProxy* proxy)
56 : m_frontend(frontend) 56 : m_frontend(frontend)
57 , m_proxy(proxy) 57 , m_proxy(proxy)
58 , m_id(s_nextId++) 58 , m_id(s_nextId++)
59 , m_connected(false) 59 , m_connected(false)
60 { 60 {
61 } 61 }
62 virtual ~WorkerFrontendChannel() 62 virtual ~WorkerFrontendChannel()
63 { 63 {
64 disconnectFromWorkerGlobalScope(); 64 disconnectFromWorkerGlobalScope();
65 } 65 }
(...skipping 20 matching lines...) Expand all
86 private: 86 private:
87 // WorkerGlobalScopeProxy::PageInspector implementation 87 // WorkerGlobalScopeProxy::PageInspector implementation
88 virtual void dispatchMessageFromWorker(const String& message) OVERRIDE 88 virtual void dispatchMessageFromWorker(const String& message) OVERRIDE
89 { 89 {
90 RefPtr<JSONValue> value = parseJSON(message); 90 RefPtr<JSONValue> value = parseJSON(message);
91 if (!value) 91 if (!value)
92 return; 92 return;
93 RefPtr<JSONObject> messageObject = value->asObject(); 93 RefPtr<JSONObject> messageObject = value->asObject();
94 if (!messageObject) 94 if (!messageObject)
95 return; 95 return;
96 m_frontend->worker()->dispatchMessageFromWorker(m_id, messageObject); 96 m_frontend->dispatchMessageFromWorker(m_id, messageObject);
97 } 97 }
98 98
99 InspectorFrontend* m_frontend; 99 InspectorFrontend::Worker* m_frontend;
100 WorkerGlobalScopeProxy* m_proxy; 100 WorkerGlobalScopeProxy* m_proxy;
101 int m_id; 101 int m_id;
102 bool m_connected; 102 bool m_connected;
103 static int s_nextId; 103 static int s_nextId;
104 }; 104 };
105 105
106 int InspectorWorkerAgent::WorkerFrontendChannel::s_nextId = 1; 106 int InspectorWorkerAgent::WorkerFrontendChannel::s_nextId = 1;
107 107
108 PassOwnPtrWillBeRawPtr<InspectorWorkerAgent> InspectorWorkerAgent::create() 108 PassOwnPtrWillBeRawPtr<InspectorWorkerAgent> InspectorWorkerAgent::create()
109 { 109 {
110 return adoptPtrWillBeNoop(new InspectorWorkerAgent()); 110 return adoptPtrWillBeNoop(new InspectorWorkerAgent());
111 } 111 }
112 112
113 InspectorWorkerAgent::InspectorWorkerAgent() 113 InspectorWorkerAgent::InspectorWorkerAgent()
114 : InspectorBaseAgent<InspectorWorkerAgent>("Worker") 114 : InspectorBaseAgent<InspectorWorkerAgent>("Worker")
115 , m_inspectorFrontend(0) 115 , m_frontend(0)
116 { 116 {
117 } 117 }
118 118
119 InspectorWorkerAgent::~InspectorWorkerAgent() 119 InspectorWorkerAgent::~InspectorWorkerAgent()
120 { 120 {
121 #if !ENABLE(OILPAN) 121 #if !ENABLE(OILPAN)
122 m_instrumentingAgents->setInspectorWorkerAgent(0); 122 m_instrumentingAgents->setInspectorWorkerAgent(0);
123 #endif 123 #endif
124 } 124 }
125 125
126 void InspectorWorkerAgent::init() 126 void InspectorWorkerAgent::init()
127 { 127 {
128 m_instrumentingAgents->setInspectorWorkerAgent(this); 128 m_instrumentingAgents->setInspectorWorkerAgent(this);
129 } 129 }
130 130
131 void InspectorWorkerAgent::setFrontend(InspectorFrontend* frontend) 131 void InspectorWorkerAgent::setFrontend(InspectorFrontend* frontend)
132 { 132 {
133 m_inspectorFrontend = frontend; 133 m_frontend = frontend->worker();
134 } 134 }
135 135
136 void InspectorWorkerAgent::restore() 136 void InspectorWorkerAgent::restore()
137 { 137 {
138 if (m_state->getBoolean(WorkerAgentState::workerInspectionEnabled)) 138 if (m_state->getBoolean(WorkerAgentState::workerInspectionEnabled))
139 createWorkerFrontendChannelsForExistingWorkers(); 139 createWorkerFrontendChannelsForExistingWorkers();
140 } 140 }
141 141
142 void InspectorWorkerAgent::clearFrontend() 142 void InspectorWorkerAgent::clearFrontend()
143 { 143 {
144 m_state->setBoolean(WorkerAgentState::autoconnectToWorkers, false); 144 m_state->setBoolean(WorkerAgentState::autoconnectToWorkers, false);
145 disable(0); 145 disable(0);
146 m_inspectorFrontend = 0; 146 m_frontend = 0;
147 } 147 }
148 148
149 void InspectorWorkerAgent::enable(ErrorString*) 149 void InspectorWorkerAgent::enable(ErrorString*)
150 { 150 {
151 m_state->setBoolean(WorkerAgentState::workerInspectionEnabled, true); 151 m_state->setBoolean(WorkerAgentState::workerInspectionEnabled, true);
152 if (!m_inspectorFrontend) 152 if (!m_frontend)
153 return; 153 return;
154 createWorkerFrontendChannelsForExistingWorkers(); 154 createWorkerFrontendChannelsForExistingWorkers();
155 } 155 }
156 156
157 void InspectorWorkerAgent::disable(ErrorString*) 157 void InspectorWorkerAgent::disable(ErrorString*)
158 { 158 {
159 m_state->setBoolean(WorkerAgentState::workerInspectionEnabled, false); 159 m_state->setBoolean(WorkerAgentState::workerInspectionEnabled, false);
160 if (!m_inspectorFrontend) 160 if (!m_frontend)
161 return; 161 return;
162 destroyWorkerFrontendChannels(); 162 destroyWorkerFrontendChannels();
163 } 163 }
164 164
165 void InspectorWorkerAgent::canInspectWorkers(ErrorString*, bool* result) 165 void InspectorWorkerAgent::canInspectWorkers(ErrorString*, bool* result)
166 { 166 {
167 *result = true; 167 *result = true;
168 } 168 }
169 169
170 void InspectorWorkerAgent::connectToWorker(ErrorString* error, int workerId) 170 void InspectorWorkerAgent::connectToWorker(ErrorString* error, int workerId)
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 } 209 }
210 210
211 bool InspectorWorkerAgent::shouldPauseDedicatedWorkerOnStart() 211 bool InspectorWorkerAgent::shouldPauseDedicatedWorkerOnStart()
212 { 212 {
213 return m_state->getBoolean(WorkerAgentState::autoconnectToWorkers); 213 return m_state->getBoolean(WorkerAgentState::autoconnectToWorkers);
214 } 214 }
215 215
216 void InspectorWorkerAgent::didStartWorkerGlobalScope(WorkerGlobalScopeProxy* wor kerGlobalScopeProxy, const KURL& url) 216 void InspectorWorkerAgent::didStartWorkerGlobalScope(WorkerGlobalScopeProxy* wor kerGlobalScopeProxy, const KURL& url)
217 { 217 {
218 m_dedicatedWorkers.set(workerGlobalScopeProxy, url.string()); 218 m_dedicatedWorkers.set(workerGlobalScopeProxy, url.string());
219 if (m_inspectorFrontend && m_state->getBoolean(WorkerAgentState::workerInspe ctionEnabled)) 219 if (m_frontend && m_state->getBoolean(WorkerAgentState::workerInspectionEnab led))
220 createWorkerFrontendChannel(workerGlobalScopeProxy, url.string()); 220 createWorkerFrontendChannel(workerGlobalScopeProxy, url.string());
221 if (!m_tracingSessionId.isEmpty()) 221 if (!m_tracingSessionId.isEmpty())
222 workerGlobalScopeProxy->writeTimelineStartedEvent(m_tracingSessionId); 222 workerGlobalScopeProxy->writeTimelineStartedEvent(m_tracingSessionId);
223 } 223 }
224 224
225 void InspectorWorkerAgent::workerGlobalScopeTerminated(WorkerGlobalScopeProxy* p roxy) 225 void InspectorWorkerAgent::workerGlobalScopeTerminated(WorkerGlobalScopeProxy* p roxy)
226 { 226 {
227 m_dedicatedWorkers.remove(proxy); 227 m_dedicatedWorkers.remove(proxy);
228 for (WorkerChannels::iterator it = m_idToChannel.begin(); it != m_idToChanne l.end(); ++it) { 228 for (WorkerChannels::iterator it = m_idToChannel.begin(); it != m_idToChanne l.end(); ++it) {
229 if (proxy == it->value->proxy()) { 229 if (proxy == it->value->proxy()) {
230 m_inspectorFrontend->worker()->workerTerminated(it->key); 230 m_frontend->workerTerminated(it->key);
231 delete it->value; 231 delete it->value;
232 m_idToChannel.remove(it); 232 m_idToChannel.remove(it);
233 return; 233 return;
234 } 234 }
235 } 235 }
236 } 236 }
237 237
238 void InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers() 238 void InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers()
239 { 239 {
240 for (DedicatedWorkers::iterator it = m_dedicatedWorkers.begin(); it != m_ded icatedWorkers.end(); ++it) 240 for (DedicatedWorkers::iterator it = m_dedicatedWorkers.begin(); it != m_ded icatedWorkers.end(); ++it)
241 createWorkerFrontendChannel(it->key, it->value); 241 createWorkerFrontendChannel(it->key, it->value);
242 } 242 }
243 243
244 void InspectorWorkerAgent::destroyWorkerFrontendChannels() 244 void InspectorWorkerAgent::destroyWorkerFrontendChannels()
245 { 245 {
246 for (WorkerChannels::iterator it = m_idToChannel.begin(); it != m_idToChanne l.end(); ++it) { 246 for (WorkerChannels::iterator it = m_idToChannel.begin(); it != m_idToChanne l.end(); ++it) {
247 it->value->disconnectFromWorkerGlobalScope(); 247 it->value->disconnectFromWorkerGlobalScope();
248 delete it->value; 248 delete it->value;
249 } 249 }
250 m_idToChannel.clear(); 250 m_idToChannel.clear();
251 } 251 }
252 252
253 void InspectorWorkerAgent::createWorkerFrontendChannel(WorkerGlobalScopeProxy* w orkerGlobalScopeProxy, const String& url) 253 void InspectorWorkerAgent::createWorkerFrontendChannel(WorkerGlobalScopeProxy* w orkerGlobalScopeProxy, const String& url)
254 { 254 {
255 WorkerFrontendChannel* channel = new WorkerFrontendChannel(m_inspectorFronte nd, workerGlobalScopeProxy); 255 WorkerFrontendChannel* channel = new WorkerFrontendChannel(m_frontend, worke rGlobalScopeProxy);
256 m_idToChannel.set(channel->id(), channel); 256 m_idToChannel.set(channel->id(), channel);
257 257
258 ASSERT(m_inspectorFrontend); 258 ASSERT(m_frontend);
259 bool autoconnectToWorkers = m_state->getBoolean(WorkerAgentState::autoconnec tToWorkers); 259 bool autoconnectToWorkers = m_state->getBoolean(WorkerAgentState::autoconnec tToWorkers);
260 if (autoconnectToWorkers) 260 if (autoconnectToWorkers)
261 channel->connectToWorkerGlobalScope(); 261 channel->connectToWorkerGlobalScope();
262 m_inspectorFrontend->worker()->workerCreated(channel->id(), url, autoconnect ToWorkers); 262 m_frontend->workerCreated(channel->id(), url, autoconnectToWorkers);
263 } 263 }
264 264
265 } // namespace blink 265 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorWorkerAgent.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698