Web Inspector: console.error output broken, does not produce ObjectTree
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2015-03-10  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: console.error output broken, does not produce ObjectTree
4         https://bugs.webkit.org/show_bug.cgi?id=142554
5
6         Reviewed by Timothy Hatcher.
7
8         * UserInterface/Models/IssueMessage.js:
9         (WebInspector.IssueMessage):
10         * UserInterface/Protocol/ConsoleObserver.js:
11         (WebInspector.ConsoleObserver.prototype.messageAdded):
12
13 2015-03-10  Saam Barati  <saambarati1@gmail.com>
14
15         Web Inspector: Destructuring function parameters should show type information
16         https://bugs.webkit.org/show_bug.cgi?id=142233
17
18         Reviewed by Joseph Pecoraro.
19
20         JSC supports a function's formal parameter being a destructuring pattern, 
21         and so should the type profiler in the Inspector. This was just an oversight 
22         not to have this in bug 141215.
23
24         This patch also does a bit of refactoring to not have duplicate code
25         that traverses AST nodes in TypeTokenAnnotator and ScriptSyntaxTree.
26         Before, both of these classes were responsible for traversing the AST
27         in an identical way, this is bad. Now, ScriptSyntaxTree contains the
28         canonical implementation of how the AST should be traversed and which
29         AST nodes should be collected for type profiling. ScriptSyntaxTree will
30         pass this information back to TypeTokenAnnotator.
31
32         * UserInterface/Controllers/TypeTokenAnnotator.js:
33         (WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
34         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode): Deleted.
35         * UserInterface/Models/ScriptSyntaxTree.js:
36         (WebInspector.ScriptSyntaxTree.prototype.):
37         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
38         (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
39         (WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration): Deleted.
40
41 2015-03-09  Joseph Pecoraro  <pecoraro@apple.com>
42
43         Web Inspector: Inline Error / Warning message for Issues
44         https://bugs.webkit.org/show_bug.cgi?id=142520
45
46         Reviewed by Timothy Hatcher.
47
48         * Localizations/en.lproj/localizedStrings.js:
49         * UserInterface/Main.html:
50         New strings and new files.
51
52         * UserInterface/Controllers/IssueManager.js:
53         (WebInspector.IssueManager.prototype.issueWasAdded):
54         * UserInterface/Models/IssueMessage.js:
55         (WebInspector.IssueMessage):
56         (WebInspector.IssueMessage.prototype.get columnNumber):
57         * UserInterface/Protocol/ConsoleObserver.js:
58         (WebInspector.ConsoleObserver.prototype.messageAdded):
59         Correctly pass the column number into IssueMessage.
60
61         * UserInterface/Models/LineWidget.js:
62         (WebInspector.LineWidget):
63         (WebInspector.LineWidget.prototype.get codeMirrorLineWidget):
64         (WebInspector.LineWidget.prototype.get widgetElement):
65         Create a new Model class for a LineWidget. The root element
66         should never change, but its children can be updated.
67
68         * UserInterface/Views/SourceCodeTextEditor.css:
69         (.source-code.text-editor .CodeMirror-linewidget):
70         Override styles so that widgets can overlap line content.
71
72         (.source-code.text-editor > .CodeMirror .issue-widget):
73         (.source-code.text-editor > .CodeMirror .issue-widget.inline):
74         Float issue widgets to the right side of the editor.
75
76         (.source-code.text-editor > .CodeMirror .issue-widget > .arrow):
77         (.source-code.text-editor > .CodeMirror .issue-widget.inline > .arrow):
78         Pure CSS arrow for widgets on the same line as their issue.
79
80         (.source-code.text-editor > .CodeMirror .issue-widget > .icon):
81         (.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-warning):
82         (.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-error):
83         Issue icon styles for the different issue types.
84
85         (.source-code.text-editor > .CodeMirror .issue-widget.warning):
86         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
87         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
88         (.source-code.text-editor > .CodeMirror .issue-widget.error):
89         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
90         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
91         Different colors for the different issue types.
92
93         (.source-code.text-editor > .CodeMirror .issue-widget > .text):
94         (.source-code.text-editor > .CodeMirror .issue-widget.inline > .text):
95         Text positioning when on the same line or when expanded.
96
97         * UserInterface/Views/SourceCodeTextEditor.js:
98         (WebInspector.SourceCodeTextEditor.prototype._addIssue):
99         (WebInspector.SourceCodeTextEditor.prototype._iconClassNameForIssueLevel):
100         (WebInspector.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
101         (WebInspector.SourceCodeTextEditor.prototype._isWidgetToggleable):
102         (WebInspector.SourceCodeTextEditor.prototype._handleWidgetClick):
103         Create widgets for issues.
104
105         (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
106         (WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
107         (WebInspector.SourceCodeTextEditor.prototype._clearWidgets):
108         (WebInspector.SourceCodeTextEditor.prototype._reinsertAllIssues):
109         Update all widgets in certain cases.
110
111         * UserInterface/Views/TextEditor.js:
112         (WebInspector.TextEditor.prototype.addStyleClassToLine):
113         This assertion is known to happen for issues added to an editor
114         before the content has loaded.
115
116         (WebInspector.TextEditor.prototype.createWidgetForLine):
117         Create a widget for a line.
118
119 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
120
121         Web Inspector: JS Pretty Printing: "case" or "default" outside of switch causes unbalanced indentation
122         https://bugs.webkit.org/show_bug.cgi?id=142428
123
124         Reviewed by Timothy Hatcher.
125
126         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
127         * UserInterface/Views/CodeMirrorFormatters.js:
128         Fix "case" and "default" indentation rules to only happen inside a switch.
129
130         * Tools/PrettyPrinting/js-tests/switch-case-default-expected.js:
131         * Tools/PrettyPrinting/js-tests/switch-case-default.js:
132         Add tests for "case" and "default" nested inside and outside of switches.
133
134 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
135
136         Web Inspector: ES6: Improved Support for Iterator Objects
137         https://bugs.webkit.org/show_bug.cgi?id=142420
138
139         Reviewed by Timothy Hatcher.
140
141         * UserInterface/Views/ConsoleMessageImpl.js:
142         (WebInspector.ConsoleMessageImpl):
143         Treat an iterator like an object.
144
145         * UserInterface/Views/ObjectPreviewView.js:
146         Output iterator previews with []s, not {}s.
147
148 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
149
150         Web Inspector: Adopt Object Literal Method Property Syntax
151         https://bugs.webkit.org/show_bug.cgi?id=142409
152
153         Reviewed by Timothy Hatcher.
154
155         Mechanical change touching lots of files.
156
157 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
158
159         Web Inspector: Adopt Object Literal Shorthand Property Construction Syntax
160         https://bugs.webkit.org/show_bug.cgi?id=142374
161
162         Reviewed by Timothy Hatcher.
163
164         Mechanical change touching lots of files.
165
166 2015-03-06  Jono Wells  <jonowells@apple.com>
167
168         Web Inspector: Populate Debugger sidebar with all debuggable resources
169         https://bugs.webkit.org/show_bug.cgi?id=141232
170
171         Reviewed by Timothy Hatcher.
172
173         All debuggable resources now show in the debugger sidebar. The _resourceAdded handler now adds a script resource
174         to the sidebar regardless of whether it has any breakpoints set on it. The new function
175         _getTreeElementForSourceCodeAndAddToContentTreeOutline adds the element to the debugger sidebar before
176         _addBreakpointsForSourceCode is called. Removing all breakpoints from a resource no longer removes that
177         resource from the debugger sidebar. TreeOutline.prototype.removeChild has been updated so the disclosure
178         button will disappear and reappear correctly when removing/adding breakpoints.
179
180         * UserInterface/Views/DebuggerSidebarPanel.js:
181         (WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint): Expand resource if first breakpoint is added.
182         (WebInspector.DebuggerSidebarPanel.prototype._getTreeElementForSourceCodeAndAddToContentTreeOutline): Created.
183         (WebInspector.DebuggerSidebarPanel.prototype._resourceAdded): Checks resource type and adds scripts to sidebar.
184         (WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
185         (WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
186         (WebInspector.DebuggerSidebarPanel.prototype._removeBreakpointTreeElement): No longer removes empty parent.
187         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected): Displays scripts without breakpoints now.
188
189         * UserInterface/Views/GeneralTreeElement.js:
190         (WebInspector.GeneralTreeElement.prototype.get disclosureButton): Drive-by fix. Unused. Deleted.
191
192         * UserInterface/Views/TreeOutline.js:
193         (TreeOutline.prototype.removeChild):
194         Remove parent class and set hasChildren to false if necessary to properly hide and reveal disclosure button
195         for elements whose children have been removed.
196
197 2015-03-05  Joseph Pecoraro  <pecoraro@apple.com>
198
199         Web Inspector: Follow-up fixes to ObjectTreeBaseTreeElement
200         https://bugs.webkit.org/show_bug.cgi?id=142367
201
202         Reviewed by Timothy Hatcher.
203
204         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
205         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.propertyPathType):
206         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
207         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValuePropertyPath):
208         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
209
210 2015-03-05  Tobias Reiss  <tobi+webkit@basecode.de>
211
212         Web Inspector: console.debug/info should show up in Log Console Filter
213         https://bugs.webkit.org/show_bug.cgi?id=142300
214
215         Reviewed by Joseph Pecoraro.
216
217         Add WebInspector.ConsoleMessage.MessageLevel.Debug case that allows console.debug/info
218         to show up in Log Console Filter.
219
220         * UserInterface/Views/LogContentView.js:
221         (WebInspector.LogContentView.prototype._filterMessages):
222
223 2015-03-05  Joseph Pecoraro  <pecoraro@apple.com>
224
225         Web Inspector: Add ObjectTreeBaseTreeElement to share functionality
226         https://bugs.webkit.org/show_bug.cgi?id=142323
227
228         Reviewed by Timothy Hatcher.
229
230         By making this change:
231
232           - Share lots of duplicated code.
233           - Array / Set / Map tree elements get context menu support
234
235         * UserInterface/Main.html:
236         * UserInterface/Views/ObjectTreeBaseTreeElement.js: Added.
237         (WebInspector.ObjectTreeBaseTreeElement):
238         (WebInspector.ObjectTreeBaseTreeElement.prototype.get property):
239         (WebInspector.ObjectTreeBaseTreeElement.prototype.get propertyPath):
240         (WebInspector.ObjectTreeBaseTreeElement.prototype.oncontextmenu):
241         (WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValue):
242         (WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValuePropertyPath):
243         (WebInspector.ObjectTreeBaseTreeElement.prototype.thisPropertyPath):
244         (WebInspector.ObjectTreeBaseTreeElement.prototype.hadError):
245         (WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathType):
246         (WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathString):
247         (WebInspector.ObjectTreeBaseTreeElement.prototype.createInteractiveGetterElement):
248         (WebInspector.ObjectTreeBaseTreeElement.prototype.createReadOnlyIconElement):
249         New file, copying most of the code from PropertyTreeElement so it can be shared.
250
251         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
252         (WebInspector.ObjectTreeArrayIndexTreeElement):
253         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.invokedGetter):
254         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
255         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property): Deleted.
256         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue): Deleted.
257         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType): Deleted.
258         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
259         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath): Deleted.
260         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString): Deleted.
261         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle): Deleted.
262         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.): Deleted.
263         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement): Deleted.
264         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
265         (WebInspector.ObjectTreePropertyTreeElement):
266         (WebInspector.ObjectTreePropertyTreeElement.prototype.invokedGetter):
267         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
268         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
269         (WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
270         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
271         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
272         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
273         (WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
274         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
275         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
276         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
277         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
278         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property): Deleted.
279         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu): Deleted.
280         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue): Deleted.
281         (WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType): Deleted.
282         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath): Deleted.
283         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath): Deleted.
284         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon): Deleted.
285         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.): Deleted.
286         (WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement): Deleted.
287         (WebInspector.ObjectTreePropertyTreeElement.prototype): Deleted.
288         Subclass ObjectTreeBaseTreeElement and eliminate the code now
289         automatically handled by the base class.
290
291         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
292         (WebInspector.ObjectTreeMapEntryTreeElement):
293         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.resolvedValue):
294         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
295         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString): Deleted.
296         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
297         (WebInspector.ObjectTreeSetIndexTreeElement):
298         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValue):
299         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
300         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
301         Override resolved value since these are not about PropertyDescriptors.
302         This will make context menus work automatically.
303
304 2015-03-04  Joseph Pecoraro  <pecoraro@apple.com>
305
306         Web Inspector: Improve display of previews with overflow
307         https://bugs.webkit.org/show_bug.cgi?id=142321
308
309         Reviewed by Timothy Hatcher.
310
311         * UserInterface/Views/ObjectPreviewView.js:
312         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
313         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
314
315 2015-03-04  Joseph Pecoraro  <pecoraro@apple.com>
316
317         Web Inspector: Array/Collection Sizes should be visible and distinct
318         https://bugs.webkit.org/show_bug.cgi?id=142254
319
320         Reviewed by Timothy Hatcher.
321
322         * UserInterface/Models/ObjectPreview.js:
323         (WebInspector.ObjectPreview):
324         (WebInspector.ObjectPreview.fromPayload):
325         (WebInspector.ObjectPreview.prototype.get size):
326         (WebInspector.ObjectPreview.prototype.hasSize):
327         * UserInterface/Protocol/RemoteObject.js:
328         (WebInspector.RemoteObject):
329         (WebInspector.RemoteObject.fromPrimitiveValue):
330         (WebInspector.RemoteObject.fromPayload):
331         (WebInspector.RemoteObject.prototype.get size):
332         (WebInspector.RemoteObject.prototype.hasSize):
333         Check if this type has a size and get the size.
334         Gracefully handle construction for legacy protocols.
335
336         * UserInterface/Views/ObjectPreviewView.css:
337         (.object-preview > .size):
338         * UserInterface/Views/FormattedValue.css:
339         (:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap) > .size):
340         Style the array/collection size.
341
342         * UserInterface/Views/ObjectPreviewView.js:
343         (WebInspector.ObjectPreviewView):
344         * UserInterface/Views/FormattedValue.js:
345         (WebInspector.FormattedValue.createElementForTypesAndValue):
346         (WebInspector.FormattedValue.createElementForRemoteObject):
347         (WebInspector.FormattedValue.createElementForObjectPreview):
348         (WebInspector.FormattedValue.createElementForPropertyPreview):
349         Add an element showing the array/collection size.
350
351         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
352         (WebInspector.ObjectTreePropertyTreeElement.prototype):
353         Remove special handling for Array sizes now that this is handled earlier.
354
355         * UserInterface/Controllers/StorageManager.js:
356         (WebInspector.StorageManager.prototype.processData):
357         (WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
358         Fix what looks like broken RemoteObject construction.
359
360 2015-03-04  Brian J. Burg  <burg@cs.washington.edu>
361
362         Web Inspector: TimelineViews should be displayed in a ContentViewContainer
363         https://bugs.webkit.org/show_bug.cgi?id=142290
364
365         Reviewed by Timothy Hatcher.
366
367         TimelineRecordingContentView has a bunch of logic to manage the currently visible TimelineView.
368         This could be delegated to a ContentViewContainer to simplify the logic. It also opens the possibility
369         for other views to be displayed beneath the timeline overview graphs when it makes sense to do so.
370
371         In order to be displayable in the container, TimelineView and its subclasses have been upgraded to
372         be ContentView subclasses. This also reduces some code duplication for basic view management.
373
374         * UserInterface/Views/ContentView.js:
375         (WebInspector.ContentView): Move base class instantiation pattern from TimelineView to here.
376         (WebInspector.ContentView.isViewable):
377         * UserInterface/Views/LayoutTimelineView.js: Use ContentView events and base methods.
378         (WebInspector.LayoutTimelineView.prototype.shown):
379         (WebInspector.LayoutTimelineView.prototype.hidden):
380         (WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
381         * UserInterface/Views/NetworkTimelineView.js: Use ContentView events and base methods.
382         (WebInspector.NetworkTimelineView.prototype.shown):
383         (WebInspector.NetworkTimelineView.prototype.hidden):
384         (WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
385         * UserInterface/Views/OverviewTimelineView.js: Use ContentView events and base methods.
386         (WebInspector.OverviewTimelineView.prototype.shown):
387         (WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
388         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
389         * UserInterface/Views/ScriptTimelineView.js: Use ContentView events and base methods.
390         (WebInspector.ScriptTimelineView.prototype.shown):
391         (WebInspector.ScriptTimelineView.prototype.hidden):
392         (WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
393         * UserInterface/Views/TimelineRecordingContentView.css: Use WebInspector.ContentViewContainer class.
394         (.content-view.timeline-recording > .content-view-container):
395         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid td):
396         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data):
397         (.content-view.timeline-recording > .view-container): Deleted.
398         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td): Deleted.
399         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data): Deleted.
400
401         * UserInterface/Views/TimelineRecordingContentView.js:
402         Many of the changes here mirror the implementation of ClusterContentView. Searching is disabled since
403         none of the timeline views are currently searchable using ContentViewContainer's full-text search.
404
405         In cases where we update the current timeline view, the currentTimelineView accessor returns the
406         content view if a TimelineView is shown in the content view container, otherwise null.
407
408         (WebInspector.TimelineRecordingContentView):
409         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
410         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
411         (WebInspector.TimelineRecordingContentView.prototype.get supplementalRepresentedObjects):
412         (WebInspector.TimelineRecordingContentView.prototype.get handleCopyEvent):
413         (WebInspector.TimelineRecordingContentView.prototype.get supportsSave):
414         (WebInspector.TimelineRecordingContentView.prototype.get saveData):
415         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
416         (WebInspector.TimelineRecordingContentView.prototype.shown):
417         (WebInspector.TimelineRecordingContentView.prototype.hidden):
418         (WebInspector.TimelineRecordingContentView.prototype.closed):
419         (WebInspector.TimelineRecordingContentView.prototype.canGoBack):
420         (WebInspector.TimelineRecordingContentView.prototype.canGoForward):
421         (WebInspector.TimelineRecordingContentView.prototype.goBack):
422         (WebInspector.TimelineRecordingContentView.prototype.goForward):
423         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
424         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
425         (WebInspector.TimelineRecordingContentView.prototype.get filterDidChange):
426         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
427         (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
428         (WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange):
429         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
430         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
431         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
432         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
433         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange): Deleted.
434         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange): Deleted.
435         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView): Deleted.
436         * UserInterface/Views/TimelineView.js: Remove duplicated functionality and use ContentView equivalents instead.
437         (WebInspector.TimelineView):
438         (WebInspector.TimelineView.prototype.filterUpdated):
439         (WebInspector.TimelineView.prototype.needsLayout):
440         (WebInspector.TimelineView.prototype.get representedObject): Deleted.
441         (WebInspector.TimelineView.prototype.get visible): Deleted.
442         (WebInspector.TimelineView.prototype.shown): Deleted.
443         (WebInspector.TimelineView.prototype.hidden): Deleted.
444
445 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
446
447         Web Inspector: selecting overview timeline tree elements without source locations doesn't update selection components
448         https://bugs.webkit.org/show_bug.cgi?id=142248
449
450         Reviewed by Timothy Hatcher.
451
452         Add a missing event dispatch to trigger recalculation of path components when showing the overview timeline view.
453
454         * UserInterface/Views/OverviewTimelineView.js:
455         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
456
457 2015-03-03  Nikita Vasilyev  <nvasilyev@apple.com>
458
459         Web Inspector: Refactoring: separate ConsoleSession from ConsoleGroup
460         https://bugs.webkit.org/show_bug.cgi?id=142141
461
462         ConsoleSession doesn't have a title and it's not collapsible either.
463         Simplify ConsoleSession by removing excessive markup.
464
465         Reviewed by Timothy Hatcher.
466
467         * UserInterface/Controllers/JavaScriptLogViewController.js:
468         (WebInspector.JavaScriptLogViewController):
469         (WebInspector.JavaScriptLogViewController.prototype.startNewSession):
470         (WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
471         (WebInspector.JavaScriptLogViewController.prototype.get topConsoleGroup): Deleted.
472         * UserInterface/Main.html:
473         * UserInterface/Views/ConsoleGroup.js:
474         (WebInspector.ConsoleGroup):
475         (WebInspector.ConsoleGroup.prototype.render):
476         (WebInspector.ConsoleGroup.prototype.addMessage):
477         (WebInspector.ConsoleGroup.prototype.append):
478         (WebInspector.ConsoleGroup.prototype.hasMessages): Deleted.
479         * UserInterface/Views/ConsoleSession.js: Added.
480         (WebInspector.ConsoleSession):
481         (WebInspector.ConsoleSession.prototype.addMessage):
482         (WebInspector.ConsoleSession.prototype.append):
483         (WebInspector.ConsoleSession.prototype.hasMessages):
484         * UserInterface/Views/LogContentView.css:
485         (.console-session + .console-session):
486         (.console-group.new-session .console-group-messages .console-item:first-child): Deleted.
487         (.console-group.new-session): Deleted.
488
489 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
490
491         Web Inspector: popover should use requestAnimationFrame to drive move/resize animations
492         https://bugs.webkit.org/show_bug.cgi?id=142218
493
494         Reviewed by Timothy Hatcher.
495
496         Remove setTimeout workaround now that Inspector runs in its own process.
497
498         * UserInterface/Views/Popover.js:
499         (WebInspector.Popover.prototype.drawBackground):
500         (WebInspector.Popover.prototype._animateFrame):
501
502 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
503
504         Web Inspector: Console log level selector loses selection on reload
505         https://bugs.webkit.org/show_bug.cgi?id=142199
506
507         Reviewed by Timothy Hatcher.
508
509         The selected items in the console scope bar were being saved as settings,
510         but the "All" scope is forcibly selected on reload due to a logic bug.
511
512         * UserInterface/Base/Main.js:
513         (WebInspector.showFullHeightConsole):
514         The scope bar may already have selected items restored from WebInspector.Settings.
515         Don't select a scope unless explicitly requested (i.e., clicking on dashboard buttons)
516         or if no scopes are selected at all. (In the latter case, "All" is the default scope.)
517
518         * UserInterface/Views/LogContentView.js:
519         (WebInspector.LogContentView): Don't specify a default value here to avoid trampling
520         settings. The "All" scope is selected by default in showFullHeightConsole if
521         nothing else is selected.
522
523 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
524
525         Web Inspector: Remove native extensions now built-in
526         https://bugs.webkit.org/show_bug.cgi?id=142203
527
528         Reviewed by Timothy Hatcher.
529
530         * UserInterface/Base/Utilities.js:
531
532 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
533
534         Web Inspector: Context Menu to Log a Particular Object
535         https://bugs.webkit.org/show_bug.cgi?id=142198
536
537         Reviewed by Timothy Hatcher.
538
539         * UserInterface/Controllers/JavaScriptLogViewController.js:
540         (WebInspector.JavaScriptLogViewController.prototype.saveResultCallback):
541         (WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
542         Add a way to show an execution and result immediately in the Log View.
543
544         * UserInterface/Views/ConsolePrompt.js:
545         (WebInspector.ConsolePrompt.prototype.pushHistoryItem):
546         (WebInspector.ConsolePrompt.prototype.commitTextOrInsertNewLine):
547         (WebInspector.ConsolePrompt.prototype._handleEnterKey):
548         (WebInspector.ConsolePrompt.prototype._commitHistoryEntry):
549         Add a way to append a history item to the console prompt history.
550
551         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
552         (WebInspector.ObjectTreePropertyTreeElement.prototype):
553         Add a context menu item to object tree properties to log the value.
554
555         * UserInterface/Protocol/RemoteObject.js:
556         (WebInspector.RemoteObject.createCallArgument):
557         (WebInspector.RemoteObject.prototype.callFunction):
558         (WebInspector.RemoteObject.prototype.asCallArgument):
559         Simplify CallArgument creation.
560
561         * UserInterface/Controllers/RuntimeManager.js:
562         (WebInspector.RuntimeManager.prototype.mycallback):
563         (WebInspector.RuntimeManager.prototype.saveResult):
564         Wrap RuntimeAgent.saveResult. If supported, run the backend command
565         and fetch a saved result index from the backend for the given value.
566
567         * Localizations/en.lproj/localizedStrings.js:
568         * UserInterface/Base/Main.js:
569         (WebInspector.contentLoaded):
570         * UserInterface/Views/LogContentView.js:
571         (WebInspector.LogContentView.prototype.get logViewController):
572         Misc.
573
574 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
575
576         Web Inspector: Add Context Menus to Object Tree properties
577         https://bugs.webkit.org/show_bug.cgi?id=142125
578
579         Reviewed by Timothy Hatcher.
580
581         * Localizations/en.lproj/localizedStrings.js:
582         * UserInterface/Views/ObjectPropertiesSection.js:
583         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
584         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
585         Fix legacy implementation.
586
587         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
588         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
589         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
590         Give prototype buttons a tooltip.
591
592         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu):
593         (WebInspector.ObjectTreePropertyTreeElement.prototype._contextMenuHandler):
594         (WebInspector.ObjectTreePropertyTreeElement.prototype._appendMenusItemsForObject):
595         Context Menus based on the selected object.
596
597 2015-02-27  Joseph Pecoraro  <pecoraro@apple.com>
598
599         Web Inspector: Use Maps in ResourceCollection instead of objects
600         https://bugs.webkit.org/show_bug.cgi?id=142101
601
602         Reviewed by Timothy Hatcher.
603
604         * UserInterface/Models/ResourceCollection.js:
605         (WebInspector.ResourceCollection):
606         (WebInspector.ResourceCollection.prototype.resourcesWithType):
607         (WebInspector.ResourceCollection.prototype.removeAllResources):
608         (WebInspector.ResourceCollection.prototype.resourceForURL):
609         (WebInspector.ResourceCollection.prototype._associateWithResource):
610         (WebInspector.ResourceCollection.prototype._disassociateWithResource):
611         (WebInspector.ResourceCollection.prototype._resourceURLDidChange):
612         (WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
613         Use Maps instead of objects.
614
615 2015-02-26  Nikita Vasilyev  <nvasilyev@apple.com>
616
617         Web Inspector: Add a subtle blue background for selected console messages
618         https://bugs.webkit.org/show_bug.cgi?id=142073
619
620         Reviewed by Timothy Hatcher.
621
622         * UserInterface/Views/LogContentView.css:
623         (.console-item.selected::after):
624         (.console-messages:focus .console-item.selected):
625         (.console-messages:focus .console-item.selected + .console-item):
626         (.console-error-level + .console-item):
627         (.console-error-level .section .header .title):
628         (.console-warning-level):
629         (.console-warning-level + .console-item):
630
631 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
632
633         Web Inspector: Colored console messages apply text color to object tree properties
634         https://bugs.webkit.org/show_bug.cgi?id=142051
635
636         Reviewed by Timothy Hatcher.
637
638         * UserInterface/Views/ObjectPreviewView.css:
639         (.object-preview):
640         * UserInterface/Views/ObjectTreeView.css:
641         (.object-tree):
642         Default the color to black within Object Tree and Object Preview views.
643
644 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
645
646         Web Inspector: Clear Log on Reload clears some logs that were after reload
647         https://bugs.webkit.org/show_bug.cgi?id=142070
648
649         Reviewed by Timothy Hatcher.
650
651         * UserInterface/Views/LogContentView.js:
652         (WebInspector.LogContentView.prototype._sessionStarted):
653         We can bail after calling clearLog, since that will already start
654         a new session for us.
655
656         (WebInspector.LogContentView.prototype._clearLog):
657         Don't trigger a backend clear messages, since that will cause us to
658         clear messages received between the request and response.
659
660 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
661
662         Web Inspector: Save Console Evaluations into Command Line variables $1-$99 ($n)
663         https://bugs.webkit.org/show_bug.cgi?id=142061
664
665         Reviewed by Timothy Hatcher.
666
667         * UserInterface/Controllers/RuntimeManager.js:
668         (WebInspector.RuntimeManager.prototype.evalCallback):
669         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
670         Add a saveResult parameter for the new protocol command in parameter.
671
672         * UserInterface/Views/ConsoleMessageImpl.js:
673         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
674         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
675         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
676         (WebInspector.ConsoleMessageImpl.prototype._rootPropertyPathForObject):
677         * UserInterface/Views/ObjectTreeView.js:
678         (WebInspector.ObjectTreeView.prototype.appendTitleSuffix):
679         For console evaluation results, show a "= $n" when the evaluation was
680         given a saved result index.
681
682         * UserInterface/Views/LogContentView.css:
683         (.console-saved-variable):
684         * UserInterface/Views/ObjectPreviewView.css:
685         (.object-preview-name):
686         Make $n and class names in previews always non-italics.
687
688         * UserInterface/Controllers/JavaScriptLogViewController.js:
689         (WebInspector.JavaScriptLogViewController.prototype.printResult):
690         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
691         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
692         (get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
693         * UserInterface/Controllers/LogManager.js:
694         (WebInspector.LogManager.prototype.messagesCleared):
695         (WebInspector.LogManager.prototype._mainResourceDidChange):
696         Try to provide better autocompletion for $n, by populating autocompletion menus
697         from $1-$n where n is the maximum saved result index seen. Clear the maximum
698         when we clear the console.
699
700         * UserInterface/Views/ConsoleCommandResult.js:
701         (WebInspector.ConsoleCommandResult):
702         (WebInspector.ConsoleCommandResult.clearMaximumSavedResultIndex):
703         Keep track of the maximum savedResultIndex for console evaluation results.
704
705 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
706
707         Web Inspector: Set/Map appear as lossless when they have lossy entries
708         https://bugs.webkit.org/show_bug.cgi?id=142050
709
710         Reviewed by Timothy Hatcher.
711
712         * UserInterface/Views/ObjectPreviewView.js:
713         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
714         Take into account the lossless states of entry keys and values.
715
716 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
717
718         Web Inspector: New ObjectTree UI for Arrays / Maps / Sets
719         https://bugs.webkit.org/show_bug.cgi?id=142037
720
721         Reviewed by Timothy Hatcher.
722
723         * Localizations/en.lproj/localizedStrings.js:
724         * UserInterface/Main.html:
725         Miscellaneous changes.
726
727         * UserInterface/Models/PropertyDescriptor.js:
728         (WebInspector.PropertyDescriptor.prototype.isIndexProperty):
729         Useful for quickly checking if this property is numeric and possibly
730         an array index.
731
732         * UserInterface/Models/PropertyPath.js:
733         (WebInspector.PropertyPath.prototype.appendMapKey):
734         (WebInspector.PropertyPath.prototype.appendMapValue):
735         (WebInspector.PropertyPath.prototype.appendSetIndex):
736         Be specific about property paths into maps / sets. Note that a map
737         value may be displayable if the key is simple.
738
739         * UserInterface/Protocol/RemoteObject.js:
740         (WebInspector.RemoteObject.prototype.hasValue):
741         A simple value RemoteObject may have the value "undefined". So provide
742         a falsey proof helper that actually checks if we have a value.
743
744         (WebInspector.RemoteObject.prototype.isArray):
745         (WebInspector.RemoteObject.prototype.backendGetOwnPropertyDescriptor):
746         (WebInspector.RemoteObject.prototype.wrappedCallback):
747         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
748         Currently backend APIs exist only to get all properties. In the case
749         of collections, we often want to get only one property (__proto__).
750         This is a simple implementation on top of callFunctionOn.
751
752         * UserInterface/Views/ConsoleMessageImpl.js:
753         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
754         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
755         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined): Deleted.
756         (WebInspector.ConsoleMessageImpl.prototype._printArray): Deleted.
757         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry): Deleted.
758         Simplify array formatted to just use an ObjectTreeView. Add fixmes
759         that we should seed the ObjectTreeView with a starting property path.
760
761         * UserInterface/Views/FormattedValue.css:
762         (.formatted-node > ol):
763         Sometimes, a node's display was getting overridden by various console styles.
764         Force a node to always display block. We may be able to remove this later.
765
766         * UserInterface/Views/FormattedValue.js:
767         (WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
768         Helper for formatting a node / object / value more easily. This
769         is used by all collection types.
770
771         * UserInterface/Views/ObjectPreviewView.js:
772         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
773         We lost the nice sparse array support when switching to the new preview path,
774         we should add it back.
775
776         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
777         (.object-tree-array-index):
778         (.object-tree-array-index > .titles):
779         (.object-tree-array-index > .icon):
780         (.object-tree-array-index .index-name):
781         (.object-tree-array-index .index-value .object-tree):
782         (.object-tree-array-index .index-value .object-tree .object-tree-outline):
783         (.object-tree-property + ol .object-tree-array-index):
784         New styles specific to array index tree elements.
785
786         * UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
787         (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
788         (.object-tree-map-entry.key):
789         (.object-tree-map-entry.key:first-of-type):
790         (.object-tree-map-entry):
791         New styles specific to map key/value tree elements.
792
793         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Removed.
794         Remove old collection implementation.
795
796         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: Added.
797         (WebInspector.ObjectTreeArrayIndexTreeElement):
798         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property):
799         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue):
800         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType):
801         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath):
802         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath):
803         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString):
804         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle):
805         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
806         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.):
807         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement):
808         Index followed by formatted value. Unfortunately a page can hack up an array
809         with getter properties, so also support getter values in an array. This ends
810         up copying a lot of ObjectTreePropertyTreeElement as a result.
811
812         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js: Added.
813         (WebInspector.ObjectTreeMapEntryTreeElement):
814         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.get object):
815         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString):
816         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
817         (WebInspector.ObjectTreeMapKeyTreeElement):
818         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.displayPropertyName):
819         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.resolvedValuePropertyPath):
820         (WebInspector.ObjectTreeMapValueTreeElement):
821         (WebInspector.ObjectTreeMapValueTreeElement.prototype.displayPropertyName):
822         (WebInspector.ObjectTreeMapValueTreeElement.prototype.resolvedValuePropertyPath):
823         Key/value followed by formatted value.
824
825         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js: Added.
826         (WebInspector.ObjectTreeSetIndexTreeElement):
827         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.get object):
828         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath):
829         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
830         Dot followed by formatted value.
831
832         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
833         (.object-tree-property > .titles):
834         Reformat.
835
836         * UserInterface/Views/ObjectTreeView.css:
837         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
838         Upgrade generic styles.
839
840         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
841         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
842         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
843         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
844         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
845         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
846         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
847         * UserInterface/Views/ObjectTreeView.js:
848         (WebInspector.ObjectTreeView):
849         (WebInspector.ObjectTreeView.emptyMessageElement):
850         (WebInspector.ObjectTreeView.prototype.expand):
851         (WebInspector.ObjectTreeView.prototype.collapse):
852         (WebInspector.ObjectTreeView.prototype.update):
853         (WebInspector.ObjectTreeView.prototype._updateChildren):
854         (WebInspector.ObjectTreeView.prototype._updateEntries):
855         (WebInspector.ObjectTreeView.prototype._updateProperties):
856         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
857         Both ObjectTreeView and ObjectTreePropertyTreeElement will fetch only collection
858         entries or properties depending on the type of the object being expanded.
859
860         (WebInspector.ObjectTreeView.prototype._trackWeakEntries):
861         (WebInspector.ObjectTreeView.prototype._untrackWeakEntries):
862         Allow WeakMap entries to be Garbage Collected when the ObjectTreeView
863         collapses or the console is cleared. FIXME for handling sub-tree WeakMaps.
864
865 2015-02-26  Brent Fulgham  <bfulgham@apple.com>
866
867         [Win] Make build logs more legible by reducing noise
868         https://bugs.webkit.org/show_bug.cgi?id=142034
869
870         Reviewed by Alexey Proskuryakov.
871
872         Modify batch files, makefiles, and DOS commands to remove
873         uninteresting/unhelpful output.
874
875         * WebInspectorUI.vcxproj/WebInspectorUI.make:
876
877 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
878
879         Web Inspector: Improve Regex/Error output in Object Tree and Previews
880         https://bugs.webkit.org/show_bug.cgi?id=142010
881
882         Reviewed by Timothy Hatcher.
883
884         * UserInterface/Views/ObjectPreviewView.js:
885         (WebInspector.ObjectPreviewView):
886         (WebInspector.ObjectPreviewView.prototype._initTitleElement):
887         Since some object types may be formatted as simple values, ensure they get
888         the formatted style even in the title view.
889
890         (WebInspector.ObjectPreviewView.prototype._appendPreview):
891         Those object types that can be formatted as simple values should skip
892         to the value formatting phase.
893
894         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
895         Do not show property previews for error objects. Always assume lossy
896         so that it can be expanded.
897
898         * UserInterface/Views/ObjectTreeView.js:
899         (WebInspector.ObjectTreeView):
900         Make a similiar improvement for ObjectTree titles when previews are
901         unavailable. This will make dir(value) show a stylized value in the
902         title of the Object Tree.
903
904 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
905
906         Web Inspector: Improve PropertyPath display strings for getters / values
907         https://bugs.webkit.org/show_bug.cgi?id=142008
908
909         Reviewed by Timothy Hatcher.
910
911         * UserInterface/Base/Utilities.js:
912         (doubleQuotedString):
913         Helper to double quote a string and escape double quotes with-in it.
914
915         * UserInterface/Models/PropertyPath.js:
916         (WebInspector.PropertyPath.prototype.get reducedPath):
917         Compute the path eliminating unnecessary __proto__s. Note we don't
918         property handle the case where a .__proto__.x is override earlier
919         by a .x, but that case is rare.
920
921         (WebInspector.PropertyPath.prototype.displayPath):
922         Helper for choosing fullPath or reducedPath display strings.
923
924         (WebInspector.PropertyPath.prototype.appendPropertyName):
925         (WebInspector.PropertyPath.prototype.appendGetterPropertyName):
926         (WebInspector.PropertyPath.prototype.appendSetterPropertyName):
927         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
928         When appending a descriptor, specify if it is for a getter/setter or value.
929         For getters / setters the actual function can be directly fetched via
930         __lookupGetter__/__lookupSetter__. Continue to use the property name for values.
931
932         * UserInterface/Views/FormattedValue.js:
933         (WebInspector.FormattedValue.createElementForTypesAndValue):
934
935         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
936         (WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType):
937         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
938         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
939         (WebInspector.ObjectTreePropertyTreeElement.prototype):
940
941 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
942
943         Web Inspector: Eliminate console-formatted-* class names in favor of formatted-*
944         https://bugs.webkit.org/show_bug.cgi?id=141948
945
946         Reviewed by Timothy Hatcher.
947
948         * UserInterface/Views/FormattedValue.js:
949         (WebInspector.FormattedValue.createElementForNode):
950         Helper for formatting a node as a DOMTreeOutline.
951
952         * UserInterface/Views/ConsoleMessageImpl.js:
953         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
954         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
955         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
956         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
957         (WebInspector.ConsoleMessageImpl.prototype._printArray):
958         (WebInspector.ConsoleMessageImpl.prototype.): Deleted.
959         * UserInterface/Views/LogContentView.css:
960         (.console-user-command-result):
961         (.console-formatted-object): Deleted.
962         (.console-object-preview): Deleted.
963         (.expanded .console-object-preview): Deleted.
964         (.console-object-preview .name): Deleted.
965         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
966         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
967         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
968         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
969         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap): Deleted.
970         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section): Deleted.
971
972         * UserInterface/Views/LogContentView.js:
973         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
974         (WebInspector.LogContentView.prototype._rightArrowWasPressed):
975         Add FIXMEs since this will no longer work with ObjectTree.
976
977         * UserInterface/Views/ObjectPreviewView.css:
978         (.object-preview):
979         * UserInterface/Views/ObjectTreeView.css:
980         (.object-tree):
981         Copy over the font styles from console-formatted-object.
982
983         * UserInterface/Views/ObjectPropertiesSection.js:
984         (WebInspector.ObjectPropertyTreeElement.prototype.update):
985         * UserInterface/Views/SourceCodeTextEditor.js:
986         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
987         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
988         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForString):
989         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
990         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber):
991         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean):
992         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull):
993         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined):
994         Convert to formatted value class names.
995
996 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
997
998         Web Inspector: Make Getter/Setter RemoteObject property and ObjectPreview handling consistent
999         https://bugs.webkit.org/show_bug.cgi?id=141587
1000
1001         Reviewed by Timothy Hatcher.
1002
1003         * UserInterface/Models/CallFrame.js:
1004         (WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
1005         * UserInterface/Models/PropertyDescriptor.js:
1006         (WebInspector.PropertyDescriptor.prototype.get nativeGetter):
1007         * UserInterface/Protocol/RemoteObject.js:
1008         (WebInspector.RemoteObject.fromPayload):
1009         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
1010         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
1011         (WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
1012         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
1013         (WebInspector.RemoteObject.prototype.if):
1014         (WebInspector.RemoteObject.prototype.deprecatedGetOwnProperties):
1015         (WebInspector.RemoteObject.prototype.deprecatedGetAllProperties):
1016         (WebInspector.RemoteObject.prototype._deprecatedGetProperties):
1017         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors): Deleted.
1018         (WebInspector.RemoteObject.prototype.callback): Deleted.
1019         (WebInspector.RemoteObject.prototype.getOwnProperties): Deleted.
1020         (WebInspector.RemoteObject.prototype.getOwnAndGetterProperties): Deleted.
1021         (WebInspector.RemoteObject.prototype.getAllProperties): Deleted.
1022         (WebInspector.RemoteObject.prototype.set else): Deleted.
1023         * UserInterface/Views/ConsoleMessageImpl.js:
1024         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
1025         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1026         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
1027         * UserInterface/Views/ObjectPropertiesSection.js:
1028         (WebInspector.ObjectPropertiesSection.prototype.update):
1029         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
1030         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1031         (WebInspector.ObjectTreePropertyTreeElement.prototype.):
1032         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1033         * UserInterface/Views/ObjectTreeView.js:
1034         (WebInspector.ObjectTreeView.prototype.update):
1035
1036 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
1037
1038         Web Inspector: New Object Tree View UI
1039         https://bugs.webkit.org/show_bug.cgi?id=141932
1040
1041         Reviewed by Timothy Hatcher.
1042
1043         Part 1: Majority of the UI.
1044
1045         * Localizations/en.lproj/localizedStrings.js:
1046         * UserInterface/Images/Eye.svg: Added.
1047         * UserInterface/Images/TypeBoolean.svg: Added.
1048         * UserInterface/Images/TypeNull.svg: Added.
1049         * UserInterface/Images/TypeNumber.svg: Added.
1050         * UserInterface/Images/TypeObject.svg: Added.
1051         * UserInterface/Images/TypeRegex.svg: Added.
1052         * UserInterface/Images/TypeString.svg: Added.
1053         * UserInterface/Images/TypeSymbol.svg: Added.
1054         * UserInterface/Images/TypeUndefined.svg: Added.
1055         * UserInterface/Main.html:
1056         Miscellaneous.
1057
1058         * UserInterface/Views/FormattedValue.css:
1059         (.formatted-boolean):
1060         Give booleans a light purple color.
1061
1062         * UserInterface/Views/FormattedValue.js:
1063         (WebInspector.FormattedValue.createElementForTypesAndValue):
1064         Previously we were truncating function value logging in the console. E.g.
1065           js> multiLineFunction
1066           <-  function multiLineFunction() {
1067         No longer truncate so we display the full string.
1068
1069         * UserInterface/Models/PropertyPath.js: Added.
1070         (WebInspector.PropertyPath):
1071         (WebInspector.PropertyPath.prototype.get object):
1072         (WebInspector.PropertyPath.prototype.get parent):
1073         (WebInspector.PropertyPath.prototype.get isPrototype):
1074         (WebInspector.PropertyPath.prototype.get rootObject):
1075         (WebInspector.PropertyPath.prototype.get lastNonPrototypeObject):
1076         (WebInspector.PropertyPath.prototype.get pathComponent):
1077         (WebInspector.PropertyPath.prototype.get fullPath):
1078         (WebInspector.PropertyPath.prototype.isRoot):
1079         (WebInspector.PropertyPath.prototype.isPathComponentImpossible):
1080         (WebInspector.PropertyPath.prototype.isFullPathImpossible):
1081         (WebInspector.PropertyPath.prototype.appendPropertyName):
1082         (WebInspector.PropertyPath.prototype.appendPropertySymbol):
1083         (WebInspector.PropertyPath.prototype.appendInternalPropertyName):
1084         (WebInspector.PropertyPath.prototype.appendArrayIndex):
1085         (WebInspector.PropertyPath.prototype.appendCollectionIndex):
1086         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
1087         (WebInspector.PropertyPath.prototype._canPropertyNameBeDotAccess):
1088         PropertyPaths are a linked list of remote object / patch component pairs.
1089         For a property like "foo['property 1'].__proto__.baz" we will have a PropertyPath
1090         chain with the RemoteObject for each component. This allows us to accurately
1091         select the RemoteObject on which we should invoke a getter. It also allows
1092         us to display the property path string from the root object, if possible.
1093
1094         * UserInterface/Protocol/RemoteObject.js:
1095         (WebInspector.RemoteObject.prototype.callFunction):
1096         (WebInspector.RemoteObject.prototype.backendInvokeGetter):
1097         (WebInspector.RemoteObject.prototype.invokeGetter):
1098         Provide a way to invoke a getter function on a remote object if we
1099         have a reference to the getter function. At the same time, improve
1100         the mostly unused callFunction API to automatically convert
1101         RemoteObjects / values to their Runtime.CallArgument format.
1102
1103         * UserInterface/Views/ObjectTreePropertyTreeElement.css: Added.
1104         (.object-tree-property):
1105         (.object-tree-property > .disclosure-button):
1106         (.object-tree-property.parent > .disclosure-button):
1107         (.object-tree-property.parent.expanded > .disclosure-button):
1108         (.object-tree-property > .titles):
1109         Focused styles for the ObjectTree property GeneralTreeElements.
1110         Reuse navigation sidebar disclosure-triangles.
1111
1112         (.object-tree-property > .icon):
1113         (.object-tree-property.boolean > .icon):
1114         (.object-tree-property.function > .icon):
1115         (.object-tree-property.number > .icon):
1116         (.object-tree-property.object > .icon):
1117         (.object-tree-property.object.null > .icon):
1118         (.object-tree-property.object.node > .icon):
1119         (.object-tree-property.regex > .icon):
1120         (.object-tree-property.string > .icon):
1121         (.object-tree-property.symbol > .icon):
1122         (.object-tree-property.undefined > .icon):
1123         Use different icons for different object types. Special case
1124         "accessor" to be undefined.
1125
1126         (.object-tree-property .prototype-name):
1127         (.object-tree-property .property-name.not-enumerable):
1128         Style property names in sans-serif font.
1129         Give non-enumerable properties a slightly transparent look.
1130
1131         (.object-tree-property.prototype-property):
1132         (.object-tree-property.prototype-property > .icon):
1133         (.object-tree-property.prototype-property + ol):
1134         Special styles for prototype properties and their children.
1135
1136         (.object-tree-property .getter):
1137         (.object-tree-property .getter:hover):
1138         (.object-tree-property .read-only):
1139         Styles for clickable getter button and non-interactive read-only indicator.
1140
1141         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
1142         Do not allow wrapping for values that previously allowed wrapping.
1143
1144         (.object-tree-property .value.error):
1145         If getting a value resulted in an error, display that error in red.
1146
1147         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1148         (WebInspector.ObjectTreePropertyTreeElement):
1149         Extend from GeneralTreeElement and set up class names on the root <li> object.
1150
1151         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach): Deleted.
1152         No longer needed by using GeneralTreeElement.
1153
1154         (WebInspector.ObjectTreePropertyTreeElement.prototype.onexpand):
1155         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncollapse):
1156         Expand / collapse an associated ObjectPreview if we have one.
1157
1158         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
1159         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
1160         This PropertyTreeElement may be displaying for a value, or a getter that has
1161         gotten a value. Refer to this as the "resolvedValue".
1162
1163         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
1164         A PropertyPath leaf used for tooltips.
1165
1166         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
1167         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
1168         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
1169         Helpers for updating small parts of the UI. When a getter is invoked,
1170         we need to update the entire UI of this TreeElement.
1171
1172         (WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
1173         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle): Deleted.
1174         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle): Deleted.
1175         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle): Deleted.
1176         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
1177         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
1178         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
1179         Create the UI for the mainTitle of this PropertyTreeElement.
1180         
1181         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement):
1182         (WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement):
1183         Helpers for creating the small components of the title UI.
1184
1185         (WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
1186         Establish when a property should still be displayed as a "property" even when in API mode.
1187         For example a value property on a prototype, should still display as an expandable property.
1188
1189         * UserInterface/Views/ObjectTreeView.css:
1190         (.object-tree > :matches(.title, .object-preview)::before):
1191         (.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
1192         (.object-tree.expanded > :matches(.title, .object-preview)::before):
1193         (.object-tree .object-tree-outline):
1194         (.object-tree-outline ol):
1195         (.object-tree-outline li .empty-message):
1196         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
1197         (.object-tree > .title): Deleted.
1198         (.object-tree-outline): Deleted.
1199         (.object-tree-outline li): Deleted.
1200         (.object-tree-outline li.parent): Deleted.
1201         (.object-tree-outline li.parent::before): Deleted.
1202         (.object-tree-outline li.parent.expanded::before): Deleted.
1203         (.object-tree-property .name): Deleted.
1204         (.object-tree-property .name.not-enumerable): Deleted.
1205         (.object-tree-property .value.error): Deleted.
1206         (.console-group-messages .object-tree:not(.lossless-preview)): Deleted.
1207         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)): Deleted.
1208         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before): Deleted.
1209         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree): Deleted.
1210         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline): Deleted.
1211         Move most PropertyTreeElement specific styles into ObjectPropertyTreeElement.css.
1212         Plenty of console specific files were eliminated.
1213
1214         * UserInterface/Views/ObjectTreeView.js:
1215         (WebInspector.ObjectTreeView.prototype.update):
1216         (WebInspector.ObjectTreeView.prototype._updateProperties):
1217
1218
1219         Part 2: Provide better parameter lists for native functions.
1220
1221         When expanding an object's prototype chain, with authored code
1222         you will accurately see parameter lists for user authored functions
1223         because we can get this by parsing Function.prototype.toString.
1224         For native code, we don't get any parameter information. In such cases
1225         we can detect we are a native function, and provide our own strings.
1226
1227         This fills in most of the JavaScript built-ins and some DOM
1228         functions, however we should autogenerate the rest of the DOM.
1229
1230         * UserInterface/Base/Utilities.js:
1231         (isFunctionStringNativeCode):
1232         Helper to check if a function is native or not based on its string.
1233
1234         * UserInterface/Main.html:
1235         * UserInterface/Models/NativeFunctionParameters.js: Added.
1236         Dictionary of parameter lists for native constructor functions
1237         and prototype functions.
1238
1239         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1240         (WebInspector.ObjectTreePropertyTreeElement):
1241         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionPropertyString):
1242         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
1243         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1244         When we have a native function, try to provide a better parameter string.
1245
1246
1247         Part 3: Better handle errors when invoking getters.
1248
1249         * UserInterface/Protocol/RemoteObject.js:
1250         (WebInspector.RemoteObject.prototype.callFunction):
1251         (WebInspector.RemoteObject.prototype.invokeGetter):
1252         Pass the error, wasThrown, and result through to the caller so they can
1253         act on all the information possible. Provide encapsulation though
1254         and auto-convert the result to a RemoteObject for the callback.
1255
1256         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1257         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
1258         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
1259         * UserInterface/Views/DOMTreeElement.js:
1260         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.setTooltip):
1261         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.resolvedNode):
1262         (WebInspector.DOMTreeElement.prototype._createTooltipForNode):
1263         Update current users of callFunctionOn for the new callback parameters.
1264
1265         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
1266         (.object-tree-property.had-error > .icon):
1267         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1268         (WebInspector.ObjectTreePropertyTreeElement):
1269         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
1270         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
1271         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
1272         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.):
1273         Better style getters with errors.
1274
1275 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
1276
1277         Web Inspector: Do not show "{}" after Date description in Object Previews
1278         https://bugs.webkit.org/show_bug.cgi?id=141898
1279
1280         Reviewed by Timothy Hatcher.
1281
1282         * UserInterface/Views/ObjectPreviewView.js:
1283         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1284         Only show "{...}" section for Date objects that have user
1285         defined properties. Otherwise, Dates do not have properties.
1286
1287 2015-02-23  Joseph Pecoraro  <pecoraro@apple.com>
1288
1289         Web Inspector: Remove unused console-object-preview styles - replaced by ObjectPreviewView
1290         https://bugs.webkit.org/show_bug.cgi?id=141945
1291
1292         Reviewed by Timothy Hatcher.
1293
1294         * UserInterface/Views/LogContentView.css:
1295         (.console-object-preview): Deleted.
1296         (.expanded .console-object-preview): Deleted.
1297         (.console-object-preview .name): Deleted.
1298         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
1299         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
1300         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
1301         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
1302
1303 2015-02-23  Saam Barati  <saambarati1@gmail.com>
1304
1305         Web Inspector: BasicBlockAnnotator ranges should be inclusive of both the start and end offset
1306         https://bugs.webkit.org/show_bug.cgi?id=141334
1307
1308         Reviewed by Timothy Hatcher.
1309
1310         * UserInterface/Views/TextEditor.js:
1311         (WebInspector.TextEditor.prototype.addStyleToTextRange):
1312
1313 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
1314
1315         Web Inspector: Lazily Create GeneralTreeElement Status Elements
1316         https://bugs.webkit.org/show_bug.cgi?id=141873
1317
1318         Reviewed by Timothy Hatcher.
1319
1320         * UserInterface/Views/GeneralTreeElement.js:
1321         (WebInspector.GeneralTreeElement.prototype.set status):
1322         (WebInspector.GeneralTreeElement.prototype.onattach):
1323         (WebInspector.GeneralTreeElement.prototype._createElementsIfNeeded):
1324         (WebInspector.GeneralTreeElement.prototype._updateStatusElement):
1325         Lazily create and attach the status element container if
1326         "this.status" is actually used by a GeneralTreeElement subclass.
1327
1328         * UserInterface/Views/ResourceTreeElement.js:
1329         (WebInspector.ResourceTreeElement.prototype._updateStatus):
1330         Set to the empty string instead of null to avoid inadvertently
1331         creating status elements for no reason.
1332
1333 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
1334
1335         Web Inspector: Give ObjectPreviewView a showTitle/showPreview toggle
1336         https://bugs.webkit.org/show_bug.cgi?id=141874
1337
1338         Reviewed by Timothy Hatcher.
1339
1340         Refactor ObjectTree/ObjectPreview a bit to make it easier
1341         to use expanding/collapsing previews in other places.
1342
1343         * UserInterface/Views/ObjectPreviewView.js:
1344         (WebInspector.ObjectPreviewView):
1345         (WebInspector.ObjectPreviewView.prototype.showTitle):
1346         (WebInspector.ObjectPreviewView.prototype.showPreview):
1347         Maintain both a titleElement and previewElement. Show only
1348         one at a time based on showTitle/showPreview APIs.
1349
1350         * UserInterface/Views/ObjectTreeView.css:
1351         (.object-tree.expanded .object-preview):
1352         * UserInterface/Views/ObjectTreeView.js:
1353         (WebInspector.ObjectTreeView):
1354         (WebInspector.ObjectTreeView.prototype.expand):
1355         (WebInspector.ObjectTreeView.prototype.collapse):
1356         If we have a preview, let PreviewView handle toggling
1357         between a title and preview display.
1358
1359 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
1360
1361         Web Inspector: Make Console UI icons / lines slightly larger
1362         https://bugs.webkit.org/show_bug.cgi?id=141876
1363
1364         Reviewed by Timothy Hatcher.
1365
1366         In preparation for a new ObjectTree design with larger icons,
1367         increase the size of existing output in the Console / Log
1368         so they don't look so small in comparison. This:
1369
1370           - bumps minimum height of lines from 16px to 21px
1371           - 10x10 icons to be 12x12
1372           - recenters icons to match console prompt
1373           - realigns icons with console log / object output
1374
1375         * UserInterface/Views/LogContentView.css:
1376         (.console-user-command-result.console-log-level::before):
1377         (.console-message, .console-user-command):
1378         (.console-item::before):
1379         (.console-user-command::before):
1380         (:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
1381         (:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
1382         (.outline-disclosure li):
1383         (.outline-disclosure .expanded li):
1384         Fix a case breaking single-line message height.
1385         Only add padding to expanded trees, not collapsed trees.
1386
1387         * UserInterface/Views/QuickConsole.css:
1388         (.quick-console > .console-prompt::before):
1389
1390 2015-02-21  Joseph Pecoraro  <pecoraro@apple.com>
1391
1392         Web Inspector: Generate Previews more often for RemoteObject interaction
1393         https://bugs.webkit.org/show_bug.cgi?id=141875
1394
1395         Reviewed by Timothy Hatcher.
1396
1397         * UserInterface/Models/PropertyDescriptor.js:
1398         (WebInspector.PropertyDescriptor.fromPayload):
1399         Fix InternalPropertyDescriptor ingestion. There was no ".internal"
1400         property on these objects, so take a flag.
1401
1402         * UserInterface/Protocol/RemoteObject.js:
1403         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
1404         Fix InternalPropertyDescriptor ingestion by specifying during
1405         importing the internal properties. Also, get previews.
1406
1407         (WebInspector.RemoteObject.prototype.callFunction):
1408         Always get previews when using callFunctionOn.
1409
1410 2015-02-20  Ronald Jett  <rjett@apple.com>
1411
1412         Web Inspector: Add a setting for clearing the console on page reload
1413         https://bugs.webkit.org/show_bug.cgi?id=134414
1414
1415         Reviewed by Timothy Hatcher.
1416
1417         Created a new setting "clear-log-on-reload", which defaults to true.
1418         Users can toggle this setting with an item added to the console's context menu. 
1419         When enabled, the console will clear on page reload. When disabled, the console
1420         content will remain during page reloads. 
1421
1422         * Localizations/en.lproj/localizedStrings.js:
1423         * UserInterface/Views/LogContentView.js:
1424         (WebInspector.LogContentView):
1425         (WebInspector.LogContentView.prototype._sessionStarted):
1426         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
1427         (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
1428
1429 2015-02-19  Saam Barati  <saambarati1@gmail.com>
1430
1431         Web Inspector: merge in upstream Esprima to support parsing more of ES6
1432         https://bugs.webkit.org/show_bug.cgi?id=141215
1433
1434         Reviewed by Timothy Hatcher.
1435
1436         This patch merges in a new esprima that has some ES6 support.
1437         Specifically, the ES6 support ScriptSyntaxTree now has is:
1438         - ForOf loops
1439         - Object destructuring
1440         - Array destructuring
1441
1442         ScriptSyntaxTree now uses Symbols for identifying AST node types
1443         instead of strings. This will prevent any direct usage of strings 
1444         for node types instead of a direct property access off the 
1445         ScriptSyntaxTree constructor.
1446
1447         This patch also does some gardening work: 
1448         - TypeTokenAnnotator only walks over the incoming type information
1449           data once to be more efficient. 
1450         - TypeTokenView is now smarter about updating its associated DOM node
1451           only if its display name has changed.
1452
1453         * UserInterface/Controllers/TypeTokenAnnotator.js:
1454         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
1455         * UserInterface/External/Esprima/esprima.js:
1456         (.):
1457         * UserInterface/Models/ScriptSyntaxTree.js:
1458         (WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration):
1459         (WebInspector.ScriptSyntaxTree.prototype._recurse):
1460         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1461         * UserInterface/Views/TypeTokenView.js:
1462         (WebInspector.TypeTokenView.prototype.update):
1463
1464 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1465
1466         Web Inspector: Use of Array.from for NodeList/Arguments to Array conversion
1467         https://bugs.webkit.org/show_bug.cgi?id=141819
1468
1469         Reviewed by Timothy Hatcher.
1470
1471         Array.from is clearer than Array.prototype.slice.call(arrayLike).
1472
1473         * UserInterface/Base/Test.js:
1474         (.console.logType):
1475         * UserInterface/Protocol/InspectorBackend.js:
1476         (InspectorBackend.Command.prototype.promise):
1477         (InspectorBackend.Command.prototype._invokeWithArguments):
1478         * UserInterface/Views/LogContentView.js:
1479         (WebInspector.LogContentView.prototype._allMessages):
1480
1481 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1482
1483         Follow-up fix to r180371. formatParameterAsValue expects full object, not just a description.
1484
1485         Reviewed by Timothy Hatcher.
1486
1487         * UserInterface/Views/ConsoleMessageImpl.js:
1488         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1489
1490 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1491
1492         Web Inspector: Introduce FormattedValue helpers and use them in Console/ObjectTree
1493         https://bugs.webkit.org/show_bug.cgi?id=141812
1494
1495         Reviewed by Timothy Hatcher.
1496
1497         There were a few different ways to get styled values. Try to consolidate them
1498         all in FormattedValue. That is also a convenient place to have the styles.
1499
1500         * UserInterface/Main.html:
1501         * UserInterface/Views/ConsoleMessageImpl.js:
1502         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1503         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1504         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsValue):
1505         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
1506
1507         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
1508         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
1509         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1510         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement): Deleted.
1511         Fix console.table after renaming ObjectPreview.properties to ObjectPreview.propertyPreviews.
1512         Also, use FormattedValue to create the value elements. Also, remove class
1513         "source-code" as I do not see it actually being used in a meaningful way.
1514
1515         * UserInterface/Views/FormattedValue.css: Added.
1516         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
1517         (.formatted-number):
1518         (.formatted-string, .formatted-regexp):
1519         (.formatted-string):
1520         (.formatted-regexp):
1521         (.formatted-symbol):
1522         (.formatted-null, .formatted-undefined):
1523         * UserInterface/Views/FormattedValue.js: Added.
1524         (WebInspector.FormattedValue.classNameForTypes):
1525         (WebInspector.FormattedValue.classNameForObject):
1526         (WebInspector.FormattedValue.createLinkifiedElementString):
1527         (WebInspector.FormattedValue.createElementForTypesAndValue):
1528         (WebInspector.FormattedValue.createElementForRemoteObject):
1529         (WebInspector.FormattedValue.createElementForObjectPreview):
1530         (WebInspector.FormattedValue.createElementForPropertyPreview):
1531         Styles and formatted value element creation.
1532
1533         * UserInterface/Views/LogContentView.css:
1534         (.expandable.source-code): Deleted.
1535         Remove ".source-code". I do not see it actually being used in a meaningful way.
1536
1537         * UserInterface/Views/ObjectPreviewView.js:
1538         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1539         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
1540         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview): Deleted.
1541         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1542         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
1543         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString): Deleted.
1544         * UserInterface/Views/ObjectTreeView.css:
1545         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap): Deleted.
1546         (.formatted-number): Deleted.
1547         (.formatted-string, .formatted-regexp): Deleted.
1548         (.formatted-string): Deleted.
1549         (.formatted-regexp): Deleted.
1550         (.formatted-symbol): Deleted.
1551         (.formatted-null, .formatted-undefined): Deleted.
1552         * UserInterface/Views/ObjectTreeView.js:
1553         (WebInspector.ObjectTreeView.classNameForObject): Deleted.
1554         Extract styles and value formatting to FormattedValue helpers.
1555
1556 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1557
1558         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
1559         https://bugs.webkit.org/show_bug.cgi?id=141793
1560
1561         Unreviewed follow-up. Fix prototypes.
1562
1563         * UserInterface/Views/ObjectPreviewView.js:
1564         * UserInterface/Views/ObjectTreeView.js:
1565
1566 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1567
1568         Web Inspector: Create Separate Model and View Objects for RemoteObjects / ObjectPreview / PropertyDescriptor
1569         https://bugs.webkit.org/show_bug.cgi?id=141696
1570
1571         Reviewed by Timothy Hatcher.
1572
1573         * UserInterface/Main.html:
1574         Add new files.
1575
1576         * UserInterface/Models/CollectionEntry.js: Added.
1577         (WebInspector.CollectionEntry):
1578         (WebInspector.CollectionEntry.fromPayload):
1579         (WebInspector.CollectionEntry.prototype.get key):
1580         (WebInspector.CollectionEntry.prototype.get value):
1581         * UserInterface/Models/CollectionEntryPreview.js: Added.
1582         (WebInspector.CollectionEntryPreview):
1583         (WebInspector.CollectionEntryPreview.fromPayload):
1584         (WebInspector.CollectionEntryPreview.prototype.get keyPreview):
1585         (WebInspector.CollectionEntryPreview.prototype.get valuePreview):
1586         * UserInterface/Models/ObjectPreview.js: Added.
1587         (WebInspector.ObjectPreview):
1588         (WebInspector.ObjectPreview.fromPayload):
1589         (WebInspector.ObjectPreview.prototype.get type):
1590         (WebInspector.ObjectPreview.prototype.get subtype):
1591         (WebInspector.ObjectPreview.prototype.get description):
1592         (WebInspector.ObjectPreview.prototype.get lossless):
1593         (WebInspector.ObjectPreview.prototype.get overflow):
1594         (WebInspector.ObjectPreview.prototype.get properties):
1595         (WebInspector.ObjectPreview.prototype.get entries):
1596         * UserInterface/Models/PropertyPreview.js: Added.
1597         (WebInspector.PropertyPreview):
1598         (WebInspector.PropertyPreview.fromPayload):
1599         (WebInspector.PropertyPreview.prototype.get name):
1600         (WebInspector.PropertyPreview.prototype.get type):
1601         (WebInspector.PropertyPreview.prototype.get subtype):
1602         (WebInspector.PropertyPreview.prototype.get value):
1603         (WebInspector.PropertyPreview.prototype.get valuePreview):
1604         * UserInterface/Models/PropertyDescriptor.js: Added.
1605         (WebInspector.PropertyDescriptor.fromPayload):
1606         (WebInspector.PropertyDescriptor.prototype.get name):
1607         (WebInspector.PropertyDescriptor.prototype.get value):
1608         (WebInspector.PropertyDescriptor.prototype.get writable):
1609         (WebInspector.PropertyDescriptor.prototype.get configurable):
1610         (WebInspector.PropertyDescriptor.prototype.get enumerable):
1611         (WebInspector.PropertyDescriptor.prototype.get isOwnProperty):
1612         (WebInspector.PropertyDescriptor.prototype.get wasThrown):
1613         (WebInspector.PropertyDescriptor.prototype.get isInternalProperty):
1614         (WebInspector.PropertyDescriptor.prototype.hasValue):
1615         (WebInspector.PropertyDescriptor.prototype.hasGetter):
1616         (WebInspector.PropertyDescriptor.prototype.hasSetter):
1617         New Model objects for different Protocol types.
1618         The only customizations right now are compatibility modifications
1619         and PropertyDescriptor's "hasValue", "hasGetter", and "hasSetter"
1620         functions to return reliable checks based on the descriptors contents.
1621
1622         * UserInterface/Protocol/RemoteObject.js:
1623         (WebInspector.RemoteObject):
1624         (WebInspector.RemoteObject.fromPayload):
1625         (WebInspector.RemoteObject.resolveNode):
1626         (WebInspector.RemoteObject.prototype.get value):
1627         (WebInspector.RemoteObject.prototype._isSymbol):
1628         (WebInspector.RemoteObject.prototype.isCollectionType):
1629         (WebInspector.RemoteObject.prototype.isWeakCollection):
1630         (WebInspector.RemoteObject.prototype.getCollectionEntries):
1631         (WebInspector.RemoteObject.prototype.arrayLength):
1632         Clean up the existing code to enforce more checks and use our
1633         style of member variables and public accessors.
1634
1635         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
1636         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors):
1637         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
1638         (WebInspector.RemoteObject.prototype.callback):
1639         Provide a new way of getting properties that returns Model objects
1640         instead of raw protocol types.
1641
1642         * UserInterface/Views/ConsoleMessageImpl.js:
1643         (WebInspector.ConsoleMessageImpl.prototype._format):
1644         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1645         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
1646         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
1647         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
1648         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
1649         Always include a preview when possible. Now, when forced to be an object,
1650         force expansion even if the preview is lossless.
1651
1652         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1653         Use an ObjectTreeView instead of ObjectPropertiesSection.
1654
1655         (WebInspector.ConsoleMessageImpl.prototype._appendPreview): Deleted.
1656         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews): Deleted.
1657         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews): Deleted.
1658         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview): Deleted.
1659         This code is moved into ObjectPreviewView.
1660
1661
1662         * UserInterface/Views/ObjectPropertiesSection.js:
1663         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
1664         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
1665         These types are now converted to Model types in Model objects, so do not do it here.
1666
1667         * UserInterface/Views/ObjectPreviewView.css: Added.
1668         (.object-preview):
1669         (.object-preview.lossless):
1670         (.object-preview .name):
1671         * UserInterface/Views/ObjectPreviewView.js: Added.
1672         (WebInspector.ObjectPreviewView):
1673         (WebInspector.ObjectPreviewView.prototype.get preview):
1674         (WebInspector.ObjectPreviewView.prototype.get element):
1675         (WebInspector.ObjectPreviewView.prototype.get mode):
1676         (WebInspector.ObjectPreviewView.prototype.get lossless):
1677         (WebInspector.ObjectPreviewView.prototype._numberOfPropertiesToShowInMode):
1678         (WebInspector.ObjectPreviewView.prototype._appendPreview):
1679         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
1680         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1681         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
1682         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview):
1683         An ObjectPreviewView can create a full/brief view given a ObjectPreview.
1684         The view will contain formatted values everywhere possible.
1685
1686         * UserInterface/Views/ObjectTreePropertyTreeElement.js: Added.
1687         (WebInspector.ObjectTreePropertyTreeElement):
1688         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property):
1689         (WebInspector.ObjectTreePropertyTreeElement.prototype.onpopulate):
1690         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach):
1691         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle):
1692         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
1693         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle):
1694         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString):
1695         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
1696         (WebInspector.ObjectTreePropertyTreeElement.prototype.mode):
1697         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1698         * UserInterface/Views/ObjectTreeView.js: Added.
1699         (WebInspector.ObjectTreeView):
1700         (WebInspector.ObjectTreeView.classNameForObject):
1701         (WebInspector.ObjectTreeView.ComparePropertyDescriptors):
1702         (WebInspector.ObjectTreeView.prototype.get object):
1703         (WebInspector.ObjectTreeView.prototype.get element):
1704         (WebInspector.ObjectTreeView.prototype.get expanded):
1705         (WebInspector.ObjectTreeView.prototype.expand):
1706         (WebInspector.ObjectTreeView.prototype.collapse):
1707         (WebInspector.ObjectTreeView.prototype.update):
1708         (WebInspector.ObjectTreeView.prototype._updateProperties):
1709         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
1710         Re-implementation of ObjectPropertiesSection for our Model objects
1711         without "Section" semantics / dependencies. An ObjectTree will creates
1712         an expandable tree for a RemoteObject. The top level clickable item
1713         will be an ObjectPreview if possible, otherwise just a title element.
1714
1715         * UserInterface/Views/ObjectTreeView.css: Added.
1716         (.object-tree):
1717         (.object-tree > .title):
1718         (.object-tree > :matches(.title, .object-preview)::before):
1719         (.object-tree.expanded > :matches(.title, .object-preview)::before):
1720         (.object-tree.lossless-preview > :matches(.title, .object-preview)::before):
1721         (.object-tree-outline):
1722         (.object-tree.expanded > .object-tree-outline):
1723         (.object-tree-outline li):
1724         (.object-tree-outline li.parent):
1725         (.object-tree-outline li.parent::before):
1726         (.object-tree-outline li.parent.expanded::before):
1727         (.object-tree-outline ol):
1728         (.object-tree-outline ol.expanded):
1729         (.object-tree-outline li .empty-message):
1730         (.object-tree-property .name):
1731         (.object-tree-property .name.not-enumerable):
1732         (.object-tree-property .value.error):
1733         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
1734         (.formatted-number):
1735         (.formatted-string, .formatted-regexp):
1736         (.formatted-string):
1737         (.formatted-regexp):
1738         (.formatted-symbol):
1739         (.formatted-null, .formatted-undefined):
1740         (.console-group-messages .object-tree:not(.lossless-preview)):
1741         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
1742         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before):
1743         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree):
1744         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
1745         All styles for ObjectTree / ObjectPreview. Independent from
1746         other styles in the inspector. Most of this is a copy of
1747         the styles applied to ObjectPropertiesSection, renamed.
1748
1749
1750         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Added.
1751         (WebInspector.ObjectTreeCollectionTreeElement):
1752         (WebInspector.ObjectTreeCollectionTreeElement.propertyDescriptorForEntry):
1753         (WebInspector.ObjectTreeCollectionTreeElement.prototype.get remoteObject):
1754         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand.callback):
1755         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand):
1756         (WebInspector.ObjectTreeCollectionTreeElement.prototype.oncollapse):
1757         (WebInspector.ObjectTreeCollectionTreeElement.prototype.ondetach):
1758         (WebInspector.ObjectTreeCollectionTreeElement.prototype._trackWeakEntries):
1759         (WebInspector.ObjectTreeCollectionTreeElement.prototype._untrackWeakEntries):
1760         (WebInspector.ObjectTreeCollectionEntryTreeElement):
1761         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onpopulate):
1762         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onattach):
1763         (WebInspector.ObjectTreeEmptyCollectionTreeElement):
1764         Essentially a copy of ObjectPropertiesSection Collection handling using
1765         the ObjectTree class names.
1766
1767         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
1768         Fix prototype typo.
1769
1770 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1771
1772         Web Inspector: DOMTree / Node Details Sidebar do not update as <input> content changes
1773         https://bugs.webkit.org/show_bug.cgi?id=141790
1774
1775         Reviewed by Timothy Hatcher.
1776
1777         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1778         (WebInspector.DOMNodeDetailsSidebarPanel):
1779         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._characterDataModified):
1780         Update Node "Value" details if character data changes.
1781
1782         * UserInterface/Views/DOMTreeUpdater.js:
1783         (WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
1784         Update the title of the parent. If the parent had a single text node child
1785         and now doesn't, it will need to update its display.
1786
1787 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1788
1789         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
1790         https://bugs.webkit.org/show_bug.cgi?id=141793
1791
1792         Reviewed by Timothy Hatcher.
1793
1794         Currently the backend disallows editing of Shadow DOM nodes,
1795         so the frontend should not provide options that do not work.
1796         Long term we should allow editing Shadow DOM nodes.
1797
1798         * UserInterface/Models/CSSStyleDeclaration.js:
1799         (WebInspector.CSSStyleDeclaration.prototype.get editable):
1800         Inline styles on a Shadow DOM node are not editable.
1801
1802         * UserInterface/Views/DOMTreeElement.js:
1803         (WebInspector.DOMTreeElement.prototype.ondelete):
1804         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
1805         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
1806         (WebInspector.DOMTreeElement.prototype._populateTextContextMenu):
1807         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
1808         (WebInspector.DOMTreeElement.prototype._startEditing):
1809         Disable context menus and keyboard shortcuts on Shadow DOM nodes.
1810         Only Context Menu item we keep is "Copy as HTML".
1811
1812         * UserInterface/Views/DOMTreeOutline.js:
1813         (WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
1814         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
1815         Eliminate double look-up.
1816
1817         * UserInterface/Views/RulesStyleDetailsPanel.js:
1818         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
1819         Do not add the New Rule Button to the Styles Sidebar of Shadow DOM Nodes.
1820         Instead this will just be an empty divider.
1821
1822 2015-02-18  Nikita Vasilyev  <nvasilyev@apple.com>
1823
1824         Web Inspector: REGRESSION: Missing Divider line between console.log and console evaluation
1825         https://bugs.webkit.org/show_bug.cgi?id=141770
1826
1827         Reviewed by Timothy Hatcher.
1828
1829         * UserInterface/Views/LogContentView.css:
1830         (.console-item):
1831         (.console-message): Deleted.
1832
1833 2015-02-18  Jono Wells  <jonowells@apple.com>
1834
1835         Web Inspector: Inspecting a page where resources are in folders forces folder organization on every subsequent page
1836         https://bugs.webkit.org/show_bug.cgi?id=141397
1837
1838         Reviewed by Timothy Hatcher.
1839
1840         When removeChildren is called on an instance of a FolderizedTreeElement, the element's _groupedIntoFolders flag
1841         will now be set to false. This will prevent unnecessary folderization upon a frame navigation. Also during an
1842         onpopulate event, addChildForRepresentedObject is called repeatedly and much of the work done during each call
1843         was unnecessary. That work has now been partially removed and partially relocated to a function that is only
1844         called at the beginning of an onpopulate event.
1845
1846         * UserInterface/Views/FolderizedTreeElement.js:
1847         (WebInspector.FolderizedTreeElement.prototype.set removeChildren): Set _groupedIntoFolders to false.
1848         (WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Remove unnecessary treeOutline
1849         emptiness check, and move _shouldGroupIntoFolders() check to new function prepareToPopulate().
1850         (WebInspector.FolderizedTreeElement.prototype.prepareToPopulate): Create.
1851         (WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue): Call prepareToPopulate().
1852
1853         * UserInterface/Views/FrameTreeElement.js:
1854         (WebInspector.FrameTreeElement.prototype.onpopulate): Call prepareToPopulate().
1855
1856         * UserInterface/Views/GeneralTreeElement.js: Drive-by inheritance style fix.
1857         * UserInterface/Views/ResourceTreeElement.js: Drive-by inheritance style fix.
1858
1859 2015-02-16  Joseph Pecoraro  <pecoraro@apple.com>
1860
1861         Web Inspector: ES6: Improved Console Support for Promise Objects
1862         https://bugs.webkit.org/show_bug.cgi?id=141634
1863
1864         Reviewed by Timothy Hatcher.
1865
1866         * UserInterface/Protocol/RemoteObject.js:
1867         For now just add Internal Properties and regular properties.
1868         We will address the UI later.
1869
1870 2015-02-16  Nikita Vasilyev  <nvasilyev@apple.com>
1871
1872         Web Inspector: Tweak the styles on the Console
1873         https://bugs.webkit.org/show_bug.cgi?id=140580
1874
1875             - Use non-monospace (default sans-serif) font for console messages, but keep using monospace font
1876               for objects, functions, and anything else that presumably code.
1877             - Display all expandable objects on a separate row.
1878
1879         Reviewed by Timothy Hatcher.
1880
1881         * UserInterface/Views/ConsoleCommand.js:
1882         (WebInspector.ConsoleCommand.prototype.decorateMessageElement):
1883         (WebInspector.ConsoleCommand.prototype.toMessageElement):
1884         * UserInterface/Views/ConsoleGroup.js:
1885         (WebInspector.ConsoleGroup.prototype.addMessage):
1886         * UserInterface/Views/ConsoleMessageImpl.js:
1887         (WebInspector.ConsoleMessageImpl.prototype._format):
1888         (WebInspector.ConsoleMessageImpl.prototype._isExpandable):
1889         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1890         (WebInspector.ConsoleMessageImpl.prototype.append):
1891         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
1892         (WebInspector.ConsoleMessageImpl.prototype.decorateMessageElement):
1893         (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
1894         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString): Deleted.
1895         * UserInterface/Views/LogContentView.css:
1896         (.console-messages):
1897         (.console-formatted-object):
1898         (.expandable.source-code):
1899         (.console-message):
1900         (.console-item.selected::after):
1901         (.console-messages:focus .console-item.selected::after):
1902         (.console-user-command-result.console-log-level::before):
1903         (.console-item::before):
1904         (.console-message .bubble):
1905         (.console-error-level):
1906         (.console-error-level .section .header .title):
1907         (.console-error-level::before):
1908         (.console-warning-level):
1909         (.console-warning-level .console-message-text):
1910         (.console-warning-level::before):
1911         (.console-user-command::before):
1912         (.console-group-messages .section):
1913         (.console-group-messages .section .header::before):
1914         (.console-group-messages .section .header .title):
1915         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
1916         (.outline-disclosure li):
1917         (.outline-disclosure li.parent::before):
1918         (.console-item): Deleted.
1919         (.console-item.selected): Deleted.
1920         (.console-messages:focus .console-item.selected): Deleted.
1921         (.console-item.selected .console-message::after): Deleted.
1922         (.console-messages:focus .console-item.selected .data-grid tr.selected): Deleted.
1923         (.console-messages:focus .console-item.selected .console-message::after): Deleted.
1924         (.console-message, .console-user-command): Deleted.
1925         (.console-message::before, .console-user-command::before, .javascript-prompt::before, .console-group-title::before): Deleted.
1926         (.console-group): Deleted.
1927         (.console-debug-level .console-message-text): Deleted.
1928         (.console-debug-level::before): Deleted.
1929         (.console-group-messages .section .header): Deleted.
1930         (.console-group-messages .outline-disclosure): Deleted.
1931         (.console-group-messages .outline-disclosure > ol): Deleted.
1932         (.outline-disclosure li.elements-drag-over .selection): Deleted.
1933         (.outline-disclosure ol:focus li.selected .selection): Deleted.
1934         (.outline-disclosure > ol): Deleted.
1935         * UserInterface/Views/LogContentView.js:
1936         (WebInspector.LogContentView.prototype._mousemove):
1937         (WebInspector.LogContentView.prototype._updateMessagesSelection):
1938         (WebInspector.LogContentView.prototype._isMessageVisible):
1939         (WebInspector.LogContentView.prototype._isMessageSelected):
1940         (WebInspector.LogContentView.prototype._selectAllMessages):
1941         (WebInspector.LogContentView.prototype._unfilteredMessages):
1942         (WebInspector.LogContentView.prototype._visibleMessages):
1943         (WebInspector.LogContentView.prototype._filterMessages):
1944         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
1945         (WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent):
1946         (WebInspector.LogContentView.prototype._performSearch):
1947         * UserInterface/Views/Section.css:
1948         (.section .header .title::before):
1949         (.section.expanded .header .title::before):
1950         (.section .header .title, .event-bar .header .title):
1951         (.properties-tree li.parent::before):
1952         (.section .header::before): Deleted.
1953         (.section.expanded .header::before): Deleted.
1954
1955 2015-02-15  Brian J. Burg  <burg@cs.washington.edu>
1956
1957         Web Inspector: remove unused XHR replay code
1958         https://bugs.webkit.org/show_bug.cgi?id=141622
1959
1960         Reviewed by Timothy Hatcher.
1961
1962         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
1963         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
1964         * Versions/Inspector-iOS-7.0.json:
1965         * Versions/Inspector-iOS-8.0.json:
1966
1967 2015-02-14  Joseph Pecoraro  <pecoraro@apple.com>
1968
1969         Web Inspector: Remove specificity approximation
1970         https://bugs.webkit.org/show_bug.cgi?id=141600
1971
1972         Reviewed by Timothy Hatcher.
1973
1974         * Localizations/en.lproj/localizedStrings.js:
1975         * UserInterface/Views/CSSStyleDeclarationSection.js:
1976         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
1977
1978 2015-02-13  Timothy Hatcher  <timothy@apple.com>
1979
1980         Web Inspector: support better git diff of localizedStrings.js
1981         https://bugs.webkit.org/show_bug.cgi?id=137237
1982
1983         Reviewed by Joseph Pecoraro.
1984
1985         * .gitattributes: Added.
1986
1987 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
1988
1989         Web Inspector: add keyboard shortcut to enable/disable all breakpoints
1990         https://bugs.webkit.org/show_bug.cgi?id=141527
1991
1992         Reviewed by Joseph Pecoraro.
1993
1994         * Localizations/en.lproj/localizedStrings.js:
1995         * UserInterface/Views/DebuggerSidebarPanel.js:
1996         (WebInspector.DebuggerSidebarPanel): Bind Command/Control + Y to toggle breakpoints button.
1997
1998 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
1999
2000         Web Inspector: support adding and removing timelines to the timeline sidebar panel and overview
2001         https://bugs.webkit.org/show_bug.cgi?id=138434
2002
2003         Reviewed by Timothy Hatcher.
2004
2005         A timeline recording's timelines should not be static. This patch adds relevant machinery to
2006         dynamically add and remove timelines from the Timeline model object and its various views.
2007
2008         From the model side, this is a simple change that adds TimelineAdded and TimelineRemoved events.
2009         The timeline views and timeline sidebar require more extensive changes to support this functionality.
2010         Instead of keeping a fixed set of timeline tree elements, the sidebar view now adds and removes
2011         tree elements to reflect the available timelines for the displayed timeline recording.
2012
2013         This change also includes several minor cleanups, such as appending 'Element' to view properties that
2014         are DOM elements, and renaming TimelineContentView to TimelineRecordingContentView.
2015
2016         * UserInterface/Controllers/TimelineManager.js:
2017         (WebInspector.TimelineManager.prototype._loadNewRecording):
2018         Populate predefined network, layout, and script timelines here after constructing the recording.
2019
2020         * UserInterface/Main.html:
2021         * UserInterface/Models/Timeline.js:
2022         Move hardcoded class names and localized strings to these base class methods. This is not implemented
2023         using overridden methods because not all timeline types have their own subclasses. Add a dummy
2024         implementation of saveIdentityToCookie() to avoid warnings when saving sidebar panel selection state.
2025
2026         (WebInspector.Timeline.prototype.get type):
2027         (WebInspector.Timeline.prototype.get displayName): Added.
2028         (WebInspector.Timeline.prototype.get iconClassName): Added.
2029         (WebInspector.Timeline.prototype.addRecord):
2030         * UserInterface/Models/TimelineRecording.js:
2031         (WebInspector.TimelineRecording):
2032         (WebInspector.TimelineRecording.prototype.addTimeline.set timeline): Added.
2033         (WebInspector.TimelineRecording.prototype.addTimeline): Added.
2034         (WebInspector.TimelineRecording.prototype.removeTimeline.get this): Added.
2035         (WebInspector.TimelineRecording.prototype.removeTimeline): Added.
2036         * UserInterface/Views/ContentView.js:
2037         (WebInspector.ContentView):
2038         * UserInterface/Views/LayoutTimelineView.css:
2039         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
2040         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
2041         * UserInterface/Views/LayoutTimelineView.js:
2042         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
2043         (WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
2044         * UserInterface/Views/NavigationSidebarPanel.js:
2045         (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie): Fix error message formatting.
2046         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2047         * UserInterface/Views/NetworkTimelineView.css:
2048         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
2049         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
2050         * UserInterface/Views/NetworkTimelineView.js:
2051         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
2052         * UserInterface/Views/ScriptTimelineView.css:
2053         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
2054         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
2055         * UserInterface/Views/ScriptTimelineView.js:
2056         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
2057         (WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
2058         * UserInterface/Views/TimelineOverview.js:
2059         Convert this class to use the representedObject class pattern. It manages its own mapping from timelines
2060         to overview graph views. Append 'Element' to some properties holding DOM elements.
2061         (WebInspector.TimelineOverview):
2062         (WebInspector.TimelineOverview.prototype.get visibleDuration):
2063         (WebInspector.TimelineOverview.prototype.reset):
2064         (WebInspector.TimelineOverview.prototype.updateLayout):
2065         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
2066         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
2067         (WebInspector.TimelineOverview.prototype._timelineRemoved):
2068         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
2069         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
2070         * UserInterface/Views/TimelineRecordingContentView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.css.
2071         Remove hard-coded top offsets and heights that need to be dynamically calculated.
2072         (.content-view.timeline-recording > .timeline-overview):
2073         (.content-view.timeline-recording > .view-container):
2074         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td):
2075         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data):
2076         * UserInterface/Views/TimelineRecordingContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.js.
2077         Manage timeline views and path components dynamically. Adjust view heights as necessary. Append 'Element'
2078         to some properties holding DOM elements.
2079         (WebInspector.TimelineRecordingContentView):
2080         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
2081         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
2082         (WebInspector.TimelineRecordingContentView.prototype.get allowedNavigationSidebarPanels):
2083         (WebInspector.TimelineRecordingContentView.prototype.get supportsSplitContentBrowser):
2084         (WebInspector.TimelineRecordingContentView.prototype.get navigationItems):
2085         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
2086         (WebInspector.TimelineRecordingContentView.prototype.shown):
2087         (WebInspector.TimelineRecordingContentView.prototype.hidden):
2088         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange):
2089         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
2090         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
2091         (WebInspector.TimelineRecordingContentView.prototype.restoreFromCookie):
2092         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters.checkTimeBounds):
2093         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters):
2094         (WebInspector.TimelineRecordingContentView.prototype._pathComponentSelected):
2095         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange):
2096         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView):
2097         (WebInspector.TimelineRecordingContentView.prototype._update):
2098         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
2099         (WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
2100         (WebInspector.TimelineRecordingContentView.prototype._stopUpdatingCurrentTime):
2101         (WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
2102         (WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
2103         (WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
2104         (WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
2105         Fix a minor regression where we make a useless call to stop updating the time.
2106
2107         (WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
2108         (WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
2109         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
2110         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
2111         (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
2112         (WebInspector.TimelineRecordingContentView.prototype._recordingUnloaded):
2113         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
2114         * UserInterface/Views/TimelineSidebarPanel.css:
2115         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
2116         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content): Deleted.
2117         * UserInterface/Views/TimelineSidebarPanel.js:
2118         Manage timeline tree elements dynamically. Adjust view heights as necessary. Append 'Element'
2119         to some properties holding DOM elements. Keep track of the displayed recording and view explicitly.
2120         (WebInspector.TimelineSidebarPanel):
2121         (WebInspector.TimelineSidebarPanel.prototype.shown):
2122         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
2123         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
2124         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
2125         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
2126         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
2127         (WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
2128         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
2129         (WebInspector.TimelineSidebarPanel.prototype.get if):
2130         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
2131         (WebInspector.TimelineSidebarPanel.prototype._recordingCountChanged):
2132         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
2133         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
2134         (WebInspector.TimelineSidebarPanel.prototype._timelineRemoved):
2135         (WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
2136         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Deleted.
2137         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
2138         * UserInterface/Views/TimelineView.css:
2139         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
2140         (.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
2141
2142 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
2143
2144         Web Inspector: Large background image fails to load in inspector
2145         https://bugs.webkit.org/show_bug.cgi?id=141405
2146
2147         Reviewed by Timothy Hatcher.
2148
2149         Convert base64-encoded resource data to binary data using Uint8Array and Blobs.
2150         Use object URLs for blobs instead of data URLs when setting image 'src' attribute
2151         and in @font-face urls. This conversion happens when the backend indicates that
2152         resource content is base64-encoded.
2153
2154         Update image and font clients of resource-fetching functionality so that they use
2155         object URLs correctly. Add some plumbing so that Blobs can be constructed with
2156         the correct mime-type.
2157
2158         * UserInterface/Base/Utilities.js:
2159         (decodeBase64ToBlob): Added.
2160         * UserInterface/Models/CSSStyleSheet.js:
2161         (WebInspector.CSSStyleSheet.prototype.get mimeType): Added.
2162         * UserInterface/Models/Resource.js:
2163         (WebInspector.Resource.prototype.createObjectURL): Added.
2164         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
2165         (WebInspector.Resource.prototype.getImageSize):
2166         (WebInspector.Resource.prototype.get contentURL): Deleted.
2167         * UserInterface/Models/Script.js:
2168         (WebInspector.Script.prototype.get mimeType): Added.
2169         * UserInterface/Models/SourceCode.js:
2170         (WebInspector.SourceCode.prototype.get mimeType): Added.
2171         (WebInspector.SourceCode.prototype._processContent):
2172         (WebInspector.SourceCode.prototype.get contentIsBase64Encoded): Deleted.
2173         * UserInterface/Models/SourceCodeRevision.js:
2174         (WebInspector.SourceCodeRevision):
2175         (WebInspector.SourceCodeRevision.prototype.copy):
2176         (WebInspector.SourceCodeRevision.prototype.get contentIsBase64Encoded): Deleted.
2177         (WebInspector.SourceCodeRevision.prototype.set contentIsBase64Encoded): Deleted.
2178         * UserInterface/Views/FontResourceContentView.js:
2179         (WebInspector.FontResourceContentView.prototype.hidden):
2180         (WebInspector.FontResourceContentView.prototype.closed):
2181         * UserInterface/Views/ImageResourceContentView.js:
2182         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
2183
2184 2015-02-11  Nikita Vasilyev  <nvasilyev@apple.com>
2185
2186         Web Inspector: REGRESSION: Clicking selected item in the sidebar second time should scroll to the corresponding line
2187         https://bugs.webkit.org/show_bug.cgi?id=140280
2188
2189         Reviewed by Brian Burg.
2190
2191         * UserInterface/Views/ContentViewContainer.js:
2192         (WebInspector.ContentViewContainer.prototype.showContentView):
2193         Perform scolling regardless of the navigation history. Since scrolling source code doesn't introduce a BackForwardEntry,
2194         it's possible that the actual content view has a different scroll position.
2195
2196 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
2197
2198         Web Inspector: Better handle unknown release versions
2199         https://bugs.webkit.org/show_bug.cgi?id=141454
2200
2201         Reviewed by Timothy Hatcher.
2202
2203         * UserInterface/Base/Platform.js:
2204         If given an unknown Mac OS X version, at least parse
2205         the version number in WebInspector.Platform.
2206
2207 2015-02-10  Nikita Vasilyev  <nvasilyev@apple.com>
2208
2209         Web Inspector: Make collapsed sidebars undraggable
2210         https://bugs.webkit.org/show_bug.cgi?id=140664
2211
2212         Reviewed by Timothy Hatcher.
2213
2214         * UserInterface/Views/Sidebar.css:
2215         (.sidebar.collapsed):
2216         (.sidebar.collapsed.right > .resizer): Deleted.
2217         (.sidebar.collapsed.left > .resizer): Deleted.
2218         * UserInterface/Views/Sidebar.js:
2219         (WebInspector.Sidebar):
2220         (WebInspector.Sidebar.prototype._resizerMouseDown):
2221         (WebInspector.Sidebar.prototype._resizerMouseMoved):
2222         (WebInspector.Sidebar.prototype._resizerDoubleClicked): Deleted.
2223
2224 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
2225
2226         Web Inspector: CSS Pretty Printing: still fails fails to put space between rgb(...) and numbers in minified gradients
2227         https://bugs.webkit.org/show_bug.cgi?id=141411
2228
2229         Reviewed by Timothy Hatcher.
2230
2231         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
2232         * UserInterface/Views/CodeMirrorFormatters.js:
2233         Token actually was "number m-css" so we should check token strings
2234         more robustly, like elsewhere in the formatters.
2235
2236 2015-02-09  Brian J. Burg  <burg@cs.washington.edu>
2237
2238         Web Inspector: Uncaught exception when reporting wrong backend command call signature
2239         https://bugs.webkit.org/show_bug.cgi?id=141401
2240
2241         Reviewed by Joseph Pecoraro.
2242
2243         * UserInterface/Protocol/InspectorBackend.js:
2244         (InspectorBackend.Command.prototype._invokeWithArguments): Fix wrong variable name.
2245
2246 2015-02-06  Jono Wells  <jonowells@apple.com>
2247
2248         Web Inspector: REGRESSION: CSS Resource appears as empty after editing it via Styles sidebar
2249         https://bugs.webkit.org/show_bug.cgi?id=140586
2250
2251         Reviewed by Timothy Hatcher.
2252
2253         Update SourceCode#_processContent to properly handle the promise returned from CSSAgent so that the content
2254         will properly update when a style has changed. Properly clear the existing _requestContentPromise on the
2255         stylesheet so that the content will update correctly.
2256
2257         * UserInterface/Controllers/CSSStyleManager.js: Drive-by style updates.
2258         (WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):
2259         * UserInterface/Models/CSSStyleSheet.js: Drive-by inheritance style update.
2260         (WebInspector.CSSStyleSheet.prototype.requestContentFromBackend): Remove unnecessary backend promise function call.
2261         * UserInterface/Models/Resource.js: Drive-by removal of unused variable.
2262         * UserInterface/Models/SourceCode.js:
2263         (WebInspector.SourceCode.prototype.markContentAsStale): Clear _requestContentPromise.
2264         (WebInspector.SourceCode.prototype._processContent): Handle `parameters.text` correctly.
2265
2266 2015-02-04  Jono Wells  <jonowells@apple.com>
2267
2268         Web Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
2269         https://bugs.webkit.org/show_bug.cgi?id=141225
2270
2271         Reviewed by Timothy Hatcher.
2272
2273         Change WebInspector.SourceMapResource.prototype.requestContentFromBackend to correctly and consistently handle
2274         calls to NetworkAgent. The helper function sourceMapResourceLoaded will now properly handle parameters as a single
2275         payload, including manual calls in the case where the source map content is in a data URI. Also
2276         WebInspector.SourceCode.prototype._processContent now properly handles an error string used for displaying
2277         resource loading error messages in the resource content view.
2278
2279         * UserInterface/Models/Resource.js: drive-by style fix.
2280
2281         * UserInterface/Models/SourceCode.js:
2282         (WebInspector.SourceCode.prototype._processContent):
2283         Properly handle error string.
2284
2285         * UserInterface/Models/SourceMapResource.js:
2286         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
2287         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
2288         Formerly sourceMapResourceLoadError, now handles parameters from the NetworkAgent correctly.
2289
2290         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
2291         This function now handles NetworkAgent errors only.
2292
2293 2015-02-05  Brian J. Burg  <burg@cs.washington.edu>
2294
2295         Web Inspector: eliminate some unnecessary layout/painting in timeline overview and ruler
2296         https://bugs.webkit.org/show_bug.cgi?id=141293
2297
2298         Reviewed by Timothy Hatcher.
2299
2300         The timeline overview's ruler was forcing repaints of divider labels even if the labels
2301         had not changed since the last requestAnimationFrame. Bail out early if nothing changed.
2302
2303         The timeline overview and its graphs were updating layout using requestAnimationFrame
2304         even when the TimelineContentView is not visible. Fix this by propagating visibility
2305         changes to subviews, and not updating layout when hidden.
2306
2307         The above change also fixes an assertion sometimes encountered when the timeline view
2308         tries to cache an element's offset width, but cannot because it isn't visible.
2309
2310         * UserInterface/Views/TimelineContentView.js:
2311         (WebInspector.TimelineContentView.prototype.shown):
2312         (WebInspector.TimelineContentView.prototype.hidden):
2313         * UserInterface/Views/TimelineOverview.js:
2314         (WebInspector.TimelineOverview.prototype.get visible):
2315         (WebInspector.TimelineOverview.prototype.shown):
2316         (WebInspector.TimelineOverview.prototype.hidden):
2317         (WebInspector.TimelineOverview.prototype._needsLayout):
2318         * UserInterface/Views/TimelineOverviewGraph.js:
2319         (WebInspector.TimelineOverviewGraph.prototype.get visible):
2320         (WebInspector.TimelineOverviewGraph.prototype.shown):
2321         (WebInspector.TimelineOverviewGraph.prototype.hidden):
2322         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
2323         * UserInterface/Views/TimelineRuler.js:
2324         (WebInspector.TimelineRuler.prototype.updateLayout):
2325
2326 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
2327
2328         Web Inspector: ES6: Improved Console Support for Symbol Objects
2329         https://bugs.webkit.org/show_bug.cgi?id=141173
2330
2331         Reviewed by Timothy Hatcher.
2332
2333         * UserInterface/Protocol/RemoteObject.js:
2334         (WebInspector.RemoteObject):
2335         (WebInspector.RemoteObject.prototype._isSymbol):
2336         Symbols have an objectId because it is a non-primitive that cannot be passed
2337         by value, however it cannot have properties, so handle some cases.
2338
2339         * UserInterface/Views/LogContentView.css:
2340         (.console-formatted-symbol):
2341         Give Symbol's their own color.
2342
2343 2015-02-04  Nikita Vasilyev  <nvasilyev@apple.com>
2344
2345         Web Inspector: Insertion bar (caret) is hidden behind the placeholder text in the style editor
2346         https://bugs.webkit.org/show_bug.cgi?id=139659
2347
2348         Reviewed by Timothy Hatcher.
2349
2350         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
2351         (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
2352         Use non-monospace font to fit the placeholder text on a single line and
2353         match the color if the native placeholder.
2354
2355 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
2356
2357         Web Inspector: console.table with columnName filter for non-existent property should still show column
2358         https://bugs.webkit.org/show_bug.cgi?id=141066
2359
2360         Reviewed by Timothy Hatcher.
2361
2362         * UserInterface/Views/ConsoleMessageImpl.js:
2363         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
2364         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
2365         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
2366         If a second argument was provided to console.table, try to extract a list
2367         of string names to use for the object properties. Output a table with
2368         the provided column names, in the specified order. Also, use this
2369         opportunity to mark missing properties with an em dash.
2370
2371 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
2372
2373         Web Inspector: CSS Autocompletion: Autodetect many color supporting properties
2374         https://bugs.webkit.org/show_bug.cgi?id=141166
2375
2376         Reviewed by Timothy Hatcher.
2377
2378         * UserInterface/Base/Utilities.js:
2379         Add String.prototype.endsWith. Group String extensions together.
2380
2381         * UserInterface/Models/CSSKeywordCompletions.js:
2382         (WebInspector.CSSKeywordCompletions.forProperty):
2383         If a property name ends in "color", provide CSS color completions.
2384
2385         (WebInspector.CSSKeywordCompletions.isColorAwareProperty): Deleted.
2386         This was unused and disagrees slightly with the implementation above.
2387
2388 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
2389
2390         Web Inspector: Support console.table
2391         https://bugs.webkit.org/show_bug.cgi?id=141058
2392
2393         Reviewed by Timothy Hatcher.
2394
2395         * Localizations/en.lproj/localizedStrings.js:
2396         New "Index", "(Index)", "Value", table header strings.
2397
2398         * UserInterface/Views/ConsoleMessage.js:
2399         Add "Table", but add FIXMEs to consider using the protocol generated enums.
2400
2401         * UserInterface/Views/ConsoleMessageImpl.js:
2402         (WebInspector.ConsoleMessageImpl.prototype._format):
2403         Special case console.table messages.
2404
2405         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
2406         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
2407         Factor out ProjectPreview printing. Also, replace newlines in strings
2408         with return characters, like we did elsewhere.
2409
2410         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
2411         Ultimately try to create a DataGrid from the output. Search first
2412         for rich object data in the list. If no rich object data is found
2413         just check for simple values. If the table is lossy, also do
2414         a log of the object in case the user wants to see more data.
2415
2416
2417         * UserInterface/Views/DataGrid.js:
2418         (WebInspector.DataGrid):
2419         The for..in enumeration is unordered and may not give us the
2420         column ordering we wanted. So include an optional preferred
2421         column names list to get the preferred order.
2422
2423         (WebInspector.DataGrid.createSortableDataGrid):
2424         Numerous bug fixes here. Accidental globals, typos, and sorting failures.
2425
2426         (WebInspector.DataGrid.prototype.autoSizeColumns):
2427         (WebInspector.DataGrid.prototype.textForDataGridNodeColumn):
2428         (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
2429         Create a generic method to get the text for a datagrid node in a column.
2430         This is important for getting the text from console.table previews which
2431         contains Nodes.
2432
2433         * UserInterface/Views/LogContentView.css:
2434         (.console-messages:focus .console-item.selected .data-grid tr.selected):
2435         (.console-item .data-grid tr.selected):
2436         DataGrid selection colors while in the console which may or may
2437         not have selected console items.
2438
2439 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
2440
2441         Web Inspector: Extend CSS.getSupportedCSSProperties to provide values for properties for CSS Augmented JSContext
2442         https://bugs.webkit.org/show_bug.cgi?id=141064
2443
2444         Reviewed by Timothy Hatcher.
2445
2446         * UserInterface/Models/CSSCompletions.js:
2447         * UserInterface/Models/CSSKeywordCompletions.js:
2448         (WebInspector.CSSKeywordCompletions.addCustomCompletions):
2449         (WebInspector.CSSKeywordCompletions.addPropertyCompletionValues):
2450         If a property is specified with custom values, extend the
2451         keyword completions map to make those values available
2452         in autocompletion.
2453
2454 2015-01-30  Joseph Pecoraro  <pecoraro@apple.com>
2455
2456         Remote Web Inspector should not show undock toolbar buttons
2457         https://bugs.webkit.org/show_bug.cgi?id=141061
2458
2459         Reviewed by Timothy Hatcher.
2460
2461         * UserInterface/Base/Main.js:
2462         (WebInspector.contentLoaded):
2463         Be sure to update the toolbar's dock navigation icons because they
2464         may need to be hidden (the default state).
2465
2466 2015-01-29  Saam Barati  <saambarati1@gmail.com>
2467
2468         Web Inspector: Allow text selection when the BasicBlockAnnotator is enabled
2469         https://bugs.webkit.org/show_bug.cgi?id=140987
2470
2471         Reviewed by Timothy Hatcher.
2472
2473         Because the BasicBlockAnnotator no longer sets the background color of
2474         lines that haven't executed to gray, text selection while the
2475         BasicBlockAnnotator is enabled no longer results in a bad user interface.
2476         This patch both allows text selection while the BasicBlockAnnotator is
2477         enabled and also removes the now unused listeners to CodeMirror's focus
2478         and blur events.
2479
2480         * UserInterface/Views/SourceCodeTextEditor.js:
2481         (WebInspector.SourceCodeTextEditor):
2482         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
2483         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
2484         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
2485         (WebInspector.SourceCodeTextEditor.prototype.gainedFocus): Deleted.
2486         (WebInspector.SourceCodeTextEditor.prototype.lostFocus): Deleted.
2487         * UserInterface/Views/TextEditor.js:
2488         (WebInspector.TextEditor):
2489         (WebInspector.TextEditor.prototype.gainedFocus): Deleted.
2490         (WebInspector.TextEditor.prototype.lostFocus): Deleted.
2491
2492 2015-01-29  Saam Barati  <saambarati1@gmail.com>
2493
2494         Web Inspector: Make BasicBlockAnnotator lessen the saturation of syntax highlighting instead of graying out unexecuted code
2495         https://bugs.webkit.org/show_bug.cgi?id=141011
2496
2497         Reviewed by Timothy Hatcher.
2498
2499         This patch removes a lot of the complicated logic associated around 
2500         determining which code can be grayed out by the BasicBlockAnnotator. 
2501         Instead, the BasicBlockAnnotator now applies a CSS class to all the
2502         code that has not executed which lessens the saturation of the 
2503         syntax coloring for the code. This creates both a nicer user
2504         interface and a nicer user experience because it makes reading
2505         source code with the BasicBlockAnnotator enabled more pleasant.
2506
2507         * UserInterface/Controllers/BasicBlockAnnotator.js:
2508         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
2509         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
2510         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
2511         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace): Deleted.
2512         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace): Deleted.
2513         (_canGrayOutEntireLine): Deleted.
2514         (_grayOutLine): Deleted.
2515         (_clearRangeForBasicBlockMarker.get marker): Deleted.
2516         (_clearRangeForBasicBlockMarker): Deleted.
2517         * UserInterface/Views/SourceCodeTextEditor.css:
2518         (.hover-menu.color > img):
2519         (.basic-block-has-not-executed): Deleted.
2520         (.basic-block-has-not-executed-prepend::before): Deleted.
2521         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
2522         (.cm-s-default .basic-block-has-not-executed):
2523         (.cm-s-default .basic-block-has-not-executed.cm-comment):
2524         (.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-3, .cm-property)):
2525         (.cm-s-default .basic-block-has-not-executed:matches(.cm-number, .cm-atom.cm-hex-color)):
2526         (.cm-s-default .basic-block-has-not-executed.cm-string):
2527         (.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-meta):
2528         (.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-attribute):
2529
2530 2015-01-29  Joseph Pecoraro  <pecoraro@apple.com>
2531
2532         Web Inspector: ES6: Improved Console Format for Set and Map Objects (like Arrays)
2533         https://bugs.webkit.org/show_bug.cgi?id=122867
2534
2535         Reviewed by Timothy Hatcher.
2536
2537         This includes Set/Map/WeakMap previews:
2538
2539             - Set previews: Set {1, 2, 3}
2540             - Map/WeakMap previews: Map {1 => 2, "key" => "value"}
2541
2542         For WeakMaps:
2543         
2544             - the preview itself shows up to 5 key/value pairs from when the object was logged
2545             - the previews are strings only, and thus do not retain the actual keys/values
2546             - when expanding, we get RemoteObjects and strongly retain the keys/values
2547             - when collapsing / clearing, we release the RemoteObjects so they can get collected
2548
2549         Currently you collapse the <entries> section, and re-expand later the
2550         collection may show you knew keys/values. The UI for this will change.
2551
2552         * Localizations/en.lproj/localizedStrings.js:
2553         * UserInterface/Protocol/RemoteObject.js:
2554         (WebInspector.RemoteObject.prototype.isCollectionType):
2555         (WebInspector.RemoteObject.prototype.isWeakCollection):
2556         (WebInspector.RemoteObject.prototype.getCollectionEntries):
2557         (WebInspector.RemoteObject.prototype.releaseWeakCollectionEntries):
2558         (WebInspector.RemoteObject.prototype.arrayLength):
2559         (WebInspector.RemoteObject.prototype._weakCollectionObjectGroup):
2560         High level functions for dealing with a RemoteObject that may be a
2561         collection / weak collection.
2562
2563         * UserInterface/Views/ConsoleMessageImpl.js:
2564         (WebInspector.ConsoleMessageImpl):
2565         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
2566         Include default formatters for collection types.
2567
2568         (WebInspector.ConsoleMessageImpl.prototype._appendPreview):
2569         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews):
2570         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
2571         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview):
2572         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview): Deleted.
2573         Refactor preview generation a bit and include a specific path for
2574         generation the output of a preview with "entries".
2575
2576         * UserInterface/Views/LogContentView.css:
2577         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object):
2578         With nested Object previews ("Map {{a:1} => 1}") don't show "Object" for the inner
2579         object preview. Only show it if it has a unique type ("Map {Foo {a:1} => 1}")
2580
2581         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
2582         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section):
2583         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .properties):
2584         Make map/set/weakmap display like Objects.
2585
2586         * UserInterface/Views/ObjectPropertiesSection.js:
2587         (WebInspector.ObjectPropertiesSection.prototype.update):
2588         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
2589         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
2590         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2591         (WebInspector.CollectionEntriesMainTreeElement):
2592         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
2593         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
2594         (WebInspector.CollectionEntriesMainTreeElement.prototype.oncollapse):
2595         (WebInspector.CollectionEntriesMainTreeElement.prototype.ondetach):
2596         (WebInspector.CollectionEntriesMainTreeElement.prototype._trackWeakEntries):
2597         (WebInspector.CollectionEntriesMainTreeElement.prototype._untrackWeakEntries):
2598         (WebInspector.CollectionEntryTreeElement):
2599         (WebInspector.CollectionEntryTreeElement.prototype.onpopulate):
2600         (WebInspector.CollectionEntryTreeElement.prototype.onattach):
2601         (WebInspector.EmptyCollectionTreeElement):
2602         (WebInspector.ObjectPropertiesSection.prototype.update.callback): Deleted.
2603         Add a quick UI for exploring the entries of a collection. We are actively
2604         changing the styles of objects in the Console, so this should change soon.
2605
2606 2015-01-28  Joseph Pecoraro  <pecoraro@apple.com>
2607
2608         Web Inspector: Change Main Frame Status Buttons when debugging Augmented JSContext
2609         https://bugs.webkit.org/show_bug.cgi?id=141006
2610
2611         Reviewed by Timothy Hatcher.
2612
2613         * Localizations/en.lproj/localizedStrings.js:
2614         New "Restart" string.
2615
2616         * UserInterface/Base/Main.js:
2617         (WebInspector.canArchiveMainFrame):
2618         * UserInterface/Views/FrameTreeElement.js:
2619         (WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
2620         (WebInspector.FrameTreeElement.prototype._updateDownloadButton):
2621         Update the tooltip when in a non-Web debuggable, and only show
2622         the Download button when in a Web debuggable.
2623
2624         * UserInterface/Views/TreeElementStatusButton.js:
2625         (WebInspector.TreeElementStatusButton.prototype.set hidden):
2626         Oops! The implementation was backwards. Simplify with classList.toggle.
2627
2628 2015-01-28  Brian J. Burg  <burg@cs.washington.edu>
2629
2630         Web Inspector: remove CSS.setPropertyText, CSS.toggleProperty and related dead code
2631         https://bugs.webkit.org/show_bug.cgi?id=140961
2632
2633         Reviewed by Timothy Hatcher.
2634
2635         Setters for CSSProperty (except override) are not used, so delete them. These setters
2636         and their callees in DOMNodeStyles were the only clients of the removed protocol commands.
2637
2638         * UserInterface/Models/CSSProperty.js:
2639         (WebInspector.CSSProperty.prototype.update):
2640         (WebInspector.CSSProperty.prototype.get name):
2641         (WebInspector.CSSProperty.prototype.get value):
2642         (WebInspector.CSSProperty.prototype.get priority):
2643         (WebInspector.CSSProperty.prototype.hasOtherVendorNameOrKeyword):
2644         (WebInspector.CSSProperty.prototype.set text): Deleted.
2645         (WebInspector.CSSProperty.prototype.set name): Deleted.
2646         (WebInspector.CSSProperty.prototype.set value): Deleted.
2647         (WebInspector.CSSProperty.prototype.set important): Deleted.
2648         (WebInspector.CSSProperty.prototype.set priority): Deleted.
2649         (WebInspector.CSSProperty.prototype.set enabled): Deleted.
2650         (WebInspector.CSSProperty.prototype.add): Deleted.
2651         (WebInspector.CSSProperty.prototype.remove): Deleted.
2652         (WebInspector.CSSProperty.prototype._updatePropertySoon.performUpdate): Deleted.
2653         (WebInspector.CSSProperty.prototype._updatePropertySoon): Deleted.
2654         (WebInspector.CSSProperty.prototype._cancelPendingUpdate): Deleted.
2655         * UserInterface/Models/CSSStyleDeclaration.js:
2656         (WebInspector.CSSStyleDeclaration.prototype.addProperty): Deleted.
2657         (WebInspector.CSSStyleDeclaration.prototype.removeProperty): Deleted.
2658         * UserInterface/Models/DOMNodeStyles.js:
2659         (WebInspector.DOMNodeStyles.prototype.addEmptyRule):
2660         (WebInspector.DOMNodeStyles.prototype.addRule): Deleted.
2661         (WebInspector.DOMNodeStyles.prototype.changeProperty): Deleted.
2662         (WebInspector.DOMNodeStyles.prototype.changePropertyText): Deleted.
2663         (WebInspector.DOMNodeStyles.prototype.changePropertyEnabledState): Deleted.
2664         (WebInspector.DOMNodeStyles.prototype.addProperty): Deleted.
2665         (WebInspector.DOMNodeStyles.prototype.removeProperty): Deleted.
2666         (WebInspector.DOMNodeStyles.prototype._handlePropertyChange): Deleted.
2667         * UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js:
2668         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
2669         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2670         * UserInterface/Views/RulesStyleDetailsPanel.js:
2671         (WebInspector.RulesStyleDetailsPanel.prototype._newRuleClicked):
2672         * Versions/Inspector-iOS-6.0.json:
2673         * Versions/Inspector-iOS-7.0.json:
2674         * Versions/Inspector-iOS-8.0.json:
2675
2676 2015-01-28  Dana Burkart  <dburkart@apple.com>
2677
2678         Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig
2679         https://bugs.webkit.org/show_bug.cgi?id=136765
2680
2681         Reviewed by Alexey Proskuryakov.
2682
2683         * Configurations/Base.xcconfig:
2684         * Configurations/DebugRelease.xcconfig:
2685
2686 2015-01-23  Joseph Pecoraro  <pecoraro@apple.com>
2687
2688         Web Inspector: Object Previews in the Console
2689         https://bugs.webkit.org/show_bug.cgi?id=129204
2690
2691         Reviewed by Timothy Hatcher.
2692
2693         * UserInterface/Controllers/JavaScriptLogViewController.js:
2694         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
2695         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
2696         (get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
2697         Update RuntimeManager callsites that do not need object previews.
2698
2699         * UserInterface/Controllers/RuntimeManager.js:
2700         (WebInspector.RuntimeManager.prototype.evalCallback):
2701         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2702         Update the main evaluate method to include a boolean parameter for
2703         object previews. Most callers do not need them. Also, since previews
2704         were not available on iOS 6, switch to invoke, to conditionally
2705         include the command parameter.
2706
2707         * UserInterface/Protocol/RemoteObject.js:
2708         (WebInspector.RemoteObject):
2709         (WebInspector.RemoteObject.fromPayload):
2710         (WebInspector.RemoteObject.prototype.get preview):
2711         Store the preview from the payload.
2712
2713         * UserInterface/Views/ConsoleMessageImpl.js:
2714         (WebInspector.ConsoleMessageImpl.prototype._format):
2715         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2716         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
2717         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
2718         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
2719         Pass an explicit false for most formatters to not use a preview if available.
2720         
2721         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2722         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
2723         Currently only object types are previewed. Though we request previews
2724         for arrays, we don't use the preview because we show a better preview
2725         by just immediately requesting for a full non-preview property list.
2726         
2727         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
2728         Quickly output an object preview into the title element. The format
2729         is "ClassName {prop: value...}". Elide the class name if it is "Object".
2730         Also skip over certain preview properties that may not be useful
2731         at a glance (like constructor, or accessors without values).
2732
2733         * UserInterface/Views/LogContentView.css:
2734         (.console-object-preview):
2735         (.console-formatted-array .console-object-preview):
2736         (.console-object-preview-lossless):
2737         (.expanded .console-object-preview):
2738         Show lossy previews in italics.
2739         Show lossless previews and array previews without italics.
2740         Do not show the class name in the preview in italics when expanded.
2741
2742         (.console-object-preview .name):
2743         Give preview property names the same color as ObjectPropertiesSection property names.
2744         
2745         (.expanded .console-object-preview > .console-object-preview-body):
2746         When expanding an object, hide the preview.
2747
2748         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
2749         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
2750         For "Object" previews, hide the name "Object" when not expanded, and show it when expanded.
2751
2752 2015-01-23  Saam Barati  <saambarati1@gmail.com>
2753
2754         Web Inspector: Disable *Annotators on minified files that aren't pretty printed
2755         https://bugs.webkit.org/show_bug.cgi?id=140550
2756
2757         Reviewed by Timothy Hatcher.
2758
2759         When SourceCodeTextEditor speculates that a file is minified it 
2760         sets a flag on itself that the Annotators will notice when pretty 
2761         printing and turning on type profiling. 
2762
2763         SourceCodeTextEditor enforces the following two behaviors:
2764
2765         1. Always pretty print a file if we think it's minified while 
2766         viewing type annotations. So, while viewing a minified file, 
2767         if you press the type profiling button, the pretty printer will 
2768         first reformat the file, then the type profiler will insert type annotations.
2769
2770         2. If the type profiler is enabled and we're viewing a pretty 
2771         printed file that we think originally was minified, and the 
2772         pretty printer is disabled via pressing the button, then the 
2773         type profiler will also be disabled.
2774
2775         These two behaviors maintain a good user experience because 
2776         it prevents a bad visual representation of profiler data and 
2777         also prevents bad performance.
2778
2779         * UserInterface/Controllers/TypeTokenAnnotator.js:
2780         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations): Deleted.
2781         * UserInterface/Views/SourceCodeTextEditor.js:
2782         (WebInspector.SourceCodeTextEditor):
2783         (WebInspector.SourceCodeTextEditor.prototype.shown):
2784         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2785         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2786         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
2787         (WebInspector.SourceCodeTextEditor.prototype._contentWillPopulate):
2788         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
2789         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
2790
2791 2015-01-22  Jonathan Wells  <jonowells@apple.com>
2792
2793         Web Inspector: ResourceContentView.js incorrectly contains call to WebInspector.UIString with a variable parameter
2794         https://bugs.webkit.org/show_bug.cgi?id=140268
2795
2796         Reviewed by Timothy Hatcher.
2797
2798         UIString no longer incorrectly used around variables. Drive-by fixes to prototype inheritance style.
2799         Use of Promises corrected such that requesting content for a resource resolves rather than rejects if
2800         a resource can't be found or has another error that isn't a web inspector error.
2801
2802         * Localizations/en.lproj/localizedStrings.js: Updated.
2803         * UserInterface/Models/Resource.js: Change reject to resolve.
2804         * UserInterface/Models/Script.js:
2805         (WebInspector.Script.prototype.requestContentFromBackend): Proper use of Error object.
2806         * UserInterface/Models/SourceCode.js: Use correct inheritance style.
2807         * UserInterface/Views/ResourceContentView.js:
2808         (WebInspector.ResourceContentView.prototype._contentAvailable): Handle error now that promise resolves.
2809         (WebInspector.ResourceContentView.prototype._contentError): Remove incorrect use of UIString.
2810         * UserInterface/Views/SourceCodeTextEditor.js:
2811         (WebInspector.SourceCodeTextEditor.prototype._contentAvailable): Handle error now that promise resolves.
2812
2813 2015-01-22  Nikita Vasilyev  <nvasilyev@apple.com>
2814
2815         Web Inspector: Expected gutter highlight when selecting console input line, just like output line
2816         https://bugs.webkit.org/show_bug.cgi?id=140696
2817
2818         Reviewed by Timothy Hatcher.
2819
2820         * UserInterface/Views/LogContentView.css:
2821
2822 2015-01-21  Saam Barati  <saambarati1@gmail.com>
2823
2824         Web Inspector: Change Annotator's isActive getter into an isActive() function.
2825         https://bugs.webkit.org/show_bug.cgi?id=140729
2826
2827         Reviewed by Timothy Hatcher.
2828
2829         This patch also makes the child classes of Annotator use
2830         the function instead of accessing the property directly.
2831
2832         * UserInterface/Controllers/Annotator.js:
2833         (WebInspector.Annotator.prototype.isActive):
2834         (WebInspector.Annotator.prototype.get isActive): Deleted.
2835         * UserInterface/Controllers/BasicBlockAnnotator.js:
2836         (WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
2837         * UserInterface/Controllers/TypeTokenAnnotator.js:
2838         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
2839         * UserInterface/Views/SourceCodeTextEditor.js:
2840         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2841         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
2842         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2843         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2844         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
2845
2846 2015-01-21  Saam Barati  <saambarati1@gmail.com>
2847
2848         Web Inspector: Don't allow the BasicBlockAnnotator to highlight a section if it's only a closing brace
2849         https://bugs.webkit.org/show_bug.cgi?id=140727
2850
2851         Reviewed by Timothy Hatcher.
2852
2853         * UserInterface/Controllers/BasicBlockAnnotator.js:
2854         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
2855         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace):
2856         BasicBlockAnnotator tries to no longer highlight a basic block if it is only
2857         whitespace and a closing brace. These ranges are often after statements
2858         that make these basic blocks unreachable, such as a return/break/continue
2859         statement occurring inside a if/else/while/for block. This check won't
2860         match every highlighted empty closing brace, but catches most of them 
2861         because it only does intra block analysis instead of inter block analysis.
2862
2863 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2864
2865         Web Inspector: Use spread operator in a few places
2866         https://bugs.webkit.org/show_bug.cgi?id=140699
2867
2868         Reviewed by Geoffrey Garen.
2869
2870         * UserInterface/Controllers/ProbeManager.js:
2871         (WebInspector.ProbeManager.prototype.get probeSets):
2872         Simplify by using the spread operator.
2873
2874         * UserInterface/Models/TimelineRecording.js:
2875         This actually fixes an issue. The one place this was used was expecting
2876         an array and called ".length" on the result. However, the iterator being
2877         returned does not have a ".length" property so it was always undefined.
2878
2879 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2880
2881         Web Inspector: Expanding event objects in console shows undefined for most values, it should have real values
2882         https://bugs.webkit.org/show_bug.cgi?id=137306
2883
2884         Reviewed by Timothy Hatcher.
2885
2886         When first expanding an object, show all the object's own properties and any
2887         getter properties that may be on its prototype chain. Now, we only fetch
2888         own properties, for __proto__ properties.
2889
2890         * UserInterface/Protocol/RemoteObject.js:
2891         (WebInspector.RemoteObject.prototype.getOwnProperties):
2892         (WebInspector.RemoteObject.prototype.getOwnAndGetterProperties):
2893         (WebInspector.RemoteObject.prototype.getAllProperties):
2894         (WebInspector.RemoteObject.prototype.get hasChildren): Deleted.
2895         * UserInterface/Views/ObjectPropertiesSection.js:
2896         (WebInspector.ObjectPropertiesSection):
2897         (WebInspector.ObjectPropertiesSection.prototype.update):
2898         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2899
2900 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2901
2902         Web Inspector: Should show dynamic specificity values
2903         https://bugs.webkit.org/show_bug.cgi?id=140647
2904
2905         Reviewed by Benjamin Poulain.
2906
2907         For dynamic selectors, provide text in the tooltip describing that the
2908         specificity is dynamic and may change, and pointing out the element
2909         the current value was calculated against.
2910
2911         * Localizations/en.lproj/localizedStrings.js:
2912         * UserInterface/Models/CSSSelector.js:
2913         (WebInspector.CSSSelector):
2914         (WebInspector.CSSSelector.prototype.get specificity):
2915         (WebInspector.CSSSelector.prototype.get dynamic):
2916         * UserInterface/Models/DOMNodeStyles.js:
2917         (WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload.return):
2918         (WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload):
2919         * UserInterface/Views/CSSStyleDeclarationSection.js:
2920         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
2921
2922 2015-01-19  Saam Barati  <saambarati1@gmail.com>
2923
2924         Web Inspector: Provide a front end for JSC's Control Flow Profiler
2925         https://bugs.webkit.org/show_bug.cgi?id=138454
2926
2927         Reviewed by Timothy Hatcher.
2928
2929         This patch creates a user interface for JSC's control flow profiler.
2930         The Web Inspector gets basic block ranges from JSC, and displays
2931         basic blocks that have not executed as having a gray background.
2932         
2933         BasicBlockAnnotator is the class responsible for this UI logic.
2934         It also does a few nifty things when presenting a UI for this gray
2935         background color: if an entire line of code is within the basic 
2936         block's boundary, the annotator will not just highlight the background 
2937         behind the text, but the background of the entire line itself. This
2938         provides a nicer experience when glancing through large JavaScript files.
2939
2940         This patch also adds some necessary wrapper methods inside TextEditor
2941         for accessing CodeMirror's text highlighting functionality. It also
2942         creates a way for TextEditor and SourceCodeTextEditor to listen
2943         for focus events inside CodeMirror.
2944
2945         * UserInterface/Controllers/AnnotatorManager.js: Removed.
2946         * UserInterface/Controllers/BasicBlockAnnotator.js: Added.
2947         (WebInspector.BasicBlockAnnotator):
2948         (WebInspector.BasicBlockAnnotator.prototype.clearAnnotations):
2949         (WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
2950         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
2951         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
2952         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
2953         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace):
2954         (WebInspector.BasicBlockAnnotator.prototype._canGrayOutEntireLine):
2955         (WebInspector.BasicBlockAnnotator.prototype._grayOutLine):
2956         (WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker.get marker):
2957         (WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker):
2958         * UserInterface/Main.html:
2959         * UserInterface/Views/SourceCodeTextEditor.css:
2960         (.basic-block-has-not-executed):
2961         (.basic-block-has-not-executed-prepend::before):
2962         * UserInterface/Views/SourceCodeTextEditor.js:
2963         (WebInspector.SourceCodeTextEditor):
2964         (WebInspector.SourceCodeTextEditor.prototype.shown):
2965         (WebInspector.SourceCodeTextEditor.prototype.hidden):
2966         (WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
2967         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2968         (WebInspector.SourceCodeTextEditor.prototype.gainedFocus):
2969         (WebInspector.SourceCodeTextEditor.prototype.lostFocus):
2970         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2971         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
2972         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
2973         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2974         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2975         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
2976         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
2977         (WebInspector.SourceCodeTextEditor.prototype._makeBasicBlockAnnotator):
2978         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
2979         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
2980         * UserInterface/Views/TextEditor.js:
2981         (WebInspector.TextEditor):
2982         (WebInspector.TextEditor.prototype.getTextInRange):
2983         (WebInspector.TextEditor.prototype.addStyleToTextRange):
2984         (WebInspector.TextEditor.prototype.gainedFocus):
2985         (WebInspector.TextEditor.prototype.lostFocus):
2986
2987 2015-01-16  Nikita Vasilyev  <nvasilyev@apple.com>
2988
2989         Web Inspector: Make message selection in the console more readable
2990         https://bugs.webkit.org/show_bug.cgi?id=140385
2991
2992         Reviewed by Timothy Hatcher.
2993
2994         * UserInterface/Views/LogContentView.css:
2995         (.console-item.selected):
2996         (.console-messages:focus .console-item.selected):
2997         (.console-item.selected .console-message::after):
2998         (.console-messages:focus .console-item.selected .console-message::after):
2999         (.console-messages:focus .console-item.selected .go-to-link):
3000         * UserInterface/Views/Main.css:
3001         (.go-to-link):
3002         !important statements seem to be unnecessary, remove them.
3003
3004 2015-01-16  Joseph Pecoraro  <pecoraro@apple.com>
3005
3006         Web Inspector: Remove unused WebInspector.LocalJSONObject
3007         https://bugs.webkit.org/show_bug.cgi?id=140570
3008
3009         Reviewed by Timothy Hatcher.
3010
3011         * UserInterface/Protocol/RemoteObject.js:
3012         (WebInspector.RemoteObject.fromLocalObject): Deleted.
3013         (WebInspector.LocalJSONObject): Deleted.
3014         (WebInspector.LocalJSONObject.prototype.get description.switch.case.string_appeared_here): Deleted.
3015         (WebInspector.LocalJSONObject.prototype.get description.switch.default): Deleted.
3016         (WebInspector.LocalJSONObject.prototype.get description): Deleted.
3017         (WebInspector.LocalJSONObject.prototype._concatenate): Deleted.
3018         (WebInspector.LocalJSONObject.prototype.get type): Deleted.
3019         (WebInspector.LocalJSONObject.prototype.get subtype): Deleted.
3020         (WebInspector.LocalJSONObject.prototype.get hasChildren): Deleted.
3021         (WebInspector.LocalJSONObject.prototype.getOwnProperties): Deleted.
3022         (WebInspector.LocalJSONObject.prototype.getAllProperties): Deleted.
3023         (WebInspector.LocalJSONObject.prototype._children.buildProperty): Deleted.
3024         (WebInspector.LocalJSONObject.prototype._children): Deleted.
3025         (WebInspector.LocalJSONObject.prototype.isError): Deleted.
3026
3027 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
3028
3029         Web Inspector: Uncaught exceptions, attempting to dispatch unimplemented Network WebSocket methods
3030         https://bugs.webkit.org/show_bug.cgi?id=140532
3031
3032         Reviewed by Timothy Hatcher.
3033
3034         * UserInterface/Protocol/NetworkObserver.js:
3035         (WebInspector.NetworkObserver.prototype.webSocketFrameReceived):
3036         (WebInspector.NetworkObserver.prototype.webSocketFrameError):
3037         (WebInspector.NetworkObserver.prototype.webSocketFrameSent):
3038         Add stubs to prevent an exception when trying to dispatch the event.
3039
3040 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
3041
3042         Web Inspector: Reopening the inspector can selects a sub-frame instead of the Main Frame's DOM
3043         https://bugs.webkit.org/show_bug.cgi?id=140513
3044
3045         Reviewed by Timothy Hatcher.
3046
3047         * UserInterface/Models/Frame.js:
3048         (WebInspector.Frame.prototype.saveIdentityToCookie):
3049         Specifically identify the main frame, so that any sub-frames with the same
3050         URL, don't get choosen over the main frame when restoring state from cookie.
3051
3052 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
3053
3054         Web Inspector: selecting Paint timeline records from sidebar does not trigger preview of paint quad
3055         https://bugs.webkit.org/show_bug.cgi?id=139151
3056
3057         Reviewed by Brian Burg.
3058
3059         * UserInterface/Views/LayoutTimelineDataGrid.js:
3060         (WebInspector.LayoutTimelineDataGrid):
3061         (WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
3062         (WebInspector.LayoutTimelineDataGrid.prototype.reset): Deleted.
3063         (WebInspector.LayoutTimelineDataGrid.prototype.hidden): Deleted.
3064         (WebInspector.LayoutTimelineDataGrid.prototype._layoutDataGridSelectedNodeChanged): Deleted.
3065         (WebInspector.LayoutTimelineDataGrid.prototype._hideHighlightIfNeeded): Deleted.
3066         Move the node highlight from the datagrid to the timeline view because
3067         we want this to happen on both the Navigation sidebar and the datagrid.
3068
3069         * UserInterface/Views/LayoutTimelineView.js:
3070         (WebInspector.LayoutTimelineView.prototype.shown):
3071         (WebInspector.LayoutTimelineView.prototype.hidden):
3072         (WebInspector.LayoutTimelineView.prototype.filterDidChange):
3073         (WebInspector.LayoutTimelineView.prototype.reset):
3074         (WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
3075         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
3076         Update the highlight for major view updates.
3077
3078         (WebInspector.LayoutTimelineView.prototype._updateHighlight):
3079         (WebInspector.LayoutTimelineView.prototype._showHighlightForRecord):
3080         (WebInspector.LayoutTimelineView.prototype._hideHighlightIfNeeded):
3081         (WebInspector.LayoutTimelineView.prototype._hoveredOrSelectedRecord):
3082         Show a highlight for what we are hovering, or what is selected.
3083         Note the selected node may not be visible due to filtering.
3084
3085         (WebInspector.LayoutTimelineView.prototype._mouseOverDataGrid):
3086         (WebInspector.LayoutTimelineView.prototype._mouseLeaveDataGrid):
3087         (WebInspector.LayoutTimelineView.prototype._mouseOverTreeOutline):
3088         (WebInspector.LayoutTimelineView.prototype._mouseLeaveTreeOutline):
3089         Update hovered information mousing over the datagrid and tree outline.
3090
3091         * UserInterface/Views/TimelineContentView.js:
3092         (WebInspector.TimelineContentView.prototype.filterDidChange):
3093         * UserInterface/Views/TimelineSidebarPanel.js:
3094         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
3095         * UserInterface/Views/TimelineView.js:
3096         (WebInspector.TimelineView.prototype.filterDidChange):
3097         Include a "filterDidChange" TimelineView method that gets called after
3098         updateFilter (things like the filter bar or timeline range changes).
3099
3100         * UserInterface/Views/TreeOutline.js:
3101         (TreeOutline.prototype.treeElementFromNode):
3102         (TreeOutline.prototype.treeElementFromPoint):
3103         Provide a helper to get a tree element from an event target.
3104
3105 2015-01-13  Joseph Pecoraro  <pecoraro@apple.com>
3106
3107         Web Inspector: TextEditor doesn't update when resizing console, white space instead of content
3108         https://bugs.webkit.org/show_bug.cgi?id=140240
3109
3110         Reviewed by Timothy Hatcher.
3111
3112         * UserInterface/Base/Main.js:
3113         (WebInspector._consoleResizerMouseDown.dockedResizerDrag):
3114         Dispatch the event that signals the console has changed size.
3115
3116 2015-01-13  Joseph Pecoraro  <pecoraro@apple.com>
3117
3118         Web Inspector: I do not expect to see the same rule multiple times in styles sidebar
3119         https://bugs.webkit.org/show_bug.cgi?id=138185
3120
3121         Reviewed by Timothy Hatcher.
3122
3123         In the styles sidebar, don't show a duplicate, lesser-specificity rule even
3124         if it matches the selected element multiple times with different selectors
3125         in the list.
3126
3127         * UserInterface/Models/CSSRule.js:
3128         (WebInspector.CSSRule.prototype.isEqualTo):
3129         CSSRule identifiers are objects.
3130
3131         * UserInterface/Views/RulesStyleDetailsPanel.js:
3132         (WebInspector.RulesStyleDetailsPanel.prototype.refresh):
3133         Remove duplicates from the ordered list of style declarations.
3134
3135 2015-01-12  Jonathan Wells  <jonowells@apple.com>
3136
3137         Web Inspector: Timeline: when Network Requests view is selected, in progress requests are absent.
3138         https://bugs.webkit.org/show_bug.cgi?id=140090
3139
3140         Reviewed by Timothy Hatcher.
3141
3142         TimelineContentView#_updateTimes() changed to call WebInspector.timelineSidebarPanel.updateFilter() in addition
3143         to updating the layout of the current timeline view. TimelineSidebarPanel.updateFilter() now responsible for
3144         updating filtered resources in a TimelineView.
3145
3146         * UserInterface/Views/NavigationSidebarPanel.js:
3147         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
3148         Now handles updating the UI associated with filtering of navigation sidebar tree elements.
3149
3150         * UserInterface/Views/OverviewTimelineView.js:
3151         (WebInspector.OverviewTimelineView.prototype.updateLayout):
3152         No longer handles updating other UI along with the navigation sidebar tree elements. That is now handled by
3153         WebInspector.TimelineView.prototype.filterUpdated.
3154         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails): Drive-by fix. Missing vars.
3155
3156         * UserInterface/Views/TimelineContentView.js:
3157         (WebInspector.TimelineContentView.prototype._updateTimes): Add call to updateFilter().
3158
3159         * UserInterface/Views/TimelineView.js:
3160         (WebInspector.TimelineView.prototype.filterUpdated):
3161         Function added to dispatch a SelectionPathComponentsDidChange event.
3162
3163 2015-01-09  Enrica Casucci  <enrica@apple.com>
3164
3165         [iOS] Support additional text styles.
3166         https://bugs.webkit.org/show_bug.cgi?id=140310
3167         rdar://problem/18568864
3168
3169         Reviewed by Joseph Pecoraro.
3170
3171         Add support for three new text styles.
3172
3173         * UserInterface/Models/CSSKeywordCompletions.js:
3174
3175 2015-01-09  Timothy Hatcher  <timothy@apple.com>
3176
3177         Web Inspector: REGRESSION: Navigation sidebar can show blank next to the Console view
3178         https://bugs.webkit.org/show_bug.cgi?id=140291
3179
3180         Reviewed by Joseph Pecoraro.
3181
3182         * UserInterface/Base/Main.js:
3183         (WebInspector.contentLoaded): Don't restore collapsed false if selectedSidebarPanel is null.
3184         (WebInspector._sidebarCollapsedStateDidChange): Support a _ignoreNavigationSidebarPanelCollapsedEvent flag
3185         to avoid setting _navigationSidebarCollapsedSetting.
3186         (WebInspector._navigationSidebarPanelSelected): Force collapsed if selectedSidebarPanel is null.
3187         (WebInspector._contentBrowserCurrentContentViewDidChange): Set _ignoreNavigationSidebarPanelCollapsedEvent
3188         when forcing the collapsed state to avoid setting _navigationSidebarCollapsedSetting and calling
3189         _updateContentViewForCurrentNavigationSidebar.
3190
3191 2015-01-08  Nikita Vasilyev  <nvasilyev@apple.com>
3192
3193         Web Inspector: REGRESSION Showing debugger sidebar shouldn't change selected JS file
3194         https://bugs.webkit.org/show_bug.cgi?id=139526
3195
3196         Reviewed by Timothy Hatcher.
3197
3198         * UserInterface/Base/Main.js:
3199         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
3200         When switching to Debugger, show last selected JS or HTML resource.
3201
3202         (WebInspector.showSplitConsole):
3203         (WebInspector.showFullHeightConsole):
3204         (WebInspector.toggleConsoleView):
3205         (WebInspector._sidebarCollapsedStateDidChange):
3206         (WebInspector._updateContentViewForCurrentNavigationSidebar):
3207         (WebInspector._navigationSidebarPanelSelected):
3208         (WebInspector._contentBrowserCurrentContentViewDidChange):
3209         (WebInspector._updateNavigationSidebarForCurrentContentView): Deleted.
3210         * UserInterface/Views/ApplicationCacheFrameContentView.js:
3211         (WebInspector.ApplicationCacheFrameContentView.prototype.get allowedNavigationSidebarPanels):
3212         * UserInterface/Views/CookieStorageContentView.js:
3213         (WebInspector.CookieStorageContentView.prototype.get allowedNavigationSidebarPanels):
3214         * UserInterface/Views/DOMStorageContentView.js:
3215         (WebInspector.DOMStorageContentView.prototype.get allowedNavigationSidebarPanels):
3216         * UserInterface/Views/DOMTreeContentView.js:
3217         (WebInspector.DOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
3218         * UserInterface/Views/DatabaseContentView.js:
3219         (WebInspector.DatabaseContentView.prototype.get allowedNavigationSidebarPanels):
3220         * UserInterface/Views/DatabaseTableContentView.js:
3221         (WebInspector.DatabaseTableContentView.prototype.get allowedNavigationSidebarPanels):
3222         * UserInterface/Views/FontResourceContentView.js:
3223         (WebInspector.FontResourceContentView.prototype.get allowedNavigationSidebarPanels):
3224         * UserInterface/Views/FrameDOMTreeContentView.js:
3225         (WebInspector.FrameDOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
3226         * UserInterface/Views/LogContentView.js:
3227         (WebInspector.LogContentView.prototype.get allowedNavigationSidebarPanels):
3228         * UserInterface/Views/ResourceClusterContentView.js:
3229         (WebInspector.ResourceClusterContentView.prototype.get allowedNavigationSidebarPanels):
3230         * UserInterface/Views/ResourceSidebarPanel.js:
3231         (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
3232         (WebInspector.ResourceSidebarPanel.prototype.showMainFrame):
3233         * UserInterface/Views/Sidebar.js:
3234         (WebInspector.Sidebar.prototype.removeSidebarPanel):
3235         * UserInterface/Views/TimelineContentView.js:
3236         (WebInspector.TimelineContentView.prototype.get allowedNavigationSidebarPanels):
3237
3238 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
3239
3240         Web Inspector: Phantom breakpoint appears on empty line after reload of minified file with a breakpoint
3241         https://bugs.webkit.org/show_bug.cgi?id=140276
3242
3243         Reviewed by Timothy Hatcher.
3244
3245         Styles being set on lines (e.g. breakpoint styles) before content loaded can
3246         carry forward with the empty line. It is safe for us to just remove all
3247         the styles from the intial empty line before we load the initial content.
3248
3249         * UserInterface/Views/TextEditor.js:
3250         (WebInspector.TextEditor.prototype.set string.update):
3251         (WebInspector.TextEditor.prototype.set string):
3252
3253 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
3254
3255         Web Inspector: Pause Reason Improvements (Breakpoint, Debugger Statement, Pause on Next Statement)
3256         https://bugs.webkit.org/show_bug.cgi?id=138991
3257
3258         Reviewed by Timothy Hatcher.
3259
3260         * Localizations/en.lproj/localizedStrings.js:
3261         New UI strings for Pause Reasons.
3262
3263         * UserInterface/Controllers/DebuggerManager.js:
3264         (WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
3265         Provide a way to get the breakpoint with an identifier.
3266
3267         * UserInterface/Images/PausedBreakpoint.svg: Added.
3268         * UserInterface/Images/gtk/PausedBreakpoint.svg: Added.
3269     &n