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