| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /** |
| * @implements {Common.Runnable} |
| */ |
| WorkerMain.WorkerMain = class extends Common.Object { |
| /** |
| * @override |
| */ |
| run() { |
| const capabilities = SDK.Target.Capability.Browser | SDK.Target.Capability.Log | SDK.Target.Capability.Network | |
| SDK.Target.Capability.Target | SDK.Target.Capability.Inspector; |
| SDK.targetManager.createTarget( |
| 'main', Common.UIString('Main'), capabilities, this._createMainConnection.bind(this), null); |
| InspectorFrontendHost.connectionReady(); |
| new MobileThrottling.NetworkPanelIndicator(); |
| } |
| |
| /** |
| * @param {!Protocol.InspectorBackend.Connection.Params} params |
| * @return {!Protocol.InspectorBackend.Connection} |
| */ |
| _createMainConnection(params) { |
| return SDK.createMainConnection(params, () => Components.TargetDetachedDialog.webSocketConnectionLost()); |
| } |
| }; |
| |
| SDK.ChildTargetManager.install(({target, waitingForDebugger}) => { |
| const parentTarget = target.parentTarget(); |
| // Only pause the new worker if debugging SW - we are going through the pause on start checkbox. |
| if (!parentTarget.parentTarget() && waitingForDebugger) { |
| const debuggerModel = target.model(SDK.DebuggerModel); |
| if (debuggerModel) |
| debuggerModel.pause(); |
| } |
| }); |