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