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