| 421 | } |
| 422 | |
| 423 | _dispatchMessage(messageString) { |
| 424 | var messageObject = JSON.parse(messageString); |
| 425 | if (InspectorTest._dumpInspectorProtocolMessages) |
| 426 | utils.print("backend: " + JSON.stringify(messageObject)); |
| 427 | const kMethodNotFound = -32601; |
| 428 | if (messageObject.error && messageObject.error.code === kMethodNotFound) { |
| 429 | InspectorTest.log(`Error: Called non-existent method. ${ |
| 430 | messageObject.error.message} code: ${messageObject.error.code}`); |
| 431 | InspectorTest.completeTest(); |
| 432 | } |
| 433 | try { |
| 434 | var messageId = messageObject["id"]; |
| 435 | if (typeof messageId === "number") { |
| 436 | var handler = this._dispatchTable.get(messageId); |
| 437 | if (handler) { |
| 438 | handler(messageObject); |
| 439 | this._dispatchTable.delete(messageId); |
| 440 | } |
| 441 | } else { |
| 442 | var eventName = messageObject["method"]; |
| 443 | var eventHandler = this._eventHandlers.get(eventName); |
| 444 | if (this._scriptMap && eventName === "Debugger.scriptParsed") |
| 445 | this._scriptMap.set(messageObject.params.scriptId, JSON.parse(JSON.stringify(messageObject.params))); |
| 446 | if (eventName === "Debugger.scriptParsed" && messageObject.params.url === "wait-for-pending-tasks.js") |
| 447 | return; |
| 448 | if (eventHandler) |
| 449 | eventHandler(messageObject); |
| 450 | } |
| 451 | } catch (e) { |
| 452 | InspectorTest.log("Exception when dispatching message: " + e + "\n" + e.stack + "\n message = " + JSON.stringify(messageObject, null, 2)); |
| 453 | InspectorTest.completeTest(); |
| 454 | } |
| 455 | }; |
| 456 | |
| 457 | _waitForEventPromise(eventName, numOfEvents) { |
| 458 | let events = []; |