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