57b42627a56ba6fcb0e2d8acafcc80f7ba340fc2
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2015-03-27  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: Add Setter Icon for ObjectTreeView
4         https://bugs.webkit.org/show_bug.cgi?id=143129
5
6         Reviewed by Timothy Hatcher.
7
8         * UserInterface/Images/Pencil.svg: Added.
9         New icon used to indicate setter properties.
10
11         * Localizations/en.lproj/localizedStrings.js:
12         Remove "Read only" and replace with "Setter".
13
14         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
15         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
16         (WebInspector.ObjectTreeArrayIndexTreeElement):
17         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
18         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
19         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
20         Update cases that created setter / getter elements.
21         
22         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
23         (WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
24         (WebInspector.ObjectTreeBaseTreeElement.prototype.createInteractiveGetterElement): Deleted.
25         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
26         (.object-tree-property :matches(.getter, .setter)):
27         (.object-tree-property .spacer):
28         (.object-tree-property .getter):
29         (.object-tree-property .setter):
30         (.object-tree-property .getter + .setter):
31         New setter element and styles. Setters are always non-interactable right now.
32
33 2015-03-27  Joseph Pecoraro  <pecoraro@apple.com>
34
35         Web Inspector: Uncaught Exceptions with Context Menus
36         https://bugs.webkit.org/show_bug.cgi?id=143162
37
38         Reviewed by Timothy Hatcher.
39
40         * UserInterface/Protocol/InspectorFrontendAPI.js:
41         (InspectorFrontendAPI.contextMenuCleared):
42
43 2015-03-27  Joseph Pecoraro  <pecoraro@apple.com>
44
45         Web Inspector: Disable editing in Metrics section while it is not working
46         https://bugs.webkit.org/show_bug.cgi?id=143165
47
48         Reviewed by Timothy Hatcher.
49
50         * UserInterface/Views/BoxModelDetailsSectionRow.js:
51         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement):
52         (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
53         Disable double click to edit while it is not working. The value setter
54         and add methods no longer exist.
55
56 2015-03-27  Joseph Pecoraro  <pecoraro@apple.com>
57
58         Web Inspector: Uncaught Exceptions evaluating code while paused
59         https://bugs.webkit.org/show_bug.cgi?id=143163
60
61         Reviewed by Timothy Hatcher.
62
63         * UserInterface/Models/CallFrame.js:
64         (WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
65         We define a property named "valueForCaseInsensitiveKey" on Object.prototype
66         that is readonly. So we should avoid Object.prototype when building our
67         result list. This should probably move to a Map object eventually.
68
69 2015-03-27  Joseph Pecoraro  <pecoraro@apple.com>
70
71         Web Inspector: Remove unused testing properties
72         https://bugs.webkit.org/show_bug.cgi?id=143156
73
74         Reviewed by Timothy Hatcher.
75
76         * UserInterface/Views/LegacyConsoleMessageImpl.js:
77         (WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
78         * UserInterface/Views/Section.js:
79         (WebInspector.Section.prototype.get subtitleAsTextForTest): Deleted.
80
81 2015-03-27  Joseph Pecoraro  <pecoraro@apple.com>
82
83         Web Inspector: Uncaught Exception: TypeError: Attempted to assign to readonly - DOMNodeDetailsSidebarPanel.js
84         https://bugs.webkit.org/show_bug.cgi?id=143139
85
86         Reviewed by Timothy Hatcher.
87
88         DataGridNodes do not have a selectable setter. TreeElements do.
89         DataGridNodes are always selectable. Match current behavior by
90         removing all instances of attempting to set the selectability
91         which would, under strict mode, result in an error.
92
93         * UserInterface/Views/ApplicationCacheFrameContentView.js:
94         (WebInspector.ApplicationCacheFrameContentView.prototype._populateDataGrid):
95         * UserInterface/Views/CookieStorageContentView.js:
96         (WebInspector.CookieStorageContentView.prototype._rebuildTable):
97         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
98         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._createAttributesDataGrid):
99         (WebInspector.DOMNodeDetailsSidebarPanel):
100         * UserInterface/Views/DOMStorageContentView.js:
101         (WebInspector.DOMStorageContentView.prototype.reset):
102         * UserInterface/Views/DataGrid.js:
103
104 2015-03-26  Timothy Hatcher  <timothy@apple.com>
105
106         Web Inspector: Convert more misc View classes to ES6
107         https://bugs.webkit.org/show_bug.cgi?id=143128
108
109         Reviewed by Joseph Pecoraro.
110
111         * UserInterface/Views/CompletionSuggestionsView.js:
112         * UserInterface/Views/ComputedStyleDetailsPanel.js:
113         * UserInterface/Views/DashboardContainerView.js:
114         * UserInterface/Views/DashboardView.js:
115         * UserInterface/Views/DebuggerDashboardView.js:
116         * UserInterface/Views/DefaultDashboardView.js:
117         * UserInterface/Views/FilterBarButton.js:
118         * UserInterface/Views/MetricsStyleDetailsPanel.js:
119         * UserInterface/Views/ObjectPreviewView.js:
120         * UserInterface/Views/ObjectTreeView.js:
121         * UserInterface/Views/QuickConsole.js:
122         * UserInterface/Views/ReplayDashboardView.js:
123         * UserInterface/Views/RulesStyleDetailsPanel.js:
124         * UserInterface/Views/StyleDetailsPanel.js:
125         Converted to ES6 classes.
126
127 2015-03-26  Timothy Hatcher  <timothy@apple.com>
128
129         Web Inspector: Convert TextEditor classes to ES6
130         https://bugs.webkit.org/show_bug.cgi?id=143127
131
132         Reviewed by Joseph Pecoraro.
133
134         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
135         Removed a comment about const, we can't use it in strict mode / classes.
136
137         * UserInterface/Views/SourceCodeTextEditor.js:
138         * UserInterface/Views/TextEditor.js:
139         Converted to ES6 classes.
140
141 2015-03-26  Nikita Vasilyev  <nvasilyev@apple.com>
142
143         Web Inspector: clicking on console record while REPL is focused does not select a new record
144         https://bugs.webkit.org/show_bug.cgi?id=142171
145
146         Reviewed by Timothy Hatcher.
147
148         * UserInterface/Views/LogContentView.js:
149         (WebInspector.LogContentView.prototype._mousedown):
150
151 2015-03-26  Andres Gomez  <agomez@igalia.com>
152
153         [GTK] Web Inspector: New Images for Console Types
154         https://bugs.webkit.org/show_bug.cgi?id=142301
155
156         Reviewed by Joseph Pecoraro.
157
158         Add more free icons and for the Web Inspector in GTK+.
159
160         * UserInterface/Images/gtk/Eye.svg: Added.
161         * UserInterface/Images/gtk/Frames.png: Added.
162         * UserInterface/Images/gtk/Frames@2x.png: Added.
163         * UserInterface/Images/gtk/FramesLarge.png: Added.
164         * UserInterface/Images/gtk/FramesLarge@2x.png: Added.
165         * UserInterface/Images/gtk/Reload.svg:
166         * UserInterface/Images/gtk/ReloadFull.svg: Added.
167         * UserInterface/Images/gtk/TypeBoolean.svg: Added.
168         * UserInterface/Images/gtk/TypeNull.svg: Added.
169         * UserInterface/Images/gtk/TypeNumber.svg: Added.
170         * UserInterface/Images/gtk/TypeObject.svg: Added.
171         * UserInterface/Images/gtk/TypeRegex.svg: Added.
172         * UserInterface/Images/gtk/TypeString.svg: Added.
173         * UserInterface/Images/gtk/TypeSymbol.svg: Added.
174         * UserInterface/Images/gtk/TypeUndefined.svg: Added.
175
176 2015-03-26  Joseph Pecoraro  <pecoraro@apple.com>
177
178         Web Inspector: ES6: Provide a better view for Classes in the console
179         https://bugs.webkit.org/show_bug.cgi?id=142999
180
181         Reviewed by Timothy Hatcher.
182
183         * UserInterface/Protocol/RemoteObject.js:
184         (WebInspector.RemoteObject):
185         (WebInspector.RemoteObject.fromPrimitiveValue):
186         (WebInspector.RemoteObject.fromPayload):
187         (WebInspector.RemoteObject.prototype.get classPrototype):
188         (WebInspector.RemoteObject.prototype.isClass):
189         Update our RemoteObject model object for the new subtype
190         and its unique properties.
191
192         * UserInterface/Views/FormattedValue.js:
193         (WebInspector.FormattedValue.createElementForTypesAndValue):
194         (WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
195         Better handle "class", as it is a new function subtype.
196
197         * UserInterface/Views/LegacyConsoleMessageImpl.js:
198         (WebInspector.LegacyConsoleMessageImpl):
199         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
200         Format a "class" with ObjectTreeView.
201
202         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
203         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
204         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
205         (.object-tree-property .getter.disabled):
206         (.object-tree-property .getter:not(.disabled):hover):
207         (.object-tree-property .getter:hover): Deleted.
208         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
209         In ClassAPI mode, you cannot invoke a getter since we don't have
210         an instance to invoke it on. So disable interactivity with getters.
211
212         * UserInterface/Views/ObjectTreeView.js:
213         (WebInspector.ObjectTreeView):
214         Update the modes to include an API mode for instances and classes.
215
216         (WebInspector.ObjectTreeView.defaultModeForObject):
217         * UserInterface/Views/SourceCodeTextEditor.js:
218         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
219         Simplify ObjectTree construction to automatically determine mode based
220         on the RemoteObject that was provided.
221
222         * Localizations/en.lproj/localizedStrings.js:
223         "Getter" tooltip.
224
225 2015-03-26  Timothy Hatcher  <timothy@apple.com>
226
227         Web Inspector: Convert TreeElement classes to ES6
228         https://bugs.webkit.org/show_bug.cgi?id=143111
229
230         Reviewed by Joseph Pecoraro.
231
232         * UserInterface/Views/ApplicationCacheFrameTreeElement.js:
233         * UserInterface/Views/ApplicationCacheManifestTreeElement.js:
234         * UserInterface/Views/BreakpointTreeElement.js:
235         * UserInterface/Views/CallFrameTreeElement.js:
236         * UserInterface/Views/ContentFlowTreeElement.js:
237         * UserInterface/Views/CookieStorageTreeElement.js:
238         * UserInterface/Views/DOMStorageTreeElement.js:
239         * UserInterface/Views/DOMTreeElement.js:
240         * UserInterface/Views/DOMTreeOutline.js:
241         * UserInterface/Views/DatabaseHostTreeElement.js:
242         * UserInterface/Views/DatabaseTableTreeElement.js:
243         * UserInterface/Views/DatabaseTreeElement.js:
244         * UserInterface/Views/FolderTreeElement.js:
245         * UserInterface/Views/FolderizedTreeElement.js:
246         * UserInterface/Views/FrameTreeElement.js:
247         * UserInterface/Views/GeneralTreeElement.js:
248         * UserInterface/Views/IndexedDatabaseHostTreeElement.js:
249         * UserInterface/Views/IndexedDatabaseObjectStoreIndexTreeElement.js:
250         * UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:
251         * UserInterface/Views/IndexedDatabaseTreeElement.js:
252         * UserInterface/Views/LegacyConsoleMessageImpl.js:
253         * UserInterface/Views/LogTreeElement.js:
254         * UserInterface/Views/NavigationSidebarPanel.js:
255         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
256         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
257         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
258         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
259         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
260         * UserInterface/Views/ObjectTreeView.js:
261         * UserInterface/Views/ProfileNodeTreeElement.js:
262         * UserInterface/Views/PropertiesSection.js:
263         * UserInterface/Views/ResourceTreeElement.js:
264         * UserInterface/Views/ScriptTreeElement.js:
265         * UserInterface/Views/SearchResultTreeElement.js:
266         * UserInterface/Views/SourceCodeTimelineTreeElement.js:
267         * UserInterface/Views/SourceCodeTreeElement.js:
268         * UserInterface/Views/SourceMapResourceTreeElement.js:
269         * UserInterface/Views/StorageTreeElement.js:
270         * UserInterface/Views/TimelineDataGrid.js:
271         * UserInterface/Views/TimelineRecordTreeElement.js:
272         * UserInterface/Views/TreeElementStatusButton.js:
273         * UserInterface/Views/TreeOutline.js:
274         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
275         * UserInterface/Views/TypePropertiesSection.js:
276         Converted to ES6 classes where possible.
277
278 2015-03-26  Timothy Hatcher  <timothy@apple.com>
279
280         Web Inspector: Convert sidebar classes to ES6
281         https://bugs.webkit.org/show_bug.cgi?id=143108
282
283         Reviewed by Joseph Pecoraro.
284
285         * UserInterface/Models/KeyboardShortcut.js:
286         (WebInspector.KeyboardShortcut._handleKeyDown): Continue if callback is null.
287         (WebInspector.KeyboardShortcut.prototype.set callback): Added.
288
289         * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
290         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
291         * UserInterface/Views/DOMDetailsSidebarPanel.js:
292         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
293         * UserInterface/Views/DebuggerSidebarPanel.js:
294         * UserInterface/Views/DetailsSidebarPanel.js:
295         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
296         * UserInterface/Views/NavigationSidebarPanel.js:
297         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
298         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
299         * UserInterface/Views/ResourceSidebarPanel.js:
300         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
301         * UserInterface/Views/Sidebar.js:
302         * UserInterface/Views/SidebarPanel.js:
303         * UserInterface/Views/TimelineSidebarPanel.js:
304         Converted to ES6 classes.
305
306 2015-03-26  Timothy Hatcher  <timothy@apple.com>
307
308         Web Inspector: Convert some View classes to ES6 classes
309         https://bugs.webkit.org/show_bug.cgi?id=143107
310
311         Reviewed by Joseph Pecoraro.
312
313         * UserInterface/Protocol/InspectorBackend.js:
314         * UserInterface/Protocol/InspectorFrontendAPI.js:
315         (InspectorFrontendAPI.contextMenuItemSelected): Updated to the right function path.
316         * UserInterface/Views/BoxModelDetailsSectionRow.js:
317         * UserInterface/Views/BreakpointActionView.js:
318         * UserInterface/Views/CodeMirrorAdditions.js:
319         * UserInterface/Views/ColorPicker.js:
320         * UserInterface/Views/ColorWheel.js:
321         * UserInterface/Views/ContextMenu.js:
322         * UserInterface/Views/DOMTreeElementPathComponent.js:
323         * UserInterface/Views/DetailsSection.js:
324         * UserInterface/Views/DetailsSectionDataGridRow.js:
325         * UserInterface/Views/DetailsSectionGroup.js:
326         * UserInterface/Views/DetailsSectionPropertiesRow.js:
327         * UserInterface/Views/DetailsSectionRow.js:
328         * UserInterface/Views/DetailsSectionSimpleRow.js:
329         * UserInterface/Views/DetailsSectionTextRow.js:
330         * UserInterface/Views/EditingSupport.js:
331         * UserInterface/Views/EventListenerSection.js:
332         * UserInterface/Views/EventListenerSectionGroup.js:
333         * UserInterface/Views/FilterBar.js:
334         * UserInterface/Views/FindBanner.js:
335         * UserInterface/Views/GeneralTreeElementPathComponent.js:
336         * UserInterface/Views/GoToLineDialog.js:
337         * UserInterface/Views/GradientSlider.js:
338         * UserInterface/Views/HierarchicalPathComponent.js:
339         * UserInterface/Views/HierarchicalPathNavigationItem.js:
340         * UserInterface/Views/HoverMenu.js:
341         * UserInterface/Views/Popover.js:
342         * UserInterface/Views/ProbeSetDetailsSection.js:
343         * UserInterface/Views/ResourceTimelineDataGridNodePathComponent.js:
344         * UserInterface/Views/SearchBar.js:
345         * UserInterface/Views/Slider.js:
346         Converted to ES6 classes.
347
348 2015-03-26  Timothy Hatcher  <timothy@apple.com>
349
350         Web Inspector: Convert Base and Protocol files to ES6 classes
351         https://bugs.webkit.org/show_bug.cgi?id=143106
352
353         Reviewed by Joseph Pecoraro.
354
355         * UserInterface/Base/EventListener.js:
356         * UserInterface/Base/EventListenerSet.js:
357         * UserInterface/Protocol/ApplicationCacheObserver.js:
358         * UserInterface/Protocol/CSSObserver.js:
359         * UserInterface/Protocol/ConsoleObserver.js:
360         * UserInterface/Protocol/DOMObserver.js:
361         * UserInterface/Protocol/DOMStorageObserver.js:
362         * UserInterface/Protocol/DatabaseObserver.js:
363         * UserInterface/Protocol/DebuggerObserver.js:
364         * UserInterface/Protocol/InspectorBackend.js:
365         * UserInterface/Protocol/InspectorObserver.js:
366         * UserInterface/Protocol/LayerTreeObserver.js:
367         * UserInterface/Protocol/MessageDispatcher.js:
368         * UserInterface/Protocol/NetworkObserver.js:
369         * UserInterface/Protocol/PageObserver.js:
370         * UserInterface/Protocol/RemoteObject.js:
371         * UserInterface/Protocol/ReplayObserver.js:
372         * UserInterface/Protocol/RuntimeObserver.js:
373         * UserInterface/Protocol/TimelineObserver.js:
374         Converted to ES6 classes where possible.
375
376 2015-03-25  Tobias Reiss  <tobi+webkit@basecode.de>
377
378         Web Inspector: Add ESLint "Disallow Undeclared Variables" rule and enable ES6 env
379         https://bugs.webkit.org/show_bug.cgi?id=143062
380
381         Reviewed by Joseph Pecoraro.
382
383         ESLint: Add support for es6 environment and "no-undef" rule which disallows
384         use of undeclared variables unless mentioned in a /*global */ block.
385
386         * .eslintrc:
387
388 2015-03-25  Nikita Vasilyev  <nvasilyev@apple.com>
389
390         Web Inspector: console.table with source code location look poor
391         https://bugs.webkit.org/show_bug.cgi?id=142068
392
393         Reviewed by Timothy Hatcher.
394
395         * UserInterface/Views/LegacyConsoleMessageImpl.js:
396         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
397         Remove dataGridContainer as it is an unnecessary span element.
398         * UserInterface/Views/LogContentView.css:
399         (.console-messages .data-grid):
400
401 2015-03-24  Joseph Pecoraro  <pecoraro@apple.com>
402
403         Web Inspector: IndexedDB / Databases ContentViews should have refresh button
404         https://bugs.webkit.org/show_bug.cgi?id=142996
405
406         Reviewed by Timothy Hatcher.
407
408         * Localizations/en.lproj/localizedStrings.js:
409         Remove unused strings.
410
411         * UserInterface/Images/ReloadFull.svg: Added.
412         This is the same as Reload.svg but adjusted to fill the viewbox edge to edge.
413         The only change is to the viewbox.
414
415         * UserInterface/Protocol/RemoteObject.js:
416         (WebInspector.RemoteObject.prototype.release):
417         Some clients would call release not knowing if this was an object or not.
418         Act gracefully in the case that this was not an object that needs a
419         remote release.
420
421         * UserInterface/Views/DatabaseTableContentView.js:
422         (WebInspector.DatabaseTableContentView):
423         (WebInspector.DatabaseTableContentView.prototype.get navigationItems):
424         (WebInspector.DatabaseTableContentView.prototype._queryError):
425         (WebInspector.DatabaseTableContentView.prototype._refreshButtonClicked):
426         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
427         (WebInspector.IndexedDatabaseObjectStoreContentView):
428         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.get navigationItems):
429         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
430         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._refreshButtonClicked):
431         Give the storage content views a refresh button to reload the content.
432
433 2015-03-24  Joseph Pecoraro  <pecoraro@apple.com>
434
435         Setter should have a single formal parameter, Getter no parameters
436         https://bugs.webkit.org/show_bug.cgi?id=142903
437
438         Reviewed by Geoffrey Garen.
439
440         * UserInterface/Views/GradientSlider.js:
441         (WebInspector.GradientSliderKnob.prototype.get wellColor):
442         Fix a getter that was incorrectly taking a parameter.
443
444 2015-03-24  Tobias Reiss  <tobi+webkit@basecode.de>
445
446         Web Inspector: REGRESSION (r179286): ReferenceError: Can't find variable: selector
447         https://bugs.webkit.org/show_bug.cgi?id=143022
448
449         Reviewed by Timothy Hatcher.
450
451         Fix a regression where a missing variable statement causes a ReferenceError.
452
453         * UserInterface/Models/DOMNodeStyles.js:
454
455 2015-03-24  Tobias Reiss  <tobi+webkit@basecode.de>
456
457         Web Inspector: Adopt ES6 Class Syntax for CSSStyleDeclarationTextEditor
458         https://bugs.webkit.org/show_bug.cgi?id=143019
459
460         Reviewed by Timothy Hatcher.
461
462         - Convert CSSStyleDeclarationTextEditor to use class syntax
463         - Convert constructor functions to constructor methods
464         - Convert "constructor.method" to class static methods where possible
465         - Convert all methods to method syntax, eliminate commas between methods
466         - Convert all superclass calls in classes to use "super"
467         - Removed FIXME from WebInspector.Object subclasses, added calls to super.
468         - Fixed strict mode issues now that classes enforce strict mode (see below).
469
470         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
471         Many function declarations modified.
472
473 2015-03-24  Joseph Pecoraro  <pecoraro@apple.com>
474
475         Web Inspector: Workaround issue causing uncaught exception in Inspector
476         https://bugs.webkit.org/show_bug.cgi?id=143015
477
478         Reviewed by Timothy Hatcher.
479
480         Workaround <https://webkit.org/b/143012> and avoid early returning in constructors.
481
482         * UserInterface/Controllers/ReplayManager.js:
483         (WebInspector.ReplayManager.class.ReplayManager):
484
485 2015-03-06  Brian J. Burg  <burg@cs.washington.edu>
486
487         Web Inspector: unify resizer implementations used by DataGrid and Sidebar
488         https://bugs.webkit.org/show_bug.cgi?id=142407
489
490         Reviewed by Timothy Hatcher.
491
492         Both of these implementations do the same thing slightly differently. Unify the code
493         and use the "glass pane" technique to preserve cursor while dragging over links or text.
494
495         This patch implements vertical and horizontal rule orientations. Further refactorings
496         to use this class may need to add "Indeterminate" orientation to support moving the inspector
497         window by its fake toolbar element.
498
499         * UserInterface/Main.html:
500         * UserInterface/Views/DataGrid.css:
501         (.data-grid .resizer):
502         (.data-grid-resizer): Deleted.
503         * UserInterface/Views/DataGrid.js: Store Resizer instances rather than resizer elements.
504         Use symbols to secretly store neighbor column ids on the resizer objects. Stop using
505         WebInspector.elementDragStart, as I would like to deprecate it in favor of Resizer instances.
506
507         (WebInspector.DataGrid):
508         (WebInspector.DataGrid.prototype._positionResizerElements):
509         (WebInspector.DataGrid.prototype.resizerDragStarted):
510         (WebInspector.DataGrid.prototype.resizerDragging):
511         (WebInspector.DataGrid.prototype.resizerDragEnded):
512         (WebInspector.DataGrid.prototype._startResizerDragging): Deleted.
513         (WebInspector.DataGrid.prototype._resizerDragging): Deleted.
514         (WebInspector.DataGrid.prototype._endResizerDragging): Deleted.
515         * UserInterface/Views/Resizer.css:
516         (.resizer):
517         (.resizer.vertical-rule):
518         (.resizer.horizontal-rule):
519         (.glass-pane-for-drag):
520         * UserInterface/Views/Resizer.js: Added.
521         (WebInspector.Resizer):
522         (WebInspector.Resizer.prototype.get element):
523         (WebInspector.Resizer.prototype.get orientation):
524         (WebInspector.Resizer.prototype.get initialPosition):
525         (WebInspector.Resizer.prototype._currentPosition):
526         (WebInspector.Resizer.prototype._resizerMouseDown):
527         (WebInspector.Resizer.prototype._resizerMouseMoved):
528         (WebInspector.Resizer.prototype._resizerMouseUp):
529         * UserInterface/Views/Sidebar.css:
530         (.sidebar > .resizer): Deleted.
531         * UserInterface/Views/Sidebar.js:
532         (WebInspector.Sidebar):
533         (WebInspector.Sidebar.prototype.resizerDragStarted):
534         (WebInspector.Sidebar.prototype.resizerDragging):
535         (WebInspector.Sidebar.prototype.resizerDragEnded):
536         (WebInspector.Sidebar.prototype._navigationItemSelected):
537         (WebInspector.Sidebar.prototype._resizerMouseDown): Deleted.
538         (WebInspector.Sidebar.prototype._resizerMouseMoved): Deleted.
539         (WebInspector.Sidebar.prototype._resizerMouseUp): Deleted.
540
541 2015-03-17  Jono Wells  <jonowells@apple.com>
542
543         Web Inspector: Debugger sidebar should have a filter button for breakpoints
544         https://bugs.webkit.org/show_bug.cgi?id=142779
545
546         Reviewed by Timothy Hatcher.
547
548         Add the infrastructure for activation filter buttons that can appear next to the text filters at the bottom
549         of any navigation sidebar panel. These filter bar buttons have defined within them a function that returns
550         a boolean value that indicates whether the input, typically a tree element, should be filtered or not.
551
552         This infrastructure is then used to create a filter for the debugger sidebar that, when applied, only shows
553         scripts that have breakpoints set on them.
554
555         * Localizations/en.lproj/localizedStrings.js: Updated.
556         * UserInterface/Main.html: Files added.
557
558         * UserInterface/Views/DebuggerSidebarPanel.js:
559         (WebInspector.DebuggerSidebarPanel.showResourcesWithChildrenOnlyFilterFunction):
560         (WebInspector.DebuggerSidebarPanel):
561         (WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint): Drive-by fix.
562         Add filter button to filter bar.
563
564         * UserInterface/Views/FilterBar.css:
565         (.filter-bar > .navigation-bar > .item):
566         Style filter button.
567
568         * UserInterface/Views/FilterBar.js:
569         (WebInspector.FilterBar):
570         (WebInspector.FilterBar.prototype.get filters):
571         (WebInspector.FilterBar.prototype.set filters):
572         (WebInspector.FilterBar.prototype.hasActiveFilters):
573         (WebInspector.FilterBar.prototype._handleFilterChanged):
574         (WebInspector.FilterBar.prototype._inputFieldChanged): Deleted.
575         Create space for filter bar buttons and set up event handlers to deal with them.
576
577         * UserInterface/Views/FilterBarButton.js: Copied from Source/WebInspectorUI/UserInterface/Views/FilterBar.css.
578         (WebInspector.FilterBarButton):
579         (WebInspector.FilterBarButton.prototype.get filterFunction):
580         (WebInspector.FilterBarButton.prototype.toggle):
581         Create class for a filter bar button that stores a filter function.
582
583         * UserInterface/Views/NavigationSidebarPanel.js:
584         (WebInspector.NavigationSidebarPanel):
585         (WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
586         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
587         (WebInspector.NavigationSidebarPanel.prototype._filterDidChange):
588         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
589         (WebInspector.NavigationSidebarPanel.prototype._textFilterDidChange): Deleted.
590         Add functionality to support button filters and process their corresponding functions correctly when filtering.
591
592 2015-03-22  Matt Baker  <mattbaker@apple.com>
593
594         Web Inspector: Adopt ES6 Class Syntax for all Controller Objects
595         https://bugs.webkit.org/show_bug.cgi?id=142890
596
597         Reviewed by Joseph Pecoraro.
598
599         - Convert all UserInterface/Controllers objects to classes
600         - Convert constructor functions to constructor methods
601         - Convert "constructor.method" to class static methods where possible
602         - Convert all methods to method syntax, eliminate commas between methods
603         - Convert all superclass calls in classes to use "super"
604         - Removed FIXME from WebInspector.Object subclasses, added calls to super.
605         - Fixed strict mode issues now that classes enforce strict mode (see below).
606
607         * Tools/PrettyPrinting/Formatter.js:
608         * Tools/PrettyPrinting/FormatterContentBuilder.js:
609         Updated to match corresponding files in UserInterface/Controllers.
610
611         * UserInterface/Controllers/*.js:
612         Many files modified mostly mechanically (regex find-replace).
613
614         * UserInterface/Controllers/CodeMirrorCompletionController.js:
615         * UserInterface/Controllers/FormatterContentBuilder.js:
616         Replaced const usage with var. Use of const is prohibited in strict mode, which is implicit within a class.
617
618         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
619         * UserInterface/Controllers/DOMTreeManager.js:
620         Moved function declarations out of if statements. Strict mode does not allow function declarations in a lexically nested statement.
621
622 2015-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
623
624         Web Inspector: Fast typing lags in the Styles sidebar or Console
625         https://bugs.webkit.org/show_bug.cgi?id=142919
626
627         Asynchronous autocomplete causes a race condition in CodeMirror,
628         which results in skipped characters in while typing. Completing immediately
629         fixes the issues.
630
631         Reviewed by Timothy Hatcher.
632
633         * UserInterface/Controllers/CodeMirrorCompletionController.js:
634         (WebInspector.CodeMirrorCompletionController.prototype.hideCompletions):
635         (WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
636         (WebInspector.CodeMirrorCompletionController.prototype.):
637
638 2015-03-19  Joseph Pecoraro  <pecoraro@apple.com>
639
640         Web Inspector: Adopt ES6 Class Syntax for all Model Objects
641         https://bugs.webkit.org/show_bug.cgi?id=142858
642
643         Reviewed by Timothy Hatcher.
644
645           - Convert WebInspector.Object to a class
646           - Convert all UserInterface/Models objects to classes
647           - Convert constructor functions to constructor methods
648           - Convert "constructor.method" to class static methods where possible
649           - Convert all methods to method syntax, eliminate commas between methods
650           - Convert all superclass calls in classes to use "super"
651           - Workaround <https://webkit.org/b/142862> and add empty constructors
652           - Added "deprecated" prefix to addConstructorFunctions, since it is not needed with classes
653           - Added many missing calls to super in constructors
654           - Added FIXME to WebInspector.Object subclasses not yet moved to classes.
655           - Cleaned up SourceMap global properties, moved to constructor instead of prototype
656           - Cleaned up Timeline factory constructor to static "create" factory method
657           - Fixed any style issues noticed in the mass edit
658           - Fixed strict mode issues now that classes enforce strict mode
659               - RunLoopTimelineRecord.js was missing a `var` for a local variable
660               - "const" is not allowed, converted to "var"
661               - "arguments.callee" is not allowed in strict mode
662
663         * UserInterface/**/*.js:
664         Many files modified mostly mechanically.
665
666 2015-03-19  Jono Wells  <jonowells@apple.com>
667
668         Web Inspector: Debugger sidebar header should say "Scripts" instead of "Breakpoints", appear only on pause
669         https://bugs.webkit.org/show_bug.cgi?id=142847
670
671         Reviewed by Timothy Hatcher.
672
673         Add a `paused` class on the debugger sidebar panel. Use that class to adjust the sidebar styles so that, when
674         the debugger is not paused: there is no header for the scripts section, there is no border beneath the scripts
675         section, and the scripts section cannot be collapsed (which could be done while the debugger is paused). The
676         header has changed to say "Scripts" instead of "Breakpoints" when it is showing.
677
678         * UserInterface/Views/DebuggerSidebarPanel.css:
679         (.sidebar > .panel.navigation.debugger .details-section.scripts):
680         (.sidebar > .panel.navigation.debugger .details-section.scripts .header):
681         (.sidebar > .panel.navigation.debugger .details-section.scripts.collapsed > .content):
682         (.sidebar > .panel.navigation.debugger.paused .details-section.scripts):
683         (.sidebar > .panel.navigation.debugger.paused .details-section.scripts .header):
684         (.sidebar > .panel.navigation.debugger.paused .details-section.scripts.collapsed > .content):
685         Adjust styles to hide header and border.
686
687         * UserInterface/Views/DebuggerSidebarPanel.js:
688         (WebInspector.DebuggerSidebarPanel):
689         (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
690         (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
691         Add a `paused` class to the debugger sidebar when it is paused.
692
693 2015-03-19  Jono Wells  <jonowells@apple.com>
694
695         Web Inspector: FilterBar for debugger sidebar hides breakpoints for displayed resources
696         https://bugs.webkit.org/show_bug.cgi?id=142777
697
698         Reviewed by Brian Burg.
699
700         Typing into the text input on the filter bar for the debugger sidebar no longer incorrectly hides the
701         breakpoints for scripts that match the text input.
702
703         * UserInterface/Views/BreakpointTreeElement.js:
704         (WebInspector.BreakpointTreeElement.prototype.get filterableData): Added.
705
706 2015-03-18  Joseph Pecoraro  <pecoraro@apple.com>
707
708         Web Inspector: Replace last use of ObjectPropertiesSection with ObjectTreeView
709         https://bugs.webkit.org/show_bug.cgi?id=142834
710
711         Reviewed by Timothy Hatcher.
712
713         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
714         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties):
715         Use properties only ObjectTreeView instead of ObjectPropertiesSection.
716         This doesn't fix the functionality issues, but fixes the appearance.
717
718         * UserInterface/Views/DetailsSection.css:
719         (.details-section > .content > .group:first-child > .row.simple:first-child > *): Deleted.
720         (body.mac-platform.legacy .details-section > .content > .group:first-child > .row.simple:first-child > *): Deleted.
721         (.details-section > .content > .group > .row.properties:not(.empty)): Deleted.
722         (body.mac-platform.legacy .details-section > .content > .group > .row.properties:not(.empty)): Deleted.
723         Re-add back the small padding at the top of sections. This actually
724         broke padding in a few sections (Event Listeners) at the expense
725         of eliminating a few pixels of whitespace at the top of other sections.
726         We should focus on addressing the extra whitespace separately.
727
728         * UserInterface/Main.html:
729         * UserInterface/Views/ObjectPropertiesSection.js: Removed.
730         * UserInterface/Views/TypePropertiesSection.js:
731         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
732         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
733         Remove new unused class.
734
735 2015-03-18  Joseph Pecoraro  <pecoraro@apple.com>
736
737         Web Inspector: Debugger Popovers and Probes should use FormattedValue/ObjectTreeView instead of Custom/ObjectPropertiesSection
738         https://bugs.webkit.org/show_bug.cgi?id=142830
739
740         Reviewed by Timothy Hatcher.
741
742         * UserInterface/Views/ProbeSetDataGrid.css:
743         (.details-section.probe-set .data-grid .object-tree > :matches(.title, .object-preview)::before):
744         Another line-height fix for object tree disclosure triangles.
745
746         * UserInterface/Views/ProbeSetDataGridNode.js:
747         (WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
748         Create an ObjectTree / FormattedValue for the RemoteObject.
749
750         * UserInterface/Views/SourceCodeTextEditor.css:
751         (.popover .debugger-popover-content > .title):
752         (.popover .debugger-popover-content > .body):
753         (.popover .debugger-popover-content.function > .body):
754         Be more specific and don't accidentally style ".title" within the body.
755
756         * UserInterface/Views/SourceCodeTextEditor.js:
757         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
758         Show a properties only ObjectTree instead of an ObjectPropertiesSection.
759
760         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForString): Deleted.
761         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp): Deleted.
762         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber): Deleted.
763         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean): Deleted.
764         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull): Deleted.
765         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined): Deleted.
766         (WebInspector.SourceCodeTextEditor.prototype._showPopoverWithFormattedValue):
767         Reduce most of these to a single popover for formatted values.
768
769 2015-03-18  Joseph Pecoraro  <pecoraro@apple.com>
770
771         Web Inspector: Scopes sidebar should use new ObjectTreeView and not ObjectPropertiesSection
772         https://bugs.webkit.org/show_bug.cgi?id=142808
773
774         Reviewed by Timothy Hatcher.
775
776         * UserInterface/Models/PropertyPath.js:
777         (WebInspector.PropertyPath):
778         (WebInspector.PropertyPath.emptyPropertyPathForScope):
779         Allow a special property empty path for "Scopes". This way for a
780         "<scopeObject>.property" we can show just the tooltip "property".
781
782         * UserInterface/Views/ObjectTreeView.css:
783         (.object-tree.properties-only > :matches(.title, .object-preview)):
784         (.object-tree.properties-only .object-tree-outline):
785         (.object-tree.properties-only .object-tree-property .property-name):
786         Tweak styles for only properties view, which won't have a top-level
787         preview and doesn't fade out enumerable properties.
788
789         * UserInterface/Views/ObjectTreeView.js:
790         (WebInspector.ObjectTreeView.prototype.get treeOutline):
791         Access the TreeOutline.
792
793         (WebInspector.ObjectTreeView.prototype.showOnlyProperties):
794         Properties only view modifies the display slightly.
795
796         (WebInspector.ObjectTreeView.prototype.appendExtraPropertyDescriptor):
797         (WebInspector.ObjectTreeView.prototype._updateProperties):
798         Allow the client to add its own property descriptors to display
799         as a property in this ObjectTreeView.
800
801         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
802         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
803         Switch to using an ObjectTreeView.
804
805         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._propertyPathIdentifierForTreeElement):
806         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeAddHandler):
807         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler):
808         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler):
809         Keep track of what properties were expanded so we can auto-expand
810         them again when the sidebar refreshes.
811
812         * UserInterface/Main.html:
813         * UserInterface/Views/ScopeVariableTreeElement.js: Removed.
814         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
815         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
816         Remove the now unused ScopeVariableTreeElement.js.
817
818 2015-03-17  Joseph Pecoraro  <pecoraro@apple.com>
819
820         Web Inspector: Debugger Sidebar Icons Misaligned
821         https://bugs.webkit.org/show_bug.cgi?id=142654
822
823         Reviewed by Timothy Hatcher.
824
825         The debugger sidebar content was accidentally 1px too small. The
826         TreeOutline being inside of a .detail-section was getting a smaller
827         font-size. We should just have the normal font-size for the
828         debugger navigation sidebar. This matches the Resources sidebar
829         in the TreeOutline, and icons line up better.
830
831         * UserInterface/Views/DebuggerSidebarPanel.css:
832         (.sidebar > .panel.navigation.debugger .details-section):
833
834 2015-03-17  Tobias Reiss  <tobi+webkit@basecode.de>
835
836         Web Inspector: Removal of multiline completion hint broken in Details sidebar
837         https://bugs.webkit.org/show_bug.cgi?id=142796
838
839         Reviewed by Joseph Pecoraro.
840
841         Prioritize CodeMirrorCompletionController over CSSStyleDeclarationTextEditor.
842         Both classes control the current CodeMirror instance of the Details Sidebar.
843         This change prevents possible race conditions during complete or delete-complete phases,
844         especially during operations on multiple styles in one line.
845
846         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
847         (WebInspector.CSSStyleDeclarationTextEditor):
848
849 2015-03-17  Matt Baker  <mattbaker@apple.com>
850
851         Web Inspector: Show rendering frames (and FPS) in Layout and Rendering timeline
852         https://bugs.webkit.org/show_bug.cgi?id=142029
853
854         Reviewed by Timothy Hatcher.
855
856         Add UI for showing runloop records and their child records as a frame histogram,
857         with the recording time on the x-axis and the frame duration on the y-axis. Each frame
858         is comprised of colored regions representing the time spent in various activities (script,
859         layout, etc).
860
861         Eventually the Frames timeline will replace the Layout & Rendering timeline. Until the views
862         for the new timeline are finalized the Layout & Rendering timeline will remain in place.
863
864         * Localizations/en.lproj/localizedStrings.js:
865         * UserInterface/Main.html:
866         New string and files.
867
868         * UserInterface/Controllers/TimelineManager.js:
869         (WebInspector.TimelineManager.prototype.eventRecorded):
870         (WebInspector.TimelineManager.prototype.pageDidLoad):
871         (WebInspector.TimelineManager.prototype._processNestedRecords):
872         (WebInspector.TimelineManager.prototype._processRecord):
873         (WebInspector.TimelineManager.prototype._processEvent):
874         (WebInspector.TimelineManager.prototype._loadNewRecording):
875         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Deleted.
876         Added support for new runloop record type and nested record handling.
877
878         * UserInterface/Images/Frames.png: Added.
879         * UserInterface/Images/Frames@2x.png: Added.
880         * UserInterface/Images/FramesLarge.png: Added.
881         * UserInterface/Images/FramesLarge@2x.png: Added.
882         New images for runloop timeline overview graph and runloop tree records.
883
884         * UserInterface/Models/RunLoopTimelineRecord.js: Added.
885         (WebInspector.RunLoopTimelineRecord):
886         (WebInspector.RunLoopTimelineRecord.prototype.get children):
887         (WebInspector.RunLoopTimelineRecord.prototype.get durationRemainder):
888         (WebInspector.RunLoopTimelineRecord.prototype.durationForRecords.get var):
889         Extends TimelineRecord to add child records and subframe duration details.
890
891         * UserInterface/Models/Timeline.js:
892         (WebInspector.Timeline.prototype.get displayName):
893         (WebInspector.Timeline.prototype.get iconClassName):
894         New UI strings and icons.
895
896         * UserInterface/Models/TimelineRecord.js:
897         * UserInterface/Views/ContentView.js:
898         (WebInspector.ContentView):
899         * UserInterface/Views/LayoutTimelineView.js:
900         (WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
901         * UserInterface/Views/TimelineRecordTreeElement.js:
902         (WebInspector.TimelineRecordTreeElement):
903         Added support for new runloop record type.
904
905         * UserInterface/Views/RunLoopTimelineOverviewGraph.css: Added.
906         (.timeline-overview-graph.runloop > .divider):
907         (.timeline-overview-graph.runloop > .divider > span):
908         New styles for runloop timeline graph.
909
910         * UserInterface/Views/RunLoopTimelineOverviewGraph.js: Added.
911         (WebInspector.RunLoopTimelineOverviewGraph):
912         (WebInspector.RunLoopTimelineOverviewGraph.prototype.updateLayout.createFrame):
913         (WebInspector.RunLoopTimelineOverviewGraph.prototype.get graphHeightSeconds.this):
914         (WebInspector.RunLoopTimelineOverviewGraph.prototype.get graphHeightSeconds):
915         (WebInspector.RunLoopTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
916         New overview graph for displaying TimelineRecordFrames and horizontal frame budget dividers.
917
918         * UserInterface/Views/TimelineIcons.css:
919         (.runloop-icon .icon):
920         (.runloop-icon.large .icon):
921         (.runloop-record .icon):
922         * UserInterface/Views/TimelineSidebarPanel.js:
923         New runloop icon styles.
924
925         * UserInterface/Views/TimelineOverviewGraph.js:
926         (WebInspector.TimelineOverviewGraph):
927         Updated factory to support creation of the new overview graph.
928
929         * UserInterface/Views/TimelineRecordFrame.css: Added.
930         (.timeline-record-frame):
931         (.timeline-record-frame > .frame):
932         (.timeline-record-frame > .dropped):
933         (.timeline-record-frame > .frame > .duration):
934         (.timeline-record-frame > .frame > .duration:first-child):
935         (.timeline-record-frame > .frame > .duration:last-child):
936         (.timeline-record-frame > .frame > .duration.timeline-record-type-network):
937         (.timeline-record-frame > .frame > .duration.timeline-record-type-layout):
938         (.timeline-record-frame > .frame > .duration.timeline-record-type-script):
939         New styles for frame bars in the runloop timeline graph.
940
941         * UserInterface/Views/TimelineRecordFrame.js: Added.
942         (WebInspector.TimelineRecordFrame):
943         (WebInspector.TimelineRecordFrame.createCombinedFrames):
944         (WebInspector.TimelineRecordFrame.prototype.get element):
945         (WebInspector.TimelineRecordFrame.prototype.get duration):
946         (WebInspector.TimelineRecordFrame.prototype.get records):
947         (WebInspector.TimelineRecordFrame.prototype.set records):
948         (WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
949         New view representing a single frame within the runloop overview graph.
950
951         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
952         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
953         New files.
954
955 2015-03-16  Joseph Pecoraro  <pecoraro@apple.com>
956
957         Web Inspector: Add more DOM Native Function parameter strings
958         https://bugs.webkit.org/show_bug.cgi?id=142760
959
960         Reviewed by Timothy Hatcher.
961
962         * UserInterface/Models/NativeFunctionParameters.js:
963         Add native parameter strings generated and hand modified
964         for DOM built-in classes.
965
966         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
967         For native constructors "FooConstructor" the description is just
968         the name of the Constructor not the function string.
969
970 2015-03-16  Joseph Pecoraro  <pecoraro@apple.com>
971
972         Web Inspector: Object Previews in Indexed DB tables
973         https://bugs.webkit.org/show_bug.cgi?id=140813
974
975         Reviewed by Timothy Hatcher.
976
977         * UserInterface/Views/FormattedValue.js:
978         (WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
979         Add a boolean param for ObjectTree construction if it should force allowing object expansion.
980
981         * UserInterface/Views/IndexedDatabaseEntryDataGridNode.js:
982         (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.createCellContent):
983         Switch to creating an ObjectTree or FormattedValue.
984
985         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
986         (.content-view.indexed-database-object-store > .data-grid tr.selected):
987         Change row selection color to match the console's lighter blue instead of dark blue.
988
989         (.content-view.indexed-database-object-store > .data-grid .object-tree > :matches(.title, .object-preview)::before):
990         Adjust object tree disclosure triangle placement for larger line heights.
991
992         (.content-view.indexed-database-object-store > .data-grid td .section .header): Deleted.
993         (.content-view.indexed-database-object-store > .data-grid td .section .header::before): Deleted.
994         (.content-view.indexed-database-object-store > .data-grid td .section .header .title): Deleted.
995         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .section .header::before): Deleted.
996         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .section.expanded .header::before): Deleted.
997         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li.parent::before): Deleted.
998         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li.parent.expanded::before): Deleted.
999         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li *): Deleted.
1000         Remove now unnecessary styles.
1001
1002         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
1003         (.object-tree .object-tree-array-index > .icon):
1004         Increase the specificity to override ".data-grid td .icon" styles.
1005
1006 2015-03-16  Joseph Pecoraro  <pecoraro@apple.com>
1007
1008         Web Inspector: Better Console Previews for Arrays / Small Objects
1009         https://bugs.webkit.org/show_bug.cgi?id=142322
1010
1011         Reviewed by Timothy Hatcher.
1012
1013         * UserInterface/Views/ObjectPreviewView.js:
1014         If there is a sub-preview, show the sub-preview.
1015
1016         * UserInterface/Views/ObjectTreeView.js:
1017         (WebInspector.ObjectTreeView):
1018         For an ObjectTree that is not a root (e.g. one inside of
1019         an array/set/map property tree element) allow it to be
1020         expanded even if the preview is lossless.
1021
1022 2015-03-16  Nikita Vasilyev  <nvasilyev@apple.com>
1023
1024         Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl to LegacyConsoleMessage and LegacyConsoleMessageImpl respectively
1025         https://bugs.webkit.org/show_bug.cgi?id=142712
1026
1027         As a first step of ConsoleMessage refactoring (https://bugs.webkit.org/show_bug.cgi?id=142599):
1028
1029           - Rename WebInspector.ConsoleMessage class to WebInspector.LegacyConsoleMessage
1030           - Rename WebInspector.ConsoleMessageImpl class to WebInspector.LegacyConsoleMessageImpl
1031           - Rename ConsoleMessage.js file to LegacyConsoleMessage.js
1032           - Rename ConsoleMessageImpl file to LegacyConsoleMessageImpl.js
1033
1034         Reviewed by Joseph Pecoraro.
1035
1036         * UserInterface/Controllers/JavaScriptLogViewController.js:
1037         (WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
1038         * UserInterface/Controllers/LogManager.js:
1039         (WebInspector.LogManager.prototype.messageWasAdded):
1040         * UserInterface/Main.html:
1041         * UserInterface/Models/DefaultDashboard.js:
1042         (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
1043         * UserInterface/Views/ConsoleCommandResult.js:
1044         (WebInspector.ConsoleCommandResult):
1045         (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
1046         * UserInterface/Views/ConsoleGroup.js:
1047         (WebInspector.ConsoleGroup.prototype.render):
1048         * UserInterface/Views/LegacyConsoleMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessage.js.
1049         (WebInspector.LegacyConsoleMessage):
1050         (WebInspector.LegacyConsoleMessage.prototype.isErrorOrWarning):
1051         (WebInspector.LegacyConsoleMessage.prototype.updateRepeatCount):
1052         (WebInspector.LegacyConsoleMessage.prototype.clone):
1053         (WebInspector.LegacyConsoleMessage.create):
1054         * UserInterface/Views/LegacyConsoleMessageImpl.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessageImpl.js.
1055         (WebInspector.LegacyConsoleMessageImpl):
1056         (WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
1057         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldDumpStackTrace):
1058         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldHideURL):
1059         (WebInspector.LegacyConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1060         (WebInspector.LegacyConsoleMessageImpl.prototype.get message):
1061         (WebInspector.LegacyConsoleMessageImpl.prototype.get formattedMessage):
1062         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyLocation):
1063         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyCallFrame):
1064         (WebInspector.LegacyConsoleMessageImpl.prototype.isErrorOrWarning):
1065         (WebInspector.LegacyConsoleMessageImpl.prototype._format):
1066         (WebInspector.LegacyConsoleMessageImpl.prototype._isExpandable):
1067         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameter):
1068         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsValue):
1069         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
1070         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsString):
1071         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsNode):
1072         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsArray):
1073         (WebInspector.LegacyConsoleMessageImpl.prototype._rootPropertyPathForObject):
1074         (WebInspector.LegacyConsoleMessageImpl.prototype._userProvidedColumnNames):
1075         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
1076         (WebInspector.LegacyConsoleMessageImpl.prototype.):
1077         (WebInspector.LegacyConsoleMessageImpl.prototype.stringFormatter):
1078         (WebInspector.LegacyConsoleMessageImpl.prototype.floatFormatter):
1079         (WebInspector.LegacyConsoleMessageImpl.prototype.integerFormatter):
1080         (WebInspector.LegacyConsoleMessageImpl.prototype.styleFormatter):
1081         (WebInspector.LegacyConsoleMessageImpl.prototype.isWhitelistedProperty):
1082         (WebInspector.LegacyConsoleMessageImpl.prototype.append):
1083         (WebInspector.LegacyConsoleMessageImpl.prototype._formatWithSubstitutionString):
1084         (WebInspector.LegacyConsoleMessageImpl.prototype.decorateMessageElement):
1085         (WebInspector.LegacyConsoleMessageImpl.prototype.toMessageElement):
1086         (WebInspector.LegacyConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1087         (WebInspector.LegacyConsoleMessageImpl.prototype.updateRepeatCount):
1088         (WebInspector.LegacyConsoleMessageImpl.prototype.toString):
1089         (WebInspector.LegacyConsoleMessageImpl.prototype.get text):
1090         (WebInspector.LegacyConsoleMessageImpl.prototype.isEqual):
1091         (WebInspector.LegacyConsoleMessageImpl.prototype.get stackTrace):
1092         (WebInspector.LegacyConsoleMessageImpl.prototype.clone):
1093         (WebInspector.LegacyConsoleMessageImpl.prototype.get levelString):
1094         (WebInspector.LegacyConsoleMessageImpl.prototype.get clipboardPrefixString):
1095         (WebInspector.LegacyConsoleMessageImpl.prototype.toClipboardString):
1096         * UserInterface/Views/LogContentView.js:
1097         (WebInspector.LogContentView.prototype.didAppendConsoleMessage):
1098         (WebInspector.LogContentView.prototype._messageAdded):
1099         (WebInspector.LogContentView.prototype._filterMessages):
1100         (WebInspector.LogContentView.prototype._reappendProvisionalMessages):
1101         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1102         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1103
1104 2015-03-16  Commit Queue  <commit-queue@webkit.org>
1105
1106         Unreviewed, rolling out r181517.
1107         https://bugs.webkit.org/show_bug.cgi?id=142718
1108
1109         This patch broke GTK+ build (Requested by NVI on #webkit).
1110
1111         Reverted changeset:
1112
1113         "Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl
1114         to LegacyConsoleMessage and LegacyConsoleMessageImpl
1115         respectively"
1116         https://bugs.webkit.org/show_bug.cgi?id=142712
1117         http://trac.webkit.org/changeset/181517
1118
1119 2015-03-15  Nikita Vasilyev  <nvasilyev@apple.com>
1120
1121         Web Inspector: Console Scrolls Unexpectedly when Clicking inside un-selected Expanding Object
1122         https://bugs.webkit.org/show_bug.cgi?id=142655
1123
1124         Don't scroll when selection change is triggered by clicking, e.g.
1125         only scroll on arrow up and down key press events.
1126
1127         Reviewed by Joseph Pecoraro.
1128
1129         * UserInterface/Views/LogContentView.js:
1130         (WebInspector.LogContentView.prototype._mousemove):
1131         (WebInspector.LogContentView.prototype._updateMessagesSelection):
1132         (WebInspector.LogContentView.prototype._upArrowWasPressed):
1133         (WebInspector.LogContentView.prototype._downArrowWasPressed):
1134
1135 2015-03-15  Nikita Vasilyev  <nvasilyev@apple.com>
1136
1137         Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl to LegacyConsoleMessage and LegacyConsoleMessageImpl respectively
1138         https://bugs.webkit.org/show_bug.cgi?id=142712
1139
1140         As a first step of ConsoleMessage refactoring (https://bugs.webkit.org/show_bug.cgi?id=142599):
1141
1142           - Rename WebInspector.ConsoleMessage class to WebInspector.LegacyConsoleMessage
1143           - Rename WebInspector.ConsoleMessageImpl class to WebInspector.LegacyConsoleMessageImpl
1144           - Rename ConsoleMessage.js file to LegacyConsoleMessage.js
1145           - Rename ConsoleMessageImpl file to LegacyConsoleMessageImpl.js
1146
1147         Reviewed by Joseph Pecoraro.
1148
1149         * UserInterface/Controllers/JavaScriptLogViewController.js:
1150         (WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
1151         * UserInterface/Controllers/LogManager.js:
1152         (WebInspector.LogManager.prototype.messageWasAdded):
1153         * UserInterface/Main.html:
1154         * UserInterface/Models/DefaultDashboard.js:
1155         (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
1156         * UserInterface/Views/ConsoleCommandResult.js:
1157         (WebInspector.ConsoleCommandResult):
1158         (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
1159         * UserInterface/Views/ConsoleGroup.js:
1160         (WebInspector.ConsoleGroup.prototype.render):
1161         * UserInterface/Views/LegacyConsoleMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessage.js.
1162         (WebInspector.LegacyConsoleMessage):
1163         (WebInspector.LegacyConsoleMessage.prototype.isErrorOrWarning):
1164         (WebInspector.LegacyConsoleMessage.prototype.updateRepeatCount):
1165         (WebInspector.LegacyConsoleMessage.prototype.clone):
1166         (WebInspector.LegacyConsoleMessage.create):
1167         * UserInterface/Views/LegacyConsoleMessageImpl.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessageImpl.js.
1168         (WebInspector.LegacyConsoleMessageImpl):
1169         (WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
1170         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldDumpStackTrace):
1171         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldHideURL):
1172         (WebInspector.LegacyConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1173         (WebInspector.LegacyConsoleMessageImpl.prototype.get message):
1174         (WebInspector.LegacyConsoleMessageImpl.prototype.get formattedMessage):
1175         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyLocation):
1176         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyCallFrame):
1177         (WebInspector.LegacyConsoleMessageImpl.prototype.isErrorOrWarning):
1178         (WebInspector.LegacyConsoleMessageImpl.prototype._format):
1179         (WebInspector.LegacyConsoleMessageImpl.prototype._isExpandable):
1180         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameter):
1181         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsValue):
1182         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
1183         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsString):
1184         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsNode):
1185         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsArray):
1186         (WebInspector.LegacyConsoleMessageImpl.prototype._rootPropertyPathForObject):
1187         (WebInspector.LegacyConsoleMessageImpl.prototype._userProvidedColumnNames):
1188         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
1189         (WebInspector.LegacyConsoleMessageImpl.prototype.):
1190         (WebInspector.LegacyConsoleMessageImpl.prototype.stringFormatter):
1191         (WebInspector.LegacyConsoleMessageImpl.prototype.floatFormatter):
1192         (WebInspector.LegacyConsoleMessageImpl.prototype.integerFormatter):
1193         (WebInspector.LegacyConsoleMessageImpl.prototype.styleFormatter):
1194         (WebInspector.LegacyConsoleMessageImpl.prototype.isWhitelistedProperty):
1195         (WebInspector.LegacyConsoleMessageImpl.prototype.append):
1196         (WebInspector.LegacyConsoleMessageImpl.prototype._formatWithSubstitutionString):
1197         (WebInspector.LegacyConsoleMessageImpl.prototype.decorateMessageElement):
1198         (WebInspector.LegacyConsoleMessageImpl.prototype.toMessageElement):
1199         (WebInspector.LegacyConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1200         (WebInspector.LegacyConsoleMessageImpl.prototype.updateRepeatCount):
1201         (WebInspector.LegacyConsoleMessageImpl.prototype.toString):
1202         (WebInspector.LegacyConsoleMessageImpl.prototype.get text):
1203         (WebInspector.LegacyConsoleMessageImpl.prototype.isEqual):
1204         (WebInspector.LegacyConsoleMessageImpl.prototype.get stackTrace):
1205         (WebInspector.LegacyConsoleMessageImpl.prototype.clone):
1206         (WebInspector.LegacyConsoleMessageImpl.prototype.get levelString):
1207         (WebInspector.LegacyConsoleMessageImpl.prototype.get clipboardPrefixString):
1208         (WebInspector.LegacyConsoleMessageImpl.prototype.toClipboardString):
1209         * UserInterface/Views/LogContentView.js:
1210         (WebInspector.LogContentView.prototype.didAppendConsoleMessage):
1211         (WebInspector.LogContentView.prototype._messageAdded):
1212         (WebInspector.LogContentView.prototype._filterMessages):
1213         (WebInspector.LogContentView.prototype._reappendProvisionalMessages):
1214         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1215         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1216
1217 2015-03-12  Jono Wells  <jonowells@apple.com>
1218
1219         Web Inspector: Debugger sidebar should group global breakpoints together
1220         https://bugs.webkit.org/show_bug.cgi?id=142607
1221
1222         Reviewed by Timothy Hatcher.
1223
1224         Update the DebuggerSidebarPanel class to hold global breakpoints such as "All Exceptions" in one container. This
1225         will be the place future such breakpoints are added.
1226
1227         * Localizations/en.lproj/localizedStrings.js: Added string.
1228         * UserInterface/Main.html: Small rearrangement.
1229
1230         * UserInterface/Views/DebuggerSidebarPanel.js: Change how exception breaking options are displayed.
1231         (WebInspector.DebuggerSidebarPanel):
1232         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
1233         (WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
1234
1235         * UserInterface/Views/FolderTreeElement.js: Support additional classes for icons.
1236         * UserInterface/Views/ResourceSidebarPanel.js: Change call to FolderTreeElement constructor.
1237
1238 2015-03-12  Joseph Pecoraro  <pecoraro@apple.com>
1239
1240         Web Inspector: Console Errors during provisional document loads get lost with "Clear Log on Reload"
1241         https://bugs.webkit.org/show_bug.cgi?id=142603
1242
1243         Reviewed by Timothy Hatcher.
1244
1245         * UserInterface/Views/LogContentView.js:
1246         (WebInspector.LogContentView.prototype._messageAdded):
1247         (WebInspector.LogContentView.prototype._provisionalLoadStarted):
1248         Detect a provisional load has started to start save messages that come in at this time.
1249
1250         (WebInspector.LogContentView.prototype._sessionStarted):
1251         Reappend provisional load messages if we auto-cleared.
1252
1253         (WebInspector.LogContentView.prototype._reappendProvisionalMessages):
1254         (WebInspector.LogContentView.prototype._clearProvisionalState):
1255         Helpers for dealing with the provisional loading state.
1256
1257 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
1258
1259         Web Inspector: CSS parser errors in the console should include column numbers
1260         https://bugs.webkit.org/show_bug.cgi?id=114313
1261
1262         Reviewed by Darin Adler.
1263
1264         * UserInterface/Views/ConsoleMessageImpl.js:
1265         (WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
1266         Column numbers in console messages are also 1 based and should be adjusted.
1267
1268 2015-03-11  Commit Queue  <commit-queue@webkit.org>
1269
1270         Unreviewed, rolling out r181367.
1271         https://bugs.webkit.org/show_bug.cgi?id=142581
1272
1273         Caused crashes on the debug bots (Requested by cdumez on
1274         #webkit).
1275
1276         Reverted changeset:
1277
1278         "Web Inspector: CSS parser errors in the console should
1279         include column numbers"
1280         https://bugs.webkit.org/show_bug.cgi?id=114313
1281         http://trac.webkit.org/changeset/181367
1282
1283 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
1284
1285         Web Inspector: Reload after Global Search results in empty Resources Sidebar.
1286         https://bugs.webkit.org/show_bug.cgi?id=142572
1287
1288         Reviewed by Timothy Hatcher.
1289
1290         If you reload when the search content tree outline is showing, break out
1291         to show the resource tree outline.
1292
1293         * UserInterface/Views/ResourceSidebarPanel.js:
1294         (WebInspector.ResourceSidebarPanel.prototype._showResourcesContentTreeOutline):
1295         (WebInspector.ResourceSidebarPanel.prototype._showSearchContentTreeOutline):
1296
1297 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
1298
1299         Web Inspector: SearchResultTreeElement.representedObject is missing a saveIdentityToCookie implementation
1300         https://bugs.webkit.org/show_bug.cgi?id=134698
1301
1302         Reviewed by Timothy Hatcher.
1303
1304         This will restore selection of a global search tree element if you
1305         close and reopen the inspector in such a case.
1306
1307         * UserInterface/Models/DOMSearchMatchObject.js:
1308         (WebInspector.DOMSearchMatchObject.prototype.get resource):
1309         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
1310         Cookie has the resource URL, DOM Node title, and text range.
1311
1312         * UserInterface/Models/SourceCodeSearchMatchObject.js:
1313         (WebInspector.SourceCodeSearchMatchObject.prototype.get sourceCodeTextRange):
1314         Cookie has the source code URL and text range.
1315
1316 2015-03-10  Joseph Pecoraro  <pecoraro@apple.com>
1317
1318         Web Inspector: CSS parser errors in the console should include column numbers
1319         https://bugs.webkit.org/show_bug.cgi?id=114313
1320
1321         Reviewed by Benjamin Poulain.
1322
1323         * UserInterface/Views/ConsoleMessageImpl.js:
1324         (WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
1325         Column numbers in console messages are also 1 based and should be adjusted.
1326
1327 2015-03-10  Joseph Pecoraro  <pecoraro@apple.com>
1328
1329         Web Inspector: console.error output broken, does not produce ObjectTree
1330         https://bugs.webkit.org/show_bug.cgi?id=142554
1331
1332         Reviewed by Timothy Hatcher.
1333
1334         * UserInterface/Models/IssueMessage.js:
1335         (WebInspector.IssueMessage):
1336         * UserInterface/Protocol/ConsoleObserver.js:
1337         (WebInspector.ConsoleObserver.prototype.messageAdded):
1338
1339 2015-03-10  Saam Barati  <saambarati1@gmail.com>
1340
1341         Web Inspector: Destructuring function parameters should show type information
1342         https://bugs.webkit.org/show_bug.cgi?id=142233
1343
1344         Reviewed by Joseph Pecoraro.
1345
1346         JSC supports a function's formal parameter being a destructuring pattern, 
1347         and so should the type profiler in the Inspector. This was just an oversight 
1348         not to have this in bug 141215.
1349
1350         This patch also does a bit of refactoring to not have duplicate code
1351         that traverses AST nodes in TypeTokenAnnotator and ScriptSyntaxTree.
1352         Before, both of these classes were responsible for traversing the AST
1353         in an identical way, this is bad. Now, ScriptSyntaxTree contains the
1354         canonical implementation of how the AST should be traversed and which
1355         AST nodes should be collected for type profiling. ScriptSyntaxTree will
1356         pass this information back to TypeTokenAnnotator.
1357
1358         * UserInterface/Controllers/TypeTokenAnnotator.js:
1359         (WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
1360         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode): Deleted.
1361         * UserInterface/Models/ScriptSyntaxTree.js:
1362         (WebInspector.ScriptSyntaxTree.prototype.):
1363         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
1364         (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
1365         (WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration): Deleted.
1366
1367 2015-03-09  Joseph Pecoraro  <pecoraro@apple.com>
1368
1369         Web Inspector: Inline Error / Warning message for Issues
1370         https://bugs.webkit.org/show_bug.cgi?id=142520
1371
1372         Reviewed by Timothy Hatcher.
1373
1374         * Localizations/en.lproj/localizedStrings.js:
1375         * UserInterface/Main.html:
1376         New strings and new files.
1377
1378         * UserInterface/Controllers/IssueManager.js:
1379         (WebInspector.IssueManager.prototype.issueWasAdded):
1380         * UserInterface/Models/IssueMessage.js:
1381         (WebInspector.IssueMessage):
1382         (WebInspector.IssueMessage.prototype.get columnNumber):
1383         * UserInterface/Protocol/ConsoleObserver.js:
1384         (WebInspector.ConsoleObserver.prototype.messageAdded):
1385         Correctly pass the column number into IssueMessage.
1386
1387         * UserInterface/Models/LineWidget.js:
1388         (WebInspector.LineWidget):
1389         (WebInspector.LineWidget.prototype.get codeMirrorLineWidget):
1390         (WebInspector.LineWidget.prototype.get widgetElement):
1391         Create a new Model class for a LineWidget. The root element
1392         should never change, but its children can be updated.
1393
1394         * UserInterface/Views/SourceCodeTextEditor.css:
1395         (.source-code.text-editor .CodeMirror-linewidget):
1396         Override styles so that widgets can overlap line content.
1397
1398         (.source-code.text-editor > .CodeMirror .issue-widget):
1399         (.source-code.text-editor > .CodeMirror .issue-widget.inline):
1400         Float issue widgets to the right side of the editor.
1401
1402         (.source-code.text-editor > .CodeMirror .issue-widget > .arrow):
1403         (.source-code.text-editor > .CodeMirror .issue-widget.inline > .arrow):
1404         Pure CSS arrow for widgets on the same line as their issue.
1405
1406         (.source-code.text-editor > .CodeMirror .issue-widget > .icon):
1407         (.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-warning):
1408         (.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-error):
1409         Issue icon styles for the different issue types.
1410
1411         (.source-code.text-editor > .CodeMirror .issue-widget.warning):
1412         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
1413         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
1414         (.source-code.text-editor > .CodeMirror .issue-widget.error):
1415         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
1416         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
1417         Different colors for the different issue types.
1418
1419         (.source-code.text-editor > .CodeMirror .issue-widget > .text):
1420         (.source-code.text-editor > .CodeMirror .issue-widget.inline > .text):
1421         Text positioning when on the same line or when expanded.
1422
1423         * UserInterface/Views/SourceCodeTextEditor.js:
1424         (WebInspector.SourceCodeTextEditor.prototype._addIssue):
1425         (WebInspector.SourceCodeTextEditor.prototype._iconClassNameForIssueLevel):
1426         (WebInspector.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
1427         (WebInspector.SourceCodeTextEditor.prototype._isWidgetToggleable):
1428         (WebInspector.SourceCodeTextEditor.prototype._handleWidgetClick):
1429         Create widgets for issues.
1430
1431         (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
1432         (WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
1433         (WebInspector.SourceCodeTextEditor.prototype._clearWidgets):
1434         (WebInspector.SourceCodeTextEditor.prototype._reinsertAllIssues):
1435         Update all widgets in certain cases.
1436
1437         * UserInterface/Views/TextEditor.js:
1438         (WebInspector.TextEditor.prototype.addStyleClassToLine):
1439         This assertion is known to happen for issues added to an editor
1440         before the content has loaded.
1441
1442         (WebInspector.TextEditor.prototype.createWidgetForLine):
1443         Create a widget for a line.
1444
1445 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
1446
1447         Web Inspector: JS Pretty Printing: "case" or "default" outside of switch causes unbalanced indentation
1448         https://bugs.webkit.org/show_bug.cgi?id=142428
1449
1450         Reviewed by Timothy Hatcher.
1451
1452         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
1453         * UserInterface/Views/CodeMirrorFormatters.js:
1454         Fix "case" and "default" indentation rules to only happen inside a switch.
1455
1456         * Tools/PrettyPrinting/js-tests/switch-case-default-expected.js:
1457         * Tools/PrettyPrinting/js-tests/switch-case-default.js:
1458         Add tests for "case" and "default" nested inside and outside of switches.
1459
1460 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
1461
1462         Web Inspector: ES6: Improved Support for Iterator Objects
1463         https://bugs.webkit.org/show_bug.cgi?id=142420
1464
1465         Reviewed by Timothy Hatcher.
1466
1467         * UserInterface/Views/ConsoleMessageImpl.js:
1468         (WebInspector.ConsoleMessageImpl):
1469         Treat an iterator like an object.
1470
1471         * UserInterface/Views/ObjectPreviewView.js:
1472         Output iterator previews with []s, not {}s.
1473
1474 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
1475
1476         Web Inspector: Adopt Object Literal Method Property Syntax
1477         https://bugs.webkit.org/show_bug.cgi?id=142409
1478
1479         Reviewed by Timothy Hatcher.
1480
1481         Mechanical change touching lots of files.
1482
1483 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
1484
1485         Web Inspector: Adopt Object Literal Shorthand Property Construction Syntax
1486         https://bugs.webkit.org/show_bug.cgi?id=142374
1487
1488         Reviewed by Timothy Hatcher.
1489
1490         Mechanical change touching lots of files.
1491
1492 2015-03-06  Jono Wells  <jonowells@apple.com>
1493
1494         Web Inspector: Populate Debugger sidebar with all debuggable resources
1495         https://bugs.webkit.org/show_bug.cgi?id=141232
1496
1497         Reviewed by Timothy Hatcher.
1498
1499         All debuggable resources now show in the debugger sidebar. The _resourceAdded handler now adds a script resource
1500         to the sidebar regardless of whether it has any breakpoints set on it. The new function
1501         _getTreeElementForSourceCodeAndAddToContentTreeOutline adds the element to the debugger sidebar before
1502         _addBreakpointsForSourceCode is called. Removing all breakpoints from a resource no longer removes that
1503         resource from the debugger sidebar. TreeOutline.prototype.removeChild has been updated so the disclosure
1504         button will disappear and reappear correctly when removing/adding breakpoints.
1505
1506         * UserInterface/Views/DebuggerSidebarPanel.js:
1507         (WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint): Expand resource if first breakpoint is added.
1508         (WebInspector.DebuggerSidebarPanel.prototype._getTreeElementForSourceCodeAndAddToContentTreeOutline): Created.
1509         (WebInspector.DebuggerSidebarPanel.prototype._resourceAdded): Checks resource type and adds scripts to sidebar.
1510         (WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
1511         (WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
1512         (WebInspector.DebuggerSidebarPanel.prototype._removeBreakpointTreeElement): No longer removes empty parent.
1513         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected): Displays scripts without breakpoints now.
1514
1515         * UserInterface/Views/GeneralTreeElement.js:
1516         (WebInspector.GeneralTreeElement.prototype.get disclosureButton): Drive-by fix. Unused. Deleted.
1517
1518         * UserInterface/Views/TreeOutline.js:
1519         (TreeOutline.prototype.removeChild):
1520         Remove parent class and set hasChildren to false if necessary to properly hide and reveal disclosure button
1521         for elements whose children have been removed.
1522
1523 2015-03-05  Joseph Pecoraro  <pecoraro@apple.com>
1524
1525         Web Inspector: Follow-up fixes to ObjectTreeBaseTreeElement
1526         https://bugs.webkit.org/show_bug.cgi?id=142367
1527
1528         Reviewed by Timothy Hatcher.
1529
1530         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
1531         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.propertyPathType):
1532         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
1533         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValuePropertyPath):
1534         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
1535
1536 2015-03-05  Tobias Reiss  <tobi+webkit@basecode.de>
1537
1538         Web Inspector: console.debug/info should show up in Log Console Filter
1539         https://bugs.webkit.org/show_bug.cgi?id=142300
1540
1541         Reviewed by Joseph Pecoraro.
1542
1543         Add WebInspector.ConsoleMessage.MessageLevel.Debug case that allows console.debug/info
1544         to show up in Log Console Filter.
1545
1546         * UserInterface/Views/LogContentView.js:
1547         (WebInspector.LogContentView.prototype._filterMessages):
1548
1549 2015-03-05  Joseph Pecoraro  <pecoraro@apple.com>
1550
1551         Web Inspector: Add ObjectTreeBaseTreeElement to share functionality
1552         https://bugs.webkit.org/show_bug.cgi?id=142323
1553
1554         Reviewed by Timothy Hatcher.
1555
1556         By making this change:
1557
1558           - Share lots of duplicated code.
1559           - Array / Set / Map tree elements get context menu support
1560
1561         * UserInterface/Main.html:
1562         * UserInterface/Views/ObjectTreeBaseTreeElement.js: Added.
1563         (WebInspector.ObjectTreeBaseTreeElement):
1564         (WebInspector.ObjectTreeBaseTreeElement.prototype.get property):
1565         (WebInspector.ObjectTreeBaseTreeElement.prototype.get propertyPath):
1566         (WebInspector.ObjectTreeBaseTreeElement.prototype.oncontextmenu):
1567         (WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValue):
1568         (WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValuePropertyPath):
1569         (WebInspector.ObjectTreeBaseTreeElement.prototype.thisPropertyPath):
1570         (WebInspector.ObjectTreeBaseTreeElement.prototype.hadError):
1571         (WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathType):
1572         (WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathString):
1573         (WebInspector.ObjectTreeBaseTreeElement.prototype.createInteractiveGetterElement):
1574         (WebInspector.ObjectTreeBaseTreeElement.prototype.createReadOnlyIconElement):
1575         New file, copying most of the code from PropertyTreeElement so it can be shared.
1576
1577         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
1578         (WebInspector.ObjectTreeArrayIndexTreeElement):
1579         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.invokedGetter):
1580         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
1581         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property): Deleted.
1582         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue): Deleted.
1583         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType): Deleted.
1584         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
1585         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath): Deleted.
1586         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString): Deleted.
1587         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle): Deleted.
1588         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.): Deleted.
1589         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement): Deleted.
1590         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1591         (WebInspector.ObjectTreePropertyTreeElement):
1592         (WebInspector.ObjectTreePropertyTreeElement.prototype.invokedGetter):
1593         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
1594         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
1595         (WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
1596         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
1597         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
1598         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
1599         (WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
1600         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
1601         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
1602         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
1603         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
1604         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property): Deleted.
1605         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu): Deleted.
1606         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue): Deleted.
1607         (WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType): Deleted.
1608         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath): Deleted.
1609         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath): Deleted.
1610         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon): Deleted.
1611         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.): Deleted.
1612         (WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement): Deleted.
1613         (WebInspector.ObjectTreePropertyTreeElement.prototype): Deleted.
1614         Subclass ObjectTreeBaseTreeElement and eliminate the code now
1615         automatically handled by the base class.
1616
1617         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
1618         (WebInspector.ObjectTreeMapEntryTreeElement):
1619         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.resolvedValue):
1620         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
1621         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString): Deleted.
1622         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
1623         (WebInspector.ObjectTreeSetIndexTreeElement):
1624         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValue):
1625         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
1626         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
1627         Override resolved value since these are not about PropertyDescriptors.
1628         This will make context menus work automatically.
1629
1630 2015-03-04  Joseph Pecoraro  <pecoraro@apple.com>
1631
1632         Web Inspector: Improve display of previews with overflow
1633         https://bugs.webkit.org/show_bug.cgi?id=142321
1634
1635         Reviewed by Timothy Hatcher.
1636
1637         * UserInterface/Views/ObjectPreviewView.js:
1638         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
1639         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1640
1641 2015-03-04  Joseph Pecoraro  <pecoraro@apple.com>
1642
1643         Web Inspector: Array/Collection Sizes should be visible and distinct
1644         https://bugs.webkit.org/show_bug.cgi?id=142254
1645
1646         Reviewed by Timothy Hatcher.
1647
1648         * UserInterface/Models/ObjectPreview.js:
1649         (WebInspector.ObjectPreview):
1650         (WebInspector.ObjectPreview.fromPayload):
1651         (WebInspector.ObjectPreview.prototype.get size):
1652         (WebInspector.ObjectPreview.prototype.hasSize):
1653         * UserInterface/Protocol/RemoteObject.js:
1654         (WebInspector.RemoteObject):
1655         (WebInspector.RemoteObject.fromPrimitiveValue):
1656         (WebInspector.RemoteObject.fromPayload):
1657         (WebInspector.RemoteObject.prototype.get size):
1658         (WebInspector.RemoteObject.prototype.hasSize):
1659         Check if this type has a size and get the size.
1660         Gracefully handle construction for legacy protocols.
1661
1662         * UserInterface/Views/ObjectPreviewView.css:
1663         (.object-preview > .size):
1664         * UserInterface/Views/FormattedValue.css:
1665         (:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap) > .size):
1666         Style the array/collection size.
1667
1668         * UserInterface/Views/ObjectPreviewView.js:
1669         (WebInspector.ObjectPreviewView):
1670         * UserInterface/Views/FormattedValue.js:
1671         (WebInspector.FormattedValue.createElementForTypesAndValue):
1672         (WebInspector.FormattedValue.createElementForRemoteObject):
1673         (WebInspector.FormattedValue.createElementForObjectPreview):
1674         (WebInspector.FormattedValue.createElementForPropertyPreview):
1675         Add an element showing the array/collection size.
1676
1677         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1678         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1679         Remove special handling for Array sizes now that this is handled earlier.
1680
1681         * UserInterface/Controllers/StorageManager.js:
1682         (WebInspector.StorageManager.prototype.processData):
1683         (WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
1684         Fix what looks like broken RemoteObject construction.
1685
1686 2015-03-04  Brian J. Burg  <burg@cs.washington.edu>
1687
1688         Web Inspector: TimelineViews should be displayed in a ContentViewContainer
1689         https://bugs.webkit.org/show_bug.cgi?id=142290
1690
1691         Reviewed by Timothy Hatcher.
1692
1693         TimelineRecordingContentView has a bunch of logic to manage the currently visible TimelineView.
1694         This could be delegated to a ContentViewContainer to simplify the logic. It also opens the possibility
1695         for other views to be displayed beneath the timeline overview graphs when it makes sense to do so.
1696
1697         In order to be displayable in the container, TimelineView and its subclasses have been upgraded to
1698         be ContentView subclasses. This also reduces some code duplication for basic view management.
1699
1700         * UserInterface/Views/ContentView.js:
1701         (WebInspector.ContentView): Move base class instantiation pattern from TimelineView to here.
1702         (WebInspector.ContentView.isViewable):
1703         * UserInterface/Views/LayoutTimelineView.js: Use ContentView events and base methods.
1704         (WebInspector.LayoutTimelineView.prototype.shown):
1705         (WebInspector.LayoutTimelineView.prototype.hidden):
1706         (WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
1707         * UserInterface/Views/NetworkTimelineView.js: Use ContentView events and base methods.
1708         (WebInspector.NetworkTimelineView.prototype.shown):
1709         (WebInspector.NetworkTimelineView.prototype.hidden):
1710         (WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
1711         * UserInterface/Views/OverviewTimelineView.js: Use ContentView events and base methods.
1712         (WebInspector.OverviewTimelineView.prototype.shown):
1713         (WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
1714         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
1715         * UserInterface/Views/ScriptTimelineView.js: Use ContentView events and base methods.
1716         (WebInspector.ScriptTimelineView.prototype.shown):
1717         (WebInspector.ScriptTimelineView.prototype.hidden):
1718         (WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
1719         * UserInterface/Views/TimelineRecordingContentView.css: Use WebInspector.ContentViewContainer class.
1720         (.content-view.timeline-recording > .content-view-container):
1721         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid td):
1722         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data):
1723         (.content-view.timeline-recording > .view-container): Deleted.
1724         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td): Deleted.
1725         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data): Deleted.
1726
1727         * UserInterface/Views/TimelineRecordingContentView.js:
1728         Many of the changes here mirror the implementation of ClusterContentView. Searching is disabled since
1729         none of the timeline views are currently searchable using ContentViewContainer's full-text search.
1730
1731         In cases where we update the current timeline view, the currentTimelineView accessor returns the
1732         content view if a TimelineView is shown in the content view container, otherwise null.
1733
1734         (WebInspector.TimelineRecordingContentView):
1735         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
1736         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
1737         (WebInspector.TimelineRecordingContentView.prototype.get supplementalRepresentedObjects):
1738         (WebInspector.TimelineRecordingContentView.prototype.get handleCopyEvent):
1739         (WebInspector.TimelineRecordingContentView.prototype.get supportsSave):
1740         (WebInspector.TimelineRecordingContentView.prototype.get saveData):
1741         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
1742         (WebInspector.TimelineRecordingContentView.prototype.shown):
1743         (WebInspector.TimelineRecordingContentView.prototype.hidden):
1744         (WebInspector.TimelineRecordingContentView.prototype.closed):
1745         (WebInspector.TimelineRecordingContentView.prototype.canGoBack):
1746         (WebInspector.TimelineRecordingContentView.prototype.canGoForward):
1747         (WebInspector.TimelineRecordingContentView.prototype.goBack):
1748         (WebInspector.TimelineRecordingContentView.prototype.goForward):
1749         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
1750         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
1751         (WebInspector.TimelineRecordingContentView.prototype.get filterDidChange):
1752         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
1753         (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
1754         (WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange):
1755         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
1756         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
1757         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
1758         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
1759         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange): Deleted.
1760         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange): Deleted.
1761         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView): Deleted.
1762         * UserInterface/Views/TimelineView.js: Remove duplicated functionality and use ContentView equivalents instead.
1763         (WebInspector.TimelineView):
1764         (WebInspector.TimelineView.prototype.filterUpdated):
1765         (WebInspector.TimelineView.prototype.needsLayout):
1766         (WebInspector.TimelineView.prototype.get representedObject): Deleted.
1767         (WebInspector.TimelineView.prototype.get visible): Deleted.
1768         (WebInspector.TimelineView.prototype.shown): Deleted.
1769         (WebInspector.TimelineView.prototype.hidden): Deleted.
1770
1771 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
1772
1773         Web Inspector: selecting overview timeline tree elements without source locations doesn't update selection components
1774         https://bugs.webkit.org/show_bug.cgi?id=142248
1775
1776         Reviewed by Timothy Hatcher.
1777
1778         Add a missing event dispatch to trigger recalculation of path components when showing the overview timeline view.
1779
1780         * UserInterface/Views/OverviewTimelineView.js:
1781         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
1782
1783 2015-03-03  Nikita Vasilyev  <nvasilyev@apple.com>
1784
1785         Web Inspector: Refactoring: separate ConsoleSession from ConsoleGroup
1786         https://bugs.webkit.org/show_bug.cgi?id=142141
1787
1788         ConsoleSession doesn't have a title and it's not collapsible either.
1789         Simplify ConsoleSession by removing excessive markup.
1790
1791         Reviewed by Timothy Hatcher.
1792
1793         * UserInterface/Controllers/JavaScriptLogViewController.js:
1794         (WebInspector.JavaScriptLogViewController):
1795         (WebInspector.JavaScriptLogViewController.prototype.startNewSession):
1796         (WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
1797         (WebInspector.JavaScriptLogViewController.prototype.get topConsoleGroup): Deleted.
1798         * UserInterface/Main.html:
1799         * UserInterface/Views/ConsoleGroup.js:
1800         (WebInspector.ConsoleGroup):
1801         (WebInspector.ConsoleGroup.prototype.render):
1802         (WebInspector.ConsoleGroup.prototype.addMessage):
1803         (WebInspector.ConsoleGroup.prototype.append):
1804         (WebInspector.ConsoleGroup.prototype.hasMessages): Deleted.
1805         * UserInterface/Views/ConsoleSession.js: Added.
1806         (WebInspector.ConsoleSession):
1807         (WebInspector.ConsoleSession.prototype.addMessage):
1808         (WebInspector.ConsoleSession.prototype.append):
1809         (WebInspector.ConsoleSession.prototype.hasMessages):
1810         * UserInterface/Views/LogContentView.css:
1811         (.console-session + .console-session):
1812         (.console-group.new-session .console-group-messages .console-item:first-child): Deleted.
1813         (.console-group.new-session): Deleted.
1814
1815 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
1816
1817         Web Inspector: popover should use requestAnimationFrame to drive move/resize animations
1818         https://bugs.webkit.org/show_bug.cgi?id=142218
1819
1820         Reviewed by Timothy Hatcher.
1821
1822         Remove setTimeout workaround now that Inspector runs in its own process.
1823
1824         * UserInterface/Views/Popover.js:
1825         (WebInspector.Popover.prototype.drawBackground):
1826         (WebInspector.Popover.prototype._animateFrame):
1827
1828 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
1829
1830         Web Inspector: Console log level selector loses selection on reload
1831         https://bugs.webkit.org/show_bug.cgi?id=142199
1832
1833         Reviewed by Timothy Hatcher.
1834
1835         The selected items in the console scope bar were being saved as settings,
1836         but the "All" scope is forcibly selected on reload due to a logic bug.
1837
1838         * UserInterface/Base/Main.js:
1839         (WebInspector.showFullHeightConsole):
1840         The scope bar may already have selected items restored from WebInspector.Settings.
1841         Don't select a scope unless explicitly requested (i.e., clicking on dashboard buttons)
1842         or if no scopes are selected at all. (In the latter case, "All" is the default scope.)
1843
1844         * UserInterface/Views/LogContentView.js:
1845         (WebInspector.LogContentView): Don't specify a default value here to avoid trampling
1846         settings. The "All" scope is selected by default in showFullHeightConsole if
1847         nothing else is selected.
1848
1849 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
1850
1851         Web Inspector: Remove native extensions now built-in
1852         https://bugs.webkit.org/show_bug.cgi?id=142203
1853
1854         Reviewed by Timothy Hatcher.
1855
1856         * UserInterface/Base/Utilities.js:
1857
1858 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
1859
1860         Web Inspector: Context Menu to Log a Particular Object
1861         https://bugs.webkit.org/show_bug.cgi?id=142198
1862
1863         Reviewed by Timothy Hatcher.
1864
1865         * UserInterface/Controllers/JavaScriptLogViewController.js:
1866         (WebInspector.JavaScriptLogViewController.prototype.saveResultCallback):
1867         (WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
1868         Add a way to show an execution and result immediately in the Log View.
1869
1870         * UserInterface/Views/ConsolePrompt.js:
1871         (WebInspector.ConsolePrompt.prototype.pushHistoryItem):
1872         (WebInspector.ConsolePrompt.prototype.commitTextOrInsertNewLine):
1873         (WebInspector.ConsolePrompt.prototype._handleEnterKey):
1874         (WebInspector.ConsolePrompt.prototype._commitHistoryEntry):
1875         Add a way to append a history item to the console prompt history.
1876
1877         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1878         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1879         Add a context menu item to object tree properties to log the value.
1880
1881         * UserInterface/Protocol/RemoteObject.js:
1882         (WebInspector.RemoteObject.createCallArgument):
1883         (WebInspector.RemoteObject.prototype.callFunction):
1884         (WebInspector.RemoteObject.prototype.asCallArgument):
1885         Simplify CallArgument creation.
1886
1887         * UserInterface/Controllers/RuntimeManager.js:
1888         (WebInspector.RuntimeManager.prototype.mycallback):
1889         (WebInspector.RuntimeManager.prototype.saveResult):
1890         Wrap RuntimeAgent.saveResult. If supported, run the backend command
1891         and fetch a saved result index from the backend for the given value.
1892
1893         * Localizations/en.lproj/localizedStrings.js:
1894         * UserInterface/Base/Main.js:
1895         (WebInspector.contentLoaded):
1896         * UserInterface/Views/LogContentView.js:
1897         (WebInspector.LogContentView.prototype.get logViewController):
1898         Misc.
1899
1900 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
1901
1902         Web Inspector: Add Context Menus to Object Tree properties
1903         https://bugs.webkit.org/show_bug.cgi?id=142125
1904
1905         Reviewed by Timothy Hatcher.
1906
1907         * Localizations/en.lproj/localizedStrings.js:
1908         * UserInterface/Views/ObjectPropertiesSection.js:
1909         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
1910         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
1911         Fix legacy implementation.
1912
1913         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
1914         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1915         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
1916         Give prototype buttons a tooltip.
1917
1918         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu):
1919         (WebInspector.ObjectTreePropertyTreeElement.prototype._contextMenuHandler):
1920         (WebInspector.ObjectTreePropertyTreeElement.prototype._appendMenusItemsForObject):
1921         Context Menus based on the selected object.
1922
1923 2015-02-27  Joseph Pecoraro  <pecoraro@apple.com>
1924
1925         Web Inspector: Use Maps in ResourceCollection instead of objects
1926         https://bugs.webkit.org/show_bug.cgi?id=142101
1927
1928         Reviewed by Timothy Hatcher.
1929
1930         * UserInterface/Models/ResourceCollection.js:
1931         (WebInspector.ResourceCollection):
1932         (WebInspector.ResourceCollection.prototype.resourcesWithType):
1933         (WebInspector.ResourceCollection.prototype.removeAllResources):
1934         (WebInspector.ResourceCollection.prototype.resourceForURL):
1935         (WebInspector.ResourceCollection.prototype._associateWithResource):
1936         (WebInspector.ResourceCollection.prototype._disassociateWithResource):
1937         (WebInspector.ResourceCollection.prototype._resourceURLDidChange):
1938         (WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
1939         Use Maps instead of objects.
1940
1941 2015-02-26  Nikita Vasilyev  <nvasilyev@apple.com>
1942
1943         Web Inspector: Add a subtle blue background for selected console messages
1944         https://bugs.webkit.org/show_bug.cgi?id=142073
1945
1946         Reviewed by Timothy Hatcher.
1947
1948         * UserInterface/Views/LogContentView.css:
1949         (.console-item.selected::after):
1950         (.console-messages:focus .console-item.selected):
1951         (.console-messages:focus .console-item.selected + .console-item):
1952         (.console-error-level + .console-item):
1953         (.console-error-level .section .header .title):
1954         (.console-warning-level):
1955         (.console-warning-level + .console-item):
1956
1957 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1958
1959         Web Inspector: Colored console messages apply text color to object tree properties
1960         https://bugs.webkit.org/show_bug.cgi?id=142051
1961
1962         Reviewed by Timothy Hatcher.
1963
1964         * UserInterface/Views/ObjectPreviewView.css:
1965         (.object-preview):
1966         * UserInterface/Views/ObjectTreeView.css:
1967         (.object-tree):
1968         Default the color to black within Object Tree and Object Preview views.
1969
1970 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1971
1972         Web Inspector: Clear Log on Reload clears some logs that were after reload
1973         https://bugs.webkit.org/show_bug.cgi?id=142070
1974
1975         Reviewed by Timothy Hatcher.
1976
1977         * UserInterface/Views/LogContentView.js:
1978         (WebInspector.LogContentView.prototype._sessionStarted):
1979         We can bail after calling clearLog, since that will already start
1980         a new session for us.
1981
1982         (WebInspector.LogContentView.prototype._clearLog):
1983         Don't trigger a backend clear messages, since that will cause us to
1984         clear messages received between the request and response.
1985
1986 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1987
1988         Web Inspector: Save Console Evaluations into Command Line variables $1-$99 ($n)
1989         https://bugs.webkit.org/show_bug.cgi?id=142061
1990
1991         Reviewed by Timothy Hatcher.
1992
1993         * UserInterface/Controllers/RuntimeManager.js:
1994         (WebInspector.RuntimeManager.prototype.evalCallback):
1995         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
1996         Add a saveResult parameter for the new protocol command in parameter.
1997
1998         * UserInterface/Views/ConsoleMessageImpl.js:
1999         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2000         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
2001         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2002         (WebInspector.ConsoleMessageImpl.prototype._rootPropertyPathForObject):
2003         * UserInterface/Views/ObjectTreeView.js:
2004         (WebInspector.ObjectTreeView.prototype.appendTitleSuffix):
2005         For console evaluation results, show a "= $n" when the evaluation was
2006         given a saved result index.
2007
2008         * UserInterface/Views/LogContentView.css:
2009         (.console-saved-variable):
2010         * UserInterface/Views/ObjectPreviewView.css:
2011         (.object-preview-name):
2012         Make $n and class names in previews always non-italics.
2013
2014         * UserInterface/Controllers/JavaScriptLogViewController.js:
2015         (WebInspector.JavaScriptLogViewController.prototype.printResult):
2016         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
2017         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
2018         (get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
2019         * UserInterface/Controllers/LogManager.js:
2020         (WebInspector.LogManager.prototype.messagesCleared):
2021         (WebInspector.LogManager.prototype._mainResourceDidChange):
2022         Try to provide better autocompletion for $n, by populating autocompletion menus
2023         from $1-$n where n is the maximum saved result index seen. Clear the maximum
2024         when we clear the console.
2025
2026         * UserInterface/Views/ConsoleCommandResult.js:
2027         (WebInspector.ConsoleCommandResult):
2028         (WebInspector.ConsoleCommandResult.clearMaximumSavedResultIndex):
2029         Keep track of the maximum savedResultIndex for console evaluation results.
2030
2031 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
2032
2033         Web Inspector: Set/Map appear as lossless when they have lossy entries
2034         https://bugs.webkit.org/show_bug.cgi?id=142050
2035
2036         Reviewed by Timothy Hatcher.
2037
2038         * UserInterface/Views/ObjectPreviewView.js:
2039         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
2040         Take into account the lossless states of entry keys and values.
2041
2042 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
2043
2044         Web Inspector: New ObjectTree UI for Arrays / Maps / Sets
2045         https://bugs.webkit.org/show_bug.cgi?id=142037
2046
2047         Reviewed by Timothy Hatcher.
2048
2049         * Localizations/en.lproj/localizedStrings.js:
2050         * UserInterface/Main.html:
2051         Miscellaneous changes.
2052
2053         * UserInterface/Models/PropertyDescriptor.js:
2054         (WebInspector.PropertyDescriptor.prototype.isIndexProperty):
2055         Useful for quickly checking if this property is numeric and possibly
2056         an array index.
2057
2058         * UserInterface/Models/PropertyPath.js:
2059         (WebInspector.PropertyPath.prototype.appendMapKey):
2060         (WebInspector.PropertyPath.prototype.appendMapValue):
2061         (WebInspector.PropertyPath.prototype.appendSetIndex):
2062         Be specific about property paths into maps / sets. Note that a map
2063         value may be displayable if the key is simple.
2064
2065         * UserInterface/Protocol/RemoteObject.js:
2066         (WebInspector.RemoteObject.prototype.hasValue):
2067         A simple value RemoteObject may have the value "undefined". So provide
2068         a falsey proof helper that actually checks if we have a value.
2069
2070         (WebInspector.RemoteObject.prototype.isArray):
2071         (WebInspector.RemoteObject.prototype.backendGetOwnPropertyDescriptor):
2072         (WebInspector.RemoteObject.prototype.wrappedCallback):
2073         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
2074         Currently backend APIs exist only to get all properties. In the case
2075         of collections, we often want to get only one property (__proto__).
2076         This is a simple implementation on top of callFunctionOn.
2077
2078         * UserInterface/Views/ConsoleMessageImpl.js:
2079         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
2080         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2081         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined): Deleted.
2082         (WebInspector.ConsoleMessageImpl.prototype._printArray): Deleted.
2083         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry): Deleted.
2084         Simplify array formatted to just use an ObjectTreeView. Add fixmes
2085         that we should seed the ObjectTreeView with a starting property path.
2086
2087         * UserInterface/Views/FormattedValue.css:
2088         (.formatted-node > ol):
2089         Sometimes, a node's display was getting overridden by various console styles.
2090         Force a node to always display block. We may be able to remove this later.
2091
2092         * UserInterface/Views/FormattedValue.js:
2093         (WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
2094         Helper for formatting a node / object / value more easily. This
2095         is used by all collection types.
2096
2097         * UserInterface/Views/ObjectPreviewView.js:
2098         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2099         We lost the nice sparse array support when switching to the new preview path,
2100         we should add it back.
2101
2102         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
2103         (.object-tree-array-index):
2104         (.object-tree-array-index > .titles):
2105         (.object-tree-array-index > .icon):
2106         (.object-tree-array-index .index-name):
2107         (.object-tree-array-index .index-value .object-tree):
2108         (.object-tree-array-index .index-value .object-tree .object-tree-outline):
2109         (.object-tree-property + ol .object-tree-array-index):
2110         New styles specific to array index tree elements.
2111
2112         * UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
2113         (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
2114         (.object-tree-map-entry.key):
2115         (.object-tree-map-entry.key:first-of-type):
2116         (.object-tree-map-entry):
2117         New styles specific to map key/value tree elements.
2118
2119         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Removed.
2120         Remove old collection implementation.
2121
2122         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: Added.
2123         (WebInspector.ObjectTreeArrayIndexTreeElement):
2124         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property):
2125         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue):
2126         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType):
2127         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath):
2128         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath):
2129         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString):
2130         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle):
2131         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
2132         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.):
2133         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement):
2134         Index followed by formatted value. Unfortunately a page can hack up an array
2135         with getter properties, so also support getter values in an array. This ends
2136         up copying a lot of ObjectTreePropertyTreeElement as a result.
2137
2138         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js: Added.
2139         (WebInspector.ObjectTreeMapEntryTreeElement):
2140         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.get object):
2141         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString):
2142         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
2143         (WebInspector.ObjectTreeMapKeyTreeElement):
2144         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.displayPropertyName):
2145         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.resolvedValuePropertyPath):
2146         (WebInspector.ObjectTreeMapValueTreeElement):
2147         (WebInspector.ObjectTreeMapValueTreeElement.prototype.displayPropertyName):
2148         (WebInspector.ObjectTreeMapValueTreeElement.prototype.resolvedValuePropertyPath):
2149         Key/value followed by formatted value.
2150
2151         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js: Added.
2152         (WebInspector.ObjectTreeSetIndexTreeElement):
2153         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.get object):
2154         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath):
2155         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
2156         Dot followed by formatted value.
2157
2158         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
2159         (.object-tree-property > .titles):
2160         Reformat.
2161
2162         * UserInterface/Views/ObjectTreeView.css:
2163         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
2164         Upgrade generic styles.
2165
2166         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2167         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
2168         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
2169         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
2170         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
2171         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
2172         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
2173         * UserInterface/Views/ObjectTreeView.js:
2174         (WebInspector.ObjectTreeView):
2175         (WebInspector.ObjectTreeView.emptyMessageElement):
2176         (WebInspector.ObjectTreeView.prototype.expand):
2177         (WebInspector.ObjectTreeView.prototype.collapse):
2178         (WebInspector.ObjectTreeView.prototype.update):
2179         (WebInspector.ObjectTreeView.prototype._updateChildren):
2180         (WebInspector.ObjectTreeView.prototype._updateEntries):
2181         (WebInspector.ObjectTreeView.prototype._updateProperties):
2182         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
2183         Both ObjectTreeView and ObjectTreePropertyTreeElement will fetch only collection
2184         entries or properties depending on the type of the object being expanded.
2185
2186         (WebInspector.ObjectTreeView.prototype._trackWeakEntries):
2187         (WebInspector.ObjectTreeView.prototype._untrackWeakEntries):
2188         Allow WeakMap entries to be Garbage Collected when the ObjectTreeView
2189         collapses or the console is cleared. FIXME for handling sub-tree WeakMaps.
2190
2191 2015-02-26  Brent Fulgham  <bfulgham@apple.com>
2192
2193         [Win] Make build logs more legible by reducing noise
2194         https://bugs.webkit.org/show_bug.cgi?id=142034
2195
2196         Reviewed by Alexey Proskuryakov.
2197
2198         Modify batch files, makefiles, and DOS commands to remove
2199         uninteresting/unhelpful output.
2200
2201         * WebInspectorUI.vcxproj/WebInspectorUI.make:
2202
2203 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
2204
2205         Web Inspector: Improve Regex/Error output in Object Tree and Previews
2206         https://bugs.webkit.org/show_bug.cgi?id=142010
2207
2208         Reviewed by Timothy Hatcher.
2209
2210         * UserInterface/Views/ObjectPreviewView.js:
2211         (WebInspector.ObjectPreviewView):
2212         (WebInspector.ObjectPreviewView.prototype._initTitleElement):
2213         Since some object types may be formatted as simple values, ensure they get
2214         the formatted style even in the title view.
2215
2216         (WebInspector.ObjectPreviewView.prototype._appendPreview):
2217         Those object types that can be formatted as simple values should skip
2218         to the value formatting phase.
2219
2220         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2221         Do not show property previews for error objects. Always assume lossy
2222         so that it can be expanded.
2223
2224         * UserInterface/Views/ObjectTreeView.js:
2225         (WebInspector.ObjectTreeView):
2226         Make a similiar improvement for ObjectTree titles when previews are
2227         unavailable. This will make dir(value) show a stylized value in the
2228         title of the Object Tree.
2229
2230 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
2231
2232         Web Inspector: Improve PropertyPath display strings for getters / values
2233         https://bugs.webkit.org/show_bug.cgi?id=142008
2234
2235         Reviewed by Timothy Hatcher.
2236
2237         * UserInterface/Base/Utilities.js:
2238         (doubleQuotedString):
2239         Helper to double quote a string and escape double quotes with-in it.
2240
2241         * UserInterface/Models/PropertyPath.js:
2242         (WebInspector.PropertyPath.prototype.get reducedPath):
2243         Compute the path eliminating unnecessary __proto__s. Note we don't
2244         property handle the case where a .__proto__.x is override earlier
2245         by a .x, but that case is rare.
2246
2247         (WebInspector.PropertyPath.prototype.displayPath):
2248         Helper for choosing fullPath or reducedPath display strings.
2249
2250         (WebInspector.PropertyPath.prototype.appendPropertyName):
2251         (WebInspector.PropertyPath.prototype.appendGetterPropertyName):
2252         (WebInspector.PropertyPath.prototype.appendSetterPropertyName):
2253         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
2254         When appending a descriptor, specify if it is for a getter/setter or value.
2255         For getters / setters the actual function can be directly fetched via
2256         __lookupGetter__/__lookupSetter__. Continue to use the property name for values.
2257
2258         * UserInterface/Views/FormattedValue.js:
2259         (WebInspector.FormattedValue.createElementForTypesAndValue):
2260
2261         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2262         (WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType):
2263         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
2264         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
2265         (WebInspector.ObjectTreePropertyTreeElement.prototype):
2266
2267 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
2268
2269         Web Inspector: Eliminate console-formatted-* class names in favor of formatted-*
2270         https://bugs.webkit.org/show_bug.cgi?id=141948
2271
2272         Reviewed by Timothy Hatcher.
2273
2274         * UserInterface/Views/FormattedValue.js:
2275         (WebInspector.FormattedValue.createElementForNode):
2276         Helper for formatting a node as a DOMTreeOutline.
2277
2278         * UserInterface/Views/ConsoleMessageImpl.js:
2279         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2280         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
2281         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
2282         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
2283         (WebInspector.ConsoleMessageImpl.prototype._printArray):
2284         (WebInspector.ConsoleMessageImpl.prototype.): Deleted.
2285         * UserInterface/Views/LogContentView.css:
2286         (.console-user-command-result):
2287         (.console-formatted-object): Deleted.
2288         (.console-object-preview): Deleted.
2289         (.expanded .console-object-preview): Deleted.
2290         (.console-object-preview .name): Deleted.
2291         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
2292         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
2293         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
2294         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
2295         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap): Deleted.
2296         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section): Deleted.
2297
2298         * UserInterface/Views/LogContentView.js:
2299         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
2300         (WebInspector.LogContentView.prototype._rightArrowWasPressed):
2301         Add FIXMEs since this will no longer work with ObjectTree.
2302
2303         * UserInterface/Views/ObjectPreviewView.css:
2304         (.object-preview):
2305         * UserInterface/Views/ObjectTreeView.css:
2306         (.object-tree):
2307         Copy over the font styles from console-formatted-object.
2308
2309         * UserInterface/Views/ObjectPropertiesSection.js:
2310         (WebInspector.ObjectPropertyTreeElement.prototype.update):
2311         * UserInterface/Views/SourceCodeTextEditor.js:
2312         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
2313         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
2314         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForString):
2315         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
2316         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber):
2317         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean):
2318         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull):
2319         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined):
2320         Convert to formatted value class names.
2321
2322 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
2323
2324         Web Inspector: Make Getter/Setter RemoteObject property and ObjectPreview handling consistent
2325         https://bugs.webkit.org/show_bug.cgi?id=141587
2326
2327         Reviewed by Timothy Hatcher.
2328
2329         * UserInterface/Models/CallFrame.js:
2330         (WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
2331         * UserInterface/Models/PropertyDescriptor.js:
2332         (WebInspector.PropertyDescriptor.prototype.get nativeGetter):
2333         * UserInterface/Protocol/RemoteObject.js:
2334         (WebInspector.RemoteObject.fromPayload):
2335         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
2336         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
2337         (WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
2338         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
2339         (WebInspector.RemoteObject.prototype.if):
2340         (WebInspector.RemoteObject.prototype.deprecatedGetOwnProperties):
2341         (WebInspector.RemoteObject.prototype.deprecatedGetAllProperties):
2342         (WebInspector.RemoteObject.prototype._deprecatedGetProperties):
2343         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors): Deleted.
2344         (WebInspector.RemoteObject.prototype.callback): Deleted.
2345         (WebInspector.RemoteObject.prototype.getOwnProperties): Deleted.
2346         (WebInspector.RemoteObject.prototype.getOwnAndGetterProperties): Deleted.
2347         (WebInspector.RemoteObject.prototype.getAllProperties): Deleted.
2348         (WebInspector.RemoteObject.prototype.set else): Deleted.
2349         * UserInterface/Views/ConsoleMessageImpl.js:
2350         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2351         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2352         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
2353         * UserInterface/Views/ObjectPropertiesSection.js:
2354         (WebInspector.ObjectPropertiesSection.prototype.update):
2355         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2356         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2357         (WebInspector.ObjectTreePropertyTreeElement.prototype.):
2358         (WebInspector.ObjectTreePropertyTreeElement.prototype):
2359         * UserInterface/Views/ObjectTreeView.js:
2360         (WebInspector.ObjectTreeView.prototype.update):
2361
2362 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
2363
2364         Web Inspector: New Object Tree View UI
2365         https://bugs.webkit.org/show_bug.cgi?id=141932
2366
2367         Reviewed by Timothy Hatcher.
2368
2369         Part 1: Majority of the UI.
2370
2371         * Localizations/en.lproj/localizedStrings.js:
2372         * UserInterface/Images/Eye.svg: Added.
2373         * UserInterface/Images/TypeBoolean.svg: Added.
2374         * UserInterface/Images/TypeNull.svg: Added.
2375         * UserInterface/Images/TypeNumber.svg: Added.
2376         * UserInterface/Images/TypeObject.svg: Added.
2377         * UserInterface/Images/TypeRegex.svg: Added.
2378         * UserInterface/Images/TypeString.svg: Added.
2379         * UserInterface/Images/TypeSymbol.svg: Added.
2380         * UserInterface/Images/TypeUndefined.svg: Added.
2381         * UserInterface/Main.html:
2382         Miscellaneous.
2383
2384         * UserInterface/Views/FormattedValue.css:
2385         (.formatted-boolean):
2386         Give booleans a light purple color.
2387
2388         * UserInterface/Views/FormattedValue.js:
2389         (WebInspector.FormattedValue.createElementForTypesAndValue):
2390         Previously we were truncating function value logging in the console. E.g.
2391           js> multiLineFunction
2392           <-  function multiLineFunction() {
2393         No longer truncate so we display the full string.
2394
2395         * UserInterface/Models/PropertyPath.js: Added.
2396         (WebInspector.PropertyPath):
2397         (WebInspector.PropertyPath.prototype.get object):
2398         (WebInspector.PropertyPath.prototype.get parent):
2399         (WebInspector.PropertyPath.prototype.get isPrototype):
2400         (WebInspector.PropertyPath.prototype.get rootObject):
2401         (WebInspector.PropertyPath.prototype.get lastNonPrototypeObject):
2402         (WebInspector.PropertyPath.prototype.get pathComponent):
2403         (WebInspector.PropertyPath.prototype.get fullPath):
2404         (WebInspector.PropertyPath.prototype.isRoot):
2405         (WebInspector.PropertyPath.prototype.isPathComponentImpossible):
2406         (WebInspector.PropertyPath.prototype.isFullPathImpossible):
2407         (WebInspector.PropertyPath.prototype.appendPropertyName):
2408         (WebInspector.PropertyPath.prototype.appendPropertySymbol):
2409         (WebInspector.PropertyPath.prototype.appendInternalPropertyName):
2410         (WebInspector.PropertyPath.prototype.appendArrayIndex):
2411         (WebInspector.PropertyPath.prototype.appendCollectionIndex):
2412         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
2413         (WebInspector.PropertyPath.prototype._canPropertyNameBeDotAccess):
2414         PropertyPaths are a linked list of remote object / patch component pairs.
2415         For a property like "foo['property 1'].__proto__.baz" we will have a PropertyPath
2416         chain with the RemoteObject for each component. This allows us to accurately
2417         select the RemoteObject on which we should invoke a getter. It also allows
2418         us to display the property path string from the root object, if possible.
2419
2420         * UserInterface/Protocol/RemoteObject.js:
2421         (WebInspector.RemoteObject.prototype.callFunction):
2422         (WebInspector.RemoteObject.prototype.backendInvokeGetter):
2423         (WebInspector.RemoteObject.prototype.invokeGetter):
2424         Provide a way to invoke a getter function on a remote object if we
2425         have a reference to the getter function. At the same time, improve
2426         the mostly unused callFunction API to automatically convert
2427         RemoteObjects / values to their Runtime.CallArgument format.
2428
2429         * UserInterface/Views/ObjectTreePropertyTreeElement.css: Added.
2430         (.object-tree-property):
2431         (.object-tree-property > .disclosure-button):
2432         (.object-tree-property.parent > .disclosure-button):
2433         (.object-tree-property.parent.expanded > .disclosure-button):
2434         (.object-tree-property > .titles):
2435         Focused styles for the ObjectTree property GeneralTreeElements.
2436         Reuse navigation sidebar disclosure-triangles.
2437
2438         (.object-tree-property > .icon):
2439         (.object-tree-property.boolean > .icon):
2440         (.object-tree-property.function > .icon):
2441         (.object-tree-property.number > .icon):
2442         (.object-tree-property.object > .icon):
2443         (.object-tree-property.object.null > .icon):
2444         (.object-tree-property.object.node > .icon):
2445         (.object-tree-property.regex > .icon):
2446         (.object-tree-property.string > .icon):
2447         (.object-tree-property.symbol > .icon):
2448         (.object-tree-property.undefined > .icon):
2449         Use different icons for different object types. Special case
2450         "accessor" to be undefined.
2451
2452         (.object-tree-property .prototype-name):
2453         (.object-tree-property .property-name.not-enumerable):
2454         Style property names in sans-serif font.
2455         Give non-enumerable properties a slightly transparent look.
2456
2457         (.object-tree-property.prototype-property):
2458         (.object-tree-property.prototype-property > .icon):
2459         (.object-tree-property.prototype-property + ol):
2460         Special styles for prototype properties and their children.
2461
2462         (.object-tree-property .getter):
2463         (.object-tree-property .getter:hover):
2464         (.object-tree-property .read-only):
2465         Styles for clickable getter button and non-interactive read-only indicator.
2466
2467         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
2468         Do not allow wrapping for values that previously allowed wrapping.
2469
2470         (.object-tree-property .value.error):
2471         If getting a value resulted in an error, display that error in red.
2472
2473         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2474         (WebInspector.ObjectTreePropertyTreeElement):
2475         Extend from GeneralTreeElement and set up class names on the root <li> object.
2476
2477         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach): Deleted.
2478         No longer needed by using GeneralTreeElement.
2479
2480         (WebInspector.ObjectTreePropertyTreeElement.prototype.onexpand):
2481         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncollapse):
2482         Expand / collapse an associated ObjectPreview if we have one.
2483
2484         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
2485         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
2486         This PropertyTreeElement may be displaying for a value, or a getter that has
2487         gotten a value. Refer to this as the "resolvedValue".
2488
2489         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
2490         A PropertyPath leaf used for tooltips.
2491
2492         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
2493         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
2494         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
2495         Helpers for updating small parts of the UI. When a getter is invoked,
2496         we need to update the entire UI of this TreeElement.
2497
2498         (WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
2499         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle): Deleted.
2500         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle): Deleted.
2501         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle): Deleted.
2502         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
2503         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
2504         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
2505         Create the UI for the mainTitle of this PropertyTreeElement.
2506         
2507         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement):
2508         (WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement):
2509         Helpers for creating the small components of the title UI.
2510
2511         (WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
2512         Establish when a property should still be displayed as a "property" even when in API mode.
2513         For example a value property on a prototype, should still display as an expandable property.
2514
2515         * UserInterface/Views/ObjectTreeView.css:
2516         (.object-tree > :matches(.title, .object-preview)::before):
2517         (.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
2518         (.object-tree.expanded > :matches(.title, .object-preview)::before):
2519         (.object-tree .object-tree-outline):
2520         (.object-tree-outline ol):
2521         (.object-tree-outline li .empty-message):
2522         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
2523         (.object-tree > .title): Deleted.
2524         (.object-tree-outline): Deleted.
2525         (.object-tree-outline li): Deleted.
2526         (.object-tree-outline li.parent): Deleted.
2527         (.object-tree-outline li.parent::before): Deleted.
2528         (.object-tree-outline li.parent.expanded::before): Deleted.
2529         (.object-tree-property .name): Deleted.
2530         (.object-tree-property .name.not-enumerable): Deleted.
2531         (.object-tree-property .value.error): Deleted.
2532         (.console-group-messages .object-tree:not(.lossless-preview)): Deleted.
2533         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)): Deleted.
2534         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before): Deleted.
2535         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree): Deleted.
2536         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline): Deleted.
2537         Move most PropertyTreeElement specific styles into ObjectPropertyTreeElement.css.
2538         Plenty of console specific files were eliminated.
2539
2540         * UserInterface/Views/ObjectTreeView.js:
2541         (WebInspector.ObjectTreeView.prototype.update):
2542         (WebInspector.ObjectTreeView.prototype._updateProperties):
2543
2544
2545         Part 2: Provide better parameter lists for native functions.
2546
2547         When expanding an object's prototype chain, with authored code
2548         you will accurately see parameter lists for user authored functions
2549         because we can get this by parsing Function.prototype.toString.
2550         For native code, we don't get any parameter information. In such cases
2551         we can detect we are a native function, and provide our own strings.
2552
2553         This fills in most of the JavaScript built-ins and some DOM
2554         functions, however we should autogenerate the rest of the DOM.
2555
2556         * UserInterface/Base/Utilities.js:
2557         (isFunctionStringNativeCode):
2558         Helper to check if a function is native or not based on its string.
2559
2560         * UserInterface/Main.html:
2561         * UserInterface/Models/NativeFunctionParameters.js: Added.
2562         Dictionary of parameter lists for native constructor functions
2563         and prototype functions.
2564
2565         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2566         (WebInspector.ObjectTreePropertyTreeElement):
2567         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionPropertyString):
2568         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2569         (WebInspector.ObjectTreePropertyTreeElement.prototype):
2570         When we have a native function, try to provide a better parameter string.
2571
2572
2573         Part 3: Better handle errors when invoking getters.
2574
2575         * UserInterface/Protocol/RemoteObject.js:
2576         (WebInspector.RemoteObject.prototype.callFunction):
2577         (WebInspector.RemoteObject.prototype.invokeGetter):
2578         Pass the error, wasThrown, and result through to the caller so they can
2579         act on all the information possible. Provide encapsulation though
2580         and auto-convert the result to a RemoteObject for the callback.
2581
2582         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2583         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
2584         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
2585         * UserInterface/Views/DOMTreeElement.js:
2586         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.setTooltip):
2587         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.resolvedNode):
2588         (WebInspector.DOMTreeElement.prototype._createTooltipForNode):
2589         Update current users of callFunctionOn for the new callback parameters.
2590
2591         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
2592         (.object-tree-property.had-error > .icon):
2593         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2594         (WebInspector.ObjectTreePropertyTreeElement):
2595         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
2596         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
2597         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
2598         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.):
2599         Better style getters with errors.
2600
2601 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
2602
2603         Web Inspector: Do not show "{}" after Date description in Object Previews
2604         https://bugs.webkit.org/show_bug.cgi?id=141898
2605
2606         Reviewed by Timothy Hatcher.
2607
2608         * UserInterface/Views/ObjectPreviewView.js:
2609         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2610         Only show "{...}" section for Date objects that have user
2611         defined properties. Otherwise, Dates do not have properties.
2612
2613 2015-02-23  Joseph Pecoraro  <pecoraro@apple.com>
2614
2615         Web Inspector: Remove unused console-object-preview styles - replaced by ObjectPreviewView
2616         https://bugs.webkit.org/show_bug.cgi?id=141945
2617
2618         Reviewed by Timothy Hatcher.
2619
2620         * UserInterface/Views/LogContentView.css:
2621         (.console-object-preview): Deleted.
2622         (.expanded .console-object-preview): Deleted.
2623         (.console-object-preview .name): Deleted.
2624         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
2625         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
2626         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
2627         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
2628
2629 2015-02-23  Saam Barati  <saambarati1@gmail.com>
2630
2631         Web Inspector: BasicBlockAnnotator ranges should be inclusive of both the start and end offset
2632         https://bugs.webkit.org/show_bug.cgi?id=141334
2633
2634         Reviewed by Timothy Hatcher.
2635
2636         * UserInterface/Views/TextEditor.js:
2637         (WebInspector.TextEditor.prototype.addStyleToTextRange):
2638
2639 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
2640
2641         Web Inspector: Lazily Create GeneralTreeElement Status Elements
2642         https://bugs.webkit.org/show_bug.cgi?id=141873
2643
2644         Reviewed by Timothy Hatcher.
2645
2646         * UserInterface/Views/GeneralTreeElement.js:
2647         (WebInspector.GeneralTreeElement.prototype.set status):
2648         (WebInspector.GeneralTreeElement.prototype.onattach):
2649         (WebInspector.GeneralTreeElement.prototype._createElementsIfNeeded):
2650         (WebInspector.GeneralTreeElement.prototype._updateStatusElement):
2651         Lazily create and attach the status element container if
2652         "this.status" is actually used by a GeneralTreeElement subclass.
2653
2654         * UserInterface/Views/ResourceTreeElement.js:
2655         (WebInspector.ResourceTreeElement.prototype._updateStatus):
2656         Set to the empty string instead of null to avoid inadvertently
2657         creating status elements for no reason.
2658
2659 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
2660
2661         Web Inspector: Give ObjectPreviewView a showTitle/showPreview toggle
2662         https://bugs.webkit.org/show_bug.cgi?id=141874
2663
2664         Reviewed by Timothy Hatcher.
2665
2666         Refactor ObjectTree/ObjectPreview a bit to make it easier
2667         to use expanding/collapsing previews in other places.
2668
2669         * UserInterface/Views/ObjectPreviewView.js:
2670         (WebInspector.ObjectPreviewView):
2671         (WebInspector.ObjectPreviewView.prototype.showTitle):
2672         (WebInspector.ObjectPreviewView.prototype.showPreview):
2673         Maintain both a titleElement and previewElement. Show only
2674         one at a time based on showTitle/showPreview APIs.
2675
2676         * UserInterface/Views/ObjectTreeView.css:
2677         (.object-tree.expanded .object-preview):
2678         * UserInterface/Views/ObjectTreeView.js:
2679         (WebInspector.ObjectTreeView):
2680         (WebInspector.ObjectTreeView.prototype.expand):
2681         (WebInspector.ObjectTreeView.prototype.collapse):
2682         If we have a preview, let PreviewView handle toggling
2683         between a title and preview display.
2684
2685 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
2686
2687         Web Inspector: Make Console UI icons / lines slightly larger
2688         https://bugs.webkit.org/show_bug.cgi?id=141876
2689
2690         Reviewed by Timothy Hatcher.
2691
2692         In preparation for a new ObjectTree design with larger icons,
2693         increase the size of existing output in the Console / Log
2694         so they don't look so small in comparison. This:
2695
2696           - bumps minimum height of lines from 16px to 21px
2697           - 10x10 icons to be 12x12
2698           - recenters icons to match console prompt
2699           - realigns icons with console log / object output
2700
2701         * UserInterface/Views/LogContentView.css:
2702         (.console-user-command-result.console-log-level::before):
2703         (.console-message, .console-user-command):
2704         (.console-item::before):
2705         (.console-user-command::before):
2706         (:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
2707         (:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
2708         (.outline-disclosure li):
2709         (.outline-disclosure .expanded li):
2710         Fix a case breaking single-line message height.
2711         Only add padding to expanded trees, not collapsed trees.
2712
2713         * UserInterface/Views/QuickConsole.css:
2714         (.quick-console > .console-prompt::before):
2715
2716 2015-02-21  Joseph Pecoraro  <pecoraro@apple.com>
2717
2718         Web Inspector: Generate Previews more often for RemoteObject interaction
2719         https://bugs.webkit.org/show_bug.cgi?id=141875
2720
2721         Reviewed by Timothy Hatcher.
2722
2723         * UserInterface/Models/PropertyDescriptor.js:
2724         (WebInspector.PropertyDescriptor.fromPayload):
2725         Fix InternalPropertyDescriptor ingestion. There was no ".internal"
2726         property on these objects, so take a flag.
2727
2728         * UserInterface/Protocol/RemoteObject.js:
2729         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
2730         Fix InternalPropertyDescriptor ingestion by specifying during
2731         importing the internal properties. Also, get previews.
2732
2733         (WebInspector.RemoteObject.prototype.callFunction):
2734         Always get previews when using callFunctionOn.
2735
2736 2015-02-20  Ronald Jett  <rjett@apple.com>
2737
2738         Web Inspector: Add a setting for clearing the console on page reload
2739         https://bugs.webkit.org/show_bug.cgi?id=134414
2740
2741         Reviewed by Timothy Hatcher.
2742
2743         Created a new setting "clear-log-on-reload", which defaults to true.
2744         Users can toggle this setting with an item added to the console's context menu. 
2745         When enabled, the console will clear on page reload. When disabled, the console
2746         content will remain during page reloads. 
2747
2748         * Localizations/en.lproj/localizedStrings.js:
2749         * UserInterface/Views/LogContentView.js:
2750         (WebInspector.LogContentView):
2751         (WebInspector.LogContentView.prototype._sessionStarted):
2752         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
2753         (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
2754
2755 2015-02-19  Saam Barati  <saambarati1@gmail.com>
2756
2757         Web Inspector: merge in upstream Esprima to support parsing more of ES6
2758         https://bugs.webkit.org/show_bug.cgi?id=141215
2759
2760         Reviewed by Timothy Hatcher.
2761
2762         This patch merges in a new esprima that has some ES6 support.
2763         Specifically, the ES6 support ScriptSyntaxTree now has is:
2764         - ForOf loops
2765         - Object destructuring
2766         - Array destructuring
2767
2768         ScriptSyntaxTree now uses Symbols for identifying AST node types
2769         instead of strings. This will prevent any direct usage of strings 
2770         for node types instead of a direct property access off the 
2771         ScriptSyntaxTree constructor.
2772
2773         This patch also does some gardening work: 
2774         - TypeTokenAnnotator only walks over the incoming type information
2775           data once to be more efficient. 
2776         - TypeTokenView is now smarter about updating its associated DOM node
2777           only if its display name has changed.
2778
2779         * UserInterface/Controllers/TypeTokenAnnotator.js:
2780         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
2781         * UserInterface/External/Esprima/esprima.js:
2782         (.):
2783         * UserInterface/Models/ScriptSyntaxTree.js:
2784         (WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration):
2785         (WebInspector.ScriptSyntaxTree.prototype._recurse):
2786         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
2787         * UserInterface/Views/TypeTokenView.js:
2788         (WebInspector.TypeTokenView.prototype.update):
2789
2790 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2791
2792         Web Inspector: Use of Array.from for NodeList/Arguments to Array conversion
2793         https://bugs.webkit.org/show_bug.cgi?id=141819
2794
2795         Reviewed by Timothy Hatcher.
2796
2797         Array.from is clearer than Array.prototype.slice.call(arrayLike).
2798
2799         * UserInterface/Base/Test.js:
2800         (.console.logType):
2801         * UserInterface/Protocol/InspectorBackend.js:
2802         (InspectorBackend.Command.prototype.promise):
2803         (InspectorBackend.Command.prototype._invokeWithArguments):
2804         * UserInterface/Views/LogContentView.js:
2805         (WebInspector.LogContentView.prototype._allMessages):
2806
2807 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2808
2809         Follow-up fix to r180371. formatParameterAsValue expects full object, not just a description.
2810
2811         Reviewed by Timothy Hatcher.
2812
2813         * UserInterface/Views/ConsoleMessageImpl.js:
2814         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2815
2816 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2817
2818         Web Inspector: Introduce FormattedValue helpers and use them in Console/ObjectTree
2819         https://bugs.webkit.org/show_bug.cgi?id=141812
2820
2821         Reviewed by Timothy Hatcher.
2822
2823         There were a few different ways to get styled values. Try to consolidate them
2824         all in FormattedValue. That is also a convenient place to have the styles.
2825
2826         * UserInterface/Main.html:
2827         * UserInterface/Views/ConsoleMessageImpl.js:
2828         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2829         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2830         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsValue):
2831         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
2832
2833         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
2834         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
2835         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
2836         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement): Deleted.
2837         Fix console.table after renaming ObjectPreview.properties to ObjectPreview.propertyPreviews.
2838         Also, use FormattedValue to create the value elements. Also, remove class
2839         "source-code" as I do not see it actually being used in a meaningful way.
2840
2841         * UserInterface/Views/FormattedValue.css: Added.
2842         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
2843         (.formatted-number):
2844         (.formatted-string, .formatted-regexp):
2845         (.formatted-string):
2846         (.formatted-regexp):
2847         (.formatted-symbol):
2848         (.formatted-null, .formatted-undefined):
2849         * UserInterface/Views/FormattedValue.js: Added.
2850         (WebInspector.FormattedValue.classNameForTypes):
2851         (WebInspector.FormattedValue.classNameForObject):
2852         (WebInspector.FormattedValue.createLinkifiedElementString):
2853         (WebInspector.FormattedValue.createElementForTypesAndValue):
2854         (WebInspector.FormattedValue.createElementForRemoteObject):
2855         (WebInspector.FormattedValue.createElementForObjectPreview):
2856         (WebInspector.FormattedValue.createElementForPropertyPreview):
2857         Styles and formatted value element creation.
2858
2859         * UserInterface/Views/LogContentView.css:
2860         (.expandable.source-code): Deleted.
2861         Remove ".source-code". I do not see it actually being used in a meaningful way.
2862
2863         * UserInterface/Views/ObjectPreviewView.js:
2864         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2865         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
2866         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview): Deleted.
2867         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2868         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
2869         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString): Deleted.
2870         * UserInterface/Views/ObjectTreeView.css:
2871         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap): Deleted.
2872         (.formatted-number): Deleted.
2873         (.formatted-string, .formatted-regexp): Deleted.
2874         (.formatted-string): Deleted.
2875         (.formatted-regexp): Deleted.
2876         (.formatted-symbol): Deleted.
2877         (.formatted-null, .formatted-undefined): Deleted.
2878         * UserInterface/Views/ObjectTreeView.js:
2879         (WebInspector.ObjectTreeView.classNameForObject): Deleted.
2880         Extract styles and value formatting to FormattedValue helpers.
2881
2882 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2883
2884         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
2885         https://bugs.webkit.org/show_bug.cgi?id=141793
2886
2887         Unreviewed follow-up. Fix prototypes.
2888
2889         * UserInterface/Views/ObjectPreviewView.js:
2890         * UserInterface/Views/ObjectTreeView.js:
2891
2892 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2893
2894         Web Inspector: Create Separate Model and View Objects for RemoteObjects / ObjectPreview / PropertyDescriptor
2895         https://bugs.webkit.org/show_bug.cgi?id=141696
2896
2897         Reviewed by Timothy Hatcher.
2898
2899         * UserInterface/Main.html:
2900         Add new files.
2901
2902         * UserInterface/Models/CollectionEntry.js: Added.
2903         (WebInspector.CollectionEntry):
2904         (WebInspector.CollectionEntry.fromPayload):
2905         (WebInspector.CollectionEntry.prototype.get key):
2906         (WebInspector.CollectionEntry.prototype.get value):
2907         * UserInterface/Models/CollectionEntryPreview.js: Added.
2908         (WebInspector.CollectionEntryPreview):
2909         (WebInspector.CollectionEntryPreview.fromPayload):
2910         (WebInspector.CollectionEntryPreview.prototype.get keyPreview):
2911         (WebInspector.CollectionEntryPreview.prototype.get valuePreview):
2912         * UserInterface/Models/ObjectPreview.js: Added.
2913         (WebInspector.ObjectPreview):
2914         (WebInspector.ObjectPreview.fromPayload):
2915         (WebInspector.ObjectPreview.prototype.get type):
2916         (WebInspector.ObjectPreview.prototype.get subtype):
2917         (WebInspector.ObjectPreview.prototype.get description):
2918         (WebInspector.ObjectPreview.prototype.get lossless):
2919         (WebInspector.ObjectPreview.prototype.get overflow):
2920         (WebInspector.ObjectPreview.prototype.get properties):
2921         (WebInspector.ObjectPreview.prototype.get entries):
2922         * UserInterface/Models/PropertyPreview.js: Added.
2923         (WebInspector.PropertyPreview):
2924         (WebInspector.PropertyPreview.fromPayload):
2925         (WebInspector.PropertyPreview.prototype.get name):
2926         (WebInspector.PropertyPreview.prototype.get type):
2927         (WebInspector.PropertyPreview.prototype.get subtype):
2928         (WebInspector.PropertyPreview.prototype.get value):
2929         (WebInspector.PropertyPreview.prototype.get valuePreview):
2930         * UserInterface/Models/PropertyDescriptor.js: Added.
2931         (WebInspector.PropertyDescriptor.fromPayload):
2932         (WebInspector.PropertyDescriptor.prototype.get name):
2933         (WebInspector.PropertyDescriptor.prototype.get value):
2934         (WebInspector.PropertyDescriptor.prototype.get writable):
2935         (WebInspector.PropertyDescriptor.prototype.get configurable):
2936         (WebInspector.PropertyDescriptor.prototype.get enumerable):
2937         (WebInspector.PropertyDescriptor.prototype.get isOwnProperty):
2938         (WebInspector.PropertyDescriptor.prototype.get wasThrown):
2939         (WebInspector.PropertyDescriptor.prototype.get isInternalProperty):
2940         (WebInspector.PropertyDescriptor.prototype.hasValue):
2941         (WebInspector.PropertyDescriptor.prototype.hasGetter):
2942         (WebInspector.PropertyDescriptor.prototype.hasSetter):
2943         New Model objects for different Protocol types.
2944         The only customizations right now are compatibility modifications
2945         and PropertyDescriptor's "hasValue", "hasGetter", and "hasSetter"
2946         functions to return reliable checks based on the descriptors contents.
2947
2948         * UserInterface/Protocol/RemoteObject.js:
2949         (WebInspector.RemoteObject):
2950         (WebInspector.RemoteObject.fromPayload):
2951         (WebInspector.RemoteObject.resolveNode):
2952         (WebInspector.RemoteObject.prototype.get value):
2953         (WebInspector.RemoteObject.prototype._isSymbol):
2954         (WebInspector.RemoteObject.prototype.isCollectionType):
2955         (WebInspector.RemoteObject.prototype.isWeakCollection):
2956         (WebInspector.RemoteObject.prototype.getCollectionEntries):
2957         (WebInspector.RemoteObject.prototype.arrayLength):
2958         Clean up the existing code to enforce more checks and use our
2959         style of member variables and public accessors.
2960
2961         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
2962         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors):
2963         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
2964         (WebInspector.RemoteObject.prototype.callback):
2965         Provide a new way of getting properties that returns Model objects
2966         instead of raw protocol types.
2967
2968         * UserInterface/Views/ConsoleMessageImpl.js:
2969         (WebInspector.ConsoleMessageImpl.prototype._format):
2970         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2971         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
2972         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
2973         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
2974         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
2975         Always include a preview when possible. Now, when forced to be an object,
2976         force expansion even if the preview is lossless.
2977
2978         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
2979         Use an ObjectTreeView instead of ObjectPropertiesSection.
2980
2981         (WebInspector.ConsoleMessageImpl.prototype._appendPreview): Deleted.
2982         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews): Deleted.
2983         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews): Deleted.
2984         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview): Deleted.
2985         This code is moved into ObjectPreviewView.
2986
2987
2988         * UserInterface/Views/ObjectPropertiesSection.js:
2989         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
2990         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
2991         These types are now converted to Model types in Model objects, so do not do it here.
2992
2993         * UserInterface/Views/ObjectPreviewView.css: Added.
2994         (.object-preview):
2995         (.object-preview.lossless):
2996         (.object-preview .name):
2997         * UserInterface/Views/ObjectPreviewView.js: Added.
2998         (WebInspector.ObjectPreviewView):
2999         (WebInspector.ObjectPreviewView.prototype.get preview):
3000         (WebInspector.ObjectPreviewView.prototype.get element):
3001         (WebInspector.ObjectPreviewView.prototype.get mode):
3002         (WebInspector.ObjectPreviewView.prototype.get lossless):
3003         (WebInspector.ObjectPreviewView.prototype._numberOfPropertiesToShowInMode):
3004         (WebInspector.ObjectPreviewView.prototype._appendPreview):
3005         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
3006         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
3007         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
3008         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview):
3009         An ObjectPreviewView can create a full/brief view given a ObjectPreview.
3010         The view will contain formatted values everywhere possible.
3011
3012         * UserInterface/Views/ObjectTreePropertyTreeElement.js: Added.
3013         (WebInspector.ObjectTreePropertyTreeElement):
3014         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property):
3015         (WebInspector.ObjectTreePropertyTreeElement.prototype.onpopulate):
3016         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach):
3017         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle):
3018         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
3019         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle):
3020         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString):
3021         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
3022         (WebInspector.ObjectTreePropertyTreeElement.prototype.mode):
3023         (WebInspector.ObjectTreePropertyTreeElement.prototype):
3024         * UserInterface/Views/ObjectTreeView.js: Added.
3025         (WebInspector.ObjectTreeView):
3026         (WebInspector.ObjectTreeView.classNameForObject):
3027         (WebInspector.ObjectTreeView.ComparePropertyDescriptors):
3028         (WebInspector.ObjectTreeView.prototype.get object):
3029         (WebInspector.ObjectTreeView.prototype.get element):
3030         (WebInspector.ObjectTreeView.prototype.get expanded):
3031         (WebInspector.ObjectTreeView.prototype.expand):
3032         (WebInspector.ObjectTreeView.prototype.collapse):
3033         (WebInspector.ObjectTreeView.prototype.update):
3034         (WebInspector.ObjectTreeView.prototype._updateProperties):
3035         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
3036         Re-implementation of ObjectPropertiesSection for our Model objects
3037         without "Section" semantics / dependencies. An ObjectTree will creates
3038         an expandable tree for a RemoteObject. The top level clickable item
3039         will be an ObjectPreview if possible, otherwise just a title element.
3040
3041         * UserInterface/Views/ObjectTreeView.css: Added.
3042         (.object-tree):
3043         (.object-tree > .title):
3044         (.object-tree > :matches(.title, .object-preview)::before):
3045         (.object-tree.expanded > :matches(.title, .object-preview)::before):
3046         (.object-tree.lossless-preview > :matches(.title, .object-preview)::before):
3047         (.object-tree-outline):
3048         (.object-tree.expanded > .object-tree-outline):
3049         (.object-tree-outline li):
3050         (.object-tree-outline li.parent):
3051         (.object-tree-outline li.parent::before):
3052         (.object-tree-outline li.parent.expanded::before):
3053         (.object-tree-outline ol):
3054         (.object-tree-outline ol.expanded):
3055         (.object-tree-outline li .empty-message):
3056         (.object-tree-property .name):
3057         (.object-tree-property .name.not-enumerable):
3058         (.object-tree-property .value.error):
3059         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
3060         (.formatted-number):
3061         (.formatted-string, .formatted-regexp):
3062         (.formatted-string):
3063         (.formatted-regexp):
3064         (.formatted-symbol):
3065         (.formatted-null, .formatted-undefined):
3066         (.console-group-messages .object-tree:not(.lossless-preview)):
3067         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
3068         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before):
3069         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree):
3070         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
3071         All styles for ObjectTree / ObjectPreview. Independent from
3072         other styles in the inspector. Most of this is a copy of
3073         the styles applied to ObjectPropertiesSection, renamed.
3074
3075
3076         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Added.
3077         (WebInspector.ObjectTreeCollectionTreeElement):
3078         (WebInspector.ObjectTreeCollectionTreeElement.propertyDescriptorForEntry):
3079         (WebInspector.ObjectTreeCollectionTreeElement.prototype.get remoteObject):
3080         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand.callback):
3081         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand):
3082         (WebInspector.ObjectTreeCollectionTreeElement.prototype.oncollapse):
3083         (WebInspector.ObjectTreeCollectionTreeElement.prototype.ondetach):
3084         (WebInspector.ObjectTreeCollectionTreeElement.prototype._trackWeakEntries):
3085         (WebInspector.ObjectTreeCollectionTreeElement.prototype._untrackWeakEntries):
3086         (WebInspector.ObjectTreeCollectionEntryTreeElement):
3087         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onpopulate):
3088         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onattach):
3089         (WebInspector.ObjectTreeEmptyCollectionTreeElement):
3090         Essentially a copy of ObjectPropertiesSection Collection handling using
3091         the ObjectTree class names.
3092
3093         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
3094         Fix prototype typo.
3095
3096 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
3097
3098         Web Inspector: DOMTree / Node Details Sidebar do not update as <input> content changes
3099         https://bugs.webkit.org/show_bug.cgi?id=141790
3100
3101         Reviewed by Timothy Hatcher.
3102
3103         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
3104         (WebInspector.DOMNodeDetailsSidebarPanel):
3105         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._characterDataModified):
3106         Update Node "Value" details if character data changes.
3107
3108         * UserInterface/Views/DOMTreeUpdater.js:
3109         (WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
3110         Update the title of the parent. If the parent had a single text node child
3111         and now doesn't, it will need to update its display.
3112
3113 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
3114
3115         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
3116         https://bugs.webkit.org/show_bug.cgi?id=141793
3117
3118         Reviewed by Timothy Hatcher.
3119
3120         Currently the backend disallows editing of Shadow DOM nodes,
3121         so the frontend should not provide options that do not work.
3122         Long term we should allow editing Shadow DOM nodes.
3123
3124         * UserInterface/Models/CSSStyleDeclaration.js:
3125         (WebInspector.CSSStyleDeclaration.prototype.get editable):
3126         Inline styles on a Shadow DOM node are not editable.
3127
3128         * UserInterface/Views/DOMTreeElement.js:
3129         (WebInspector.DOMTreeElement.prototype.ondelete):
3130         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
3131         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
3132         (WebInspector.DOMTreeElement.prototype._populateTextContextMenu):
3133         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
3134         (WebInspector.DOMTreeElement.prototype._startEditing):
3135         Disable context menus and keyboard shortcuts on Shadow DOM nodes.
3136         Only Context Menu item we keep is "Copy as HTML".
3137
3138         * UserInterface/Views/DOMTreeOutline.js:
3139         (WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
3140         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
3141         Eliminate double look-up.
3142
3143         * UserInterface/Views/RulesStyleDetailsPanel.js:
3144         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
3145         Do not add the New Rule Button to the Styles Sidebar of Shadow DOM Nodes.
3146         Instead this will just be an empty divider.
3147
3148 2015-02-18  Nikita Vasilyev  <nvasilyev@apple.com>
3149
3150         Web Inspector: REGRESSION: Missing Divider line between console.log and console evaluation
3151         https://bugs.webkit.org/show_bug.cgi?id=141770
3152
3153         Reviewed by Timothy Hatcher.
3154
3155         * UserInterface/Views/LogContentView.css:
3156         (.console-item):
3157         (.console-message): Deleted.
3158
3159 2015-02-18  Jono Wells  <jonowells@apple.com>
3160
3161         Web Inspector: Inspecting a page where resources are in folders forces folder organization on every subsequent page
3162         https://bugs.webkit.org/show_bug.cgi?id=141397
3163
3164         Reviewed by Timothy Hatcher.
3165
3166         When removeChildren is called on an instance of a FolderizedTreeElement, the element's _groupedIntoFolders flag
3167         will now be set to false. This will prevent unnecessary folderization upon a frame navigation. Also during an
3168         onpopulate event, addChildForRepresentedObject is called repeatedly and much of the work done during each call
3169         was unnecessary. That work has now been partially removed and partially relocated to a function that is only
3170         called at the beginning of an onpopulate event.
3171
3172         * UserInterface/Views/FolderizedTreeElement.js:
3173         (WebInspector.FolderizedTreeElement.prototype.set removeChildren): Set _groupedIntoFolders to false.
3174         (WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Remove unnecessary treeOutline
3175         emptiness check, and move _shouldGroupIntoFolders() check to new function prepareToPopulate().
3176         (WebInspector.FolderizedTreeElement.prototype.prepareToPopulate): Create.
3177         (WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue): Call prepareToPopulate().
3178
3179         * UserInterface/Views/FrameTreeElement.js:
3180         (WebInspector.FrameTreeElement.prototype.onpopulate): Call prepareToPopulate().
3181
3182         * UserInterface/Views/GeneralTreeElement.js: Drive-by inheritance style fix.
3183         * UserInterface/Views/ResourceTreeElement.js: Drive-by inheritance style fix.
3184
3185 2015-02-16  Joseph Pecoraro  <pecoraro@apple.com>
3186
3187         Web Inspector: ES6: Improved Console Support for Promise Objects
3188         https://bugs.webkit.org/show_bug.cgi?id=141634
3189
3190         Reviewed by Timothy Hatcher.
3191
3192         * UserInterface/Protocol/RemoteObject.js:
3193         For now just add Internal Properties and regular properties.
3194         We will address the UI later.
3195
3196 2015-02-16  Nikita Vasilyev  <nvasilyev@apple.com>
3197
3198         Web Inspector: Tweak the styles on the Console
3199         https://bugs.webkit.org/show_bug.cgi?id=140580
3200
3201             - Use non-monospace (default sans-serif) font for console messages, but keep using monospace font
3202               for objects, functions, and anything else that presumably code.
3203             - Display all expandable objects on a separate row.
3204
3205         Reviewed by Timothy Hatcher.
3206
3207         * UserInterface/Views/ConsoleCommand.js:
3208         (WebInspector.ConsoleCommand.prototype.decorateMessageElement):
3209         (WebInspector.ConsoleCommand.prototype.toMessageElement):
3210         * UserInterface/Views/ConsoleGroup.js:
3211         (WebInspector.ConsoleGroup.prototype.addMessage):
3212         * UserInterface/Views/ConsoleMessageImpl.js:
3213         (WebInspector.ConsoleMessageImpl.prototype._format):
3214         (WebInspector.ConsoleMessageImpl.prototype._isExpandable):
3215         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
3216         (WebInspector.ConsoleMessageImpl.prototype.append):
3217         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
3218         (WebInspector.ConsoleMessageImpl.prototype.decorateMessageElement):
3219         (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
3220         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString): Deleted.
3221         * UserInterface/Views/LogContentView.css:
3222         (.console-messages):
3223         (.console-formatted-object):
3224         (.expandable.source-code):
3225         (.console-message):
3226         (.console-item.selected::after):
3227         (.console-messages:focus .console-item.selected::after):
3228         (.console-user-command-result.console-log-level::before):
3229         (.console-item::before):
3230         (.console-message .bubble):
3231         (.console-error-level):
3232         (.console-error-level .section .header .title):
3233         (.console-error-level::before):
3234         (.console-warning-level):
3235         (.console-warning-level .console-message-text):
3236         (.console-warning-level::before):
3237         (.console-user-command::before):
3238         (.console-group-messages .section):
3239         (.console-group-messages .section .header::before):
3240         (.console-group-messages .section .header .title):
3241         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
3242         (.outline-disclosure li):
3243         (.outline-disclosure li.parent::before):
3244         (.console-item): Deleted.
3245         (.console-item.selected): Deleted.
3246         (.console-messages:focus .console-item.selected): Deleted.
3247         (.console-item.selected .console-message::after): Deleted.
3248         (.console-messages:focus .console-item.selected .data-grid tr.selected): Deleted.
3249         (.console-messages:focus .console-item.selected .console-message::after): Deleted.
3250         (.console-message, .console-user-command): Deleted.
3251         (.console-message::before, .console-user-command::before, .javascript-prompt::before, .console-group-title::before): Deleted.
3252         (.console-group): Deleted.
3253         (.console-debug-level .console-message-text): Deleted.
3254         (.console-debug-level::before): Deleted.
3255         (.console-group-messages .section .header): Deleted.
3256         (.console-group-messages .outline-disclosure): Deleted.
3257         (.console-group-messages .outline-disclosure > ol): Deleted.
3258         (.outline-disclosure li.elements-drag-over .selection): Deleted.
3259         (.outline-disclosure ol:focus li.selected .selection): Deleted.
3260         (.outline-disclosure > ol): Deleted.
3261         * UserInterface/Views/LogContentView.js:
3262         (WebInspector.LogContentView.prototype._mousemove):
3263         (WebInspector.LogContentView.prototype._updateMessagesSelection):
3264         (WebInspector.LogContentView.prototype._isMessageVisible):
3265         (WebInspector.LogContentView.prototype._isMessageSelected):
3266         (WebInspector.LogContentView.prototype._selectAllMessages):
3267         (WebInspector.LogContentView.prototype._unfilteredMessages):
3268         (WebInspector.LogContentView.prototype._visibleMessages):
3269         (WebInspector.LogContentView.prototype._filterMessages):
3270         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
3271         (WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent):
3272         (WebInspector.LogContentView.prototype._performSearch):
3273         * UserInterface/Views/Section.css:
3274         (.section .header .title::before):
3275         (.section.expanded .header .title::before):
3276         (.section .header .title, .event-bar .header .title):
3277         (.properties-tree li.parent::before):
3278         (.section .header::before): Deleted.
3279         (.section.expanded .header::before): Deleted.
3280
3281 2015-02-15  Brian J. Burg  <burg@cs.washington.edu>
3282
3283         Web Inspector: remove unused XHR replay code
3284         https://bugs.webkit.org/show_bug.cgi?id=141622
3285
3286         Reviewed by Timothy Hatcher.
3287
3288         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
3289         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
3290         * Versions/Inspector-iOS-7.0.json:
3291         * Versions/Inspector-iOS-8.0.json:
3292
3293 2015-02-14  Joseph Pecoraro  <pecoraro@apple.com>
3294
3295         Web Inspector: Remove specificity approximation
3296         https://bugs.webkit.org/show_bug.cgi?id=141600
3297
3298         Reviewed by Timothy Hatcher.
3299
3300         * Localizations/en.lproj/localizedStrings.js:
3301         * UserInterface/Views/CSSStyleDeclarationSection.js:
3302         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
3303
3304 2015-02-13  Timothy Hatcher  <timothy@apple.com>
3305
3306         Web Inspector: support better git diff of localizedStrings.js
3307         https://bugs.webkit.org/show_bug.cgi?id=137237
3308
3309         Reviewed by Joseph Pecoraro.
3310
3311         * .gitattributes: Added.
3312
3313 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
3314
3315         Web Inspector: add keyboard shortcut to enable/disable all breakpoints
3316         https://bugs.webkit.org/show_bug.cgi?id=141527
3317
3318         Reviewed by Joseph Pecoraro.
3319
3320         * Localizations/en.lproj/localizedStrings.js:
3321         * UserInterface/Views/DebuggerSidebarPanel.js:
3322         (WebInspector.DebuggerSidebarPanel): Bind Command/Control + Y to toggle breakpoints button.
3323
3324 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
3325
3326         Web Inspector: support adding and removing timelines to the timeline sidebar panel and overview
3327         https://bugs.webkit.org/show_bug.cgi?id=138434
3328
3329         Reviewed by Timothy Hatcher.
3330
3331         A timeline recording's timelines should not be static. This patch adds relevant machinery to
3332         dynamically add and remove timelines from the Timeline model object and its various views.
3333
3334         From the model side, this is a simple change that adds TimelineAdded and TimelineRemoved events.
3335         The timeline views and timeline sidebar require more extensive changes to support this functionality.
3336         Instead of keeping a fixed set of timeline tree elements, the sidebar view now adds and removes
3337         tree elements to reflect the available timelines for the displayed timeline recording.
3338
3339         This change also includes several minor cleanups, such as appending 'Element' to view properties that
3340         are DOM elements, and renaming TimelineContentView to TimelineRecordingContentView.
3341
3342         * UserInterface/Controllers/TimelineManager.js:
3343         (WebInspector.TimelineManager.prototype._loadNewRecording):
3344         Populate predefined network, layout, and script timelines here after constructing the recording.
3345
3346         * UserInterface/Main.html:
3347         * UserInterface/Models/Timeline.js:
3348         Move hardcoded class names and localized strings to these base class methods. This is not implemented
3349         using overridden methods because not all timeline types have their own subclasses. Add a dummy
3350         implementation of saveIdentityToCookie() to avoid warnings when saving sidebar panel selection state.
3351
3352         (WebInspector.Timeline.prototype.get type):
3353         (WebInspector.Timeline.prototype.get displayName): Added.
3354         (WebInspector.Timeline.prototype.get iconClassName): Added.
3355         (WebInspector.Timeline.prototype.addRecord):
3356         * UserInterface/Models/TimelineRecording.js:
3357         (WebInspector.TimelineRecording):
3358         (WebInspector.TimelineRecording.prototype.addTimeline.set timeline): Added.
3359         (WebInspector.TimelineRecording.prototype.addTimeline): Added.
3360         (WebInspector.TimelineRecording.prototype.removeTimeline.get this): Added.
3361         (WebInspector.TimelineRecording.prototype.removeTimeline): Added.
3362         * UserInterface/Views/ContentView.js:
3363         (WebInspector.ContentView):
3364         * UserInterface/Views/LayoutTimelineView.css:
3365         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
3366         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
3367         * UserInterface/Views/LayoutTimelineView.js:
3368         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
3369         (WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
3370         * UserInterface/Views/NavigationSidebarPanel.js:
3371         (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie): Fix error message formatting.
3372         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
3373         * UserInterface/Views/NetworkTimelineView.css:
3374         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
3375         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
3376         * UserInterface/Views/NetworkTimelineView.js:
3377         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
3378         * UserInterface/Views/ScriptTimelineView.css:
3379         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
3380         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
3381         * UserInterface/Views/ScriptTimelineView.js:
3382         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
3383         (WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
3384         * UserInterface/Views/TimelineOverview.js:
3385         Convert this class to use the representedObject class pattern. It manages its own mapping from timelines
3386         to overview graph views. Append 'Element' to some properties holding DOM elements.
3387         (WebInspector.TimelineOverview):
3388         (WebInspector.TimelineOverview.prototype.get visibleDuration):
3389         (WebInspector.TimelineOverview.prototype.reset):
3390         (WebInspector.TimelineOverview.prototype.updateLayout):
3391         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
3392         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
3393         (WebInspector.TimelineOverview.prototype._timelineRemoved):
3394         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
3395         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
3396         * UserInterface/Views/TimelineRecordingContentView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.css.
3397         Remove hard-coded top offsets and heights that need to be dynamically calculated.
3398         (.content-view.timeline-recording > .timeline-overview):
3399         (.content-view.timeline-recording > .view-container):
3400         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td):
3401         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data):
3402         * UserInterface/Views/TimelineRecordingContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.js.
3403         Manage timeline views and path components dynamically. Adjust view heights as necessary. Append 'Element'
3404         to some properties holding DOM elements.
3405         (WebInspector.TimelineRecordingContentView):
3406         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
3407         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
3408         (WebInspector.TimelineRecordingContentView.prototype.get allowedNavigationSidebarPanels):
3409         (WebInspector.TimelineRecordingContentView.prototype.get supportsSplitContentBrowser):
3410         (WebInspector.TimelineRecordingContentView.prototype.get navigationItems):
3411         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
3412         (WebInspector.TimelineRecordingContentView.prototype.shown):
3413         (WebInspector.TimelineRecordingContentView.prototype.hidden):
3414         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange):
3415         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
3416         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
3417         (WebInspector.TimelineRecordingContentView.prototype.restoreFromCookie):
3418         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters.checkTimeBounds):
3419         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters):
3420         (WebInspector.TimelineRecordingContentView.prototype._pathComponentSelected):
3421         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange):
3422         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView):
3423         (WebInspector.TimelineRecordingContentView.prototype._update):
3424         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
3425         (WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
3426         (WebInspector.TimelineRecordingContentView.prototype._stopUpdatingCurrentTime):
3427         (WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
3428         (WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
3429         (WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
3430         (WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
3431         Fix a minor regression where we make a useless call to stop updating the time.
3432
3433         (WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
3434         (WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
3435         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
3436         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
3437         (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
3438         (WebInspector.TimelineRecordingContentView.prototype._recordingUnloaded):
3439         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
3440         * UserInterface/Views/TimelineSidebarPanel.css:
3441         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
3442         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content): Deleted.
3443         * UserInterface/Views/TimelineSidebarPanel.js:
3444         Manage timeline tree elements dynamically. Adjust view heights as necessary. Append 'Element'
3445         to some properties holding DOM elements. Keep track of the displayed recording and view explicitly.
3446         (WebInspector.TimelineSidebarPanel):
3447         (WebInspector.TimelineSidebarPanel.prototype.shown):
3448         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
3449         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
3450         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
3451         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
3452         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
3453         (WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
3454         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
3455         (WebInspector.TimelineSidebarPanel.prototype.get if):
3456         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
3457         (WebInspector.TimelineSidebarPanel.prototype._recordingCountChanged):
3458         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
3459         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
3460         (WebInspector.TimelineSidebarPanel.prototype._timelineRemoved):
3461         (WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
3462         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Deleted.
3463         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
3464         * UserInterface/Views/TimelineView.css:
3465         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
3466         (.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
3467
3468 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
3469
3470         Web Inspector: Large background image fails to load in inspector
3471         https://bugs.webkit.org/show_bug.cgi?id=141405
3472
3473         Reviewed by Timothy Hatcher.
3474
3475         Convert base64-encoded resource data to binary data using Uint8Array and Blobs.
3476         Use object URLs for blobs instead of data URLs when setting image 'src' attribute
3477         and in @font-face urls. This conversion happens when the backend indicates that
3478         resource content is base64-encoded.
3479
3480         Update image and font clients of resource-fetching functionality so that they use
3481         object URLs correctly. Add some plumbing so that Blobs can be constructed with
3482         the correct mime-type.
3483
3484         * UserInterface/Base/Utilities.js:
3485         (decodeBase64ToBlob): Added.
3486         * UserInterface/Models/CSSStyleSheet.js:
3487         (WebInspector.CSSStyleSheet.prototype.get mimeType): Added.
3488         * UserInterface/Models/Resource.js:
3489         (WebInspector.Resource.prototype.createObjectURL): Added.
3490         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
3491         (WebInspector.Resource.prototype.getImageSize):
3492         (WebInspector.Resource.prototype.get contentURL): Deleted.
3493         * UserInterface/Models/Script.js:
3494         (WebInspector.Script.prototype.get mimeType): Added.
3495         * UserInterface/Models/SourceCode.js:
3496         (WebInspector.SourceCode.prototype.get mimeType): Added.
3497         (WebInspector.SourceCode.prototype._processContent):
3498         (WebInspector.SourceCode.prototype.get contentIsBase64Encoded): Deleted.
3499         * UserInterface/Models/SourceCodeRevision.js:
3500         (WebInspector.SourceCodeRevision):
3501         (WebInspector.SourceCodeRevision.prototype.copy):
3502         (WebInspector.SourceCodeRevision.prototype.get contentIsBase64Encoded): Deleted.
3503         (WebInspector.SourceCodeRevision.prototype.set contentIsBase64Encoded): Deleted.
3504         * UserInterface/Views/FontResourceContentView.js:
3505         (WebInspector.FontResourceContentView.prototype.hidden):
3506         (WebInspector.FontResourceContentView.prototype.closed):
3507         * UserInterface/Views/ImageResourceContentView.js:
3508         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
3509
3510 2015-02-11  Nikita Vasilyev  <nvasilyev@apple.com>
3511
3512         Web Inspector: REGRESSION: Clicking selected item in the sidebar second time should scroll to the corresponding line
3513         https://bugs.webkit.org/show_bug.cgi?id=140280
3514
3515         Reviewed by Brian Burg.
3516
3517         * UserInterface/Views/ContentViewContainer.js:
3518         (WebInspector.ContentViewContainer.prototype.showContentView):
3519         Perform scolling regardless of the navigation history. Since scrolling source code doesn't introduce a BackForwardEntry,
3520         it's possible that the actual content view has a different scroll position.
3521
3522 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
3523
3524         Web Inspector: Better handle unknown release versions
3525         https://bugs.webkit.org/show_bug.cgi?id=141454
3526
3527         Reviewed by Timothy Hatcher.
3528
3529         * UserInterface/Base/Platform.js:
3530         If given an unknown Mac OS X version, at least parse
3531         the version number in WebInspector.Platform.
3532
3533 2015-02-10  Nikita Vasilyev  <nvasilyev@apple.com>
3534
3535         Web Inspector: Make collapsed sidebars undraggable
3536         https://bugs.webkit.org/show_bug.cgi?id=140664
3537
3538         Reviewed by Timothy Hatcher.
3539
3540         * UserInterface/Views/Sidebar.css:
3541         (.sidebar.collapsed):
3542         (.sidebar.collapsed.right > .resizer): Deleted.
3543         (.sidebar.collapsed.left > .resizer): Deleted.
3544         * UserInterface/Views/Sidebar.js:
3545         (WebInspector.Sidebar):
3546         (WebInspector.Sidebar.prototype._resizerMouseDown):
3547         (WebInspector.Sidebar.prototype._resizerMouseMoved):
3548         (WebInspector.Sidebar.prototype._resizerDoubleClicked): Deleted.
3549
3550 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
3551
3552         Web Inspector: CSS Pretty Printing: still fails fails to put space between rgb(...) and numbers in minified gradients
3553         https://bugs.webkit.org/show_bug.cgi?id=141411
3554
3555         Reviewed by Timothy Hatcher.
3556
3557         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
3558         * UserInterface/Views/CodeMirrorFormatters.js:
3559         Token actually was "number m-css" so we should check token strings
3560         more robustly, like elsewhere in the formatters.
3561
3562 2015-02-09  Brian J. Burg  <burg@cs.washington.edu>
3563
3564         Web Inspector: Uncaught exception when reporting wrong backend command call signature
3565         https://bugs.webkit.org/show_bug.cgi?id=141401
3566
3567         Reviewed by Joseph Pecoraro.
3568
3569         * UserInterface/Protocol/InspectorBackend.js:
3570         (InspectorBackend.Command.prototype._invokeWithArguments): Fix wrong variable name.
3571
3572 2015-02-06  Jono Wells  <jonowells@apple.com>
3573
3574         Web Inspector: REGRESSION: CSS Resource appears as empty after editing it via Styles sidebar
3575         https://bugs.webkit.org/show_bug.cgi?id=140586
3576
3577         Reviewed by Timothy Hatcher.
3578
3579         Update SourceCode#_processContent to properly handle the promise returned from CSSAgent so that the content
3580         will properly update when a style has changed. Properly clear the existing _requestContentPromise on the
3581         stylesheet so that the content will update correctly.
3582
3583         * UserInterface/Controllers/CSSStyleManager.js: Drive-by style updates.
3584         (WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):
3585         * UserInterface/Models/CSSStyleSheet.js: Drive-by inheritance style update.
3586         (WebInspector.CSSStyleSheet.prototype.requestContentFromBackend): Remove unnecessary backend promise function call.
3587         * UserInterface/Models/Resource.js: Drive-by removal of unused variable.
3588         * UserInterface/Models/SourceCode.js:
3589         (WebInspector.SourceCode.prototype.markContentAsStale): Clear _requestContentPromise.
3590         (WebInspector.SourceCode.prototype._processContent): Handle `parameters.text` correctly.
3591
3592 2015-02-04  Jono Wells  <jonowells@apple.com>
3593
3594         Web Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
3595         https://bugs.webkit.org/show_bug.cgi?id=141225
3596
3597         Reviewed by Timothy Hatcher.
3598
3599         Change WebInspector.SourceMapResource.prototype.requestContentFromBackend to correctly and consistently handle
3600         calls to NetworkAgent. The helper function sourceMapResourceLoaded will now properly handle parameters as a single
3601         payload, including manual calls in the case where the source map content is in a data URI. Also
3602         WebInspector.SourceCode.prototype._processContent now properly handles an error string used for displaying
3603         resource loading error messages in the resource content view.
3604
3605         * UserInterface/Models/Resource.js: drive-by style fix.
3606
3607         * UserInterface/Models/SourceCode.js:
3608         (WebInspector.SourceCode.prototype._processContent):
3609         Properly handle error string.
3610
3611         * UserInterface/Models/SourceMapResource.js:
3612         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
3613         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
3614         Formerly sourceMapResourceLoadError, now handles parameters from the NetworkAgent correctly.
3615
3616         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
3617         This function now handles NetworkAgent errors only.
3618
3619 2015-02-05  Brian J. Burg  <burg@cs.washington.edu>
3620
3621         Web Inspector: eliminate some unnecessary layout/painting in timeline overview and ruler
3622         https://bugs.webkit.org/show_bug.cgi?id=141293
3623
3624         Reviewed by Timothy Hatcher.
3625
3626         The timeline overview's ruler was forcing repaints of divider labels even if the labels
3627         had not changed since the last requestAnimationFrame. Bail out early if nothing changed.
3628
3629         The timeline overview and its graphs were updating layout using requestAnimationFrame
3630         even when the TimelineContentView is not visible. Fix this by propagating visibility
3631         changes to subviews, and not updating layout when hidden.
3632
3633         The above change also fixes an assertion sometimes encountered when the timeline view
3634         tries to cache an element's offset width, but cannot because it isn't visible.
3635
3636         * UserInterface/Views/TimelineContentView.js:
3637         (WebInspector.TimelineContentView.prototype.shown):
3638         (WebInspector.TimelineContentView.prototype.hidden):
3639         * UserInterface/Views/TimelineOverview.js:
3640         (WebInspector.TimelineOverview.prototype.get visible):
3641         (WebInspector.TimelineOverview.prototype.shown):
3642         (WebInspector.TimelineOverview.prototype.hidden):
3643         (WebInspector.TimelineOverview.prototype._needsLayout):
3644         * UserInterface/Views/TimelineOverviewGraph.js:
3645         (WebInspector.TimelineOverviewGraph.prototype.get visible):
3646         (WebInspector.TimelineOverviewGraph.prototype.shown):
3647         (WebInspector.TimelineOverviewGraph.prototype.hidden):
3648         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
3649         * UserInterface/Views/TimelineRuler.js:
3650         (WebInspector.TimelineRuler.prototype.updateLayout):
3651
3652 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
3653
3654         Web Inspector: ES6: Improved Console Support for Symbol Objects
3655         https://bugs.webkit.org/show_bug.cgi?id=141173
3656
3657         Reviewed by Timothy Hatcher.
3658
3659         * UserInterface/Protocol/RemoteObject.js:
3660         (WebInspector.RemoteObject):
3661         (WebInspector.RemoteObject.prototype._isSymbol):
3662         Symbols have an objectId because it is a non-primitive that cannot be passed
3663         by value, however it cannot have properties, so handle some cases.
3664
3665         * UserInterface/Views/LogContentView.css:
3666         (.console-formatted-symbol):
3667         Give Symbol's their own color.
3668
3669 2015-02-04  Nikita Vasilyev  <nvasilyev@apple.com>
3670
3671         Web Inspector: Insertion bar (caret) is hidden behind the placeholder text in the style editor
3672         https://bugs.webkit.org/show_bug.cgi?id=139659
3673
3674         Reviewed by Timothy Hatcher.
3675
3676         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
3677         (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
3678         Use non-monospace font to fit the placeholder text on a single line and
3679         match the color if the native placeholder.
3680
3681 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
3682
3683         Web Inspector: console.table with columnName filter for non-existent property should still show column
3684         https://bugs.webkit.org/show_bug.cgi?id=141066
3685
3686         Reviewed by Timothy Hatcher.
3687
3688         * UserInterface/Views/ConsoleMessageImpl.js:
3689         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
3690         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
3691         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
3692         If a second argument was provided to console.table, try to extract a list
3693         of string names to use for the object properties. Output a table with
3694         the provided column names, in the specified order. Also, use this
3695         opportunity to mark missing properties with an em dash.
3696
3697 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
3698
3699         Web Inspector: CSS Autocompletion: Autodetect many color supporting properties
3700         https://bugs.webkit.org/show_bug.cgi?id=141166
3701
3702         Reviewed by Timothy Hatcher.
3703
3704         * UserInterface/Base/Utilities.js:
3705         Add String.prototype.endsWith. Group String extensions together.
3706
3707         * UserInterface/Models/CSSKeywordCompletions.js:
3708         (WebInspector.CSSKeywordCompletions.forProperty):
3709         If a property name ends in "color", provide CSS color completions.
3710
3711         (WebInspector.CSSKeywordCompletions.isColorAwareProperty): Deleted.
3712         This was unused and disagrees slightly with the implementation above.
3713
3714 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
3715
3716         Web Inspector: Support console.table
3717         https://bugs.webkit.org/show_bug.cgi?id=141058
3718
3719         Reviewed by Timothy Hatcher.
3720
3721         * Localizations/en.lproj/localizedStrings.js:
3722         New "Index", "(Index)", "Value", table header strings.
3723
3724         * UserInterface/Views/ConsoleMessage.js:
3725         Add "Table", but add FIXMEs to consider using the protocol generated enums.
3726
3727         * UserInterface/Views/ConsoleMessageImpl.js:
3728         (WebInspector.ConsoleMessageImpl.prototype._format):
3729         Special case console.table messages.
3730
3731         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
3732         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
3733         Factor out ProjectPreview printing. Also, replace newlines in strings
3734         with return characters, like we did elsewhere.
3735
3736         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
3737         Ultimately try to create a DataGrid from the output. Search first
3738         for rich object data in the list. If no rich object data is found
3739         just check for simple values. If the table is lossy, also do
3740         a log of the object in case the user wants to see more data.
3741
3742
3743         * UserInterface/Views/DataGrid.js:
3744         (WebInspector.DataGrid):
3745         The for..in enumeration is unordered and may not give us the
3746         column ordering we wanted. So include an optional preferred
3747         column names list to get the preferred order.
3748
3749         (WebInspector.DataGrid.createSortableDataGrid):
3750         Numerous bug fixes here. Accidental globals, typos, and sorting failures.
3751
3752         (WebInspector.DataGrid.prototype.autoSizeColumns):
3753         (WebInspector.DataGrid.prototype.textForDataGridNodeColumn):
3754         (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
3755         Create a generic method to get the text for a datagrid node in a column.
3756         This is important for getting the text from console.table previews which
3757         contains Nodes.
3758
3759         * UserInterface/Views/LogContentView.css:
3760         (.console-messages:focus .console-item.selected .data-grid tr.selected):
3761         (.console-item .data-grid tr.selected):
3762         DataGrid selection colors while in the console which may or may
3763         not have selected console items.
3764
3765 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
3766
3767         Web Inspector: Extend CSS.getSupportedCSSProperties to provide values for properties for CSS Augmented JSContext
3768         https://bugs.webkit.org/show_bug.cgi?id=141064
3769
3770         Reviewed by Timothy Hatcher.
3771
3772         * UserInterface/Models/CSSCompletions.js:
3773         * UserInterface/Models/CSSKeywordCompletions.js:
3774         (WebInspector.CSSKeywordCompletions.addCustomCompletions):
3775         (WebInspector.CSSKeywordCompletions.addPropertyCompletionValues):
3776         If a property is specified with custom values, extend the
3777         keyword completions map to make those values available
3778         in autocompletion.
3779
3780 2015-01-30  Joseph Pecoraro  <pecoraro@apple.com>
3781
3782         Remote Web Inspector should not show undock toolbar buttons
3783         https://bugs.webkit.org/show_bug.cgi?id=141061
3784
3785         Reviewed by Timothy Hatcher.
3786
3787         * UserInterface/Base/Main.js:
3788         (WebInspector.contentLoaded):
3789         Be sure to update the toolbar's dock navigation icons because they
3790         may need to be hidden (the default state).
3791
3792 2015-01-29  Saam Barati  <saambarati1@gmail.com>
3793
3794         Web Inspector: Allow text selection when the BasicBlockAnnotator is enabled
3795         https://bugs.webkit.org/show_bug.cgi?id=140987
3796
3797         Reviewed by Timothy Hatcher.
3798
3799         Because the BasicBlockAnnotator no longer sets the background color of
3800         lines that haven't executed to gray, text selection while the
3801         BasicBlockAnnotator is enabled no longer results in a bad user interface.
3802         This patch both allows text selection while the BasicBlockAnnotator is
3803         enabled and also removes the now unused listeners to CodeMirror's focus
3804         and blur events.
3805
3806         * UserInterface/Views/SourceCodeTextEditor.js:
3807         (WebInspector.SourceCodeTextEditor):
3808         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
3809         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
3810         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
3811         (WebInspector.SourceCodeTextEditor.prototype.gainedFocus): Deleted.
3812         (WebInspector.SourceCodeTextEditor.prototype.lostFocus): Deleted.
3813         * UserInterface/Views/TextEditor.js:
3814         (WebInspector.TextEdi