Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js

Issue 2493373002: DevTools: rename WebInspector into modules. (Closed)
Patch Set: for bots Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698