Changeset 87074 in webkit
- Timestamp:
- May 23, 2011 8:07:47 AM (13 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 deleted
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r87073 r87074 1 2011-05-23 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 [Chromium] Web Inspector: provide initial implementation of worker inspector transport 6 https://bugs.webkit.org/show_bug.cgi?id=60267 7 8 All methods of WorkerContextInspectorProxy are inlined in WorkerContextProxy and 9 the class itself is removed. Messages from worker inspector to page inspector 10 are sent by means of WorkerReportingProxy. 11 12 * GNUmakefile.list.am: 13 * WebCore.gypi: 14 * WebCore.vcproj/WebCore.vcproj: 15 * WebCore.xcodeproj/project.pbxproj: 16 * inspector/InspectorWorkerAgent.cpp: 17 (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::WorkerFrontendChannel): 18 (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::proxy): 19 (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::dispatchMessageFromWorker): 20 (WebCore::InspectorWorkerAgent::sendMessageToWorker): 21 (WebCore::InspectorWorkerAgent::didStartWorkerContext): 22 * inspector/InspectorWorkerAgent.h: 23 * inspector/WorkerInspectorController.cpp: 24 (WebCore::WorkerInspectorController::connectFrontend): 25 (WebCore::WorkerInspectorController::disconnectFrontend): 26 * inspector/WorkerInspectorController.h: 27 * workers/DefaultSharedWorkerRepository.cpp: 28 (WebCore::SharedWorkerProxy::postMessageToPageInspector): 29 * workers/WorkerContextInspectorProxy.h: Removed. 30 * workers/WorkerContextProxy.h: 31 (WebCore::WorkerContextProxy::PageInspector::~PageInspector): 32 (WebCore::WorkerContextProxy::connectToInspector): 33 (WebCore::WorkerContextProxy::disconnectFromInspector): 34 (WebCore::WorkerContextProxy::sendMessageToInspector): 35 * workers/WorkerMessagingProxy.cpp: 36 (WebCore::WorkerMessagingProxy::postMessageToPageInspector): 37 * workers/WorkerMessagingProxy.h: 38 * workers/WorkerReportingProxy.h: 39 1 40 2011-05-23 Sheriff Bot <webkit.review.bot@gmail.com> 2 41 -
trunk/Source/WebCore/GNUmakefile.list.am
r86854 r87074 3596 3596 Source/WebCore/workers/WorkerContext.cpp \ 3597 3597 Source/WebCore/workers/WorkerContext.h \ 3598 Source/WebCore/workers/WorkerContextInspectorProxy.h \3599 3598 Source/WebCore/workers/WorkerContextProxy.h \ 3600 3599 Source/WebCore/workers/Worker.cpp \ -
trunk/Source/WebCore/WebCore.gypi
r86879 r87074 6017 6017 'workers/WorkerContext.cpp', 6018 6018 'workers/WorkerContext.h', 6019 'workers/WorkerContextInspectorProxy.h',6020 6019 'workers/WorkerContextProxy.h', 6021 6020 'workers/WorkerLoaderProxy.h', -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r86854 r87074 48151 48151 </File> 48152 48152 <File 48153 RelativePath="..\workers\WorkerContextInspectorProxy.h"48154 >48155 </File>48156 <File48157 48153 RelativePath="..\workers\WorkerContextProxy.h" 48158 48154 > -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r86944 r87074 5650 5650 F3810C1B1365A49600ED6E33 /* InspectorWorkerAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3810C191365A49600ED6E33 /* InspectorWorkerAgent.cpp */; }; 5651 5651 F3810C1C1365A49600ED6E33 /* InspectorWorkerAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = F3810C1A1365A49600ED6E33 /* InspectorWorkerAgent.h */; }; 5652 F3810C1E1365A4D400ED6E33 /* WorkerContextInspectorProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = F3810C1D1365A4D400ED6E33 /* WorkerContextInspectorProxy.h */; };5653 5652 F392249C126F11AE00A926D9 /* ScriptCallStackFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F392249A126F11AE00A926D9 /* ScriptCallStackFactory.cpp */; }; 5654 5653 F392249D126F11AE00A926D9 /* ScriptCallStackFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = F392249B126F11AE00A926D9 /* ScriptCallStackFactory.h */; }; … … 12144 12143 F3810C191365A49600ED6E33 /* InspectorWorkerAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorWorkerAgent.cpp; sourceTree = "<group>"; }; 12145 12144 F3810C1A1365A49600ED6E33 /* InspectorWorkerAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorWorkerAgent.h; sourceTree = "<group>"; }; 12146 F3810C1D1365A4D400ED6E33 /* WorkerContextInspectorProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WorkerContextInspectorProxy.h; path = workers/WorkerContextInspectorProxy.h; sourceTree = "<group>"; };12147 12145 F392249A126F11AE00A926D9 /* ScriptCallStackFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptCallStackFactory.cpp; sourceTree = "<group>"; }; 12148 12146 F392249B126F11AE00A926D9 /* ScriptCallStackFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptCallStackFactory.h; sourceTree = "<group>"; }; … … 13384 13382 2E4346370F546A8200B0F1BA /* WorkerContext.h */, 13385 13383 2E4346380F546A8200B0F1BA /* WorkerContext.idl */, 13386 F3810C1D1365A4D400ED6E33 /* WorkerContextInspectorProxy.h */,13387 13384 2E4346390F546A8200B0F1BA /* WorkerContextProxy.h */, 13388 13385 18F831B70FD48C7800D8C56B /* WorkerLoaderProxy.h */, … … 22774 22771 2E4346460F546A8200B0F1BA /* Worker.h in Headers */, 22775 22772 2E4346490F546A8200B0F1BA /* WorkerContext.h in Headers */, 22776 F3810C1E1365A4D400ED6E33 /* WorkerContextInspectorProxy.h in Headers */,22777 22773 2E43464B0F546A8200B0F1BA /* WorkerContextProxy.h in Headers */, 22778 22774 F34742E11343631F00531BC2 /* WorkerDebuggerAgent.h in Headers */, -
trunk/Source/WebCore/inspector/InspectorWorkerAgent.cpp
r84773 r87074 39 39 #include "InspectorValues.h" 40 40 #include "InstrumentingAgents.h" 41 #include "WorkerContextInspectorProxy.h"42 41 #include "WorkerContextProxy.h" 43 42 #include <wtf/PassOwnPtr.h> … … 46 45 namespace WebCore { 47 46 48 class InspectorWorkerAgent::WorkerFrontendChannel : public InspectorFrontendChannel{47 class InspectorWorkerAgent::WorkerFrontendChannel : public WorkerContextProxy::PageInspector { 49 48 public: 50 explicit WorkerFrontendChannel(InspectorFrontend* frontend, WorkerContext InspectorProxy* inspectorProxy)49 explicit WorkerFrontendChannel(InspectorFrontend* frontend, WorkerContextProxy* proxy) 51 50 : m_frontend(frontend) 52 , m_ inspectorProxy(inspectorProxy)51 , m_proxy(proxy) 53 52 , m_id(s_nextId++) 54 53 { … … 57 56 58 57 int id() const { return m_id; } 59 WorkerContext InspectorProxy* inspectorProxy() const { return m_inspectorProxy; }58 WorkerContextProxy* proxy() const { return m_proxy; } 60 59 61 60 private: 62 virtual bool sendMessageToFrontend(const String& message) 61 // WorkerContextProxy::PageInspector implementation 62 virtual void dispatchMessageFromWorker(const String& message) 63 63 { 64 64 RefPtr<InspectorValue> value = InspectorValue::parseJSON(message); 65 65 if (!value) 66 return false;66 return; 67 67 RefPtr<InspectorObject> messageObject = value->asObject(); 68 68 if (!messageObject) 69 return false;69 return; 70 70 m_frontend->worker()->dispatchMessageFromWorker(m_id, messageObject); 71 return true;72 71 } 73 72 74 73 InspectorFrontend* m_frontend; 75 WorkerContext InspectorProxy* m_inspectorProxy;74 WorkerContextProxy* m_proxy; 76 75 int m_id; 77 76 static int s_nextId; … … 112 111 WorkerFrontendChannel* channel = m_idToChannel.get(workerId); 113 112 if (channel) 114 channel-> inspectorProxy()->sendMessageToWorkerContextInspector(message->toJSONString());113 channel->proxy()->sendMessageToInspector(message->toJSONString()); 115 114 else 116 115 *error = "Worker is gone"; … … 119 118 void InspectorWorkerAgent::didStartWorkerContext(WorkerContextProxy* workerContextProxy) 120 119 { 121 WorkerFrontendChannel* channel = new WorkerFrontendChannel(m_inspectorFrontend, workerContextProxy ->inspectorProxy());120 WorkerFrontendChannel* channel = new WorkerFrontendChannel(m_inspectorFrontend, workerContextProxy); 122 121 m_idToChannel.set(channel->id(), channel); 123 122 124 workerContextProxy-> inspectorProxy()->connectFrontend(channel);123 workerContextProxy->connectToInspector(channel); 125 124 if (m_inspectorFrontend) 126 125 m_inspectorFrontend->worker()->workerCreated(channel->id()); -
trunk/Source/WebCore/inspector/InspectorWorkerAgent.h
r84773 r87074 42 42 class InstrumentingAgents; 43 43 class WorkerContextProxy; 44 class WorkerContextInspectorProxy;45 44 46 45 typedef String ErrorString; -
trunk/Source/WebCore/inspector/WorkerInspectorController.cpp
r86955 r87074 44 44 #include "InspectorState.h" 45 45 #include "InstrumentingAgents.h" 46 #include "WorkerContext.h" 46 47 #include "WorkerDebuggerAgent.h" 48 #include "WorkerReportingProxy.h" 49 #include "WorkerThread.h" 47 50 #include <wtf/PassOwnPtr.h> 48 51 … … 64 67 } 65 68 69 WorkerContext* m_workerContext; 70 }; 71 72 class PageInspectorProxy : public InspectorFrontendChannel { 73 public: 74 explicit PageInspectorProxy(WorkerContext* workerContext) : m_workerContext(workerContext) { } 75 virtual ~PageInspectorProxy() { } 76 private: 77 virtual bool sendMessageToFrontend(const String& message) 78 { 79 m_workerContext->thread()->workerReportingProxy().postMessageToPageInspector(message); 80 return true; 81 } 66 82 WorkerContext* m_workerContext; 67 83 }; … … 94 110 } 95 111 96 void WorkerInspectorController::connectFrontend( InspectorFrontendChannel* channel)112 void WorkerInspectorController::connectFrontend() 97 113 { 98 114 ASSERT(!m_frontend); 99 115 m_state->unmute(); 100 m_frontend = adoptPtr(new InspectorFrontend(channel)); 116 m_frontendChannel = adoptPtr(new PageInspectorProxy(m_workerContext)); 117 m_frontend = adoptPtr(new InspectorFrontend(m_frontendChannel.get())); 101 118 m_backendDispatcher = adoptRef(new InspectorBackendDispatcher( 102 channel,119 m_frontendChannel.get(), 103 120 #if ENABLE(OFFLINE_WEB_APPLICATIONS) 104 121 0, // InspectorApplicationCacheAgent … … 150 167 151 168 m_frontend.clear(); 169 m_frontendChannel.clear(); 152 170 } 153 171 -
trunk/Source/WebCore/inspector/WorkerInspectorController.h
r86955 r87074 60 60 ~WorkerInspectorController(); 61 61 62 void connectFrontend( InspectorFrontendChannel*);62 void connectFrontend(); 63 63 void disconnectFrontend(); 64 64 void dispatchMessageFromFrontend(const String&); … … 72 72 OwnPtr<InspectorRuntimeAgent> m_runtimeAgent; 73 73 74 OwnPtr<InspectorFrontendChannel> m_frontendChannel; 74 75 OwnPtr<InspectorFrontend> m_frontend; 75 76 RefPtr<InspectorBackendDispatcher> m_backendDispatcher; -
trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp
r84923 r87074 82 82 virtual void postExceptionToWorkerObject(const String& errorMessage, int lineNumber, const String& sourceURL); 83 83 virtual void postConsoleMessageToWorkerObject(MessageSource, MessageType, MessageLevel, const String& message, int lineNumber, const String& sourceURL); 84 #if ENABLE(INSPECTOR) 85 virtual void postMessageToPageInspector(const String&); 86 #endif 84 87 virtual void workerContextClosed(); 85 88 virtual void workerContextDestroyed(); … … 179 182 } 180 183 184 #if ENABLE(INSPECTOR) 185 void SharedWorkerProxy::postMessageToPageInspector(const String&) 186 { 187 } 188 #endif 189 181 190 void SharedWorkerProxy::workerContextClosed() 182 191 { -
trunk/Source/WebCore/workers/WorkerContextProxy.h
r84773 r87074 42 42 class KURL; 43 43 class Worker; 44 class WorkerContextInspectorProxy;45 44 46 45 // A proxy to talk to the worker context. … … 62 61 63 62 #if ENABLE(INSPECTOR) 64 virtual WorkerContextInspectorProxy* inspectorProxy() { return 0; } 63 class PageInspector { 64 public: 65 virtual ~PageInspector() { } 66 virtual void dispatchMessageFromWorker(const String&) = 0; 67 }; 68 virtual void connectToInspector(PageInspector*) { } 69 virtual void disconnectFromInspector() { } 70 virtual void sendMessageToInspector(const String&) { } 65 71 #endif 66 72 }; -
trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp
r85165 r87074 354 354 } 355 355 356 #if ENABLE(INSPECTOR) 357 void WorkerMessagingProxy::postMessageToPageInspector(const String&) 358 { 359 } 360 #endif 361 356 362 void WorkerMessagingProxy::confirmMessageFromWorkerObject(bool hasPendingActivity) 357 363 { -
trunk/Source/WebCore/workers/WorkerMessagingProxy.h
r76248 r87074 65 65 virtual void postExceptionToWorkerObject(const String& errorMessage, int lineNumber, const String& sourceURL); 66 66 virtual void postConsoleMessageToWorkerObject(MessageSource, MessageType, MessageLevel, const String& message, int lineNumber, const String& sourceURL); 67 #if ENABLE(INSPECTOR) 68 virtual void postMessageToPageInspector(const String&); 69 #endif 67 70 virtual void confirmMessageFromWorkerObject(bool hasPendingActivity); 68 71 virtual void reportPendingActivity(bool hasPendingActivity); -
trunk/Source/WebCore/workers/WorkerReportingProxy.h
r86251 r87074 47 47 48 48 virtual void postConsoleMessageToWorkerObject(MessageSource, MessageType, MessageLevel, const String& message, int lineNumber, const String& sourceURL) = 0; 49 49 #if ENABLE(INSPECTOR) 50 virtual void postMessageToPageInspector(const String&) = 0; 51 #endif 50 52 // Invoked when close() is invoked on the worker context. 51 53 virtual void workerContextClosed() = 0; -
trunk/Source/WebKit/chromium/ChangeLog
r87050 r87074 1 2011-05-23 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 [Chromium] Web Inspector: provide initial implementation of worker inspector transport 6 https://bugs.webkit.org/show_bug.cgi?id=60267 7 8 WebWorker and WebWorkerClient are extended with methods for passing 9 DevTools messages between worker context inspector and page inspector. 10 11 * public/WebWorker.h: 12 (WebKit::WebWorker::attachDevTools): 13 (WebKit::WebWorker::detachDevTools): 14 (WebKit::WebWorker::dispatchDevToolsMessage): 15 * public/WebWorkerClient.h: 16 (WebKit::WebWorkerClient::dispatchDevToolsMessage): 17 * src/WebWorkerBase.cpp: 18 (WebKit::WebWorkerBase::postMessageToPageInspector): 19 (WebKit::WebWorkerBase::postMessageToPageInspectorTask): 20 * src/WebWorkerBase.h: 21 * src/WebWorkerClientImpl.cpp: 22 (WebKit::WebWorkerClientImpl::WebWorkerClientImpl): 23 (WebKit::WebWorkerClientImpl::connectToInspector): 24 (WebKit::WebWorkerClientImpl::disconnectFromInspector): 25 (WebKit::WebWorkerClientImpl::sendMessageToInspector): 26 (WebKit::WebWorkerClientImpl::dispatchDevToolsMessage): 27 * src/WebWorkerClientImpl.h: 28 * src/WebWorkerImpl.cpp: 29 (WebKit::WebWorkerImpl::startWorkerContext): 30 (WebKit::connectToWorkerContextInspectorTask): 31 (WebKit::WebWorkerImpl::attachDevTools): 32 (WebKit::disconnectFromWorkerContextInspectorTask): 33 (WebKit::WebWorkerImpl::detachDevTools): 34 (WebKit::dispatchOnInspectorBackendTask): 35 (WebKit::WebWorkerImpl::dispatchDevToolsMessage): 36 * src/WebWorkerImpl.h: 37 1 38 2011-05-22 Greg Simon <gregsimon@chromium.org> 2 39 -
trunk/Source/WebKit/chromium/public/WebWorker.h
r50681 r87074 56 56 virtual void workerObjectDestroyed() = 0; 57 57 virtual void clientDestroyed() = 0; 58 59 virtual void attachDevTools() { } 60 virtual void detachDevTools() { } 61 virtual void dispatchDevToolsMessage(const WebString&) { } 58 62 }; 59 63 -
trunk/Source/WebKit/chromium/public/WebWorkerClient.h
r50681 r87074 53 53 virtual void reportPendingActivity(bool hasPendingActivity) = 0; 54 54 55 virtual void dispatchDevToolsMessage(const WebString&) { } 56 55 57 protected: 56 58 ~WebWorkerClient() { } -
trunk/Source/WebKit/chromium/src/WebWorkerBase.cpp
r86356 r87074 423 423 } 424 424 425 void WebWorkerBase::postMessageToPageInspector(const String& message) 426 { 427 dispatchTaskToMainThread(createCallbackTask(&postMessageToPageInspectorTask, AllowCrossThreadAccess(this), message)); 428 } 429 430 void WebWorkerBase::postMessageToPageInspectorTask(ScriptExecutionContext*, WebWorkerBase* thisPtr, const String& message) 431 { 432 if (!thisPtr->client()) 433 return; 434 thisPtr->client()->dispatchDevToolsMessage(message); 435 } 436 425 437 void WebWorkerBase::confirmMessageFromWorkerObject(bool hasPendingActivity) 426 438 { -
trunk/Source/WebKit/chromium/src/WebWorkerBase.h
r86356 r87074 75 75 WebCore::MessageSource, WebCore::MessageType, 76 76 WebCore::MessageLevel, const WTF::String&, int, const WTF::String&); 77 virtual void postMessageToPageInspector(const WTF::String&); 77 78 virtual void confirmMessageFromWorkerObject(bool); 78 79 virtual void reportPendingActivity(bool); … … 139 140 int lineNumber, 140 141 const WTF::String& sourceURL); 142 static void postMessageToPageInspectorTask(WebCore::ScriptExecutionContext*, WebWorkerBase*, const WTF::String&); 141 143 static void confirmMessageTask( 142 144 WebCore::ScriptExecutionContext* context, -
trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp
r86135 r87074 121 121 , m_workerContextHadPendingActivity(false) 122 122 , m_workerThreadId(currentThread()) 123 , m_pageInspector(0) 123 124 { 124 125 } … … 206 207 WebWorkerBase::dispatchTaskToMainThread(createCallbackTask(&workerObjectDestroyedTask, 207 208 AllowCrossThreadAccess(this))); 209 } 210 211 void WebWorkerClientImpl::connectToInspector(WorkerContextProxy::PageInspector* pageInspector) 212 { 213 ASSERT(!m_pageInspector); 214 m_pageInspector = pageInspector; 215 m_webWorker->attachDevTools(); 216 } 217 218 void WebWorkerClientImpl::disconnectFromInspector() 219 { 220 m_webWorker->detachDevTools(); 221 m_pageInspector = 0; 222 } 223 224 void WebWorkerClientImpl::sendMessageToInspector(const String& message) 225 { 226 m_webWorker->dispatchDevToolsMessage(message); 208 227 } 209 228 … … 316 335 } 317 336 337 void WebWorkerClientImpl::dispatchDevToolsMessage(const WebString& message) 338 { 339 if (m_pageInspector) 340 m_pageInspector->dispatchMessageFromWorker(message); 341 } 342 318 343 void WebWorkerClientImpl::startWorkerContextTask(ScriptExecutionContext* context, 319 344 WebWorkerClientImpl* thisPtr, -
trunk/Source/WebKit/chromium/src/WebWorkerClientImpl.h
r86362 r87074 37 37 #include "WebWorkerClient.h" 38 38 #include "WorkerContextProxy.h" 39 #include <wtf/OwnPtr.h> 39 40 #include <wtf/PassOwnPtr.h> 40 41 #include <wtf/RefPtr.h> … … 74 75 virtual void workerObjectDestroyed(); 75 76 77 virtual void connectToInspector(WorkerContextProxy::PageInspector*); 78 virtual void disconnectFromInspector(); 79 virtual void sendMessageToInspector(const String&); 80 76 81 // WebWorkerClient methods: 77 82 // These are called on the main WebKit thread. … … 79 84 virtual void postExceptionToWorkerObject(const WebString&, int, const WebString&); 80 85 81 // FIXME: the below is for compatibility only and should be 82 // removed once Chromium is updated to remove message 86 // FIXME: the below is for compatibility only and should be 87 // removed once Chromium is updated to remove message 83 88 // destination parameter <http://webkit.org/b/37155>. 84 89 virtual void postConsoleMessageToWorkerObject(int, int, int, int, const WebString&, int, const WebString&); … … 105 110 return true; 106 111 } 112 113 virtual void dispatchDevToolsMessage(const WebString&); 107 114 108 115 private: … … 161 168 bool m_workerContextHadPendingActivity; 162 169 ThreadIdentifier m_workerThreadId; 170 WorkerContextProxy::PageInspector* m_pageInspector; 163 171 }; 164 172 -
trunk/Source/WebKit/chromium/src/WebWorkerImpl.cpp
r86067 r87074 43 43 #include "SerializedScriptValue.h" 44 44 #include "SubstituteData.h" 45 #include "WorkerInspectorController.h" 46 #include <wtf/OwnPtr.h> 45 47 #include <wtf/Threading.h> 46 48 … … 102 104 { 103 105 initializeLoader(scriptUrl); 104 setWorkerThread(DedicatedWorkerThread::create(scriptUrl, userAgent, 105 sourceCode, *this, *this)); 106 setWorkerThread(DedicatedWorkerThread::create(scriptUrl, userAgent, sourceCode, *this, *this)); 106 107 // Worker initialization means a pending activity. 107 108 reportPendingActivity(true); … … 147 148 } 148 149 150 static void connectToWorkerContextInspectorTask(ScriptExecutionContext* context, bool) 151 { 152 ASSERT(context->isWorkerContext()); 153 static_cast<WorkerContext*>(context)->workerInspectorController()->connectFrontend(); 154 } 155 156 void WebWorkerImpl::attachDevTools() 157 { 158 workerThread()->runLoop().postTask(createCallbackTask(connectToWorkerContextInspectorTask, true)); 159 } 160 161 static void disconnectFromWorkerContextInspectorTask(ScriptExecutionContext* context, bool) 162 { 163 ASSERT(context->isWorkerContext()); 164 static_cast<WorkerContext*>(context)->workerInspectorController()->disconnectFrontend(); 165 } 166 167 void WebWorkerImpl::detachDevTools() 168 { 169 workerThread()->runLoop().postTask(createCallbackTask(disconnectFromWorkerContextInspectorTask, true)); 170 } 171 172 static void dispatchOnInspectorBackendTask(ScriptExecutionContext* context, const String& message) 173 { 174 ASSERT(context->isWorkerContext()); 175 static_cast<WorkerContext*>(context)->workerInspectorController()->dispatchMessageFromFrontend(message); 176 } 177 178 void WebWorkerImpl::dispatchDevToolsMessage(const WebString& message) 179 { 180 workerThread()->runLoop().postTaskForMode(createCallbackTask(dispatchOnInspectorBackendTask, String(message)), "debugger"); 181 } 182 149 183 #else 150 184 -
trunk/Source/WebKit/chromium/src/WebWorkerImpl.h
r65021 r87074 41 41 42 42 namespace WebKit { 43 class WebView;44 43 45 44 // This class is used by the worker process code to talk to the WebCore::Worker … … 59 58 virtual void clientDestroyed(); 60 59 60 virtual void attachDevTools(); 61 virtual void detachDevTools(); 62 virtual void dispatchDevToolsMessage(const WebKit::WebString&); 63 61 64 // WebWorkerBase methods: 62 65 virtual WebWorkerClient* client() { return m_client; } … … 74 77 75 78 WebWorkerClient* m_client; 76 77 79 }; 78 80
Note: See TracChangeset
for help on using the changeset viewer.