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

Side by Side Diff: third_party/WebKit/Source/core/workers/WorkerInspectorProxy.cpp

Issue 2116113002: [worklets] Make WorkerThread handle both Worker and Worklet global scopes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests. Created 4 years, 5 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "core/workers/WorkerInspectorProxy.h" 5 #include "core/workers/WorkerInspectorProxy.h"
6 6
7 #include "core/dom/CrossThreadTask.h" 7 #include "core/dom/CrossThreadTask.h"
8 #include "core/frame/FrameConsole.h" 8 #include "core/frame/FrameConsole.h"
9 #include "core/inspector/IdentifiersFactory.h" 9 #include "core/inspector/IdentifiersFactory.h"
10 #include "core/inspector/InspectorInstrumentation.h" 10 #include "core/inspector/InspectorInstrumentation.h"
11 #include "core/inspector/InspectorTraceEvents.h" 11 #include "core/inspector/InspectorTraceEvents.h"
12 #include "core/inspector/WorkerInspectorController.h" 12 #include "core/inspector/WorkerInspectorController.h"
13 #include "core/workers/WorkerGlobalScope.h"
13 #include "core/workers/WorkerThread.h" 14 #include "core/workers/WorkerThread.h"
14 #include "platform/TraceEvent.h" 15 #include "platform/TraceEvent.h"
15 #include "platform/weborigin/KURL.h" 16 #include "platform/weborigin/KURL.h"
16 #include "public/platform/WebTaskRunner.h" 17 #include "public/platform/WebTaskRunner.h"
17 #include "public/platform/WebTraceLocation.h" 18 #include "public/platform/WebTraceLocation.h"
18 19
19 namespace blink { 20 namespace blink {
20 21
21 namespace { 22 namespace {
22 23
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 } 95 }
95 96
96 void WorkerInspectorProxy::addConsoleMessageFromWorker(ConsoleMessage* consoleMe ssage) 97 void WorkerInspectorProxy::addConsoleMessageFromWorker(ConsoleMessage* consoleMe ssage)
97 { 98 {
98 if (LocalFrame* frame = m_document->frame()) 99 if (LocalFrame* frame = m_document->frame())
99 frame->console().addMessageFromWorker(consoleMessage, m_inspectorId); 100 frame->console().addMessageFromWorker(consoleMessage, m_inspectorId);
100 } 101 }
101 102
102 static void connectToWorkerGlobalScopeInspectorTask(WorkerThread* workerThread) 103 static void connectToWorkerGlobalScopeInspectorTask(WorkerThread* workerThread)
103 { 104 {
104 if (WorkerInspectorController* inspector = workerThread->workerGlobalScope() ->workerInspectorController()) 105 WorkerOrWorkletGlobalScope* globalScope = workerThread->globalScope();
105 inspector->connectFrontend(); 106 if (globalScope->isWorkerGlobalScope()) {
107 if (WorkerInspectorController* inspector = toWorkerGlobalScope(globalSco pe)->workerInspectorController())
108 inspector->connectFrontend();
109 }
106 } 110 }
107 111
108 void WorkerInspectorProxy::connectToInspector(WorkerInspectorProxy::PageInspecto r* pageInspector) 112 void WorkerInspectorProxy::connectToInspector(WorkerInspectorProxy::PageInspecto r* pageInspector)
109 { 113 {
110 if (!m_workerThread) 114 if (!m_workerThread)
111 return; 115 return;
112 DCHECK(!m_pageInspector); 116 DCHECK(!m_pageInspector);
113 m_pageInspector = pageInspector; 117 m_pageInspector = pageInspector;
114 m_workerThread->appendDebuggerTask(crossThreadBind(connectToWorkerGlobalScop eInspectorTask, crossThreadUnretained(m_workerThread))); 118 m_workerThread->appendDebuggerTask(crossThreadBind(connectToWorkerGlobalScop eInspectorTask, crossThreadUnretained(m_workerThread)));
115 } 119 }
116 120
117 static void disconnectFromWorkerGlobalScopeInspectorTask(WorkerThread* workerThr ead) 121 static void disconnectFromWorkerGlobalScopeInspectorTask(WorkerThread* workerThr ead)
118 { 122 {
119 if (WorkerInspectorController* inspector = workerThread->workerGlobalScope() ->workerInspectorController()) 123 WorkerOrWorkletGlobalScope* globalScope = workerThread->globalScope();
120 inspector->disconnectFrontend(); 124 if (globalScope->isWorkerGlobalScope()) {
125 if (WorkerInspectorController* inspector = toWorkerGlobalScope(globalSco pe)->workerInspectorController())
126 inspector->disconnectFrontend();
127 }
121 } 128 }
122 129
123 void WorkerInspectorProxy::disconnectFromInspector(WorkerInspectorProxy::PageIns pector* pageInspector) 130 void WorkerInspectorProxy::disconnectFromInspector(WorkerInspectorProxy::PageIns pector* pageInspector)
124 { 131 {
125 DCHECK(m_pageInspector == pageInspector); 132 DCHECK(m_pageInspector == pageInspector);
126 m_pageInspector = nullptr; 133 m_pageInspector = nullptr;
127 if (m_workerThread) 134 if (m_workerThread)
128 m_workerThread->appendDebuggerTask(crossThreadBind(disconnectFromWorkerG lobalScopeInspectorTask, crossThreadUnretained(m_workerThread))); 135 m_workerThread->appendDebuggerTask(crossThreadBind(disconnectFromWorkerG lobalScopeInspectorTask, crossThreadUnretained(m_workerThread)));
129 } 136 }
130 137
131 static void dispatchOnInspectorBackendTask(const String& message, WorkerThread* workerThread) 138 static void dispatchOnInspectorBackendTask(const String& message, WorkerThread* workerThread)
132 { 139 {
133 if (WorkerInspectorController* inspector = workerThread->workerGlobalScope() ->workerInspectorController()) 140 WorkerOrWorkletGlobalScope* globalScope = workerThread->globalScope();
134 inspector->dispatchMessageFromFrontend(message); 141 if (globalScope->isWorkerGlobalScope()) {
142 if (WorkerInspectorController* inspector = toWorkerGlobalScope(globalSco pe)->workerInspectorController())
143 inspector->dispatchMessageFromFrontend(message);
144 }
135 } 145 }
136 146
137 void WorkerInspectorProxy::sendMessageToInspector(const String& message) 147 void WorkerInspectorProxy::sendMessageToInspector(const String& message)
138 { 148 {
139 if (m_workerThread) 149 if (m_workerThread)
140 m_workerThread->appendDebuggerTask(crossThreadBind(dispatchOnInspectorBa ckendTask, message, crossThreadUnretained(m_workerThread))); 150 m_workerThread->appendDebuggerTask(crossThreadBind(dispatchOnInspectorBa ckendTask, message, crossThreadUnretained(m_workerThread)));
141 } 151 }
142 152
143 void WorkerInspectorProxy::writeTimelineStartedEvent(const String& sessionId) 153 void WorkerInspectorProxy::writeTimelineStartedEvent(const String& sessionId)
144 { 154 {
145 if (!m_workerThread) 155 if (!m_workerThread)
146 return; 156 return;
147 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "Tracin gSessionIdForWorker", TRACE_EVENT_SCOPE_THREAD, "data", InspectorTracingSessionI dForWorkerEvent::data(sessionId, inspectorId(), m_workerThread)); 157 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "Tracin gSessionIdForWorker", TRACE_EVENT_SCOPE_THREAD, "data", InspectorTracingSessionI dForWorkerEvent::data(sessionId, inspectorId(), m_workerThread));
148 } 158 }
149 159
150 DEFINE_TRACE(WorkerInspectorProxy) 160 DEFINE_TRACE(WorkerInspectorProxy)
151 { 161 {
152 visitor->trace(m_document); 162 visitor->trace(m_document);
153 } 163 }
154 164
155 } // namespace blink 165 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698