| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2009 Joseph Pecoraro | 3 * Copyright (C) 2009 Joseph Pecoraro |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| 11 * 2. Redistributions in binary form must reproduce the above copyright | 11 * 2. Redistributions in binary form must reproduce the above copyright |
| 12 * notice, this list of conditions and the following disclaimer in the | 12 * notice, this list of conditions and the following disclaimer in the |
| 13 * documentation and/or other materials provided with the distribution. | 13 * documentation and/or other materials provided with the distribution. |
| 14 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of | 14 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of |
| 15 * its contributors may be used to endorse or promote products derived | 15 * its contributors may be used to endorse or promote products derived |
| 16 * from this software without specific prior written permission. | 16 * from this software without specific prior written permission. |
| 17 * | 17 * |
| 18 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY | 18 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY |
| 19 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 19 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY | 21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
| 22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 */ | 28 */ |
| 29 /** | 29 /** |
| 30 * @implements {WebInspector.Searchable} | 30 * @implements {UI.Searchable} |
| 31 * @implements {WebInspector.TargetManager.Observer} | 31 * @implements {SDK.TargetManager.Observer} |
| 32 * @implements {WebInspector.ViewportControl.Provider} | 32 * @implements {UI.ViewportControl.Provider} |
| 33 * @unrestricted | 33 * @unrestricted |
| 34 */ | 34 */ |
| 35 WebInspector.ConsoleView = class extends WebInspector.VBox { | 35 Console.ConsoleView = class extends UI.VBox { |
| 36 constructor() { | 36 constructor() { |
| 37 super(); | 37 super(); |
| 38 this.setMinimumSize(0, 35); | 38 this.setMinimumSize(0, 35); |
| 39 this.registerRequiredCSS('console/consoleView.css'); | 39 this.registerRequiredCSS('console/consoleView.css'); |
| 40 | 40 |
| 41 this._searchableView = new WebInspector.SearchableView(this); | 41 this._searchableView = new UI.SearchableView(this); |
| 42 this._searchableView.setPlaceholder(WebInspector.UIString('Find string in lo
gs')); | 42 this._searchableView.setPlaceholder(Common.UIString('Find string in logs')); |
| 43 this._searchableView.setMinimalSearchQuerySize(0); | 43 this._searchableView.setMinimalSearchQuerySize(0); |
| 44 this._searchableView.show(this.element); | 44 this._searchableView.show(this.element); |
| 45 | 45 |
| 46 this._contentsElement = this._searchableView.element; | 46 this._contentsElement = this._searchableView.element; |
| 47 this._contentsElement.classList.add('console-view'); | 47 this._contentsElement.classList.add('console-view'); |
| 48 /** @type {!Array.<!WebInspector.ConsoleViewMessage>} */ | 48 /** @type {!Array.<!Console.ConsoleViewMessage>} */ |
| 49 this._visibleViewMessages = []; | 49 this._visibleViewMessages = []; |
| 50 this._urlToMessageCount = {}; | 50 this._urlToMessageCount = {}; |
| 51 this._hiddenByFilterCount = 0; | 51 this._hiddenByFilterCount = 0; |
| 52 | 52 |
| 53 /** | 53 /** |
| 54 * @type {!Array.<!WebInspector.ConsoleView.RegexMatchRange>} | 54 * @type {!Array.<!Console.ConsoleView.RegexMatchRange>} |
| 55 */ | 55 */ |
| 56 this._regexMatchRanges = []; | 56 this._regexMatchRanges = []; |
| 57 | 57 |
| 58 this._executionContextComboBox = new WebInspector.ToolbarComboBox(null, 'con
sole-context'); | 58 this._executionContextComboBox = new UI.ToolbarComboBox(null, 'console-conte
xt'); |
| 59 this._executionContextComboBox.setMaxWidth(200); | 59 this._executionContextComboBox.setMaxWidth(200); |
| 60 this._consoleContextSelector = | 60 this._consoleContextSelector = |
| 61 new WebInspector.ConsoleContextSelector(this._executionContextComboBox.s
electElement()); | 61 new Console.ConsoleContextSelector(this._executionContextComboBox.select
Element()); |
| 62 | 62 |
| 63 this._filter = new WebInspector.ConsoleViewFilter(this); | 63 this._filter = new Console.ConsoleViewFilter(this); |
| 64 this._filter.addEventListener( | 64 this._filter.addEventListener( |
| 65 WebInspector.ConsoleViewFilter.Events.FilterChanged, this._updateMessage
List.bind(this)); | 65 Console.ConsoleViewFilter.Events.FilterChanged, this._updateMessageList.
bind(this)); |
| 66 | 66 |
| 67 this._filterBar = new WebInspector.FilterBar('consoleView'); | 67 this._filterBar = new UI.FilterBar('consoleView'); |
| 68 | 68 |
| 69 this._preserveLogCheckbox = new WebInspector.ToolbarCheckbox( | 69 this._preserveLogCheckbox = new UI.ToolbarCheckbox( |
| 70 WebInspector.UIString('Preserve log'), WebInspector.UIString('Do not cle
ar log on page reload / navigation'), | 70 Common.UIString('Preserve log'), Common.UIString('Do not clear log on pa
ge reload / navigation'), |
| 71 WebInspector.moduleSetting('preserveConsoleLog')); | 71 Common.moduleSetting('preserveConsoleLog')); |
| 72 this._progressToolbarItem = new WebInspector.ToolbarItem(createElement('div'
)); | 72 this._progressToolbarItem = new UI.ToolbarItem(createElement('div')); |
| 73 | 73 |
| 74 var toolbar = new WebInspector.Toolbar('', this._contentsElement); | 74 var toolbar = new UI.Toolbar('', this._contentsElement); |
| 75 toolbar.appendToolbarItem(WebInspector.Toolbar.createActionButton( | 75 toolbar.appendToolbarItem(UI.Toolbar.createActionButton( |
| 76 /** @type {!WebInspector.Action }*/ (WebInspector.actionRegistry.action(
'console.clear')))); | 76 /** @type {!UI.Action }*/ (UI.actionRegistry.action('console.clear')))); |
| 77 toolbar.appendToolbarItem(this._filterBar.filterButton()); | 77 toolbar.appendToolbarItem(this._filterBar.filterButton()); |
| 78 toolbar.appendToolbarItem(this._executionContextComboBox); | 78 toolbar.appendToolbarItem(this._executionContextComboBox); |
| 79 toolbar.appendToolbarItem(this._preserveLogCheckbox); | 79 toolbar.appendToolbarItem(this._preserveLogCheckbox); |
| 80 toolbar.appendToolbarItem(this._progressToolbarItem); | 80 toolbar.appendToolbarItem(this._progressToolbarItem); |
| 81 | 81 |
| 82 this._filterBar.show(this._contentsElement); | 82 this._filterBar.show(this._contentsElement); |
| 83 this._filter.addFilters(this._filterBar); | 83 this._filter.addFilters(this._filterBar); |
| 84 | 84 |
| 85 this._viewport = new WebInspector.ViewportControl(this); | 85 this._viewport = new UI.ViewportControl(this); |
| 86 this._viewport.setStickToBottom(true); | 86 this._viewport.setStickToBottom(true); |
| 87 this._viewport.contentElement().classList.add('console-group', 'console-grou
p-messages'); | 87 this._viewport.contentElement().classList.add('console-group', 'console-grou
p-messages'); |
| 88 this._contentsElement.appendChild(this._viewport.element); | 88 this._contentsElement.appendChild(this._viewport.element); |
| 89 this._messagesElement = this._viewport.element; | 89 this._messagesElement = this._viewport.element; |
| 90 this._messagesElement.id = 'console-messages'; | 90 this._messagesElement.id = 'console-messages'; |
| 91 this._messagesElement.classList.add('monospace'); | 91 this._messagesElement.classList.add('monospace'); |
| 92 this._messagesElement.addEventListener('click', this._messagesClicked.bind(t
his), true); | 92 this._messagesElement.addEventListener('click', this._messagesClicked.bind(t
his), true); |
| 93 | 93 |
| 94 this._viewportThrottler = new WebInspector.Throttler(50); | 94 this._viewportThrottler = new Common.Throttler(50); |
| 95 | 95 |
| 96 this._filterStatusMessageElement = createElementWithClass('div', 'console-me
ssage'); | 96 this._filterStatusMessageElement = createElementWithClass('div', 'console-me
ssage'); |
| 97 this._messagesElement.insertBefore(this._filterStatusMessageElement, this._m
essagesElement.firstChild); | 97 this._messagesElement.insertBefore(this._filterStatusMessageElement, this._m
essagesElement.firstChild); |
| 98 this._filterStatusTextElement = this._filterStatusMessageElement.createChild
('span', 'console-info'); | 98 this._filterStatusTextElement = this._filterStatusMessageElement.createChild
('span', 'console-info'); |
| 99 this._filterStatusMessageElement.createTextChild(' '); | 99 this._filterStatusMessageElement.createTextChild(' '); |
| 100 var resetFiltersLink = this._filterStatusMessageElement.createChild('span',
'console-info link'); | 100 var resetFiltersLink = this._filterStatusMessageElement.createChild('span',
'console-info link'); |
| 101 resetFiltersLink.textContent = WebInspector.UIString('Show all messages.'); | 101 resetFiltersLink.textContent = Common.UIString('Show all messages.'); |
| 102 resetFiltersLink.addEventListener('click', this._filter.reset.bind(this._fil
ter), true); | 102 resetFiltersLink.addEventListener('click', this._filter.reset.bind(this._fil
ter), true); |
| 103 | 103 |
| 104 this._topGroup = WebInspector.ConsoleGroup.createTopGroup(); | 104 this._topGroup = Console.ConsoleGroup.createTopGroup(); |
| 105 this._currentGroup = this._topGroup; | 105 this._currentGroup = this._topGroup; |
| 106 | 106 |
| 107 this._promptElement = this._messagesElement.createChild('div', 'source-code'
); | 107 this._promptElement = this._messagesElement.createChild('div', 'source-code'
); |
| 108 this._promptElement.id = 'console-prompt'; | 108 this._promptElement.id = 'console-prompt'; |
| 109 this._promptElement.addEventListener('input', this._promptInput.bind(this),
false); | 109 this._promptElement.addEventListener('input', this._promptInput.bind(this),
false); |
| 110 | 110 |
| 111 // FIXME: This is a workaround for the selection machinery bug. See crbug.co
m/410899 | 111 // FIXME: This is a workaround for the selection machinery bug. See crbug.co
m/410899 |
| 112 var selectAllFixer = this._messagesElement.createChild('div', 'console-view-
fix-select-all'); | 112 var selectAllFixer = this._messagesElement.createChild('div', 'console-view-
fix-select-all'); |
| 113 selectAllFixer.textContent = '.'; | 113 selectAllFixer.textContent = '.'; |
| 114 | 114 |
| 115 this._showAllMessagesCheckbox = new WebInspector.ToolbarCheckbox(WebInspecto
r.UIString('Show all messages')); | 115 this._showAllMessagesCheckbox = new UI.ToolbarCheckbox(Common.UIString('Show
all messages')); |
| 116 this._showAllMessagesCheckbox.inputElement.checked = true; | 116 this._showAllMessagesCheckbox.inputElement.checked = true; |
| 117 this._showAllMessagesCheckbox.inputElement.addEventListener('change', this._
updateMessageList.bind(this), false); | 117 this._showAllMessagesCheckbox.inputElement.addEventListener('change', this._
updateMessageList.bind(this), false); |
| 118 | 118 |
| 119 this._showAllMessagesCheckbox.element.classList.add('hidden'); | 119 this._showAllMessagesCheckbox.element.classList.add('hidden'); |
| 120 | 120 |
| 121 toolbar.appendToolbarItem(this._showAllMessagesCheckbox); | 121 toolbar.appendToolbarItem(this._showAllMessagesCheckbox); |
| 122 | 122 |
| 123 this._registerShortcuts(); | 123 this._registerShortcuts(); |
| 124 | 124 |
| 125 this._messagesElement.addEventListener('contextmenu', this._handleContextMen
uEvent.bind(this), false); | 125 this._messagesElement.addEventListener('contextmenu', this._handleContextMen
uEvent.bind(this), false); |
| 126 WebInspector.moduleSetting('monitoringXHREnabled') | 126 Common.moduleSetting('monitoringXHREnabled') |
| 127 .addChangeListener(this._monitoringXHREnabledSettingChanged, this); | 127 .addChangeListener(this._monitoringXHREnabledSettingChanged, this); |
| 128 | 128 |
| 129 this._linkifier = new WebInspector.Linkifier(); | 129 this._linkifier = new Components.Linkifier(); |
| 130 | 130 |
| 131 /** @type {!Array.<!WebInspector.ConsoleViewMessage>} */ | 131 /** @type {!Array.<!Console.ConsoleViewMessage>} */ |
| 132 this._consoleMessages = []; | 132 this._consoleMessages = []; |
| 133 this._viewMessageSymbol = Symbol('viewMessage'); | 133 this._viewMessageSymbol = Symbol('viewMessage'); |
| 134 | 134 |
| 135 this._consoleHistorySetting = WebInspector.settings.createLocalSetting('cons
oleHistory', []); | 135 this._consoleHistorySetting = Common.settings.createLocalSetting('consoleHis
tory', []); |
| 136 | 136 |
| 137 this._prompt = new WebInspector.ConsolePrompt(); | 137 this._prompt = new Console.ConsolePrompt(); |
| 138 this._prompt.show(this._promptElement); | 138 this._prompt.show(this._promptElement); |
| 139 this._prompt.element.addEventListener('keydown', this._promptKeyDown.bind(th
is), true); | 139 this._prompt.element.addEventListener('keydown', this._promptKeyDown.bind(th
is), true); |
| 140 | 140 |
| 141 this._consoleHistoryAutocompleteSetting = WebInspector.moduleSetting('consol
eHistoryAutocomplete'); | 141 this._consoleHistoryAutocompleteSetting = Common.moduleSetting('consoleHisto
ryAutocomplete'); |
| 142 this._consoleHistoryAutocompleteSetting.addChangeListener(this._consoleHisto
ryAutocompleteChanged, this); | 142 this._consoleHistoryAutocompleteSetting.addChangeListener(this._consoleHisto
ryAutocompleteChanged, this); |
| 143 | 143 |
| 144 var historyData = this._consoleHistorySetting.get(); | 144 var historyData = this._consoleHistorySetting.get(); |
| 145 this._prompt.history().setHistoryData(historyData); | 145 this._prompt.history().setHistoryData(historyData); |
| 146 this._consoleHistoryAutocompleteChanged(); | 146 this._consoleHistoryAutocompleteChanged(); |
| 147 | 147 |
| 148 this._updateFilterStatus(); | 148 this._updateFilterStatus(); |
| 149 WebInspector.moduleSetting('consoleTimestampsEnabled') | 149 Common.moduleSetting('consoleTimestampsEnabled') |
| 150 .addChangeListener(this._consoleTimestampsSettingChanged, this); | 150 .addChangeListener(this._consoleTimestampsSettingChanged, this); |
| 151 | 151 |
| 152 this._registerWithMessageSink(); | 152 this._registerWithMessageSink(); |
| 153 WebInspector.targetManager.observeTargets(this); | 153 SDK.targetManager.observeTargets(this); |
| 154 | 154 |
| 155 this._initConsoleMessages(); | 155 this._initConsoleMessages(); |
| 156 | 156 |
| 157 WebInspector.context.addFlavorChangeListener(WebInspector.ExecutionContext,
this._executionContextChanged, this); | 157 UI.context.addFlavorChangeListener(SDK.ExecutionContext, this._executionCont
extChanged, this); |
| 158 | 158 |
| 159 this._messagesElement.addEventListener('mousedown', this._updateStickToBotto
mOnMouseDown.bind(this), false); | 159 this._messagesElement.addEventListener('mousedown', this._updateStickToBotto
mOnMouseDown.bind(this), false); |
| 160 this._messagesElement.addEventListener('mouseup', this._updateStickToBottomO
nMouseUp.bind(this), false); | 160 this._messagesElement.addEventListener('mouseup', this._updateStickToBottomO
nMouseUp.bind(this), false); |
| 161 this._messagesElement.addEventListener('mouseleave', this._updateStickToBott
omOnMouseUp.bind(this), false); | 161 this._messagesElement.addEventListener('mouseleave', this._updateStickToBott
omOnMouseUp.bind(this), false); |
| 162 this._messagesElement.addEventListener('wheel', this._updateStickToBottomOnW
heel.bind(this), false); | 162 this._messagesElement.addEventListener('wheel', this._updateStickToBottomOnW
heel.bind(this), false); |
| 163 } | 163 } |
| 164 | 164 |
| 165 /** | 165 /** |
| 166 * @return {!WebInspector.ConsoleView} | 166 * @return {!Console.ConsoleView} |
| 167 */ | 167 */ |
| 168 static instance() { | 168 static instance() { |
| 169 if (!WebInspector.ConsoleView._instance) | 169 if (!Console.ConsoleView._instance) |
| 170 WebInspector.ConsoleView._instance = new WebInspector.ConsoleView(); | 170 Console.ConsoleView._instance = new Console.ConsoleView(); |
| 171 return WebInspector.ConsoleView._instance; | 171 return Console.ConsoleView._instance; |
| 172 } | 172 } |
| 173 | 173 |
| 174 static clearConsole() { | 174 static clearConsole() { |
| 175 for (var target of WebInspector.targetManager.targets()) { | 175 for (var target of SDK.targetManager.targets()) { |
| 176 target.runtimeModel.discardConsoleEntries(); | 176 target.runtimeModel.discardConsoleEntries(); |
| 177 target.consoleModel.requestClearMessages(); | 177 target.consoleModel.requestClearMessages(); |
| 178 } | 178 } |
| 179 } | 179 } |
| 180 | 180 |
| 181 /** | 181 /** |
| 182 * @return {!WebInspector.SearchableView} | 182 * @return {!UI.SearchableView} |
| 183 */ | 183 */ |
| 184 searchableView() { | 184 searchableView() { |
| 185 return this._searchableView; | 185 return this._searchableView; |
| 186 } | 186 } |
| 187 | 187 |
| 188 _clearHistory() { | 188 _clearHistory() { |
| 189 this._consoleHistorySetting.set([]); | 189 this._consoleHistorySetting.set([]); |
| 190 this._prompt.history().setHistoryData([]); | 190 this._prompt.history().setHistoryData([]); |
| 191 } | 191 } |
| 192 | 192 |
| 193 _consoleHistoryAutocompleteChanged() { | 193 _consoleHistoryAutocompleteChanged() { |
| 194 this._prompt.setAddCompletionsFromHistory(this._consoleHistoryAutocompleteSe
tting.get()); | 194 this._prompt.setAddCompletionsFromHistory(this._consoleHistoryAutocompleteSe
tting.get()); |
| 195 } | 195 } |
| 196 | 196 |
| 197 _initConsoleMessages() { | 197 _initConsoleMessages() { |
| 198 var mainTarget = WebInspector.targetManager.mainTarget(); | 198 var mainTarget = SDK.targetManager.mainTarget(); |
| 199 var resourceTreeModel = mainTarget && WebInspector.ResourceTreeModel.fromTar
get(mainTarget); | 199 var resourceTreeModel = mainTarget && SDK.ResourceTreeModel.fromTarget(mainT
arget); |
| 200 var resourcesLoaded = !resourceTreeModel || resourceTreeModel.cachedResource
sLoaded(); | 200 var resourcesLoaded = !resourceTreeModel || resourceTreeModel.cachedResource
sLoaded(); |
| 201 if (!mainTarget || !resourcesLoaded) { | 201 if (!mainTarget || !resourcesLoaded) { |
| 202 WebInspector.targetManager.addModelListener( | 202 SDK.targetManager.addModelListener( |
| 203 WebInspector.ResourceTreeModel, WebInspector.ResourceTreeModel.Events.
CachedResourcesLoaded, | 203 SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.CachedResourcesLoa
ded, |
| 204 this._onResourceTreeModelLoaded, this); | 204 this._onResourceTreeModelLoaded, this); |
| 205 return; | 205 return; |
| 206 } | 206 } |
| 207 this._fetchMultitargetMessages(); | 207 this._fetchMultitargetMessages(); |
| 208 } | 208 } |
| 209 | 209 |
| 210 /** | 210 /** |
| 211 * @param {!WebInspector.Event} event | 211 * @param {!Common.Event} event |
| 212 */ | 212 */ |
| 213 _onResourceTreeModelLoaded(event) { | 213 _onResourceTreeModelLoaded(event) { |
| 214 var resourceTreeModel = event.target; | 214 var resourceTreeModel = event.target; |
| 215 if (resourceTreeModel.target() !== WebInspector.targetManager.mainTarget()) | 215 if (resourceTreeModel.target() !== SDK.targetManager.mainTarget()) |
| 216 return; | 216 return; |
| 217 WebInspector.targetManager.removeModelListener( | 217 SDK.targetManager.removeModelListener( |
| 218 WebInspector.ResourceTreeModel, WebInspector.ResourceTreeModel.Events.Ca
chedResourcesLoaded, | 218 SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.CachedResourcesLoade
d, |
| 219 this._onResourceTreeModelLoaded, this); | 219 this._onResourceTreeModelLoaded, this); |
| 220 this._fetchMultitargetMessages(); | 220 this._fetchMultitargetMessages(); |
| 221 } | 221 } |
| 222 | 222 |
| 223 _fetchMultitargetMessages() { | 223 _fetchMultitargetMessages() { |
| 224 WebInspector.multitargetConsoleModel.addEventListener( | 224 SDK.multitargetConsoleModel.addEventListener( |
| 225 WebInspector.ConsoleModel.Events.ConsoleCleared, this._consoleCleared, t
his); | 225 SDK.ConsoleModel.Events.ConsoleCleared, this._consoleCleared, this); |
| 226 WebInspector.multitargetConsoleModel.addEventListener( | 226 SDK.multitargetConsoleModel.addEventListener( |
| 227 WebInspector.ConsoleModel.Events.MessageAdded, this._onConsoleMessageAdd
ed, this); | 227 SDK.ConsoleModel.Events.MessageAdded, this._onConsoleMessageAdded, this)
; |
| 228 WebInspector.multitargetConsoleModel.addEventListener( | 228 SDK.multitargetConsoleModel.addEventListener( |
| 229 WebInspector.ConsoleModel.Events.MessageUpdated, this._onConsoleMessageU
pdated, this); | 229 SDK.ConsoleModel.Events.MessageUpdated, this._onConsoleMessageUpdated, t
his); |
| 230 WebInspector.multitargetConsoleModel.addEventListener( | 230 SDK.multitargetConsoleModel.addEventListener( |
| 231 WebInspector.ConsoleModel.Events.CommandEvaluated, this._commandEvaluate
d, this); | 231 SDK.ConsoleModel.Events.CommandEvaluated, this._commandEvaluated, this); |
| 232 WebInspector.multitargetConsoleModel.messages().forEach(this._addConsoleMess
age, this); | 232 SDK.multitargetConsoleModel.messages().forEach(this._addConsoleMessage, this
); |
| 233 this._viewport.invalidate(); | 233 this._viewport.invalidate(); |
| 234 } | 234 } |
| 235 | 235 |
| 236 /** | 236 /** |
| 237 * @override | 237 * @override |
| 238 * @return {number} | 238 * @return {number} |
| 239 */ | 239 */ |
| 240 itemCount() { | 240 itemCount() { |
| 241 return this._visibleViewMessages.length; | 241 return this._visibleViewMessages.length; |
| 242 } | 242 } |
| 243 | 243 |
| 244 /** | 244 /** |
| 245 * @override | 245 * @override |
| 246 * @param {number} index | 246 * @param {number} index |
| 247 * @return {?WebInspector.ViewportElement} | 247 * @return {?UI.ViewportElement} |
| 248 */ | 248 */ |
| 249 itemElement(index) { | 249 itemElement(index) { |
| 250 return this._visibleViewMessages[index]; | 250 return this._visibleViewMessages[index]; |
| 251 } | 251 } |
| 252 | 252 |
| 253 /** | 253 /** |
| 254 * @override | 254 * @override |
| 255 * @param {number} index | 255 * @param {number} index |
| 256 * @return {number} | 256 * @return {number} |
| 257 */ | 257 */ |
| 258 fastHeight(index) { | 258 fastHeight(index) { |
| 259 return this._visibleViewMessages[index].fastHeight(); | 259 return this._visibleViewMessages[index].fastHeight(); |
| 260 } | 260 } |
| 261 | 261 |
| 262 /** | 262 /** |
| 263 * @override | 263 * @override |
| 264 * @return {number} | 264 * @return {number} |
| 265 */ | 265 */ |
| 266 minimumRowHeight() { | 266 minimumRowHeight() { |
| 267 return 16; | 267 return 16; |
| 268 } | 268 } |
| 269 | 269 |
| 270 /** | 270 /** |
| 271 * @override | 271 * @override |
| 272 * @param {!WebInspector.Target} target | 272 * @param {!SDK.Target} target |
| 273 */ | 273 */ |
| 274 targetAdded(target) { | 274 targetAdded(target) { |
| 275 this._viewport.invalidate(); | 275 this._viewport.invalidate(); |
| 276 this._updateAllMessagesCheckbox(); | 276 this._updateAllMessagesCheckbox(); |
| 277 } | 277 } |
| 278 | 278 |
| 279 /** | 279 /** |
| 280 * @override | 280 * @override |
| 281 * @param {!WebInspector.Target} target | 281 * @param {!SDK.Target} target |
| 282 */ | 282 */ |
| 283 targetRemoved(target) { | 283 targetRemoved(target) { |
| 284 this._updateAllMessagesCheckbox(); | 284 this._updateAllMessagesCheckbox(); |
| 285 } | 285 } |
| 286 | 286 |
| 287 _updateAllMessagesCheckbox() { | 287 _updateAllMessagesCheckbox() { |
| 288 var hasMultipleCotexts = WebInspector.targetManager.targets(WebInspector.Tar
get.Capability.JS).length > 1; | 288 var hasMultipleCotexts = SDK.targetManager.targets(SDK.Target.Capability.JS)
.length > 1; |
| 289 this._showAllMessagesCheckbox.element.classList.toggle('hidden', !hasMultipl
eCotexts); | 289 this._showAllMessagesCheckbox.element.classList.toggle('hidden', !hasMultipl
eCotexts); |
| 290 } | 290 } |
| 291 | 291 |
| 292 _registerWithMessageSink() { | 292 _registerWithMessageSink() { |
| 293 WebInspector.console.messages().forEach(this._addSinkMessage, this); | 293 Common.console.messages().forEach(this._addSinkMessage, this); |
| 294 WebInspector.console.addEventListener(WebInspector.Console.Events.MessageAdd
ed, messageAdded, this); | 294 Common.console.addEventListener(Common.Console.Events.MessageAdded, messageA
dded, this); |
| 295 | 295 |
| 296 /** | 296 /** |
| 297 * @param {!WebInspector.Event} event | 297 * @param {!Common.Event} event |
| 298 * @this {WebInspector.ConsoleView} | 298 * @this {Console.ConsoleView} |
| 299 */ | 299 */ |
| 300 function messageAdded(event) { | 300 function messageAdded(event) { |
| 301 this._addSinkMessage(/** @type {!WebInspector.Console.Message} */ (event.d
ata)); | 301 this._addSinkMessage(/** @type {!Common.Console.Message} */ (event.data)); |
| 302 } | 302 } |
| 303 } | 303 } |
| 304 | 304 |
| 305 /** | 305 /** |
| 306 * @param {!WebInspector.Console.Message} message | 306 * @param {!Common.Console.Message} message |
| 307 */ | 307 */ |
| 308 _addSinkMessage(message) { | 308 _addSinkMessage(message) { |
| 309 var level = WebInspector.ConsoleMessage.MessageLevel.Debug; | 309 var level = SDK.ConsoleMessage.MessageLevel.Debug; |
| 310 switch (message.level) { | 310 switch (message.level) { |
| 311 case WebInspector.Console.MessageLevel.Error: | 311 case Common.Console.MessageLevel.Error: |
| 312 level = WebInspector.ConsoleMessage.MessageLevel.Error; | 312 level = SDK.ConsoleMessage.MessageLevel.Error; |
| 313 break; | 313 break; |
| 314 case WebInspector.Console.MessageLevel.Warning: | 314 case Common.Console.MessageLevel.Warning: |
| 315 level = WebInspector.ConsoleMessage.MessageLevel.Warning; | 315 level = SDK.ConsoleMessage.MessageLevel.Warning; |
| 316 break; | 316 break; |
| 317 } | 317 } |
| 318 | 318 |
| 319 var consoleMessage = new WebInspector.ConsoleMessage( | 319 var consoleMessage = new SDK.ConsoleMessage( |
| 320 null, WebInspector.ConsoleMessage.MessageSource.Other, level, message.te
xt, undefined, undefined, undefined, | 320 null, SDK.ConsoleMessage.MessageSource.Other, level, message.text, undef
ined, undefined, undefined, |
| 321 undefined, undefined, undefined, undefined, message.timestamp); | 321 undefined, undefined, undefined, undefined, message.timestamp); |
| 322 this._addConsoleMessage(consoleMessage); | 322 this._addConsoleMessage(consoleMessage); |
| 323 } | 323 } |
| 324 | 324 |
| 325 /** | 325 /** |
| 326 * @param {!WebInspector.Event} event | 326 * @param {!Common.Event} event |
| 327 */ | 327 */ |
| 328 _consoleTimestampsSettingChanged(event) { | 328 _consoleTimestampsSettingChanged(event) { |
| 329 var enabled = /** @type {boolean} */ (event.data); | 329 var enabled = /** @type {boolean} */ (event.data); |
| 330 this._updateMessageList(); | 330 this._updateMessageList(); |
| 331 this._consoleMessages.forEach(function(viewMessage) { | 331 this._consoleMessages.forEach(function(viewMessage) { |
| 332 viewMessage.updateTimestamp(enabled); | 332 viewMessage.updateTimestamp(enabled); |
| 333 }); | 333 }); |
| 334 } | 334 } |
| 335 | 335 |
| 336 _executionContextChanged() { | 336 _executionContextChanged() { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 for (var i = 0; i < this._visibleViewMessages.length; ++i) | 386 for (var i = 0; i < this._visibleViewMessages.length; ++i) |
| 387 this._visibleViewMessages[i].onResize(); | 387 this._visibleViewMessages[i].onResize(); |
| 388 } | 388 } |
| 389 | 389 |
| 390 _hidePromptSuggestBox() { | 390 _hidePromptSuggestBox() { |
| 391 this._prompt.clearAutocomplete(); | 391 this._prompt.clearAutocomplete(); |
| 392 } | 392 } |
| 393 | 393 |
| 394 _scheduleViewportRefresh() { | 394 _scheduleViewportRefresh() { |
| 395 /** | 395 /** |
| 396 * @this {WebInspector.ConsoleView} | 396 * @this {Console.ConsoleView} |
| 397 * @return {!Promise.<undefined>} | 397 * @return {!Promise.<undefined>} |
| 398 */ | 398 */ |
| 399 function invalidateViewport() { | 399 function invalidateViewport() { |
| 400 if (this._muteViewportUpdates) { | 400 if (this._muteViewportUpdates) { |
| 401 this._maybeDirtyWhileMuted = true; | 401 this._maybeDirtyWhileMuted = true; |
| 402 return Promise.resolve(); | 402 return Promise.resolve(); |
| 403 } | 403 } |
| 404 if (this._needsFullUpdate) { | 404 if (this._needsFullUpdate) { |
| 405 this._updateMessageList(); | 405 this._updateMessageList(); |
| 406 delete this._needsFullUpdate; | 406 delete this._needsFullUpdate; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 426 // This functions is sniffed in tests. | 426 // This functions is sniffed in tests. |
| 427 } | 427 } |
| 428 | 428 |
| 429 _immediatelyScrollToBottom() { | 429 _immediatelyScrollToBottom() { |
| 430 // This will scroll viewport and trigger its refresh. | 430 // This will scroll viewport and trigger its refresh. |
| 431 this._viewport.setStickToBottom(true); | 431 this._viewport.setStickToBottom(true); |
| 432 this._promptElement.scrollIntoView(true); | 432 this._promptElement.scrollIntoView(true); |
| 433 } | 433 } |
| 434 | 434 |
| 435 _updateFilterStatus() { | 435 _updateFilterStatus() { |
| 436 this._filterStatusTextElement.textContent = WebInspector.UIString( | 436 this._filterStatusTextElement.textContent = Common.UIString( |
| 437 this._hiddenByFilterCount === 1 ? '%d message is hidden by filters.' : '
%d messages are hidden by filters.', | 437 this._hiddenByFilterCount === 1 ? '%d message is hidden by filters.' : '
%d messages are hidden by filters.', |
| 438 this._hiddenByFilterCount); | 438 this._hiddenByFilterCount); |
| 439 this._filterStatusMessageElement.style.display = this._hiddenByFilterCount ?
'' : 'none'; | 439 this._filterStatusMessageElement.style.display = this._hiddenByFilterCount ?
'' : 'none'; |
| 440 } | 440 } |
| 441 | 441 |
| 442 /** | 442 /** |
| 443 * @param {!WebInspector.Event} event | 443 * @param {!Common.Event} event |
| 444 */ | 444 */ |
| 445 _onConsoleMessageAdded(event) { | 445 _onConsoleMessageAdded(event) { |
| 446 var message = /** @type {!WebInspector.ConsoleMessage} */ (event.data); | 446 var message = /** @type {!SDK.ConsoleMessage} */ (event.data); |
| 447 this._addConsoleMessage(message); | 447 this._addConsoleMessage(message); |
| 448 } | 448 } |
| 449 | 449 |
| 450 /** | 450 /** |
| 451 * @param {!WebInspector.ConsoleMessage} message | 451 * @param {!SDK.ConsoleMessage} message |
| 452 */ | 452 */ |
| 453 _addConsoleMessage(message) { | 453 _addConsoleMessage(message) { |
| 454 /** | 454 /** |
| 455 * @param {!WebInspector.ConsoleViewMessage} viewMessage1 | 455 * @param {!Console.ConsoleViewMessage} viewMessage1 |
| 456 * @param {!WebInspector.ConsoleViewMessage} viewMessage2 | 456 * @param {!Console.ConsoleViewMessage} viewMessage2 |
| 457 * @return {number} | 457 * @return {number} |
| 458 */ | 458 */ |
| 459 function compareTimestamps(viewMessage1, viewMessage2) { | 459 function compareTimestamps(viewMessage1, viewMessage2) { |
| 460 return WebInspector.ConsoleMessage.timestampComparator( | 460 return SDK.ConsoleMessage.timestampComparator( |
| 461 viewMessage1.consoleMessage(), viewMessage2.consoleMessage()); | 461 viewMessage1.consoleMessage(), viewMessage2.consoleMessage()); |
| 462 } | 462 } |
| 463 | 463 |
| 464 if (message.type === WebInspector.ConsoleMessage.MessageType.Command || | 464 if (message.type === SDK.ConsoleMessage.MessageType.Command || |
| 465 message.type === WebInspector.ConsoleMessage.MessageType.Result) | 465 message.type === SDK.ConsoleMessage.MessageType.Result) |
| 466 message.timestamp = | 466 message.timestamp = |
| 467 this._consoleMessages.length ? this._consoleMessages.peekLast().consol
eMessage().timestamp : 0; | 467 this._consoleMessages.length ? this._consoleMessages.peekLast().consol
eMessage().timestamp : 0; |
| 468 var viewMessage = this._createViewMessage(message); | 468 var viewMessage = this._createViewMessage(message); |
| 469 message[this._viewMessageSymbol] = viewMessage; | 469 message[this._viewMessageSymbol] = viewMessage; |
| 470 var insertAt = this._consoleMessages.upperBound(viewMessage, compareTimestam
ps); | 470 var insertAt = this._consoleMessages.upperBound(viewMessage, compareTimestam
ps); |
| 471 var insertedInMiddle = insertAt < this._consoleMessages.length; | 471 var insertedInMiddle = insertAt < this._consoleMessages.length; |
| 472 this._consoleMessages.splice(insertAt, 0, viewMessage); | 472 this._consoleMessages.splice(insertAt, 0, viewMessage); |
| 473 | 473 |
| 474 if (this._urlToMessageCount[message.url]) | 474 if (this._urlToMessageCount[message.url]) |
| 475 ++this._urlToMessageCount[message.url]; | 475 ++this._urlToMessageCount[message.url]; |
| 476 else | 476 else |
| 477 this._urlToMessageCount[message.url] = 1; | 477 this._urlToMessageCount[message.url] = 1; |
| 478 | 478 |
| 479 if (!insertedInMiddle) { | 479 if (!insertedInMiddle) { |
| 480 this._appendMessageToEnd(viewMessage); | 480 this._appendMessageToEnd(viewMessage); |
| 481 this._updateFilterStatus(); | 481 this._updateFilterStatus(); |
| 482 this._searchableView.updateSearchMatchesCount(this._regexMatchRanges.lengt
h); | 482 this._searchableView.updateSearchMatchesCount(this._regexMatchRanges.lengt
h); |
| 483 } else { | 483 } else { |
| 484 this._needsFullUpdate = true; | 484 this._needsFullUpdate = true; |
| 485 } | 485 } |
| 486 | 486 |
| 487 this._scheduleViewportRefresh(); | 487 this._scheduleViewportRefresh(); |
| 488 this._consoleMessageAddedForTest(viewMessage); | 488 this._consoleMessageAddedForTest(viewMessage); |
| 489 } | 489 } |
| 490 | 490 |
| 491 /** | 491 /** |
| 492 * @param {!WebInspector.Event} event | 492 * @param {!Common.Event} event |
| 493 */ | 493 */ |
| 494 _onConsoleMessageUpdated(event) { | 494 _onConsoleMessageUpdated(event) { |
| 495 var message = /** @type {!WebInspector.ConsoleMessage} */ (event.data); | 495 var message = /** @type {!SDK.ConsoleMessage} */ (event.data); |
| 496 var viewMessage = message[this._viewMessageSymbol]; | 496 var viewMessage = message[this._viewMessageSymbol]; |
| 497 if (viewMessage) { | 497 if (viewMessage) { |
| 498 viewMessage.updateMessageElement(); | 498 viewMessage.updateMessageElement(); |
| 499 this._updateMessageList(); | 499 this._updateMessageList(); |
| 500 } | 500 } |
| 501 } | 501 } |
| 502 | 502 |
| 503 /** | 503 /** |
| 504 * @param {!WebInspector.ConsoleViewMessage} viewMessage | 504 * @param {!Console.ConsoleViewMessage} viewMessage |
| 505 */ | 505 */ |
| 506 _consoleMessageAddedForTest(viewMessage) { | 506 _consoleMessageAddedForTest(viewMessage) { |
| 507 } | 507 } |
| 508 | 508 |
| 509 /** | 509 /** |
| 510 * @param {!WebInspector.ConsoleViewMessage} viewMessage | 510 * @param {!Console.ConsoleViewMessage} viewMessage |
| 511 */ | 511 */ |
| 512 _appendMessageToEnd(viewMessage) { | 512 _appendMessageToEnd(viewMessage) { |
| 513 if (!this._filter.shouldBeVisible(viewMessage)) { | 513 if (!this._filter.shouldBeVisible(viewMessage)) { |
| 514 if (this._filter.shouldBeVisibleByDefault(viewMessage)) | 514 if (this._filter.shouldBeVisibleByDefault(viewMessage)) |
| 515 this._hiddenByFilterCount++; | 515 this._hiddenByFilterCount++; |
| 516 return; | 516 return; |
| 517 } | 517 } |
| 518 | 518 |
| 519 if (this._tryToCollapseMessages(viewMessage, this._visibleViewMessages.peekL
ast())) | 519 if (this._tryToCollapseMessages(viewMessage, this._visibleViewMessages.peekL
ast())) |
| 520 return; | 520 return; |
| 521 | 521 |
| 522 var lastMessage = this._visibleViewMessages.peekLast(); | 522 var lastMessage = this._visibleViewMessages.peekLast(); |
| 523 if (viewMessage.consoleMessage().type === WebInspector.ConsoleMessage.Messag
eType.EndGroup) { | 523 if (viewMessage.consoleMessage().type === SDK.ConsoleMessage.MessageType.End
Group) { |
| 524 if (lastMessage && !this._currentGroup.messagesHidden()) | 524 if (lastMessage && !this._currentGroup.messagesHidden()) |
| 525 lastMessage.incrementCloseGroupDecorationCount(); | 525 lastMessage.incrementCloseGroupDecorationCount(); |
| 526 this._currentGroup = this._currentGroup.parentGroup(); | 526 this._currentGroup = this._currentGroup.parentGroup(); |
| 527 return; | 527 return; |
| 528 } | 528 } |
| 529 if (!this._currentGroup.messagesHidden()) { | 529 if (!this._currentGroup.messagesHidden()) { |
| 530 var originatingMessage = viewMessage.consoleMessage().originatingMessage()
; | 530 var originatingMessage = viewMessage.consoleMessage().originatingMessage()
; |
| 531 if (lastMessage && originatingMessage && lastMessage.consoleMessage() ===
originatingMessage) | 531 if (lastMessage && originatingMessage && lastMessage.consoleMessage() ===
originatingMessage) |
| 532 lastMessage.toMessageElement().classList.add('console-adjacent-user-comm
and-result'); | 532 lastMessage.toMessageElement().classList.add('console-adjacent-user-comm
and-result'); |
| 533 | 533 |
| 534 this._visibleViewMessages.push(viewMessage); | 534 this._visibleViewMessages.push(viewMessage); |
| 535 this._searchMessage(this._visibleViewMessages.length - 1); | 535 this._searchMessage(this._visibleViewMessages.length - 1); |
| 536 } | 536 } |
| 537 | 537 |
| 538 if (viewMessage.consoleMessage().isGroupStartMessage()) | 538 if (viewMessage.consoleMessage().isGroupStartMessage()) |
| 539 this._currentGroup = new WebInspector.ConsoleGroup(this._currentGroup, vie
wMessage); | 539 this._currentGroup = new Console.ConsoleGroup(this._currentGroup, viewMess
age); |
| 540 | 540 |
| 541 this._messageAppendedForTests(); | 541 this._messageAppendedForTests(); |
| 542 } | 542 } |
| 543 | 543 |
| 544 _messageAppendedForTests() { | 544 _messageAppendedForTests() { |
| 545 // This method is sniffed in tests. | 545 // This method is sniffed in tests. |
| 546 } | 546 } |
| 547 | 547 |
| 548 /** | 548 /** |
| 549 * @param {!WebInspector.ConsoleMessage} message | 549 * @param {!SDK.ConsoleMessage} message |
| 550 * @return {!WebInspector.ConsoleViewMessage} | 550 * @return {!Console.ConsoleViewMessage} |
| 551 */ | 551 */ |
| 552 _createViewMessage(message) { | 552 _createViewMessage(message) { |
| 553 var nestingLevel = this._currentGroup.nestingLevel(); | 553 var nestingLevel = this._currentGroup.nestingLevel(); |
| 554 switch (message.type) { | 554 switch (message.type) { |
| 555 case WebInspector.ConsoleMessage.MessageType.Command: | 555 case SDK.ConsoleMessage.MessageType.Command: |
| 556 return new WebInspector.ConsoleCommand(message, this._linkifier, nesting
Level); | 556 return new Console.ConsoleCommand(message, this._linkifier, nestingLevel
); |
| 557 case WebInspector.ConsoleMessage.MessageType.Result: | 557 case SDK.ConsoleMessage.MessageType.Result: |
| 558 return new WebInspector.ConsoleCommandResult(message, this._linkifier, n
estingLevel); | 558 return new Console.ConsoleCommandResult(message, this._linkifier, nestin
gLevel); |
| 559 case WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed: | 559 case SDK.ConsoleMessage.MessageType.StartGroupCollapsed: |
| 560 case WebInspector.ConsoleMessage.MessageType.StartGroup: | 560 case SDK.ConsoleMessage.MessageType.StartGroup: |
| 561 return new WebInspector.ConsoleGroupViewMessage(message, this._linkifier
, nestingLevel); | 561 return new Console.ConsoleGroupViewMessage(message, this._linkifier, nes
tingLevel); |
| 562 default: | 562 default: |
| 563 return new WebInspector.ConsoleViewMessage(message, this._linkifier, nes
tingLevel); | 563 return new Console.ConsoleViewMessage(message, this._linkifier, nestingL
evel); |
| 564 } | 564 } |
| 565 } | 565 } |
| 566 | 566 |
| 567 _consoleCleared() { | 567 _consoleCleared() { |
| 568 this._currentMatchRangeIndex = -1; | 568 this._currentMatchRangeIndex = -1; |
| 569 this._consoleMessages = []; | 569 this._consoleMessages = []; |
| 570 this._updateMessageList(); | 570 this._updateMessageList(); |
| 571 this._hidePromptSuggestBox(); | 571 this._hidePromptSuggestBox(); |
| 572 this._viewport.setStickToBottom(true); | 572 this._viewport.setStickToBottom(true); |
| 573 this._linkifier.reset(); | 573 this._linkifier.reset(); |
| 574 } | 574 } |
| 575 | 575 |
| 576 _handleContextMenuEvent(event) { | 576 _handleContextMenuEvent(event) { |
| 577 if (event.target.enclosingNodeOrSelfWithNodeName('a')) | 577 if (event.target.enclosingNodeOrSelfWithNodeName('a')) |
| 578 return; | 578 return; |
| 579 | 579 |
| 580 var contextMenu = new WebInspector.ContextMenu(event); | 580 var contextMenu = new UI.ContextMenu(event); |
| 581 if (event.target.isSelfOrDescendant(this._promptElement)) { | 581 if (event.target.isSelfOrDescendant(this._promptElement)) { |
| 582 contextMenu.show(); | 582 contextMenu.show(); |
| 583 return; | 583 return; |
| 584 } | 584 } |
| 585 | 585 |
| 586 function monitoringXHRItemAction() { | 586 function monitoringXHRItemAction() { |
| 587 WebInspector.moduleSetting('monitoringXHREnabled').set(!WebInspector.modul
eSetting('monitoringXHREnabled').get()); | 587 Common.moduleSetting('monitoringXHREnabled').set(!Common.moduleSetting('mo
nitoringXHREnabled').get()); |
| 588 } | 588 } |
| 589 contextMenu.appendCheckboxItem( | 589 contextMenu.appendCheckboxItem( |
| 590 WebInspector.UIString('Log XMLHttpRequests'), monitoringXHRItemAction, | 590 Common.UIString('Log XMLHttpRequests'), monitoringXHRItemAction, |
| 591 WebInspector.moduleSetting('monitoringXHREnabled').get()); | 591 Common.moduleSetting('monitoringXHREnabled').get()); |
| 592 | 592 |
| 593 var sourceElement = event.target.enclosingNodeOrSelfWithClass('console-messa
ge-wrapper'); | 593 var sourceElement = event.target.enclosingNodeOrSelfWithClass('console-messa
ge-wrapper'); |
| 594 var consoleMessage = sourceElement ? sourceElement.message.consoleMessage()
: null; | 594 var consoleMessage = sourceElement ? sourceElement.message.consoleMessage()
: null; |
| 595 | 595 |
| 596 var filterSubMenu = contextMenu.appendSubMenuItem(WebInspector.UIString('Fil
ter')); | 596 var filterSubMenu = contextMenu.appendSubMenuItem(Common.UIString('Filter'))
; |
| 597 | 597 |
| 598 if (consoleMessage && consoleMessage.url) { | 598 if (consoleMessage && consoleMessage.url) { |
| 599 var menuTitle = WebInspector.UIString.capitalize( | 599 var menuTitle = Common.UIString.capitalize( |
| 600 'Hide ^messages from %s', new WebInspector.ParsedURL(consoleMessage.ur
l).displayName); | 600 'Hide ^messages from %s', new Common.ParsedURL(consoleMessage.url).dis
playName); |
| 601 filterSubMenu.appendItem(menuTitle, this._filter.addMessageURLFilter.bind(
this._filter, consoleMessage.url)); | 601 filterSubMenu.appendItem(menuTitle, this._filter.addMessageURLFilter.bind(
this._filter, consoleMessage.url)); |
| 602 } | 602 } |
| 603 | 603 |
| 604 filterSubMenu.appendSeparator(); | 604 filterSubMenu.appendSeparator(); |
| 605 var unhideAll = filterSubMenu.appendItem( | 605 var unhideAll = filterSubMenu.appendItem( |
| 606 WebInspector.UIString.capitalize('Unhide ^all'), this._filter.removeMess
ageURLFilter.bind(this._filter)); | 606 Common.UIString.capitalize('Unhide ^all'), this._filter.removeMessageURL
Filter.bind(this._filter)); |
| 607 filterSubMenu.appendSeparator(); | 607 filterSubMenu.appendSeparator(); |
| 608 | 608 |
| 609 var hasFilters = false; | 609 var hasFilters = false; |
| 610 | 610 |
| 611 for (var url in this._filter.messageURLFilters) { | 611 for (var url in this._filter.messageURLFilters) { |
| 612 filterSubMenu.appendCheckboxItem( | 612 filterSubMenu.appendCheckboxItem( |
| 613 String.sprintf('%s (%d)', new WebInspector.ParsedURL(url).displayName,
this._urlToMessageCount[url]), | 613 String.sprintf('%s (%d)', new Common.ParsedURL(url).displayName, this.
_urlToMessageCount[url]), |
| 614 this._filter.removeMessageURLFilter.bind(this._filter, url), true); | 614 this._filter.removeMessageURLFilter.bind(this._filter, url), true); |
| 615 hasFilters = true; | 615 hasFilters = true; |
| 616 } | 616 } |
| 617 | 617 |
| 618 filterSubMenu.setEnabled(hasFilters || (consoleMessage && consoleMessage.url
)); | 618 filterSubMenu.setEnabled(hasFilters || (consoleMessage && consoleMessage.url
)); |
| 619 unhideAll.setEnabled(hasFilters); | 619 unhideAll.setEnabled(hasFilters); |
| 620 | 620 |
| 621 contextMenu.appendSeparator(); | 621 contextMenu.appendSeparator(); |
| 622 contextMenu.appendAction('console.clear'); | 622 contextMenu.appendAction('console.clear'); |
| 623 contextMenu.appendAction('console.clear.history'); | 623 contextMenu.appendAction('console.clear.history'); |
| 624 contextMenu.appendItem(WebInspector.UIString('Save as...'), this._saveConsol
e.bind(this)); | 624 contextMenu.appendItem(Common.UIString('Save as...'), this._saveConsole.bind
(this)); |
| 625 | 625 |
| 626 var request = consoleMessage ? consoleMessage.request : null; | 626 var request = consoleMessage ? consoleMessage.request : null; |
| 627 if (request && request.resourceType() === WebInspector.resourceTypes.XHR) { | 627 if (request && request.resourceType() === Common.resourceTypes.XHR) { |
| 628 contextMenu.appendSeparator(); | 628 contextMenu.appendSeparator(); |
| 629 contextMenu.appendItem(WebInspector.UIString('Replay XHR'), request.replay
XHR.bind(request)); | 629 contextMenu.appendItem(Common.UIString('Replay XHR'), request.replayXHR.bi
nd(request)); |
| 630 } | 630 } |
| 631 | 631 |
| 632 contextMenu.show(); | 632 contextMenu.show(); |
| 633 } | 633 } |
| 634 | 634 |
| 635 _saveConsole() { | 635 _saveConsole() { |
| 636 var url = WebInspector.targetManager.mainTarget().inspectedURL(); | 636 var url = SDK.targetManager.mainTarget().inspectedURL(); |
| 637 var parsedURL = url.asParsedURL(); | 637 var parsedURL = url.asParsedURL(); |
| 638 var filename = String.sprintf('%s-%d.log', parsedURL ? parsedURL.host : 'con
sole', Date.now()); | 638 var filename = String.sprintf('%s-%d.log', parsedURL ? parsedURL.host : 'con
sole', Date.now()); |
| 639 var stream = new WebInspector.FileOutputStream(); | 639 var stream = new Bindings.FileOutputStream(); |
| 640 | 640 |
| 641 var progressIndicator = new WebInspector.ProgressIndicator(); | 641 var progressIndicator = new UI.ProgressIndicator(); |
| 642 progressIndicator.setTitle(WebInspector.UIString('Writing file…')); | 642 progressIndicator.setTitle(Common.UIString('Writing file…')); |
| 643 progressIndicator.setTotalWork(this.itemCount()); | 643 progressIndicator.setTotalWork(this.itemCount()); |
| 644 | 644 |
| 645 /** @const */ | 645 /** @const */ |
| 646 var chunkSize = 350; | 646 var chunkSize = 350; |
| 647 var messageIndex = 0; | 647 var messageIndex = 0; |
| 648 | 648 |
| 649 stream.open(filename, openCallback.bind(this)); | 649 stream.open(filename, openCallback.bind(this)); |
| 650 | 650 |
| 651 /** | 651 /** |
| 652 * @param {boolean} accepted | 652 * @param {boolean} accepted |
| 653 * @this {WebInspector.ConsoleView} | 653 * @this {Console.ConsoleView} |
| 654 */ | 654 */ |
| 655 function openCallback(accepted) { | 655 function openCallback(accepted) { |
| 656 if (!accepted) | 656 if (!accepted) |
| 657 return; | 657 return; |
| 658 this._progressToolbarItem.element.appendChild(progressIndicator.element); | 658 this._progressToolbarItem.element.appendChild(progressIndicator.element); |
| 659 writeNextChunk.call(this, stream); | 659 writeNextChunk.call(this, stream); |
| 660 } | 660 } |
| 661 | 661 |
| 662 /** | 662 /** |
| 663 * @param {!WebInspector.OutputStream} stream | 663 * @param {!Common.OutputStream} stream |
| 664 * @param {string=} error | 664 * @param {string=} error |
| 665 * @this {WebInspector.ConsoleView} | 665 * @this {Console.ConsoleView} |
| 666 */ | 666 */ |
| 667 function writeNextChunk(stream, error) { | 667 function writeNextChunk(stream, error) { |
| 668 if (messageIndex >= this.itemCount() || error) { | 668 if (messageIndex >= this.itemCount() || error) { |
| 669 stream.close(); | 669 stream.close(); |
| 670 progressIndicator.done(); | 670 progressIndicator.done(); |
| 671 return; | 671 return; |
| 672 } | 672 } |
| 673 var lines = []; | 673 var lines = []; |
| 674 for (var i = 0; i < chunkSize && i + messageIndex < this.itemCount(); ++i)
{ | 674 for (var i = 0; i < chunkSize && i + messageIndex < this.itemCount(); ++i)
{ |
| 675 var message = this.itemElement(messageIndex + i); | 675 var message = this.itemElement(messageIndex + i); |
| 676 var messageContent = message.contentElement().deepTextContent(); | 676 var messageContent = message.contentElement().deepTextContent(); |
| 677 for (var j = 0; j < message.repeatCount(); ++j) | 677 for (var j = 0; j < message.repeatCount(); ++j) |
| 678 lines.push(messageContent); | 678 lines.push(messageContent); |
| 679 } | 679 } |
| 680 messageIndex += i; | 680 messageIndex += i; |
| 681 stream.write(lines.join('\n') + '\n', writeNextChunk.bind(this)); | 681 stream.write(lines.join('\n') + '\n', writeNextChunk.bind(this)); |
| 682 progressIndicator.setWorked(messageIndex); | 682 progressIndicator.setWorked(messageIndex); |
| 683 } | 683 } |
| 684 } | 684 } |
| 685 | 685 |
| 686 /** | 686 /** |
| 687 * @param {!WebInspector.ConsoleViewMessage} lastMessage | 687 * @param {!Console.ConsoleViewMessage} lastMessage |
| 688 * @param {?WebInspector.ConsoleViewMessage=} viewMessage | 688 * @param {?Console.ConsoleViewMessage=} viewMessage |
| 689 * @return {boolean} | 689 * @return {boolean} |
| 690 */ | 690 */ |
| 691 _tryToCollapseMessages(lastMessage, viewMessage) { | 691 _tryToCollapseMessages(lastMessage, viewMessage) { |
| 692 if (!WebInspector.moduleSetting('consoleTimestampsEnabled').get() && viewMes
sage && | 692 if (!Common.moduleSetting('consoleTimestampsEnabled').get() && viewMessage &
& |
| 693 !lastMessage.consoleMessage().isGroupMessage() && | 693 !lastMessage.consoleMessage().isGroupMessage() && |
| 694 lastMessage.consoleMessage().isEqual(viewMessage.consoleMessage())) { | 694 lastMessage.consoleMessage().isEqual(viewMessage.consoleMessage())) { |
| 695 viewMessage.incrementRepeatCount(); | 695 viewMessage.incrementRepeatCount(); |
| 696 return true; | 696 return true; |
| 697 } | 697 } |
| 698 | 698 |
| 699 return false; | 699 return false; |
| 700 } | 700 } |
| 701 | 701 |
| 702 _updateMessageList() { | 702 _updateMessageList() { |
| 703 this._topGroup = WebInspector.ConsoleGroup.createTopGroup(); | 703 this._topGroup = Console.ConsoleGroup.createTopGroup(); |
| 704 this._currentGroup = this._topGroup; | 704 this._currentGroup = this._topGroup; |
| 705 this._regexMatchRanges = []; | 705 this._regexMatchRanges = []; |
| 706 this._hiddenByFilterCount = 0; | 706 this._hiddenByFilterCount = 0; |
| 707 for (var i = 0; i < this._visibleViewMessages.length; ++i) { | 707 for (var i = 0; i < this._visibleViewMessages.length; ++i) { |
| 708 this._visibleViewMessages[i].resetCloseGroupDecorationCount(); | 708 this._visibleViewMessages[i].resetCloseGroupDecorationCount(); |
| 709 this._visibleViewMessages[i].resetIncrementRepeatCount(); | 709 this._visibleViewMessages[i].resetIncrementRepeatCount(); |
| 710 } | 710 } |
| 711 this._visibleViewMessages = []; | 711 this._visibleViewMessages = []; |
| 712 for (var i = 0; i < this._consoleMessages.length; ++i) | 712 for (var i = 0; i < this._consoleMessages.length; ++i) |
| 713 this._appendMessageToEnd(this._consoleMessages[i]); | 713 this._appendMessageToEnd(this._consoleMessages[i]); |
| 714 this._updateFilterStatus(); | 714 this._updateFilterStatus(); |
| 715 this._searchableView.updateSearchMatchesCount(this._regexMatchRanges.length)
; | 715 this._searchableView.updateSearchMatchesCount(this._regexMatchRanges.length)
; |
| 716 this._viewport.invalidate(); | 716 this._viewport.invalidate(); |
| 717 } | 717 } |
| 718 | 718 |
| 719 /** | 719 /** |
| 720 * @param {!WebInspector.Event} event | 720 * @param {!Common.Event} event |
| 721 */ | 721 */ |
| 722 _monitoringXHREnabledSettingChanged(event) { | 722 _monitoringXHREnabledSettingChanged(event) { |
| 723 var enabled = /** @type {boolean} */ (event.data); | 723 var enabled = /** @type {boolean} */ (event.data); |
| 724 WebInspector.targetManager.targets().forEach(function(target) { | 724 SDK.targetManager.targets().forEach(function(target) { |
| 725 target.networkAgent().setMonitoringXHREnabled(enabled); | 725 target.networkAgent().setMonitoringXHREnabled(enabled); |
| 726 }); | 726 }); |
| 727 } | 727 } |
| 728 | 728 |
| 729 /** | 729 /** |
| 730 * @param {!Event} event | 730 * @param {!Event} event |
| 731 */ | 731 */ |
| 732 _messagesClicked(event) { | 732 _messagesClicked(event) { |
| 733 var targetElement = event.deepElementFromPoint(); | 733 var targetElement = event.deepElementFromPoint(); |
| 734 if (!targetElement || targetElement.isComponentSelectionCollapsed()) | 734 if (!targetElement || targetElement.isComponentSelectionCollapsed()) |
| 735 this.focus(); | 735 this.focus(); |
| 736 var groupMessage = event.target.enclosingNodeOrSelfWithClass('console-group-
title'); | 736 var groupMessage = event.target.enclosingNodeOrSelfWithClass('console-group-
title'); |
| 737 if (!groupMessage) | 737 if (!groupMessage) |
| 738 return; | 738 return; |
| 739 var consoleGroupViewMessage = groupMessage.parentElement.message; | 739 var consoleGroupViewMessage = groupMessage.parentElement.message; |
| 740 consoleGroupViewMessage.setCollapsed(!consoleGroupViewMessage.collapsed()); | 740 consoleGroupViewMessage.setCollapsed(!consoleGroupViewMessage.collapsed()); |
| 741 this._updateMessageList(); | 741 this._updateMessageList(); |
| 742 } | 742 } |
| 743 | 743 |
| 744 _registerShortcuts() { | 744 _registerShortcuts() { |
| 745 this._shortcuts = {}; | 745 this._shortcuts = {}; |
| 746 | 746 |
| 747 var shortcut = WebInspector.KeyboardShortcut; | 747 var shortcut = UI.KeyboardShortcut; |
| 748 var section = WebInspector.shortcutsScreen.section(WebInspector.UIString('Co
nsole')); | 748 var section = Components.shortcutsScreen.section(Common.UIString('Console'))
; |
| 749 | 749 |
| 750 var shortcutL = shortcut.makeDescriptor('l', WebInspector.KeyboardShortcut.M
odifiers.Ctrl); | 750 var shortcutL = shortcut.makeDescriptor('l', UI.KeyboardShortcut.Modifiers.C
trl); |
| 751 var keys = [shortcutL]; | 751 var keys = [shortcutL]; |
| 752 if (WebInspector.isMac()) { | 752 if (Host.isMac()) { |
| 753 var shortcutK = shortcut.makeDescriptor('k', WebInspector.KeyboardShortcut
.Modifiers.Meta); | 753 var shortcutK = shortcut.makeDescriptor('k', UI.KeyboardShortcut.Modifiers
.Meta); |
| 754 keys.unshift(shortcutK); | 754 keys.unshift(shortcutK); |
| 755 } | 755 } |
| 756 section.addAlternateKeys(keys, WebInspector.UIString('Clear console')); | 756 section.addAlternateKeys(keys, Common.UIString('Clear console')); |
| 757 | 757 |
| 758 keys = [ | 758 keys = [ |
| 759 shortcut.makeDescriptor(shortcut.Keys.Tab), | 759 shortcut.makeDescriptor(shortcut.Keys.Tab), |
| 760 shortcut.makeDescriptor(shortcut.Keys.Right) | 760 shortcut.makeDescriptor(shortcut.Keys.Right) |
| 761 ]; | 761 ]; |
| 762 section.addRelatedKeys(keys, WebInspector.UIString('Accept suggestion')); | 762 section.addRelatedKeys(keys, Common.UIString('Accept suggestion')); |
| 763 | 763 |
| 764 var shortcutU = shortcut.makeDescriptor('u', WebInspector.KeyboardShortcut.M
odifiers.Ctrl); | 764 var shortcutU = shortcut.makeDescriptor('u', UI.KeyboardShortcut.Modifiers.C
trl); |
| 765 this._shortcuts[shortcutU.key] = this._clearPromptBackwards.bind(this); | 765 this._shortcuts[shortcutU.key] = this._clearPromptBackwards.bind(this); |
| 766 section.addAlternateKeys([shortcutU], WebInspector.UIString('Clear console p
rompt')); | 766 section.addAlternateKeys([shortcutU], Common.UIString('Clear console prompt'
)); |
| 767 | 767 |
| 768 keys = [shortcut.makeDescriptor(shortcut.Keys.Down), shortcut.makeDescriptor
(shortcut.Keys.Up)]; | 768 keys = [shortcut.makeDescriptor(shortcut.Keys.Down), shortcut.makeDescriptor
(shortcut.Keys.Up)]; |
| 769 section.addRelatedKeys(keys, WebInspector.UIString('Next/previous line')); | 769 section.addRelatedKeys(keys, Common.UIString('Next/previous line')); |
| 770 | 770 |
| 771 if (WebInspector.isMac()) { | 771 if (Host.isMac()) { |
| 772 keys = | 772 keys = |
| 773 [shortcut.makeDescriptor('N', shortcut.Modifiers.Alt), shortcut.makeDe
scriptor('P', shortcut.Modifiers.Alt)]; | 773 [shortcut.makeDescriptor('N', shortcut.Modifiers.Alt), shortcut.makeDe
scriptor('P', shortcut.Modifiers.Alt)]; |
| 774 section.addRelatedKeys(keys, WebInspector.UIString('Next/previous command'
)); | 774 section.addRelatedKeys(keys, Common.UIString('Next/previous command')); |
| 775 } | 775 } |
| 776 | 776 |
| 777 section.addKey(shortcut.makeDescriptor(shortcut.Keys.Enter), WebInspector.UI
String('Execute command')); | 777 section.addKey(shortcut.makeDescriptor(shortcut.Keys.Enter), Common.UIString
('Execute command')); |
| 778 } | 778 } |
| 779 | 779 |
| 780 _clearPromptBackwards() { | 780 _clearPromptBackwards() { |
| 781 this._prompt.setText(''); | 781 this._prompt.setText(''); |
| 782 } | 782 } |
| 783 | 783 |
| 784 /** | 784 /** |
| 785 * @param {!Event} event | 785 * @param {!Event} event |
| 786 */ | 786 */ |
| 787 _promptKeyDown(event) { | 787 _promptKeyDown(event) { |
| 788 var keyboardEvent = /** @type {!KeyboardEvent} */ (event); | 788 var keyboardEvent = /** @type {!KeyboardEvent} */ (event); |
| 789 if (keyboardEvent.key === 'PageUp') { | 789 if (keyboardEvent.key === 'PageUp') { |
| 790 this._updateStickToBottomOnWheel(); | 790 this._updateStickToBottomOnWheel(); |
| 791 return; | 791 return; |
| 792 } | 792 } |
| 793 | 793 |
| 794 var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(keyboardEvent)
; | 794 var shortcut = UI.KeyboardShortcut.makeKeyFromEvent(keyboardEvent); |
| 795 var handler = this._shortcuts[shortcut]; | 795 var handler = this._shortcuts[shortcut]; |
| 796 if (handler) { | 796 if (handler) { |
| 797 handler(); | 797 handler(); |
| 798 keyboardEvent.preventDefault(); | 798 keyboardEvent.preventDefault(); |
| 799 } | 799 } |
| 800 } | 800 } |
| 801 | 801 |
| 802 /** | 802 /** |
| 803 * @param {?WebInspector.RemoteObject} result | 803 * @param {?SDK.RemoteObject} result |
| 804 * @param {!WebInspector.ConsoleMessage} originatingConsoleMessage | 804 * @param {!SDK.ConsoleMessage} originatingConsoleMessage |
| 805 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails | 805 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails |
| 806 */ | 806 */ |
| 807 _printResult(result, originatingConsoleMessage, exceptionDetails) { | 807 _printResult(result, originatingConsoleMessage, exceptionDetails) { |
| 808 if (!result) | 808 if (!result) |
| 809 return; | 809 return; |
| 810 | 810 |
| 811 var level = !!exceptionDetails ? WebInspector.ConsoleMessage.MessageLevel.Er
ror : | 811 var level = !!exceptionDetails ? SDK.ConsoleMessage.MessageLevel.Error : |
| 812 WebInspector.ConsoleMessage.MessageLevel.Lo
g; | 812 SDK.ConsoleMessage.MessageLevel.Log; |
| 813 var message; | 813 var message; |
| 814 if (!exceptionDetails) | 814 if (!exceptionDetails) |
| 815 message = new WebInspector.ConsoleMessage( | 815 message = new SDK.ConsoleMessage( |
| 816 result.target(), WebInspector.ConsoleMessage.MessageSource.JS, level,
'', | 816 result.target(), SDK.ConsoleMessage.MessageSource.JS, level, '', |
| 817 WebInspector.ConsoleMessage.MessageType.Result, undefined, undefined,
undefined, undefined, [result]); | 817 SDK.ConsoleMessage.MessageType.Result, undefined, undefined, undefined
, undefined, [result]); |
| 818 else | 818 else |
| 819 message = WebInspector.ConsoleMessage.fromException( | 819 message = SDK.ConsoleMessage.fromException( |
| 820 result.target(), exceptionDetails, WebInspector.ConsoleMessage.Message
Type.Result, undefined, undefined); | 820 result.target(), exceptionDetails, SDK.ConsoleMessage.MessageType.Resu
lt, undefined, undefined); |
| 821 message.setOriginatingMessage(originatingConsoleMessage); | 821 message.setOriginatingMessage(originatingConsoleMessage); |
| 822 result.target().consoleModel.addMessage(message); | 822 result.target().consoleModel.addMessage(message); |
| 823 } | 823 } |
| 824 | 824 |
| 825 /** | 825 /** |
| 826 * @param {!WebInspector.Event} event | 826 * @param {!Common.Event} event |
| 827 */ | 827 */ |
| 828 _commandEvaluated(event) { | 828 _commandEvaluated(event) { |
| 829 var data = | 829 var data = |
| 830 /** @type {{result: ?WebInspector.RemoteObject, text: string, commandMes
sage: !WebInspector.ConsoleMessage, exceptionDetails: (!Protocol.Runtime.Excepti
onDetails|undefined)}} */ | 830 /** @type {{result: ?SDK.RemoteObject, text: string, commandMessage: !SD
K.ConsoleMessage, exceptionDetails: (!Protocol.Runtime.ExceptionDetails|undefine
d)}} */ |
| 831 (event.data); | 831 (event.data); |
| 832 this._prompt.history().pushHistoryItem(data.text); | 832 this._prompt.history().pushHistoryItem(data.text); |
| 833 this._consoleHistorySetting.set( | 833 this._consoleHistorySetting.set( |
| 834 this._prompt.history().historyData().slice(-WebInspector.ConsoleView.per
sistedHistorySize)); | 834 this._prompt.history().historyData().slice(-Console.ConsoleView.persiste
dHistorySize)); |
| 835 this._printResult(data.result, data.commandMessage, data.exceptionDetails); | 835 this._printResult(data.result, data.commandMessage, data.exceptionDetails); |
| 836 } | 836 } |
| 837 | 837 |
| 838 /** | 838 /** |
| 839 * @override | 839 * @override |
| 840 * @return {!Array.<!Element>} | 840 * @return {!Array.<!Element>} |
| 841 */ | 841 */ |
| 842 elementsToRestoreScrollPositionsFor() { | 842 elementsToRestoreScrollPositionsFor() { |
| 843 return [this._messagesElement]; | 843 return [this._messagesElement]; |
| 844 } | 844 } |
| 845 | 845 |
| 846 /** | 846 /** |
| 847 * @override | 847 * @override |
| 848 */ | 848 */ |
| 849 searchCanceled() { | 849 searchCanceled() { |
| 850 this._cleanupAfterSearch(); | 850 this._cleanupAfterSearch(); |
| 851 for (var i = 0; i < this._visibleViewMessages.length; ++i) { | 851 for (var i = 0; i < this._visibleViewMessages.length; ++i) { |
| 852 var message = this._visibleViewMessages[i]; | 852 var message = this._visibleViewMessages[i]; |
| 853 message.setSearchRegex(null); | 853 message.setSearchRegex(null); |
| 854 } | 854 } |
| 855 this._currentMatchRangeIndex = -1; | 855 this._currentMatchRangeIndex = -1; |
| 856 this._regexMatchRanges = []; | 856 this._regexMatchRanges = []; |
| 857 delete this._searchRegex; | 857 delete this._searchRegex; |
| 858 this._viewport.refresh(); | 858 this._viewport.refresh(); |
| 859 } | 859 } |
| 860 | 860 |
| 861 /** | 861 /** |
| 862 * @override | 862 * @override |
| 863 * @param {!WebInspector.SearchableView.SearchConfig} searchConfig | 863 * @param {!UI.SearchableView.SearchConfig} searchConfig |
| 864 * @param {boolean} shouldJump | 864 * @param {boolean} shouldJump |
| 865 * @param {boolean=} jumpBackwards | 865 * @param {boolean=} jumpBackwards |
| 866 */ | 866 */ |
| 867 performSearch(searchConfig, shouldJump, jumpBackwards) { | 867 performSearch(searchConfig, shouldJump, jumpBackwards) { |
| 868 this.searchCanceled(); | 868 this.searchCanceled(); |
| 869 this._searchableView.updateSearchMatchesCount(0); | 869 this._searchableView.updateSearchMatchesCount(0); |
| 870 | 870 |
| 871 this._searchRegex = searchConfig.toSearchRegex(true); | 871 this._searchRegex = searchConfig.toSearchRegex(true); |
| 872 | 872 |
| 873 this._regexMatchRanges = []; | 873 this._regexMatchRanges = []; |
| 874 this._currentMatchRangeIndex = -1; | 874 this._currentMatchRangeIndex = -1; |
| 875 | 875 |
| 876 if (shouldJump) | 876 if (shouldJump) |
| 877 this._searchShouldJumpBackwards = !!jumpBackwards; | 877 this._searchShouldJumpBackwards = !!jumpBackwards; |
| 878 | 878 |
| 879 this._searchProgressIndicator = new WebInspector.ProgressIndicator(); | 879 this._searchProgressIndicator = new UI.ProgressIndicator(); |
| 880 this._searchProgressIndicator.setTitle(WebInspector.UIString('Searching…')); | 880 this._searchProgressIndicator.setTitle(Common.UIString('Searching…')); |
| 881 this._searchProgressIndicator.setTotalWork(this._visibleViewMessages.length)
; | 881 this._searchProgressIndicator.setTotalWork(this._visibleViewMessages.length)
; |
| 882 this._progressToolbarItem.element.appendChild(this._searchProgressIndicator.
element); | 882 this._progressToolbarItem.element.appendChild(this._searchProgressIndicator.
element); |
| 883 | 883 |
| 884 this._innerSearch(0); | 884 this._innerSearch(0); |
| 885 } | 885 } |
| 886 | 886 |
| 887 _cleanupAfterSearch() { | 887 _cleanupAfterSearch() { |
| 888 delete this._searchShouldJumpBackwards; | 888 delete this._searchShouldJumpBackwards; |
| 889 if (this._innerSearchTimeoutId) { | 889 if (this._innerSearchTimeoutId) { |
| 890 clearTimeout(this._innerSearchTimeoutId); | 890 clearTimeout(this._innerSearchTimeoutId); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 976 */ | 976 */ |
| 977 _jumpToMatch(index) { | 977 _jumpToMatch(index) { |
| 978 if (!this._regexMatchRanges.length) | 978 if (!this._regexMatchRanges.length) |
| 979 return; | 979 return; |
| 980 | 980 |
| 981 var matchRange; | 981 var matchRange; |
| 982 if (this._currentMatchRangeIndex >= 0) { | 982 if (this._currentMatchRangeIndex >= 0) { |
| 983 matchRange = this._regexMatchRanges[this._currentMatchRangeIndex]; | 983 matchRange = this._regexMatchRanges[this._currentMatchRangeIndex]; |
| 984 var message = this._visibleViewMessages[matchRange.messageIndex]; | 984 var message = this._visibleViewMessages[matchRange.messageIndex]; |
| 985 message.searchHighlightNode(matchRange.matchIndex) | 985 message.searchHighlightNode(matchRange.matchIndex) |
| 986 .classList.remove(WebInspector.highlightedCurrentSearchResultClassName
); | 986 .classList.remove(UI.highlightedCurrentSearchResultClassName); |
| 987 } | 987 } |
| 988 | 988 |
| 989 index = mod(index, this._regexMatchRanges.length); | 989 index = mod(index, this._regexMatchRanges.length); |
| 990 this._currentMatchRangeIndex = index; | 990 this._currentMatchRangeIndex = index; |
| 991 this._searchableView.updateCurrentMatchIndex(index); | 991 this._searchableView.updateCurrentMatchIndex(index); |
| 992 matchRange = this._regexMatchRanges[index]; | 992 matchRange = this._regexMatchRanges[index]; |
| 993 var message = this._visibleViewMessages[matchRange.messageIndex]; | 993 var message = this._visibleViewMessages[matchRange.messageIndex]; |
| 994 var highlightNode = message.searchHighlightNode(matchRange.matchIndex); | 994 var highlightNode = message.searchHighlightNode(matchRange.matchIndex); |
| 995 highlightNode.classList.add(WebInspector.highlightedCurrentSearchResultClass
Name); | 995 highlightNode.classList.add(UI.highlightedCurrentSearchResultClassName); |
| 996 this._viewport.scrollItemIntoView(matchRange.messageIndex); | 996 this._viewport.scrollItemIntoView(matchRange.messageIndex); |
| 997 highlightNode.scrollIntoViewIfNeeded(); | 997 highlightNode.scrollIntoViewIfNeeded(); |
| 998 } | 998 } |
| 999 | 999 |
| 1000 _updateStickToBottomOnMouseDown() { | 1000 _updateStickToBottomOnMouseDown() { |
| 1001 this._muteViewportUpdates = true; | 1001 this._muteViewportUpdates = true; |
| 1002 this._viewport.setStickToBottom(false); | 1002 this._viewport.setStickToBottom(false); |
| 1003 if (this._waitForScrollTimeout) { | 1003 if (this._waitForScrollTimeout) { |
| 1004 clearTimeout(this._waitForScrollTimeout); | 1004 clearTimeout(this._waitForScrollTimeout); |
| 1005 delete this._waitForScrollTimeout; | 1005 delete this._waitForScrollTimeout; |
| 1006 } | 1006 } |
| 1007 } | 1007 } |
| 1008 | 1008 |
| 1009 _updateStickToBottomOnMouseUp() { | 1009 _updateStickToBottomOnMouseUp() { |
| 1010 if (!this._muteViewportUpdates) | 1010 if (!this._muteViewportUpdates) |
| 1011 return; | 1011 return; |
| 1012 | 1012 |
| 1013 // Delay querying isScrolledToBottom to give time for smooth scroll | 1013 // Delay querying isScrolledToBottom to give time for smooth scroll |
| 1014 // events to arrive. The value for the longest timeout duration is | 1014 // events to arrive. The value for the longest timeout duration is |
| 1015 // retrieved from crbug.com/575409. | 1015 // retrieved from crbug.com/575409. |
| 1016 this._waitForScrollTimeout = setTimeout(updateViewportState.bind(this), 200)
; | 1016 this._waitForScrollTimeout = setTimeout(updateViewportState.bind(this), 200)
; |
| 1017 | 1017 |
| 1018 /** | 1018 /** |
| 1019 * @this {!WebInspector.ConsoleView} | 1019 * @this {!Console.ConsoleView} |
| 1020 */ | 1020 */ |
| 1021 function updateViewportState() { | 1021 function updateViewportState() { |
| 1022 this._muteViewportUpdates = false; | 1022 this._muteViewportUpdates = false; |
| 1023 this._viewport.setStickToBottom(this._messagesElement.isScrolledToBottom()
); | 1023 this._viewport.setStickToBottom(this._messagesElement.isScrolledToBottom()
); |
| 1024 if (this._maybeDirtyWhileMuted) { | 1024 if (this._maybeDirtyWhileMuted) { |
| 1025 this._scheduleViewportRefresh(); | 1025 this._scheduleViewportRefresh(); |
| 1026 delete this._maybeDirtyWhileMuted; | 1026 delete this._maybeDirtyWhileMuted; |
| 1027 } | 1027 } |
| 1028 delete this._waitForScrollTimeout; | 1028 delete this._waitForScrollTimeout; |
| 1029 this._updateViewportStickinessForTest(); | 1029 this._updateViewportStickinessForTest(); |
| 1030 } | 1030 } |
| 1031 } | 1031 } |
| 1032 | 1032 |
| 1033 _updateViewportStickinessForTest() { | 1033 _updateViewportStickinessForTest() { |
| 1034 // This method is sniffed in tests. | 1034 // This method is sniffed in tests. |
| 1035 } | 1035 } |
| 1036 | 1036 |
| 1037 _updateStickToBottomOnWheel() { | 1037 _updateStickToBottomOnWheel() { |
| 1038 this._updateStickToBottomOnMouseDown(); | 1038 this._updateStickToBottomOnMouseDown(); |
| 1039 this._updateStickToBottomOnMouseUp(); | 1039 this._updateStickToBottomOnMouseUp(); |
| 1040 } | 1040 } |
| 1041 | 1041 |
| 1042 _promptInput(event) { | 1042 _promptInput(event) { |
| 1043 // Scroll to the bottom, except when the prompt is the only visible item. | 1043 // Scroll to the bottom, except when the prompt is the only visible item. |
| 1044 if (this.itemCount() !== 0 && this._viewport.firstVisibleIndex() !== this.it
emCount()) | 1044 if (this.itemCount() !== 0 && this._viewport.firstVisibleIndex() !== this.it
emCount()) |
| 1045 this._immediatelyScrollToBottom(); | 1045 this._immediatelyScrollToBottom(); |
| 1046 } | 1046 } |
| 1047 }; | 1047 }; |
| 1048 | 1048 |
| 1049 WebInspector.ConsoleView.persistedHistorySize = 300; | 1049 Console.ConsoleView.persistedHistorySize = 300; |
| 1050 | 1050 |
| 1051 /** | 1051 /** |
| 1052 * @unrestricted | 1052 * @unrestricted |
| 1053 */ | 1053 */ |
| 1054 WebInspector.ConsoleViewFilter = class extends WebInspector.Object { | 1054 Console.ConsoleViewFilter = class extends Common.Object { |
| 1055 /** | 1055 /** |
| 1056 * @param {!WebInspector.ConsoleView} view | 1056 * @param {!Console.ConsoleView} view |
| 1057 */ | 1057 */ |
| 1058 constructor(view) { | 1058 constructor(view) { |
| 1059 super(); | 1059 super(); |
| 1060 this._messageURLFiltersSetting = WebInspector.settings.createSetting('messag
eURLFilters', {}); | 1060 this._messageURLFiltersSetting = Common.settings.createSetting('messageURLFi
lters', {}); |
| 1061 this._messageLevelFiltersSetting = WebInspector.settings.createSetting('mess
ageLevelFilters', {}); | 1061 this._messageLevelFiltersSetting = Common.settings.createSetting('messageLev
elFilters', {}); |
| 1062 | 1062 |
| 1063 this._view = view; | 1063 this._view = view; |
| 1064 this._messageURLFilters = this._messageURLFiltersSetting.get(); | 1064 this._messageURLFilters = this._messageURLFiltersSetting.get(); |
| 1065 this._filterChanged = this.dispatchEventToListeners.bind(this, WebInspector.
ConsoleViewFilter.Events.FilterChanged); | 1065 this._filterChanged = this.dispatchEventToListeners.bind(this, Console.Conso
leViewFilter.Events.FilterChanged); |
| 1066 } | 1066 } |
| 1067 | 1067 |
| 1068 addFilters(filterBar) { | 1068 addFilters(filterBar) { |
| 1069 this._textFilterUI = new WebInspector.TextFilterUI(true); | 1069 this._textFilterUI = new UI.TextFilterUI(true); |
| 1070 this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChang
ed, this._textFilterChanged, this); | 1070 this._textFilterUI.addEventListener(UI.FilterUI.Events.FilterChanged, this._
textFilterChanged, this); |
| 1071 filterBar.addFilter(this._textFilterUI); | 1071 filterBar.addFilter(this._textFilterUI); |
| 1072 | 1072 |
| 1073 this._hideNetworkMessagesCheckbox = new WebInspector.CheckboxFilterUI( | 1073 this._hideNetworkMessagesCheckbox = new UI.CheckboxFilterUI( |
| 1074 '', WebInspector.UIString('Hide network'), true, | 1074 '', Common.UIString('Hide network'), true, |
| 1075 WebInspector.moduleSetting('hideNetworkMessages')); | 1075 Common.moduleSetting('hideNetworkMessages')); |
| 1076 this._hideViolationMessagesCheckbox = new WebInspector.CheckboxFilterUI( | 1076 this._hideViolationMessagesCheckbox = new UI.CheckboxFilterUI( |
| 1077 '', WebInspector.UIString('Hide violations'), false, | 1077 '', Common.UIString('Hide violations'), false, |
| 1078 WebInspector.moduleSetting('hideViolationMessages')); | 1078 Common.moduleSetting('hideViolationMessages')); |
| 1079 WebInspector.moduleSetting('hideNetworkMessages').addChangeListener(this._fi
lterChanged, this); | 1079 Common.moduleSetting('hideNetworkMessages').addChangeListener(this._filterCh
anged, this); |
| 1080 WebInspector.moduleSetting('hideViolationMessages').addChangeListener(this._
filterChanged, this); | 1080 Common.moduleSetting('hideViolationMessages').addChangeListener(this._filter
Changed, this); |
| 1081 filterBar.addFilter(this._hideNetworkMessagesCheckbox); | 1081 filterBar.addFilter(this._hideNetworkMessagesCheckbox); |
| 1082 filterBar.addFilter(this._hideViolationMessagesCheckbox); | 1082 filterBar.addFilter(this._hideViolationMessagesCheckbox); |
| 1083 | 1083 |
| 1084 var levels = [ | 1084 var levels = [ |
| 1085 {name: WebInspector.ConsoleMessage.MessageLevel.Error, label: WebInspector
.UIString('Errors')}, | 1085 {name: SDK.ConsoleMessage.MessageLevel.Error, label: Common.UIString('Erro
rs')}, |
| 1086 {name: WebInspector.ConsoleMessage.MessageLevel.Warning, label: WebInspect
or.UIString('Warnings')}, | 1086 {name: SDK.ConsoleMessage.MessageLevel.Warning, label: Common.UIString('Wa
rnings')}, |
| 1087 {name: WebInspector.ConsoleMessage.MessageLevel.Info, label: WebInspector.
UIString('Info')}, | 1087 {name: SDK.ConsoleMessage.MessageLevel.Info, label: Common.UIString('Info'
)}, |
| 1088 {name: WebInspector.ConsoleMessage.MessageLevel.Log, label: WebInspector.U
IString('Logs')}, | 1088 {name: SDK.ConsoleMessage.MessageLevel.Log, label: Common.UIString('Logs')
}, |
| 1089 {name: WebInspector.ConsoleMessage.MessageLevel.Debug, label: WebInspector
.UIString('Debug')}, | 1089 {name: SDK.ConsoleMessage.MessageLevel.Debug, label: Common.UIString('Debu
g')}, |
| 1090 {name: WebInspector.ConsoleMessage.MessageLevel.RevokedError, label: WebIn
spector.UIString('Handled')} | 1090 {name: SDK.ConsoleMessage.MessageLevel.RevokedError, label: Common.UIStrin
g('Handled')} |
| 1091 ]; | 1091 ]; |
| 1092 this._levelFilterUI = new WebInspector.NamedBitSetFilterUI(levels, this._mes
sageLevelFiltersSetting); | 1092 this._levelFilterUI = new UI.NamedBitSetFilterUI(levels, this._messageLevelF
iltersSetting); |
| 1093 this._levelFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChan
ged, this._filterChanged, this); | 1093 this._levelFilterUI.addEventListener(UI.FilterUI.Events.FilterChanged, this.
_filterChanged, this); |
| 1094 filterBar.addFilter(this._levelFilterUI); | 1094 filterBar.addFilter(this._levelFilterUI); |
| 1095 } | 1095 } |
| 1096 | 1096 |
| 1097 _textFilterChanged(event) { | 1097 _textFilterChanged(event) { |
| 1098 this._filterRegex = this._textFilterUI.regex(); | 1098 this._filterRegex = this._textFilterUI.regex(); |
| 1099 | 1099 |
| 1100 this._filterChanged(); | 1100 this._filterChanged(); |
| 1101 } | 1101 } |
| 1102 | 1102 |
| 1103 /** | 1103 /** |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1123 } | 1123 } |
| 1124 | 1124 |
| 1125 /** | 1125 /** |
| 1126 * @returns {!Object} | 1126 * @returns {!Object} |
| 1127 */ | 1127 */ |
| 1128 get messageURLFilters() { | 1128 get messageURLFilters() { |
| 1129 return this._messageURLFilters; | 1129 return this._messageURLFilters; |
| 1130 } | 1130 } |
| 1131 | 1131 |
| 1132 /** | 1132 /** |
| 1133 * @param {!WebInspector.ConsoleViewMessage} viewMessage | 1133 * @param {!Console.ConsoleViewMessage} viewMessage |
| 1134 * @return {boolean} | 1134 * @return {boolean} |
| 1135 */ | 1135 */ |
| 1136 shouldBeVisible(viewMessage) { | 1136 shouldBeVisible(viewMessage) { |
| 1137 var message = viewMessage.consoleMessage(); | 1137 var message = viewMessage.consoleMessage(); |
| 1138 var executionContext = WebInspector.context.flavor(WebInspector.ExecutionCon
text); | 1138 var executionContext = UI.context.flavor(SDK.ExecutionContext); |
| 1139 if (!message.target()) | 1139 if (!message.target()) |
| 1140 return true; | 1140 return true; |
| 1141 | 1141 |
| 1142 if (!this._view._showAllMessagesCheckbox.checked() && executionContext) { | 1142 if (!this._view._showAllMessagesCheckbox.checked() && executionContext) { |
| 1143 if (message.target() !== executionContext.target()) | 1143 if (message.target() !== executionContext.target()) |
| 1144 return false; | 1144 return false; |
| 1145 if (message.executionContextId && message.executionContextId !== execution
Context.id) { | 1145 if (message.executionContextId && message.executionContextId !== execution
Context.id) { |
| 1146 return false; | 1146 return false; |
| 1147 } | 1147 } |
| 1148 } | 1148 } |
| 1149 | 1149 |
| 1150 if (WebInspector.moduleSetting('hideNetworkMessages').get() && | 1150 if (Common.moduleSetting('hideNetworkMessages').get() && |
| 1151 viewMessage.consoleMessage().source === WebInspector.ConsoleMessage.Mess
ageSource.Network) | 1151 viewMessage.consoleMessage().source === SDK.ConsoleMessage.MessageSource
.Network) |
| 1152 return false; | 1152 return false; |
| 1153 | 1153 |
| 1154 if (WebInspector.moduleSetting('hideViolationMessages').get() && | 1154 if (Common.moduleSetting('hideViolationMessages').get() && |
| 1155 viewMessage.consoleMessage().source === WebInspector.ConsoleMessage.Mess
ageSource.Violation) | 1155 viewMessage.consoleMessage().source === SDK.ConsoleMessage.MessageSource
.Violation) |
| 1156 return false; | 1156 return false; |
| 1157 | 1157 |
| 1158 if (viewMessage.consoleMessage().isGroupMessage()) | 1158 if (viewMessage.consoleMessage().isGroupMessage()) |
| 1159 return true; | 1159 return true; |
| 1160 | 1160 |
| 1161 if (message.type === WebInspector.ConsoleMessage.MessageType.Result || | 1161 if (message.type === SDK.ConsoleMessage.MessageType.Result || |
| 1162 message.type === WebInspector.ConsoleMessage.MessageType.Command) | 1162 message.type === SDK.ConsoleMessage.MessageType.Command) |
| 1163 return true; | 1163 return true; |
| 1164 | 1164 |
| 1165 if (message.url && this._messageURLFilters[message.url]) | 1165 if (message.url && this._messageURLFilters[message.url]) |
| 1166 return false; | 1166 return false; |
| 1167 | 1167 |
| 1168 if (message.level && !this._levelFilterUI.accept(message.level)) | 1168 if (message.level && !this._levelFilterUI.accept(message.level)) |
| 1169 return false; | 1169 return false; |
| 1170 | 1170 |
| 1171 if (this._filterRegex) { | 1171 if (this._filterRegex) { |
| 1172 this._filterRegex.lastIndex = 0; | 1172 this._filterRegex.lastIndex = 0; |
| 1173 if (!viewMessage.matchesFilterRegex(this._filterRegex)) | 1173 if (!viewMessage.matchesFilterRegex(this._filterRegex)) |
| 1174 return false; | 1174 return false; |
| 1175 } | 1175 } |
| 1176 | 1176 |
| 1177 return true; | 1177 return true; |
| 1178 } | 1178 } |
| 1179 | 1179 |
| 1180 /** | 1180 /** |
| 1181 * @return {boolean} | 1181 * @return {boolean} |
| 1182 */ | 1182 */ |
| 1183 shouldBeVisibleByDefault(viewMessage) { | 1183 shouldBeVisibleByDefault(viewMessage) { |
| 1184 return viewMessage.consoleMessage().source !== | 1184 return viewMessage.consoleMessage().source !== |
| 1185 WebInspector.ConsoleMessage.MessageSource.Violation; | 1185 SDK.ConsoleMessage.MessageSource.Violation; |
| 1186 } | 1186 } |
| 1187 | 1187 |
| 1188 reset() { | 1188 reset() { |
| 1189 this._messageURLFilters = {}; | 1189 this._messageURLFilters = {}; |
| 1190 this._messageURLFiltersSetting.set(this._messageURLFilters); | 1190 this._messageURLFiltersSetting.set(this._messageURLFilters); |
| 1191 this._messageLevelFiltersSetting.set({}); | 1191 this._messageLevelFiltersSetting.set({}); |
| 1192 this._view._showAllMessagesCheckbox.inputElement.checked = true; | 1192 this._view._showAllMessagesCheckbox.inputElement.checked = true; |
| 1193 WebInspector.moduleSetting('hideNetworkMessages').set(false); | 1193 Common.moduleSetting('hideNetworkMessages').set(false); |
| 1194 WebInspector.moduleSetting('hideViolationMessages').set(true); | 1194 Common.moduleSetting('hideViolationMessages').set(true); |
| 1195 this._textFilterUI.setValue(''); | 1195 this._textFilterUI.setValue(''); |
| 1196 this._filterChanged(); | 1196 this._filterChanged(); |
| 1197 } | 1197 } |
| 1198 }; | 1198 }; |
| 1199 | 1199 |
| 1200 /** @enum {symbol} */ | 1200 /** @enum {symbol} */ |
| 1201 WebInspector.ConsoleViewFilter.Events = { | 1201 Console.ConsoleViewFilter.Events = { |
| 1202 FilterChanged: Symbol('FilterChanged') | 1202 FilterChanged: Symbol('FilterChanged') |
| 1203 }; | 1203 }; |
| 1204 | 1204 |
| 1205 /** | 1205 /** |
| 1206 * @unrestricted | 1206 * @unrestricted |
| 1207 */ | 1207 */ |
| 1208 WebInspector.ConsoleCommand = class extends WebInspector.ConsoleViewMessage { | 1208 Console.ConsoleCommand = class extends Console.ConsoleViewMessage { |
| 1209 /** | 1209 /** |
| 1210 * @param {!WebInspector.ConsoleMessage} message | 1210 * @param {!SDK.ConsoleMessage} message |
| 1211 * @param {!WebInspector.Linkifier} linkifier | 1211 * @param {!Components.Linkifier} linkifier |
| 1212 * @param {number} nestingLevel | 1212 * @param {number} nestingLevel |
| 1213 */ | 1213 */ |
| 1214 constructor(message, linkifier, nestingLevel) { | 1214 constructor(message, linkifier, nestingLevel) { |
| 1215 super(message, linkifier, nestingLevel); | 1215 super(message, linkifier, nestingLevel); |
| 1216 } | 1216 } |
| 1217 | 1217 |
| 1218 /** | 1218 /** |
| 1219 * @override | 1219 * @override |
| 1220 * @return {!Element} | 1220 * @return {!Element} |
| 1221 */ | 1221 */ |
| 1222 contentElement() { | 1222 contentElement() { |
| 1223 if (!this._contentElement) { | 1223 if (!this._contentElement) { |
| 1224 this._contentElement = createElementWithClass('div', 'console-user-command
'); | 1224 this._contentElement = createElementWithClass('div', 'console-user-command
'); |
| 1225 this._contentElement.message = this; | 1225 this._contentElement.message = this; |
| 1226 | 1226 |
| 1227 this._formattedCommand = createElementWithClass('span', 'source-code'); | 1227 this._formattedCommand = createElementWithClass('span', 'source-code'); |
| 1228 this._formattedCommand.textContent = this.text.replaceControlCharacters(); | 1228 this._formattedCommand.textContent = this.text.replaceControlCharacters(); |
| 1229 this._contentElement.appendChild(this._formattedCommand); | 1229 this._contentElement.appendChild(this._formattedCommand); |
| 1230 | 1230 |
| 1231 if (this._formattedCommand.textContent.length < WebInspector.ConsoleComman
d.MaxLengthToIgnoreHighlighter) { | 1231 if (this._formattedCommand.textContent.length < Console.ConsoleCommand.Max
LengthToIgnoreHighlighter) { |
| 1232 var javascriptSyntaxHighlighter = new WebInspector.DOMSyntaxHighlighter(
'text/javascript', true); | 1232 var javascriptSyntaxHighlighter = new UI.DOMSyntaxHighlighter('text/java
script', true); |
| 1233 javascriptSyntaxHighlighter.syntaxHighlightNode(this._formattedCommand).
then(this._updateSearch.bind(this)); | 1233 javascriptSyntaxHighlighter.syntaxHighlightNode(this._formattedCommand).
then(this._updateSearch.bind(this)); |
| 1234 } else { | 1234 } else { |
| 1235 this._updateSearch(); | 1235 this._updateSearch(); |
| 1236 } | 1236 } |
| 1237 } | 1237 } |
| 1238 return this._contentElement; | 1238 return this._contentElement; |
| 1239 } | 1239 } |
| 1240 | 1240 |
| 1241 _updateSearch() { | 1241 _updateSearch() { |
| 1242 this.setSearchRegex(this.searchRegex()); | 1242 this.setSearchRegex(this.searchRegex()); |
| 1243 } | 1243 } |
| 1244 }; | 1244 }; |
| 1245 | 1245 |
| 1246 /** | 1246 /** |
| 1247 * The maximum length before strings are considered too long for syntax highligh
ting. | 1247 * The maximum length before strings are considered too long for syntax highligh
ting. |
| 1248 * @const | 1248 * @const |
| 1249 * @type {number} | 1249 * @type {number} |
| 1250 */ | 1250 */ |
| 1251 WebInspector.ConsoleCommand.MaxLengthToIgnoreHighlighter = 10000; | 1251 Console.ConsoleCommand.MaxLengthToIgnoreHighlighter = 10000; |
| 1252 | 1252 |
| 1253 /** | 1253 /** |
| 1254 * @unrestricted | 1254 * @unrestricted |
| 1255 */ | 1255 */ |
| 1256 WebInspector.ConsoleCommandResult = class extends WebInspector.ConsoleViewMessag
e { | 1256 Console.ConsoleCommandResult = class extends Console.ConsoleViewMessage { |
| 1257 /** | 1257 /** |
| 1258 * @param {!WebInspector.ConsoleMessage} message | 1258 * @param {!SDK.ConsoleMessage} message |
| 1259 * @param {!WebInspector.Linkifier} linkifier | 1259 * @param {!Components.Linkifier} linkifier |
| 1260 * @param {number} nestingLevel | 1260 * @param {number} nestingLevel |
| 1261 */ | 1261 */ |
| 1262 constructor(message, linkifier, nestingLevel) { | 1262 constructor(message, linkifier, nestingLevel) { |
| 1263 super(message, linkifier, nestingLevel); | 1263 super(message, linkifier, nestingLevel); |
| 1264 } | 1264 } |
| 1265 | 1265 |
| 1266 /** | 1266 /** |
| 1267 * @override | 1267 * @override |
| 1268 * @return {!Element} | 1268 * @return {!Element} |
| 1269 */ | 1269 */ |
| 1270 contentElement() { | 1270 contentElement() { |
| 1271 var element = super.contentElement(); | 1271 var element = super.contentElement(); |
| 1272 element.classList.add('console-user-command-result'); | 1272 element.classList.add('console-user-command-result'); |
| 1273 this.updateTimestamp(false); | 1273 this.updateTimestamp(false); |
| 1274 return element; | 1274 return element; |
| 1275 } | 1275 } |
| 1276 }; | 1276 }; |
| 1277 | 1277 |
| 1278 /** | 1278 /** |
| 1279 * @unrestricted | 1279 * @unrestricted |
| 1280 */ | 1280 */ |
| 1281 WebInspector.ConsoleGroup = class { | 1281 Console.ConsoleGroup = class { |
| 1282 /** | 1282 /** |
| 1283 * @param {?WebInspector.ConsoleGroup} parentGroup | 1283 * @param {?Console.ConsoleGroup} parentGroup |
| 1284 * @param {?WebInspector.ConsoleViewMessage} groupMessage | 1284 * @param {?Console.ConsoleViewMessage} groupMessage |
| 1285 */ | 1285 */ |
| 1286 constructor(parentGroup, groupMessage) { | 1286 constructor(parentGroup, groupMessage) { |
| 1287 this._parentGroup = parentGroup; | 1287 this._parentGroup = parentGroup; |
| 1288 this._nestingLevel = parentGroup ? parentGroup.nestingLevel() + 1 : 0; | 1288 this._nestingLevel = parentGroup ? parentGroup.nestingLevel() + 1 : 0; |
| 1289 this._messagesHidden = | 1289 this._messagesHidden = |
| 1290 groupMessage && groupMessage.collapsed() || this._parentGroup && this._p
arentGroup.messagesHidden(); | 1290 groupMessage && groupMessage.collapsed() || this._parentGroup && this._p
arentGroup.messagesHidden(); |
| 1291 } | 1291 } |
| 1292 | 1292 |
| 1293 /** | 1293 /** |
| 1294 * @return {!WebInspector.ConsoleGroup} | 1294 * @return {!Console.ConsoleGroup} |
| 1295 */ | 1295 */ |
| 1296 static createTopGroup() { | 1296 static createTopGroup() { |
| 1297 return new WebInspector.ConsoleGroup(null, null); | 1297 return new Console.ConsoleGroup(null, null); |
| 1298 } | 1298 } |
| 1299 | 1299 |
| 1300 /** | 1300 /** |
| 1301 * @return {boolean} | 1301 * @return {boolean} |
| 1302 */ | 1302 */ |
| 1303 messagesHidden() { | 1303 messagesHidden() { |
| 1304 return this._messagesHidden; | 1304 return this._messagesHidden; |
| 1305 } | 1305 } |
| 1306 | 1306 |
| 1307 /** | 1307 /** |
| 1308 * @return {number} | 1308 * @return {number} |
| 1309 */ | 1309 */ |
| 1310 nestingLevel() { | 1310 nestingLevel() { |
| 1311 return this._nestingLevel; | 1311 return this._nestingLevel; |
| 1312 } | 1312 } |
| 1313 | 1313 |
| 1314 /** | 1314 /** |
| 1315 * @return {?WebInspector.ConsoleGroup} | 1315 * @return {?Console.ConsoleGroup} |
| 1316 */ | 1316 */ |
| 1317 parentGroup() { | 1317 parentGroup() { |
| 1318 return this._parentGroup || this; | 1318 return this._parentGroup || this; |
| 1319 } | 1319 } |
| 1320 }; | 1320 }; |
| 1321 | 1321 |
| 1322 | 1322 |
| 1323 /** | 1323 /** |
| 1324 * @implements {WebInspector.ActionDelegate} | 1324 * @implements {UI.ActionDelegate} |
| 1325 * @unrestricted | 1325 * @unrestricted |
| 1326 */ | 1326 */ |
| 1327 WebInspector.ConsoleView.ActionDelegate = class { | 1327 Console.ConsoleView.ActionDelegate = class { |
| 1328 /** | 1328 /** |
| 1329 * @override | 1329 * @override |
| 1330 * @param {!WebInspector.Context} context | 1330 * @param {!UI.Context} context |
| 1331 * @param {string} actionId | 1331 * @param {string} actionId |
| 1332 * @return {boolean} | 1332 * @return {boolean} |
| 1333 */ | 1333 */ |
| 1334 handleAction(context, actionId) { | 1334 handleAction(context, actionId) { |
| 1335 switch (actionId) { | 1335 switch (actionId) { |
| 1336 case 'console.show': | 1336 case 'console.show': |
| 1337 WebInspector.console.show(); | 1337 Common.console.show(); |
| 1338 return true; | 1338 return true; |
| 1339 case 'console.clear': | 1339 case 'console.clear': |
| 1340 WebInspector.ConsoleView.clearConsole(); | 1340 Console.ConsoleView.clearConsole(); |
| 1341 return true; | 1341 return true; |
| 1342 case 'console.clear.history': | 1342 case 'console.clear.history': |
| 1343 WebInspector.ConsoleView.instance()._clearHistory(); | 1343 Console.ConsoleView.instance()._clearHistory(); |
| 1344 return true; | 1344 return true; |
| 1345 } | 1345 } |
| 1346 return false; | 1346 return false; |
| 1347 } | 1347 } |
| 1348 }; | 1348 }; |
| 1349 | 1349 |
| 1350 /** | 1350 /** |
| 1351 * @typedef {{messageIndex: number, matchIndex: number}} | 1351 * @typedef {{messageIndex: number, matchIndex: number}} |
| 1352 */ | 1352 */ |
| 1353 WebInspector.ConsoleView.RegexMatchRange; | 1353 Console.ConsoleView.RegexMatchRange; |
| OLD | NEW |