15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/*
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2011 Google Inc. All rights reserved.
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions are
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * met:
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *     * Redistributions of source code must retain the above copyright
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer.
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *     * Redistributions in binary form must reproduce the above
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * in the documentation and/or other materials provided with the
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * distribution.
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *     * Neither the name of Google Inc. nor the names of its
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * contributors may be used to endorse or promote products derived from
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * this software without specific prior written permission.
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/**
325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor
335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @extends {WebInspector.Object}
34f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles) * @param {!WebInspector.Target} target
35d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * @param {boolean} isMainFrontend
365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
3707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochWebInspector.WorkerManager = function(target, isMainFrontend)
385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
3909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    this._reset();
4007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch    target.registerWorkerDispatcher(new WebInspector.WorkerDispatcher(this));
41d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    if (isMainFrontend) {
42197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch        target.workerAgent().enable();
43197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch        target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    }
455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)WebInspector.WorkerManager.Events = {
4809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    WorkerAdded: "WorkerAdded",
4909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    WorkerRemoved: "WorkerRemoved",
5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    WorkersCleared: "WorkersCleared",
5109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    WorkerSelectionChanged: "WorkerSelectionChanged",
5209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    WorkerDisconnected: "WorkerDisconnected",
5309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    MessageFromWorker: "MessageFromWorker",
5409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)}
555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
5609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)WebInspector.WorkerManager.MainThreadId = 0;
575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
5809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)WebInspector.WorkerManager.prototype = {
595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
6009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    _reset: function()
615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
6209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        /** @type {!Object.<number, string>} */
6309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._threadUrlByThreadId = {};
6409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._threadUrlByThreadId[WebInspector.WorkerManager.MainThreadId] = WebInspector.UIString("Thread: Main");
6509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._threadsList = [WebInspector.WorkerManager.MainThreadId];
6609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._selectedThreadId = WebInspector.WorkerManager.MainThreadId;
6709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    },
685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    _workerCreated: function(workerId, url, inspectorConnected)
7009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    {
7109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._threadsList.push(workerId);
7209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._threadUrlByThreadId[workerId] = url;
735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerAdded, {workerId: workerId, url: url, inspectorConnected: inspectorConnected});
745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)     },
755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    _workerTerminated: function(workerId)
775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
7809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._threadsList.remove(workerId);
7909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        delete this._threadUrlByThreadId[workerId];
8009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerRemoved, workerId);
815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
8309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    _dispatchMessageFromWorker: function(workerId, message)
845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
8509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this.dispatchEventToListeners(WebInspector.WorkerManager.Events.MessageFromWorker, {workerId: workerId, message: message})
865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
8809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    _disconnectedFromWorker: function()
895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
9009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerDisconnected)
915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    _mainFrameNavigated: function(event)
945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
9509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._reset();
965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkersCleared);
975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
9909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    /**
10009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     * @return {!Array.<number>}
10109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     */
10209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    threadsList: function()
1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
10409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        return this._threadsList;
1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
10709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    /**
10809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     * @param {number} threadId
10909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     * @return {string}
11009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     */
11109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    threadUrl: function(threadId)
112926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    {
11309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        return this._threadUrlByThreadId[threadId];
114926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    },
115926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
11609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    /**
11709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     * @param {number} threadId
11809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     */
11909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    setSelectedThreadId: function(threadId)
1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
12109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._selectedThreadId = threadId;
1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
12409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    /**
12509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     * @return {number}
12609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)     */
12709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    selectedThreadId: function()
1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
12909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        return this._selectedThreadId;
1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    __proto__: WebInspector.Object.prototype
1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/**
1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor
1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @implements {WorkerAgent.Dispatcher}
1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.WorkerDispatcher = function(workerManager)
1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this._workerManager = workerManager;
1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.WorkerDispatcher.prototype = {
1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    workerCreated: function(workerId, url, inspectorConnected)
1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._workerManager._workerCreated(workerId, url, inspectorConnected);
1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    workerTerminated: function(workerId)
1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._workerManager._workerTerminated(workerId);
1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    dispatchMessageFromWorker: function(workerId, message)
1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
15809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        this._workerManager._dispatchMessageFromWorker(workerId, message);
1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    disconnectedFromWorker: function()
1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._workerManager._disconnectedFromWorker();
1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    }
1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/**
16809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) * @type {!WebInspector.WorkerManager}
1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
170d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)WebInspector.workerManager;
171d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
172d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)/**
173d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * @constructor
174d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * @extends {InspectorBackendClass.Connection}
175d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * @param {string} workerId
176d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) */
177197021e6b966cfb06891637935ef33fff06433d1Ben MurdochWebInspector.ExternalWorkerConnection = function(workerId)
178d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles){
179d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    InspectorBackendClass.Connection.call(this);
180d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    this._workerId = workerId;
181d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    window.addEventListener("message", this._processMessage.bind(this), true);
182d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}
183d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
18407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben MurdochWebInspector.ExternalWorkerConnection.prototype = {
185d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
186d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    /**
187197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch     * @param {!Event} event
188d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)     */
189d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    _processMessage: function(event)
190d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    {
191d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)        if (!event)
192d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)            return;
193d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
194d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)        var message = event.data;
195d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)        this.dispatch(message);
196d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    },
197d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
198d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    /**
199d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)     * @param {!Object} messageObject
200d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)     */
201d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    sendMessage: function(messageObject)
202d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    {
203d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)        window.opener.postMessage({workerId: this._workerId, command: "sendMessageToBackend", message: messageObject}, "*");
204d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    },
205d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
206d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    __proto__: InspectorBackendClass.Connection.prototype
20707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch}
208