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