| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @unrestricted | 32 * @unrestricted |
| 33 */ | 33 */ |
| 34 SDK.ConsoleModel = class extends SDK.SDKModel { | 34 SDK.ConsoleModel = class extends Common.Object { |
| 35 /** | 35 /** |
| 36 * @param {!SDK.Target} target | 36 * @param {!SDK.Target} target |
| 37 */ | 37 */ |
| 38 constructor(target) { | 38 constructor(target) { |
| 39 super(target); | 39 super(); |
| 40 this._target = target; |
| 40 | 41 |
| 41 /** @type {!Array.<!SDK.ConsoleMessage>} */ | 42 /** @type {!Array.<!SDK.ConsoleMessage>} */ |
| 42 this._messages = []; | 43 this._messages = []; |
| 43 /** @type {!Map<number, !SDK.ConsoleMessage>} */ | 44 /** @type {!Map<number, !SDK.ConsoleMessage>} */ |
| 44 this._messageByExceptionId = new Map(); | 45 this._messageByExceptionId = new Map(); |
| 45 this._warnings = 0; | 46 this._warnings = 0; |
| 46 this._errors = 0; | 47 this._errors = 0; |
| 47 | 48 |
| 48 var logModel = target.model(SDK.LogModel); | 49 var logModel = target.model(SDK.LogModel); |
| 49 if (logModel) | 50 if (logModel) |
| (...skipping 21 matching lines...) Expand all Loading... |
| 71 runtimeModel.addEventListener(SDK.RuntimeModel.Events.ExceptionRevoked, th
is._exceptionRevoked, this); | 72 runtimeModel.addEventListener(SDK.RuntimeModel.Events.ExceptionRevoked, th
is._exceptionRevoked, this); |
| 72 runtimeModel.addEventListener(SDK.RuntimeModel.Events.ConsoleAPICalled, th
is._consoleAPICalled, this); | 73 runtimeModel.addEventListener(SDK.RuntimeModel.Events.ConsoleAPICalled, th
is._consoleAPICalled, this); |
| 73 } | 74 } |
| 74 | 75 |
| 75 var networkManager = target.model(SDK.NetworkManager); | 76 var networkManager = target.model(SDK.NetworkManager); |
| 76 if (networkManager) | 77 if (networkManager) |
| 77 networkManager.addEventListener(SDK.NetworkManager.Events.WarningGenerated
, this._networkWarningGenerated, this); | 78 networkManager.addEventListener(SDK.NetworkManager.Events.WarningGenerated
, this._networkWarningGenerated, this); |
| 78 } | 79 } |
| 79 | 80 |
| 80 /** | 81 /** |
| 82 * @return {!SDK.Target} |
| 83 */ |
| 84 target() { |
| 85 return this._target; |
| 86 } |
| 87 |
| 88 /** |
| 81 * @param {!SDK.ExecutionContext} executionContext | 89 * @param {!SDK.ExecutionContext} executionContext |
| 82 * @param {string} text | 90 * @param {string} text |
| 83 * @param {boolean} useCommandLineAPI | 91 * @param {boolean} useCommandLineAPI |
| 84 */ | 92 */ |
| 85 static evaluateCommandInConsole(executionContext, text, useCommandLineAPI) { | 93 static evaluateCommandInConsole(executionContext, text, useCommandLineAPI) { |
| 86 var target = executionContext.target(); | 94 var target = executionContext.target(); |
| 87 var requestedText = text; | 95 var requestedText = text; |
| 88 | 96 |
| 89 var commandMessage = new SDK.ConsoleMessage( | 97 var commandMessage = new SDK.ConsoleMessage( |
| 90 target, SDK.ConsoleMessage.MessageSource.JS, null, text, SDK.ConsoleMess
age.MessageType.Command); | 98 target, SDK.ConsoleMessage.MessageSource.JS, null, text, SDK.ConsoleMess
age.MessageType.Command); |
| 91 commandMessage.setExecutionContextId(executionContext.id); | 99 commandMessage.setExecutionContextId(executionContext.id); |
| 92 target.consoleModel.addMessage(commandMessage); | 100 SDK.multitargetConsoleModel.addMessage(commandMessage); |
| 93 | 101 |
| 94 /** | 102 /** |
| 95 * @param {?SDK.RemoteObject} result | 103 * @param {?SDK.RemoteObject} result |
| 96 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails | 104 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails |
| 97 */ | 105 */ |
| 98 function printResult(result, exceptionDetails) { | 106 function printResult(result, exceptionDetails) { |
| 99 if (!result) | 107 if (!result) |
| 100 return; | 108 return; |
| 101 | 109 |
| 102 Common.console.showPromise().then(reportUponEvaluation); | 110 Common.console.showPromise().then(reportUponEvaluation); |
| 103 function reportUponEvaluation() { | 111 function reportUponEvaluation() { |
| 104 target.consoleModel.dispatchEventToListeners( | 112 SDK.multitargetConsoleModel._consoleModels.get(target).dispatchEventToLi
steners( |
| 105 SDK.ConsoleModel.Events.CommandEvaluated, | 113 SDK.ConsoleModel.Events.CommandEvaluated, |
| 106 {result: result, text: requestedText, commandMessage: commandMessage
, exceptionDetails: exceptionDetails}); | 114 {result: result, text: requestedText, commandMessage: commandMessage
, exceptionDetails: exceptionDetails}); |
| 107 } | 115 } |
| 108 } | 116 } |
| 109 | 117 |
| 110 /** | 118 /** |
| 111 * @param {string} code | 119 * @param {string} code |
| 112 * @suppress {uselessCode} | 120 * @suppress {uselessCode} |
| 113 * @return {boolean} | 121 * @return {boolean} |
| 114 */ | 122 */ |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 } | 337 } |
| 330 | 338 |
| 331 /** | 339 /** |
| 332 * @return {number} | 340 * @return {number} |
| 333 */ | 341 */ |
| 334 warnings() { | 342 warnings() { |
| 335 return this._warnings; | 343 return this._warnings; |
| 336 } | 344 } |
| 337 }; | 345 }; |
| 338 | 346 |
| 339 SDK.SDKModel.register(SDK.ConsoleModel, SDK.Target.Capability.None); | |
| 340 | |
| 341 /** @enum {symbol} */ | 347 /** @enum {symbol} */ |
| 342 SDK.ConsoleModel.Events = { | 348 SDK.ConsoleModel.Events = { |
| 343 ConsoleCleared: Symbol('ConsoleCleared'), | 349 ConsoleCleared: Symbol('ConsoleCleared'), |
| 344 MessageAdded: Symbol('MessageAdded'), | 350 MessageAdded: Symbol('MessageAdded'), |
| 345 MessageUpdated: Symbol('MessageUpdated'), | 351 MessageUpdated: Symbol('MessageUpdated'), |
| 346 CommandEvaluated: Symbol('CommandEvaluated') | 352 CommandEvaluated: Symbol('CommandEvaluated') |
| 347 }; | 353 }; |
| 348 | 354 |
| 349 | 355 |
| 350 /** | 356 /** |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 return 3; | 638 return 3; |
| 633 }; | 639 }; |
| 634 | 640 |
| 635 /** | 641 /** |
| 636 * @implements {SDK.TargetManager.Observer} | 642 * @implements {SDK.TargetManager.Observer} |
| 637 * @unrestricted | 643 * @unrestricted |
| 638 */ | 644 */ |
| 639 SDK.MultitargetConsoleModel = class extends Common.Object { | 645 SDK.MultitargetConsoleModel = class extends Common.Object { |
| 640 constructor() { | 646 constructor() { |
| 641 super(); | 647 super(); |
| 648 /** @type {!Map<!SDK.Target, !SDK.ConsoleModel>} */ |
| 649 this._consoleModels = new Map(); |
| 642 SDK.targetManager.observeTargets(this); | 650 SDK.targetManager.observeTargets(this); |
| 643 SDK.targetManager.addModelListener( | |
| 644 SDK.ConsoleModel, SDK.ConsoleModel.Events.MessageAdded, this._consoleMes
sageAdded, this); | |
| 645 SDK.targetManager.addModelListener( | |
| 646 SDK.ConsoleModel, SDK.ConsoleModel.Events.MessageUpdated, this._consoleM
essageUpdated, this); | |
| 647 SDK.targetManager.addModelListener( | |
| 648 SDK.ConsoleModel, SDK.ConsoleModel.Events.CommandEvaluated, this._comman
dEvaluated, this); | |
| 649 } | 651 } |
| 650 | 652 |
| 651 /** | 653 /** |
| 652 * @override | 654 * @override |
| 653 * @param {!SDK.Target} target | 655 * @param {!SDK.Target} target |
| 654 */ | 656 */ |
| 655 targetAdded(target) { | 657 targetAdded(target) { |
| 658 var consoleModel = new SDK.ConsoleModel(target); |
| 659 this._consoleModels.set(target, consoleModel); |
| 660 consoleModel[SDK.MultitargetConsoleModel._events] = [ |
| 661 consoleModel.addEventListener(SDK.ConsoleModel.Events.MessageAdded, this._
consoleMessageAdded, this), |
| 662 consoleModel.addEventListener(SDK.ConsoleModel.Events.MessageUpdated, this
._consoleMessageUpdated, this), |
| 663 consoleModel.addEventListener(SDK.ConsoleModel.Events.CommandEvaluated, th
is._commandEvaluated, this) |
| 664 ]; |
| 665 |
| 656 if (!this._mainTarget) { | 666 if (!this._mainTarget) { |
| 657 this._mainTarget = target; | 667 this._mainTarget = target; |
| 658 target.consoleModel.addEventListener(SDK.ConsoleModel.Events.ConsoleCleare
d, this._consoleCleared, this); | 668 consoleModel.addEventListener(SDK.ConsoleModel.Events.ConsoleCleared, this
._consoleCleared, this); |
| 659 } | 669 } |
| 660 } | 670 } |
| 661 | 671 |
| 662 /** | 672 /** |
| 663 * @override | 673 * @override |
| 664 * @param {!SDK.Target} target | 674 * @param {!SDK.Target} target |
| 665 */ | 675 */ |
| 666 targetRemoved(target) { | 676 targetRemoved(target) { |
| 677 var consoleModel = this._consoleModels.get(target); |
| 678 this._consoleModels.delete(target); |
| 679 Common.EventTarget.removeEventListeners(consoleModel[SDK.MultitargetConsoleM
odel._events]); |
| 680 |
| 667 if (this._mainTarget === target) { | 681 if (this._mainTarget === target) { |
| 668 delete this._mainTarget; | 682 delete this._mainTarget; |
| 669 target.consoleModel.removeEventListener(SDK.ConsoleModel.Events.ConsoleCle
ared, this._consoleCleared, this); | 683 consoleModel.removeEventListener(SDK.ConsoleModel.Events.ConsoleCleared, t
his._consoleCleared, this); |
| 670 } | 684 } |
| 671 } | 685 } |
| 672 | 686 |
| 673 /** | 687 /** |
| 674 * @return {!Array.<!SDK.ConsoleMessage>} | 688 * @return {!Array.<!SDK.ConsoleMessage>} |
| 675 */ | 689 */ |
| 676 messages() { | 690 messages() { |
| 677 var targets = SDK.targetManager.targets(); | |
| 678 var result = []; | 691 var result = []; |
| 679 for (var i = 0; i < targets.length; ++i) | 692 for (var consoleModel of this._consoleModels.values()) |
| 680 result = result.concat(targets[i].consoleModel.messages()); | 693 result = result.concat(consoleModel.messages()); |
| 681 return result; | 694 return result; |
| 682 } | 695 } |
| 683 | 696 |
| 697 requestClearMessages() { |
| 698 for (var consoleModel of this._consoleModels.values()) |
| 699 consoleModel.requestClearMessages(); |
| 700 } |
| 701 |
| 702 /** |
| 703 * @param {!SDK.ConsoleMessage} consoleMessage |
| 704 */ |
| 705 addMessage(consoleMessage) { |
| 706 // TODO(dgozman): make target non-nullable, as we only have messages without
a target |
| 707 // internally in ConsoleView. |
| 708 var target = /** @type {!SDK.Target} */ (consoleMessage.target()); |
| 709 this._consoleModels.get(target).addMessage(consoleMessage); |
| 710 } |
| 711 |
| 712 /** |
| 713 * @return {number} |
| 714 */ |
| 715 errors() { |
| 716 var result = 0; |
| 717 for (var consoleModel of this._consoleModels.values()) |
| 718 result += consoleModel.errors(); |
| 719 return result; |
| 720 } |
| 721 |
| 722 /** |
| 723 * @return {number} |
| 724 */ |
| 725 warnings() { |
| 726 var result = 0; |
| 727 for (var consoleModel of this._consoleModels.values()) |
| 728 result += consoleModel.warnings(); |
| 729 return result; |
| 730 } |
| 731 |
| 684 _consoleCleared() { | 732 _consoleCleared() { |
| 685 this.dispatchEventToListeners(SDK.ConsoleModel.Events.ConsoleCleared); | 733 this.dispatchEventToListeners(SDK.ConsoleModel.Events.ConsoleCleared); |
| 686 } | 734 } |
| 687 | 735 |
| 688 /** | 736 /** |
| 689 * @param {!Common.Event} event | 737 * @param {!Common.Event} event |
| 690 */ | 738 */ |
| 691 _consoleMessageAdded(event) { | 739 _consoleMessageAdded(event) { |
| 692 this.dispatchEventToListeners(SDK.ConsoleModel.Events.MessageAdded, event.da
ta); | 740 this.dispatchEventToListeners(SDK.ConsoleModel.Events.MessageAdded, event.da
ta); |
| 693 } | 741 } |
| 694 | 742 |
| 695 /** | 743 /** |
| 696 * @param {!Common.Event} event | 744 * @param {!Common.Event} event |
| 697 */ | 745 */ |
| 698 _consoleMessageUpdated(event) { | 746 _consoleMessageUpdated(event) { |
| 699 this.dispatchEventToListeners(SDK.ConsoleModel.Events.MessageUpdated, event.
data); | 747 this.dispatchEventToListeners(SDK.ConsoleModel.Events.MessageUpdated, event.
data); |
| 700 } | 748 } |
| 701 | 749 |
| 702 /** | 750 /** |
| 703 * @param {!Common.Event} event | 751 * @param {!Common.Event} event |
| 704 */ | 752 */ |
| 705 _commandEvaluated(event) { | 753 _commandEvaluated(event) { |
| 706 this.dispatchEventToListeners(SDK.ConsoleModel.Events.CommandEvaluated, even
t.data); | 754 this.dispatchEventToListeners(SDK.ConsoleModel.Events.CommandEvaluated, even
t.data); |
| 707 } | 755 } |
| 708 }; | 756 }; |
| 709 | 757 |
| 758 SDK.MultitargetConsoleModel._events = Symbol('SDK.MultitargetConsoleModel.events
'); |
| 759 |
| 710 /** | 760 /** |
| 711 * @type {!SDK.MultitargetConsoleModel} | 761 * @type {!SDK.MultitargetConsoleModel} |
| 712 */ | 762 */ |
| 713 SDK.multitargetConsoleModel; | 763 SDK.multitargetConsoleModel; |
| OLD | NEW |